From 9e1fe618ba209ab91b5b7acedab0098c5ddaef2a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 10 Jul 2025 10:15:17 +0200 Subject: [PATCH 01/13] fix(deps): update dependency openai to v1.93.3 (#5663) 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 1f53e5ba5..267475615 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1816,14 +1816,14 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"] [[package]] name = "openai" -version = "1.93.2" +version = "1.93.3" description = "The official Python library for the openai API" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "openai-1.93.2-py3-none-any.whl", hash = "sha256:5adbbebd48eae160e6d68efc4c0a4f7cb1318a44c62d9fc626cec229f418eab4"}, - {file = "openai-1.93.2.tar.gz", hash = "sha256:4a7312b426b5e4c98b78dfa1148b5683371882de3ad3d5f7c8e0c74f3cc90778"}, + {file = "openai-1.93.3-py3-none-any.whl", hash = "sha256:41aaa7594c7d141b46eed0a58dcd75d20edcc809fdd2c931ecbb4957dc98a892"}, + {file = "openai-1.93.3.tar.gz", hash = "sha256:488b76399238c694af7e4e30c58170ea55e6f65038ab27dbe95b5077a00f8af8"}, ] [package.dependencies] From 5cf3e2565a236c1e3a7a0a96ac9147645467b62b Mon Sep 17 00:00:00 2001 From: Hayden <64056131+hay-kot@users.noreply.github.com> Date: Thu, 10 Jul 2025 03:39:53 -0500 Subject: [PATCH 02/13] chore(l10n): New Crowdin updates (#5664) --- .../seed/resources/foods/locales/en-GB.json | 4 +- .../seed/resources/foods/locales/sv-SE.json | 278 +++++++++--------- 2 files changed, 141 insertions(+), 141 deletions(-) diff --git a/mealie/repos/seed/resources/foods/locales/en-GB.json b/mealie/repos/seed/resources/foods/locales/en-GB.json index 2d96db533..e25a93b01 100644 --- a/mealie/repos/seed/resources/foods/locales/en-GB.json +++ b/mealie/repos/seed/resources/foods/locales/en-GB.json @@ -34,8 +34,8 @@ "zucchini": { "aliases": [], "description": "", - "name": "zucchini", - "plural_name": "zucchinis" + "name": "courgette", + "plural_name": "courgettes" }, "potato": { "aliases": [], diff --git a/mealie/repos/seed/resources/foods/locales/sv-SE.json b/mealie/repos/seed/resources/foods/locales/sv-SE.json index 2d96db533..26dc3f365 100644 --- a/mealie/repos/seed/resources/foods/locales/sv-SE.json +++ b/mealie/repos/seed/resources/foods/locales/sv-SE.json @@ -4,32 +4,32 @@ "garlic": { "aliases": [], "description": "", - "name": "garlic", - "plural_name": "garlics" + "name": "vitlök", + "plural_name": "vitlökar" }, "onion": { "aliases": [], "description": "", - "name": "onion", - "plural_name": "onions" + "name": "lök", + "plural_name": "lökar" }, "bell pepper": { "aliases": [], "description": "", - "name": "bell pepper", - "plural_name": "bell peppers" + "name": "paprika", + "plural_name": "paprikor" }, "carrot": { "aliases": [], "description": "", - "name": "carrot", - "plural_name": "carrots" + "name": "morot", + "plural_name": "morötter" }, "scallion": { "aliases": [], "description": "", - "name": "scallion", - "plural_name": "scallions" + "name": "vårlök", + "plural_name": "vårlökar" }, "zucchini": { "aliases": [], @@ -40,117 +40,117 @@ "potato": { "aliases": [], "description": "", - "name": "potato", - "plural_name": "potatoes" + "name": "potatis", + "plural_name": "potatisar" }, "red onion": { "aliases": [], "description": "", - "name": "red onion", - "plural_name": "red onions" + "name": "rödlök", + "plural_name": "rödlökar" }, "yellow onion": { "aliases": [], "description": "", - "name": "yellow onion", - "plural_name": "yellow onions" + "name": "gul lök", + "plural_name": "gula lökar" }, "celery": { "aliases": [], "description": "", - "name": "celery", - "plural_name": "celeries" + "name": "selleri", + "plural_name": "selleri" }, "jalapeno": { "aliases": [], "description": "", "name": "jalapeno", - "plural_name": "jalapenoes" + "plural_name": "jalapeno" }, "avocado": { "aliases": [], "description": "", - "name": "avocado", - "plural_name": "avocados" + "name": "avokado", + "plural_name": "avokado" }, "shallot": { "aliases": [], "description": "", - "name": "shallot", - "plural_name": "shallots" + "name": "schalottenlök", + "plural_name": "schalottenlökar" }, "cherry tomato": { "aliases": [], "description": "", - "name": "cherry tomato", - "plural_name": "cherry tomatoes" + "name": "körsbärstomat", + "plural_name": "körsbärstomater" }, "cucumber": { "aliases": [], "description": "", - "name": "cucumber", - "plural_name": "cucumbers" + "name": "gurka", + "plural_name": "gurkor" }, "spinach": { "aliases": [], "description": "", - "name": "spinach", - "plural_name": "spinaches" + "name": "spenat", + "plural_name": "spenat" }, "sweet corn": { "aliases": [], "description": "", - "name": "sweet corn", - "plural_name": "sweet corns" + "name": "majs", + "plural_name": "majs" }, "chile pepper": { "aliases": [ - "capsicum" + "paprika" ], "description": "", - "name": "chile pepper", - "plural_name": "chile peppers" + "name": "chilipeppar", + "plural_name": "chilipeppar" }, "sweet potato": { "aliases": [], "description": "", - "name": "sweet potato", - "plural_name": "sweet potatoes" + "name": "sötpotatis", + "plural_name": "sötpotatisar" }, "broccoli": { "aliases": [], "description": "", "name": "broccoli", - "plural_name": "broccolis" + "plural_name": "broccoli" }, "heart of palm": { "aliases": [], "description": "", - "name": "heart of palm", - "plural_name": "heart of palms" + "name": "palmhjärta", + "plural_name": "palmhjärtan" }, "baby green": { "aliases": [], "description": "", - "name": "baby green", - "plural_name": "baby greens" + "name": "späd sallad", + "plural_name": "späda salladsblad" }, "pumpkin": { "aliases": [], "description": "", - "name": "pumpkin", - "plural_name": "pumpkins" + "name": "pumpa", + "plural_name": "pumpor" }, "cauliflower": { "aliases": [], "description": "", - "name": "cauliflower", - "plural_name": "cauliflowers" + "name": "blomkål", + "plural_name": "blomkål" }, "cabbage": { "aliases": [], "description": "", - "name": "cabbage", + "name": "vitkål", "plural_name": "cabbages" }, "asparagu": { @@ -298,111 +298,111 @@ "aliases": [], "description": "", "name": "serrano pepper", - "plural_name": "serrano peppers" + "plural_name": "serranochili" }, "cayenne pepper": { "aliases": [], "description": "", - "name": "cayenne pepper", - "plural_name": "cayenne peppers" + "name": "cayennepeppar", + "plural_name": "caynnepeppar" }, "green tomato": { "aliases": [], "description": "", - "name": "green tomato", - "plural_name": "green tomatoes" + "name": "grön tomat", + "plural_name": "gröna tomter" }, "watercress": { "aliases": [], "description": "", - "name": "watercress", - "plural_name": "watercress" + "name": "vattenkrasse", + "plural_name": "vattenkrasse" }, "iceberg": { "aliases": [], "description": "", - "name": "iceberg", - "plural_name": "icebergs" + "name": "isbergssallat", + "plural_name": "isbergssallat" }, "mashed potato": { "aliases": [], "description": "", - "name": "mashed potato", - "plural_name": "mashed potatoes" + "name": "potatismos", + "plural_name": "potatismos" }, "horseradish": { "aliases": [], "description": "", - "name": "horseradish", - "plural_name": "horseradishes" + "name": "pepparrot", + "plural_name": "pepparrötter" }, "chard": { "aliases": [], "description": "", - "name": "chard", - "plural_name": "chards" + "name": "mangold", + "plural_name": "mangold" }, "pimiento": { "aliases": [], "description": "", "name": "pimiento", - "plural_name": "pimientoes" + "plural_name": "pimiento" }, "spaghetti squash": { "aliases": [], "description": "", - "name": "spaghetti squash", - "plural_name": "spaghetti squashes" + "name": "spaghettipumpa", + "plural_name": "spaghettipumpor" }, "butter lettuce": { "aliases": [], "description": "", - "name": "butter lettuce", - "plural_name": "butter lettuces" + "name": "smörsallad", + "plural_name": "smörsallader" }, "hash brown": { "aliases": [], "description": "", - "name": "hash brown", - "plural_name": "hash browns" + "name": "potatiskaka", + "plural_name": "potatiskakor" }, "napa cabbage": { "aliases": [ - "chinese leaves" + "kinakål" ], "description": "", - "name": "napa cabbage", - "plural_name": "napa cabbages" + "name": "kinakål", + "plural_name": "kinakål" }, "celeriac": { "aliases": [], "description": "", - "name": "celeriac", - "plural_name": "celeriacs" + "name": "rotselleri", + "plural_name": "rotselleri" }, "water chestnut": { "aliases": [], "description": "", - "name": "water chestnut", - "plural_name": "water chestnuts" + "name": "vattenkastanj", + "plural_name": "vattenkastanjer" }, "turnip": { "aliases": [], "description": "", - "name": "turnip", - "plural_name": "turnips" + "name": "majrova", + "plural_name": "majrovor" }, "thai chile pepper": { "aliases": [], "description": "", - "name": "thai chile pepper", - "plural_name": "thai chile peppers" + "name": "thailändsk chili", + "plural_name": "thailändska chilis" }, "bok choy": { "aliases": [], "description": "", - "name": "bok choy", - "plural_name": "bok choy" + "name": "pak choi", + "plural_name": "pak choi" }, "okra": { "aliases": [], @@ -413,38 +413,38 @@ "acorn squash": { "aliases": [], "description": "", - "name": "acorn squash", - "plural_name": "acorn squashes" + "name": "ekollonpumpa", + "plural_name": "ekollonpumpor" }, "corn cob": { "aliases": [], "description": "", - "name": "corn cob", - "plural_name": "corn cobs" + "name": "majskolv", + "plural_name": "majskolvar" }, "radicchio": { "aliases": [], "description": "", - "name": "radicchio", - "plural_name": "radicchio" + "name": "röd cikoria", + "plural_name": "röda cikorior" }, "pearl onion": { "aliases": [], "description": "", - "name": "pearl onion", - "plural_name": "pearl onions" + "name": "pärllök", + "plural_name": "pärllökar" }, "tenderstem broccoli": { "aliases": [], "description": "", - "name": "tenderstem broccoli", - "plural_name": "tenderstem broccolis" + "name": "broccolini", + "plural_name": "broccolini" }, "plantain": { "aliases": [], "description": "", - "name": "plantain", - "plural_name": "plantains" + "name": "matbanan", + "plural_name": "matbananer" }, "leaf lettuce": { "aliases": [], @@ -596,31 +596,31 @@ "aliases": [], "description": "", "name": "broccoli slaw", - "plural_name": "broccoli slaws" + "plural_name": "broccolisallad" }, "arbol chile pepper": { "aliases": [], "description": "", - "name": "arbol chile pepper", - "plural_name": "arbol chile peppers" + "name": "arbolchili", + "plural_name": "arbolchili" }, "golden beet": { "aliases": [], "description": "", - "name": "golden beet", - "plural_name": "golden beets" + "name": "gulbeta", + "plural_name": "gulbetor" }, "pea shoot": { "aliases": [], "description": "", - "name": "pea shoot", - "plural_name": "pea shoots" + "name": "ärtskott", + "plural_name": "ärtskott" }, "alfalfa": { "aliases": [], "description": "", - "name": "alfalfa", - "plural_name": "alfalfas" + "name": "alfalfagroddar", + "plural_name": "alfalfagroddar" } } }, @@ -629,122 +629,122 @@ "tomato": { "aliases": [], "description": "Yes they are a fruit", - "name": "tomato", - "plural_name": "tomatoes" + "name": "tomat", + "plural_name": "tomater" }, "lemon": { "aliases": [], "description": "", - "name": "lemon", - "plural_name": "lemons" + "name": "citron", + "plural_name": "citroner" }, "lime": { "aliases": [], "description": "", "name": "lime", - "plural_name": "limes" + "plural_name": "lime" }, "apple": { "aliases": [], "description": "", - "name": "apple", - "plural_name": "apples" + "name": "äpple", + "plural_name": "äpplen" }, "banana": { "aliases": [], "description": "", - "name": "banana", - "plural_name": "bananas" + "name": "banan", + "plural_name": "bananer" }, "orange": { "aliases": [], "description": "", - "name": "orange", - "plural_name": "oranges" + "name": "apelsin", + "plural_name": "apelsiner" }, "raisin": { "aliases": [], "description": "", - "name": "raisin", - "plural_name": "raisins" + "name": "russin", + "plural_name": "russin" }, "pineapple": { "aliases": [], "description": "", - "name": "pineapple", - "plural_name": "pineapples" + "name": "ananas", + "plural_name": "ananser" }, "mango": { "aliases": [], "description": "", "name": "mango", - "plural_name": "mangoes" + "plural_name": "mango" }, "peach": { "aliases": [], "description": "", - "name": "peach", - "plural_name": "peaches" + "name": "persika", + "plural_name": "persikor" }, "date": { "aliases": [], "description": "", - "name": "date", - "plural_name": "dates" + "name": "dadel", + "plural_name": "dadlar" }, "coconut": { "aliases": [], "description": "", - "name": "coconut", - "plural_name": "coconuts" + "name": "kokosnöt", + "plural_name": "kokosnötter" }, "craisin": { "aliases": [], "description": "", - "name": "craisin", - "plural_name": "craisins" + "name": "torkade tranbär", + "plural_name": "torkade tranbär" }, "pear": { "aliases": [], "description": "", - "name": "pear", - "plural_name": "pears" + "name": "päron", + "plural_name": "päron" }, "grape": { "aliases": [], "description": "", - "name": "grape", - "plural_name": "grapes" + "name": "druva", + "plural_name": "druvor" }, "pomegranate": { "aliases": [], "description": "", - "name": "pomegranate", - "plural_name": "pomegranates" + "name": "granatäpple", + "plural_name": "granatäpplen" }, "watermelon": { "aliases": [], "description": "", - "name": "watermelon", - "plural_name": "watermelons" + "name": "vattenmelon", + "plural_name": "vattenmeloner" }, "rhubarb": { "aliases": [], "description": "", - "name": "rhubarb", - "plural_name": "rhubarbs" + "name": "rabarber", + "plural_name": "rabarber" }, "dried apricot": { "aliases": [], "description": "", - "name": "dried apricot", - "plural_name": "dried apricots" + "name": "torkad aprikos", + "plural_name": "torkade aprikoser" }, "kiwi": { "aliases": [], "description": "", "name": "kiwi", - "plural_name": "kiwis" + "plural_name": "kiwi" }, "grapefruit": { "aliases": [], From 63a4d4c801ce3f03536a8e6ed9d5efcae063c833 Mon Sep 17 00:00:00 2001 From: Michael Genson <71845777+michael-genson@users.noreply.github.com> Date: Thu, 10 Jul 2025 11:41:34 -0500 Subject: [PATCH 03/13] fix: Preserve "Completed On" Date In Checked Shopping List Items (#5665) --- frontend/pages/shopping-lists/[id].vue | 31 ++++++++++++++------------ 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/frontend/pages/shopping-lists/[id].vue b/frontend/pages/shopping-lists/[id].vue index 293c4b08d..8188e7326 100644 --- a/frontend/pages/shopping-lists/[id].vue +++ b/frontend/pages/shopping-lists/[id].vue @@ -707,7 +707,7 @@ export default defineNuxtComponent({ } }); if (hasChanged) { - updateListItems(); + updateUncheckedListItems(); } } @@ -727,7 +727,9 @@ export default defineNuxtComponent({ } }); if (hasChanged) { - updateListItems(); + listItems.unchecked = [...listItems.unchecked, ...listItems.checked]; + listItems.checked = []; + updateUncheckedListItems(); } } @@ -1051,8 +1053,13 @@ export default defineNuxtComponent({ .sort(sortCheckedItems); } + // Update the item if it's checked, otherwise updateUncheckedListItems will handle it + if (item.checked) { + shoppingListItemActions.updateItem(item); + } + updateListItemOrder(); - updateListItems(); + updateUncheckedListItems(); } function deleteListItem(item: ShoppingListItemOut) { @@ -1144,7 +1151,7 @@ export default defineNuxtComponent({ // since the user has manually reordered the list, we should preserve this order preserveItemOrder.value = true; - updateListItems(); + updateUncheckedListItems(); } function updateIndexUncheckedByLabel(labelName: string, labeledUncheckedItems: ShoppingListItemOut[]) { @@ -1167,7 +1174,7 @@ export default defineNuxtComponent({ // save changes listItems.unchecked = allUncheckedItems; listItems.checked = shoppingList.value?.listItems?.filter(item => item.checked) || []; - updateListItems(); + updateUncheckedListItems(); } function deleteListItems(items: ShoppingListItemOut[]) { @@ -1187,27 +1194,23 @@ export default defineNuxtComponent({ refresh(); } - function updateListItems() { + function updateUncheckedListItems() { if (!shoppingList.value?.listItems) { return; } - // Set Position - shoppingList.value.listItems = listItems.unchecked.concat(listItems.checked).map((itm: ShoppingListItemOut, idx: number) => { - itm.position = idx; - return itm; - }); - - shoppingList.value.listItems.forEach((item) => { + // Set position for unchecked items + listItems.unchecked.forEach((item: ShoppingListItemOut, idx: number) => { + item.position = idx; shoppingListItemActions.updateItem(item); }); + refresh(); } return { ...toRefs(state), addRecipeReferenceToList, - updateListItems, allLabels, contextMenu, contextMenuAction, From e1a04ba673c1ab95014e328ea43c3c96cdb8a321 Mon Sep 17 00:00:00 2001 From: Michael Genson <71845777+michael-genson@users.noreply.github.com> Date: Thu, 10 Jul 2025 11:57:20 -0500 Subject: [PATCH 04/13] fix: Recipe Timeline Not Filtering (#5666) --- frontend/lib/api/user/recipes/recipe.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/frontend/lib/api/user/recipes/recipe.ts b/frontend/lib/api/user/recipes/recipe.ts index b89a4eb51..c2e923c2f 100644 --- a/frontend/lib/api/user/recipes/recipe.ts +++ b/frontend/lib/api/user/recipes/recipe.ts @@ -219,10 +219,7 @@ export class RecipeAPI extends BaseCRUDAPI { async getAllTimelineEvents(page = 1, perPage = -1, params = {} as any) { return await this.requests.get>( - routes.recipesTimelineEvent, - { - params: { page, perPage, ...params }, - }, + routes.recipesTimelineEvent, { page, perPage, ...params }, ); } From ea329a6b71daeed93df433e35ee1dcfe10e9d731 Mon Sep 17 00:00:00 2001 From: Michael Genson <71845777+michael-genson@users.noreply.github.com> Date: Thu, 10 Jul 2025 12:12:41 -0500 Subject: [PATCH 05/13] fix: Remove Padding On Print (#5668) Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com> --- frontend/components/Domain/Recipe/RecipePrintContainer.vue | 2 ++ 1 file changed, 2 insertions(+) diff --git a/frontend/components/Domain/Recipe/RecipePrintContainer.vue b/frontend/components/Domain/Recipe/RecipePrintContainer.vue index d44995dc7..eaf731264 100644 --- a/frontend/components/Domain/Recipe/RecipePrintContainer.vue +++ b/frontend/components/Domain/Recipe/RecipePrintContainer.vue @@ -42,6 +42,8 @@ export default defineNuxtComponent({ .v-main { display: block; + padding: 0 !important; + margin: 0 !important; } .v-main__wrap { From 7331007f30f6be4627839ed7998d44e4985fa8dc Mon Sep 17 00:00:00 2001 From: Michael Genson <71845777+michael-genson@users.noreply.github.com> Date: Thu, 10 Jul 2025 12:30:33 -0500 Subject: [PATCH 06/13] fix: Restore Servings To Print View (#5669) --- frontend/components/Domain/Recipe/RecipePrintView.vue | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/frontend/components/Domain/Recipe/RecipePrintView.vue b/frontend/components/Domain/Recipe/RecipePrintView.vue index a00b6ff22..c9e0ee9ac 100644 --- a/frontend/components/Domain/Recipe/RecipePrintView.vue +++ b/frontend/components/Domain/Recipe/RecipePrintView.vue @@ -23,18 +23,17 @@ {{ recipe.name }} -
- +
{{ $globals.icons.potSteam }} - +
Date: Thu, 10 Jul 2025 23:46:09 +0200 Subject: [PATCH 07/13] fix(deps): update dependency openai to v1.94.0 (#5667) 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 267475615..58926ac87 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1816,14 +1816,14 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"] [[package]] name = "openai" -version = "1.93.3" +version = "1.94.0" description = "The official Python library for the openai API" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "openai-1.93.3-py3-none-any.whl", hash = "sha256:41aaa7594c7d141b46eed0a58dcd75d20edcc809fdd2c931ecbb4957dc98a892"}, - {file = "openai-1.93.3.tar.gz", hash = "sha256:488b76399238c694af7e4e30c58170ea55e6f65038ab27dbe95b5077a00f8af8"}, + {file = "openai-1.94.0-py3-none-any.whl", hash = "sha256:159c43b811669abe9bb4aafdc57a049966dfde2eac94b151aac3eb63bf9825b4"}, + {file = "openai-1.94.0.tar.gz", hash = "sha256:31c6c213cc80365d54632296c4aef7cda1800003ca5c784ac50a05d6bc05c197"}, ] [package.dependencies] From 4e6a7a09ff5304f384c62d7435ab158036df4eab Mon Sep 17 00:00:00 2001 From: Hayden <64056131+hay-kot@users.noreply.github.com> Date: Fri, 11 Jul 2025 04:28:35 -0500 Subject: [PATCH 08/13] chore(l10n): New Crowdin updates (#5672) --- frontend/lang/messages/zh-CN.json | 80 ++++++++-------- .../seed/resources/foods/locales/fr-FR.json | 70 +++++++------- .../seed/resources/foods/locales/zh-CN.json | 92 +++++++++---------- 3 files changed, 121 insertions(+), 121 deletions(-) diff --git a/frontend/lang/messages/zh-CN.json b/frontend/lang/messages/zh-CN.json index cb5001de1..fae972b82 100644 --- a/frontend/lang/messages/zh-CN.json +++ b/frontend/lang/messages/zh-CN.json @@ -8,7 +8,7 @@ "database-type": "数据库类型", "database-url": "数据库 URL", "default-group": "默认群组", - "default-household": "Default Household", + "default-household": "默认家庭", "demo": "演示", "demo-status": "演示状态", "development": "开发版", @@ -280,26 +280,26 @@ "you-must-select-a-group-before-selecting-a-household": "你必须先选择一个组才能选择一个家庭" }, "household": { - "household": "Household", - "households": "Households", - "user-household": "User Household", - "create-household": "Create Household", - "household-name": "Household Name", - "household-group": "Household Group", - "household-management": "Household Management", - "manage-households": "Manage Households", + "household": "家庭", + "households": "家庭", + "user-household": "用户家庭", + "create-household": "创建家庭", + "household-name": "家庭名称", + "household-group": "家庭组", + "household-management": "家庭管理", + "manage-households": "管理家庭", "admin-household-management": "家庭管理员选项", "admin-household-management-text": "对家庭的更改将立即生效。", - "household-id-value": "Household Id: {0}", - "private-household": "Private Household", - "private-household-description": "Setting your household to private will disable all public view options. This overrides any individual public view settings", - "lock-recipe-edits-from-other-households": "Lock recipe edits from other households", - "lock-recipe-edits-from-other-households-description": "When enabled only users in your household can edit recipes created by your household", - "household-recipe-preferences": "Household Recipe Preferences", + "household-id-value": "家庭ID: {0}", + "private-household": "私有家庭", + "private-household-description": "将家庭设置为私有后,群组内每个食谱单独配置的可见性选项都将被覆盖,所有食谱都无法被公开访问。", + "lock-recipe-edits-from-other-households": "禁止其他家庭编辑食谱", + "lock-recipe-edits-from-other-households-description": "启用时,只有家庭成员可以编辑由您家庭创建的食谱", + "household-recipe-preferences": "家庭食谱偏好设置", "default-recipe-preferences-description": "These are the default settings when a new recipe is created in your household. These can be changed for individual recipes in the recipe settings menu.", "allow-users-outside-of-your-household-to-see-your-recipes": "Allow users outside of your household to see your recipes", "allow-users-outside-of-your-household-to-see-your-recipes-description": "When enabled you can use a public share link to share specific recipes without authorizing the user. When disabled, you can only share recipes with users who are in your household or with a pre-generated private link", - "household-preferences": "Household Preferences" + "household-preferences": "家庭偏好设置" }, "meal-plan": { "create-a-new-meal-plan": "新建饮食计划", @@ -432,7 +432,7 @@ "paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "请粘贴您的食谱资料。每行将被视为列表中的一项。", "recipe-markup-specification": "食谱标记规范", "recipe-url": "食谱网址", - "recipe-html-or-json": "Recipe HTML or JSON", + "recipe-html-or-json": "食谱的 HTML 或 JSON", "upload-a-recipe": "上传食谱", "upload-individual-zip-file": "上传从Mealie导出的.zip文件。", "url-form-hint": "从您最喜爱的食谱网站复制并粘贴链接", @@ -467,7 +467,7 @@ "calories-suffix": "卡路里", "carbohydrate-content": "碳水化合物", "categories": "分类", - "cholesterol-content": "Cholesterol", + "cholesterol-content": "胆固醇", "comment-action": "评论", "comment": "评论", "comments": "评论", @@ -486,8 +486,8 @@ "ingredients": "食材", "insert-ingredient": "插入食材", "insert-section": "插入章节", - "insert-above": "Insert Above", - "insert-below": "Insert Below", + "insert-above": "在上方插入", + "insert-below": "在下方插入", "instructions": "做法", "key-name-required": "必须输入关键字", "landscape-view-coming-soon": "横向视图 (即将到来)", @@ -528,7 +528,7 @@ "total-time": "总时间", "trans-fat-content": "Trans-fat", "unable-to-delete-recipe": "无法删除食谱", - "unsaturated-fat-content": "Unsaturated fat", + "unsaturated-fat-content": "不饱和脂肪", "no-recipe": "没有食谱", "locked-by-owner": "已被所有者锁定", "join-the-conversation": "一起聊聊吧", @@ -599,10 +599,10 @@ "create-recipe-from-an-image": "Create Recipe from an Image", "create-recipe-from-an-image-description": "Create a recipe by uploading an image of it. Mealie will attempt to extract the text from the image using AI and create a recipe from it.", "crop-and-rotate-the-image": "Crop and rotate the image so that only the text is visible, and it's in the correct orientation.", - "create-from-images": "Create from Images", - "should-translate-description": "Translate the recipe into my language", - "please-wait-image-procesing": "Please wait, the image is processing. This may take some time.", - "please-wait-images-processing": "Please wait, the images are processing. This may take some time.", + "create-from-images": "从图片创建", + "should-translate-description": "翻译该食谱", + "please-wait-image-procesing": "请稍等,正在处理图片。这可能需要一些时间。", + "please-wait-images-processing": "请稍等,正在处理图片。这可能需要一些时间。", "bulk-url-import": "批量URL导入", "debug-scraper": "调试刮削器", "create-a-recipe-by-providing-the-name-all-recipes-must-have-unique-names": "通过名称创建食谱,食谱不可重名。", @@ -611,8 +611,8 @@ "scrape-recipe-description": "通过URL刮削食谱。提供你想要刮削网址的URL,Mealie会尝试从该网址刮削食谱并添加到你的收藏中。", "scrape-recipe-have-a-lot-of-recipes": "你想要一次刮削多个食谱吗?", "scrape-recipe-suggest-bulk-importer": "试试批量导入器", - "scrape-recipe-have-raw-html-or-json-data": "Have raw HTML or JSON data?", - "scrape-recipe-you-can-import-from-raw-data-directly": "You can import from raw data directly", + "scrape-recipe-have-raw-html-or-json-data": "有原始 HTML 或 JSON 数据?", + "scrape-recipe-you-can-import-from-raw-data-directly": "您可以直接从原始数据导入", "import-original-keywords-as-tags": "导入原始关键字作为标签", "stay-in-edit-mode": "留在编辑模式", "import-from-zip": "从Zip压缩包导入", @@ -1365,23 +1365,23 @@ }, "query-filter": { "logical-operators": { - "and": "AND", - "or": "OR" + "and": "与", + "or": "或" }, "relational-operators": { - "equals": "equals", - "does-not-equal": "does not equal", - "is-greater-than": "is greater than", - "is-greater-than-or-equal-to": "is greater than or equal to", - "is-less-than": "is less than", - "is-less-than-or-equal-to": "is less than or equal to" + "equals": "等于", + "does-not-equal": "不等于", + "is-greater-than": "大于", + "is-greater-than-or-equal-to": "大于等于", + "is-less-than": "小于", + "is-less-than-or-equal-to": "小于等于" }, "relational-keywords": { - "is": "is", - "is-not": "is not", - "is-one-of": "is one of", - "is-not-one-of": "is not one of", - "contains-all-of": "contains all of", + "is": "是", + "is-not": "不是", + "is-one-of": "其中之一", + "is-not-one-of": "不是其中之一", + "contains-all-of": "包含所有", "is-like": "is like", "is-not-like": "is not like" } diff --git a/mealie/repos/seed/resources/foods/locales/fr-FR.json b/mealie/repos/seed/resources/foods/locales/fr-FR.json index 2d96db533..4ed64cda5 100644 --- a/mealie/repos/seed/resources/foods/locales/fr-FR.json +++ b/mealie/repos/seed/resources/foods/locales/fr-FR.json @@ -4,26 +4,26 @@ "garlic": { "aliases": [], "description": "", - "name": "garlic", + "name": "ail", "plural_name": "garlics" }, "onion": { "aliases": [], "description": "", - "name": "onion", - "plural_name": "onions" + "name": "oignon", + "plural_name": "oignons" }, "bell pepper": { "aliases": [], "description": "", - "name": "bell pepper", - "plural_name": "bell peppers" + "name": "poivron", + "plural_name": "poivrons" }, "carrot": { "aliases": [], "description": "", - "name": "carrot", - "plural_name": "carrots" + "name": "carotte", + "plural_name": "carottes" }, "scallion": { "aliases": [], @@ -34,31 +34,31 @@ "zucchini": { "aliases": [], "description": "", - "name": "zucchini", - "plural_name": "zucchinis" + "name": "courgette", + "plural_name": "courgettes" }, "potato": { "aliases": [], "description": "", - "name": "potato", - "plural_name": "potatoes" + "name": "pomme de terre", + "plural_name": "pommes de terre" }, "red onion": { "aliases": [], "description": "", - "name": "red onion", - "plural_name": "red onions" + "name": "oignon rouge", + "plural_name": "oignons rouge" }, "yellow onion": { "aliases": [], "description": "", - "name": "yellow onion", + "name": "oignon jaune", "plural_name": "yellow onions" }, "celery": { "aliases": [], "description": "", - "name": "celery", + "name": "céleri", "plural_name": "celeries" }, "jalapeno": { @@ -88,8 +88,8 @@ "cucumber": { "aliases": [], "description": "", - "name": "cucumber", - "plural_name": "cucumbers" + "name": "concombre", + "plural_name": "concombres" }, "spinach": { "aliases": [], @@ -150,7 +150,7 @@ "cabbage": { "aliases": [], "description": "", - "name": "cabbage", + "name": "chou", "plural_name": "cabbages" }, "asparagu": { @@ -180,19 +180,19 @@ "eggplant": { "aliases": [], "description": "", - "name": "eggplant", - "plural_name": "eggplants" + "name": "aubergine", + "plural_name": "aubergines" }, "lettuce": { "aliases": [], "description": "", - "name": "lettuce", - "plural_name": "lettuces" + "name": "laitue", + "plural_name": "laitues" }, "butternut squash": { "aliases": [], "description": "", - "name": "butternut squash", + "name": "courge butternut", "plural_name": "butternut squashes" }, "romaine": { @@ -204,13 +204,13 @@ "beetroot": { "aliases": [], "description": "", - "name": "beetroot", - "plural_name": "beetroots" + "name": "betterave", + "plural_name": "betteraves" }, "brussels sprout": { "aliases": [], "description": "", - "name": "brussels sprout", + "name": "chou de Bruxelles", "plural_name": "brussels sprouts" }, "fennel": { @@ -228,20 +228,20 @@ "radish": { "aliases": [], "description": "", - "name": "radish", + "name": "radis", "plural_name": "radishes" }, "red cabbage": { "aliases": [], "description": "", - "name": "red cabbage", - "plural_name": "red cabbages" + "name": "chou rouge", + "plural_name": "choux rouge" }, "artichoke": { "aliases": [], "description": "", - "name": "artichoke", - "plural_name": "artichokes" + "name": "artichaut", + "plural_name": "artichauts" }, "new potato": { "aliases": [], @@ -267,8 +267,8 @@ "parsnip": { "aliases": [], "description": "", - "name": "parsnip", - "plural_name": "parsnips" + "name": "panais", + "plural_name": "panais" }, "baby carrot": { "aliases": [], @@ -389,8 +389,8 @@ "turnip": { "aliases": [], "description": "", - "name": "turnip", - "plural_name": "turnips" + "name": "navet", + "plural_name": "navets" }, "thai chile pepper": { "aliases": [], diff --git a/mealie/repos/seed/resources/foods/locales/zh-CN.json b/mealie/repos/seed/resources/foods/locales/zh-CN.json index 2d96db533..ee86b9e4c 100644 --- a/mealie/repos/seed/resources/foods/locales/zh-CN.json +++ b/mealie/repos/seed/resources/foods/locales/zh-CN.json @@ -4,14 +4,14 @@ "garlic": { "aliases": [], "description": "", - "name": "garlic", - "plural_name": "garlics" + "name": "大蒜", + "plural_name": "大蒜" }, "onion": { "aliases": [], "description": "", - "name": "onion", - "plural_name": "onions" + "name": "洋葱", + "plural_name": "洋葱" }, "bell pepper": { "aliases": [], @@ -22,8 +22,8 @@ "carrot": { "aliases": [], "description": "", - "name": "carrot", - "plural_name": "carrots" + "name": "胡萝卜", + "plural_name": "胡萝卜" }, "scallion": { "aliases": [], @@ -34,14 +34,14 @@ "zucchini": { "aliases": [], "description": "", - "name": "zucchini", - "plural_name": "zucchinis" + "name": "西葫芦", + "plural_name": "西葫芦" }, "potato": { "aliases": [], "description": "", - "name": "potato", - "plural_name": "potatoes" + "name": "土豆", + "plural_name": "土豆" }, "red onion": { "aliases": [], @@ -70,14 +70,14 @@ "avocado": { "aliases": [], "description": "", - "name": "avocado", - "plural_name": "avocados" + "name": "牛油果", + "plural_name": "牛油果" }, "shallot": { "aliases": [], "description": "", - "name": "shallot", - "plural_name": "shallots" + "name": "红葱头", + "plural_name": "红葱头" }, "cherry tomato": { "aliases": [], @@ -88,20 +88,20 @@ "cucumber": { "aliases": [], "description": "", - "name": "cucumber", - "plural_name": "cucumbers" + "name": "黄瓜", + "plural_name": "黄瓜" }, "spinach": { "aliases": [], "description": "", - "name": "spinach", - "plural_name": "spinaches" + "name": "菠菜", + "plural_name": "菠菜" }, "sweet corn": { "aliases": [], "description": "", - "name": "sweet corn", - "plural_name": "sweet corns" + "name": "甜玉米", + "plural_name": "甜玉米" }, "chile pepper": { "aliases": [ @@ -114,14 +114,14 @@ "sweet potato": { "aliases": [], "description": "", - "name": "sweet potato", - "plural_name": "sweet potatoes" + "name": "红薯", + "plural_name": "红薯" }, "broccoli": { "aliases": [], "description": "", - "name": "broccoli", - "plural_name": "broccolis" + "name": "西兰花", + "plural_name": "西兰花" }, "heart of palm": { "aliases": [], @@ -138,14 +138,14 @@ "pumpkin": { "aliases": [], "description": "", - "name": "pumpkin", - "plural_name": "pumpkins" + "name": "南瓜", + "plural_name": "南瓜" }, "cauliflower": { "aliases": [], "description": "", - "name": "cauliflower", - "plural_name": "cauliflowers" + "name": "菜花", + "plural_name": "菜花" }, "cabbage": { "aliases": [], @@ -162,14 +162,14 @@ "kale": { "aliases": [], "description": "", - "name": "kale", - "plural_name": "kales" + "name": "羽衣甘蓝", + "plural_name": "羽衣甘蓝" }, "arugula": { "aliases": [], "description": "", - "name": "arugula", - "plural_name": "arugulas" + "name": "芝麻菜", + "plural_name": "芝麻菜" }, "leek": { "aliases": [], @@ -180,14 +180,14 @@ "eggplant": { "aliases": [], "description": "", - "name": "eggplant", - "plural_name": "eggplants" + "name": "茄子", + "plural_name": "茄子" }, "lettuce": { "aliases": [], "description": "", - "name": "lettuce", - "plural_name": "lettuces" + "name": "生菜", + "plural_name": "生菜" }, "butternut squash": { "aliases": [], @@ -5855,8 +5855,8 @@ "garlic powder": { "aliases": [], "description": "", - "name": "garlic powder", - "plural_name": "garlic powders" + "name": "大蒜粉", + "plural_name": "大蒜粉" }, "oregano": { "aliases": [], @@ -6017,8 +6017,8 @@ "white pepper": { "aliases": [], "description": "", - "name": "white pepper", - "plural_name": "white peppers" + "name": "白胡椒", + "plural_name": "白胡椒" }, "curry leaf": { "aliases": [], @@ -7106,8 +7106,8 @@ "himalayan salt": { "aliases": [], "description": "", - "name": "himalayan salt", - "plural_name": "himalayan salts" + "name": "喜马拉雅盐", + "plural_name": "喜马拉雅盐" }, "lemon & pepper seasoning": { "aliases": [], @@ -10640,8 +10640,8 @@ "vegetable oil": { "aliases": [], "description": "", - "name": "vegetable oil", - "plural_name": "vegetable oils" + "name": "植物油", + "plural_name": "植物油" }, "extra virgin olive oil": { "aliases": [], @@ -13192,8 +13192,8 @@ "black pepper sauce": { "aliases": [], "description": "", - "name": "black pepper sauce", - "plural_name": "black pepper sauces" + "name": "黑椒酱", + "plural_name": "黑椒酱" }, "char siu sauce": { "aliases": [], From 5adb7662c4b524428321490db25e7842dd253981 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 11 Jul 2025 17:26:37 +0200 Subject: [PATCH 09/13] chore(deps): update dependency ruff to v0.12.3 (#5673) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- poetry.lock | 38 +++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/poetry.lock b/poetry.lock index 58926ac87..8ec0c1ba3 100644 --- a/poetry.lock +++ b/poetry.lock @@ -3236,30 +3236,30 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] [[package]] name = "ruff" -version = "0.12.2" +version = "0.12.3" description = "An extremely fast Python linter and code formatter, written in Rust." optional = false python-versions = ">=3.7" groups = ["dev"] files = [ - {file = "ruff-0.12.2-py3-none-linux_armv6l.whl", hash = "sha256:093ea2b221df1d2b8e7ad92fc6ffdca40a2cb10d8564477a987b44fd4008a7be"}, - {file = "ruff-0.12.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:09e4cf27cc10f96b1708100fa851e0daf21767e9709e1649175355280e0d950e"}, - {file = "ruff-0.12.2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:8ae64755b22f4ff85e9c52d1f82644abd0b6b6b6deedceb74bd71f35c24044cc"}, - {file = "ruff-0.12.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3eb3a6b2db4d6e2c77e682f0b988d4d61aff06860158fdb413118ca133d57922"}, - {file = "ruff-0.12.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:73448de992d05517170fc37169cbca857dfeaeaa8c2b9be494d7bcb0d36c8f4b"}, - {file = "ruff-0.12.2-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3b8b94317cbc2ae4a2771af641739f933934b03555e51515e6e021c64441532d"}, - {file = "ruff-0.12.2-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:45fc42c3bf1d30d2008023a0a9a0cfb06bf9835b147f11fe0679f21ae86d34b1"}, - {file = "ruff-0.12.2-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce48f675c394c37e958bf229fb5c1e843e20945a6d962cf3ea20b7a107dcd9f4"}, - {file = "ruff-0.12.2-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:793d8859445ea47591272021a81391350205a4af65a9392401f418a95dfb75c9"}, - {file = "ruff-0.12.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6932323db80484dda89153da3d8e58164d01d6da86857c79f1961934354992da"}, - {file = "ruff-0.12.2-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:6aa7e623a3a11538108f61e859ebf016c4f14a7e6e4eba1980190cacb57714ce"}, - {file = "ruff-0.12.2-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:2a4a20aeed74671b2def096bdf2eac610c7d8ffcbf4fb0e627c06947a1d7078d"}, - {file = "ruff-0.12.2-py3-none-musllinux_1_2_i686.whl", hash = "sha256:71a4c550195612f486c9d1f2b045a600aeba851b298c667807ae933478fcef04"}, - {file = "ruff-0.12.2-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:4987b8f4ceadf597c927beee65a5eaf994c6e2b631df963f86d8ad1bdea99342"}, - {file = "ruff-0.12.2-py3-none-win32.whl", hash = "sha256:369ffb69b70cd55b6c3fc453b9492d98aed98062db9fec828cdfd069555f5f1a"}, - {file = "ruff-0.12.2-py3-none-win_amd64.whl", hash = "sha256:dca8a3b6d6dc9810ed8f328d406516bf4d660c00caeaef36eb831cf4871b0639"}, - {file = "ruff-0.12.2-py3-none-win_arm64.whl", hash = "sha256:48d6c6bfb4761df68bc05ae630e24f506755e702d4fb08f08460be778c7ccb12"}, - {file = "ruff-0.12.2.tar.gz", hash = "sha256:d7b4f55cd6f325cb7621244f19c873c565a08aff5a4ba9c69aa7355f3f7afd3e"}, + {file = "ruff-0.12.3-py3-none-linux_armv6l.whl", hash = "sha256:47552138f7206454eaf0c4fe827e546e9ddac62c2a3d2585ca54d29a890137a2"}, + {file = "ruff-0.12.3-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:0a9153b000c6fe169bb307f5bd1b691221c4286c133407b8827c406a55282041"}, + {file = "ruff-0.12.3-py3-none-macosx_11_0_arm64.whl", hash = "sha256:fa6b24600cf3b750e48ddb6057e901dd5b9aa426e316addb2a1af185a7509882"}, + {file = "ruff-0.12.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2506961bf6ead54887ba3562604d69cb430f59b42133d36976421bc8bd45901"}, + {file = "ruff-0.12.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c4faaff1f90cea9d3033cbbcdf1acf5d7fb11d8180758feb31337391691f3df0"}, + {file = "ruff-0.12.3-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40dced4a79d7c264389de1c59467d5d5cefd79e7e06d1dfa2c75497b5269a5a6"}, + {file = "ruff-0.12.3-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:0262d50ba2767ed0fe212aa7e62112a1dcbfd46b858c5bf7bbd11f326998bafc"}, + {file = "ruff-0.12.3-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:12371aec33e1a3758597c5c631bae9a5286f3c963bdfb4d17acdd2d395406687"}, + {file = "ruff-0.12.3-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:560f13b6baa49785665276c963edc363f8ad4b4fc910a883e2625bdb14a83a9e"}, + {file = "ruff-0.12.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:023040a3499f6f974ae9091bcdd0385dd9e9eb4942f231c23c57708147b06311"}, + {file = "ruff-0.12.3-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:883d844967bffff5ab28bba1a4d246c1a1b2933f48cb9840f3fdc5111c603b07"}, + {file = "ruff-0.12.3-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:2120d3aa855ff385e0e562fdee14d564c9675edbe41625c87eeab744a7830d12"}, + {file = "ruff-0.12.3-py3-none-musllinux_1_2_i686.whl", hash = "sha256:6b16647cbb470eaf4750d27dddc6ebf7758b918887b56d39e9c22cce2049082b"}, + {file = "ruff-0.12.3-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:e1417051edb436230023575b149e8ff843a324557fe0a265863b7602df86722f"}, + {file = "ruff-0.12.3-py3-none-win32.whl", hash = "sha256:dfd45e6e926deb6409d0616078a666ebce93e55e07f0fb0228d4b2608b2c248d"}, + {file = "ruff-0.12.3-py3-none-win_amd64.whl", hash = "sha256:a946cf1e7ba3209bdef039eb97647f1c77f6f540e5845ec9c114d3af8df873e7"}, + {file = "ruff-0.12.3-py3-none-win_arm64.whl", hash = "sha256:5f9c7c9c8f84c2d7f27e93674d27136fbf489720251544c4da7fb3d742e011b1"}, + {file = "ruff-0.12.3.tar.gz", hash = "sha256:f1b5a4b6668fd7b7ea3697d8d98857390b40c1320a63a178eee6be0899ea2d77"}, ] [[package]] From e0238eb3a275a527eb44303df12d4adac12d8a69 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 11 Jul 2025 18:04:36 +0200 Subject: [PATCH 10/13] chore: automatic locale sync (#5674) Co-authored-by: GitHub Action Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com> --- frontend/composables/use-locales/available-locales.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/frontend/composables/use-locales/available-locales.ts b/frontend/composables/use-locales/available-locales.ts index 45828557b..18044d304 100644 --- a/frontend/composables/use-locales/available-locales.ts +++ b/frontend/composables/use-locales/available-locales.ts @@ -9,7 +9,7 @@ export const LOCALES = [ { name: "简体中文 (Chinese simplified)", value: "zh-CN", - progress: 32, + progress: 33, dir: "ltr", }, { @@ -33,7 +33,7 @@ export const LOCALES = [ { name: "Svenska (Swedish)", value: "sv-SE", - progress: 37, + progress: 39, dir: "ltr", }, { @@ -159,7 +159,7 @@ export const LOCALES = [ { name: "Français (French)", value: "fr-FR", - progress: 37, + progress: 38, dir: "ltr", }, { @@ -213,7 +213,7 @@ export const LOCALES = [ { name: "Deutsch (German)", value: "de-DE", - progress: 39, + progress: 46, dir: "ltr", }, { From 6b98a7cd74155146078f8edd79987f9e3fc2c67b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 11 Jul 2025 19:22:03 +0200 Subject: [PATCH 11/13] fix(deps): update dependency openai to v1.95.0 (#5671) 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 8ec0c1ba3..fd924288b 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1816,14 +1816,14 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"] [[package]] name = "openai" -version = "1.94.0" +version = "1.95.0" description = "The official Python library for the openai API" optional = false python-versions = ">=3.8" groups = ["main"] files = [ - {file = "openai-1.94.0-py3-none-any.whl", hash = "sha256:159c43b811669abe9bb4aafdc57a049966dfde2eac94b151aac3eb63bf9825b4"}, - {file = "openai-1.94.0.tar.gz", hash = "sha256:31c6c213cc80365d54632296c4aef7cda1800003ca5c784ac50a05d6bc05c197"}, + {file = "openai-1.95.0-py3-none-any.whl", hash = "sha256:a7afc9dca7e7d616371842af8ea6dbfbcb739a85d183f5f664ab1cc311b9ef18"}, + {file = "openai-1.95.0.tar.gz", hash = "sha256:54bc42df9f7142312647dd485d34cca5df20af825fa64a30ca55164be2cf4cc9"}, ] [package.dependencies] From 2bae6e9d02d933bb5253529ffd3184eaaed93699 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 11 Jul 2025 22:38:46 +0200 Subject: [PATCH 12/13] docs(auto): Update image tag, for release v3.0.0 (#5675) Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com> --- .../getting-started/installation/installation-checklist.md | 2 +- .../docs/documentation/getting-started/installation/postgres.md | 2 +- docs/docs/documentation/getting-started/installation/sqlite.md | 2 +- frontend/package.json | 2 +- pyproject.toml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/docs/documentation/getting-started/installation/installation-checklist.md b/docs/docs/documentation/getting-started/installation/installation-checklist.md index bf5ef93de..4499293c8 100644 --- a/docs/docs/documentation/getting-started/installation/installation-checklist.md +++ b/docs/docs/documentation/getting-started/installation/installation-checklist.md @@ -31,7 +31,7 @@ To deploy mealie on your local network, it is highly recommended to use Docker t We've gone through a few versions of Mealie v1 deployment targets. We have settled on a single container deployment, and we've begun publishing the nightly container on github containers. If you're looking to move from the old nightly (split containers _or_ the omni image) to the new nightly, there are a few things you need to do: 1. Take a backup just in case! -2. Replace the image for the API container with `ghcr.io/mealie-recipes/mealie:v2.8.0` +2. Replace the image for the API container with `ghcr.io/mealie-recipes/mealie:v3.0.0` 3. Take the external port from the frontend container and set that as the port mapped to port `9000` on the new container. The frontend is now served on port 9000 from the new container, so it will need to be mapped for you to have access. 4. Restart the container diff --git a/docs/docs/documentation/getting-started/installation/postgres.md b/docs/docs/documentation/getting-started/installation/postgres.md index 4e08fa192..40277a00b 100644 --- a/docs/docs/documentation/getting-started/installation/postgres.md +++ b/docs/docs/documentation/getting-started/installation/postgres.md @@ -7,7 +7,7 @@ PostgreSQL might be considered if you need to support many concurrent users. In ```yaml services: mealie: - image: ghcr.io/mealie-recipes/mealie:v2.8.0 # (3) + image: ghcr.io/mealie-recipes/mealie:v3.0.0 # (3) container_name: mealie restart: always ports: diff --git a/docs/docs/documentation/getting-started/installation/sqlite.md b/docs/docs/documentation/getting-started/installation/sqlite.md index f33080e0e..d5962a43e 100644 --- a/docs/docs/documentation/getting-started/installation/sqlite.md +++ b/docs/docs/documentation/getting-started/installation/sqlite.md @@ -11,7 +11,7 @@ SQLite is a popular, open source, self-contained, zero-configuration database th ```yaml services: mealie: - image: ghcr.io/mealie-recipes/mealie:v2.8.0 # (3) + image: ghcr.io/mealie-recipes/mealie:v3.0.0 # (3) container_name: mealie restart: always ports: diff --git a/frontend/package.json b/frontend/package.json index fbd19f1a5..c4e8d04b3 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "mealie", - "version": "2.8.0", +"version": "3.0.0", "private": true, "scripts": { "dev": "nuxt dev", diff --git a/pyproject.toml b/pyproject.toml index 58e2b5589..308be97ca 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ authors = ["Hayden "] description = "A Recipe Manager" license = "AGPL" name = "mealie" -version = "2.8.0" +version = "3.0.0" include = [ # Explicit include to override .gitignore when packaging the frontend { path = "mealie/frontend/**/*", format = ["sdist", "wheel"] } From 8b9e80358b3a5389dc0d00a786272c87b684b1a7 Mon Sep 17 00:00:00 2001 From: Hayden <64056131+hay-kot@users.noreply.github.com> Date: Fri, 11 Jul 2025 16:18:48 -0500 Subject: [PATCH 13/13] chore(l10n): New Crowdin updates (#5682) --- frontend/lang/messages/ru-RU.json | 4 +- .../seed/resources/foods/locales/de-DE.json | 102 +++++------ .../seed/resources/foods/locales/nl-NL.json | 170 +++++++++--------- .../seed/resources/foods/locales/ru-RU.json | 2 +- 4 files changed, 139 insertions(+), 139 deletions(-) diff --git a/frontend/lang/messages/ru-RU.json b/frontend/lang/messages/ru-RU.json index 0fed68397..efbd1e2c5 100644 --- a/frontend/lang/messages/ru-RU.json +++ b/frontend/lang/messages/ru-RU.json @@ -288,7 +288,7 @@ "household-group": "Группа домохозяйства", "household-management": "Управление домохозяйствами", "manage-households": "Управление Домами", - "admin-household-management": "Admin Household Management", + "admin-household-management": "Управление Домохозяйством", "admin-household-management-text": "Изменения в данном домохозяйстве будут отражены немедленно.", "household-id-value": "Id домохозяйства: {0}", "private-household": "Частное домохозяйство", @@ -298,7 +298,7 @@ "household-recipe-preferences": "Предпочтения для рецептов домашнего хозяйства", "default-recipe-preferences-description": "Это настройки по умолчанию, когда в вашем домашнем хозяйстве создается новый рецепт. Они могут быть изменены для отдельных рецептов в меню настроек рецепта.", "allow-users-outside-of-your-household-to-see-your-recipes": "Разрешить пользователям вне вашего домохозяйства видеть ваши рецепты", - "allow-users-outside-of-your-household-to-see-your-recipes-description": "When enabled you can use a public share link to share specific recipes without authorizing the user. When disabled, you can only share recipes with users who are in your household or with a pre-generated private link", + "allow-users-outside-of-your-household-to-see-your-recipes-description": "При включении данной функции, вы можете делиться публичной ссылкой на данный рецепт, чтобы поделиться им с людьми без аккаунта. Если функция выключена — поделиться рецептом можно только с пользователями внутри вашего домохозяйства или по предварительно сгенерированной приватной ссылке", "household-preferences": "Параметры домохозяйства" }, "meal-plan": { diff --git a/mealie/repos/seed/resources/foods/locales/de-DE.json b/mealie/repos/seed/resources/foods/locales/de-DE.json index f429ef577..2ff9e555c 100644 --- a/mealie/repos/seed/resources/foods/locales/de-DE.json +++ b/mealie/repos/seed/resources/foods/locales/de-DE.json @@ -595,8 +595,8 @@ "broccoli slaw": { "aliases": [], "description": "", - "name": "broccoli slaw", - "plural_name": "broccoli slaws" + "name": "Brokkolisalat", + "plural_name": "Brokkolisalate" }, "arbol chile pepper": { "aliases": [], @@ -1182,55 +1182,55 @@ "aliases": [], "description": "", "name": "Pluot", - "plural_name": "pluots" + "plural_name": "Pluots" }, "soursop": { "aliases": [], "description": "", - "name": "soursop", - "plural_name": "soursops" + "name": "Stachelannone", + "plural_name": "Stachelannonen" }, "hog plum": { "aliases": [], "description": "", - "name": "hog plum", + "name": "Mombinpflaumen", "plural_name": "Mombinpflaume" }, "bergamot orange": { "aliases": [], "description": "", - "name": "bergamot orange", - "plural_name": "bergamot oranges" + "name": "Bergamotte", + "plural_name": "Bergamotten" }, "luo han guo": { "aliases": [], "description": "", - "name": "luo han guo", - "plural_name": "luo han guos" + "name": "Mönchsfrucht", + "plural_name": "Mönchsfrüchte" }, "mamey": { "aliases": [], "description": "", - "name": "mamey", - "plural_name": "mameys" + "name": "Mammiapfel", + "plural_name": "Mammiäpfel" }, "sapote": { "aliases": [], "description": "", - "name": "sapote", - "plural_name": "sapotes" + "name": "Sapote", + "plural_name": "Sapote" }, "green ume plum": { "aliases": [], "description": "", - "name": "green ume plum", - "plural_name": "green ume plums" + "name": "Japanische Pflaume", + "plural_name": "Japanische Pflaumen" }, "kiwano": { "aliases": [], "description": "", - "name": "kiwano", - "plural_name": "kiwanoes" + "name": "Horngurke", + "plural_name": "Horngurken" } } }, @@ -1419,13 +1419,13 @@ "puffball": { "aliases": [], "description": "", - "name": "puffball", - "plural_name": "puffballs" + "name": "Riesenbovist", + "plural_name": "Riesenboviste" }, "honey fungu": { "aliases": [], "description": "", - "name": "honey fungu", + "name": "", "plural_name": "honey fungus" }, "caesar's mushroom": { @@ -1471,8 +1471,8 @@ "cranberry": { "aliases": [], "description": "", - "name": "cranberry", - "plural_name": "cranberries" + "name": "Cranberry", + "plural_name": "Cranberries" }, "cherry": { "aliases": [], @@ -1483,7 +1483,7 @@ "blackberry": { "aliases": [], "description": "", - "name": "blackberry", + "name": "Brombeere", "plural_name": "Brombeeren" }, "berry mix": { @@ -1495,8 +1495,8 @@ "maraschino cherry": { "aliases": [], "description": "", - "name": "maraschino cherry", - "plural_name": "maraschino cherries" + "name": "maraschino Kirsche", + "plural_name": "maraschino Kirschen" }, "dried cherry": { "aliases": [], @@ -1507,8 +1507,8 @@ "juniper berry": { "aliases": [], "description": "", - "name": "juniper berry", - "plural_name": "juniper berries" + "name": "Wacholderbeere", + "plural_name": "Wacholderbeeren" }, "sour cherry": { "aliases": [], @@ -1519,8 +1519,8 @@ "goji berry": { "aliases": [], "description": "", - "name": "goji berry", - "plural_name": "goji berries" + "name": "Goji-Beere", + "plural_name": "Goji-Beeren" }, "dried blueberry": { "aliases": [], @@ -1561,8 +1561,8 @@ "mulberry": { "aliases": [], "description": "", - "name": "mulberry", - "plural_name": "mulberries" + "name": "Maulbeere", + "plural_name": "Maulbeeren" }, "acai berry": { "aliases": [], @@ -1597,8 +1597,8 @@ "huckleberry": { "aliases": [], "description": "", - "name": "huckleberry", - "plural_name": "huckleberries" + "name": "Heidelbeere", + "plural_name": "Heidelbeeren" }, "dried elderberry": { "aliases": [], @@ -1615,8 +1615,8 @@ "dried berry": { "aliases": [], "description": "", - "name": "dried berry", - "plural_name": "dried berries" + "name": "getrocknete Beere", + "plural_name": "getrocknete Beeren" }, "sea buckthorn": { "aliases": [], @@ -1663,8 +1663,8 @@ "aronia berry": { "aliases": [], "description": "", - "name": "aronia berry", - "plural_name": "aronia berries" + "name": "Apfelbeere", + "plural_name": "Apfelbeeren" }, "chokeberry": { "aliases": [], @@ -1681,8 +1681,8 @@ "blackcurrant leaf": { "aliases": [], "description": "", - "name": "blackcurrant leaf", - "plural_name": "blackcurrant leaves" + "name": "Schwarzes Johannisbeerblatt", + "plural_name": "Schwarze Johannisbeerblätter" }, "haskap berry": { "aliases": [], @@ -1745,8 +1745,8 @@ "pine nut": { "aliases": [], "description": "", - "name": "pine nut", - "plural_name": "pine nuts" + "name": "Pinienkern", + "plural_name": "Pinienkerne" }, "pistachio": { "aliases": [], @@ -1776,7 +1776,7 @@ "aliases": [], "description": "", "name": "slivered almond", - "plural_name": "slivered almonds" + "plural_name": "Mandelstifte" }, "pumpkin seed": { "aliases": [], @@ -1853,8 +1853,8 @@ "onion seed": { "aliases": [], "description": "", - "name": "onion seed", - "plural_name": "onion seeds" + "name": "Zwiebelsamen", + "plural_name": "Zwiebelsamen" }, "watermelon seed": { "aliases": [], @@ -1871,8 +1871,8 @@ "melon seed": { "aliases": [], "description": "", - "name": "melon seed", - "plural_name": "melon seeds" + "name": "Melonensamen", + "plural_name": "Melonensamen" }, "lotus seed": { "aliases": [], @@ -1895,8 +1895,8 @@ "basil seed": { "aliases": [], "description": "", - "name": "basil seed", - "plural_name": "basil seeds" + "name": "Basilikumsamen", + "plural_name": "Basilikumsamen" }, "candlenut": { "aliases": [], @@ -1907,8 +1907,8 @@ "peanut brittle": { "aliases": [], "description": "", - "name": "peanut brittle", - "plural_name": "peanut brittles" + "name": "Erdnusskrokant", + "plural_name": "Erdnusskrokant" }, "jackfruit seed": { "aliases": [], diff --git a/mealie/repos/seed/resources/foods/locales/nl-NL.json b/mealie/repos/seed/resources/foods/locales/nl-NL.json index 98f202864..283ec728f 100644 --- a/mealie/repos/seed/resources/foods/locales/nl-NL.json +++ b/mealie/repos/seed/resources/foods/locales/nl-NL.json @@ -241,106 +241,106 @@ "aliases": [], "description": "", "name": "artisjok", - "plural_name": "artichokes" + "plural_name": "artisjokken" }, "new potato": { "aliases": [], "description": "", - "name": "new potato", - "plural_name": "new potatoes" + "name": "krieltjes", + "plural_name": "krieltjes" }, "summer squash": { "aliases": [ "courgette", - "gem squash" + "edelpompoen" ], "description": "", "name": "summer squash", - "plural_name": "summer squashes" + "plural_name": "edelpompoenen" }, "mixed green": { "aliases": [], "description": "", - "name": "mixed green", - "plural_name": "mixed greens" + "name": "gemengde groenten", + "plural_name": "gemengde groenten" }, "parsnip": { "aliases": [], "description": "", - "name": "parsnip", - "plural_name": "parsnips" + "name": "pastinaak", + "plural_name": "pastinaken" }, "baby carrot": { "aliases": [], "description": "", - "name": "baby carrot", - "plural_name": "baby carrots" + "name": "baby wortel", + "plural_name": "baby wortels" }, "mixed vegetable": { "aliases": [], "description": "", - "name": "mixed vegetable", - "plural_name": "mixed vegetables" + "name": "gemengde groente", + "plural_name": "gemengde groenten" }, "poblano pepper": { "aliases": [], "description": "", - "name": "poblano pepper", - "plural_name": "poblano peppers" + "name": "poblano pepers", + "plural_name": "poblano pepers" }, "sweet pepper": { "aliases": [], "description": "", - "name": "sweet pepper", - "plural_name": "sweet peppers" + "name": "puntpaprika", + "plural_name": "puntpaprikas" }, "serrano pepper": { "aliases": [], "description": "", - "name": "serrano pepper", - "plural_name": "serrano peppers" + "name": "serranopeper", + "plural_name": "serranopepers" }, "cayenne pepper": { "aliases": [], "description": "", - "name": "cayenne pepper", - "plural_name": "cayenne peppers" + "name": "cayennepeper", + "plural_name": "cayennepepers" }, "green tomato": { "aliases": [], "description": "", - "name": "green tomato", - "plural_name": "green tomatoes" + "name": "groene tomaat", + "plural_name": "groene tomaten" }, "watercress": { "aliases": [], "description": "", - "name": "watercress", - "plural_name": "watercress" + "name": "waterkers", + "plural_name": "waterkersen" }, "iceberg": { "aliases": [], "description": "", - "name": "iceberg", - "plural_name": "icebergs" + "name": "ijsbergsla", + "plural_name": "ijsbergsla" }, "mashed potato": { "aliases": [], "description": "", - "name": "mashed potato", - "plural_name": "mashed potatoes" + "name": "aardappelpuree", + "plural_name": "aardappelpurees" }, "horseradish": { "aliases": [], "description": "", - "name": "horseradish", - "plural_name": "horseradishes" + "name": "mierikswortel", + "plural_name": "mierikswortelen" }, "chard": { "aliases": [], "description": "", - "name": "chard", - "plural_name": "chards" + "name": "snijbiet", + "plural_name": "snijbieten" }, "pimiento": { "aliases": [], @@ -351,40 +351,40 @@ "spaghetti squash": { "aliases": [], "description": "", - "name": "spaghetti squash", - "plural_name": "spaghetti squashes" + "name": "spaghettipompoen", + "plural_name": "spaghettipompoenen" }, "butter lettuce": { "aliases": [], "description": "", - "name": "butter lettuce", - "plural_name": "butter lettuces" + "name": "kropsla", + "plural_name": "kropsla" }, "hash brown": { "aliases": [], "description": "", - "name": "hash brown", - "plural_name": "hash browns" + "name": "gehakte aardappel", + "plural_name": "gehakte aardappels" }, "napa cabbage": { "aliases": [ - "chinese leaves" + "chinese kool" ], "description": "", - "name": "napa cabbage", - "plural_name": "napa cabbages" + "name": "chinese kool", + "plural_name": "chinese kolen" }, "celeriac": { "aliases": [], "description": "", - "name": "celeriac", - "plural_name": "celeriacs" + "name": "knolselderij", + "plural_name": "knolselders" }, "water chestnut": { "aliases": [], "description": "", - "name": "water chestnut", - "plural_name": "water chestnuts" + "name": "waterkastanje", + "plural_name": "waterkastanjes" }, "turnip": { "aliases": [], @@ -541,8 +541,8 @@ "ancho chile pepper": { "aliases": [], "description": "", - "name": "ancho chile pepper", - "plural_name": "ancho chile peppers" + "name": "ancho peper", + "plural_name": "ancho pepers" }, "microgreen": { "aliases": [], @@ -553,8 +553,8 @@ "boston lettuce": { "aliases": [], "description": "", - "name": "boston lettuce", - "plural_name": "boston lettuces" + "name": "botersla", + "plural_name": "botersla" }, "kohlrabi": { "aliases": [], @@ -608,19 +608,19 @@ "aliases": [], "description": "", "name": "golden beet", - "plural_name": "golden beets" + "plural_name": "gele biet" }, "pea shoot": { "aliases": [], "description": "", - "name": "pea shoot", - "plural_name": "pea shoots" + "name": "erwtenspruit", + "plural_name": "erwtenspruiten" }, "alfalfa": { "aliases": [], "description": "", - "name": "alfalfa", - "plural_name": "alfalfas" + "name": "luzerne", + "plural_name": "luzerne" } } }, @@ -630,61 +630,61 @@ "aliases": [], "description": "Yes they are a fruit", "name": "tomato", - "plural_name": "tomatoes" + "plural_name": "tomaten" }, "lemon": { "aliases": [], "description": "", - "name": "lemon", - "plural_name": "lemons" + "name": "citroen", + "plural_name": "citroenen" }, "lime": { "aliases": [], "description": "", - "name": "lime", - "plural_name": "limes" + "name": "limoen", + "plural_name": "limoenen" }, "apple": { "aliases": [], "description": "", - "name": "apple", - "plural_name": "apples" + "name": "appel", + "plural_name": "appels" }, "banana": { "aliases": [], "description": "", - "name": "banana", - "plural_name": "bananas" + "name": "banaan", + "plural_name": "bananen" }, "orange": { "aliases": [], "description": "", - "name": "orange", - "plural_name": "oranges" + "name": "sinaasappel", + "plural_name": "sinaasappels" }, "raisin": { "aliases": [], "description": "", - "name": "raisin", - "plural_name": "raisins" + "name": "rozijn", + "plural_name": "rozijnen" }, "pineapple": { "aliases": [], "description": "", - "name": "pineapple", - "plural_name": "pineapples" + "name": "ananas", + "plural_name": "ananassen" }, "mango": { "aliases": [], "description": "", "name": "mango", - "plural_name": "mangoes" + "plural_name": "mango's" }, "peach": { "aliases": [], "description": "", - "name": "peach", - "plural_name": "peaches" + "name": "perzik", + "plural_name": "perziken" }, "date": { "aliases": [], @@ -851,8 +851,8 @@ "dried fruit": { "aliases": [], "description": "", - "name": "dried fruit", - "plural_name": "dried fruits" + "name": "gedroogd fruit", + "plural_name": "gedroogd fruit" }, "clementine": { "aliases": [], @@ -4349,14 +4349,14 @@ "chicken breast": { "aliases": [], "description": "", - "name": "chicken breast", - "plural_name": "chicken breasts" + "name": "kipfilet", + "plural_name": "kipfilet" }, "chicken thigh": { "aliases": [], "description": "", - "name": "chicken thigh", - "plural_name": "chicken thighs" + "name": "kipdijfilet", + "plural_name": "kipdijfilet" }, "cooked chicken": { "aliases": [], @@ -4385,14 +4385,14 @@ "chicken leg": { "aliases": [], "description": "", - "name": "chicken leg", - "plural_name": "chicken legs" + "name": "kippenpoot", + "plural_name": "kippenpoten" }, "chicken wing": { "aliases": [], "description": "", - "name": "chicken wing", - "plural_name": "chicken wings" + "name": "kippenpoot", + "plural_name": "kippenpoten" }, "turkey breast": { "aliases": [], @@ -8540,8 +8540,8 @@ "rice": { "aliases": [], "description": "", - "name": "rice", - "plural_name": "rices" + "name": "rijst", + "plural_name": "rijst" }, "Rice Krispie Cereal": { "aliases": [ diff --git a/mealie/repos/seed/resources/foods/locales/ru-RU.json b/mealie/repos/seed/resources/foods/locales/ru-RU.json index 2d96db533..1b451ffff 100644 --- a/mealie/repos/seed/resources/foods/locales/ru-RU.json +++ b/mealie/repos/seed/resources/foods/locales/ru-RU.json @@ -34,7 +34,7 @@ "zucchini": { "aliases": [], "description": "", - "name": "zucchini", + "name": "цукини", "plural_name": "zucchinis" }, "potato": {