1
0
Fork 0
mirror of https://github.com/mealie-recipes/mealie.git synced 2025-07-18 20:59:41 +02:00

Merge branch 'mealie-next' into reset-scroll-position

This commit is contained in:
Kuchenpirat 2025-07-12 01:32:32 +02:00 committed by GitHub
commit 6e16a16cd8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
20 changed files with 457 additions and 456 deletions

View file

@ -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

View file

@ -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:

View file

@ -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:

View file

@ -42,6 +42,8 @@ export default defineNuxtComponent({
.v-main {
display: block;
padding: 0 !important;
margin: 0 !important;
}
.v-main__wrap {

View file

@ -23,18 +23,17 @@
</v-icon>
{{ recipe.name }}
</v-card-title>
<div v-if="recipeYield"
class="d-flex justify-space-between align-center px-4 pb-2"
<div
v-if="recipeYield"
class="d-flex justify-space-between align-center pb-6"
>
<v-chip :size="$vuetify.display.smAndDown ? 'small' : undefined"
label
>
<div>
<v-icon start>
{{ $globals.icons.potSteam }}
</v-icon>
<!-- eslint-disable-next-line vue/no-v-html -->
<span v-html="recipeYield" />
</v-chip>
</div>
</div>
<v-row class="d-flex justify-start">
<RecipeTimeCard :prep-time="recipe.prepTime"

View file

@ -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",
},
{

View file

@ -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": {

View file

@ -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刮削食谱。提供你想要刮削网址的URLMealie会尝试从该网址刮削食谱并添加到你的收藏中。",
"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"
}

View file

@ -219,10 +219,7 @@ export class RecipeAPI extends BaseCRUDAPI<CreateRecipe, Recipe, Recipe> {
async getAllTimelineEvents(page = 1, perPage = -1, params = {} as any) {
return await this.requests.get<PaginationData<RecipeTimelineEventOut>>(
routes.recipesTimelineEvent,
{
params: { page, perPage, ...params },
},
routes.recipesTimelineEvent, { page, perPage, ...params },
);
}

View file

@ -1,6 +1,6 @@
{
"name": "mealie",
"version": "2.8.0",
"version": "3.0.0",
"private": true,
"scripts": {
"dev": "nuxt dev",

View file

@ -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,

View file

@ -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": [],

View file

@ -34,8 +34,8 @@
"zucchini": {
"aliases": [],
"description": "",
"name": "zucchini",
"plural_name": "zucchinis"
"name": "courgette",
"plural_name": "courgettes"
},
"potato": {
"aliases": [],

View file

@ -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": [],

View file

@ -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": [

View file

@ -34,7 +34,7 @@
"zucchini": {
"aliases": [],
"description": "",
"name": "zucchini",
"name": "цукини",
"plural_name": "zucchinis"
},
"potato": {

View file

@ -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": [],

View file

@ -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": [],

44
poetry.lock generated
View file

@ -1816,14 +1816,14 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"]
[[package]]
name = "openai"
version = "1.93.2"
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.93.2-py3-none-any.whl", hash = "sha256:5adbbebd48eae160e6d68efc4c0a4f7cb1318a44c62d9fc626cec229f418eab4"},
{file = "openai-1.93.2.tar.gz", hash = "sha256:4a7312b426b5e4c98b78dfa1148b5683371882de3ad3d5f7c8e0c74f3cc90778"},
{file = "openai-1.95.0-py3-none-any.whl", hash = "sha256:a7afc9dca7e7d616371842af8ea6dbfbcb739a85d183f5f664ab1cc311b9ef18"},
{file = "openai-1.95.0.tar.gz", hash = "sha256:54bc42df9f7142312647dd485d34cca5df20af825fa64a30ca55164be2cf4cc9"},
]
[package.dependencies]
@ -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]]

View file

@ -3,7 +3,7 @@ authors = ["Hayden <hay-kot@pm.me>"]
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"] }