From a8583c8e6901b8014e8ab21aa2c8a098377344f9 Mon Sep 17 00:00:00 2001
From: Michael Genson <71845777+michael-genson@users.noreply.github.com>
Date: Sat, 9 Dec 2023 17:12:07 +0000
Subject: [PATCH 01/82] added backend translation support for plurals
---
mealie/pkgs/i18n/json_provider.py | 26 ++++++++++++++++---
.../pkgs/i18n/test_locale_provider.py | 23 ++++++++++++++++
2 files changed, 46 insertions(+), 3 deletions(-)
diff --git a/mealie/pkgs/i18n/json_provider.py b/mealie/pkgs/i18n/json_provider.py
index 34cc7710c458..5fbeb10c902d 100644
--- a/mealie/pkgs/i18n/json_provider.py
+++ b/mealie/pkgs/i18n/json_provider.py
@@ -1,6 +1,7 @@
import json
from dataclasses import dataclass
from pathlib import Path
+from typing import cast
@dataclass(slots=True)
@@ -13,6 +14,22 @@ class JsonProvider:
else:
self.translations = path
+ def _parse_plurals(self, value: str, count: float):
+ # based off of: https://kazupon.github.io/vue-i18n/guide/pluralization.html
+
+ values = [v.strip() for v in value.split("|")]
+ if len(values) == 1:
+ return value
+ elif len(values) == 2:
+ return values[0] if count == 1 else values[1]
+ elif len(values) == 3:
+ if count == 0:
+ return values[0]
+ else:
+ return values[1] if count == 1 else values[2]
+ else:
+ return values[0]
+
def t(self, key: str, default=None, **kwargs) -> str:
keys = key.split(".")
@@ -30,9 +47,12 @@ class JsonProvider:
if i == last:
for key, value in kwargs.items():
- if not value:
+ translation_value = cast(str, translation_value)
+ if value is None:
value = ""
- translation_value = translation_value.replace("{" + key + "}", value)
- return translation_value
+ if key == "count":
+ translation_value = self._parse_plurals(translation_value, float(value))
+ translation_value = translation_value.replace("{" + key + "}", str(value)) # type: ignore
+ return translation_value # type: ignore
return default or key
diff --git a/tests/unit_tests/pkgs/i18n/test_locale_provider.py b/tests/unit_tests/pkgs/i18n/test_locale_provider.py
index 73100fb739a6..f4bf3a550521 100644
--- a/tests/unit_tests/pkgs/i18n/test_locale_provider.py
+++ b/tests/unit_tests/pkgs/i18n/test_locale_provider.py
@@ -9,6 +9,29 @@ def test_json_provider():
assert provider.t("test2", "DEFAULT") == "DEFAULT"
+def test_json_provider_plural():
+ provider = JsonProvider({"test": "test | tests"})
+ assert provider.t("test", count=0) == "tests"
+ assert provider.t("test", count=0.5) == "tests"
+ assert provider.t("test", count=1) == "test"
+ assert provider.t("test", count=1.5) == "tests"
+ assert provider.t("test", count=2) == "tests"
+
+ provider = JsonProvider({"test": "test 0 | test | tests"})
+ assert provider.t("test", count=0) == "test 0"
+ assert provider.t("test", count=0.5) == "tests"
+ assert provider.t("test", count=1) == "test"
+ assert provider.t("test", count=1.5) == "tests"
+ assert provider.t("test", count=2) == "tests"
+
+ provider = JsonProvider({"test": "zero tests | one test | {count} tests"})
+ assert provider.t("test", count=0) == "zero tests"
+ assert provider.t("test", count=0.5) == "0.5 tests"
+ assert provider.t("test", count=1) == "one test"
+ assert provider.t("test", count=1.5) == "1.5 tests"
+ assert provider.t("test", count=2) == "2 tests"
+
+
def test_json_provider_nested_keys():
nested_dict = {
"root": {
From 2cfc63b3026e69b4b654180f915b6f02f4809b61 Mon Sep 17 00:00:00 2001
From: Michael Genson <71845777+michael-genson@users.noreply.github.com>
Date: Sat, 9 Dec 2023 17:19:06 +0000
Subject: [PATCH 02/82] added timedelta translations
---
mealie/lang/messages/en-US.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/en-US.json b/mealie/lang/messages/en-US.json
index a4990159d5d5..16bee3cc7743 100644
--- a/mealie/lang/messages/en-US.json
+++ b/mealie/lang/messages/en-US.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} has been updated, {url}",
"generic-duplicated": "{name} has been duplicated",
"generic-deleted": "{name} has been deleted"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From 408df286fd0d8dbf883731ae0a3950d86066be60 Mon Sep 17 00:00:00 2001
From: Michael Genson <71845777+michael-genson@users.noreply.github.com>
Date: Sat, 9 Dec 2023 17:19:19 +0000
Subject: [PATCH 03/82] added translator to scraper
---
mealie/routes/groups/controller_migrations.py | 1 +
mealie/routes/recipe/recipe_crud_routes.py | 6 +--
mealie/services/migrations/_migration_base.py | 13 +++++-
mealie/services/scraper/cleaner.py | 40 ++++++++++---------
.../services/scraper/recipe_bulk_scraper.py | 8 +++-
mealie/services/scraper/recipe_scraper.py | 6 ++-
mealie/services/scraper/scraper.py | 5 ++-
mealie/services/scraper/scraper_strategies.py | 4 +-
8 files changed, 52 insertions(+), 31 deletions(-)
diff --git a/mealie/routes/groups/controller_migrations.py b/mealie/routes/groups/controller_migrations.py
index 3beba1083f41..3ec1ca26eb5a 100644
--- a/mealie/routes/groups/controller_migrations.py
+++ b/mealie/routes/groups/controller_migrations.py
@@ -44,6 +44,7 @@ class GroupMigrationController(BaseUserController):
"user_id": self.user.id,
"group_id": self.group_id,
"add_migration_tag": add_migration_tag,
+ "translator": self.translator,
}
table: dict[SupportedMigrations, type[BaseMigrator]] = {
diff --git a/mealie/routes/recipe/recipe_crud_routes.py b/mealie/routes/recipe/recipe_crud_routes.py
index bace402ebd2e..d479fe2f4ca7 100644
--- a/mealie/routes/recipe/recipe_crud_routes.py
+++ b/mealie/routes/recipe/recipe_crud_routes.py
@@ -167,7 +167,7 @@ class RecipeController(BaseRecipeController):
async def parse_recipe_url(self, req: ScrapeRecipe):
"""Takes in a URL and attempts to scrape data and load it into the database"""
try:
- recipe, extras = await create_from_url(req.url)
+ recipe, extras = await create_from_url(req.url, self.translator)
except ForceTimeoutException as e:
raise HTTPException(
status_code=408, detail=ErrorResponse.respond(message="Recipe Scraping Timed Out")
@@ -196,7 +196,7 @@ class RecipeController(BaseRecipeController):
@router.post("/create-url/bulk", status_code=202)
def parse_recipe_url_bulk(self, bulk: CreateRecipeByUrlBulk, bg_tasks: BackgroundTasks):
"""Takes in a URL and attempts to scrape data and load it into the database"""
- bulk_scraper = RecipeBulkScraperService(self.service, self.repos, self.group)
+ bulk_scraper = RecipeBulkScraperService(self.service, self.repos, self.group, self.translator)
report_id = bulk_scraper.get_report_id()
bg_tasks.add_task(bulk_scraper.scrape, bulk)
@@ -211,7 +211,7 @@ class RecipeController(BaseRecipeController):
async def test_parse_recipe_url(self, url: ScrapeRecipeTest):
# Debugger should produce the same result as the scraper sees before cleaning
try:
- if scraped_data := await RecipeScraperPackage(url.url).scrape_url():
+ if scraped_data := await RecipeScraperPackage(url.url, self.translator).scrape_url():
return scraped_data.schema.data
except ForceTimeoutException as e:
raise HTTPException(
diff --git a/mealie/services/migrations/_migration_base.py b/mealie/services/migrations/_migration_base.py
index 1268a38fb7cd..6cfa6fa3012c 100644
--- a/mealie/services/migrations/_migration_base.py
+++ b/mealie/services/migrations/_migration_base.py
@@ -6,6 +6,7 @@ from pydantic import UUID4
from mealie.core import root_logger
from mealie.core.exceptions import UnexpectedNone
+from mealie.lang.providers import Translator
from mealie.repos.all_repositories import AllRepositories
from mealie.schema.recipe import Recipe
from mealie.schema.recipe.recipe_settings import RecipeSettings
@@ -35,12 +36,20 @@ class BaseMigrator(BaseService):
helpers: DatabaseMigrationHelpers
def __init__(
- self, archive: Path, db: AllRepositories, session, user_id: UUID4, group_id: UUID, add_migration_tag: bool
+ self,
+ archive: Path,
+ db: AllRepositories,
+ session,
+ user_id: UUID4,
+ group_id: UUID,
+ add_migration_tag: bool,
+ translator: Translator,
):
self.archive = archive
self.db = db
self.session = session
self.add_migration_tag = add_migration_tag
+ self.translator = translator
user = db.users.get_one(user_id)
if not user:
@@ -225,6 +234,6 @@ class BaseMigrator(BaseService):
with contextlib.suppress(KeyError):
del recipe_dict["id"]
- recipe_dict = cleaner.clean(recipe_dict, url=recipe_dict.get("org_url", None))
+ recipe_dict = cleaner.clean(recipe_dict, self.translator, url=recipe_dict.get("org_url", None))
return Recipe(**recipe_dict)
diff --git a/mealie/services/scraper/cleaner.py b/mealie/services/scraper/cleaner.py
index f4bfc0ad7083..294b5c99b42f 100644
--- a/mealie/services/scraper/cleaner.py
+++ b/mealie/services/scraper/cleaner.py
@@ -10,6 +10,7 @@ from datetime import datetime, timedelta
from slugify import slugify
from mealie.core.root_logger import get_logger
+from mealie.lang.providers import Translator
logger = get_logger("recipe-scraper")
@@ -32,7 +33,7 @@ MATCH_ERRONEOUS_WHITE_SPACE = re.compile(r"\n\s*\n")
""" Matches multiple new lines and removes erroneous white space """
-def clean(recipe_data: dict, url=None) -> dict:
+def clean(recipe_data: dict, translator: Translator, url=None) -> dict:
"""Main entrypoint to clean a recipe extracted from the web
and format the data into an accectable format for the database
@@ -45,9 +46,9 @@ def clean(recipe_data: dict, url=None) -> dict:
recipe_data["description"] = clean_string(recipe_data.get("description", ""))
# Times
- recipe_data["prepTime"] = clean_time(recipe_data.get("prepTime"))
- recipe_data["performTime"] = clean_time(recipe_data.get("performTime"))
- recipe_data["totalTime"] = clean_time(recipe_data.get("totalTime"))
+ recipe_data["prepTime"] = clean_time(recipe_data.get("prepTime"), translator)
+ recipe_data["performTime"] = clean_time(recipe_data.get("performTime"), translator)
+ recipe_data["totalTime"] = clean_time(recipe_data.get("totalTime"), translator)
recipe_data["recipeCategory"] = clean_categories(recipe_data.get("recipeCategory", []))
recipe_data["recipeYield"] = clean_yield(recipe_data.get("recipeYield"))
recipe_data["recipeIngredient"] = clean_ingredients(recipe_data.get("recipeIngredient", []))
@@ -332,7 +333,7 @@ def clean_yield(yld: str | list[str] | None) -> str:
return yld
-def clean_time(time_entry: str | timedelta | None) -> None | str:
+def clean_time(time_entry: str | timedelta | None, translator: Translator) -> None | str:
"""_summary_
Supported Structures:
@@ -358,11 +359,11 @@ def clean_time(time_entry: str | timedelta | None) -> None | str:
try:
time_delta_instructionsect = parse_duration(time_entry)
- return pretty_print_timedelta(time_delta_instructionsect)
+ return pretty_print_timedelta(time_delta_instructionsect, translator)
except ValueError:
return str(time_entry)
case timedelta():
- return pretty_print_timedelta(time_entry)
+ return pretty_print_timedelta(time_entry, translator)
case {"minValue": str(value)}:
return clean_time(value)
case [str(), *_]:
@@ -371,7 +372,7 @@ def clean_time(time_entry: str | timedelta | None) -> None | str:
# TODO: Not sure what to do here
return str(time_entry)
case _:
- logger.warning("[SCRAPER] Unexpected type or structure for time_entrys")
+ logger.warning("[SCRAPER] Unexpected type or structure for time_entries")
return None
@@ -405,25 +406,25 @@ def parse_duration(iso_duration: str) -> timedelta:
return timedelta(**times)
-def pretty_print_timedelta(t: timedelta, max_components=None, max_decimal_places=2):
+def pretty_print_timedelta(t: timedelta, translator: Translator, max_components=None, max_decimal_places=2):
"""
Print a pretty string for a timedelta.
For example datetime.timedelta(days=2, seconds=17280) will be printed as '2 days 4 Hours 48 Minutes'.
Setting max_components to e.g. 1 will change this to '2.2 days', where the number of decimal
points can also be set.
"""
- time_scale_names_dict = {
- timedelta(days=365): "year",
- timedelta(days=1): "day",
- timedelta(hours=1): "Hour",
- timedelta(minutes=1): "Minute",
- timedelta(seconds=1): "Second",
- timedelta(microseconds=1000): "millisecond",
- timedelta(microseconds=1): "microsecond",
+ time_scale_translation_keys_dict = {
+ timedelta(days=365): "datetime.year",
+ timedelta(days=1): "datetime.day",
+ timedelta(hours=1): "datetime.hour",
+ timedelta(minutes=1): "datetime.minute",
+ timedelta(seconds=1): "datetime.second",
+ timedelta(microseconds=1000): "datetime.millisecond",
+ timedelta(microseconds=1): "datetime.microsecond",
}
count = 0
out_list = []
- for scale, scale_name in time_scale_names_dict.items():
+ for scale, scale_translation_key in time_scale_translation_keys_dict.items():
if t >= scale:
count += 1
n = t / scale if count == max_components else int(t / scale)
@@ -433,7 +434,8 @@ def pretty_print_timedelta(t: timedelta, max_components=None, max_decimal_places
if n_txt[-2:] == ".0":
n_txt = n_txt[:-2]
- out_list.append(f"{n_txt} {scale_name}{'s' if n > 1 else ''}")
+ scale_value = translator.t(scale_translation_key, count=n)
+ out_list.append(f"{n_txt} {scale_value}")
if out_list == []:
return "none"
diff --git a/mealie/services/scraper/recipe_bulk_scraper.py b/mealie/services/scraper/recipe_bulk_scraper.py
index ed701ecc3886..bfd714941152 100644
--- a/mealie/services/scraper/recipe_bulk_scraper.py
+++ b/mealie/services/scraper/recipe_bulk_scraper.py
@@ -2,6 +2,7 @@ import asyncio
from pydantic import UUID4
+from mealie.lang.providers import Translator
from mealie.repos.repository_factory import AllRepositories
from mealie.schema.recipe.recipe import CreateRecipeByUrlBulk, Recipe
from mealie.schema.reports.reports import (
@@ -20,11 +21,14 @@ from mealie.services.scraper.scraper import create_from_url
class RecipeBulkScraperService(BaseService):
report_entries: list[ReportEntryCreate]
- def __init__(self, service: RecipeService, repos: AllRepositories, group: GroupInDB) -> None:
+ def __init__(
+ self, service: RecipeService, repos: AllRepositories, group: GroupInDB, translator: Translator
+ ) -> None:
self.service = service
self.repos = repos
self.group = group
self.report_entries = []
+ self.translator = translator
super().__init__()
@@ -81,7 +85,7 @@ class RecipeBulkScraperService(BaseService):
async def _do(url: str) -> Recipe | None:
async with sem:
try:
- recipe, _ = await create_from_url(url)
+ recipe, _ = await create_from_url(url, self.translator)
return recipe
except Exception as e:
self.service.logger.error(f"failed to scrape url during bulk url import {url}")
diff --git a/mealie/services/scraper/recipe_scraper.py b/mealie/services/scraper/recipe_scraper.py
index a9faeeccb6fc..90a81c636025 100644
--- a/mealie/services/scraper/recipe_scraper.py
+++ b/mealie/services/scraper/recipe_scraper.py
@@ -1,3 +1,4 @@
+from mealie.lang.providers import Translator
from mealie.schema.recipe.recipe import Recipe
from mealie.services.scraper.scraped_extras import ScrapedExtras
@@ -14,11 +15,12 @@ class RecipeScraper:
# List of recipe scrapers. Note that order matters
scrapers: list[type[ABCScraperStrategy]]
- def __init__(self, scrapers: list[type[ABCScraperStrategy]] | None = None) -> None:
+ def __init__(self, translator: Translator, scrapers: list[type[ABCScraperStrategy]] | None = None) -> None:
if scrapers is None:
scrapers = DEFAULT_SCRAPER_STRATEGIES
self.scrapers = scrapers
+ self.translator = translator
async def scrape(self, url: str) -> tuple[Recipe, ScrapedExtras] | tuple[None, None]:
"""
@@ -26,7 +28,7 @@ class RecipeScraper:
"""
for scraper_type in self.scrapers:
- scraper = scraper_type(url)
+ scraper = scraper_type(url, self.translator)
result = await scraper.parse()
if result is not None:
diff --git a/mealie/services/scraper/scraper.py b/mealie/services/scraper/scraper.py
index eb8d415b88d5..bcd240edd302 100644
--- a/mealie/services/scraper/scraper.py
+++ b/mealie/services/scraper/scraper.py
@@ -5,6 +5,7 @@ from fastapi import HTTPException, status
from slugify import slugify
from mealie.core.root_logger import get_logger
+from mealie.lang.providers import Translator
from mealie.pkgs import cache
from mealie.schema.recipe import Recipe
from mealie.services.recipe.recipe_data_service import RecipeDataService
@@ -19,7 +20,7 @@ class ParserErrors(str, Enum):
CONNECTION_ERROR = "CONNECTION_ERROR"
-async def create_from_url(url: str) -> tuple[Recipe, ScrapedExtras | None]:
+async def create_from_url(url: str, translator: Translator) -> tuple[Recipe, ScrapedExtras | None]:
"""Main entry point for generating a recipe from a URL. Pass in a URL and
a Recipe object will be returned if successful.
@@ -29,7 +30,7 @@ async def create_from_url(url: str) -> tuple[Recipe, ScrapedExtras | None]:
Returns:
Recipe: Recipe Object
"""
- scraper = RecipeScraper()
+ scraper = RecipeScraper(translator)
new_recipe, extras = await scraper.scrape(url)
if not new_recipe:
diff --git a/mealie/services/scraper/scraper_strategies.py b/mealie/services/scraper/scraper_strategies.py
index fd51498023a4..a995ba389204 100644
--- a/mealie/services/scraper/scraper_strategies.py
+++ b/mealie/services/scraper/scraper_strategies.py
@@ -11,6 +11,7 @@ from slugify import slugify
from w3lib.html import get_base_url
from mealie.core.root_logger import get_logger
+from mealie.lang.providers import Translator
from mealie.schema.recipe.recipe import Recipe, RecipeStep
from mealie.services.scraper.scraped_extras import ScrapedExtras
@@ -77,9 +78,10 @@ class ABCScraperStrategy(ABC):
url: str
- def __init__(self, url: str) -> None:
+ def __init__(self, url: str, translator: Translator) -> None:
self.logger = get_logger()
self.url = url
+ self.translator = translator
@abstractmethod
async def get_html(self, url: str) -> str:
From 3a30b3216ee69c34bfa960ed9e160dc76675cee9 Mon Sep 17 00:00:00 2001
From: Michael Genson <71845777+michael-genson@users.noreply.github.com>
Date: Sat, 9 Dec 2023 17:19:27 +0000
Subject: [PATCH 04/82] fixed tests
---
.../scraper_tests/test_cleaner.py | 7 +++++--
.../scraper_tests/test_cleaner_parts.py | 21 +++++++++++--------
tests/unit_tests/test_recipe_parser.py | 6 ++++--
3 files changed, 21 insertions(+), 13 deletions(-)
diff --git a/tests/unit_tests/services_tests/scraper_tests/test_cleaner.py b/tests/unit_tests/services_tests/scraper_tests/test_cleaner.py
index 395b943016d2..7e7bf047fa61 100644
--- a/tests/unit_tests/services_tests/scraper_tests/test_cleaner.py
+++ b/tests/unit_tests/services_tests/scraper_tests/test_cleaner.py
@@ -4,6 +4,7 @@ from pathlib import Path
import pytest
+from mealie.lang.providers import local_provider
from mealie.services.scraper import cleaner
from mealie.services.scraper.scraper_strategies import RecipeScraperOpenGraph
from tests import data as test_data
@@ -37,15 +38,17 @@ test_cleaner_data = [
@pytest.mark.parametrize("json_file,num_steps", test_cleaner_data)
def test_cleaner_clean(json_file: Path, num_steps):
- recipe_data = cleaner.clean(json.loads(json_file.read_text()))
+ translator = local_provider()
+ recipe_data = cleaner.clean(json.loads(json_file.read_text()), translator)
assert len(recipe_data["recipeInstructions"]) == num_steps
def test_html_with_recipe_data():
path = test_data.html_healthy_pasta_bake_60759
url = "https://www.bbc.co.uk/food/recipes/healthy_pasta_bake_60759"
+ translator = local_provider()
- open_graph_strategy = RecipeScraperOpenGraph(url)
+ open_graph_strategy = RecipeScraperOpenGraph(url, translator)
recipe_data = open_graph_strategy.get_recipe_fields(path.read_text())
diff --git a/tests/unit_tests/services_tests/scraper_tests/test_cleaner_parts.py b/tests/unit_tests/services_tests/scraper_tests/test_cleaner_parts.py
index 67cbf9b34869..5fedb073b7cc 100644
--- a/tests/unit_tests/services_tests/scraper_tests/test_cleaner_parts.py
+++ b/tests/unit_tests/services_tests/scraper_tests/test_cleaner_parts.py
@@ -4,6 +4,7 @@ from typing import Any
import pytest
+from mealie.lang.providers import local_provider
from mealie.services.scraper import cleaner
@@ -324,32 +325,32 @@ time_test_cases = (
CleanerCase(
test_id="timedelta",
input=timedelta(minutes=30),
- expected="30 Minutes",
+ expected="30 minutes",
),
CleanerCase(
test_id="timedelta string (1)",
input="PT2H30M",
- expected="2 Hours 30 Minutes",
+ expected="2 hours 30 minutes",
),
CleanerCase(
test_id="timedelta string (2)",
input="PT30M",
- expected="30 Minutes",
+ expected="30 minutes",
),
CleanerCase(
test_id="timedelta string (3)",
input="PT2H",
- expected="2 Hours",
+ expected="2 hours",
),
CleanerCase(
test_id="timedelta string (4)",
input="P1DT1H1M1S",
- expected="1 day 1 Hour 1 Minute 1 Second",
+ expected="1 day 1 hour 1 minute 1 second",
),
CleanerCase(
test_id="timedelta string (4)",
input="P1DT1H1M1.53S",
- expected="1 day 1 Hour 1 Minute 1 Second",
+ expected="1 day 1 hour 1 minute 1 second",
),
CleanerCase(
test_id="timedelta string (5) invalid",
@@ -366,7 +367,8 @@ time_test_cases = (
@pytest.mark.parametrize("case", time_test_cases, ids=(x.test_id for x in time_test_cases))
def test_cleaner_clean_time(case: CleanerCase):
- result = cleaner.clean_time(case.input)
+ translator = local_provider()
+ result = cleaner.clean_time(case.input, translator)
assert case.expected == result
@@ -536,10 +538,11 @@ def test_cleaner_clean_nutrition(case: CleanerCase):
@pytest.mark.parametrize(
"t,max_components,max_decimal_places,expected",
[
- (timedelta(days=2, seconds=17280), None, 2, "2 days 4 Hours 48 Minutes"),
+ (timedelta(days=2, seconds=17280), None, 2, "2 days 4 hours 48 minutes"),
(timedelta(days=2, seconds=17280), 1, 2, "2.2 days"),
(timedelta(days=365), None, 2, "1 year"),
],
)
def test_pretty_print_timedelta(t, max_components, max_decimal_places, expected):
- assert cleaner.pretty_print_timedelta(t, max_components, max_decimal_places) == expected
+ translator = local_provider()
+ assert cleaner.pretty_print_timedelta(t, translator, max_components, max_decimal_places) == expected
diff --git a/tests/unit_tests/test_recipe_parser.py b/tests/unit_tests/test_recipe_parser.py
index b583543a55f7..e7515d73d98c 100644
--- a/tests/unit_tests/test_recipe_parser.py
+++ b/tests/unit_tests/test_recipe_parser.py
@@ -1,5 +1,6 @@
import pytest
+from mealie.lang.providers import local_provider
from mealie.services.scraper import scraper
from tests.utils.recipe_data import RecipeSiteTestCase, get_recipe_test_cases
@@ -18,9 +19,10 @@ and then use this test case by removing the `@pytest.mark.skip` and than testing
@pytest.mark.parametrize("recipe_test_data", test_cases)
@pytest.mark.asyncio
async def test_recipe_parser(recipe_test_data: RecipeSiteTestCase):
- recipe, _ = await scraper.create_from_url(recipe_test_data.url)
+ translator = local_provider()
+ recipe, _ = await scraper.create_from_url(recipe_test_data.url, translator)
assert recipe.slug == recipe_test_data.expected_slug
- assert len(recipe.recipe_instructions) == recipe_test_data.num_steps
+ assert len(recipe.recipe_instructions or []) == recipe_test_data.num_steps
assert len(recipe.recipe_ingredient) == recipe_test_data.num_ingredients
assert recipe.org_url == recipe_test_data.url
From 437f5c454f484f5f5fb097c204c17f0616b9e5d3 Mon Sep 17 00:00:00 2001
From: Michael Genson <71845777+michael-genson@users.noreply.github.com>
Date: Sat, 9 Dec 2023 22:04:21 +0000
Subject: [PATCH 05/82] fixed missing translator
---
mealie/services/scraper/scraper_strategies.py | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/mealie/services/scraper/scraper_strategies.py b/mealie/services/scraper/scraper_strategies.py
index a995ba389204..2a9046b5843a 100644
--- a/mealie/services/scraper/scraper_strategies.py
+++ b/mealie/services/scraper/scraper_strategies.py
@@ -105,7 +105,9 @@ class RecipeScraperPackage(ABCScraperStrategy):
return await safe_scrape_html(url)
def clean_scraper(self, scraped_data: SchemaScraperFactory.SchemaScraper, url: str) -> tuple[Recipe, ScrapedExtras]:
- def try_get_default(func_call: Callable | None, get_attr: str, default: Any, clean_func=None):
+ def try_get_default(
+ func_call: Callable | None, get_attr: str, default: Any, clean_func=None, **clean_func_kwargs
+ ):
value = default
if func_call:
@@ -121,7 +123,7 @@ class RecipeScraperPackage(ABCScraperStrategy):
self.logger.error(f"Error parsing recipe attribute '{get_attr}'")
if clean_func:
- value = clean_func(value)
+ value = clean_func(value, **clean_func_kwargs)
return value
@@ -141,9 +143,9 @@ class RecipeScraperPackage(ABCScraperStrategy):
except TypeError:
return []
- cook_time = try_get_default(None, "performTime", None, cleaner.clean_time) or try_get_default(
- None, "cookTime", None, cleaner.clean_time
- )
+ cook_time = try_get_default(
+ None, "performTime", None, cleaner.clean_time, translator=self.translator
+ ) or try_get_default(None, "cookTime", None, cleaner.clean_time, translator=self.translator)
extras = ScrapedExtras()
@@ -160,8 +162,8 @@ class RecipeScraperPackage(ABCScraperStrategy):
scraped_data.ingredients, "recipeIngredient", [""], cleaner.clean_ingredients
),
recipe_instructions=get_instructions(),
- total_time=try_get_default(None, "totalTime", None, cleaner.clean_time),
- prep_time=try_get_default(None, "prepTime", None, cleaner.clean_time),
+ total_time=try_get_default(None, "totalTime", None, cleaner.clean_time, translator=self.translator),
+ prep_time=try_get_default(None, "prepTime", None, cleaner.clean_time, translator=self.translator),
perform_time=cook_time,
org_url=url,
)
From 02831859135b65f25c5f49270a23feeef5919e9d Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Thu, 8 Feb 2024 02:52:45 -0600
Subject: [PATCH 06/82] New translations en-us.json (Hebrew)
---
frontend/lang/messages/he-IL.json | 44 +++++++++++++++----------------
1 file changed, 22 insertions(+), 22 deletions(-)
diff --git a/frontend/lang/messages/he-IL.json b/frontend/lang/messages/he-IL.json
index 05c04b93521f..b4a6049306b0 100644
--- a/frontend/lang/messages/he-IL.json
+++ b/frontend/lang/messages/he-IL.json
@@ -200,7 +200,7 @@
"created-on-date": "נוצר ב-{0}",
"unsaved-changes": "יש שינויים שלא נשמרו. לצאת לפני שמירה? אשר לשמירה, בטל למחיקת שינויים.",
"clipboard-copy-failure": "כשלון בהעתקה ללוח ההדבקה.",
- "confirm-delete-generic-items": "Are you sure you want to delete the following items?"
+ "confirm-delete-generic-items": "האם אתה בטוח שברצונך למחוק את הפריטים הנבחרים?"
},
"group": {
"are-you-sure-you-want-to-delete-the-group": "האם את/ה בטוח/ה שברצונך למחוק את {groupName}?",
@@ -259,7 +259,7 @@
},
"meal-plan": {
"create-a-new-meal-plan": "יצירת תכנית ארוחות חדשה",
- "update-this-meal-plan": "Update this Meal Plan",
+ "update-this-meal-plan": "עדכן את תכנון הארוחות",
"dinner-this-week": "ארוחות ערב השבוע",
"dinner-today": "ארוחת ערב היום",
"dinner-tonight": "ארוחת ערב היום",
@@ -474,11 +474,11 @@
"add-to-timeline": "הוסף לציר הזמן",
"recipe-added-to-list": "מתכון נוסף לרשימה",
"recipes-added-to-list": "מתכונים הוספו לרשימה",
- "successfully-added-to-list": "Successfully added to list",
+ "successfully-added-to-list": "נוסף לרשימה בהצלחה",
"recipe-added-to-mealplan": "מתכון נוסף לתכנון ארוחות",
"failed-to-add-recipes-to-list": "כשלון בהוספת מתכון לרשימה",
"failed-to-add-recipe-to-mealplan": "הוספת מתכון לתכנון ארוחות נכשלה",
- "failed-to-add-to-list": "Failed to add to list",
+ "failed-to-add-to-list": "כשלון בהוספה לרשימה",
"yield": "תשואה",
"quantity": "כמות",
"choose-unit": "בחירת יחידת מידה",
@@ -515,7 +515,7 @@
"how-did-it-turn-out": "איך יצא?",
"user-made-this": "{user} הכין את זה",
"last-made-date": "נעשה לאחרונה ב{date}",
- "api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
+ "api-extras-description": "מתכונים נוספים הם יכולת מפתח של Mealie API. הם מאפשרים ליצור צמדי key/value בצורת JSON על מנת לקרוא אותם בתוכנת צד שלישית. תוכלו להשתמש בצמדים האלה כדי לספק מידע, לדוגמא להפעיל אוטומציות או הודעות מותאמות אישית למכשירים מסויימים.",
"message-key": "מפתח הודעה",
"parse": "ניתוח",
"attach-images-hint": "הוסף תמונות ע\"י גרירה ושחרור אל תוך העורך",
@@ -537,8 +537,8 @@
"new-recipe-names-must-be-unique": "שם מתכון חדש חייב להיות ייחודי",
"scrape-recipe": "קריאת מתכון",
"scrape-recipe-description": "קריאת מתכון בעזרת לינק. ספק את הלינק של האתר שברצונך לקרוא, ומילי תנסה לקרוא את המתכון מהאתר ולהוסיף אותו לאוסף.",
- "scrape-recipe-have-a-lot-of-recipes": "Have a lot of recipes you want to scrape at once?",
- "scrape-recipe-suggest-bulk-importer": "Try out the bulk importer",
+ "scrape-recipe-have-a-lot-of-recipes": "יש לך הרבה מתכונים שאתה רוצה לקרוא בבת אחת?",
+ "scrape-recipe-suggest-bulk-importer": "נסה את יכולת קריאת רשימה",
"import-original-keywords-as-tags": "ייבא שמות מפתח מקוריות כתגיות",
"stay-in-edit-mode": "השאר במצב עריכה",
"import-from-zip": "ייבא מקובץ",
@@ -562,7 +562,7 @@
"upload-image": "העלה תמונה",
"screen-awake": "השאר את המסך פעיל",
"remove-image": "האם למחוק את התמונה?",
- "nextStep": "Next step"
+ "nextStep": "השלב הבא"
},
"search": {
"advanced-search": "חיפוש מתקדם",
@@ -797,7 +797,7 @@
"untagged-count": "לא מתוייג {count}",
"create-a-tag": "צור תגית",
"tag-name": "שם תגית",
- "tag": "Tag"
+ "tag": "תגית"
},
"tool": {
"tools": "כלים",
@@ -807,7 +807,7 @@
"create-new-tool": "יצירת כלי חדש",
"on-hand-checkbox-label": "הראה מה יש לי במטבח",
"required-tools": "צריך כלים",
- "tool": "Tool"
+ "tool": "כלי"
},
"user": {
"admin": "אדמין",
@@ -898,10 +898,10 @@
"user-can-organize-group-data": "משתמש יכול לשנות מידע של קבוצה",
"enable-advanced-features": "אפשר אפשרויות מתקדמות",
"it-looks-like-this-is-your-first-time-logging-in": "נראה שזו ההתחברות הראשונה שלך.",
- "dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!",
+ "dont-want-to-see-this-anymore-be-sure-to-change-your-email": "לא רוצה לראות את זה יותר? דאג לשנות את המייל של בהגדרות המשתמש!",
"forgot-password": "שכחתי סיסמא",
- "forgot-password-text": "Please enter your email address and we will send you a link to reset your password.",
- "changes-reflected-immediately": "Changes to this user will be reflected immediately."
+ "forgot-password-text": "נא לספק כתובת דוא\"ל. אנו נשלח לך הודעת דוא\"ל לצורך איפוס הסיסמה שלך.",
+ "changes-reflected-immediately": "השינויים למשתמש זה יבוצעו מיידית."
},
"language-dialog": {
"translated": "תורגם",
@@ -923,8 +923,8 @@
"food-label": "תוית אוכל",
"edit-food": "עריכת מזון",
"food-data": "נתוני אוכל",
- "example-food-singular": "ex: Onion",
- "example-food-plural": "ex: Onions"
+ "example-food-singular": "דוגמא: בצל",
+ "example-food-plural": "דוגמא: בצלים"
},
"units": {
"seed-dialog-text": "אכלס את מסד הנתונים עם יחידות מדידה בהתאם לשפה המקומית שלך.",
@@ -935,7 +935,7 @@
"merging-unit-into-unit": "ממזג את {0} לתוך {1}",
"create-unit": "יצירת יחידה",
"abbreviation": "קיצור",
- "plural-abbreviation": "Plural Abbreviation",
+ "plural-abbreviation": "צורת הרבית",
"description": "תיאור",
"display-as-fraction": "הצגה כשבר",
"use-abbreviation": "השתמש בקיצור",
@@ -943,10 +943,10 @@
"unit-data": "נתוני יחידה",
"use-abbv": "השתמש בקיצור",
"fraction": "שבר",
- "example-unit-singular": "ex: Tablespoon",
- "example-unit-plural": "ex: Tablespoons",
- "example-unit-abbreviation-singular": "ex: Tbsp",
- "example-unit-abbreviation-plural": "ex: Tbsps"
+ "example-unit-singular": "דוגמא: כפית",
+ "example-unit-plural": "דוגמא: כפיות",
+ "example-unit-abbreviation-singular": "דוגמא: כף",
+ "example-unit-abbreviation-plural": "דוגמא: כפות"
},
"labels": {
"seed-dialog-text": "אכלס את מסד הנתונים בתגיות נפוצות בהתאם לשפה המקומית שלך.",
@@ -1187,7 +1187,7 @@
"require-all-tools": "זקוק לכל הכלים",
"cookbook-name": "שם ספר בישול",
"cookbook-with-name": "ספר בישול {0}",
- "create-a-cookbook": "Create a Cookbook",
- "cookbook": "Cookbook"
+ "create-a-cookbook": "צור ספר בישול חדש",
+ "cookbook": "ספר בישול"
}
}
From 94342081f97f248794042974ea302de2c2654553 Mon Sep 17 00:00:00 2001
From: Michael Genson <71845777+michael-genson@users.noreply.github.com>
Date: Thu, 8 Feb 2024 14:43:13 +0000
Subject: [PATCH 07/82] I don't know why I changed this
---
mealie/services/scraper/cleaner.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mealie/services/scraper/cleaner.py b/mealie/services/scraper/cleaner.py
index ba816e0365d3..ee64bd3e3945 100644
--- a/mealie/services/scraper/cleaner.py
+++ b/mealie/services/scraper/cleaner.py
@@ -375,7 +375,7 @@ def clean_time(time_entry: str | timedelta | None, translator: Translator) -> No
# TODO: Not sure what to do here
return str(time_entry)
case _:
- logger.warning("[SCRAPER] Unexpected type or structure for time_entries")
+ logger.warning("[SCRAPER] Unexpected type or structure for variable time_entry")
return None
From bb9620b67eef64160ac1270c0478c2fa77f8abf2 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:53:58 -0600
Subject: [PATCH 08/82] New translations en-us.json (Romanian)
---
mealie/lang/messages/ro-RO.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/ro-RO.json b/mealie/lang/messages/ro-RO.json
index 1507db797937..81c86e865817 100644
--- a/mealie/lang/messages/ro-RO.json
+++ b/mealie/lang/messages/ro-RO.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} a fost actualizat, {url}",
"generic-duplicated": "{name} a fost duplicat",
"generic-deleted": "{name} a fost șters"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From a3693d83a3778890f38254b5fb5042e414a275ed Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:53:59 -0600
Subject: [PATCH 09/82] New translations en-us.json (French)
---
mealie/lang/messages/fr-FR.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/fr-FR.json b/mealie/lang/messages/fr-FR.json
index 16f7cc787356..fa3c806135c8 100644
--- a/mealie/lang/messages/fr-FR.json
+++ b/mealie/lang/messages/fr-FR.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} a été mis à jour, {url}",
"generic-duplicated": "{name} a été dupliqué",
"generic-deleted": "{name} a été supprimé"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From d916c0a4722176405b43612e71c1edae2922cac6 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:00 -0600
Subject: [PATCH 10/82] New translations en-us.json (Spanish)
---
mealie/lang/messages/es-ES.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/es-ES.json b/mealie/lang/messages/es-ES.json
index c982a50319a2..b7ee19a8697e 100644
--- a/mealie/lang/messages/es-ES.json
+++ b/mealie/lang/messages/es-ES.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "Se ha actualizado {name}, {url}",
"generic-duplicated": "Se ha duplicado {name}",
"generic-deleted": "Se ha eliminado {name}"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From 5a7dc14a48f24f625e09eaafa6299e525cf17cda Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:00 -0600
Subject: [PATCH 11/82] New translations en-us.json (Afrikaans)
---
mealie/lang/messages/af-ZA.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/af-ZA.json b/mealie/lang/messages/af-ZA.json
index d717ff2c73df..ec80ed4fe38d 100644
--- a/mealie/lang/messages/af-ZA.json
+++ b/mealie/lang/messages/af-ZA.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} is opgedateer, {url}",
"generic-duplicated": "{name} is gekopieer",
"generic-deleted": "{name} is verwyder"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From 9cf181b4155d6d33b0341e939567c1828f426a6d Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:01 -0600
Subject: [PATCH 12/82] New translations en-us.json (Arabic)
---
mealie/lang/messages/ar-SA.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/ar-SA.json b/mealie/lang/messages/ar-SA.json
index d5dc93c9570f..8251d6923d93 100644
--- a/mealie/lang/messages/ar-SA.json
+++ b/mealie/lang/messages/ar-SA.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} تم تحديثه، {url}",
"generic-duplicated": "تم تكرار {name}",
"generic-deleted": "تم حذف {name}"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From d954869dd773e1c5f3af743d4ba141f5aded457e Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:02 -0600
Subject: [PATCH 13/82] New translations en-us.json (Bulgarian)
---
frontend/lang/messages/bg-BG.json | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/frontend/lang/messages/bg-BG.json b/frontend/lang/messages/bg-BG.json
index 0c7a74e3efe0..35e0b0872fd8 100644
--- a/frontend/lang/messages/bg-BG.json
+++ b/frontend/lang/messages/bg-BG.json
@@ -200,7 +200,7 @@
"created-on-date": "Създадено на {0}",
"unsaved-changes": "Имате незапазени промени. Желаете ли да ги запазите преди да излезете? Натиснете Ок за запазване и Отказ за отхвърляне на промените.",
"clipboard-copy-failure": "Линкът към рецептата е копиран в клипборда.",
- "confirm-delete-generic-items": "Are you sure you want to delete the following items?"
+ "confirm-delete-generic-items": "Сигурни ли сте, че желаете да изтриете следните елементи?"
},
"group": {
"are-you-sure-you-want-to-delete-the-group": "Сигурни ли сте, че искате да изтриете {groupName}?",
@@ -259,7 +259,7 @@
},
"meal-plan": {
"create-a-new-meal-plan": "Създаване на нов хранителен план",
- "update-this-meal-plan": "Update this Meal Plan",
+ "update-this-meal-plan": "Обнови този План за хранене",
"dinner-this-week": "Вечеря тази седмица",
"dinner-today": "Вечеря Днес",
"dinner-tonight": "Вечеря ТАЗИ ВЕЧЕР",
@@ -474,11 +474,11 @@
"add-to-timeline": "Добави към времевата линия",
"recipe-added-to-list": "Рецептата е добавена към списъка",
"recipes-added-to-list": "Рецептите са добавени към списъка",
- "successfully-added-to-list": "Successfully added to list",
+ "successfully-added-to-list": "Успешно добавено в списъка",
"recipe-added-to-mealplan": "Рецептата е добавена към хранителния план",
"failed-to-add-recipes-to-list": "Неуспешно добавяне на рецепта към списъка",
"failed-to-add-recipe-to-mealplan": "Рецептата не беше добавена към хранителния план",
- "failed-to-add-to-list": "Failed to add to list",
+ "failed-to-add-to-list": "Неуспешно добавяне към списъка",
"yield": "Добив",
"quantity": "Количество",
"choose-unit": "Избери единица",
@@ -537,8 +537,8 @@
"new-recipe-names-must-be-unique": "Името на рецептата трябва да бъде уникално",
"scrape-recipe": "Обхождане на рецепта",
"scrape-recipe-description": "Обходи рецепта по линк. Предоставете линк за сайт, който искате да бъде обходен. Mealie ще опита да обходи рецептата от този сайт и да я добави във Вашата колекция.",
- "scrape-recipe-have-a-lot-of-recipes": "Have a lot of recipes you want to scrape at once?",
- "scrape-recipe-suggest-bulk-importer": "Try out the bulk importer",
+ "scrape-recipe-have-a-lot-of-recipes": "Имате много рецепти, които искате да обходите наведнъж?",
+ "scrape-recipe-suggest-bulk-importer": "Пробвайте масовото импорторане",
"import-original-keywords-as-tags": "Импортирай оригиналните ключови думи като тагове",
"stay-in-edit-mode": "Остани в режим на редакция",
"import-from-zip": "Импортирай от Zip",
@@ -562,7 +562,7 @@
"upload-image": "Качване на изображение",
"screen-awake": "Запази екрана активен",
"remove-image": "Премахване на изображение",
- "nextStep": "Next step"
+ "nextStep": "Следваща стъпка"
},
"search": {
"advanced-search": "Разширено търсене",
@@ -1187,7 +1187,7 @@
"require-all-tools": "Изискване на всички инструменти",
"cookbook-name": "Име на книгата с рецепти",
"cookbook-with-name": "Книга с рецепти {0}",
- "create-a-cookbook": "Create a Cookbook",
- "cookbook": "Cookbook"
+ "create-a-cookbook": "Създай Готварска книга",
+ "cookbook": "Готварска книга"
}
}
From 88a52092376466d6048cf27e2076c36d7bac3aca Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:03 -0600
Subject: [PATCH 14/82] New translations en-us.json (Bulgarian)
---
mealie/lang/messages/bg-BG.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/bg-BG.json b/mealie/lang/messages/bg-BG.json
index 9673ffc2f82d..6b70987568ad 100644
--- a/mealie/lang/messages/bg-BG.json
+++ b/mealie/lang/messages/bg-BG.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} беше актуализирано, {url}",
"generic-duplicated": "{name} е дублицирано",
"generic-deleted": "{name} беше изтрито"
+ },
+ "datetime": {
+ "year": "година|години",
+ "day": "ден|дни",
+ "hour": "час|часове",
+ "minute": "минута|минути",
+ "second": "секунда|секунди",
+ "millisecond": "милисекунда|милисекунди",
+ "microsecond": "микросекунда|микросекунди"
}
}
From 166f2486a2b6a89b4ab6be3b4aef1ca8f7df9aa9 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:04 -0600
Subject: [PATCH 15/82] New translations en-us.json (Catalan)
---
mealie/lang/messages/ca-ES.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/ca-ES.json b/mealie/lang/messages/ca-ES.json
index bb7cc17737fc..5257c1c1ad68 100644
--- a/mealie/lang/messages/ca-ES.json
+++ b/mealie/lang/messages/ca-ES.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} ha estat actualitzat, {url}",
"generic-duplicated": "S'ha duplicat {name}",
"generic-deleted": "{name} ha estat eliminat"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From f74610a0f7e651ce4c63375ffd30fa74f48a47df Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:05 -0600
Subject: [PATCH 16/82] New translations en-us.json (Czech)
---
mealie/lang/messages/cs-CZ.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/cs-CZ.json b/mealie/lang/messages/cs-CZ.json
index 7753ac775190..a944f3a92910 100644
--- a/mealie/lang/messages/cs-CZ.json
+++ b/mealie/lang/messages/cs-CZ.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} byl aktualizován, {url}",
"generic-duplicated": "{name} byl duplikován",
"generic-deleted": "{name} byl odstraněn"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From 5f4a36bbd8056968621ceb6c4af2408d4c3bd3e6 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:06 -0600
Subject: [PATCH 17/82] New translations en-us.json (Danish)
---
mealie/lang/messages/da-DK.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/da-DK.json b/mealie/lang/messages/da-DK.json
index 4be73c5c5aee..987166defe69 100644
--- a/mealie/lang/messages/da-DK.json
+++ b/mealie/lang/messages/da-DK.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} er blevet opdateret, {url}",
"generic-duplicated": "{name} er blevet dublikeret",
"generic-deleted": "{name} er blevet slettet"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From dddeed63599d6295de8b3b71a3d336b8f541a61d Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:07 -0600
Subject: [PATCH 18/82] New translations en-us.json (German)
---
mealie/lang/messages/de-DE.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/de-DE.json b/mealie/lang/messages/de-DE.json
index 3cd40401117a..07396530601a 100644
--- a/mealie/lang/messages/de-DE.json
+++ b/mealie/lang/messages/de-DE.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} wurde aktualisiert, {url}",
"generic-duplicated": "{name} wurde dupliziert",
"generic-deleted": "{name} wurde gelöscht"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From 82dcfb5635e88adcbed4e3ae8861077bfff68849 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:08 -0600
Subject: [PATCH 19/82] New translations en-us.json (Greek)
---
mealie/lang/messages/el-GR.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/el-GR.json b/mealie/lang/messages/el-GR.json
index a4990159d5d5..16bee3cc7743 100644
--- a/mealie/lang/messages/el-GR.json
+++ b/mealie/lang/messages/el-GR.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} has been updated, {url}",
"generic-duplicated": "{name} has been duplicated",
"generic-deleted": "{name} has been deleted"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From e6351273e278dfafbf206a63b391d2bc7895096d Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:09 -0600
Subject: [PATCH 20/82] New translations en-us.json (Finnish)
---
mealie/lang/messages/fi-FI.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/fi-FI.json b/mealie/lang/messages/fi-FI.json
index 4e9ac01bb7b1..ba1a8e074e30 100644
--- a/mealie/lang/messages/fi-FI.json
+++ b/mealie/lang/messages/fi-FI.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} on päivitetty, {url}",
"generic-duplicated": "{name} on kahdennettu",
"generic-deleted": "{name} on poistettu"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From fb70bc76b3dfb17fb3bd3236f3a0030da54c6b51 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:10 -0600
Subject: [PATCH 21/82] New translations en-us.json (Hebrew)
---
mealie/lang/messages/he-IL.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/he-IL.json b/mealie/lang/messages/he-IL.json
index 9fc410fb3041..f36eb1411128 100644
--- a/mealie/lang/messages/he-IL.json
+++ b/mealie/lang/messages/he-IL.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} עודכן, {url}",
"generic-duplicated": "{name} שוכפל",
"generic-deleted": "{name} נמחק"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From a12aba6b9d0b940017e7e397ba7a51964babfc23 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:11 -0600
Subject: [PATCH 22/82] New translations en-us.json (Hungarian)
---
mealie/lang/messages/hu-HU.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/hu-HU.json b/mealie/lang/messages/hu-HU.json
index 5594f035c3ed..d6c613245fcb 100644
--- a/mealie/lang/messages/hu-HU.json
+++ b/mealie/lang/messages/hu-HU.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} frissítve, {url}",
"generic-duplicated": "{name} duplikálva",
"generic-deleted": "{name} törölve lett"
+ },
+ "datetime": {
+ "year": "év|év",
+ "day": "nap/nap",
+ "hour": "óra|óra",
+ "minute": "perc/perc",
+ "second": "másodperc|másodperc",
+ "millisecond": "ezredmásodperc|ezredmásodperc",
+ "microsecond": "mikroszekundum|mikroszekundum"
}
}
From de1486c57ff9476bd437bc3df03585ae44cc0dcf Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:12 -0600
Subject: [PATCH 23/82] New translations en-us.json (Italian)
---
mealie/lang/messages/it-IT.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/it-IT.json b/mealie/lang/messages/it-IT.json
index aae7613341a0..3e0adad96457 100644
--- a/mealie/lang/messages/it-IT.json
+++ b/mealie/lang/messages/it-IT.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} è stato aggiornato, {url}",
"generic-duplicated": "{name} è stato duplicato",
"generic-deleted": "{name} è stato eliminato"
+ },
+ "datetime": {
+ "year": "anno|anni",
+ "day": "giorno|giorni",
+ "hour": "ora|ore",
+ "minute": "minuto|minuti",
+ "second": "secondo|secondi",
+ "millisecond": "millisecondo|millisecondi",
+ "microsecond": "microsecondo|microsecondi"
}
}
From 3ee53977ecfd6a3acc739ddb68d41de66b0fba30 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:12 -0600
Subject: [PATCH 24/82] New translations en-us.json (Japanese)
---
mealie/lang/messages/ja-JP.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/ja-JP.json b/mealie/lang/messages/ja-JP.json
index 25ad979ccdc0..5a3f3e0601da 100644
--- a/mealie/lang/messages/ja-JP.json
+++ b/mealie/lang/messages/ja-JP.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} has been updated, {url}",
"generic-duplicated": "{name} has been duplicated",
"generic-deleted": "{name} has been deleted"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From 43174dcebe25bffd81bde551aeb68f57f7b484fe Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:13 -0600
Subject: [PATCH 25/82] New translations en-us.json (Korean)
---
mealie/lang/messages/ko-KR.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/ko-KR.json b/mealie/lang/messages/ko-KR.json
index a4990159d5d5..16bee3cc7743 100644
--- a/mealie/lang/messages/ko-KR.json
+++ b/mealie/lang/messages/ko-KR.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} has been updated, {url}",
"generic-duplicated": "{name} has been duplicated",
"generic-deleted": "{name} has been deleted"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From a14c1b48c64bae24fc2155951061db1ea2a8d830 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:15 -0600
Subject: [PATCH 26/82] New translations en-us.json (Lithuanian)
---
mealie/lang/messages/lt-LT.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/lt-LT.json b/mealie/lang/messages/lt-LT.json
index 79be148c6b7d..3433e0158c03 100644
--- a/mealie/lang/messages/lt-LT.json
+++ b/mealie/lang/messages/lt-LT.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} atnaujintas, {url}",
"generic-duplicated": "{name} buvo nukopijuotas",
"generic-deleted": "{name} ištrintas"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From a071a7d16b2ca8b6a75a836728faba91877ff58b Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:16 -0600
Subject: [PATCH 27/82] New translations en-us.json (Dutch)
---
mealie/lang/messages/nl-NL.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/nl-NL.json b/mealie/lang/messages/nl-NL.json
index 3cc264704248..1a63e325a51c 100644
--- a/mealie/lang/messages/nl-NL.json
+++ b/mealie/lang/messages/nl-NL.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} is bijgewerkt, {url}",
"generic-duplicated": "(naam) is gekopieerd",
"generic-deleted": "{name} is verwijderd"
+ },
+ "datetime": {
+ "year": "jaar|jaren",
+ "day": "dag|dagen",
+ "hour": "uur|uren",
+ "minute": "minuut|minuten",
+ "second": "seconde|seconden",
+ "millisecond": "milliseconde milliseconden",
+ "microsecond": "microseconde microseconden"
}
}
From 2aa8c5810a94e17a256b0f2bc8c08faade78bcc7 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:17 -0600
Subject: [PATCH 28/82] New translations en-us.json (Norwegian)
---
mealie/lang/messages/no-NO.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/no-NO.json b/mealie/lang/messages/no-NO.json
index 4fb57f87a1b2..307097513c38 100644
--- a/mealie/lang/messages/no-NO.json
+++ b/mealie/lang/messages/no-NO.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} har blitt oppdatert, {url}",
"generic-duplicated": "{name} har blitt duplisert",
"generic-deleted": "{name} har blitt slettet"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From 04176f692741f15b3a0312aa93a406fa3bde71ff Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:18 -0600
Subject: [PATCH 29/82] New translations en-us.json (Polish)
---
mealie/lang/messages/pl-PL.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/pl-PL.json b/mealie/lang/messages/pl-PL.json
index 5be65509c7dc..6bd2e8866eee 100644
--- a/mealie/lang/messages/pl-PL.json
+++ b/mealie/lang/messages/pl-PL.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} został zaktualizowany. {url}",
"generic-duplicated": "{name} został zduplikowany",
"generic-deleted": "{name} został usunięty"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From 3f9c46a763258396ae21b29248e01c9cee0d3c41 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:19 -0600
Subject: [PATCH 30/82] New translations en-us.json (Portuguese)
---
mealie/lang/messages/pt-PT.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/pt-PT.json b/mealie/lang/messages/pt-PT.json
index c84b060bcf5d..e0c59513670c 100644
--- a/mealie/lang/messages/pt-PT.json
+++ b/mealie/lang/messages/pt-PT.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} foi atualizado, {url}",
"generic-duplicated": "{name} foi duplicado",
"generic-deleted": "{name} foi removido"
+ },
+ "datetime": {
+ "year": "ano|anos",
+ "day": "dia|dias",
+ "hour": "hora|horas",
+ "minute": "minuto|minutos",
+ "second": "segundo|segundos",
+ "millisecond": "milissegundo|milissegundos",
+ "microsecond": "microssegundo|microssegundos"
}
}
From d5d86488a012ab9ce567921127e9ffe5de1529b3 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:20 -0600
Subject: [PATCH 31/82] New translations en-us.json (Russian)
---
mealie/lang/messages/ru-RU.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/ru-RU.json b/mealie/lang/messages/ru-RU.json
index c123d0b62e45..39c23285a506 100644
--- a/mealie/lang/messages/ru-RU.json
+++ b/mealie/lang/messages/ru-RU.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} был обновлен, {url}",
"generic-duplicated": "Копия {name} была создана",
"generic-deleted": "{name} был удален"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From ac5a63e32d34e59aada58d6c1a4b9fdd251b1be4 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:21 -0600
Subject: [PATCH 32/82] New translations en-us.json (Slovak)
---
mealie/lang/messages/sk-SK.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/sk-SK.json b/mealie/lang/messages/sk-SK.json
index 29efd24b3c35..dfc3423ded2b 100644
--- a/mealie/lang/messages/sk-SK.json
+++ b/mealie/lang/messages/sk-SK.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} bol aktualizovaný, {url}",
"generic-duplicated": "{name} bol duplikovaný",
"generic-deleted": "{name} bol vymazaný"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From 1b3cbb38aeb14921592e7f76b9634e0054ecedd9 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:22 -0600
Subject: [PATCH 33/82] New translations en-us.json (Slovenian)
---
mealie/lang/messages/sl-SI.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/sl-SI.json b/mealie/lang/messages/sl-SI.json
index f2d4fd205ee1..6502aa11f93e 100644
--- a/mealie/lang/messages/sl-SI.json
+++ b/mealie/lang/messages/sl-SI.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} je bil posodobljen, {url}",
"generic-duplicated": "{name} je bilo podvojeno",
"generic-deleted": "{name} je bil izbrisan"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From 90e373582b4c0f189ba7e9d01f06bbcb1bd78969 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:22 -0600
Subject: [PATCH 34/82] New translations en-us.json (Serbian (Cyrillic))
---
mealie/lang/messages/sr-SP.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/sr-SP.json b/mealie/lang/messages/sr-SP.json
index 2b07d8cca182..d83526c1a0c9 100644
--- a/mealie/lang/messages/sr-SP.json
+++ b/mealie/lang/messages/sr-SP.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} је ажурирано, {url}",
"generic-duplicated": "{name} је дуплиран",
"generic-deleted": "{name} је обрисан"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From b16fa49f16724435cc2a93ce7901f13bda7ef15b Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:23 -0600
Subject: [PATCH 35/82] New translations en-us.json (Swedish)
---
mealie/lang/messages/sv-SE.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/sv-SE.json b/mealie/lang/messages/sv-SE.json
index d9bc6728a9f3..d2e59308f6d3 100644
--- a/mealie/lang/messages/sv-SE.json
+++ b/mealie/lang/messages/sv-SE.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} har uppdaterats, {url}",
"generic-duplicated": "{name} har duplicerats",
"generic-deleted": "{name} har tagits bort"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From 22cc19a0857fd57f8db6736a751de4c9ff4f243d Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:24 -0600
Subject: [PATCH 36/82] New translations en-us.json (Turkish)
---
mealie/lang/messages/tr-TR.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/tr-TR.json b/mealie/lang/messages/tr-TR.json
index 8e60c7c1f891..b1292ad53462 100644
--- a/mealie/lang/messages/tr-TR.json
+++ b/mealie/lang/messages/tr-TR.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} güncellendi, {url}",
"generic-duplicated": "{name} yinelendi",
"generic-deleted": "{name} silindi"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From 7f6de730a392c6aa74403340f11224745c42d0c2 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:25 -0600
Subject: [PATCH 37/82] New translations en-us.json (Ukrainian)
---
mealie/lang/messages/uk-UA.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/uk-UA.json b/mealie/lang/messages/uk-UA.json
index aed591982bd7..bb0a9671a242 100644
--- a/mealie/lang/messages/uk-UA.json
+++ b/mealie/lang/messages/uk-UA.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} оновлено, {url}",
"generic-duplicated": "{name} дубльовано",
"generic-deleted": "{name} видалено"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From 2b711747656ff29b3b83bb774ed2f24925b8628f Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:26 -0600
Subject: [PATCH 38/82] New translations en-us.json (Chinese Simplified)
---
mealie/lang/messages/zh-CN.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/zh-CN.json b/mealie/lang/messages/zh-CN.json
index 68b2c62650ac..f77ed0464fdd 100644
--- a/mealie/lang/messages/zh-CN.json
+++ b/mealie/lang/messages/zh-CN.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} 已创建, {url}",
"generic-duplicated": "{name} 已复制",
"generic-deleted": "{name} 已删除"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From 6d64418727ef819de00f743f8f8482d3cacdfd98 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:27 -0600
Subject: [PATCH 39/82] New translations en-us.json (Chinese Traditional)
---
mealie/lang/messages/zh-TW.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/zh-TW.json b/mealie/lang/messages/zh-TW.json
index 1690e19e890f..0d5f022f301e 100644
--- a/mealie/lang/messages/zh-TW.json
+++ b/mealie/lang/messages/zh-TW.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} has been updated, {url}",
"generic-duplicated": "{name} has been duplicated",
"generic-deleted": "{name} has been deleted"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From a5e56dc97fd1ab9d827b1dea27288373559b9dde Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:27 -0600
Subject: [PATCH 40/82] New translations en-us.json (Vietnamese)
---
mealie/lang/messages/vi-VN.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/vi-VN.json b/mealie/lang/messages/vi-VN.json
index a4990159d5d5..16bee3cc7743 100644
--- a/mealie/lang/messages/vi-VN.json
+++ b/mealie/lang/messages/vi-VN.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} has been updated, {url}",
"generic-duplicated": "{name} has been duplicated",
"generic-deleted": "{name} has been deleted"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From dbec3e58f9f26e93bb1f36b3b6d1fc4e367d99ba Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:28 -0600
Subject: [PATCH 41/82] New translations en-us.json (Galician)
---
mealie/lang/messages/gl-ES.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/gl-ES.json b/mealie/lang/messages/gl-ES.json
index a4990159d5d5..16bee3cc7743 100644
--- a/mealie/lang/messages/gl-ES.json
+++ b/mealie/lang/messages/gl-ES.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} has been updated, {url}",
"generic-duplicated": "{name} has been duplicated",
"generic-deleted": "{name} has been deleted"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From f0d0d0d463e33369bbaee66fb2aee7760ec8ce1e Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:29 -0600
Subject: [PATCH 42/82] New translations en-us.json (Icelandic)
---
mealie/lang/messages/is-IS.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/is-IS.json b/mealie/lang/messages/is-IS.json
index a4990159d5d5..16bee3cc7743 100644
--- a/mealie/lang/messages/is-IS.json
+++ b/mealie/lang/messages/is-IS.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} has been updated, {url}",
"generic-duplicated": "{name} has been duplicated",
"generic-deleted": "{name} has been deleted"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From 2244c3a8b52837d38e4177df7d084ba61356ff0e Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:30 -0600
Subject: [PATCH 43/82] New translations en-us.json (Portuguese, Brazilian)
---
mealie/lang/messages/pt-BR.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/pt-BR.json b/mealie/lang/messages/pt-BR.json
index 9adccaaa8e3f..b5fd9f9260c7 100644
--- a/mealie/lang/messages/pt-BR.json
+++ b/mealie/lang/messages/pt-BR.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} foi atualizado, {url}",
"generic-duplicated": "{name} foi duplicada",
"generic-deleted": "{name} foi excluído"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From 9ce71c911facda65b64d49f66e03d504f39be2a2 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:31 -0600
Subject: [PATCH 44/82] New translations en-us.json (Croatian)
---
mealie/lang/messages/hr-HR.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/hr-HR.json b/mealie/lang/messages/hr-HR.json
index 7301dc6a8bd6..fc112264c1f1 100644
--- a/mealie/lang/messages/hr-HR.json
+++ b/mealie/lang/messages/hr-HR.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} je ažuriran, {url}",
"generic-duplicated": "{name} je dupliciran",
"generic-deleted": "{name} je obrisan"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From 47086da6b698a48b249243bb16a8ae46417e4a00 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:32 -0600
Subject: [PATCH 45/82] New translations en-us.json (Latvian)
---
mealie/lang/messages/lv-LV.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/lv-LV.json b/mealie/lang/messages/lv-LV.json
index a4990159d5d5..16bee3cc7743 100644
--- a/mealie/lang/messages/lv-LV.json
+++ b/mealie/lang/messages/lv-LV.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} has been updated, {url}",
"generic-duplicated": "{name} has been duplicated",
"generic-deleted": "{name} has been deleted"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From 3d0adda4055c83100054b712bd4b2cde22784cd4 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:33 -0600
Subject: [PATCH 46/82] New translations en-us.json (English, United Kingdom)
---
mealie/lang/messages/en-GB.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/en-GB.json b/mealie/lang/messages/en-GB.json
index a4990159d5d5..16bee3cc7743 100644
--- a/mealie/lang/messages/en-GB.json
+++ b/mealie/lang/messages/en-GB.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} has been updated, {url}",
"generic-duplicated": "{name} has been duplicated",
"generic-deleted": "{name} has been deleted"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From 94a85f997787e9685a003cc6a886d315a54a587f Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Fri, 9 Feb 2024 02:54:34 -0600
Subject: [PATCH 47/82] New translations en-us.json (French, Canada)
---
mealie/lang/messages/fr-CA.json | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/mealie/lang/messages/fr-CA.json b/mealie/lang/messages/fr-CA.json
index 082f05e7a9cc..10c677ae3347 100644
--- a/mealie/lang/messages/fr-CA.json
+++ b/mealie/lang/messages/fr-CA.json
@@ -31,5 +31,14 @@
"generic-updated-with-url": "{name} a été mis à jour, {url}",
"generic-duplicated": "{name} a été dupliqué",
"generic-deleted": "{name} a été supprimé"
+ },
+ "datetime": {
+ "year": "year|years",
+ "day": "day|days",
+ "hour": "hour|hours",
+ "minute": "minute|minutes",
+ "second": "second|seconds",
+ "millisecond": "millisecond|milliseconds",
+ "microsecond": "microsecond|microseconds"
}
}
From 1e04e9424f1e7f817b991fe9a1c3fc6547370917 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Fri, 9 Feb 2024 05:54:04 -0900
Subject: [PATCH 48/82] Update dependency python-slugify to v8.0.4 (#3131)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
poetry.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/poetry.lock b/poetry.lock
index 5b64e4f68904..e63b8fbe213f 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1979,13 +1979,13 @@ dev = ["atomicwrites (==1.2.1)", "attrs (==19.2.0)", "coverage (==6.5.0)", "hatc
[[package]]
name = "python-slugify"
-version = "8.0.3"
+version = "8.0.4"
description = "A Python slugify application that also handles Unicode"
optional = false
python-versions = ">=3.7"
files = [
- {file = "python-slugify-8.0.3.tar.gz", hash = "sha256:e04cba5f1c562502a1175c84a8bc23890c54cdaf23fccaaf0bf78511508cabed"},
- {file = "python_slugify-8.0.3-py2.py3-none-any.whl", hash = "sha256:c71189c161e8c671f1b141034d9a56308a8a5978cd13d40446c879569212fdd1"},
+ {file = "python-slugify-8.0.4.tar.gz", hash = "sha256:59202371d1d05b54a9e7720c5e038f928f45daaffe41dd10822f3907b937c856"},
+ {file = "python_slugify-8.0.4-py2.py3-none-any.whl", hash = "sha256:276540b79961052b66b7d116620b36518847f52d5fd9e3a70164fc8c50faa6b8"},
]
[package.dependencies]
From f4e77f6837dc5fa52f9f789bcd09b30a2f85dff6 Mon Sep 17 00:00:00 2001
From: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
Date: Fri, 9 Feb 2024 16:32:18 +0000
Subject: [PATCH 49/82] add docker in docker
---
.devcontainer/devcontainer.json | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index a37cfd0076fd..2f4334e244b5 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -52,4 +52,10 @@
// "features": {
// "git": "latest"
// }
+ "features": {
+ "docker-in-docker": {
+ "version": "latest",
+ "dockerDashComposeVersion": "v2"
+ }
+ }
}
From a38dfc094e542c2ea4b659937ac60ad4acba859f Mon Sep 17 00:00:00 2001
From: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
Date: Fri, 9 Feb 2024 17:52:41 +0000
Subject: [PATCH 50/82] update to use newer version of the feature
---
.devcontainer/devcontainer.json | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 2f4334e244b5..d8676bc85817 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -53,8 +53,7 @@
// "git": "latest"
// }
"features": {
- "docker-in-docker": {
- "version": "latest",
+ "ghcr.io/devcontainers/features/docker-in-docker:2": {
"dockerDashComposeVersion": "v2"
}
}
From 520bc7154a31ba73911b0ec1aca3b16b4836866e Mon Sep 17 00:00:00 2001
From: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
Date: Fri, 9 Feb 2024 21:12:06 +0100
Subject: [PATCH 51/82] Remove old comments
---
.devcontainer/devcontainer.json | 3 ---
1 file changed, 3 deletions(-)
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index d8676bc85817..fe02ce452ff7 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -49,9 +49,6 @@
"onCreateCommand": "sudo chown -R vscode:vscode /workspaces/mealie/frontend/node_modules && task setup",
// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "vscode",
- // "features": {
- // "git": "latest"
- // }
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:2": {
"dockerDashComposeVersion": "v2"
From ce58da8e1870094adf5512191a10c362064de59b Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sat, 10 Feb 2024 01:08:10 +0000
Subject: [PATCH 52/82] Update dependency python-multipart to ^0.0.8
---
poetry.lock | 8 ++++----
pyproject.toml | 2 +-
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/poetry.lock b/poetry.lock
index e63b8fbe213f..a25735422c51 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1965,13 +1965,13 @@ pyasn1_modules = ">=0.1.5"
[[package]]
name = "python-multipart"
-version = "0.0.7"
+version = "0.0.8"
description = "A streaming multipart parser for Python"
optional = false
python-versions = ">=3.7"
files = [
- {file = "python_multipart-0.0.7-py3-none-any.whl", hash = "sha256:b1fef9a53b74c795e2347daac8c54b252d9e0df9c619712691c1cc8021bd3c49"},
- {file = "python_multipart-0.0.7.tar.gz", hash = "sha256:288a6c39b06596c1b988bb6794c6fbc80e6c369e35e5062637df256bee0c9af9"},
+ {file = "python_multipart-0.0.8-py3-none-any.whl", hash = "sha256:999725bf08cf7a071073d157a27cc34f8669af98da0d2435bde1cc1493a50ec3"},
+ {file = "python_multipart-0.0.8.tar.gz", hash = "sha256:613015c642c2f6dc6d22e2d3a4d993683bb4752509ccd87f831dced121ed2f1d"},
]
[package.extras]
@@ -2944,4 +2944,4 @@ pgsql = ["psycopg2-binary"]
[metadata]
lock-version = "2.0"
python-versions = "^3.10"
-content-hash = "f1a8d11fafed5d812ea0e54fc01aa5761f47bffb14caaeba7216862377fbeb54"
+content-hash = "1736aa5636b88092eb4e998a1a783ea13fdf1e4987b524d3570dfbc7f6e6f35a"
diff --git a/pyproject.toml b/pyproject.toml
index 509b9134233d..b6a8f944021e 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -33,7 +33,7 @@ python-dateutil = "^2.8.2"
python-dotenv = "^1.0.0"
python-jose = "^3.3.0"
python-ldap = "^3.3.1"
-python-multipart = "^0.0.7"
+python-multipart = "^0.0.8"
python-slugify = "^8.0.0"
recipe-scrapers = "^14.53.0"
requests = "^2.31.0"
From 42a33cd993b4638f181d4083a7c5d21bf110e4e4 Mon Sep 17 00:00:00 2001
From: boc-the-git <3479092+boc-the-git@users.noreply.github.com>
Date: Sat, 10 Feb 2024 14:49:26 +1100
Subject: [PATCH 53/82] fix: Give update-image-tags job write permissions to
the repo, for auto doco updater (#3138)
---
.github/workflows/release.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 78162ddcf6cb..91661227fbf1 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -49,6 +49,8 @@ jobs:
needs:
- build-release
runs-on: ubuntu-latest
+ permissions:
+ contents: write
steps:
- name: Checkout 🛎
uses: actions/checkout@v4
From 2226d7cbf9f7c23e885dd5701ea3d5ae2d7782c6 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Sat, 10 Feb 2024 02:56:10 -0600
Subject: [PATCH 54/82] New translations en-us.json (French)
---
mealie/lang/messages/fr-FR.json | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/mealie/lang/messages/fr-FR.json b/mealie/lang/messages/fr-FR.json
index fa3c806135c8..28ebcc20488d 100644
--- a/mealie/lang/messages/fr-FR.json
+++ b/mealie/lang/messages/fr-FR.json
@@ -33,12 +33,12 @@
"generic-deleted": "{name} a été supprimé"
},
"datetime": {
- "year": "year|years",
- "day": "day|days",
- "hour": "hour|hours",
+ "year": "année|années",
+ "day": "jour|jours",
+ "hour": "heure|heures",
"minute": "minute|minutes",
- "second": "second|seconds",
- "millisecond": "millisecond|milliseconds",
- "microsecond": "microsecond|microseconds"
+ "second": "seconde|secondes",
+ "millisecond": "milliseconde|millisecondes",
+ "microsecond": "microseconde|microsecondes"
}
}
From 77a05c754e9ced15bc098d1c826eaa804be5db86 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Sat, 10 Feb 2024 02:56:11 -0600
Subject: [PATCH 55/82] New translations en-us.json (Swedish)
---
mealie/lang/messages/sv-SE.json | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/mealie/lang/messages/sv-SE.json b/mealie/lang/messages/sv-SE.json
index d2e59308f6d3..2962dd45046a 100644
--- a/mealie/lang/messages/sv-SE.json
+++ b/mealie/lang/messages/sv-SE.json
@@ -33,11 +33,11 @@
"generic-deleted": "{name} har tagits bort"
},
"datetime": {
- "year": "year|years",
- "day": "day|days",
- "hour": "hour|hours",
- "minute": "minute|minutes",
- "second": "second|seconds",
+ "year": "år|år",
+ "day": "dag|dagar",
+ "hour": "timme|timmar",
+ "minute": "minut|minuter",
+ "second": "sekund|sekunder",
"millisecond": "millisecond|milliseconds",
"microsecond": "microsecond|microseconds"
}
From 38a4215b355ea789215a28ee2d2044db8ff427ac Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Sat, 10 Feb 2024 02:56:12 -0600
Subject: [PATCH 56/82] New translations en-us.json (Turkish)
---
mealie/lang/messages/tr-TR.json | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/mealie/lang/messages/tr-TR.json b/mealie/lang/messages/tr-TR.json
index b1292ad53462..832c6d80f6ce 100644
--- a/mealie/lang/messages/tr-TR.json
+++ b/mealie/lang/messages/tr-TR.json
@@ -33,12 +33,12 @@
"generic-deleted": "{name} silindi"
},
"datetime": {
- "year": "year|years",
- "day": "day|days",
- "hour": "hour|hours",
- "minute": "minute|minutes",
- "second": "second|seconds",
- "millisecond": "millisecond|milliseconds",
- "microsecond": "microsecond|microseconds"
+ "year": "yıl|yıllar",
+ "day": "gün|günler",
+ "hour": "saat|saatler",
+ "minute": "dakika|dakikalar",
+ "second": "saniye|saniyeler",
+ "millisecond": "milisaniye|milisaniyeler",
+ "microsecond": "mikrosaniye|mikrosaniyeler"
}
}
From 19c5b7c7ab0676060104446851120285d9d2b7a0 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Sat, 10 Feb 2024 02:56:13 -0600
Subject: [PATCH 57/82] New translations en-us.json (Ukrainian)
---
mealie/lang/messages/uk-UA.json | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/mealie/lang/messages/uk-UA.json b/mealie/lang/messages/uk-UA.json
index bb0a9671a242..3409cc0ee780 100644
--- a/mealie/lang/messages/uk-UA.json
+++ b/mealie/lang/messages/uk-UA.json
@@ -33,12 +33,12 @@
"generic-deleted": "{name} видалено"
},
"datetime": {
- "year": "year|years",
- "day": "day|days",
- "hour": "hour|hours",
- "minute": "minute|minutes",
- "second": "second|seconds",
- "millisecond": "millisecond|milliseconds",
- "microsecond": "microsecond|microseconds"
+ "year": "рік|роки",
+ "day": "день|дні",
+ "hour": "година|години",
+ "minute": "хвилина|хвилини",
+ "second": "секунда|секунди",
+ "millisecond": "мілісекунда|мілісекунди",
+ "microsecond": "мікросекунда|мікросекунди"
}
}
From cb2d8a9a505a8334bd9990469638e0c5a7e741e9 Mon Sep 17 00:00:00 2001
From: Hayden <64056131+hay-kot@users.noreply.github.com>
Date: Sat, 10 Feb 2024 02:56:14 -0600
Subject: [PATCH 58/82] New translations en-us.json (Russian)
---
frontend/lang/messages/ru-RU.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/frontend/lang/messages/ru-RU.json b/frontend/lang/messages/ru-RU.json
index e395d82d1c59..4097021084ed 100644
--- a/frontend/lang/messages/ru-RU.json
+++ b/frontend/lang/messages/ru-RU.json
@@ -707,7 +707,7 @@
"email-configured": "Email настроен",
"email-test-results": "Результаты теста Email",
"ready": "Готово",
- "not-ready": "Не готово - Проверьте переменные окружающей среды",
+ "not-ready": "Не готово - Проверьте переменные окружения",
"succeeded": "Выполнено успешно",
"failed": "Ошибка",
"general-about": "Общая информация",
From de69a3ca86664fe0ba9e9a302347bab7ff6a06d9 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sat, 10 Feb 2024 09:12:22 +0000
Subject: [PATCH 59/82] chore(deps): update dependency mkdocs-material to
v9.5.9
---
poetry.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/poetry.lock b/poetry.lock
index a25735422c51..d0bb734a6646 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -1220,13 +1220,13 @@ min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-imp
[[package]]
name = "mkdocs-material"
-version = "9.5.8"
+version = "9.5.9"
description = "Documentation that simply works"
optional = false
python-versions = ">=3.8"
files = [
- {file = "mkdocs_material-9.5.8-py3-none-any.whl", hash = "sha256:14563314bbf97da4bfafc69053772341babfaeb3329cde01d3e63cec03997af8"},
- {file = "mkdocs_material-9.5.8.tar.gz", hash = "sha256:2a429213e83f84eda7a588e2b186316d806aac602b7f93990042f7a1f3d3cf65"},
+ {file = "mkdocs_material-9.5.9-py3-none-any.whl", hash = "sha256:a5d62b73b3b74349e45472bfadc129c871dd2d4add68d84819580597b2f50d5d"},
+ {file = "mkdocs_material-9.5.9.tar.gz", hash = "sha256:635df543c01c25c412d6c22991872267723737d5a2f062490f33b2da1c013c6d"},
]
[package.dependencies]
From 1450d6fc4c637cfdfd29d2ca4530de7b84ab6549 Mon Sep 17 00:00:00 2001
From: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
Date: Sat, 10 Feb 2024 12:09:21 +0100
Subject: [PATCH 60/82] fix password reset link not shown (#3142)
---
frontend/pages/admin/manage/users/_id.vue | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/frontend/pages/admin/manage/users/_id.vue b/frontend/pages/admin/manage/users/_id.vue
index 182378eda43f..b39f9ae2289d 100644
--- a/frontend/pages/admin/manage/users/_id.vue
+++ b/frontend/pages/admin/manage/users/_id.vue
@@ -31,7 +31,18 @@
+ {{ resetUrl }}
+