mirror of
https://github.com/hay-kot/mealie.git
synced 2025-08-21 14:03:32 -07:00
Merge branch 'mealie-next' into mealie-next
This commit is contained in:
commit
4c9af1a87e
123 changed files with 1059 additions and 1201 deletions
|
@ -12,7 +12,7 @@ repos:
|
||||||
exclude: ^tests/data/
|
exclude: ^tests/data/
|
||||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||||
# Ruff version.
|
# Ruff version.
|
||||||
rev: v0.12.5
|
rev: v0.12.7
|
||||||
hooks:
|
hooks:
|
||||||
- id: ruff
|
- id: ruff
|
||||||
- id: ruff-format
|
- id: ruff-format
|
||||||
|
|
|
@ -35,7 +35,7 @@ conventional_commits = true
|
||||||
filter_unconventional = true
|
filter_unconventional = true
|
||||||
# regex for preprocessing the commit messages
|
# regex for preprocessing the commit messages
|
||||||
commit_preprocessors = [
|
commit_preprocessors = [
|
||||||
{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](https://github.com/hay-kot/mealie/issues/${2}))"},
|
{ pattern = '\((\w+\s)?#([0-9]+)\)', replace = "([#${2}](https://github.com/mealie-recipes/mealie/issues/${2}))"},
|
||||||
]
|
]
|
||||||
# regex for parsing and grouping commits
|
# regex for parsing and grouping commits
|
||||||
commit_parsers = [
|
commit_parsers = [
|
||||||
|
|
|
@ -44,7 +44,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
|
||||||
"note": "1 cup unsalted butter, cut into cubes",
|
"note": "1 cup unsalted butter, cut into cubes",
|
||||||
"unit": None,
|
"unit": None,
|
||||||
"food": None,
|
"food": None,
|
||||||
"disableAmount": True,
|
|
||||||
"quantity": 1,
|
"quantity": 1,
|
||||||
"originalText": None,
|
"originalText": None,
|
||||||
"referenceId": "ea3b6702-9532-4fbc-a40b-f99917831c26",
|
"referenceId": "ea3b6702-9532-4fbc-a40b-f99917831c26",
|
||||||
|
@ -54,7 +53,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
|
||||||
"note": "1 cup light brown sugar",
|
"note": "1 cup light brown sugar",
|
||||||
"unit": None,
|
"unit": None,
|
||||||
"food": None,
|
"food": None,
|
||||||
"disableAmount": True,
|
|
||||||
"quantity": 1,
|
"quantity": 1,
|
||||||
"originalText": None,
|
"originalText": None,
|
||||||
"referenceId": "c5bbfefb-1e23-4ffd-af88-c0363a0fae82",
|
"referenceId": "c5bbfefb-1e23-4ffd-af88-c0363a0fae82",
|
||||||
|
@ -64,7 +62,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
|
||||||
"note": "1/2 cup granulated white sugar",
|
"note": "1/2 cup granulated white sugar",
|
||||||
"unit": None,
|
"unit": None,
|
||||||
"food": None,
|
"food": None,
|
||||||
"disableAmount": True,
|
|
||||||
"quantity": 1,
|
"quantity": 1,
|
||||||
"originalText": None,
|
"originalText": None,
|
||||||
"referenceId": "034f481b-c426-4a17-b983-5aea9be4974b",
|
"referenceId": "034f481b-c426-4a17-b983-5aea9be4974b",
|
||||||
|
@ -74,7 +71,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
|
||||||
"note": "2 large eggs",
|
"note": "2 large eggs",
|
||||||
"unit": None,
|
"unit": None,
|
||||||
"food": None,
|
"food": None,
|
||||||
"disableAmount": True,
|
|
||||||
"quantity": 1,
|
"quantity": 1,
|
||||||
"originalText": None,
|
"originalText": None,
|
||||||
"referenceId": "37c1f796-3bdb-4856-859f-dbec90bc27e4",
|
"referenceId": "37c1f796-3bdb-4856-859f-dbec90bc27e4",
|
||||||
|
@ -84,7 +80,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
|
||||||
"note": "2 tsp vanilla extract",
|
"note": "2 tsp vanilla extract",
|
||||||
"unit": None,
|
"unit": None,
|
||||||
"food": None,
|
"food": None,
|
||||||
"disableAmount": True,
|
|
||||||
"quantity": 1,
|
"quantity": 1,
|
||||||
"originalText": None,
|
"originalText": None,
|
||||||
"referenceId": "85561ace-f249-401d-834c-e600a2f6280e",
|
"referenceId": "85561ace-f249-401d-834c-e600a2f6280e",
|
||||||
|
@ -94,7 +89,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
|
||||||
"note": "1/2 cup creamy peanut butter",
|
"note": "1/2 cup creamy peanut butter",
|
||||||
"unit": None,
|
"unit": None,
|
||||||
"food": None,
|
"food": None,
|
||||||
"disableAmount": True,
|
|
||||||
"quantity": 1,
|
"quantity": 1,
|
||||||
"originalText": None,
|
"originalText": None,
|
||||||
"referenceId": "ac91bda0-e8a8-491a-976a-ae4e72418cfd",
|
"referenceId": "ac91bda0-e8a8-491a-976a-ae4e72418cfd",
|
||||||
|
@ -104,7 +98,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
|
||||||
"note": "1 tsp cornstarch",
|
"note": "1 tsp cornstarch",
|
||||||
"unit": None,
|
"unit": None,
|
||||||
"food": None,
|
"food": None,
|
||||||
"disableAmount": True,
|
|
||||||
"quantity": 1,
|
"quantity": 1,
|
||||||
"originalText": None,
|
"originalText": None,
|
||||||
"referenceId": "4d1256b3-115e-4475-83cd-464fbc304cb0",
|
"referenceId": "4d1256b3-115e-4475-83cd-464fbc304cb0",
|
||||||
|
@ -114,7 +107,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
|
||||||
"note": "1 tsp baking soda",
|
"note": "1 tsp baking soda",
|
||||||
"unit": None,
|
"unit": None,
|
||||||
"food": None,
|
"food": None,
|
||||||
"disableAmount": True,
|
|
||||||
"quantity": 1,
|
"quantity": 1,
|
||||||
"originalText": None,
|
"originalText": None,
|
||||||
"referenceId": "64627441-39f9-4ee3-8494-bafe36451d12",
|
"referenceId": "64627441-39f9-4ee3-8494-bafe36451d12",
|
||||||
|
@ -124,7 +116,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
|
||||||
"note": "1/2 tsp salt",
|
"note": "1/2 tsp salt",
|
||||||
"unit": None,
|
"unit": None,
|
||||||
"food": None,
|
"food": None,
|
||||||
"disableAmount": True,
|
|
||||||
"quantity": 1,
|
"quantity": 1,
|
||||||
"originalText": None,
|
"originalText": None,
|
||||||
"referenceId": "7ae212d0-3cd1-44b0-899e-ec5bd91fd384",
|
"referenceId": "7ae212d0-3cd1-44b0-899e-ec5bd91fd384",
|
||||||
|
@ -134,7 +125,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
|
||||||
"note": "1 cup cake flour",
|
"note": "1 cup cake flour",
|
||||||
"unit": None,
|
"unit": None,
|
||||||
"food": None,
|
"food": None,
|
||||||
"disableAmount": True,
|
|
||||||
"quantity": 1,
|
"quantity": 1,
|
||||||
"originalText": None,
|
"originalText": None,
|
||||||
"referenceId": "06967994-8548-4952-a8cc-16e8db228ebd",
|
"referenceId": "06967994-8548-4952-a8cc-16e8db228ebd",
|
||||||
|
@ -144,7 +134,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
|
||||||
"note": "2 cups all-purpose flour",
|
"note": "2 cups all-purpose flour",
|
||||||
"unit": None,
|
"unit": None,
|
||||||
"food": None,
|
"food": None,
|
||||||
"disableAmount": True,
|
|
||||||
"quantity": 1,
|
"quantity": 1,
|
||||||
"originalText": None,
|
"originalText": None,
|
||||||
"referenceId": "bdb33b23-c767-4465-acf8-3b8e79eb5691",
|
"referenceId": "bdb33b23-c767-4465-acf8-3b8e79eb5691",
|
||||||
|
@ -154,7 +143,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
|
||||||
"note": "2 cups peanut butter chips",
|
"note": "2 cups peanut butter chips",
|
||||||
"unit": None,
|
"unit": None,
|
||||||
"food": None,
|
"food": None,
|
||||||
"disableAmount": True,
|
|
||||||
"quantity": 1,
|
"quantity": 1,
|
||||||
"originalText": None,
|
"originalText": None,
|
||||||
"referenceId": "12ba0af8-affd-4fb2-9cca-6f1b3e8d3aef",
|
"referenceId": "12ba0af8-affd-4fb2-9cca-6f1b3e8d3aef",
|
||||||
|
@ -164,7 +152,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
|
||||||
"note": "1½ cups Reese's Pieces candies",
|
"note": "1½ cups Reese's Pieces candies",
|
||||||
"unit": None,
|
"unit": None,
|
||||||
"food": None,
|
"food": None,
|
||||||
"disableAmount": True,
|
|
||||||
"quantity": 1,
|
"quantity": 1,
|
||||||
"originalText": None,
|
"originalText": None,
|
||||||
"referenceId": "4bdc0598-a3eb-41ee-8af0-4da9348fbfe2",
|
"referenceId": "4bdc0598-a3eb-41ee-8af0-4da9348fbfe2",
|
||||||
|
@ -221,7 +208,6 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
|
||||||
"showAssets": False,
|
"showAssets": False,
|
||||||
"landscapeView": False,
|
"landscapeView": False,
|
||||||
"disableComments": False,
|
"disableComments": False,
|
||||||
"disableAmount": True,
|
|
||||||
"locked": False,
|
"locked": False,
|
||||||
},
|
},
|
||||||
"assets": [],
|
"assets": [],
|
||||||
|
|
|
@ -13,14 +13,14 @@ Steps:
|
||||||
|
|
||||||
#### 1. Get your API Token
|
#### 1. Get your API Token
|
||||||
|
|
||||||
Create an API token from Mealie's User Settings page (https://hay-kot.github.io/mealie/documentation/users-groups/user-settings/#api-key-generation)
|
Create an API token from Mealie's User Settings page (https://docs.mealie.io/documentation/getting-started/api-usage/#getting-a-token)
|
||||||
|
|
||||||
#### 2. Create Home Assistant Sensors
|
#### 2. Create Home Assistant Sensors
|
||||||
|
|
||||||
Create REST sensors in home assistant to get the details of today's meal.
|
Create REST sensors in home assistant to get the details of today's meal.
|
||||||
We will create sensors to get the name and ID of the first meal in today's meal plan (note that this may not be what is wanted if there is more than one meal planned for the day). We need the ID as well as the name to be able to retrieve the image for the meal.
|
We will create sensors to get the name and ID of the first meal in today's meal plan (note that this may not be what is wanted if there is more than one meal planned for the day). We need the ID as well as the name to be able to retrieve the image for the meal.
|
||||||
|
|
||||||
Make sure the url and port (`http://mealie:9000` ) matches your installation's address and _API_ port.
|
Make sure the url and port (`http://mealie:9000`) matches your installation's address and _API_ port.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
rest:
|
rest:
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
# Installing with PostgreSQL
|
# Installing with PostgreSQL
|
||||||
|
|
||||||
|
!!! Warning
|
||||||
|
When upgrading postgresql major versions, manual steps are required [Postgres#37](https://github.com/docker-library/postgres/issues/37).
|
||||||
|
|
||||||
PostgreSQL might be considered if you need to support many concurrent users. In addition, some features are only enabled on PostgreSQL, such as fuzzy search.
|
PostgreSQL might be considered if you need to support many concurrent users. In addition, some features are only enabled on PostgreSQL, such as fuzzy search.
|
||||||
|
|
||||||
**For Environment Variable Configuration, see** [Backend Configuration](./backend-config.md)
|
**For Environment Variable Configuration, see** [Backend Configuration](./backend-config.md)
|
||||||
|
@ -38,7 +41,7 @@ services:
|
||||||
|
|
||||||
postgres:
|
postgres:
|
||||||
container_name: postgres
|
container_name: postgres
|
||||||
image: postgres:15
|
image: postgres:17
|
||||||
restart: always
|
restart: always
|
||||||
volumes:
|
volumes:
|
||||||
- mealie-pgdata:/var/lib/postgresql/data
|
- mealie-pgdata:/var/lib/postgresql/data
|
||||||
|
@ -46,6 +49,7 @@ services:
|
||||||
POSTGRES_PASSWORD: mealie
|
POSTGRES_PASSWORD: mealie
|
||||||
POSTGRES_USER: mealie
|
POSTGRES_USER: mealie
|
||||||
PGUSER: mealie
|
PGUSER: mealie
|
||||||
|
POSTGRES_DB: mealie
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD", "pg_isready"]
|
test: ["CMD", "pg_isready"]
|
||||||
interval: 30s
|
interval: 30s
|
||||||
|
|
|
@ -2,6 +2,3 @@
|
||||||
|
|
||||||
## Feature Requests
|
## Feature Requests
|
||||||
[Please request new features on Github](https://github.com/mealie-recipes/mealie/discussions/new?category=feature-request)
|
[Please request new features on Github](https://github.com/mealie-recipes/mealie/discussions/new?category=feature-request)
|
||||||
|
|
||||||
## Progress
|
|
||||||
See the [Github Projects page](https://github.com/users/hay-kot/projects/2) to see what is currently being worked on
|
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -351,7 +351,7 @@
|
||||||
<!-- Custom narrow footer -->
|
<!-- Custom narrow footer -->
|
||||||
<div class="md-footer-meta__inner md-grid">
|
<div class="md-footer-meta__inner md-grid">
|
||||||
<div class="md-footer-social">
|
<div class="md-footer-social">
|
||||||
<a class="md-footer-social__link" href="https://github.com/hay-kot/mealie" rel="noopener" target="_blank"
|
<a class="md-footer-social__link" href="https://github.com/mealie-recipes/mealie" rel="noopener" target="_blank"
|
||||||
title="github.com">
|
title="github.com">
|
||||||
<svg style="width: 32px; height: 32px" viewBox="0 0 480 512" xmlns="http://www.w3.org/2000/svg">
|
<svg style="width: 32px; height: 32px" viewBox="0 0 480 512" xmlns="http://www.w3.org/2000/svg">
|
||||||
<path
|
<path
|
||||||
|
|
|
@ -79,11 +79,6 @@ const recipePreferences: Preference[] = [
|
||||||
label: i18n.t("group.disable-users-from-commenting-on-recipes"),
|
label: i18n.t("group.disable-users-from-commenting-on-recipes"),
|
||||||
description: i18n.t("group.disable-users-from-commenting-on-recipes-description"),
|
description: i18n.t("group.disable-users-from-commenting-on-recipes-description"),
|
||||||
},
|
},
|
||||||
{
|
|
||||||
key: "recipeDisableAmount",
|
|
||||||
label: i18n.t("group.disable-organizing-recipe-ingredients-by-units-and-food"),
|
|
||||||
description: i18n.t("group.disable-organizing-recipe-ingredients-by-units-and-food-description"),
|
|
||||||
},
|
|
||||||
];
|
];
|
||||||
|
|
||||||
const allDays = [
|
const allDays = [
|
||||||
|
|
|
@ -130,20 +130,23 @@
|
||||||
.ingredients[i]
|
.ingredients[i]
|
||||||
.checked"
|
.checked"
|
||||||
>
|
>
|
||||||
<v-checkbox
|
<v-container class="pa-0 ma-0">
|
||||||
hide-details
|
<v-row no-gutters>
|
||||||
:model-value="ingredientData.checked"
|
<v-checkbox
|
||||||
class="pt-0 my-auto py-auto"
|
hide-details
|
||||||
color="secondary"
|
:model-value="ingredientData.checked"
|
||||||
density="compact"
|
class="pt-0 my-auto py-auto mr-2"
|
||||||
/>
|
color="secondary"
|
||||||
<div :key="`${ingredientData.ingredient.quantity || 'no-qty'}-${i}`">
|
density="compact"
|
||||||
<RecipeIngredientListItem
|
/>
|
||||||
:ingredient="ingredientData.ingredient"
|
<div :key="`${ingredientData.ingredient.quantity || 'no-qty'}-${i}`" class="pa-auto my-auto">
|
||||||
:disable-amount="ingredientData.disableAmount"
|
<RecipeIngredientListItem
|
||||||
:scale="recipeSection.recipeScale"
|
:ingredient="ingredientData.ingredient"
|
||||||
/>
|
:scale="recipeSection.recipeScale"
|
||||||
</div>
|
/>
|
||||||
|
</div>
|
||||||
|
</v-row>
|
||||||
|
</v-container>
|
||||||
</v-list-item>
|
</v-list-item>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -188,7 +191,6 @@ export interface RecipeWithScale extends Recipe {
|
||||||
export interface ShoppingListIngredient {
|
export interface ShoppingListIngredient {
|
||||||
checked: boolean;
|
checked: boolean;
|
||||||
ingredient: RecipeIngredient;
|
ingredient: RecipeIngredient;
|
||||||
disableAmount: boolean;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ShoppingListIngredientSection {
|
export interface ShoppingListIngredientSection {
|
||||||
|
@ -290,7 +292,6 @@ async function consolidateRecipesIntoSections(recipes: RecipeWithScale[]) {
|
||||||
return {
|
return {
|
||||||
checked: !householdsWithFood.includes(userHousehold.value),
|
checked: !householdsWithFood.includes(userHousehold.value),
|
||||||
ingredient: ing,
|
ingredient: ing,
|
||||||
disableAmount: recipe.settings?.disableAmount || false,
|
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
class="d-flex flex-wrap my-1"
|
class="d-flex flex-wrap my-1"
|
||||||
>
|
>
|
||||||
<v-col
|
<v-col
|
||||||
v-if="!disableAmount"
|
|
||||||
sm="12"
|
sm="12"
|
||||||
md="2"
|
md="2"
|
||||||
cols="12"
|
cols="12"
|
||||||
|
@ -42,7 +41,6 @@
|
||||||
</v-text-field>
|
</v-text-field>
|
||||||
</v-col>
|
</v-col>
|
||||||
<v-col
|
<v-col
|
||||||
v-if="!disableAmount"
|
|
||||||
sm="12"
|
sm="12"
|
||||||
md="3"
|
md="3"
|
||||||
cols="12"
|
cols="12"
|
||||||
|
@ -98,7 +96,6 @@
|
||||||
|
|
||||||
<!-- Foods Input -->
|
<!-- Foods Input -->
|
||||||
<v-col
|
<v-col
|
||||||
v-if="!disableAmount"
|
|
||||||
m="12"
|
m="12"
|
||||||
md="3"
|
md="3"
|
||||||
cols="12"
|
cols="12"
|
||||||
|
@ -166,16 +163,7 @@
|
||||||
:placeholder="$t('recipe.notes')"
|
:placeholder="$t('recipe.notes')"
|
||||||
class="mb-auto"
|
class="mb-auto"
|
||||||
@click="$emit('clickIngredientField', 'note')"
|
@click="$emit('clickIngredientField', 'note')"
|
||||||
>
|
/>
|
||||||
<template #prepend>
|
|
||||||
<v-icon
|
|
||||||
v-if="disableAmount && $attrs && $attrs.delete"
|
|
||||||
class="mr-n1 handle"
|
|
||||||
>
|
|
||||||
{{ $globals.icons.arrowUpDown }}
|
|
||||||
</v-icon>
|
|
||||||
</template>
|
|
||||||
</v-text-field>
|
|
||||||
<BaseButtonGroup
|
<BaseButtonGroup
|
||||||
hover
|
hover
|
||||||
:large="false"
|
:large="false"
|
||||||
|
@ -216,10 +204,6 @@ import type { RecipeIngredient } from "~/lib/api/types/recipe";
|
||||||
const model = defineModel<RecipeIngredient>({ required: true });
|
const model = defineModel<RecipeIngredient>({ required: true });
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
disableAmount: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false,
|
|
||||||
},
|
|
||||||
unitError: {
|
unitError: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false,
|
default: false,
|
||||||
|
|
|
@ -34,16 +34,14 @@ import { useParsedIngredientText } from "~/composables/recipes";
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
ingredient: RecipeIngredient;
|
ingredient: RecipeIngredient;
|
||||||
disableAmount?: boolean;
|
|
||||||
scale?: number;
|
scale?: number;
|
||||||
}
|
}
|
||||||
const props = withDefaults(defineProps<Props>(), {
|
const props = withDefaults(defineProps<Props>(), {
|
||||||
disableAmount: false,
|
|
||||||
scale: 1,
|
scale: 1,
|
||||||
});
|
});
|
||||||
|
|
||||||
const parsedIng = computed(() => {
|
const parsedIng = computed(() => {
|
||||||
return useParsedIngredientText(props.ingredient, props.disableAmount, props.scale);
|
return useParsedIngredientText(props.ingredient, props.scale);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,6 @@
|
||||||
<v-list-item-title>
|
<v-list-item-title>
|
||||||
<RecipeIngredientListItem
|
<RecipeIngredientListItem
|
||||||
:ingredient="ingredient"
|
:ingredient="ingredient"
|
||||||
:disable-amount="disableAmount"
|
|
||||||
:scale="scale"
|
:scale="scale"
|
||||||
/>
|
/>
|
||||||
</v-list-item-title>
|
</v-list-item-title>
|
||||||
|
@ -60,13 +59,11 @@ import type { RecipeIngredient } from "~/lib/api/types/recipe";
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
value?: RecipeIngredient[];
|
value?: RecipeIngredient[];
|
||||||
disableAmount?: boolean;
|
|
||||||
scale?: number;
|
scale?: number;
|
||||||
isCookMode?: boolean;
|
isCookMode?: boolean;
|
||||||
}
|
}
|
||||||
const props = withDefaults(defineProps<Props>(), {
|
const props = withDefaults(defineProps<Props>(), {
|
||||||
value: () => [],
|
value: () => [],
|
||||||
disableAmount: false,
|
|
||||||
scale: 1,
|
scale: 1,
|
||||||
isCookMode: false,
|
isCookMode: false,
|
||||||
});
|
});
|
||||||
|
@ -89,7 +86,7 @@ const ingredientCopyText = computed(() => {
|
||||||
components.push(`[${ingredient.title}]`);
|
components.push(`[${ingredient.title}]`);
|
||||||
}
|
}
|
||||||
|
|
||||||
components.push(parseIngredientText(ingredient, props.disableAmount, props.scale, false));
|
components.push(parseIngredientText(ingredient, props.scale, false));
|
||||||
});
|
});
|
||||||
|
|
||||||
return components.join("\n");
|
return components.join("\n");
|
||||||
|
|
|
@ -141,7 +141,6 @@
|
||||||
<RecipeIngredients
|
<RecipeIngredients
|
||||||
:value="notLinkedIngredients"
|
:value="notLinkedIngredients"
|
||||||
:scale="scale"
|
:scale="scale"
|
||||||
:disable-amount="recipe.settings.disableAmount"
|
|
||||||
:is-cook-mode="isCookMode"
|
:is-cook-mode="isCookMode"
|
||||||
/>
|
/>
|
||||||
</v-card>
|
</v-card>
|
||||||
|
|
|
@ -1,9 +1,14 @@
|
||||||
<!-- eslint-disable vue/no-mutating-props -->
|
<!-- eslint-disable vue/no-mutating-props -->
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<h2 class="mb-4 text-h5 font-weight-medium opacity-80">
|
<div class="mb-4">
|
||||||
{{ $t("recipe.ingredients") }}
|
<h2 class="mb-4 text-h5 font-weight-medium opacity-80">
|
||||||
</h2>
|
{{ $t("recipe.ingredients") }}
|
||||||
|
</h2>
|
||||||
|
<BannerWarning v-if="!hasFoodOrUnit">
|
||||||
|
{{ $t("recipe.ingredients-not-parsed-description", { parse: $t('recipe.parse') }) }}
|
||||||
|
</BannerWarning>
|
||||||
|
</div>
|
||||||
<VueDraggable
|
<VueDraggable
|
||||||
v-if="recipe.recipeIngredient.length > 0"
|
v-if="recipe.recipeIngredient.length > 0"
|
||||||
v-model="recipe.recipeIngredient"
|
v-model="recipe.recipeIngredient"
|
||||||
|
@ -27,7 +32,6 @@
|
||||||
:key="ingredient.referenceId"
|
:key="ingredient.referenceId"
|
||||||
v-model="recipe.recipeIngredient[index]"
|
v-model="recipe.recipeIngredient[index]"
|
||||||
class="list-group-item"
|
class="list-group-item"
|
||||||
:disable-amount="recipe.settings.disableAmount"
|
|
||||||
@delete="recipe.recipeIngredient.splice(index, 1)"
|
@delete="recipe.recipeIngredient.splice(index, 1)"
|
||||||
@insert-above="insertNewIngredient(index)"
|
@insert-above="insertNewIngredient(index)"
|
||||||
@insert-below="insertNewIngredient(index + 1)"
|
@insert-below="insertNewIngredient(index + 1)"
|
||||||
|
@ -49,7 +53,7 @@
|
||||||
<span>
|
<span>
|
||||||
<BaseButton
|
<BaseButton
|
||||||
class="mb-1"
|
class="mb-1"
|
||||||
:disabled="recipe.settings.disableAmount || hasFoodOrUnit"
|
:disabled="hasFoodOrUnit"
|
||||||
color="accent"
|
color="accent"
|
||||||
:to="`/g/${groupSlug}/r/${recipe.slug}/ingredient-parser`"
|
:to="`/g/${groupSlug}/r/${recipe.slug}/ingredient-parser`"
|
||||||
v-bind="props"
|
v-bind="props"
|
||||||
|
@ -109,10 +113,7 @@ const hasFoodOrUnit = computed(() => {
|
||||||
});
|
});
|
||||||
|
|
||||||
const parserToolTip = computed(() => {
|
const parserToolTip = computed(() => {
|
||||||
if (recipe.value.settings.disableAmount) {
|
if (hasFoodOrUnit.value) {
|
||||||
return i18n.t("recipe.enable-ingredient-amounts-to-use-this-feature");
|
|
||||||
}
|
|
||||||
else if (hasFoodOrUnit.value) {
|
|
||||||
return i18n.t("recipe.recipes-with-units-or-foods-defined-cannot-be-parsed");
|
return i18n.t("recipe.recipes-with-units-or-foods-defined-cannot-be-parsed");
|
||||||
}
|
}
|
||||||
return i18n.t("recipe.parse-ingredients");
|
return i18n.t("recipe.parse-ingredients");
|
||||||
|
@ -127,7 +128,6 @@ function addIngredient(ingredients: Array<string> | null = null) {
|
||||||
note: x,
|
note: x,
|
||||||
unit: undefined,
|
unit: undefined,
|
||||||
food: undefined,
|
food: undefined,
|
||||||
disableAmount: true,
|
|
||||||
quantity: 1,
|
quantity: 1,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
@ -146,7 +146,6 @@ function addIngredient(ingredients: Array<string> | null = null) {
|
||||||
unit: undefined,
|
unit: undefined,
|
||||||
// @ts-expect-error - prop can be null-type by NoUndefinedField type forces it to be set
|
// @ts-expect-error - prop can be null-type by NoUndefinedField type forces it to be set
|
||||||
food: undefined,
|
food: undefined,
|
||||||
disableAmount: true,
|
|
||||||
quantity: 1,
|
quantity: 1,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -161,7 +160,6 @@ function insertNewIngredient(dest: number) {
|
||||||
unit: undefined,
|
unit: undefined,
|
||||||
// @ts-expect-error - prop can be null-type by NoUndefinedField type forces it to be set
|
// @ts-expect-error - prop can be null-type by NoUndefinedField type forces it to be set
|
||||||
food: undefined,
|
food: undefined,
|
||||||
disableAmount: true,
|
|
||||||
quantity: 1,
|
quantity: 1,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
<RecipeIngredients
|
<RecipeIngredients
|
||||||
:value="recipe.recipeIngredient"
|
:value="recipe.recipeIngredient"
|
||||||
:scale="scale"
|
:scale="scale"
|
||||||
:disable-amount="recipe.settings.disableAmount"
|
|
||||||
:is-cook-mode="isCookMode"
|
:is-cook-mode="isCookMode"
|
||||||
/>
|
/>
|
||||||
<div v-if="!isEditMode && recipe.tools && recipe.tools.length > 0">
|
<div v-if="!isEditMode && recipe.tools && recipe.tools.length > 0">
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
:value="ing.referenceId"
|
:value="ing.referenceId"
|
||||||
>
|
>
|
||||||
<template #label>
|
<template #label>
|
||||||
<RecipeIngredientHtml :markup="parseIngredientText(ing, recipe.settings.disableAmount)" />
|
<RecipeIngredientHtml :markup="parseIngredientText(ing)" />
|
||||||
</template>
|
</template>
|
||||||
</v-checkbox-btn>
|
</v-checkbox-btn>
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@
|
||||||
:value="ing.referenceId"
|
:value="ing.referenceId"
|
||||||
>
|
>
|
||||||
<template #label>
|
<template #label>
|
||||||
<RecipeIngredientHtml :markup="parseIngredientText(ing, recipe.settings.disableAmount)" />
|
<RecipeIngredientHtml :markup="parseIngredientText(ing)" />
|
||||||
</template>
|
</template>
|
||||||
</v-checkbox-btn>
|
</v-checkbox-btn>
|
||||||
</template>
|
</template>
|
||||||
|
@ -323,7 +323,6 @@
|
||||||
return step.ingredientReferences.map((ref) => ref.referenceId).includes(ing.referenceId || '')
|
return step.ingredientReferences.map((ref) => ref.referenceId).includes(ing.referenceId || '')
|
||||||
})"
|
})"
|
||||||
:scale="scale"
|
:scale="scale"
|
||||||
:disable-amount="recipe.settings.disableAmount"
|
|
||||||
:is-cook-mode="isCookMode"
|
:is-cook-mode="isCookMode"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
@ -552,7 +551,6 @@ function autoSetReferences() {
|
||||||
props.recipe.recipeIngredient,
|
props.recipe.recipeIngredient,
|
||||||
activeRefs.value,
|
activeRefs.value,
|
||||||
activeText.value,
|
activeText.value,
|
||||||
props.recipe.settings.disableAmount,
|
|
||||||
).forEach((ingredient: string) => activeRefs.value.push(ingredient));
|
).forEach((ingredient: string) => activeRefs.value.push(ingredient));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -574,7 +572,7 @@ function getIngredientByRefId(refId: string | undefined) {
|
||||||
|
|
||||||
const ing = ingredientLookup.value[refId];
|
const ing = ingredientLookup.value[refId];
|
||||||
if (!ing) return "";
|
if (!ing) return "";
|
||||||
return parseIngredientText(ing, props.recipe.settings.disableAmount, props.scale);
|
return parseIngredientText(ing, props.scale);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ===============================================================
|
// ===============================================================
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
v-if="!isEditMode"
|
v-if="!isEditMode"
|
||||||
v-model.number="scale"
|
v-model.number="scale"
|
||||||
:recipe-servings="recipeServings"
|
:recipe-servings="recipeServings"
|
||||||
:edit-scale="!recipe.settings.disableAmount && !isEditMode"
|
:edit-scale="hasFoodOrUnit && !isEditMode"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -24,4 +24,15 @@ const { isEditMode } = usePageState(props.recipe.slug);
|
||||||
const recipeServings = computed<number>(() => {
|
const recipeServings = computed<number>(() => {
|
||||||
return props.recipe.recipeServings || props.recipe.recipeYieldQuantity || 1;
|
return props.recipe.recipeServings || props.recipe.recipeYieldQuantity || 1;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const hasFoodOrUnit = computed(() => {
|
||||||
|
if (props.recipe.recipeIngredient) {
|
||||||
|
for (const ingredient of props.recipe.recipeIngredient) {
|
||||||
|
if (ingredient.food || ingredient.unit) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -321,7 +321,7 @@ const hasNotes = computed(() => {
|
||||||
});
|
});
|
||||||
|
|
||||||
function parseText(ingredient: RecipeIngredient) {
|
function parseText(ingredient: RecipeIngredient) {
|
||||||
return parseIngredientText(ingredient, props.recipe.settings?.disableAmount || false, props.scale);
|
return parseIngredientText(ingredient, props.scale);
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,6 @@ const labels: Record<keyof RecipeSettings, string> = {
|
||||||
showAssets: i18n.t("asset.show-assets"),
|
showAssets: i18n.t("asset.show-assets"),
|
||||||
landscapeView: i18n.t("recipe.landscape-view-coming-soon"),
|
landscapeView: i18n.t("recipe.landscape-view-coming-soon"),
|
||||||
disableComments: i18n.t("recipe.disable-comments"),
|
disableComments: i18n.t("recipe.disable-comments"),
|
||||||
disableAmount: i18n.t("recipe.disable-amount"),
|
|
||||||
locked: i18n.t("recipe.locked"),
|
locked: i18n.t("recipe.locked"),
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -22,10 +22,7 @@
|
||||||
:class="listItem.checked ? 'strike-through' : ''"
|
:class="listItem.checked ? 'strike-through' : ''"
|
||||||
style="min-width: 0;"
|
style="min-width: 0;"
|
||||||
>
|
>
|
||||||
<RecipeIngredientListItem
|
<RecipeIngredientListItem :ingredient="listItem" />
|
||||||
:ingredient="listItem"
|
|
||||||
:disable-amount="!(listItem.isFood || listItem.quantity !== 1)"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</v-col>
|
</v-col>
|
||||||
|
@ -172,7 +169,6 @@
|
||||||
@save="save"
|
@save="save"
|
||||||
@cancel="toggleEdit(false)"
|
@cancel="toggleEdit(false)"
|
||||||
@delete="$emit('delete')"
|
@delete="$emit('delete')"
|
||||||
@toggle-foods="localListItem.isFood = !localListItem.isFood"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<div>
|
<div>
|
||||||
<v-card variant="outlined">
|
<v-card variant="outlined">
|
||||||
<v-card-text class="pb-3 pt-1">
|
<v-card-text class="pb-3 pt-1">
|
||||||
<div v-if="listItem.isFood" class="d-md-flex align-center mb-2" style="gap: 20px">
|
<div class="d-md-flex align-center mb-2" style="gap: 20px">
|
||||||
<div>
|
<div>
|
||||||
<InputQuantity v-model="listItem.quantity" />
|
<InputQuantity v-model="listItem.quantity" />
|
||||||
</div>
|
</div>
|
||||||
|
@ -26,9 +26,6 @@
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="d-md-flex align-center" style="gap: 20px">
|
<div class="d-md-flex align-center" style="gap: 20px">
|
||||||
<div v-if="!listItem.isFood">
|
|
||||||
<InputQuantity v-model="listItem.quantity" />
|
|
||||||
</div>
|
|
||||||
<v-textarea
|
<v-textarea
|
||||||
v-model="listItem.note"
|
v-model="listItem.note"
|
||||||
hide-details
|
hide-details
|
||||||
|
@ -99,11 +96,6 @@
|
||||||
text: $t('general.cancel'),
|
text: $t('general.cancel'),
|
||||||
event: 'cancel',
|
event: 'cancel',
|
||||||
},
|
},
|
||||||
{
|
|
||||||
icon: $globals.icons.foods,
|
|
||||||
text: $t('shopping-list.toggle-food'),
|
|
||||||
event: 'toggle-foods',
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
icon: $globals.icons.save,
|
icon: $globals.icons.save,
|
||||||
text: $t('general.save'),
|
text: $t('general.save'),
|
||||||
|
@ -113,7 +105,6 @@
|
||||||
@save="$emit('save')"
|
@save="$emit('save')"
|
||||||
@cancel="$emit('cancel')"
|
@cancel="$emit('cancel')"
|
||||||
@delete="$emit('delete')"
|
@delete="$emit('delete')"
|
||||||
@toggle-foods="listItem.isFood = !listItem.isFood"
|
|
||||||
/>
|
/>
|
||||||
</v-card-actions>
|
</v-card-actions>
|
||||||
</v-card>
|
</v-card>
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
<v-btn
|
<v-btn
|
||||||
color="white"
|
color="white"
|
||||||
icon
|
icon
|
||||||
href="https://github.com/hay-kot/mealie"
|
href="https://github.com/mealie-recipes/mealie"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
<v-icon>
|
<v-icon>
|
||||||
|
|
|
@ -18,8 +18,8 @@ function removeStartingPunctuation(word: string): string {
|
||||||
return word.replace(punctuationAtBeginning, "");
|
return word.replace(punctuationAtBeginning, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
function ingredientMatchesWord(ingredient: RecipeIngredient, word: string, recipeIngredientAmountsDisabled: boolean) {
|
function ingredientMatchesWord(ingredient: RecipeIngredient, word: string) {
|
||||||
const searchText = parseIngredientText(ingredient, recipeIngredientAmountsDisabled);
|
const searchText = parseIngredientText(ingredient);
|
||||||
return searchText.toLowerCase().includes(word.toLowerCase());
|
return searchText.toLowerCase().includes(word.toLowerCase());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ function isBlackListedWord(word: string) {
|
||||||
return blackListedText.includes(word) || word.match(blackListedRegexMatch);
|
return blackListedText.includes(word) || word.match(blackListedRegexMatch);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function useExtractIngredientReferences(recipeIngredients: RecipeIngredient[], activeRefs: string[], text: string, recipeIngredientAmountsDisabled: boolean): Set<string> {
|
export function useExtractIngredientReferences(recipeIngredients: RecipeIngredient[], activeRefs: string[], text: string): Set<string> {
|
||||||
const availableIngredients = recipeIngredients
|
const availableIngredients = recipeIngredients
|
||||||
.filter(ingredient => ingredient.referenceId !== undefined)
|
.filter(ingredient => ingredient.referenceId !== undefined)
|
||||||
.filter(ingredient => !activeRefs.includes(ingredient.referenceId as string));
|
.filter(ingredient => !activeRefs.includes(ingredient.referenceId as string));
|
||||||
|
@ -50,7 +50,7 @@ export function useExtractIngredientReferences(recipeIngredients: RecipeIngredie
|
||||||
.map(normalize)
|
.map(normalize)
|
||||||
.filter(word => word.length > 2)
|
.filter(word => word.length > 2)
|
||||||
.filter(word => !isBlackListedWord(word))
|
.filter(word => !isBlackListedWord(word))
|
||||||
.flatMap(word => availableIngredients.filter(ingredient => ingredientMatchesWord(ingredient, word, recipeIngredientAmountsDisabled)))
|
.flatMap(word => availableIngredients.filter(ingredient => ingredientMatchesWord(ingredient, word)))
|
||||||
.map(ingredient => ingredient.referenceId as string);
|
.map(ingredient => ingredient.referenceId as string);
|
||||||
// deduplicate
|
// deduplicate
|
||||||
|
|
||||||
|
|
|
@ -16,33 +16,27 @@ describe(parseIngredientText.name, () => {
|
||||||
...overrides,
|
...overrides,
|
||||||
});
|
});
|
||||||
|
|
||||||
test("uses ingredient note if disableAmount: true", () => {
|
|
||||||
const ingredient = createRecipeIngredient({ note: "foo" });
|
|
||||||
|
|
||||||
expect(parseIngredientText(ingredient, true)).toEqual("foo");
|
|
||||||
});
|
|
||||||
|
|
||||||
test("adds note section if note present", () => {
|
test("adds note section if note present", () => {
|
||||||
const ingredient = createRecipeIngredient({ note: "custom note" });
|
const ingredient = createRecipeIngredient({ note: "custom note" });
|
||||||
|
|
||||||
expect(parseIngredientText(ingredient, false)).toContain("custom note");
|
expect(parseIngredientText(ingredient)).toContain("custom note");
|
||||||
});
|
});
|
||||||
|
|
||||||
test("ingredient text with fraction", () => {
|
test("ingredient text with fraction", () => {
|
||||||
const ingredient = createRecipeIngredient({ quantity: 1.5, unit: { fraction: true, id: "1", name: "cup" } });
|
const ingredient = createRecipeIngredient({ quantity: 1.5, unit: { fraction: true, id: "1", name: "cup" } });
|
||||||
|
|
||||||
expect(parseIngredientText(ingredient, false, 1, true)).contain("1<sup>1</sup>").and.to.contain("<sub>2</sub>");
|
expect(parseIngredientText(ingredient, 1, true)).contain("1<sup>1</sup>").and.to.contain("<sub>2</sub>");
|
||||||
});
|
});
|
||||||
|
|
||||||
test("ingredient text with fraction when unit is null", () => {
|
test("ingredient text with fraction when unit is null", () => {
|
||||||
const ingredient = createRecipeIngredient({ quantity: 1.5, unit: undefined });
|
const ingredient = createRecipeIngredient({ quantity: 1.5, unit: undefined });
|
||||||
|
|
||||||
expect(parseIngredientText(ingredient, false, 1, true)).contain("1<sup>1</sup>").and.to.contain("<sub>2</sub>");
|
expect(parseIngredientText(ingredient, 1, true)).contain("1<sup>1</sup>").and.to.contain("<sub>2</sub>");
|
||||||
});
|
});
|
||||||
|
|
||||||
test("ingredient text with fraction no formatting", () => {
|
test("ingredient text with fraction no formatting", () => {
|
||||||
const ingredient = createRecipeIngredient({ quantity: 1.5, unit: { fraction: true, id: "1", name: "cup" } });
|
const ingredient = createRecipeIngredient({ quantity: 1.5, unit: { fraction: true, id: "1", name: "cup" } });
|
||||||
const result = parseIngredientText(ingredient, false, 1, false);
|
const result = parseIngredientText(ingredient, 1, false);
|
||||||
|
|
||||||
expect(result).not.contain("<");
|
expect(result).not.contain("<");
|
||||||
expect(result).not.contain(">");
|
expect(result).not.contain(">");
|
||||||
|
@ -52,7 +46,7 @@ describe(parseIngredientText.name, () => {
|
||||||
test("sanitizes html", () => {
|
test("sanitizes html", () => {
|
||||||
const ingredient = createRecipeIngredient({ note: "<script>alert('foo')</script>" });
|
const ingredient = createRecipeIngredient({ note: "<script>alert('foo')</script>" });
|
||||||
|
|
||||||
expect(parseIngredientText(ingredient, false)).not.toContain("<script>");
|
expect(parseIngredientText(ingredient)).not.toContain("<script>");
|
||||||
});
|
});
|
||||||
|
|
||||||
test("plural test : plural qty : use abbreviation", () => {
|
test("plural test : plural qty : use abbreviation", () => {
|
||||||
|
@ -62,7 +56,7 @@ describe(parseIngredientText.name, () => {
|
||||||
food: { id: "1", name: "diced onion", pluralName: "diced onions" },
|
food: { id: "1", name: "diced onion", pluralName: "diced onions" },
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(parseIngredientText(ingredient, false)).toEqual("2 tbsps diced onions");
|
expect(parseIngredientText(ingredient)).toEqual("2 tbsps diced onions");
|
||||||
});
|
});
|
||||||
|
|
||||||
test("plural test : plural qty : not abbreviation", () => {
|
test("plural test : plural qty : not abbreviation", () => {
|
||||||
|
@ -72,7 +66,7 @@ describe(parseIngredientText.name, () => {
|
||||||
food: { id: "1", name: "diced onion", pluralName: "diced onions" },
|
food: { id: "1", name: "diced onion", pluralName: "diced onions" },
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(parseIngredientText(ingredient, false)).toEqual("2 tablespoons diced onions");
|
expect(parseIngredientText(ingredient)).toEqual("2 tablespoons diced onions");
|
||||||
});
|
});
|
||||||
|
|
||||||
test("plural test : single qty : use abbreviation", () => {
|
test("plural test : single qty : use abbreviation", () => {
|
||||||
|
@ -82,7 +76,7 @@ describe(parseIngredientText.name, () => {
|
||||||
food: { id: "1", name: "diced onion", pluralName: "diced onions" },
|
food: { id: "1", name: "diced onion", pluralName: "diced onions" },
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(parseIngredientText(ingredient, false)).toEqual("1 tbsp diced onion");
|
expect(parseIngredientText(ingredient)).toEqual("1 tbsp diced onion");
|
||||||
});
|
});
|
||||||
|
|
||||||
test("plural test : single qty : not abbreviation", () => {
|
test("plural test : single qty : not abbreviation", () => {
|
||||||
|
@ -92,7 +86,7 @@ describe(parseIngredientText.name, () => {
|
||||||
food: { id: "1", name: "diced onion", pluralName: "diced onions" },
|
food: { id: "1", name: "diced onion", pluralName: "diced onions" },
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(parseIngredientText(ingredient, false)).toEqual("1 tablespoon diced onion");
|
expect(parseIngredientText(ingredient)).toEqual("1 tablespoon diced onion");
|
||||||
});
|
});
|
||||||
|
|
||||||
test("plural test : small qty : use abbreviation", () => {
|
test("plural test : small qty : use abbreviation", () => {
|
||||||
|
@ -102,7 +96,7 @@ describe(parseIngredientText.name, () => {
|
||||||
food: { id: "1", name: "diced onion", pluralName: "diced onions" },
|
food: { id: "1", name: "diced onion", pluralName: "diced onions" },
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(parseIngredientText(ingredient, false)).toEqual("0.5 tbsp diced onion");
|
expect(parseIngredientText(ingredient)).toEqual("0.5 tbsp diced onion");
|
||||||
});
|
});
|
||||||
|
|
||||||
test("plural test : small qty : not abbreviation", () => {
|
test("plural test : small qty : not abbreviation", () => {
|
||||||
|
@ -112,7 +106,7 @@ describe(parseIngredientText.name, () => {
|
||||||
food: { id: "1", name: "diced onion", pluralName: "diced onions" },
|
food: { id: "1", name: "diced onion", pluralName: "diced onions" },
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(parseIngredientText(ingredient, false)).toEqual("0.5 tablespoon diced onion");
|
expect(parseIngredientText(ingredient)).toEqual("0.5 tablespoon diced onion");
|
||||||
});
|
});
|
||||||
|
|
||||||
test("plural test : zero qty", () => {
|
test("plural test : zero qty", () => {
|
||||||
|
@ -122,7 +116,7 @@ describe(parseIngredientText.name, () => {
|
||||||
food: { id: "1", name: "diced onion", pluralName: "diced onions" },
|
food: { id: "1", name: "diced onion", pluralName: "diced onions" },
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(parseIngredientText(ingredient, false)).toEqual("diced onions");
|
expect(parseIngredientText(ingredient)).toEqual("diced onions");
|
||||||
});
|
});
|
||||||
|
|
||||||
test("plural test : single qty, scaled", () => {
|
test("plural test : single qty, scaled", () => {
|
||||||
|
@ -132,6 +126,6 @@ describe(parseIngredientText.name, () => {
|
||||||
food: { id: "1", name: "diced onion", pluralName: "diced onions" },
|
food: { id: "1", name: "diced onion", pluralName: "diced onions" },
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(parseIngredientText(ingredient, false, 2)).toEqual("2 tablespoons diced onions");
|
expect(parseIngredientText(ingredient, 2)).toEqual("2 tablespoons diced onions");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -36,16 +36,7 @@ function useUnitName(unit: CreateIngredientUnit | IngredientUnit | undefined, us
|
||||||
return returnVal;
|
return returnVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function useParsedIngredientText(ingredient: RecipeIngredient, disableAmount: boolean, scale = 1, includeFormating = true) {
|
export function useParsedIngredientText(ingredient: RecipeIngredient, scale = 1, includeFormating = true) {
|
||||||
if (disableAmount) {
|
|
||||||
return {
|
|
||||||
name: ingredient.note ? sanitizeIngredientHTML(ingredient.note) : undefined,
|
|
||||||
quantity: undefined,
|
|
||||||
unit: undefined,
|
|
||||||
note: undefined,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
const { quantity, food, unit, note } = ingredient;
|
const { quantity, food, unit, note } = ingredient;
|
||||||
const usePluralUnit = quantity !== undefined && ((quantity || 0) * scale > 1 || (quantity || 0) * scale === 0);
|
const usePluralUnit = quantity !== undefined && ((quantity || 0) * scale > 1 || (quantity || 0) * scale === 0);
|
||||||
const usePluralFood = (!quantity) || quantity * scale > 1;
|
const usePluralFood = (!quantity) || quantity * scale > 1;
|
||||||
|
@ -82,8 +73,8 @@ export function useParsedIngredientText(ingredient: RecipeIngredient, disableAmo
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export function parseIngredientText(ingredient: RecipeIngredient, disableAmount: boolean, scale = 1, includeFormating = true): string {
|
export function parseIngredientText(ingredient: RecipeIngredient, scale = 1, includeFormating = true): string {
|
||||||
const { quantity, unit, name, note } = useParsedIngredientText(ingredient, disableAmount, scale, includeFormating);
|
const { quantity, unit, name, note } = useParsedIngredientText(ingredient, scale, includeFormating);
|
||||||
|
|
||||||
const text = `${quantity || ""} ${unit || ""} ${name || ""} ${note || ""}`.replace(/ {2,}/g, " ").trim();
|
const text = `${quantity || ""} ${unit || ""} ${name || ""} ${note || ""}`.replace(/ {2,}/g, " ").trim();
|
||||||
return sanitizeIngredientHTML(text);
|
return sanitizeIngredientHTML(text);
|
||||||
|
|
|
@ -69,7 +69,7 @@ export const LOCALES = [
|
||||||
{
|
{
|
||||||
name: "Português (Portuguese)",
|
name: "Português (Portuguese)",
|
||||||
value: "pt-PT",
|
value: "pt-PT",
|
||||||
progress: 37,
|
progress: 38,
|
||||||
dir: "ltr",
|
dir: "ltr",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -81,7 +81,7 @@ export const LOCALES = [
|
||||||
{
|
{
|
||||||
name: "Polski (Polish)",
|
name: "Polski (Polish)",
|
||||||
value: "pl-PL",
|
value: "pl-PL",
|
||||||
progress: 37,
|
progress: 39,
|
||||||
dir: "ltr",
|
dir: "ltr",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -147,7 +147,7 @@ export const LOCALES = [
|
||||||
{
|
{
|
||||||
name: "עברית (Hebrew)",
|
name: "עברית (Hebrew)",
|
||||||
value: "he-IL",
|
value: "he-IL",
|
||||||
progress: 67,
|
progress: 73,
|
||||||
dir: "rtl",
|
dir: "rtl",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -159,7 +159,7 @@ export const LOCALES = [
|
||||||
{
|
{
|
||||||
name: "Français (French)",
|
name: "Français (French)",
|
||||||
value: "fr-FR",
|
value: "fr-FR",
|
||||||
progress: 49,
|
progress: 50,
|
||||||
dir: "ltr",
|
dir: "ltr",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -189,7 +189,7 @@ export const LOCALES = [
|
||||||
{
|
{
|
||||||
name: "Español (Spanish)",
|
name: "Español (Spanish)",
|
||||||
value: "es-ES",
|
value: "es-ES",
|
||||||
progress: 40,
|
progress: 41,
|
||||||
dir: "ltr",
|
dir: "ltr",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -207,25 +207,25 @@ export const LOCALES = [
|
||||||
{
|
{
|
||||||
name: "Ελληνικά (Greek)",
|
name: "Ελληνικά (Greek)",
|
||||||
value: "el-GR",
|
value: "el-GR",
|
||||||
progress: 38,
|
progress: 39,
|
||||||
dir: "ltr",
|
dir: "ltr",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Deutsch (German)",
|
name: "Deutsch (German)",
|
||||||
value: "de-DE",
|
value: "de-DE",
|
||||||
progress: 64,
|
progress: 65,
|
||||||
dir: "ltr",
|
dir: "ltr",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Dansk (Danish)",
|
name: "Dansk (Danish)",
|
||||||
value: "da-DK",
|
value: "da-DK",
|
||||||
progress: 38,
|
progress: 39,
|
||||||
dir: "ltr",
|
dir: "ltr",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "Čeština (Czech)",
|
name: "Čeština (Czech)",
|
||||||
value: "cs-CZ",
|
value: "cs-CZ",
|
||||||
progress: 39,
|
progress: 40,
|
||||||
dir: "ltr",
|
dir: "ltr",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
||||||
"message-key": "Boodskap sleutel",
|
"message-key": "Boodskap sleutel",
|
||||||
"parse": "Verwerk",
|
"parse": "Verwerk",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Voeg prente by deur dit in die bewerker te sleep en los",
|
"attach-images-hint": "Voeg prente by deur dit in die bewerker te sleep en los",
|
||||||
"drop-image": "Drop image",
|
"drop-image": "Drop image",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Skakel bestanddeelhoeveelhede aan om hierdie funksie te gebruik",
|
"enable-ingredient-amounts-to-use-this-feature": "Skakel bestanddeelhoeveelhede aan om hierdie funksie te gebruik",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
||||||
"message-key": "مفتاح الرساله",
|
"message-key": "مفتاح الرساله",
|
||||||
"parse": "تحليل",
|
"parse": "تحليل",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Attach images by dragging & dropping them into the editor",
|
"attach-images-hint": "Attach images by dragging & dropping them into the editor",
|
||||||
"drop-image": "وضع الصورة",
|
"drop-image": "وضع الصورة",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Enable ingredient amounts to use this feature",
|
"enable-ingredient-amounts-to-use-this-feature": "Enable ingredient amounts to use this feature",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Екстрите за рецепти са ключова характеристика на Mealie API. Те Ви позволяват да създавате персонализирани JSON двойки ключ/стойност в рамките на рецепта, за да ги препращате към други приложения. Можете да използвате тези ключове, за да предоставите информация за задействане на автоматизация или персонализирани съобщения, за препращане към желаното от Вас устройство.",
|
"api-extras-description": "Екстрите за рецепти са ключова характеристика на Mealie API. Те Ви позволяват да създавате персонализирани JSON двойки ключ/стойност в рамките на рецепта, за да ги препращате към други приложения. Можете да използвате тези ключове, за да предоставите информация за задействане на автоматизация или персонализирани съобщения, за препращане към желаното от Вас устройство.",
|
||||||
"message-key": "Ключ на съобщението",
|
"message-key": "Ключ на съобщението",
|
||||||
"parse": "Анализирай",
|
"parse": "Анализирай",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Прикачете снимки като ги влачете и пуснете в редактора",
|
"attach-images-hint": "Прикачете снимки като ги влачете и пуснете в редактора",
|
||||||
"drop-image": "Премахване на изображение",
|
"drop-image": "Премахване на изображение",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Пуснете количествата на съставките за да използвате функционалността",
|
"enable-ingredient-amounts-to-use-this-feature": "Пуснете количествата на съставките за да използвате функционалността",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Els extres de receptes són una funcionalitat clau de l'API de Mealie. Permeten crear parells clau/valor JSON personalitzats dins una recepta, per referenciar-los des d'aplicacions de tercers. Pots emprar aquestes claus per proveir informació, per exemple per a desencadenar automatitzacions o missatges personlitzats per a propagar al teu dispositiu desitjat.",
|
"api-extras-description": "Els extres de receptes són una funcionalitat clau de l'API de Mealie. Permeten crear parells clau/valor JSON personalitzats dins una recepta, per referenciar-los des d'aplicacions de tercers. Pots emprar aquestes claus per proveir informació, per exemple per a desencadenar automatitzacions o missatges personlitzats per a propagar al teu dispositiu desitjat.",
|
||||||
"message-key": "Clau del missatge",
|
"message-key": "Clau del missatge",
|
||||||
"parse": "Analitzar",
|
"parse": "Analitzar",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Afegeix imatges arrossegant i deixant anar la imatge a l'editor",
|
"attach-images-hint": "Afegeix imatges arrossegant i deixant anar la imatge a l'editor",
|
||||||
"drop-image": "Deixa anar la imatge",
|
"drop-image": "Deixa anar la imatge",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Habilita les quantitats d'ingredients per a poder fer servir aquesta característica",
|
"enable-ingredient-amounts-to-use-this-feature": "Habilita les quantitats d'ingredients per a poder fer servir aquesta característica",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Recepty jsou klíčovým rysem rozhraní pro API Mealie. Umožňují vytvářet vlastní klíče/hodnoty JSON v rámci receptu pro odkazy na aplikace třetích stran. Tyto klíče můžete použít pro poskytnutí informací, například pro aktivaci automatizace nebo vlastních zpráv pro přenos do požadovaného zařízení.",
|
"api-extras-description": "Recepty jsou klíčovým rysem rozhraní pro API Mealie. Umožňují vytvářet vlastní klíče/hodnoty JSON v rámci receptu pro odkazy na aplikace třetích stran. Tyto klíče můžete použít pro poskytnutí informací, například pro aktivaci automatizace nebo vlastních zpráv pro přenos do požadovaného zařízení.",
|
||||||
"message-key": "Klíč zprávy",
|
"message-key": "Klíč zprávy",
|
||||||
"parse": "Analyzovat",
|
"parse": "Analyzovat",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Přiložit obrázky přetažením jich do editoru",
|
"attach-images-hint": "Přiložit obrázky přetažením jich do editoru",
|
||||||
"drop-image": "Vložit obrázek",
|
"drop-image": "Vložit obrázek",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Chcete-li tuto funkci používat, povolte množství ingrediencí",
|
"enable-ingredient-amounts-to-use-this-feature": "Chcete-li tuto funkci používat, povolte množství ingrediencí",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Opskrifter ekstra er en central feature i Mealie API. De giver dig mulighed for at oprette brugerdefinerede JSON nøgle / værdi par inden for en opskrift, at henvise til fra 3. parts applikationer. Du kan bruge disse nøgler til at give oplysninger, for eksempel til at udløse automatiseringer eller brugerdefinerede beskeder til at videresende til din ønskede enhed.",
|
"api-extras-description": "Opskrifter ekstra er en central feature i Mealie API. De giver dig mulighed for at oprette brugerdefinerede JSON nøgle / værdi par inden for en opskrift, at henvise til fra 3. parts applikationer. Du kan bruge disse nøgler til at give oplysninger, for eksempel til at udløse automatiseringer eller brugerdefinerede beskeder til at videresende til din ønskede enhed.",
|
||||||
"message-key": "Beskednøgle",
|
"message-key": "Beskednøgle",
|
||||||
"parse": "Behandl data",
|
"parse": "Behandl data",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Vedhæft billeder ved at trække dem ind i redigeringsværktøjet",
|
"attach-images-hint": "Vedhæft billeder ved at trække dem ind i redigeringsværktøjet",
|
||||||
"drop-image": "Slet billede",
|
"drop-image": "Slet billede",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Aktiver mængde af ingredienser for at bruge denne funktion",
|
"enable-ingredient-amounts-to-use-this-feature": "Aktiver mængde af ingredienser for at bruge denne funktion",
|
||||||
|
|
|
@ -472,7 +472,7 @@
|
||||||
"comment": "Kommentar",
|
"comment": "Kommentar",
|
||||||
"comments": "Kommentare",
|
"comments": "Kommentare",
|
||||||
"delete-confirmation": "Bist du dir sicher, dass du dieses Rezept löschen möchtest?",
|
"delete-confirmation": "Bist du dir sicher, dass du dieses Rezept löschen möchtest?",
|
||||||
"admin-delete-confirmation": "You're about to delete a recipe that isn't yours using admin permissions. Are you sure?",
|
"admin-delete-confirmation": "Du bist dabei ein Rezept, welches nicht deins ist, mit Admin-Rechten zu löschen. Bist du sicher?",
|
||||||
"delete-recipe": "Rezept löschen",
|
"delete-recipe": "Rezept löschen",
|
||||||
"description": "Beschreibung",
|
"description": "Beschreibung",
|
||||||
"disable-amount": "Zutatenmenge deaktivieren",
|
"disable-amount": "Zutatenmenge deaktivieren",
|
||||||
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Rezepte-Extras sind ein Hauptmerkmal der Mealie API. Sie ermöglichen es dir, benutzerdefinierte JSON Key-Value-Paare zu einem Rezept zu erstellen, um Drittanbieter-Anwendungen zu steuern. Du kannst diese dazu verwenden, um Automatisierungen auszulösen oder benutzerdefinierte Nachrichten an bestimmte Geräte zu senden.",
|
"api-extras-description": "Rezepte-Extras sind ein Hauptmerkmal der Mealie API. Sie ermöglichen es dir, benutzerdefinierte JSON Key-Value-Paare zu einem Rezept zu erstellen, um Drittanbieter-Anwendungen zu steuern. Du kannst diese dazu verwenden, um Automatisierungen auszulösen oder benutzerdefinierte Nachrichten an bestimmte Geräte zu senden.",
|
||||||
"message-key": "Nachrichten-Schlüssel",
|
"message-key": "Nachrichten-Schlüssel",
|
||||||
"parse": "Parsen",
|
"parse": "Parsen",
|
||||||
|
"ingredients-not-parsed-description": "Es scheint als ob deine Zutaten noch nicht eingelesen wurden. Klick unten auf \"{parse}\" um deine Zutaten einzulesen.",
|
||||||
"attach-images-hint": "Bilder durch Ziehen & Ablegen in den Editor hinzufügen",
|
"attach-images-hint": "Bilder durch Ziehen & Ablegen in den Editor hinzufügen",
|
||||||
"drop-image": "Bild hier ablegen",
|
"drop-image": "Bild hier ablegen",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Aktiviere Zutatenmengen, um diese Funktion zu nutzen",
|
"enable-ingredient-amounts-to-use-this-feature": "Aktiviere Zutatenmengen, um diese Funktion zu nutzen",
|
||||||
|
@ -663,8 +664,8 @@
|
||||||
"no-unit": "Keine Einheit",
|
"no-unit": "Keine Einheit",
|
||||||
"missing-unit": "Fehlende Einheit erstellen: {unit}",
|
"missing-unit": "Fehlende Einheit erstellen: {unit}",
|
||||||
"missing-food": "Fehlendes Lebensmittel erstellen: {food}",
|
"missing-food": "Fehlendes Lebensmittel erstellen: {food}",
|
||||||
"this-unit-could-not-be-parsed-automatically": "This unit could not be parsed automatically",
|
"this-unit-could-not-be-parsed-automatically": "Diese Einheit konnte nicht automatisch analysiert werden",
|
||||||
"this-food-could-not-be-parsed-automatically": "This food could not be parsed automatically",
|
"this-food-could-not-be-parsed-automatically": "Dieses Lebensmittel konnte nicht automatisch analysiert werden",
|
||||||
"no-food": "Kein Lebensmittel"
|
"no-food": "Kein Lebensmittel"
|
||||||
},
|
},
|
||||||
"reset-servings-count": "Portionen zurücksetzen",
|
"reset-servings-count": "Portionen zurücksetzen",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Τα extras συνταγών αποτελούν βασικό χαρακτηριστικό του Mealie API. Σας επιτρέπουν να δημιουργήσετε προσαρμοσμένα ζεύγη κλειδιού/τιμής JSON μέσα σε μια συνταγή, να παραπέμψετε σε εφαρμογές τρίτων. Μπορείτε να χρησιμοποιήσετε αυτά τα κλειδιά για την παροχή πληροφοριών, για παράδειγμα πυροδότηση αυτοματισμών ή μετάδοση προσαρμοσμένων μηνυμάτων στη συσκευή που επιθυμείτε.",
|
"api-extras-description": "Τα extras συνταγών αποτελούν βασικό χαρακτηριστικό του Mealie API. Σας επιτρέπουν να δημιουργήσετε προσαρμοσμένα ζεύγη κλειδιού/τιμής JSON μέσα σε μια συνταγή, να παραπέμψετε σε εφαρμογές τρίτων. Μπορείτε να χρησιμοποιήσετε αυτά τα κλειδιά για την παροχή πληροφοριών, για παράδειγμα πυροδότηση αυτοματισμών ή μετάδοση προσαρμοσμένων μηνυμάτων στη συσκευή που επιθυμείτε.",
|
||||||
"message-key": "Κλειδί Μηνύματος",
|
"message-key": "Κλειδί Μηνύματος",
|
||||||
"parse": "Ανάλυση",
|
"parse": "Ανάλυση",
|
||||||
|
"ingredients-not-parsed-description": "Φαίνεται ότι τα συστατικά σας δεν έχουν αναλυθεί ακόμα. Κάντε κλικ στο κουμπί \"{parse}\" παρακάτω για να αναλύσετε τα συστατικά σας σε δομημένα τρόφιμα.",
|
||||||
"attach-images-hint": "Επισυνάψτε εικόνες σύροντας τις & αφήνοντάς τις στον επεξεργαστή",
|
"attach-images-hint": "Επισυνάψτε εικόνες σύροντας τις & αφήνοντάς τις στον επεξεργαστή",
|
||||||
"drop-image": "Απόθεση εικόνας",
|
"drop-image": "Απόθεση εικόνας",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Ενεργοποιήστε τις ποσότητες συστατικών για να χρησιμοποιήσετε αυτήν τη δυνατότητα",
|
"enable-ingredient-amounts-to-use-this-feature": "Ενεργοποιήστε τις ποσότητες συστατικών για να χρησιμοποιήσετε αυτήν τη δυνατότητα",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
||||||
"message-key": "Message Key",
|
"message-key": "Message Key",
|
||||||
"parse": "Parse",
|
"parse": "Parse",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Attach images by dragging & dropping them into the editor",
|
"attach-images-hint": "Attach images by dragging & dropping them into the editor",
|
||||||
"drop-image": "Drop image",
|
"drop-image": "Drop image",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Enable ingredient amounts to use this feature",
|
"enable-ingredient-amounts-to-use-this-feature": "Enable ingredient amounts to use this feature",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
||||||
"message-key": "Message Key",
|
"message-key": "Message Key",
|
||||||
"parse": "Parse",
|
"parse": "Parse",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Attach images by dragging & dropping them into the editor",
|
"attach-images-hint": "Attach images by dragging & dropping them into the editor",
|
||||||
"drop-image": "Drop image",
|
"drop-image": "Drop image",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Enable ingredient amounts to use this feature",
|
"enable-ingredient-amounts-to-use-this-feature": "Enable ingredient amounts to use this feature",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Los extras de las recetas son una característica clave de la API de Mealie. Permiten crear pares json clave/valor personalizados dentro de una receta para acceder desde aplicaciones de terceros. Puede utilizar estas claves para almacenar información, para activar la automatización o mensajes personalizados para transmitir al dispositivo deseado.",
|
"api-extras-description": "Los extras de las recetas son una característica clave de la API de Mealie. Permiten crear pares json clave/valor personalizados dentro de una receta para acceder desde aplicaciones de terceros. Puede utilizar estas claves para almacenar información, para activar la automatización o mensajes personalizados para transmitir al dispositivo deseado.",
|
||||||
"message-key": "Clave de mensaje",
|
"message-key": "Clave de mensaje",
|
||||||
"parse": "Analizar",
|
"parse": "Analizar",
|
||||||
|
"ingredients-not-parsed-description": "Parece que tus ingredientes no han sido analizados aún. Haz clic en el botón \"{parse}\" de abajo para analizarlos y convertirlos en alimentos estructurados.",
|
||||||
"attach-images-hint": "Adjuntar imágenes arrastrando y soltando en el editor",
|
"attach-images-hint": "Adjuntar imágenes arrastrando y soltando en el editor",
|
||||||
"drop-image": "Soltar imagen",
|
"drop-image": "Soltar imagen",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Habilitar la cantidad de ingredientes para usar esta característica",
|
"enable-ingredient-amounts-to-use-this-feature": "Habilitar la cantidad de ingredientes para usar esta característica",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Retsepti väljavõtted on Meali API oluline funktsioon. Neid saab kasutada kohandatud JSON-võtme/väärtuse paaride loomiseks retseptis, et viidata kolmandate osapoolte rakendustele. Neid klahve saab kasutada teabe edastamiseks, näiteks automaatse toimingu või kohandatud sõnumi käivitamiseks teie valitud seadmele.",
|
"api-extras-description": "Retsepti väljavõtted on Meali API oluline funktsioon. Neid saab kasutada kohandatud JSON-võtme/väärtuse paaride loomiseks retseptis, et viidata kolmandate osapoolte rakendustele. Neid klahve saab kasutada teabe edastamiseks, näiteks automaatse toimingu või kohandatud sõnumi käivitamiseks teie valitud seadmele.",
|
||||||
"message-key": "Sõnumi võti",
|
"message-key": "Sõnumi võti",
|
||||||
"parse": "Analüüsi",
|
"parse": "Analüüsi",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Lisa pildid manustesse neid lohistades ja vabastades need redaktorisse",
|
"attach-images-hint": "Lisa pildid manustesse neid lohistades ja vabastades need redaktorisse",
|
||||||
"drop-image": "Vabasta pilt",
|
"drop-image": "Vabasta pilt",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Luba koostisosa kogused, et kasutada seda omadust",
|
"enable-ingredient-amounts-to-use-this-feature": "Luba koostisosa kogused, et kasutada seda omadust",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Reseptiekstrat ovat Mealien API:n tärkeä ominaisuus. Niiden avulla voidaan luoda mukautettuja JSON-avain/arvo-pareja reseptin sisällä viitaten kolmannen osapuolen sovelluksiin. Näitä avaimia voi käyttää tiedon antamiseksi, esimerkiksi automaattisen toiminnon tai mukautetun viestin käynnistämiseksi haluamaasi laitteeseen.",
|
"api-extras-description": "Reseptiekstrat ovat Mealien API:n tärkeä ominaisuus. Niiden avulla voidaan luoda mukautettuja JSON-avain/arvo-pareja reseptin sisällä viitaten kolmannen osapuolen sovelluksiin. Näitä avaimia voi käyttää tiedon antamiseksi, esimerkiksi automaattisen toiminnon tai mukautetun viestin käynnistämiseksi haluamaasi laitteeseen.",
|
||||||
"message-key": "Viestiavain",
|
"message-key": "Viestiavain",
|
||||||
"parse": "Jäsennä",
|
"parse": "Jäsennä",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Liitä kuvia vetämällä ja pudottamalla ne editoriin",
|
"attach-images-hint": "Liitä kuvia vetämällä ja pudottamalla ne editoriin",
|
||||||
"drop-image": "Tuo kuva",
|
"drop-image": "Tuo kuva",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Käytä ainesosan määriä käyttääksesi tätä ominaisuutta",
|
"enable-ingredient-amounts-to-use-this-feature": "Käytä ainesosan määriä käyttääksesi tätä ominaisuutta",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Les suppléments des recettes sont une fonctionnalité clé de l’API Mealie. Ils permettent de créer des paires JSON clé/valeur personnalisées dans une recette, qui peuvent être référencées depuis des applications tierces. Ces clés peuvent être utilisées par exemple pour déclencher des tâches automatisées ou des messages personnalisés à transmettre à l’appareil souhaité.",
|
"api-extras-description": "Les suppléments des recettes sont une fonctionnalité clé de l’API Mealie. Ils permettent de créer des paires JSON clé/valeur personnalisées dans une recette, qui peuvent être référencées depuis des applications tierces. Ces clés peuvent être utilisées par exemple pour déclencher des tâches automatisées ou des messages personnalisés à transmettre à l’appareil souhaité.",
|
||||||
"message-key": "Clé de message",
|
"message-key": "Clé de message",
|
||||||
"parse": "Analyser",
|
"parse": "Analyser",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Ajouter des images en les glissant-déposant dans l'éditeur",
|
"attach-images-hint": "Ajouter des images en les glissant-déposant dans l'éditeur",
|
||||||
"drop-image": "Déposer l'image",
|
"drop-image": "Déposer l'image",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Activez les quantités d'ingrédients pour utiliser cette fonctionnalité",
|
"enable-ingredient-amounts-to-use-this-feature": "Activez les quantités d'ingrédients pour utiliser cette fonctionnalité",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Les suppléments des recettes sont une fonctionnalité clé de l’API Mealie. Ils permettent de créer des paires JSON clé/valeur personnalisées dans une recette, qui peuvent être référencées depuis des applications tierces. Ces clés peuvent être utilisées par exemple pour déclencher des tâches automatisées ou des messages personnalisés à transmettre à l’appareil souhaité.",
|
"api-extras-description": "Les suppléments des recettes sont une fonctionnalité clé de l’API Mealie. Ils permettent de créer des paires JSON clé/valeur personnalisées dans une recette, qui peuvent être référencées depuis des applications tierces. Ces clés peuvent être utilisées par exemple pour déclencher des tâches automatisées ou des messages personnalisés à transmettre à l’appareil souhaité.",
|
||||||
"message-key": "Clé de message",
|
"message-key": "Clé de message",
|
||||||
"parse": "Analyser",
|
"parse": "Analyser",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Ajouter des images en les glissant-déposant dans l'éditeur",
|
"attach-images-hint": "Ajouter des images en les glissant-déposant dans l'éditeur",
|
||||||
"drop-image": "Déposer l'image",
|
"drop-image": "Déposer l'image",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Activez les quantités d'ingrédients pour utiliser cette fonctionnalité",
|
"enable-ingredient-amounts-to-use-this-feature": "Activez les quantités d'ingrédients pour utiliser cette fonctionnalité",
|
||||||
|
|
|
@ -113,7 +113,7 @@
|
||||||
"get": "Envoyer",
|
"get": "Envoyer",
|
||||||
"home": "Accueil",
|
"home": "Accueil",
|
||||||
"image": "Image",
|
"image": "Image",
|
||||||
"image-upload-failed": "Le téléchargement de l’image a échoué",
|
"image-upload-failed": "Le téléversement de l’image a échoué",
|
||||||
"import": "Importer",
|
"import": "Importer",
|
||||||
"json": "JSON",
|
"json": "JSON",
|
||||||
"keyword": "Mot-clé",
|
"keyword": "Mot-clé",
|
||||||
|
@ -207,7 +207,7 @@
|
||||||
"selected-count": "Sélectionné : {count}",
|
"selected-count": "Sélectionné : {count}",
|
||||||
"export-all": "Exporter tout",
|
"export-all": "Exporter tout",
|
||||||
"refresh": "Actualiser",
|
"refresh": "Actualiser",
|
||||||
"upload-file": "Transférer un fichier",
|
"upload-file": "Téléverser un fichier",
|
||||||
"created-on-date": "Créé le {0}",
|
"created-on-date": "Créé le {0}",
|
||||||
"unsaved-changes": "Vous avez des modifications non enregistrées. Voulez-vous enregistrer avant de partir ? OK pour enregistrer, Annuler pour ignorer les modifications.",
|
"unsaved-changes": "Vous avez des modifications non enregistrées. Voulez-vous enregistrer avant de partir ? OK pour enregistrer, Annuler pour ignorer les modifications.",
|
||||||
"clipboard-copy-failure": "Échec de la copie dans le presse-papiers.",
|
"clipboard-copy-failure": "Échec de la copie dans le presse-papiers.",
|
||||||
|
@ -472,7 +472,7 @@
|
||||||
"comment": "Commentaire",
|
"comment": "Commentaire",
|
||||||
"comments": "Commentaires",
|
"comments": "Commentaires",
|
||||||
"delete-confirmation": "Voulez-vous vraiment supprimer cette recette ?",
|
"delete-confirmation": "Voulez-vous vraiment supprimer cette recette ?",
|
||||||
"admin-delete-confirmation": "You're about to delete a recipe that isn't yours using admin permissions. Are you sure?",
|
"admin-delete-confirmation": "Vous êtes sur le point de supprimer une recette qui n'est pas la vôtre en utilisant les permissions d'administrateur. Êtes-vous sûr(e) ?",
|
||||||
"delete-recipe": "Supprimer la recette",
|
"delete-recipe": "Supprimer la recette",
|
||||||
"description": "Description",
|
"description": "Description",
|
||||||
"disable-amount": "Désactiver les quantités des ingrédients",
|
"disable-amount": "Désactiver les quantités des ingrédients",
|
||||||
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Les suppléments des recettes sont une fonctionnalité clé de l’API Mealie. Ils permettent de créer des paires JSON clé/valeur personnalisées dans une recette, qui peuvent être référencées depuis des applications tierces. Ces clés peuvent être utilisées par exemple pour déclencher des tâches automatisées ou des messages personnalisés à transmettre à l’appareil souhaité.",
|
"api-extras-description": "Les suppléments des recettes sont une fonctionnalité clé de l’API Mealie. Ils permettent de créer des paires JSON clé/valeur personnalisées dans une recette, qui peuvent être référencées depuis des applications tierces. Ces clés peuvent être utilisées par exemple pour déclencher des tâches automatisées ou des messages personnalisés à transmettre à l’appareil souhaité.",
|
||||||
"message-key": "Clé de message",
|
"message-key": "Clé de message",
|
||||||
"parse": "Analyser",
|
"parse": "Analyser",
|
||||||
|
"ingredients-not-parsed-description": "Il semble que vos ingrédients ne soient pas encore analysés. Cliquez sur le bouton \"{parse}\" ci-dessous pour analyser vos ingrédients en aliments structurés.",
|
||||||
"attach-images-hint": "Ajouter des images en les glissant-déposant dans l'éditeur",
|
"attach-images-hint": "Ajouter des images en les glissant-déposant dans l'éditeur",
|
||||||
"drop-image": "Déposer l'image",
|
"drop-image": "Déposer l'image",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Activez les quantités d'ingrédients pour utiliser cette fonctionnalité",
|
"enable-ingredient-amounts-to-use-this-feature": "Activez les quantités d'ingrédients pour utiliser cette fonctionnalité",
|
||||||
|
@ -663,8 +664,8 @@
|
||||||
"no-unit": "Pas d'unité",
|
"no-unit": "Pas d'unité",
|
||||||
"missing-unit": "Créer une unité manquante : {unit}",
|
"missing-unit": "Créer une unité manquante : {unit}",
|
||||||
"missing-food": "Créer un aliment manquant : {food}",
|
"missing-food": "Créer un aliment manquant : {food}",
|
||||||
"this-unit-could-not-be-parsed-automatically": "This unit could not be parsed automatically",
|
"this-unit-could-not-be-parsed-automatically": "Cette unité n'a pas pu être analysée automatiquement",
|
||||||
"this-food-could-not-be-parsed-automatically": "This food could not be parsed automatically",
|
"this-food-could-not-be-parsed-automatically": "Cet aliment n'a pas pu être analysé automatiquement",
|
||||||
"no-food": "Aucun aliment"
|
"no-food": "Aucun aliment"
|
||||||
},
|
},
|
||||||
"reset-servings-count": "Réinitialiser le nombre de portions",
|
"reset-servings-count": "Réinitialiser le nombre de portions",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Os extras de receitas son unha característica clave da API de Mealie. Permítenche crear pares de clave/valor JSON personalizados dentro dunha receita, para facer referencia desde aplicacións de terceiros. Podes usar estas teclas para proporcionar información, por exemplo, para activar automatizacións ou mensaxes personalizadas para transmitir ao dispositivo que desexes.",
|
"api-extras-description": "Os extras de receitas son unha característica clave da API de Mealie. Permítenche crear pares de clave/valor JSON personalizados dentro dunha receita, para facer referencia desde aplicacións de terceiros. Podes usar estas teclas para proporcionar información, por exemplo, para activar automatizacións ou mensaxes personalizadas para transmitir ao dispositivo que desexes.",
|
||||||
"message-key": "Chave de Mensaxen",
|
"message-key": "Chave de Mensaxen",
|
||||||
"parse": "Interpretar",
|
"parse": "Interpretar",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Anexe imaxens arrastrando e soltandoas no editor",
|
"attach-images-hint": "Anexe imaxens arrastrando e soltandoas no editor",
|
||||||
"drop-image": "Arrastrar imaxen",
|
"drop-image": "Arrastrar imaxen",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Ative cantidades de ingredientes para usar esta funcionalidade",
|
"enable-ingredient-amounts-to-use-this-feature": "Ative cantidades de ingredientes para usar esta funcionalidade",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "מתכונים נוספים הם יכולת מפתח של Mealie API. הם מאפשרים ליצור צמדי key/value בצורת JSON על מנת לקרוא אותם בתוכנת צד שלישית. תוכלו להשתמש בצמדים האלה כדי לספק מידע, לדוגמא להפעיל אוטומציות או הודעות מותאמות אישית למכשירים מסויימים.",
|
"api-extras-description": "מתכונים נוספים הם יכולת מפתח של Mealie API. הם מאפשרים ליצור צמדי key/value בצורת JSON על מנת לקרוא אותם בתוכנת צד שלישית. תוכלו להשתמש בצמדים האלה כדי לספק מידע, לדוגמא להפעיל אוטומציות או הודעות מותאמות אישית למכשירים מסויימים.",
|
||||||
"message-key": "מפתח הודעה",
|
"message-key": "מפתח הודעה",
|
||||||
"parse": "ניתוח",
|
"parse": "ניתוח",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "הוסף תמונות ע\"י גרירה ושחרור אל תוך העורך",
|
"attach-images-hint": "הוסף תמונות ע\"י גרירה ושחרור אל תוך העורך",
|
||||||
"drop-image": "גרור תמונה",
|
"drop-image": "גרור תמונה",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "אפשר לכמות המרכיבים להשתמש בפונקציה",
|
"enable-ingredient-amounts-to-use-this-feature": "אפשר לכמות המרכיבים להשתמש בפונקציה",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
||||||
"message-key": "Ključ poruke",
|
"message-key": "Ključ poruke",
|
||||||
"parse": "Razluči (parsiraj)",
|
"parse": "Razluči (parsiraj)",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Priložite slike povlačenjem i ispuštanjem u uređivaču",
|
"attach-images-hint": "Priložite slike povlačenjem i ispuštanjem u uređivaču",
|
||||||
"drop-image": "Drop image",
|
"drop-image": "Drop image",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Omogući korištenje količina sastojaka za ovu značajku",
|
"enable-ingredient-amounts-to-use-this-feature": "Omogući korištenje količina sastojaka za ovu značajku",
|
||||||
|
|
|
@ -581,12 +581,13 @@
|
||||||
"how-did-it-turn-out": "Hogyan sikerült?",
|
"how-did-it-turn-out": "Hogyan sikerült?",
|
||||||
"user-made-this": "ezt {user} készítette el",
|
"user-made-this": "ezt {user} készítette el",
|
||||||
"added-to-timeline": "Idővonalhoz hozzáadva",
|
"added-to-timeline": "Idővonalhoz hozzáadva",
|
||||||
"failed-to-add-to-timeline": "Failed to add to timeline",
|
"failed-to-add-to-timeline": "Nem sikerült az idővonalhoz hozzáadni",
|
||||||
"failed-to-update-recipe": "Nem sikerült frissíteni a receptet",
|
"failed-to-update-recipe": "Nem sikerült frissíteni a receptet",
|
||||||
"added-to-timeline-but-failed-to-add-image": "Idővonalhoz hozzáadva, azonban a kép hozzáadása sikertelen",
|
"added-to-timeline-but-failed-to-add-image": "Idővonalhoz hozzáadva, azonban a kép hozzáadása sikertelen",
|
||||||
"api-extras-description": "A receptek extrái a Mealie API egyik legfontosabb szolgáltatása. Lehetővé teszik, hogy egyéni JSON kulcs/érték párokat hozzon létre egy receptben, amelyekre harmadik féltől származó alkalmazásokból hivatkozhat. Ezeket a kulcsokat információszolgáltatásra használhatja, például automatizmusok vagy egyéni üzenetek indítására, amelyeket a kívánt eszközre küldhet.",
|
"api-extras-description": "A receptek extrái a Mealie API egyik legfontosabb szolgáltatása. Lehetővé teszik, hogy egyéni JSON kulcs/érték párokat hozzon létre egy receptben, amelyekre harmadik féltől származó alkalmazásokból hivatkozhat. Ezeket a kulcsokat információszolgáltatásra használhatja, például automatizmusok vagy egyéni üzenetek indítására, amelyeket a kívánt eszközre küldhet.",
|
||||||
"message-key": "Üzenetkulcs",
|
"message-key": "Üzenetkulcs",
|
||||||
"parse": "Előkészítés",
|
"parse": "Előkészítés",
|
||||||
|
"ingredients-not-parsed-description": "Úgy tűnik, hogy az összetevőket még nem elemezték. Kattintson az alábbi „{parse}” gombra, hogy az összetevőket strukturált élelmiszerekké alakítsa.",
|
||||||
"attach-images-hint": "Képek csatolása a szerkesztőbe történő húzásával és ejtésével",
|
"attach-images-hint": "Képek csatolása a szerkesztőbe történő húzásával és ejtésével",
|
||||||
"drop-image": "Dobd ide a képet",
|
"drop-image": "Dobd ide a képet",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Engedélyezze az összetevők mennyiségét a funkció használatához",
|
"enable-ingredient-amounts-to-use-this-feature": "Engedélyezze az összetevők mennyiségét a funkció használatához",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
||||||
"message-key": "Message Key",
|
"message-key": "Message Key",
|
||||||
"parse": "Parse",
|
"parse": "Parse",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Attach images by dragging & dropping them into the editor",
|
"attach-images-hint": "Attach images by dragging & dropping them into the editor",
|
||||||
"drop-image": "Drop image",
|
"drop-image": "Drop image",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Enable ingredient amounts to use this feature",
|
"enable-ingredient-amounts-to-use-this-feature": "Enable ingredient amounts to use this feature",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Le opzioni extra delle ricette sono una caratteristica fondamentale dell'API Mealie. Consentono di creare json personalizzati con coppie di chiavi/valore all'interno di una ricetta a cui fare riferimento tramite applicazioni terze. È possibile utilizzare queste chiavi per inserire informazioni, per esempio per attivare automazioni oppure per inoltrare messaggi personalizzati al dispositivo desiderato.",
|
"api-extras-description": "Le opzioni extra delle ricette sono una caratteristica fondamentale dell'API Mealie. Consentono di creare json personalizzati con coppie di chiavi/valore all'interno di una ricetta a cui fare riferimento tramite applicazioni terze. È possibile utilizzare queste chiavi per inserire informazioni, per esempio per attivare automazioni oppure per inoltrare messaggi personalizzati al dispositivo desiderato.",
|
||||||
"message-key": "Chiave Messaggio",
|
"message-key": "Chiave Messaggio",
|
||||||
"parse": "Analizza",
|
"parse": "Analizza",
|
||||||
|
"ingredients-not-parsed-description": "Sembra che gli ingredienti non siano ancora analizzati. Fare clic il pulsante \"{parse}\" qui sotto per analizzare gli ingredienti in alimenti strutturati.",
|
||||||
"attach-images-hint": "Allega immagini trascinandole nell'editor",
|
"attach-images-hint": "Allega immagini trascinandole nell'editor",
|
||||||
"drop-image": "Trascina l'immagine",
|
"drop-image": "Trascina l'immagine",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Abilita le quantità degli ingredienti per utilizzare questa funzione",
|
"enable-ingredient-amounts-to-use-this-feature": "Abilita le quantità degli ingredienti per utilizzare questa funzione",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "レシピの追加機能はMealie APIの主な機能です。 サードパーティアプリから参照するために、レシピ内にカスタムJSONキー/値のペアを作成することができます。 これらのキーを使用して情報を提供することができます。例えば、自動化をトリガーしたり、カスタムメッセージをお使いのデバイスにリレーするなどです。",
|
"api-extras-description": "レシピの追加機能はMealie APIの主な機能です。 サードパーティアプリから参照するために、レシピ内にカスタムJSONキー/値のペアを作成することができます。 これらのキーを使用して情報を提供することができます。例えば、自動化をトリガーしたり、カスタムメッセージをお使いのデバイスにリレーするなどです。",
|
||||||
"message-key": "メッセージキー",
|
"message-key": "メッセージキー",
|
||||||
"parse": "解析",
|
"parse": "解析",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "エディタにドラッグ&ドロップして画像を添付する",
|
"attach-images-hint": "エディタにドラッグ&ドロップして画像を添付する",
|
||||||
"drop-image": "画像をドロップ",
|
"drop-image": "画像をドロップ",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "この機能を使用するには、材料の量を有効にする",
|
"enable-ingredient-amounts-to-use-this-feature": "この機能を使用するには、材料の量を有効にする",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
||||||
"message-key": "Message Key",
|
"message-key": "Message Key",
|
||||||
"parse": "Parse",
|
"parse": "Parse",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Attach images by dragging & dropping them into the editor",
|
"attach-images-hint": "Attach images by dragging & dropping them into the editor",
|
||||||
"drop-image": "Drop image",
|
"drop-image": "Drop image",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Enable ingredient amounts to use this feature",
|
"enable-ingredient-amounts-to-use-this-feature": "Enable ingredient amounts to use this feature",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
||||||
"message-key": "Žinutės raktas",
|
"message-key": "Žinutės raktas",
|
||||||
"parse": "Nuskaityti",
|
"parse": "Nuskaityti",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Pridėkite vaizdus vilkdami ir numesdami juos į redaktorių",
|
"attach-images-hint": "Pridėkite vaizdus vilkdami ir numesdami juos į redaktorių",
|
||||||
"drop-image": "Drop image",
|
"drop-image": "Drop image",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Įjunkite ingredientų kiekius, kad galėtumėte naudoti šią funkciją",
|
"enable-ingredient-amounts-to-use-this-feature": "Įjunkite ingredientų kiekius, kad galėtumėte naudoti šią funkciją",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Recepšu ekstras ir galvenā Mealie API iezīme. Tie ļauj jums izveidot pielāgotus JSON atslēgu/vērtību pārus receptē, lai atsaucotos no trešo pušu lietojumprogrammām. Varat izmantot šos taustiņus, lai sniegtu informāciju, piemēram, aktivizētu automatizāciju vai pielāgotus ziņojumus, lai tos pārsūtītu uz vēlamo ierīci.",
|
"api-extras-description": "Recepšu ekstras ir galvenā Mealie API iezīme. Tie ļauj jums izveidot pielāgotus JSON atslēgu/vērtību pārus receptē, lai atsaucotos no trešo pušu lietojumprogrammām. Varat izmantot šos taustiņus, lai sniegtu informāciju, piemēram, aktivizētu automatizāciju vai pielāgotus ziņojumus, lai tos pārsūtītu uz vēlamo ierīci.",
|
||||||
"message-key": "Ziņojuma atslēga",
|
"message-key": "Ziņojuma atslēga",
|
||||||
"parse": "Parsēšana",
|
"parse": "Parsēšana",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Pievienojiet attēlus, velkot un nometot tos redaktorā",
|
"attach-images-hint": "Pievienojiet attēlus, velkot un nometot tos redaktorā",
|
||||||
"drop-image": "Nometiet attēlu",
|
"drop-image": "Nometiet attēlu",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Iespējojiet sastāvdaļu daudzumu, lai izmantotu šo funkciju",
|
"enable-ingredient-amounts-to-use-this-feature": "Iespējojiet sastāvdaļu daudzumu, lai izmantotu šo funkciju",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Extra's bij recepten zijn een belangrijke functie van de Mealie API. Hiermee kun je aangepaste JSON key/value paren maken bij een recept om naar te verwijzen vanuit applicaties van derden. Je kunt deze sleutels gebruiken om extra informatie te bieden, bijvoorbeeld om automatisering aan te sturen of aangepaste berichten naar je gewenste apparaat te laten versturen.",
|
"api-extras-description": "Extra's bij recepten zijn een belangrijke functie van de Mealie API. Hiermee kun je aangepaste JSON key/value paren maken bij een recept om naar te verwijzen vanuit applicaties van derden. Je kunt deze sleutels gebruiken om extra informatie te bieden, bijvoorbeeld om automatisering aan te sturen of aangepaste berichten naar je gewenste apparaat te laten versturen.",
|
||||||
"message-key": "Berichtsleutel",
|
"message-key": "Berichtsleutel",
|
||||||
"parse": "Ontleed",
|
"parse": "Ontleed",
|
||||||
|
"ingredients-not-parsed-description": "Mealie heeft je ingrediënten nog niet verwerkt. Klik op de '{parse}' knop om je ingrediënten te verwerken als gestructureerde levensmiddelen.",
|
||||||
"attach-images-hint": "Voeg afbeeldingen toe door ze te slepen en in de editor te plaatsen",
|
"attach-images-hint": "Voeg afbeeldingen toe door ze te slepen en in de editor te plaatsen",
|
||||||
"drop-image": "Afbeelding toevoegen",
|
"drop-image": "Afbeelding toevoegen",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Schakel ingrediënthoeveelheden in om deze functie te gebruiken",
|
"enable-ingredient-amounts-to-use-this-feature": "Schakel ingrediënthoeveelheden in om deze functie te gebruiken",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Ekstramaterialer til oppskrifter er en viktig funksjon i Mealie API-en. De lar deg opprette egendefinerte JSON-nøkkel/verdi-par innenfor en oppskrift for å referere fra tredjepartsapplikasjoner. Du kan bruke disse nøklene til å gi informasjon for eksempel for å utløse automatiseringer eller egendefinerte meldinger som skal videreformidles til ønsket enhet.",
|
"api-extras-description": "Ekstramaterialer til oppskrifter er en viktig funksjon i Mealie API-en. De lar deg opprette egendefinerte JSON-nøkkel/verdi-par innenfor en oppskrift for å referere fra tredjepartsapplikasjoner. Du kan bruke disse nøklene til å gi informasjon for eksempel for å utløse automatiseringer eller egendefinerte meldinger som skal videreformidles til ønsket enhet.",
|
||||||
"message-key": "Meldingsnøkkel",
|
"message-key": "Meldingsnøkkel",
|
||||||
"parse": "Analyser",
|
"parse": "Analyser",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Fest bilder ved å dra og slippe dem inn i redigereringsverktøyet",
|
"attach-images-hint": "Fest bilder ved å dra og slippe dem inn i redigereringsverktøyet",
|
||||||
"drop-image": "Slipp bilde",
|
"drop-image": "Slipp bilde",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Aktiver ingrediensmengder for å bruke denne funksjonen",
|
"enable-ingredient-amounts-to-use-this-feature": "Aktiver ingrediensmengder for å bruke denne funksjonen",
|
||||||
|
@ -664,7 +665,7 @@
|
||||||
"missing-unit": "Opprett manglende enhet: {unit}",
|
"missing-unit": "Opprett manglende enhet: {unit}",
|
||||||
"missing-food": "Opprett manglende mat: {food}",
|
"missing-food": "Opprett manglende mat: {food}",
|
||||||
"this-unit-could-not-be-parsed-automatically": "This unit could not be parsed automatically",
|
"this-unit-could-not-be-parsed-automatically": "This unit could not be parsed automatically",
|
||||||
"this-food-could-not-be-parsed-automatically": "This food could not be parsed automatically",
|
"this-food-could-not-be-parsed-automatically": "Denne maten kunne ikke leses automatisk",
|
||||||
"no-food": "Ingen matvarer"
|
"no-food": "Ingen matvarer"
|
||||||
},
|
},
|
||||||
"reset-servings-count": "Nullstill antall porsjoner",
|
"reset-servings-count": "Nullstill antall porsjoner",
|
||||||
|
|
|
@ -472,7 +472,7 @@
|
||||||
"comment": "Komentarz",
|
"comment": "Komentarz",
|
||||||
"comments": "Komentarze",
|
"comments": "Komentarze",
|
||||||
"delete-confirmation": "Czy jesteś pewien, że chcesz usunąć ten przepis?",
|
"delete-confirmation": "Czy jesteś pewien, że chcesz usunąć ten przepis?",
|
||||||
"admin-delete-confirmation": "You're about to delete a recipe that isn't yours using admin permissions. Are you sure?",
|
"admin-delete-confirmation": "Zamierzasz usunąć przepis, który nie należy do Ciebie, używając uprawnień administratora. Czy jesteś pewien?",
|
||||||
"delete-recipe": "Usuń przepis",
|
"delete-recipe": "Usuń przepis",
|
||||||
"description": "Opis",
|
"description": "Opis",
|
||||||
"disable-amount": "Wyłącz ilości składników",
|
"disable-amount": "Wyłącz ilości składników",
|
||||||
|
@ -580,13 +580,14 @@
|
||||||
"made-this": "Ugotowałem to",
|
"made-this": "Ugotowałem to",
|
||||||
"how-did-it-turn-out": "Jak się to udało?",
|
"how-did-it-turn-out": "Jak się to udało?",
|
||||||
"user-made-this": "{user} ugotował(a) to",
|
"user-made-this": "{user} ugotował(a) to",
|
||||||
"added-to-timeline": "Added to timeline",
|
"added-to-timeline": "Dodano do osi czasu",
|
||||||
"failed-to-add-to-timeline": "Failed to add to timeline",
|
"failed-to-add-to-timeline": "Nie udało się dodać do osi czasu",
|
||||||
"failed-to-update-recipe": "Failed to update recipe",
|
"failed-to-update-recipe": "Nie udało się zaktualizować przepisu",
|
||||||
"added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
|
"added-to-timeline-but-failed-to-add-image": "Dodano do osi czasu, ale nie udało się dodać obrazu",
|
||||||
"api-extras-description": "Dodatki w przepisach są kluczową cechą API Mealie. Pozwalają na tworzenie niestandardowych par kluczy/wartości JSON w przepisie do odwoływania się przez zewnętrzne aplikacje. Możesz użyć tych kluczy do wyzwalania automatyzacji lub przekazywania niestandardowych wiadomości do twoich wybranych urządzeń.",
|
"api-extras-description": "Dodatki w przepisach są kluczową cechą API Mealie. Pozwalają na tworzenie niestandardowych par kluczy/wartości JSON w przepisie do odwoływania się przez zewnętrzne aplikacje. Możesz użyć tych kluczy do wyzwalania automatyzacji lub przekazywania niestandardowych wiadomości do twoich wybranych urządzeń.",
|
||||||
"message-key": "Klucz Wiadomości",
|
"message-key": "Klucz Wiadomości",
|
||||||
"parse": "Analizuj",
|
"parse": "Analizuj",
|
||||||
|
"ingredients-not-parsed-description": "Wygląda na to, że Twoje składniki nie zostały jeszcze przeanalizowane. Kliknij przycisk \"{parse}\" poniżej, aby przetworzyć składniki w ustrukturyzowane jedzenie.",
|
||||||
"attach-images-hint": "Dołącz obrazy przeciągając i upuszczając je do edytora",
|
"attach-images-hint": "Dołącz obrazy przeciągając i upuszczając je do edytora",
|
||||||
"drop-image": "Upuść zdjęcie",
|
"drop-image": "Upuść zdjęcie",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Włącz ilości składników, aby użyć tej funkcji",
|
"enable-ingredient-amounts-to-use-this-feature": "Włącz ilości składników, aby użyć tej funkcji",
|
||||||
|
@ -607,7 +608,7 @@
|
||||||
"create-from-images": "Utwórz przepis z obrazów",
|
"create-from-images": "Utwórz przepis z obrazów",
|
||||||
"should-translate-description": "Przetłumacz przepis na mój język",
|
"should-translate-description": "Przetłumacz przepis na mój język",
|
||||||
"please-wait-image-procesing": "Proszę czekać, obraz jest przetwarzany. To może chwilę potrwać.",
|
"please-wait-image-procesing": "Proszę czekać, obraz jest przetwarzany. To może chwilę potrwać.",
|
||||||
"please-wait-images-processing": "Please wait, the images are processing. This may take some time.",
|
"please-wait-images-processing": "Proszę czekać, obrazy są przetwarzane. To może chwilę potrwać.",
|
||||||
"bulk-url-import": "Import Zbiorczy z URL",
|
"bulk-url-import": "Import Zbiorczy z URL",
|
||||||
"debug-scraper": "Debuguj Scraper",
|
"debug-scraper": "Debuguj Scraper",
|
||||||
"create-a-recipe-by-providing-the-name-all-recipes-must-have-unique-names": "Utwórz przepis, podając nazwę. Wszystkie przepisy muszą mieć unikalne nazwy.",
|
"create-a-recipe-by-providing-the-name-all-recipes-must-have-unique-names": "Utwórz przepis, podając nazwę. Wszystkie przepisy muszą mieć unikalne nazwy.",
|
||||||
|
@ -663,15 +664,15 @@
|
||||||
"no-unit": "Brak jednostki",
|
"no-unit": "Brak jednostki",
|
||||||
"missing-unit": "Utwórz brakującą jednostkę: {unit}",
|
"missing-unit": "Utwórz brakującą jednostkę: {unit}",
|
||||||
"missing-food": "Utwórz brakującą potrawę: {food}",
|
"missing-food": "Utwórz brakującą potrawę: {food}",
|
||||||
"this-unit-could-not-be-parsed-automatically": "This unit could not be parsed automatically",
|
"this-unit-could-not-be-parsed-automatically": "Nie można przetworzyć tej jednostki automatycznie",
|
||||||
"this-food-could-not-be-parsed-automatically": "This food could not be parsed automatically",
|
"this-food-could-not-be-parsed-automatically": "Nie można przetworzyć tego jedzenia automatycznie",
|
||||||
"no-food": "Brak potrawy"
|
"no-food": "Brak potrawy"
|
||||||
},
|
},
|
||||||
"reset-servings-count": "Zresetuj liczbę porcji",
|
"reset-servings-count": "Zresetuj liczbę porcji",
|
||||||
"not-linked-ingredients": "Dodatkowe składniki",
|
"not-linked-ingredients": "Dodatkowe składniki",
|
||||||
"upload-another-image": "Upload another image",
|
"upload-another-image": "Prześlij kolejny obraz",
|
||||||
"upload-images": "Upload images",
|
"upload-images": "Prześlij obraz",
|
||||||
"upload-more-images": "Upload more images"
|
"upload-more-images": "Prześlij więcej obrazów"
|
||||||
},
|
},
|
||||||
"recipe-finder": {
|
"recipe-finder": {
|
||||||
"recipe-finder": "Wyszukiwarka przepisów",
|
"recipe-finder": "Wyszukiwarka przepisów",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Extras de receitas são atributos-chave da API do Mealie. Assim, você pode criar pares chave/valor JSON personalizados dentro de uma receita, referenciando aplicações de terceiros. Você pode usar as chaves para fornecer informações, como por ex. ativar automações ou mensagens que serão enviadas a seus dispositivos.",
|
"api-extras-description": "Extras de receitas são atributos-chave da API do Mealie. Assim, você pode criar pares chave/valor JSON personalizados dentro de uma receita, referenciando aplicações de terceiros. Você pode usar as chaves para fornecer informações, como por ex. ativar automações ou mensagens que serão enviadas a seus dispositivos.",
|
||||||
"message-key": "Chave de mensagem",
|
"message-key": "Chave de mensagem",
|
||||||
"parse": "Analisar",
|
"parse": "Analisar",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Anexe imagens arrastando e soltando-as no editor",
|
"attach-images-hint": "Anexe imagens arrastando e soltando-as no editor",
|
||||||
"drop-image": "Arrastar imagem",
|
"drop-image": "Arrastar imagem",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Ative quantidades de ingredientes para usar esta funcionalidade",
|
"enable-ingredient-amounts-to-use-this-feature": "Ative quantidades de ingredientes para usar esta funcionalidade",
|
||||||
|
|
|
@ -472,7 +472,7 @@
|
||||||
"comment": "Comentário",
|
"comment": "Comentário",
|
||||||
"comments": "Comentários",
|
"comments": "Comentários",
|
||||||
"delete-confirmation": "Tem a certeza de que deseja eliminar esta receita?",
|
"delete-confirmation": "Tem a certeza de que deseja eliminar esta receita?",
|
||||||
"admin-delete-confirmation": "You're about to delete a recipe that isn't yours using admin permissions. Are you sure?",
|
"admin-delete-confirmation": "Está prestes a excluir uma receita que não é sua com permissões de administrador. Tem a certeza?",
|
||||||
"delete-recipe": "Eliminar Receita",
|
"delete-recipe": "Eliminar Receita",
|
||||||
"description": "Descrição",
|
"description": "Descrição",
|
||||||
"disable-amount": "Desativar Quantidades dos Ingredientes",
|
"disable-amount": "Desativar Quantidades dos Ingredientes",
|
||||||
|
@ -580,13 +580,14 @@
|
||||||
"made-this": "Eu fiz isto",
|
"made-this": "Eu fiz isto",
|
||||||
"how-did-it-turn-out": "Que tal ficou?",
|
"how-did-it-turn-out": "Que tal ficou?",
|
||||||
"user-made-this": "{user} fez isto",
|
"user-made-this": "{user} fez isto",
|
||||||
"added-to-timeline": "Added to timeline",
|
"added-to-timeline": "Adicionado à linha do tempo",
|
||||||
"failed-to-add-to-timeline": "Failed to add to timeline",
|
"failed-to-add-to-timeline": "Falha ao adicionar à linha do tempo",
|
||||||
"failed-to-update-recipe": "Failed to update recipe",
|
"failed-to-update-recipe": "Falha ao atualizar a receita",
|
||||||
"added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
|
"added-to-timeline-but-failed-to-add-image": "Adicionado à linha do tempo, mas não foi possível adicionar a imagem",
|
||||||
"api-extras-description": "Extras para receitas são funcionalidades chave da API Mealie. Estas permitem criar, dentro de uma receita, pares personalizados de chave/valor em JSON, para referência a partir de aplicações de terceiros. Pode usar essas chaves para fornecer informações, por exemplo, para acionar automações ou mensagens personalizadas para transmitir a um determinado dispositivo.",
|
"api-extras-description": "Extras para receitas são funcionalidades chave da API Mealie. Estas permitem criar, dentro de uma receita, pares personalizados de chave/valor em JSON, para referência a partir de aplicações de terceiros. Pode usar essas chaves para fornecer informações, por exemplo, para acionar automações ou mensagens personalizadas para transmitir a um determinado dispositivo.",
|
||||||
"message-key": "Chave de Mensagem",
|
"message-key": "Chave de Mensagem",
|
||||||
"parse": "Interpretar",
|
"parse": "Interpretar",
|
||||||
|
"ingredients-not-parsed-description": "Parece que os seus ingredientes ainda não foram processados. Clique no botão \"{parse}\" abaixo para os converter em alimentos estruturados.",
|
||||||
"attach-images-hint": "Anexe imagens arrastando e soltando-as no editor",
|
"attach-images-hint": "Anexe imagens arrastando e soltando-as no editor",
|
||||||
"drop-image": "Remover imagem",
|
"drop-image": "Remover imagem",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Ativar para usar esta funcionalidade nas quantidades de ingredientes",
|
"enable-ingredient-amounts-to-use-this-feature": "Ativar para usar esta funcionalidade nas quantidades de ingredientes",
|
||||||
|
@ -604,10 +605,10 @@
|
||||||
"create-recipe-from-an-image": "Criar receita a partir de uma imagem",
|
"create-recipe-from-an-image": "Criar receita a partir de uma imagem",
|
||||||
"create-recipe-from-an-image-description": "Crie uma receita carregando uma imagem da mesma. O Mealie tentará extrair o texto da imagem utilizando IA e criará uma receita a partir da mesma.",
|
"create-recipe-from-an-image-description": "Crie uma receita carregando uma imagem da mesma. O Mealie tentará extrair o texto da imagem utilizando IA e criará uma receita a partir da mesma.",
|
||||||
"crop-and-rotate-the-image": "Recorte e rode a imagem de modo a que apenas o texto seja visível e esteja na orientação correta.",
|
"crop-and-rotate-the-image": "Recorte e rode a imagem de modo a que apenas o texto seja visível e esteja na orientação correta.",
|
||||||
"create-from-images": "Create from Images",
|
"create-from-images": "Criar a partir de Imagens",
|
||||||
"should-translate-description": "Traduzir a receita para a minha língua",
|
"should-translate-description": "Traduzir a receita para a minha língua",
|
||||||
"please-wait-image-procesing": "Aguarde, a imagem está a ser processada. Isto pode demorar algum tempo.",
|
"please-wait-image-procesing": "Aguarde, a imagem está a ser processada. Isto pode demorar algum tempo.",
|
||||||
"please-wait-images-processing": "Please wait, the images are processing. This may take some time.",
|
"please-wait-images-processing": "A processar imagens… Isto pode demorar um pouco.",
|
||||||
"bulk-url-import": "Importação de URL em bloco",
|
"bulk-url-import": "Importação de URL em bloco",
|
||||||
"debug-scraper": "Depurar Scraper",
|
"debug-scraper": "Depurar Scraper",
|
||||||
"create-a-recipe-by-providing-the-name-all-recipes-must-have-unique-names": "Crie uma receita fornecendo o nome. Todas as receitas devem ter nomes únicos.",
|
"create-a-recipe-by-providing-the-name-all-recipes-must-have-unique-names": "Crie uma receita fornecendo o nome. Todas as receitas devem ter nomes únicos.",
|
||||||
|
@ -663,15 +664,15 @@
|
||||||
"no-unit": "Nenhuma unidade",
|
"no-unit": "Nenhuma unidade",
|
||||||
"missing-unit": "Criar unidade em falta: {unit}",
|
"missing-unit": "Criar unidade em falta: {unit}",
|
||||||
"missing-food": "Criar ingrediente em falta: {food}",
|
"missing-food": "Criar ingrediente em falta: {food}",
|
||||||
"this-unit-could-not-be-parsed-automatically": "This unit could not be parsed automatically",
|
"this-unit-could-not-be-parsed-automatically": "Não foi possível processar automaticamente esta unidade",
|
||||||
"this-food-could-not-be-parsed-automatically": "This food could not be parsed automatically",
|
"this-food-could-not-be-parsed-automatically": "Não foi possível processar automaticamente este alimento",
|
||||||
"no-food": "Nenhum Ingrediente"
|
"no-food": "Nenhum Ingrediente"
|
||||||
},
|
},
|
||||||
"reset-servings-count": "Reiniciar Contador de Doses",
|
"reset-servings-count": "Reiniciar Contador de Doses",
|
||||||
"not-linked-ingredients": "Ingredientes Adicionais",
|
"not-linked-ingredients": "Ingredientes Adicionais",
|
||||||
"upload-another-image": "Upload another image",
|
"upload-another-image": "Carregar outra imagem",
|
||||||
"upload-images": "Upload images",
|
"upload-images": "Carregar imagens",
|
||||||
"upload-more-images": "Upload more images"
|
"upload-more-images": "Carregar mais imagens"
|
||||||
},
|
},
|
||||||
"recipe-finder": {
|
"recipe-finder": {
|
||||||
"recipe-finder": "Localizador de Receitas",
|
"recipe-finder": "Localizador de Receitas",
|
||||||
|
@ -731,7 +732,7 @@
|
||||||
"backup-restore": "Restaurar backup",
|
"backup-restore": "Restaurar backup",
|
||||||
"back-restore-description": "Restaurar este backup irá apagar todos os dados atuais da sua base de dados e da pasta de dados e substituí-los pelo conteúdo deste backup. {cannot-be-undone} Se o restauro for bem-sucedido, a sua sessão será encerrada.",
|
"back-restore-description": "Restaurar este backup irá apagar todos os dados atuais da sua base de dados e da pasta de dados e substituí-los pelo conteúdo deste backup. {cannot-be-undone} Se o restauro for bem-sucedido, a sua sessão será encerrada.",
|
||||||
"cannot-be-undone": "Esta acção não pode ser desfeita - use com prudência.",
|
"cannot-be-undone": "Esta acção não pode ser desfeita - use com prudência.",
|
||||||
"postgresql-note": "If you are using PostgreSQL, please review the {backup-restore-process} prior to restoring.",
|
"postgresql-note": "Se estiver a usar PostgreSQL, por favor reveja o {backup-restore-process} antes de restaurar.",
|
||||||
"backup-restore-process-in-the-documentation": "processo de backup/restauro na documentação",
|
"backup-restore-process-in-the-documentation": "processo de backup/restauro na documentação",
|
||||||
"irreversible-acknowledgment": "Eu entendo que esta ação é irreversível, destrutiva e pode causar perda de dados",
|
"irreversible-acknowledgment": "Eu entendo que esta ação é irreversível, destrutiva e pode causar perda de dados",
|
||||||
"restore-backup": "Restaurar Backup"
|
"restore-backup": "Restaurar Backup"
|
||||||
|
|
|
@ -472,7 +472,7 @@
|
||||||
"comment": "Комментарий",
|
"comment": "Комментарий",
|
||||||
"comments": "Комментарии",
|
"comments": "Комментарии",
|
||||||
"delete-confirmation": "Вы уверены, что хотите удалить этот рецепт?",
|
"delete-confirmation": "Вы уверены, что хотите удалить этот рецепт?",
|
||||||
"admin-delete-confirmation": "You're about to delete a recipe that isn't yours using admin permissions. Are you sure?",
|
"admin-delete-confirmation": "Вы собираетесь удалить рецепт созданный не вами используя права администратора. Вы уверены?",
|
||||||
"delete-recipe": "Удалить рецепт",
|
"delete-recipe": "Удалить рецепт",
|
||||||
"description": "Описание",
|
"description": "Описание",
|
||||||
"disable-amount": "Не показывать кол-во ингредиентов",
|
"disable-amount": "Не показывать кол-во ингредиентов",
|
||||||
|
@ -580,13 +580,14 @@
|
||||||
"made-this": "Я приготовил это",
|
"made-this": "Я приготовил это",
|
||||||
"how-did-it-turn-out": "Что получилось?",
|
"how-did-it-turn-out": "Что получилось?",
|
||||||
"user-made-this": "{user} приготовил это",
|
"user-made-this": "{user} приготовил это",
|
||||||
"added-to-timeline": "Added to timeline",
|
"added-to-timeline": "Добавлено в ленту",
|
||||||
"failed-to-add-to-timeline": "Failed to add to timeline",
|
"failed-to-add-to-timeline": "Не удалось добавить в ленту",
|
||||||
"failed-to-update-recipe": "Не удалось обновить рецепт",
|
"failed-to-update-recipe": "Не удалось обновить рецепт",
|
||||||
"added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
|
"added-to-timeline-but-failed-to-add-image": "Добавлено в ленту, но не удалось загрузить изображение",
|
||||||
"api-extras-description": "Дополнения к рецептам являются ключевым элементом Mealie API. Они позволяют создавать пользовательские пары json ключ/значение в рецепте для ссылания на другие приложения. Вы можете использовать эти ключи, чтобы сохранить нужную информацию, например, для автоматизаций или уведомлений на ваши устройства.",
|
"api-extras-description": "Дополнения к рецептам являются ключевым элементом Mealie API. Они позволяют создавать пользовательские пары json ключ/значение в рецепте для ссылания на другие приложения. Вы можете использовать эти ключи, чтобы сохранить нужную информацию, например, для автоматизаций или уведомлений на ваши устройства.",
|
||||||
"message-key": "Ключ сообщения",
|
"message-key": "Ключ сообщения",
|
||||||
"parse": "Обработать",
|
"parse": "Обработать",
|
||||||
|
"ingredients-not-parsed-description": "Похоже, ваши ингредиенты не разобраны. Нажмите кнопку \"{parse}\" чтобы разобрать ваши ингредиенты в структурированный список.",
|
||||||
"attach-images-hint": "Прикрепляйте изображения, перетаскивая их в редактор",
|
"attach-images-hint": "Прикрепляйте изображения, перетаскивая их в редактор",
|
||||||
"drop-image": "Перетащите изображение",
|
"drop-image": "Перетащите изображение",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Включите количество ингредиентов для использования этой функции",
|
"enable-ingredient-amounts-to-use-this-feature": "Включите количество ингредиентов для использования этой функции",
|
||||||
|
@ -603,8 +604,8 @@
|
||||||
"import-with-zip": "Импорт из .zip",
|
"import-with-zip": "Импорт из .zip",
|
||||||
"create-recipe-from-an-image": "Создать рецепт из изображения",
|
"create-recipe-from-an-image": "Создать рецепт из изображения",
|
||||||
"create-recipe-from-an-image-description": "Создайте рецепт, загрузив изображение. Mealie попытается извлечь текст из изображения с помощью ИИ и создать рецепт из него.",
|
"create-recipe-from-an-image-description": "Создайте рецепт, загрузив изображение. Mealie попытается извлечь текст из изображения с помощью ИИ и создать рецепт из него.",
|
||||||
"crop-and-rotate-the-image": "Crop and rotate the image so that only the text is visible, and it's in the correct orientation.",
|
"crop-and-rotate-the-image": "Обрежьте и поверните изображение так, чтобы виден был только текст в нужной ориентации.",
|
||||||
"create-from-images": "Create from Images",
|
"create-from-images": "Создать из изображений",
|
||||||
"should-translate-description": "Перевести рецепт на мой язык",
|
"should-translate-description": "Перевести рецепт на мой язык",
|
||||||
"please-wait-image-procesing": "Подождите, идет обработка изображения.",
|
"please-wait-image-procesing": "Подождите, идет обработка изображения.",
|
||||||
"please-wait-images-processing": "Пожалуйста, подождите, изображения обрабатываются. Это может занять некоторое время.",
|
"please-wait-images-processing": "Пожалуйста, подождите, изображения обрабатываются. Это может занять некоторое время.",
|
||||||
|
@ -639,7 +640,7 @@
|
||||||
"recipe-debugger": "Отладчик рецептов",
|
"recipe-debugger": "Отладчик рецептов",
|
||||||
"recipe-debugger-description": "Вставьте сюда URL рецепта, который вы хотите отладить. Рецепт по указанному URL-адресу будет отсканирован и результаты сканирования будут указаны ниже. Если вы не видите никаких возвращенных данных, то сайт, который вы пытаетесь обработать, не поддерживается Mealie или библиотекой сканера.",
|
"recipe-debugger-description": "Вставьте сюда URL рецепта, который вы хотите отладить. Рецепт по указанному URL-адресу будет отсканирован и результаты сканирования будут указаны ниже. Если вы не видите никаких возвращенных данных, то сайт, который вы пытаетесь обработать, не поддерживается Mealie или библиотекой сканера.",
|
||||||
"use-openai": "Использовать OpenAI",
|
"use-openai": "Использовать OpenAI",
|
||||||
"recipe-debugger-use-openai-description": "Use OpenAI to parse the results instead of relying on the scraper library. When creating a recipe via URL, this is done automatically if the scraper library fails, but you may test it manually here.",
|
"recipe-debugger-use-openai-description": "Использовать OpenAI для разбора результатов вместо использования скрейпера. При создании рецепта по URL это делается автоматически, если скрейпер не справляется, но вы можете протестировать его здесь вручную.",
|
||||||
"debug": "Отладка",
|
"debug": "Отладка",
|
||||||
"tree-view": "В виде дерева",
|
"tree-view": "В виде дерева",
|
||||||
"recipe-servings": "Порции",
|
"recipe-servings": "Порции",
|
||||||
|
@ -671,7 +672,7 @@
|
||||||
"not-linked-ingredients": "Дополнительные ингредиенты",
|
"not-linked-ingredients": "Дополнительные ингредиенты",
|
||||||
"upload-another-image": "Upload another image",
|
"upload-another-image": "Upload another image",
|
||||||
"upload-images": "Загрузить изображения",
|
"upload-images": "Загрузить изображения",
|
||||||
"upload-more-images": "Upload more images"
|
"upload-more-images": "Загрузить больше изображений"
|
||||||
},
|
},
|
||||||
"recipe-finder": {
|
"recipe-finder": {
|
||||||
"recipe-finder": "Поиск рецептов",
|
"recipe-finder": "Поиск рецептов",
|
||||||
|
@ -1312,12 +1313,12 @@
|
||||||
"account-summary-description": "Вот сводка информации о вашей группе.",
|
"account-summary-description": "Вот сводка информации о вашей группе.",
|
||||||
"group-statistics": "Статистика группы",
|
"group-statistics": "Статистика группы",
|
||||||
"group-statistics-description": "Статистика вашей группы дает некоторую информацию о том, как вы используете Mealie.",
|
"group-statistics-description": "Статистика вашей группы дает некоторую информацию о том, как вы используете Mealie.",
|
||||||
"household-statistics": "Household Statistics",
|
"household-statistics": "Статистика домохозяйства",
|
||||||
"household-statistics-description": "Your Household Statistics provide some insight how you're using Mealie.",
|
"household-statistics-description": "Your Household Statistics provide some insight how you're using Mealie.",
|
||||||
"storage-capacity": "Емкость хранилища",
|
"storage-capacity": "Емкость хранилища",
|
||||||
"storage-capacity-description": "Указанный размер хранилища - это подсчёт размера изображений и приложений рецептов загруженных вами.",
|
"storage-capacity-description": "Указанный размер хранилища - это подсчёт размера изображений и приложений рецептов загруженных вами.",
|
||||||
"personal": "Личное",
|
"personal": "Личное",
|
||||||
"personal-description": "These are settings that are personal to you. Changes here won't affect other users.",
|
"personal-description": "Это персональные настройки. Изменения здесь не повлияют на других пользователей.",
|
||||||
"user-settings": "Настройки пользователя",
|
"user-settings": "Настройки пользователя",
|
||||||
"user-settings-description": "Управляйте вашими настройками, меняйте пароль и обновляйте адрес электронной почты.",
|
"user-settings-description": "Управляйте вашими настройками, меняйте пароль и обновляйте адрес электронной почты.",
|
||||||
"api-tokens-description": "Управляйте вашими API-токенами для доступа сторонних приложений.",
|
"api-tokens-description": "Управляйте вашими API-токенами для доступа сторонних приложений.",
|
||||||
|
|
|
@ -437,9 +437,9 @@
|
||||||
"upload-individual-zip-file": "Nahrať súbor .zip exportovaný z inej Mealie inštalácie.",
|
"upload-individual-zip-file": "Nahrať súbor .zip exportovaný z inej Mealie inštalácie.",
|
||||||
"url-form-hint": "Okopírujte a zložte odkaz z vašej obľúbenej webstránky",
|
"url-form-hint": "Okopírujte a zložte odkaz z vašej obľúbenej webstránky",
|
||||||
"view-scraped-data": "Náhľad získaných údajov",
|
"view-scraped-data": "Náhľad získaných údajov",
|
||||||
"trim-whitespace-description": "Vymažte medzery a prázdne riadky na začiatku a na konci",
|
"trim-whitespace-description": "Vymazať medzery a prázdne riadky na začiatku a na konci",
|
||||||
"trim-prefix-description": "Vymažte prvé písmeno z každého riadku",
|
"trim-prefix-description": "Vymazať prvé písmeno z každého riadku",
|
||||||
"split-by-numbered-line-description": "Pokus rozdeliť odsek pomocou výrazu '1)' alebo '1.'",
|
"split-by-numbered-line-description": "Pokúsiť sa rozdeliť odsek pomocou vzoru '1)' alebo '1.'",
|
||||||
"import-by-url": "Importovať recept z URL",
|
"import-by-url": "Importovať recept z URL",
|
||||||
"create-manually": "Vytvoriť recept manuálne",
|
"create-manually": "Vytvoriť recept manuálne",
|
||||||
"make-recipe-image": "Nastaviť ako obrázok receptu"
|
"make-recipe-image": "Nastaviť ako obrázok receptu"
|
||||||
|
@ -579,14 +579,15 @@
|
||||||
"open-timeline": "Otvoriť časovú os",
|
"open-timeline": "Otvoriť časovú os",
|
||||||
"made-this": "Toto som uvaril",
|
"made-this": "Toto som uvaril",
|
||||||
"how-did-it-turn-out": "Ako to dopadlo?",
|
"how-did-it-turn-out": "Ako to dopadlo?",
|
||||||
"user-made-this": "{user} toto uvaril/-a",
|
"user-made-this": "{user} toto uvaril(a)",
|
||||||
"added-to-timeline": "Added to timeline",
|
"added-to-timeline": "Pridané na časovú os",
|
||||||
"failed-to-add-to-timeline": "Failed to add to timeline",
|
"failed-to-add-to-timeline": "Pridanie na časovú os skončilo chybou",
|
||||||
"failed-to-update-recipe": "Failed to update recipe",
|
"failed-to-update-recipe": "Recept sa nepodarilo aktualizovať",
|
||||||
"added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
|
"added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
|
||||||
"api-extras-description": "API dolnky receptov sú kľúčovou funkcionalitou Mealie API. Umožňujú používateľom vytvárať vlastné JSON páry kľúč/hodnota v rámci receptu, a využiť v aplikáciách tretích strán. Údaje uložené pod jednotlivými kľúčmi je možné využiť napríklad ako spúšťač automatizovaných procesov, či pri zasielaní vlastných správ do vami zvolených zariadení.",
|
"api-extras-description": "API dolnky receptov sú kľúčovou funkcionalitou Mealie API. Umožňujú používateľom vytvárať vlastné JSON páry kľúč/hodnota v rámci receptu, a využiť v aplikáciách tretích strán. Údaje uložené pod jednotlivými kľúčmi je možné využiť napríklad ako spúšťač automatizovaných procesov, či pri zasielaní vlastných správ do vami zvolených zariadení.",
|
||||||
"message-key": "Kľúč správy",
|
"message-key": "Kľúč správy",
|
||||||
"parse": "Analyzovať",
|
"parse": "Analyzovať",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Pridaj obrázky ich potiahnutím a pustením na editor",
|
"attach-images-hint": "Pridaj obrázky ich potiahnutím a pustením na editor",
|
||||||
"drop-image": "Odstrániť obrázok",
|
"drop-image": "Odstrániť obrázok",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Povoľ množstvám prísad využívať túto vlastnosť",
|
"enable-ingredient-amounts-to-use-this-feature": "Povoľ množstvám prísad využívať túto vlastnosť",
|
||||||
|
@ -604,7 +605,7 @@
|
||||||
"create-recipe-from-an-image": "Vytvoriť recept z obrázka",
|
"create-recipe-from-an-image": "Vytvoriť recept z obrázka",
|
||||||
"create-recipe-from-an-image-description": "Vytvoriť recept nahraním fotografie jedla. Mealie sa pokúsi previesť obrázok na text pomocou AI a vytvorí k nemu recept.",
|
"create-recipe-from-an-image-description": "Vytvoriť recept nahraním fotografie jedla. Mealie sa pokúsi previesť obrázok na text pomocou AI a vytvorí k nemu recept.",
|
||||||
"crop-and-rotate-the-image": "Orežte a otočte obrázok tak, aby bol viditeľný iba text a aby mal správnu orientáciu.",
|
"crop-and-rotate-the-image": "Orežte a otočte obrázok tak, aby bol viditeľný iba text a aby mal správnu orientáciu.",
|
||||||
"create-from-images": "Create from Images",
|
"create-from-images": "Vytvoriť z obrázka",
|
||||||
"should-translate-description": "Preložiť recept do môjho jazyka",
|
"should-translate-description": "Preložiť recept do môjho jazyka",
|
||||||
"please-wait-image-procesing": "Čakajte, prosím. Obrázok sa spracováva. Môže to chvíľku trvať.",
|
"please-wait-image-procesing": "Čakajte, prosím. Obrázok sa spracováva. Môže to chvíľku trvať.",
|
||||||
"please-wait-images-processing": "Please wait, the images are processing. This may take some time.",
|
"please-wait-images-processing": "Please wait, the images are processing. This may take some time.",
|
||||||
|
@ -613,12 +614,12 @@
|
||||||
"create-a-recipe-by-providing-the-name-all-recipes-must-have-unique-names": "Vytvoriť recept zadaním názvu. Všetky recepty musia mať jedinečné názvy.",
|
"create-a-recipe-by-providing-the-name-all-recipes-must-have-unique-names": "Vytvoriť recept zadaním názvu. Všetky recepty musia mať jedinečné názvy.",
|
||||||
"new-recipe-names-must-be-unique": "Názvy nových receptov musia byť jedinečné",
|
"new-recipe-names-must-be-unique": "Názvy nových receptov musia byť jedinečné",
|
||||||
"scrape-recipe": "Scrapovať recept",
|
"scrape-recipe": "Scrapovať recept",
|
||||||
"scrape-recipe-description": "Stiahne recept zo zadaného url odkazu. Zadajte url stránky, z ktorej chcete stiahnuť recept, a Mealie sa pokúsi recept stiahnuť a vložiť do vašej zbierky.",
|
"scrape-recipe-description": "Stiahne recept zo zadanej adresy URL. Zadajte URL adresu stránky, z ktorej chcete stiahnuť recept, a Mealie sa pokúsi recept stiahnuť a vložiť do vašej zbierky.",
|
||||||
"scrape-recipe-have-a-lot-of-recipes": "Máte množstvo receptov, ktoré by ste chceli naraz zoscrapovať?",
|
"scrape-recipe-have-a-lot-of-recipes": "Máte množstvo receptov, ktoré by ste chceli naraz zoscrapovať?",
|
||||||
"scrape-recipe-suggest-bulk-importer": "Vyskúšajte hromadný importér",
|
"scrape-recipe-suggest-bulk-importer": "Vyskúšajte hromadný importér",
|
||||||
"scrape-recipe-have-raw-html-or-json-data": "Máte surové údaje HTML alebo JSON?",
|
"scrape-recipe-have-raw-html-or-json-data": "Máte surové údaje HTML alebo JSON?",
|
||||||
"scrape-recipe-you-can-import-from-raw-data-directly": "Môžete importovať priamo nespracované údaje",
|
"scrape-recipe-you-can-import-from-raw-data-directly": "Môžete importovať priamo nespracované údaje",
|
||||||
"import-original-keywords-as-tags": "Importuj pôvodné kľúčové slová ako tagy",
|
"import-original-keywords-as-tags": "Importovať pôvodné kľúčové slová ako štítky",
|
||||||
"stay-in-edit-mode": "Zostať v režime editovania",
|
"stay-in-edit-mode": "Zostať v režime editovania",
|
||||||
"import-from-zip": "Importovať zo Zip-súboru",
|
"import-from-zip": "Importovať zo Zip-súboru",
|
||||||
"import-from-zip-description": "Importovať recept exportovaný z inej Mealie inštalácie.",
|
"import-from-zip-description": "Importovať recept exportovaný z inej Mealie inštalácie.",
|
||||||
|
@ -631,7 +632,7 @@
|
||||||
"upload-a-png-image-from-a-recipe-book": "Nahraj png-obrázok z kuchárky",
|
"upload-a-png-image-from-a-recipe-book": "Nahraj png-obrázok z kuchárky",
|
||||||
"recipe-bulk-importer": "Hromadný importér receptov",
|
"recipe-bulk-importer": "Hromadný importér receptov",
|
||||||
"recipe-bulk-importer-description": "Hromadný importér receptov umožňuje importovať veľké množstvo receptov prechádzaním stránok na backende, pričom celá úloha beží na pozadí. Toto je užitočné napríklad pri počiatočnej migrácii na Mealie, alebo ak chcete importovať veľké množstvo receptov naraz.",
|
"recipe-bulk-importer-description": "Hromadný importér receptov umožňuje importovať veľké množstvo receptov prechádzaním stránok na backende, pričom celá úloha beží na pozadí. Toto je užitočné napríklad pri počiatočnej migrácii na Mealie, alebo ak chcete importovať veľké množstvo receptov naraz.",
|
||||||
"set-categories-and-tags": "Zadaj kategórie a tagy",
|
"set-categories-and-tags": "Nastavte kategórie a štítky",
|
||||||
"bulk-imports": "Hromadné importy",
|
"bulk-imports": "Hromadné importy",
|
||||||
"bulk-import-process-has-started": "Hromadný import bol spustený",
|
"bulk-import-process-has-started": "Hromadný import bol spustený",
|
||||||
"bulk-import-process-has-failed": "Hromadný import zlyhal",
|
"bulk-import-process-has-failed": "Hromadný import zlyhal",
|
||||||
|
@ -670,8 +671,8 @@
|
||||||
"reset-servings-count": "Resetovať počet porcií",
|
"reset-servings-count": "Resetovať počet porcií",
|
||||||
"not-linked-ingredients": "Ďalšie suroviny",
|
"not-linked-ingredients": "Ďalšie suroviny",
|
||||||
"upload-another-image": "Upload another image",
|
"upload-another-image": "Upload another image",
|
||||||
"upload-images": "Upload images",
|
"upload-images": "Nahrať obrázky",
|
||||||
"upload-more-images": "Upload more images"
|
"upload-more-images": "Nahrať ďalšie obrázky"
|
||||||
},
|
},
|
||||||
"recipe-finder": {
|
"recipe-finder": {
|
||||||
"recipe-finder": "Hľadač receptov",
|
"recipe-finder": "Hľadač receptov",
|
||||||
|
@ -719,7 +720,7 @@
|
||||||
"backup-deleted": "Záloha bola odstránená",
|
"backup-deleted": "Záloha bola odstránená",
|
||||||
"restore-success": "Obnovenie bolo úspešné",
|
"restore-success": "Obnovenie bolo úspešné",
|
||||||
"restore-fail": "Obnovenie zlyhalo. Ďalšie podrobnosti nájdete v denníkoch servera",
|
"restore-fail": "Obnovenie zlyhalo. Ďalšie podrobnosti nájdete v denníkoch servera",
|
||||||
"backup-tag": "Označenie zálohy",
|
"backup-tag": "Štítok zálohy",
|
||||||
"create-heading": "Vytvoriť zálohu",
|
"create-heading": "Vytvoriť zálohu",
|
||||||
"delete-backup": "Odstrániť zálohu",
|
"delete-backup": "Odstrániť zálohu",
|
||||||
"error-creating-backup-see-log-file": "Vytvorenie zálohy zlyhalo. Pozrite prosím súbor záznamu",
|
"error-creating-backup-see-log-file": "Vytvorenie zálohy zlyhalo. Pozrite prosím súbor záznamu",
|
||||||
|
@ -788,8 +789,8 @@
|
||||||
"theme-saved": "Motív bol uložený",
|
"theme-saved": "Motív bol uložený",
|
||||||
"theme-updated": "Motív bol aktualizovaný",
|
"theme-updated": "Motív bol aktualizovaný",
|
||||||
"warning": "Upozornenie",
|
"warning": "Upozornenie",
|
||||||
"light-mode": "Svetlá téma",
|
"light-mode": "Svetlý motív",
|
||||||
"dark-mode": "Tmavá téma"
|
"dark-mode": "Tmavý motív"
|
||||||
},
|
},
|
||||||
"token": {
|
"token": {
|
||||||
"active-tokens": "Aktívne kľúče",
|
"active-tokens": "Aktívne kľúče",
|
||||||
|
@ -1114,10 +1115,10 @@
|
||||||
"recipe-columns": "Stĺpce receptu",
|
"recipe-columns": "Stĺpce receptu",
|
||||||
"data-exports-description": "V tejto sekcii sa nachádzajú odkazy na aktuálne dostupné exporty pripravené na stiahnutie. Platnosť týchto odkazov je však časovo obmedzená, v prípade záujmu na to prosím nezabudnite.",
|
"data-exports-description": "V tejto sekcii sa nachádzajú odkazy na aktuálne dostupné exporty pripravené na stiahnutie. Platnosť týchto odkazov je však časovo obmedzená, v prípade záujmu na to prosím nezabudnite.",
|
||||||
"data-exports": "Export dát",
|
"data-exports": "Export dát",
|
||||||
"tag": "Tag",
|
"tag": "Štítok",
|
||||||
"categorize": "Kategorizovať",
|
"categorize": "Kategorizovať",
|
||||||
"update-settings": "Aktualizovať nastavenia",
|
"update-settings": "Aktualizovať nastavenia",
|
||||||
"tag-recipes": "Tagovať recepty",
|
"tag-recipes": "Oštítkovať recepty",
|
||||||
"categorize-recipes": "Kategorizovať recepty",
|
"categorize-recipes": "Kategorizovať recepty",
|
||||||
"export-recipes": "Exportovať recepty",
|
"export-recipes": "Exportovať recepty",
|
||||||
"delete-recipes": "Odstrániť recepty",
|
"delete-recipes": "Odstrániť recepty",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Dodatni podatki za recepte so ključna funkcionalnost Mealie APIja. Omogočajo ustvarjanje lastnih JSON ključ / vrednost parov v okviru recepta, da lahko do njih dostopajo zunanje aplikacije. Te ključe lahko uporabiš za posredovanje informacij, na primer za sprožanje avtomatike ali sporočanje prilagojenih sporočil na poljubno napravo.",
|
"api-extras-description": "Dodatni podatki za recepte so ključna funkcionalnost Mealie APIja. Omogočajo ustvarjanje lastnih JSON ključ / vrednost parov v okviru recepta, da lahko do njih dostopajo zunanje aplikacije. Te ključe lahko uporabiš za posredovanje informacij, na primer za sprožanje avtomatike ali sporočanje prilagojenih sporočil na poljubno napravo.",
|
||||||
"message-key": "Ključ sporočila",
|
"message-key": "Ključ sporočila",
|
||||||
"parse": "Razloči",
|
"parse": "Razloči",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Slike pripneš z odlaganjem v urejevalnik",
|
"attach-images-hint": "Slike pripneš z odlaganjem v urejevalnik",
|
||||||
"drop-image": "Odloži sliko",
|
"drop-image": "Odloži sliko",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Vključi količine sestavin, da uporabiš to funkcijo",
|
"enable-ingredient-amounts-to-use-this-feature": "Vključi količine sestavin, da uporabiš to funkcijo",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
||||||
"message-key": "Message Key",
|
"message-key": "Message Key",
|
||||||
"parse": "Parse",
|
"parse": "Parse",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Attach images by dragging & dropping them into the editor",
|
"attach-images-hint": "Attach images by dragging & dropping them into the editor",
|
||||||
"drop-image": "Drop image",
|
"drop-image": "Drop image",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Enable ingredient amounts to use this feature",
|
"enable-ingredient-amounts-to-use-this-feature": "Enable ingredient amounts to use this feature",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Recept API-tillägg är en viktig funktion i Mealie's API. Med hjälp av dem kan du skapa anpassade JSON-nyckel/värdepar i ett recept, som du kan referera till från tredjepartsapplikationer. Du kan använda dessa nycklar för att tillhandahålla information, till exempel för att trigga automatiseringar eller anpassade meddelanden som ska vidarebefordras till önskad enhet.",
|
"api-extras-description": "Recept API-tillägg är en viktig funktion i Mealie's API. Med hjälp av dem kan du skapa anpassade JSON-nyckel/värdepar i ett recept, som du kan referera till från tredjepartsapplikationer. Du kan använda dessa nycklar för att tillhandahålla information, till exempel för att trigga automatiseringar eller anpassade meddelanden som ska vidarebefordras till önskad enhet.",
|
||||||
"message-key": "Meddelandenyckel",
|
"message-key": "Meddelandenyckel",
|
||||||
"parse": "Läs in",
|
"parse": "Läs in",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Bifoga bilder genom att dra och släppa dem i redigeraren",
|
"attach-images-hint": "Bifoga bilder genom att dra och släppa dem i redigeraren",
|
||||||
"drop-image": "Släpp bild",
|
"drop-image": "Släpp bild",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Aktivera ingrediensmängd för att använda denna funktion",
|
"enable-ingredient-amounts-to-use-this-feature": "Aktivera ingrediensmängd för att använda denna funktion",
|
||||||
|
@ -663,8 +664,8 @@
|
||||||
"no-unit": "Ingen enhet",
|
"no-unit": "Ingen enhet",
|
||||||
"missing-unit": "Skapa saknad enhet: {unit}",
|
"missing-unit": "Skapa saknad enhet: {unit}",
|
||||||
"missing-food": "Skapa saknad ingrediens: {food}",
|
"missing-food": "Skapa saknad ingrediens: {food}",
|
||||||
"this-unit-could-not-be-parsed-automatically": "This unit could not be parsed automatically",
|
"this-unit-could-not-be-parsed-automatically": "Enheten kunde inte översättas automatiskt",
|
||||||
"this-food-could-not-be-parsed-automatically": "This food could not be parsed automatically",
|
"this-food-could-not-be-parsed-automatically": "Maten kunde inte översättas automatiskt",
|
||||||
"no-food": "Ingen mat"
|
"no-food": "Ingen mat"
|
||||||
},
|
},
|
||||||
"reset-servings-count": "Nollställ antal portioner",
|
"reset-servings-count": "Nollställ antal portioner",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Tarif ekstraları Mealie API'nin önemli bir özelliğidir. Üçüncü taraf uygulamalardan referans almak üzere bir tarif içinde özel JSON anahtar/değer çiftleri oluşturmanıza olanak tanır. Bu tuşları, örneğin otomasyonları tetiklemek veya istediğiniz cihaza iletilecek özel mesajları bilgi sağlamak için kullanabilirsiniz.",
|
"api-extras-description": "Tarif ekstraları Mealie API'nin önemli bir özelliğidir. Üçüncü taraf uygulamalardan referans almak üzere bir tarif içinde özel JSON anahtar/değer çiftleri oluşturmanıza olanak tanır. Bu tuşları, örneğin otomasyonları tetiklemek veya istediğiniz cihaza iletilecek özel mesajları bilgi sağlamak için kullanabilirsiniz.",
|
||||||
"message-key": "İleti Anahtarı",
|
"message-key": "İleti Anahtarı",
|
||||||
"parse": "Ayrıştırma",
|
"parse": "Ayrıştırma",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Düzenleyiciye sürükleyip bırakarak görselleri ekleyin",
|
"attach-images-hint": "Düzenleyiciye sürükleyip bırakarak görselleri ekleyin",
|
||||||
"drop-image": "Yüklenecek resimi sürükleyip bırakın",
|
"drop-image": "Yüklenecek resimi sürükleyip bırakın",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Bu özelliği kullanabilmek için malzeme miktarlarını etkinleştirin",
|
"enable-ingredient-amounts-to-use-this-feature": "Bu özelliği kullanabilmek için malzeme miktarlarını etkinleştirin",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Додатки в рецептах - ключова функція API Mealie. Вони дозволяють створювати користувацьку пару JSON ключів та значень в рецепті для сторонніх додатків. Це можна використовувати для автоматизації або для створення користувацьких повідомлень для сторонніх сервісів.",
|
"api-extras-description": "Додатки в рецептах - ключова функція API Mealie. Вони дозволяють створювати користувацьку пару JSON ключів та значень в рецепті для сторонніх додатків. Це можна використовувати для автоматизації або для створення користувацьких повідомлень для сторонніх сервісів.",
|
||||||
"message-key": "Ключ повідомлення",
|
"message-key": "Ключ повідомлення",
|
||||||
"parse": "Проаналізувати",
|
"parse": "Проаналізувати",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Прикріпіть зображення, перетягнувши їх у редактор",
|
"attach-images-hint": "Прикріпіть зображення, перетягнувши їх у редактор",
|
||||||
"drop-image": "Перетягніть зображення",
|
"drop-image": "Перетягніть зображення",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Увімкніть кількість інгредієнтів, щоб використовувати цю функцію",
|
"enable-ingredient-amounts-to-use-this-feature": "Увімкніть кількість інгредієнтів, щоб використовувати цю функцію",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
||||||
"message-key": "Message Key",
|
"message-key": "Message Key",
|
||||||
"parse": "Parse",
|
"parse": "Parse",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Attach images by dragging & dropping them into the editor",
|
"attach-images-hint": "Attach images by dragging & dropping them into the editor",
|
||||||
"drop-image": "Drop image",
|
"drop-image": "Drop image",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Enable ingredient amounts to use this feature",
|
"enable-ingredient-amounts-to-use-this-feature": "Enable ingredient amounts to use this feature",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "食谱扩展是Mealie API的关键功能之一。它允许你在食谱中添加自定义JSON键值对,以供第三方程序使用。你可以利用这些键提供信息,实现更多功能,例如触发自动化,或转发自定义信息到指定的设备上。",
|
"api-extras-description": "食谱扩展是Mealie API的关键功能之一。它允许你在食谱中添加自定义JSON键值对,以供第三方程序使用。你可以利用这些键提供信息,实现更多功能,例如触发自动化,或转发自定义信息到指定的设备上。",
|
||||||
"message-key": "键名",
|
"message-key": "键名",
|
||||||
"parse": "自动解析",
|
"parse": "自动解析",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "如需添加图片,可将其拖拽到编辑器",
|
"attach-images-hint": "如需添加图片,可将其拖拽到编辑器",
|
||||||
"drop-image": "拖放图片",
|
"drop-image": "拖放图片",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "使用此项功能需启用食材用量",
|
"enable-ingredient-amounts-to-use-this-feature": "使用此项功能需启用食材用量",
|
||||||
|
|
|
@ -587,6 +587,7 @@
|
||||||
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
||||||
"message-key": "Message Key",
|
"message-key": "Message Key",
|
||||||
"parse": "Parse",
|
"parse": "Parse",
|
||||||
|
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
|
||||||
"attach-images-hint": "Attach images by dragging & dropping them into the editor",
|
"attach-images-hint": "Attach images by dragging & dropping them into the editor",
|
||||||
"drop-image": "Drop image",
|
"drop-image": "Drop image",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Enable ingredient amounts to use this feature",
|
"enable-ingredient-amounts-to-use-this-feature": "Enable ingredient amounts to use this feature",
|
||||||
|
|
|
@ -22,7 +22,6 @@ export interface CreateHouseholdPreferences {
|
||||||
recipeShowAssets?: boolean;
|
recipeShowAssets?: boolean;
|
||||||
recipeLandscapeView?: boolean;
|
recipeLandscapeView?: boolean;
|
||||||
recipeDisableComments?: boolean;
|
recipeDisableComments?: boolean;
|
||||||
recipeDisableAmount?: boolean;
|
|
||||||
}
|
}
|
||||||
export interface CreateInviteToken {
|
export interface CreateInviteToken {
|
||||||
uses: number;
|
uses: number;
|
||||||
|
@ -191,7 +190,6 @@ export interface ReadHouseholdPreferences {
|
||||||
recipeShowAssets?: boolean;
|
recipeShowAssets?: boolean;
|
||||||
recipeLandscapeView?: boolean;
|
recipeLandscapeView?: boolean;
|
||||||
recipeDisableComments?: boolean;
|
recipeDisableComments?: boolean;
|
||||||
recipeDisableAmount?: boolean;
|
|
||||||
id: string;
|
id: string;
|
||||||
}
|
}
|
||||||
export interface HouseholdUserSummary {
|
export interface HouseholdUserSummary {
|
||||||
|
@ -269,7 +267,6 @@ export interface SaveHouseholdPreferences {
|
||||||
recipeShowAssets?: boolean;
|
recipeShowAssets?: boolean;
|
||||||
recipeLandscapeView?: boolean;
|
recipeLandscapeView?: boolean;
|
||||||
recipeDisableComments?: boolean;
|
recipeDisableComments?: boolean;
|
||||||
recipeDisableAmount?: boolean;
|
|
||||||
householdId: string;
|
householdId: string;
|
||||||
}
|
}
|
||||||
export interface SaveInviteToken {
|
export interface SaveInviteToken {
|
||||||
|
@ -303,8 +300,6 @@ export interface RecipeIngredient {
|
||||||
unit?: IngredientUnit | CreateIngredientUnit | null;
|
unit?: IngredientUnit | CreateIngredientUnit | null;
|
||||||
food?: IngredientFood | CreateIngredientFood | null;
|
food?: IngredientFood | CreateIngredientFood | null;
|
||||||
note?: string | null;
|
note?: string | null;
|
||||||
isFood?: boolean | null;
|
|
||||||
disableAmount?: boolean;
|
|
||||||
display?: string;
|
display?: string;
|
||||||
title?: string | null;
|
title?: string | null;
|
||||||
originalText?: string | null;
|
originalText?: string | null;
|
||||||
|
@ -409,8 +404,6 @@ export interface ShoppingListItemBase {
|
||||||
unit?: IngredientUnit | CreateIngredientUnit | null;
|
unit?: IngredientUnit | CreateIngredientUnit | null;
|
||||||
food?: IngredientFood | CreateIngredientFood | null;
|
food?: IngredientFood | CreateIngredientFood | null;
|
||||||
note?: string | null;
|
note?: string | null;
|
||||||
isFood?: boolean;
|
|
||||||
disableAmount?: boolean | null;
|
|
||||||
display?: string;
|
display?: string;
|
||||||
shoppingListId: string;
|
shoppingListId: string;
|
||||||
checked?: boolean;
|
checked?: boolean;
|
||||||
|
@ -427,8 +420,6 @@ export interface ShoppingListItemCreate {
|
||||||
unit?: IngredientUnit | CreateIngredientUnit | null;
|
unit?: IngredientUnit | CreateIngredientUnit | null;
|
||||||
food?: IngredientFood | CreateIngredientFood | null;
|
food?: IngredientFood | CreateIngredientFood | null;
|
||||||
note?: string | null;
|
note?: string | null;
|
||||||
isFood?: boolean;
|
|
||||||
disableAmount?: boolean | null;
|
|
||||||
display?: string;
|
display?: string;
|
||||||
shoppingListId: string;
|
shoppingListId: string;
|
||||||
checked?: boolean;
|
checked?: boolean;
|
||||||
|
@ -453,8 +444,6 @@ export interface ShoppingListItemOut {
|
||||||
unit?: IngredientUnit | null;
|
unit?: IngredientUnit | null;
|
||||||
food?: IngredientFood | null;
|
food?: IngredientFood | null;
|
||||||
note?: string | null;
|
note?: string | null;
|
||||||
isFood?: boolean;
|
|
||||||
disableAmount?: boolean | null;
|
|
||||||
display?: string;
|
display?: string;
|
||||||
shoppingListId: string;
|
shoppingListId: string;
|
||||||
checked?: boolean;
|
checked?: boolean;
|
||||||
|
@ -494,8 +483,6 @@ export interface ShoppingListItemUpdate {
|
||||||
unit?: IngredientUnit | CreateIngredientUnit | null;
|
unit?: IngredientUnit | CreateIngredientUnit | null;
|
||||||
food?: IngredientFood | CreateIngredientFood | null;
|
food?: IngredientFood | CreateIngredientFood | null;
|
||||||
note?: string | null;
|
note?: string | null;
|
||||||
isFood?: boolean;
|
|
||||||
disableAmount?: boolean | null;
|
|
||||||
display?: string;
|
display?: string;
|
||||||
shoppingListId: string;
|
shoppingListId: string;
|
||||||
checked?: boolean;
|
checked?: boolean;
|
||||||
|
@ -513,8 +500,6 @@ export interface ShoppingListItemUpdateBulk {
|
||||||
unit?: IngredientUnit | CreateIngredientUnit | null;
|
unit?: IngredientUnit | CreateIngredientUnit | null;
|
||||||
food?: IngredientFood | CreateIngredientFood | null;
|
food?: IngredientFood | CreateIngredientFood | null;
|
||||||
note?: string | null;
|
note?: string | null;
|
||||||
isFood?: boolean;
|
|
||||||
disableAmount?: boolean | null;
|
|
||||||
display?: string;
|
display?: string;
|
||||||
shoppingListId: string;
|
shoppingListId: string;
|
||||||
checked?: boolean;
|
checked?: boolean;
|
||||||
|
@ -679,14 +664,11 @@ export interface UpdateHouseholdPreferences {
|
||||||
recipeShowAssets?: boolean;
|
recipeShowAssets?: boolean;
|
||||||
recipeLandscapeView?: boolean;
|
recipeLandscapeView?: boolean;
|
||||||
recipeDisableComments?: boolean;
|
recipeDisableComments?: boolean;
|
||||||
recipeDisableAmount?: boolean;
|
|
||||||
}
|
}
|
||||||
export interface RecipeIngredientBase {
|
export interface RecipeIngredientBase {
|
||||||
quantity?: number | null;
|
quantity?: number | null;
|
||||||
unit?: IngredientUnit | CreateIngredientUnit | null;
|
unit?: IngredientUnit | CreateIngredientUnit | null;
|
||||||
food?: IngredientFood | CreateIngredientFood | null;
|
food?: IngredientFood | CreateIngredientFood | null;
|
||||||
note?: string | null;
|
note?: string | null;
|
||||||
isFood?: boolean | null;
|
|
||||||
disableAmount?: boolean | null;
|
|
||||||
display?: string;
|
display?: string;
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,7 +31,6 @@ export interface RecipeSettings {
|
||||||
showAssets?: boolean;
|
showAssets?: boolean;
|
||||||
landscapeView?: boolean;
|
landscapeView?: boolean;
|
||||||
disableComments?: boolean;
|
disableComments?: boolean;
|
||||||
disableAmount?: boolean;
|
|
||||||
locked?: boolean;
|
locked?: boolean;
|
||||||
}
|
}
|
||||||
export interface AssignTags {
|
export interface AssignTags {
|
||||||
|
@ -212,8 +211,6 @@ export interface RecipeIngredient {
|
||||||
unit?: IngredientUnit | CreateIngredientUnit | null;
|
unit?: IngredientUnit | CreateIngredientUnit | null;
|
||||||
food?: IngredientFood | CreateIngredientFood | null;
|
food?: IngredientFood | CreateIngredientFood | null;
|
||||||
note?: string | null;
|
note?: string | null;
|
||||||
isFood?: boolean | null;
|
|
||||||
disableAmount?: boolean;
|
|
||||||
display?: string;
|
display?: string;
|
||||||
title?: string | null;
|
title?: string | null;
|
||||||
originalText?: string | null;
|
originalText?: string | null;
|
||||||
|
@ -347,8 +344,6 @@ export interface RecipeIngredientBase {
|
||||||
unit?: IngredientUnit | CreateIngredientUnit | null;
|
unit?: IngredientUnit | CreateIngredientUnit | null;
|
||||||
food?: IngredientFood | CreateIngredientFood | null;
|
food?: IngredientFood | CreateIngredientFood | null;
|
||||||
note?: string | null;
|
note?: string | null;
|
||||||
isFood?: boolean | null;
|
|
||||||
disableAmount?: boolean | null;
|
|
||||||
display?: string;
|
display?: string;
|
||||||
}
|
}
|
||||||
export interface RecipeLastMade {
|
export interface RecipeLastMade {
|
||||||
|
|
|
@ -43,7 +43,7 @@
|
||||||
color="gray"
|
color="gray"
|
||||||
secondary
|
secondary
|
||||||
target="_blank"
|
target="_blank"
|
||||||
href="https://github.com/hay-kot/mealie/issues/new/choose"
|
href="https://github.com/mealie-recipes/mealie/issues/new/choose"
|
||||||
>
|
>
|
||||||
<template #icon>
|
<template #icon>
|
||||||
{{ $globals.icons.github }}
|
{{ $globals.icons.github }}
|
||||||
|
|
|
@ -364,7 +364,6 @@ export default defineNuxtComponent({
|
||||||
confidence: {},
|
confidence: {},
|
||||||
ingredient: {
|
ingredient: {
|
||||||
quantity: 1.0,
|
quantity: 1.0,
|
||||||
disableAmount: false,
|
|
||||||
referenceId: uuid4(),
|
referenceId: uuid4(),
|
||||||
},
|
},
|
||||||
} as ParsedIngredient;
|
} as ParsedIngredient;
|
||||||
|
@ -409,10 +408,6 @@ export default defineNuxtComponent({
|
||||||
}
|
}
|
||||||
|
|
||||||
recipe.value.recipeIngredient = ingredients;
|
recipe.value.recipeIngredient = ingredients;
|
||||||
if (recipe.value.settings) {
|
|
||||||
recipe.value.settings.disableAmount = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
const { response } = await api.recipes.updateOne(recipe.value.slug, recipe.value);
|
const { response } = await api.recipes.updateOne(recipe.value.slug, recipe.value);
|
||||||
|
|
||||||
if (response?.status === 200) {
|
if (response?.status === 200) {
|
||||||
|
|
|
@ -88,7 +88,7 @@
|
||||||
{{ $t("new-recipe.google-ld-json-info") }}
|
{{ $t("new-recipe.google-ld-json-info") }}
|
||||||
</a>
|
</a>
|
||||||
<a
|
<a
|
||||||
href="https://github.com/hay-kot/mealie/issues"
|
href="https://github.com/mealie-recipes/mealie/issues"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
rel="noreferrer nofollow"
|
rel="noreferrer nofollow"
|
||||||
>
|
>
|
||||||
|
|
|
@ -415,7 +415,6 @@ export default defineNuxtComponent({
|
||||||
showAssets: false,
|
showAssets: false,
|
||||||
landscapeView: false,
|
landscapeView: false,
|
||||||
disableComments: false,
|
disableComments: false,
|
||||||
disableAmount: false,
|
|
||||||
locked: false,
|
locked: false,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
:icon="$globals.icons.tags"
|
:icon="$globals.icons.tags"
|
||||||
:title="$t('data-pages.tags.edit-tag')"
|
:title="$t('data-pages.tags.edit-tag')"
|
||||||
:submit-text="$t('general.save')"
|
:submit-text="$t('general.save')"
|
||||||
|
can-confirm
|
||||||
@submit="editSaveTag"
|
@submit="editSaveTag"
|
||||||
>
|
>
|
||||||
<v-card-text v-if="editTarget">
|
<v-card-text v-if="editTarget">
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
:icon="$globals.icons.potSteam"
|
:icon="$globals.icons.potSteam"
|
||||||
:title="$t('data-pages.tools.edit-tool')"
|
:title="$t('data-pages.tools.edit-tool')"
|
||||||
:submit-text="$t('general.save')"
|
:submit-text="$t('general.save')"
|
||||||
|
can-confirm
|
||||||
@submit="editSaveTool"
|
@submit="editSaveTool"
|
||||||
>
|
>
|
||||||
<v-card-text v-if="editTarget">
|
<v-card-text v-if="editTarget">
|
||||||
|
@ -41,6 +42,7 @@
|
||||||
<v-checkbox
|
<v-checkbox
|
||||||
v-model="editTarget.onHand"
|
v-model="editTarget.onHand"
|
||||||
:label="$t('tool.on-hand')"
|
:label="$t('tool.on-hand')"
|
||||||
|
hide-details
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</v-card-text>
|
</v-card-text>
|
||||||
|
|
|
@ -95,12 +95,6 @@ export default defineNuxtComponent({
|
||||||
label: i18n.t("group.disable-users-from-commenting-on-recipes"),
|
label: i18n.t("group.disable-users-from-commenting-on-recipes"),
|
||||||
description: i18n.t("group.disable-users-from-commenting-on-recipes-description"),
|
description: i18n.t("group.disable-users-from-commenting-on-recipes-description"),
|
||||||
} as Preference,
|
} as Preference,
|
||||||
{
|
|
||||||
key: "recipeDisableAmount",
|
|
||||||
value: household.value.preferences.recipeDisableAmount || false,
|
|
||||||
label: i18n.t("group.disable-organizing-recipe-ingredients-by-units-and-food"),
|
|
||||||
description: i18n.t("group.disable-organizing-recipe-ingredients-by-units-and-food-description"),
|
|
||||||
} as Preference,
|
|
||||||
];
|
];
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -201,7 +201,7 @@
|
||||||
{
|
{
|
||||||
text: $t('about.github'),
|
text: $t('about.github'),
|
||||||
icon: $globals.icons.github,
|
icon: $globals.icons.github,
|
||||||
href: 'https://github.com/hay-kot/mealie',
|
href: 'https://github.com/mealie-recipes/mealie',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: $t('about.docs'),
|
text: $t('about.docs'),
|
||||||
|
|
|
@ -762,31 +762,12 @@ export default defineNuxtComponent({
|
||||||
|
|
||||||
const contextActions = {
|
const contextActions = {
|
||||||
delete: "delete",
|
delete: "delete",
|
||||||
setIngredient: "setIngredient",
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const contextMenu = [
|
const contextMenu = [
|
||||||
{ title: i18n.t("general.delete"), action: contextActions.delete },
|
{ title: i18n.t("general.delete"), action: contextActions.delete },
|
||||||
{ title: i18n.t("recipe.ingredient"), action: contextActions.setIngredient },
|
|
||||||
];
|
];
|
||||||
|
|
||||||
function contextMenuAction(action: string, item: ShoppingListItemOut, idx: number) {
|
|
||||||
if (!shoppingList.value?.listItems) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (action) {
|
|
||||||
case contextActions.delete:
|
|
||||||
shoppingList.value.listItems = shoppingList.value?.listItems.filter(itm => itm.id !== item.id);
|
|
||||||
break;
|
|
||||||
case contextActions.setIngredient:
|
|
||||||
shoppingList.value.listItems[idx].isFood = !shoppingList.value.listItems[idx].isFood;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// =====================================
|
// =====================================
|
||||||
// Labels, Units, Foods
|
// Labels, Units, Foods
|
||||||
// TODO: Extract to Composable
|
// TODO: Extract to Composable
|
||||||
|
@ -901,7 +882,7 @@ export default defineNuxtComponent({
|
||||||
shoppingList.value.listItems.forEach((item) => {
|
shoppingList.value.listItems.forEach((item) => {
|
||||||
const key = item.checked
|
const key = item.checked
|
||||||
? checkedItemKey
|
? checkedItemKey
|
||||||
: item.isFood && item.food?.name
|
: item.food?.name
|
||||||
? item.food.name
|
? item.food.name
|
||||||
: item.note || "";
|
: item.note || "";
|
||||||
|
|
||||||
|
@ -1087,13 +1068,12 @@ export default defineNuxtComponent({
|
||||||
const createEditorOpen = ref(false);
|
const createEditorOpen = ref(false);
|
||||||
const createListItemData = ref<ShoppingListItemOut>(listItemFactory());
|
const createListItemData = ref<ShoppingListItemOut>(listItemFactory());
|
||||||
|
|
||||||
function listItemFactory(isFood = false): ShoppingListItemOut {
|
function listItemFactory(): ShoppingListItemOut {
|
||||||
return {
|
return {
|
||||||
id: uuid4(),
|
id: uuid4(),
|
||||||
shoppingListId: id,
|
shoppingListId: id,
|
||||||
checked: false,
|
checked: false,
|
||||||
position: shoppingList.value?.listItems?.length || 1,
|
position: shoppingList.value?.listItems?.length || 1,
|
||||||
isFood,
|
|
||||||
quantity: 0,
|
quantity: 0,
|
||||||
note: "",
|
note: "",
|
||||||
labelId: undefined,
|
labelId: undefined,
|
||||||
|
@ -1144,7 +1124,7 @@ export default defineNuxtComponent({
|
||||||
shoppingList.value.listItems.push(createListItemData.value);
|
shoppingList.value.listItems.push(createListItemData.value);
|
||||||
updateListItemOrder();
|
updateListItemOrder();
|
||||||
}
|
}
|
||||||
createListItemData.value = listItemFactory(createListItemData.value.isFood || false);
|
createListItemData.value = listItemFactory();
|
||||||
refresh();
|
refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1217,7 +1197,6 @@ export default defineNuxtComponent({
|
||||||
addRecipeReferenceToList,
|
addRecipeReferenceToList,
|
||||||
allLabels,
|
allLabels,
|
||||||
contextMenu,
|
contextMenu,
|
||||||
contextMenuAction,
|
|
||||||
copyListItems,
|
copyListItems,
|
||||||
createEditorOpen,
|
createEditorOpen,
|
||||||
createListItem,
|
createListItem,
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
"""empty migration to fix food flag data
|
||||||
|
|
||||||
|
Revision ID: d7b3ce6fa31a
|
||||||
|
Revises: 7cf3054cbbcc
|
||||||
|
Create Date: 2025-07-11 20:17:10.543280
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
from textwrap import dedent
|
||||||
|
|
||||||
|
from alembic import op
|
||||||
|
|
||||||
|
|
||||||
|
# revision identifiers, used by Alembic.
|
||||||
|
revision = "d7b3ce6fa31a"
|
||||||
|
down_revision: str | None = "7cf3054cbbcc"
|
||||||
|
branch_labels: str | tuple[str, ...] | None = None
|
||||||
|
depends_on: str | tuple[str, ...] | None = None
|
||||||
|
|
||||||
|
|
||||||
|
def is_postgres():
|
||||||
|
return op.get_context().dialect.name == "postgresql"
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade():
|
||||||
|
# Update recipes with disable_amount=True: set ingredient quantities of 1 to 0
|
||||||
|
op.execute(
|
||||||
|
dedent(
|
||||||
|
f"""
|
||||||
|
UPDATE recipes_ingredients
|
||||||
|
SET quantity = 0
|
||||||
|
WHERE quantity = 1
|
||||||
|
AND recipe_id IN (
|
||||||
|
SELECT r.id
|
||||||
|
FROM recipes r
|
||||||
|
JOIN recipe_settings rs ON r.id = rs.recipe_id
|
||||||
|
WHERE rs.disable_amount = {"true" if is_postgres() else "1"}
|
||||||
|
)
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade():
|
||||||
|
pass
|
|
@ -15,7 +15,7 @@ def get_latest_github_release() -> str:
|
||||||
str: The latest release from GitHub.
|
str: The latest release from GitHub.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
url = "https://api.github.com/repos/hay-kot/mealie/releases/latest"
|
url = "https://api.github.com/repos/mealie-recipes/mealie/releases/latest"
|
||||||
response = requests.get(url)
|
response = requests.get(url)
|
||||||
response.raise_for_status()
|
response.raise_for_status()
|
||||||
return response.json()["tag_name"]
|
return response.json()["tag_name"]
|
||||||
|
|
|
@ -31,6 +31,8 @@ class HouseholdPreferencesModel(SqlAlchemyBase, BaseMixins):
|
||||||
recipe_show_assets: Mapped[bool | None] = mapped_column(sa.Boolean, default=False)
|
recipe_show_assets: Mapped[bool | None] = mapped_column(sa.Boolean, default=False)
|
||||||
recipe_landscape_view: Mapped[bool | None] = mapped_column(sa.Boolean, default=False)
|
recipe_landscape_view: Mapped[bool | None] = mapped_column(sa.Boolean, default=False)
|
||||||
recipe_disable_comments: Mapped[bool | None] = mapped_column(sa.Boolean, default=False)
|
recipe_disable_comments: Mapped[bool | None] = mapped_column(sa.Boolean, default=False)
|
||||||
|
|
||||||
|
# Deprecated
|
||||||
recipe_disable_amount: Mapped[bool | None] = mapped_column(sa.Boolean, default=True)
|
recipe_disable_amount: Mapped[bool | None] = mapped_column(sa.Boolean, default=True)
|
||||||
|
|
||||||
@auto_init()
|
@auto_init()
|
||||||
|
|
|
@ -65,7 +65,6 @@ class ShoppingListItem(SqlAlchemyBase, BaseMixins):
|
||||||
quantity: Mapped[float | None] = mapped_column(Float, default=1)
|
quantity: Mapped[float | None] = mapped_column(Float, default=1)
|
||||||
note: Mapped[str | None] = mapped_column(String)
|
note: Mapped[str | None] = mapped_column(String)
|
||||||
|
|
||||||
is_food: Mapped[bool | None] = mapped_column(Boolean, default=False)
|
|
||||||
extras: Mapped[list[ShoppingListItemExtras]] = orm.relationship(
|
extras: Mapped[list[ShoppingListItemExtras]] = orm.relationship(
|
||||||
"ShoppingListItemExtras", cascade="all, delete-orphan"
|
"ShoppingListItemExtras", cascade="all, delete-orphan"
|
||||||
)
|
)
|
||||||
|
@ -88,6 +87,9 @@ class ShoppingListItem(SqlAlchemyBase, BaseMixins):
|
||||||
)
|
)
|
||||||
model_config = ConfigDict(exclude={"label", "food", "unit"})
|
model_config = ConfigDict(exclude={"label", "food", "unit"})
|
||||||
|
|
||||||
|
# Deprecated
|
||||||
|
is_food: Mapped[bool | None] = mapped_column(Boolean, default=False)
|
||||||
|
|
||||||
@api_extras
|
@api_extras
|
||||||
@auto_init()
|
@auto_init()
|
||||||
def __init__(self, **_) -> None:
|
def __init__(self, **_) -> None:
|
||||||
|
|
|
@ -13,10 +13,12 @@ class RecipeSettings(SqlAlchemyBase):
|
||||||
show_nutrition: Mapped[bool | None] = mapped_column(sa.Boolean)
|
show_nutrition: Mapped[bool | None] = mapped_column(sa.Boolean)
|
||||||
show_assets: Mapped[bool | None] = mapped_column(sa.Boolean)
|
show_assets: Mapped[bool | None] = mapped_column(sa.Boolean)
|
||||||
landscape_view: Mapped[bool | None] = mapped_column(sa.Boolean)
|
landscape_view: Mapped[bool | None] = mapped_column(sa.Boolean)
|
||||||
disable_amount: Mapped[bool | None] = mapped_column(sa.Boolean, default=True)
|
|
||||||
disable_comments: Mapped[bool | None] = mapped_column(sa.Boolean, default=False)
|
disable_comments: Mapped[bool | None] = mapped_column(sa.Boolean, default=False)
|
||||||
locked: Mapped[bool | None] = mapped_column(sa.Boolean, default=False)
|
locked: Mapped[bool | None] = mapped_column(sa.Boolean, default=False)
|
||||||
|
|
||||||
|
# Deprecated
|
||||||
|
disable_amount: Mapped[bool | None] = mapped_column(sa.Boolean, default=True)
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
public=True,
|
public=True,
|
||||||
|
|
|
@ -10,8 +10,8 @@
|
||||||
"step-text": "Шаги рецепта, как и другие поля на странице рецепта, поддерживают синтаксис Markdown.\n\n**Добавить ссылку**\n\n[Моя Ссылка](https://demo.mealie.io)\n"
|
"step-text": "Шаги рецепта, как и другие поля на странице рецепта, поддерживают синтаксис Markdown.\n\n**Добавить ссылку**\n\n[Моя Ссылка](https://demo.mealie.io)\n"
|
||||||
},
|
},
|
||||||
"servings-text": {
|
"servings-text": {
|
||||||
"makes": "Makes",
|
"makes": "Получается",
|
||||||
"serves": "Serves",
|
"serves": "Порций",
|
||||||
"serving": "Порция",
|
"serving": "Порция",
|
||||||
"servings": "Порции",
|
"servings": "Порции",
|
||||||
"yield": "Выход",
|
"yield": "Выход",
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
},
|
},
|
||||||
"recipe": {
|
"recipe": {
|
||||||
"unique-name-error": "Názov receptu musí byť unikátny",
|
"unique-name-error": "Názov receptu musí byť unikátny",
|
||||||
"recipe-created": "Recept bol vytvorený",
|
"recipe-created": "Vytvorený recept",
|
||||||
"recipe-defaults": {
|
"recipe-defaults": {
|
||||||
"ingredient-note": "1 šálka múky",
|
"ingredient-note": "1 šálka múky",
|
||||||
"step-text": "Kroky receptu, ako aj ďalšie polia na stránke receptu podporujú markdown syntax.\n\n**Pridanie odkazu**\n\n[Môj odkaz](https://demo.mealie.io)\n"
|
"step-text": "Kroky receptu, ako aj ďalšie polia na stránke receptu podporujú markdown syntax.\n\n**Pridanie odkazu**\n\n[Môj odkaz](https://demo.mealie.io)\n"
|
||||||
|
|
|
@ -440,7 +440,6 @@ class RepositoryRecipes(HouseholdRepositoryGeneric[Recipe, RecipeModel]):
|
||||||
)
|
)
|
||||||
q = (
|
q = (
|
||||||
q.join(settings_alias, self.model.settings)
|
q.join(settings_alias, self.model.settings)
|
||||||
.filter(settings_alias.disable_amount == False) # noqa: E712 - required for SQLAlchemy comparison
|
|
||||||
.outerjoin(unmatched_foods_query, self.model.id == unmatched_foods_query.c.recipe_id)
|
.outerjoin(unmatched_foods_query, self.model.id == unmatched_foods_query.c.recipe_id)
|
||||||
.outerjoin(total_user_foods_query, self.model.id == total_user_foods_query.c.recipe_id)
|
.outerjoin(total_user_foods_query, self.model.id == total_user_foods_query.c.recipe_id)
|
||||||
.filter(
|
.filter(
|
||||||
|
|
|
@ -4255,14 +4255,14 @@
|
||||||
"country ham": {
|
"country ham": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "country ham",
|
"name": "Landschinken",
|
||||||
"plural_name": "country hams"
|
"plural_name": "Landschinken"
|
||||||
},
|
},
|
||||||
"boneless ham": {
|
"boneless ham": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "boneless ham",
|
"name": "Entbeinter Schinken",
|
||||||
"plural_name": "boneless hams"
|
"plural_name": "Entbeinter Schinken"
|
||||||
},
|
},
|
||||||
"mortadella": {
|
"mortadella": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -4297,8 +4297,8 @@
|
||||||
"smoked pork chop": {
|
"smoked pork chop": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "smoked pork chop",
|
"name": "Geräuchertes Schweinekotelett",
|
||||||
"plural_name": "smoked pork chops"
|
"plural_name": "Geräucherte Schweinekoteletten"
|
||||||
},
|
},
|
||||||
"lamb neck": {
|
"lamb neck": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -4333,8 +4333,8 @@
|
||||||
"steak tip": {
|
"steak tip": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "steak tip",
|
"name": "Steak Spitze",
|
||||||
"plural_name": "steak tips"
|
"plural_name": "Steak Spitzen"
|
||||||
},
|
},
|
||||||
"veal chop": {
|
"veal chop": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -4452,7 +4452,7 @@
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "Entbeintes Hühnerfleisch",
|
"name": "Entbeintes Hühnerfleisch",
|
||||||
"plural_name": "boneless chickens"
|
"plural_name": "Entbeintes Hühnerfleisch"
|
||||||
},
|
},
|
||||||
"chicken liver": {
|
"chicken liver": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -4463,8 +4463,8 @@
|
||||||
"cornish hen": {
|
"cornish hen": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "cornish hen",
|
"name": "Kornisches Huhn",
|
||||||
"plural_name": "cornish hens"
|
"plural_name": "Kornische Hühner"
|
||||||
},
|
},
|
||||||
"deli turkey": {
|
"deli turkey": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -4475,8 +4475,8 @@
|
||||||
"smoked turkey": {
|
"smoked turkey": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "smoked turkey",
|
"name": "Geräucherter Truthahn",
|
||||||
"plural_name": "smoked turkeys"
|
"plural_name": "Geräucherte Truthähne"
|
||||||
},
|
},
|
||||||
"turkey meat": {
|
"turkey meat": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -6227,8 +6227,8 @@
|
||||||
"saffron strand": {
|
"saffron strand": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "saffron strand",
|
"name": "Safranfaden",
|
||||||
"plural_name": "saffron strands"
|
"plural_name": "Safranfäden"
|
||||||
},
|
},
|
||||||
"guajillo pepper": {
|
"guajillo pepper": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -6251,8 +6251,8 @@
|
||||||
"lemon thyme": {
|
"lemon thyme": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "lemon thyme",
|
"name": "Zitronenthymian",
|
||||||
"plural_name": "lemon thymes"
|
"plural_name": "Zitronenthymian"
|
||||||
},
|
},
|
||||||
"galangal": {
|
"galangal": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -6490,7 +6490,7 @@
|
||||||
"sugar syrup": {
|
"sugar syrup": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "sugar free sweetner",
|
"description": "sugar free sweetner",
|
||||||
"name": "sugar syrup",
|
"name": "Zuckersirup",
|
||||||
"plural_name": "sugar syrups"
|
"plural_name": "sugar syrups"
|
||||||
},
|
},
|
||||||
"isomalt": {
|
"isomalt": {
|
||||||
|
@ -6736,7 +6736,7 @@
|
||||||
"rice syrup": {
|
"rice syrup": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "rice syrup",
|
"name": "Reissirup",
|
||||||
"plural_name": "Zuckerrohr-Sirup"
|
"plural_name": "Zuckerrohr-Sirup"
|
||||||
},
|
},
|
||||||
"manuka honey": {
|
"manuka honey": {
|
||||||
|
@ -6874,7 +6874,7 @@
|
||||||
"malt syrup": {
|
"malt syrup": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "malt syrup",
|
"name": "Malzsirup",
|
||||||
"plural_name": "malt syrups"
|
"plural_name": "malt syrups"
|
||||||
},
|
},
|
||||||
"hot honey": {
|
"hot honey": {
|
||||||
|
@ -7184,8 +7184,8 @@
|
||||||
"thai red curry paste": {
|
"thai red curry paste": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "thai red curry paste",
|
"name": "Rote Thai-Currypaste",
|
||||||
"plural_name": "thai red curry pastes"
|
"plural_name": "Rote Thai-Currypasten"
|
||||||
},
|
},
|
||||||
"mixed herb": {
|
"mixed herb": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -7304,8 +7304,8 @@
|
||||||
"teriyaki marinade": {
|
"teriyaki marinade": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "teriyaki marinade",
|
"name": "Teriyaki Marinade",
|
||||||
"plural_name": "teriyaki marinades"
|
"plural_name": "Teriyaki Marinaden"
|
||||||
},
|
},
|
||||||
"adobo seasoning": {
|
"adobo seasoning": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -7622,8 +7622,8 @@
|
||||||
"tom yum paste": {
|
"tom yum paste": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "tom yum paste",
|
"name": "Tom Yum Paste",
|
||||||
"plural_name": "tom yum pastes"
|
"plural_name": "Tom Yum Pasten"
|
||||||
},
|
},
|
||||||
"fish masala": {
|
"fish masala": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -7671,8 +7671,8 @@
|
||||||
"baking soda": {
|
"baking soda": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "baking soda",
|
"name": "Backpulver",
|
||||||
"plural_name": "baking sodas"
|
"plural_name": "Backpulver"
|
||||||
},
|
},
|
||||||
"cornstarch": {
|
"cornstarch": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -9464,8 +9464,8 @@
|
||||||
"hyacinth bean": {
|
"hyacinth bean": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "hyacinth bean",
|
"name": "Helmbohne",
|
||||||
"plural_name": "hyacinth beans"
|
"plural_name": "Helmbohnen"
|
||||||
},
|
},
|
||||||
"petai": {
|
"petai": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -9476,14 +9476,14 @@
|
||||||
"scarlet runner bean": {
|
"scarlet runner bean": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "scarlet runner bean",
|
"name": "Feuerbohne",
|
||||||
"plural_name": "scarlet runner beans"
|
"plural_name": "Feuerbohnen"
|
||||||
},
|
},
|
||||||
"soy flake": {
|
"soy flake": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "soy flake",
|
"name": "Sojaflocke",
|
||||||
"plural_name": "soy flakes"
|
"plural_name": "Sojaflocken"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -9492,8 +9492,8 @@
|
||||||
"short-cut pasta": {
|
"short-cut pasta": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "short-cut pasta",
|
"name": "kurze Nudel",
|
||||||
"plural_name": "short-cut pastas"
|
"plural_name": "kurze Nudeln"
|
||||||
},
|
},
|
||||||
"spaghetti": {
|
"spaghetti": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -9516,8 +9516,8 @@
|
||||||
"spiral pasta": {
|
"spiral pasta": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "spiral pasta",
|
"name": "Spiralnudel",
|
||||||
"plural_name": "spiral pastas"
|
"plural_name": "Spiralnudeln"
|
||||||
},
|
},
|
||||||
"lasagna noodle": {
|
"lasagna noodle": {
|
||||||
"aliases": [
|
"aliases": [
|
||||||
|
@ -9548,14 +9548,14 @@
|
||||||
"pasta shell": {
|
"pasta shell": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "pasta shell",
|
"name": "Muschelnudel",
|
||||||
"plural_name": "pasta shells"
|
"plural_name": "Muschelnudeln"
|
||||||
},
|
},
|
||||||
"bow-tie pasta": {
|
"bow-tie pasta": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "bow-tie pasta",
|
"name": "Farfalle",
|
||||||
"plural_name": "bow-tie pastas"
|
"plural_name": "Farfalle"
|
||||||
},
|
},
|
||||||
"noodle": {
|
"noodle": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -9572,8 +9572,8 @@
|
||||||
"cheese tortellini": {
|
"cheese tortellini": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "cheese tortellini",
|
"name": "Käse-Tortellini",
|
||||||
"plural_name": "cheese tortellinis"
|
"plural_name": "Käse-Tortellini"
|
||||||
},
|
},
|
||||||
"rice noodle": {
|
"rice noodle": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -9596,8 +9596,8 @@
|
||||||
"angel hair pasta": {
|
"angel hair pasta": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "angel hair pasta",
|
"name": "Capelli d’angelo",
|
||||||
"plural_name": "angel hair pastas"
|
"plural_name": "Capelli d’angelo"
|
||||||
},
|
},
|
||||||
"ramen noodle": {
|
"ramen noodle": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -9608,8 +9608,8 @@
|
||||||
"vermicelli": {
|
"vermicelli": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "vermicelli",
|
"name": "Vermicelli",
|
||||||
"plural_name": "vermicellis"
|
"plural_name": "Vermicelli"
|
||||||
},
|
},
|
||||||
"tagliatelle": {
|
"tagliatelle": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -9632,8 +9632,8 @@
|
||||||
"ziti": {
|
"ziti": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "ziti",
|
"name": "Ziti",
|
||||||
"plural_name": "zitis"
|
"plural_name": "Ziti"
|
||||||
},
|
},
|
||||||
"orecchiette": {
|
"orecchiette": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -9644,8 +9644,8 @@
|
||||||
"israeli couscou": {
|
"israeli couscou": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "israeli couscou",
|
"name": "Perlcouscous",
|
||||||
"plural_name": "israeli couscous"
|
"plural_name": "Perlcouscous"
|
||||||
},
|
},
|
||||||
"zoodle": {
|
"zoodle": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -9662,20 +9662,20 @@
|
||||||
"ditalini": {
|
"ditalini": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "ditalini",
|
"name": "Ditalini",
|
||||||
"plural_name": "ditalinis"
|
"plural_name": "Ditalini"
|
||||||
},
|
},
|
||||||
"rice vermicelli": {
|
"rice vermicelli": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "rice vermicelli",
|
"name": "Reis-Vermicelli",
|
||||||
"plural_name": "rice vermicellis"
|
"plural_name": "Reis-Vermicelli"
|
||||||
},
|
},
|
||||||
"pappardelle": {
|
"pappardelle": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "pappardelle",
|
"name": "Pappardella",
|
||||||
"plural_name": "pappardelles"
|
"plural_name": "Pappardelle"
|
||||||
},
|
},
|
||||||
"glass noodle": {
|
"glass noodle": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -9692,26 +9692,26 @@
|
||||||
"mac 'n cheese": {
|
"mac 'n cheese": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "mac 'n cheese",
|
"name": "Mac 'n Cheese",
|
||||||
"plural_name": "mac 'n cheeses"
|
"plural_name": "Mac 'n Cheese"
|
||||||
},
|
},
|
||||||
"penne rigate": {
|
"penne rigate": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "penne rigate",
|
"name": "Penne rigate",
|
||||||
"plural_name": "penne rigates"
|
"plural_name": "Penne rigate"
|
||||||
},
|
},
|
||||||
"manicotti": {
|
"manicotti": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "manicotti",
|
"name": "Manicotto",
|
||||||
"plural_name": "manicottis"
|
"plural_name": "Manicotti"
|
||||||
},
|
},
|
||||||
"bucatini": {
|
"bucatini": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "bucatini",
|
"name": "Bucatini",
|
||||||
"plural_name": "bucatinis"
|
"plural_name": "Bucatini"
|
||||||
},
|
},
|
||||||
"cannelloni": {
|
"cannelloni": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -9734,8 +9734,8 @@
|
||||||
"rotelle": {
|
"rotelle": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "rotelle",
|
"name": "Rotelle",
|
||||||
"plural_name": "rotelles"
|
"plural_name": "Rotelle"
|
||||||
},
|
},
|
||||||
"shirataki noodle": {
|
"shirataki noodle": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -9770,14 +9770,14 @@
|
||||||
"acini di pepe": {
|
"acini di pepe": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "acini di pepe",
|
"name": "Acini di pepe",
|
||||||
"plural_name": "acini di pepes"
|
"plural_name": "Acini di pepe"
|
||||||
},
|
},
|
||||||
"cavatelli": {
|
"cavatelli": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "cavatelli",
|
"name": "Cavatelli",
|
||||||
"plural_name": "cavatellis"
|
"plural_name": "Cavatelli"
|
||||||
},
|
},
|
||||||
"instant noodle": {
|
"instant noodle": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -12196,8 +12196,8 @@
|
||||||
"canned corn": {
|
"canned corn": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "canned corn",
|
"name": "Dosenmais",
|
||||||
"plural_name": "canned corns"
|
"plural_name": "Dosenmais"
|
||||||
},
|
},
|
||||||
"canned kidney bean": {
|
"canned kidney bean": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -12238,8 +12238,8 @@
|
||||||
"sauerkraut": {
|
"sauerkraut": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "sauerkraut",
|
"name": "Sauerkraut",
|
||||||
"plural_name": "sauerkrauts"
|
"plural_name": "Sauerkraut"
|
||||||
},
|
},
|
||||||
"creamed corn": {
|
"creamed corn": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -12280,8 +12280,8 @@
|
||||||
"kimchi": {
|
"kimchi": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "kimchi",
|
"name": "Kimchi",
|
||||||
"plural_name": "kimchis"
|
"plural_name": "Kimchi"
|
||||||
},
|
},
|
||||||
"canned mandarin orange": {
|
"canned mandarin orange": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -12826,8 +12826,8 @@
|
||||||
"steak sauce": {
|
"steak sauce": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "steak sauce",
|
"name": "Steaksauce",
|
||||||
"plural_name": "steak sauces"
|
"plural_name": "Steaksaucen"
|
||||||
},
|
},
|
||||||
"chunky peanut butter": {
|
"chunky peanut butter": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -12838,8 +12838,8 @@
|
||||||
"tzatziki": {
|
"tzatziki": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "tzatziki",
|
"name": "Tsatsiki",
|
||||||
"plural_name": "tzatzikis"
|
"plural_name": "Tsatsiki"
|
||||||
},
|
},
|
||||||
"taco sauce": {
|
"taco sauce": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -12862,20 +12862,20 @@
|
||||||
"béchamel sauce": {
|
"béchamel sauce": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "béchamel sauce",
|
"name": "Béchamelsauce",
|
||||||
"plural_name": "béchamel sauces"
|
"plural_name": "Béchamelsaucen"
|
||||||
},
|
},
|
||||||
"horseradish sauce": {
|
"horseradish sauce": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "horseradish sauce",
|
"name": "Meerrettichsauce",
|
||||||
"plural_name": "horseradish sauces"
|
"plural_name": "Meerrettichsaucen"
|
||||||
},
|
},
|
||||||
"plum sauce": {
|
"plum sauce": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "plum sauce",
|
"name": "Pflaumensauce",
|
||||||
"plural_name": "plum sauces"
|
"plural_name": "Pflaumensaucen"
|
||||||
},
|
},
|
||||||
"garlic butter": {
|
"garlic butter": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -12886,14 +12886,14 @@
|
||||||
"hollandaise sauce": {
|
"hollandaise sauce": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "hollandaise sauce",
|
"name": "Hollandaise",
|
||||||
"plural_name": "hollandaise sauces"
|
"plural_name": "Hollandaise"
|
||||||
},
|
},
|
||||||
"cocktail sauce": {
|
"cocktail sauce": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "cocktail sauce",
|
"name": "Cocktailsauce",
|
||||||
"plural_name": "cocktail sauces"
|
"plural_name": "Cocktailsaucen"
|
||||||
},
|
},
|
||||||
"cheese dip": {
|
"cheese dip": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -12958,8 +12958,8 @@
|
||||||
"mustard sauce": {
|
"mustard sauce": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "mustard sauce",
|
"name": "Senfsauce",
|
||||||
"plural_name": "mustard sauces"
|
"plural_name": "Senfsaucen"
|
||||||
},
|
},
|
||||||
"sun-dried tomato paste": {
|
"sun-dried tomato paste": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -13006,8 +13006,8 @@
|
||||||
"curry sauce": {
|
"curry sauce": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "curry sauce",
|
"name": "Currysauce",
|
||||||
"plural_name": "curry sauces"
|
"plural_name": "Currysaucen"
|
||||||
},
|
},
|
||||||
"liver spread": {
|
"liver spread": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -13024,8 +13024,8 @@
|
||||||
"schezwan sauce": {
|
"schezwan sauce": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "schezwan sauce",
|
"name": "Szechuan-Sauce",
|
||||||
"plural_name": "schezwan sauces"
|
"plural_name": "Szechuan-Saucen"
|
||||||
},
|
},
|
||||||
"mushroom gravy": {
|
"mushroom gravy": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -13066,7 +13066,7 @@
|
||||||
"japanese curry": {
|
"japanese curry": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "japanese curry",
|
"name": "Japanisches Curry",
|
||||||
"plural_name": "japanese curries"
|
"plural_name": "japanese curries"
|
||||||
},
|
},
|
||||||
"mango salsa": {
|
"mango salsa": {
|
||||||
|
|
|
@ -162,8 +162,8 @@
|
||||||
"kale": {
|
"kale": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "kale",
|
"name": "col rizada",
|
||||||
"plural_name": "kales"
|
"plural_name": "coles rizadas"
|
||||||
},
|
},
|
||||||
"arugula": {
|
"arugula": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -192,14 +192,14 @@
|
||||||
"butternut squash": {
|
"butternut squash": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "butternut squash",
|
"name": "calabaza",
|
||||||
"plural_name": "butternut squashes"
|
"plural_name": "calabazas"
|
||||||
},
|
},
|
||||||
"romaine": {
|
"romaine": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "romaine",
|
"name": "lechuga romana",
|
||||||
"plural_name": "romaines"
|
"plural_name": "lechugas romanas"
|
||||||
},
|
},
|
||||||
"beetroot": {
|
"beetroot": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -222,8 +222,8 @@
|
||||||
"sun dried tomato": {
|
"sun dried tomato": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "sun dried tomato",
|
"name": "tomate seco",
|
||||||
"plural_name": "sun dried tomatoes"
|
"plural_name": "tomates secos"
|
||||||
},
|
},
|
||||||
"radish": {
|
"radish": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -252,7 +252,7 @@
|
||||||
"summer squash": {
|
"summer squash": {
|
||||||
"aliases": [
|
"aliases": [
|
||||||
"calabacín",
|
"calabacín",
|
||||||
"gem squash"
|
"zapallito redondo"
|
||||||
],
|
],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "summer squash",
|
"name": "summer squash",
|
||||||
|
@ -261,14 +261,14 @@
|
||||||
"mixed green": {
|
"mixed green": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "mixed green",
|
"name": "mezcla de hojas verdes",
|
||||||
"plural_name": "mixed greens"
|
"plural_name": "mezclas de hojas verdes"
|
||||||
},
|
},
|
||||||
"parsnip": {
|
"parsnip": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "parsnip",
|
"name": "chirivía",
|
||||||
"plural_name": "parsnips"
|
"plural_name": "chirivías"
|
||||||
},
|
},
|
||||||
"baby carrot": {
|
"baby carrot": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -432,19 +432,19 @@
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "cebolla perla",
|
"name": "cebolla perla",
|
||||||
"plural_name": "pearl onions"
|
"plural_name": "cebollitas perla"
|
||||||
},
|
},
|
||||||
"tenderstem broccoli": {
|
"tenderstem broccoli": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "tenderstem broccoli",
|
"name": "brócoli tierno",
|
||||||
"plural_name": "tenderstem broccolis"
|
"plural_name": "brócolis tiernos"
|
||||||
},
|
},
|
||||||
"plantain": {
|
"plantain": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "plantain",
|
"name": "plátano macho",
|
||||||
"plural_name": "plantains"
|
"plural_name": "plátanos machos"
|
||||||
},
|
},
|
||||||
"leaf lettuce": {
|
"leaf lettuce": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -455,8 +455,8 @@
|
||||||
"pepperoncini": {
|
"pepperoncini": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "pepperoncini",
|
"name": "ají pepperoncini",
|
||||||
"plural_name": "pepperoncinis"
|
"plural_name": "ajís pepperoncini"
|
||||||
},
|
},
|
||||||
"baby bok choy": {
|
"baby bok choy": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -487,8 +487,8 @@
|
||||||
"maíz"
|
"maíz"
|
||||||
],
|
],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "corn husk",
|
"name": "hoja de maíz",
|
||||||
"plural_name": "corn husks"
|
"plural_name": "hojas de maíz"
|
||||||
},
|
},
|
||||||
"collard green": {
|
"collard green": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -246,8 +246,8 @@
|
||||||
"new potato": {
|
"new potato": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "new potato",
|
"name": "pataca nova",
|
||||||
"plural_name": "new potatoes"
|
"plural_name": "patacas novas"
|
||||||
},
|
},
|
||||||
"summer squash": {
|
"summer squash": {
|
||||||
"aliases": [
|
"aliases": [
|
||||||
|
@ -755,14 +755,14 @@
|
||||||
"plum": {
|
"plum": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "plum",
|
"name": "ameixa",
|
||||||
"plural_name": "plums"
|
"plural_name": "ameixas"
|
||||||
},
|
},
|
||||||
"fig": {
|
"fig": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "fig",
|
"name": "figo",
|
||||||
"plural_name": "figs"
|
"plural_name": "figos"
|
||||||
},
|
},
|
||||||
"apricot": {
|
"apricot": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -773,8 +773,8 @@
|
||||||
"currant": {
|
"currant": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "currant",
|
"name": "grosella",
|
||||||
"plural_name": "currants"
|
"plural_name": "grosellas"
|
||||||
},
|
},
|
||||||
"mandarin": {
|
"mandarin": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -785,8 +785,8 @@
|
||||||
"prune": {
|
"prune": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "prune",
|
"name": "ameixa seca",
|
||||||
"plural_name": "prunes"
|
"plural_name": "ameixas secas"
|
||||||
},
|
},
|
||||||
"cantaloupe": {
|
"cantaloupe": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -815,26 +815,26 @@
|
||||||
"tamarind": {
|
"tamarind": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "tamarind",
|
"name": "tamarindo",
|
||||||
"plural_name": "tamarinds"
|
"plural_name": "tamarindos"
|
||||||
},
|
},
|
||||||
"nectarine": {
|
"nectarine": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "nectarine",
|
"name": "nectarina",
|
||||||
"plural_name": "nectarines"
|
"plural_name": "nectarinas"
|
||||||
},
|
},
|
||||||
"dried fig": {
|
"dried fig": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "dried fig",
|
"name": "figo seco",
|
||||||
"plural_name": "dried figs"
|
"plural_name": "figos secos"
|
||||||
},
|
},
|
||||||
"chestnut": {
|
"chestnut": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "chestnut",
|
"name": "castaña",
|
||||||
"plural_name": "chestnuts"
|
"plural_name": "castañas"
|
||||||
},
|
},
|
||||||
"meyer lemon": {
|
"meyer lemon": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -857,20 +857,20 @@
|
||||||
"clementine": {
|
"clementine": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "clementine",
|
"name": "clementina",
|
||||||
"plural_name": "clementines"
|
"plural_name": "clementinas"
|
||||||
},
|
},
|
||||||
"persimmon": {
|
"persimmon": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "persimmon",
|
"name": "caqui",
|
||||||
"plural_name": "persimmons"
|
"plural_name": "caquis"
|
||||||
},
|
},
|
||||||
"melon": {
|
"melon": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "melon",
|
"name": "melón",
|
||||||
"plural_name": "melons"
|
"plural_name": "melóns"
|
||||||
},
|
},
|
||||||
"tangerine": {
|
"tangerine": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -887,8 +887,8 @@
|
||||||
"dried apple": {
|
"dried apple": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "dried apple",
|
"name": "mazá seca",
|
||||||
"plural_name": "dried apples"
|
"plural_name": "mazás secas"
|
||||||
},
|
},
|
||||||
"quince": {
|
"quince": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -899,8 +899,8 @@
|
||||||
"guava": {
|
"guava": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "guava",
|
"name": "goiaba",
|
||||||
"plural_name": "guavas"
|
"plural_name": "goiabas"
|
||||||
},
|
},
|
||||||
"banana chip": {
|
"banana chip": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -1043,8 +1043,8 @@
|
||||||
"sweet lime": {
|
"sweet lime": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "sweet lime",
|
"name": "lima doce",
|
||||||
"plural_name": "sweet limes"
|
"plural_name": "limas doces"
|
||||||
},
|
},
|
||||||
"custard-apple": {
|
"custard-apple": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -1157,8 +1157,8 @@
|
||||||
"loquat": {
|
"loquat": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "loquat",
|
"name": "néspera",
|
||||||
"plural_name": "loquats"
|
"plural_name": "nésperas"
|
||||||
},
|
},
|
||||||
"crabapple": {
|
"crabapple": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -1251,8 +1251,8 @@
|
||||||
"portobello mushroom": {
|
"portobello mushroom": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "portobello mushroom",
|
"name": "cogumelo portobello",
|
||||||
"plural_name": "portobello mushrooms"
|
"plural_name": "cogumelos portobello"
|
||||||
},
|
},
|
||||||
"wild mushroom": {
|
"wild mushroom": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -1453,8 +1453,8 @@
|
||||||
"strawberry": {
|
"strawberry": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "strawberry",
|
"name": "amorodo",
|
||||||
"plural_name": "strawberries"
|
"plural_name": "amorodos"
|
||||||
},
|
},
|
||||||
"blueberry": {
|
"blueberry": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -1727,8 +1727,8 @@
|
||||||
"almond": {
|
"almond": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "almond",
|
"name": "améndoa",
|
||||||
"plural_name": "almonds"
|
"plural_name": "améndoas"
|
||||||
},
|
},
|
||||||
"sesame seed": {
|
"sesame seed": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -1799,8 +1799,8 @@
|
||||||
"sunflower seed": {
|
"sunflower seed": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "sunflower seed",
|
"name": "semente de xirasol",
|
||||||
"plural_name": "sunflower seeds"
|
"plural_name": "sementes de xirasol"
|
||||||
},
|
},
|
||||||
"macadamia": {
|
"macadamia": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -2202,7 +2202,7 @@
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "manchego",
|
"name": "manchego",
|
||||||
"plural_name": "manchegoes"
|
"plural_name": "manchegos"
|
||||||
},
|
},
|
||||||
"italian cheese blend": {
|
"italian cheese blend": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -2711,8 +2711,8 @@
|
||||||
"margarine": {
|
"margarine": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "margarine",
|
"name": "margarina",
|
||||||
"plural_name": "margarines"
|
"plural_name": "margarinas"
|
||||||
},
|
},
|
||||||
"creme fraiche": {
|
"creme fraiche": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -2753,8 +2753,8 @@
|
||||||
"dulce de leche": {
|
"dulce de leche": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "dulce de leche",
|
"name": "doce de leite",
|
||||||
"plural_name": "dulce de leche"
|
"plural_name": "doces de leite"
|
||||||
},
|
},
|
||||||
"custard": {
|
"custard": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -2777,14 +2777,14 @@
|
||||||
"sherbet": {
|
"sherbet": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "sherbet",
|
"name": "sorvete",
|
||||||
"plural_name": "sherbets"
|
"plural_name": "sorvetes"
|
||||||
},
|
},
|
||||||
"chocolate milk": {
|
"chocolate milk": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "chocolate milk",
|
"name": "leite con chocolate",
|
||||||
"plural_name": "chocolate milks"
|
"plural_name": "leites con chocolate"
|
||||||
},
|
},
|
||||||
"liquid egg substitute": {
|
"liquid egg substitute": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -2873,8 +2873,8 @@
|
||||||
"cajeta": {
|
"cajeta": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "cajeta",
|
"name": "doce de leite de cabra",
|
||||||
"plural_name": "cajetas"
|
"plural_name": "doces de leite de cabra"
|
||||||
},
|
},
|
||||||
"duck egg": {
|
"duck egg": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
|
|
@ -9034,8 +9034,8 @@
|
||||||
"vegetable fried rice": {
|
"vegetable fried rice": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "vegetable fried rice",
|
"name": "אורז מטוגן עם ירקות",
|
||||||
"plural_name": "vegetable fried rices"
|
"plural_name": "אורז מטוגן עם ירקות"
|
||||||
},
|
},
|
||||||
"grünkern": {
|
"grünkern": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -9046,8 +9046,8 @@
|
||||||
"jeera rice": {
|
"jeera rice": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "jeera rice",
|
"name": "אורז ג׳ירה",
|
||||||
"plural_name": "jeera rices"
|
"plural_name": "אורז ג׳ירה"
|
||||||
},
|
},
|
||||||
"fonio": {
|
"fonio": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -9098,8 +9098,8 @@
|
||||||
"green bean": {
|
"green bean": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "green bean",
|
"name": "שעועית ירוקה",
|
||||||
"plural_name": "green beans"
|
"plural_name": "שעועית ירוקה"
|
||||||
},
|
},
|
||||||
"chickpea": {
|
"chickpea": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -9116,8 +9116,8 @@
|
||||||
"kidney bean": {
|
"kidney bean": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "kidney bean",
|
"name": "שעועית אדומה",
|
||||||
"plural_name": "kidney beans"
|
"plural_name": "שעועית אדומה"
|
||||||
},
|
},
|
||||||
"white bean": {
|
"white bean": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -9164,14 +9164,14 @@
|
||||||
"bean sprout": {
|
"bean sprout": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "bean sprout",
|
"name": "נבט שעועית",
|
||||||
"plural_name": "bean sprouts"
|
"plural_name": "נבטי שעועית"
|
||||||
},
|
},
|
||||||
"edamame": {
|
"edamame": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "edamame",
|
"name": "אדממה",
|
||||||
"plural_name": "edamames"
|
"plural_name": "אדממה"
|
||||||
},
|
},
|
||||||
"green lentil": {
|
"green lentil": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -9206,8 +9206,8 @@
|
||||||
"black-eyed pea": {
|
"black-eyed pea": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "black-eyed pea",
|
"name": "לוביה (שעועית העין השחורה)",
|
||||||
"plural_name": "black-eyed peas"
|
"plural_name": "לוביה (שעועית העין השחורה)"
|
||||||
},
|
},
|
||||||
"moong dal": {
|
"moong dal": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -9230,8 +9230,8 @@
|
||||||
"red bean": {
|
"red bean": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "red bean",
|
"name": "שעועית אדומה",
|
||||||
"plural_name": "red beans"
|
"plural_name": "שעועית אדומה"
|
||||||
},
|
},
|
||||||
"mung bean sprout": {
|
"mung bean sprout": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -9356,8 +9356,8 @@
|
||||||
"black soybean": {
|
"black soybean": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "black soybean",
|
"name": "פול סויה שחור",
|
||||||
"plural_name": "black soybeans"
|
"plural_name": "פולי סויה שחורים"
|
||||||
},
|
},
|
||||||
"field pea": {
|
"field pea": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -9386,8 +9386,8 @@
|
||||||
"soy sprout": {
|
"soy sprout": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "soy sprout",
|
"name": "נבט סויה",
|
||||||
"plural_name": "soy sprouts"
|
"plural_name": "נבטי סויה"
|
||||||
},
|
},
|
||||||
"honey bean": {
|
"honey bean": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -9734,14 +9734,14 @@
|
||||||
"rotelle": {
|
"rotelle": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "rotelle",
|
"name": "רוטלה",
|
||||||
"plural_name": "rotelles"
|
"plural_name": "רוטלה"
|
||||||
},
|
},
|
||||||
"shirataki noodle": {
|
"shirataki noodle": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "shirataki noodle",
|
"name": "איטריית שיראטאקי",
|
||||||
"plural_name": "shirataki noodles"
|
"plural_name": "איטריות שיראטאקי"
|
||||||
},
|
},
|
||||||
"chicken raman": {
|
"chicken raman": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -9752,8 +9752,8 @@
|
||||||
"pierogi": {
|
"pierogi": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "pierogi",
|
"name": "פירוגי",
|
||||||
"plural_name": "pierogis"
|
"plural_name": "פירוגי"
|
||||||
},
|
},
|
||||||
"soup pasta": {
|
"soup pasta": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -9800,8 +9800,8 @@
|
||||||
"beef ravioli": {
|
"beef ravioli": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "beef ravioli",
|
"name": "רביולי בקר",
|
||||||
"plural_name": "beef raviolis"
|
"plural_name": "רביולי בקר"
|
||||||
},
|
},
|
||||||
"hakka noodle": {
|
"hakka noodle": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -9884,8 +9884,8 @@
|
||||||
"fregola": {
|
"fregola": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "fregola",
|
"name": "פרגולה",
|
||||||
"plural_name": "fregolas"
|
"plural_name": "פרגולה"
|
||||||
},
|
},
|
||||||
"beef tortellini": {
|
"beef tortellini": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -10156,8 +10156,8 @@
|
||||||
"dry-roasted peanut": {
|
"dry-roasted peanut": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "dry-roasted peanut",
|
"name": "בוטן בטיגון ללא שמן",
|
||||||
"plural_name": "dry-roasted peanuts"
|
"plural_name": "בוטנים בטיגון ללא שמן"
|
||||||
},
|
},
|
||||||
"potato chip": {
|
"potato chip": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -10258,8 +10258,8 @@
|
||||||
"potato bread": {
|
"potato bread": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "potato bread",
|
"name": "לחם מקמח תפוחי אדמה",
|
||||||
"plural_name": "potato breads"
|
"plural_name": "לחמים מקמח תפוחי אדמה"
|
||||||
},
|
},
|
||||||
"muffin": {
|
"muffin": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -10270,8 +10270,8 @@
|
||||||
"breadstick": {
|
"breadstick": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "breadstick",
|
"name": "גריסיני",
|
||||||
"plural_name": "breadsticks"
|
"plural_name": "גריסיני"
|
||||||
},
|
},
|
||||||
"focaccia": {
|
"focaccia": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -10492,8 +10492,8 @@
|
||||||
"pretzel bun": {
|
"pretzel bun": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "pretzel bun",
|
"name": "לחמניית פרצל",
|
||||||
"plural_name": "pretzel buns"
|
"plural_name": "לחמניות פרצל"
|
||||||
},
|
},
|
||||||
"roti bread": {
|
"roti bread": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -10676,8 +10676,8 @@
|
||||||
"frying oil": {
|
"frying oil": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "frying oil",
|
"name": "שמן טיגון",
|
||||||
"plural_name": "frying oils"
|
"plural_name": "שמן טיגון"
|
||||||
},
|
},
|
||||||
"sunflower oil": {
|
"sunflower oil": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -10720,8 +10720,8 @@
|
||||||
"corn oil": {
|
"corn oil": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "corn oil",
|
"name": "שמן תירס",
|
||||||
"plural_name": "corn oils"
|
"plural_name": "שמני תירס"
|
||||||
},
|
},
|
||||||
"virgin coconut oil": {
|
"virgin coconut oil": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -10738,8 +10738,8 @@
|
||||||
"mustard oil": {
|
"mustard oil": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "mustard oil",
|
"name": "שמן חרדל",
|
||||||
"plural_name": "mustard oils"
|
"plural_name": "שמני חרדל"
|
||||||
},
|
},
|
||||||
"walnut oil": {
|
"walnut oil": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -10750,8 +10750,8 @@
|
||||||
"garlic oil": {
|
"garlic oil": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "garlic oil",
|
"name": "שמן שום",
|
||||||
"plural_name": "garlic oils"
|
"plural_name": "שמני שום"
|
||||||
},
|
},
|
||||||
"truffle oil": {
|
"truffle oil": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -10780,8 +10780,8 @@
|
||||||
"salad oil": {
|
"salad oil": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "salad oil",
|
"name": "שמן לסלט",
|
||||||
"plural_name": "salad oils"
|
"plural_name": "שמנים לסלט"
|
||||||
},
|
},
|
||||||
"duck fat": {
|
"duck fat": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -10798,8 +10798,8 @@
|
||||||
"soybean oil": {
|
"soybean oil": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "soybean oil",
|
"name": "שמן פולי סויה",
|
||||||
"plural_name": "soybean oils"
|
"plural_name": "שמני פולי סויה"
|
||||||
},
|
},
|
||||||
"butter-flavored cooking spray": {
|
"butter-flavored cooking spray": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -11258,8 +11258,8 @@
|
||||||
"spicy mayo": {
|
"spicy mayo": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "spicy mayo",
|
"name": "מיונז חריף",
|
||||||
"plural_name": "spicy mayoes"
|
"plural_name": "מיונז חריף"
|
||||||
},
|
},
|
||||||
"poppyseed dressing": {
|
"poppyseed dressing": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -11330,8 +11330,8 @@
|
||||||
"garlic mayonnaise": {
|
"garlic mayonnaise": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "garlic mayonnaise",
|
"name": "מיונז שום",
|
||||||
"plural_name": "garlic mayonnaises"
|
"plural_name": "מיונז שום"
|
||||||
},
|
},
|
||||||
"brown rice vinegar": {
|
"brown rice vinegar": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -11664,14 +11664,14 @@
|
||||||
"wasabi": {
|
"wasabi": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "wasabi",
|
"name": "ווסאבי",
|
||||||
"plural_name": "wasabis"
|
"plural_name": "ווסאבי"
|
||||||
},
|
},
|
||||||
"honey mustard": {
|
"honey mustard": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "honey mustard",
|
"name": "חרדל דבש",
|
||||||
"plural_name": "honey mustards"
|
"plural_name": "חרדל דבש"
|
||||||
},
|
},
|
||||||
"mango chutney": {
|
"mango chutney": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -12060,8 +12060,8 @@
|
||||||
"banana ketchup": {
|
"banana ketchup": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "banana ketchup",
|
"name": "קטשופ בננה",
|
||||||
"plural_name": "banana ketchups"
|
"plural_name": "קטשופ בננות"
|
||||||
},
|
},
|
||||||
"chili puree": {
|
"chili puree": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -12154,8 +12154,8 @@
|
||||||
"pickle": {
|
"pickle": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "pickle",
|
"name": "מלפפון חמוץ",
|
||||||
"plural_name": "pickles"
|
"plural_name": "מלפפונים חמוצים"
|
||||||
},
|
},
|
||||||
"canned pineapple": {
|
"canned pineapple": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -12172,8 +12172,8 @@
|
||||||
"canned anchovy": {
|
"canned anchovy": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "canned anchovy",
|
"name": "אנשובי משומר",
|
||||||
"plural_name": "canned anchovies"
|
"plural_name": "אנשובי משומר"
|
||||||
},
|
},
|
||||||
"roasted red pepper": {
|
"roasted red pepper": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -12190,14 +12190,14 @@
|
||||||
"canned artichoke": {
|
"canned artichoke": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "canned artichoke",
|
"name": "ארטישוק משומר",
|
||||||
"plural_name": "canned artichokes"
|
"plural_name": "ארטישוקים משומרים"
|
||||||
},
|
},
|
||||||
"canned corn": {
|
"canned corn": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "canned corn",
|
"name": "גרעיני תירס",
|
||||||
"plural_name": "canned corns"
|
"plural_name": "גרעיני תירס"
|
||||||
},
|
},
|
||||||
"canned kidney bean": {
|
"canned kidney bean": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
|
|
@ -547,8 +547,8 @@
|
||||||
"microgreen": {
|
"microgreen": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "microgreen",
|
"name": "mikrozöld",
|
||||||
"plural_name": "microgreens"
|
"plural_name": "mikrozöldek"
|
||||||
},
|
},
|
||||||
"boston lettuce": {
|
"boston lettuce": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -767,8 +767,8 @@
|
||||||
"apricot": {
|
"apricot": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "apricot",
|
"name": "sárgabarack",
|
||||||
"plural_name": "apricots"
|
"plural_name": "sárgabarackok"
|
||||||
},
|
},
|
||||||
"currant": {
|
"currant": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -780,7 +780,7 @@
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "mandarin",
|
"name": "mandarin",
|
||||||
"plural_name": "mandarins"
|
"plural_name": "mandarinok"
|
||||||
},
|
},
|
||||||
"prune": {
|
"prune": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -803,14 +803,14 @@
|
||||||
"passion fruit": {
|
"passion fruit": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "passion fruit",
|
"name": "maracuja",
|
||||||
"plural_name": "passion fruits"
|
"plural_name": ""
|
||||||
},
|
},
|
||||||
"papaya": {
|
"papaya": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "papaya",
|
"name": "papaja",
|
||||||
"plural_name": "papayas"
|
"plural_name": "papaják"
|
||||||
},
|
},
|
||||||
"tamarind": {
|
"tamarind": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
|
|
@ -2081,8 +2081,8 @@
|
||||||
"swiss cheese": {
|
"swiss cheese": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "swiss cheese",
|
"name": "zwitserse kaas",
|
||||||
"plural_name": "swiss cheeses"
|
"plural_name": "zwitserse kazen"
|
||||||
},
|
},
|
||||||
"pecorino": {
|
"pecorino": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -2631,7 +2631,7 @@
|
||||||
"heavy cream": {
|
"heavy cream": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "heavy cream",
|
"name": "volle room",
|
||||||
"plural_name": "heavy creams"
|
"plural_name": "heavy creams"
|
||||||
},
|
},
|
||||||
"sour cream": {
|
"sour cream": {
|
||||||
|
|
|
@ -648,19 +648,19 @@
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "eple",
|
"name": "eple",
|
||||||
"plural_name": "apples"
|
"plural_name": "epler"
|
||||||
},
|
},
|
||||||
"banana": {
|
"banana": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "banan",
|
"name": "banan",
|
||||||
"plural_name": "bananas"
|
"plural_name": "bananer"
|
||||||
},
|
},
|
||||||
"orange": {
|
"orange": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "appelsin",
|
"name": "appelsin",
|
||||||
"plural_name": "oranges"
|
"plural_name": "appelsiner"
|
||||||
},
|
},
|
||||||
"raisin": {
|
"raisin": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -678,13 +678,13 @@
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "mango",
|
"name": "mango",
|
||||||
"plural_name": "mangoes"
|
"plural_name": "mango"
|
||||||
},
|
},
|
||||||
"peach": {
|
"peach": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "fersken",
|
"name": "fersken",
|
||||||
"plural_name": "peaches"
|
"plural_name": "fersken"
|
||||||
},
|
},
|
||||||
"date": {
|
"date": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -702,7 +702,7 @@
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "craisin",
|
"name": "craisin",
|
||||||
"plural_name": "craisins"
|
"plural_name": "tranebær"
|
||||||
},
|
},
|
||||||
"pear": {
|
"pear": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -732,30 +732,30 @@
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "rabarbra",
|
"name": "rabarbra",
|
||||||
"plural_name": "rhubarbs"
|
"plural_name": "rabarbra"
|
||||||
},
|
},
|
||||||
"dried apricot": {
|
"dried apricot": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "dried apricot",
|
"name": "tørket aprikos",
|
||||||
"plural_name": "dried apricots"
|
"plural_name": "tørket aprikos"
|
||||||
},
|
},
|
||||||
"kiwi": {
|
"kiwi": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "kiwi",
|
"name": "kiwi",
|
||||||
"plural_name": "kiwis"
|
"plural_name": "kiwi"
|
||||||
},
|
},
|
||||||
"grapefruit": {
|
"grapefruit": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "grapefruit",
|
"name": "grapefruit",
|
||||||
"plural_name": "grapefruits"
|
"plural_name": "grapefrukt"
|
||||||
},
|
},
|
||||||
"plum": {
|
"plum": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "plum",
|
"name": "plomme",
|
||||||
"plural_name": "plums"
|
"plural_name": "plums"
|
||||||
},
|
},
|
||||||
"fig": {
|
"fig": {
|
||||||
|
@ -780,7 +780,7 @@
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "mandarin",
|
"name": "mandarin",
|
||||||
"plural_name": "mandarins"
|
"plural_name": "mandariner"
|
||||||
},
|
},
|
||||||
"prune": {
|
"prune": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "czosnek",
|
"name": "czosnek",
|
||||||
"plural_name": "garlics"
|
"plural_name": "czosnek"
|
||||||
},
|
},
|
||||||
"onion": {
|
"onion": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -17,7 +17,7 @@
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "papryka słodka",
|
"name": "papryka słodka",
|
||||||
"plural_name": "bell peppers"
|
"plural_name": "słodka papryka"
|
||||||
},
|
},
|
||||||
"carrot": {
|
"carrot": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -28,14 +28,14 @@
|
||||||
"scallion": {
|
"scallion": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "scallion",
|
"name": "Cebula dymka",
|
||||||
"plural_name": "scallions"
|
"plural_name": "Cebule dymki"
|
||||||
},
|
},
|
||||||
"zucchini": {
|
"zucchini": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "cukinia",
|
"name": "cukinia",
|
||||||
"plural_name": "zucchinis"
|
"plural_name": "Cukinie"
|
||||||
},
|
},
|
||||||
"potato": {
|
"potato": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -52,38 +52,38 @@
|
||||||
"yellow onion": {
|
"yellow onion": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "yellow onion",
|
"name": "żółta cebula",
|
||||||
"plural_name": "yellow onions"
|
"plural_name": "żółte cebule"
|
||||||
},
|
},
|
||||||
"celery": {
|
"celery": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "celery",
|
"name": "seler naciowy",
|
||||||
"plural_name": "celeries"
|
"plural_name": "selery naciowe"
|
||||||
},
|
},
|
||||||
"jalapeno": {
|
"jalapeno": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "jalapeno",
|
"name": "papryka jalapenio",
|
||||||
"plural_name": "jalapenoes"
|
"plural_name": "papryki jalapenio"
|
||||||
},
|
},
|
||||||
"avocado": {
|
"avocado": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "awokado",
|
"name": "awokado",
|
||||||
"plural_name": "avocados"
|
"plural_name": "awokado"
|
||||||
},
|
},
|
||||||
"shallot": {
|
"shallot": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "szalotka",
|
"name": "szalotka",
|
||||||
"plural_name": "shallots"
|
"plural_name": "szalotki"
|
||||||
},
|
},
|
||||||
"cherry tomato": {
|
"cherry tomato": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "cherry tomato",
|
"name": "pomidor koktajlowy",
|
||||||
"plural_name": "cherry tomatoes"
|
"plural_name": "pomidory koktajlowe"
|
||||||
},
|
},
|
||||||
"cucumber": {
|
"cucumber": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -100,28 +100,28 @@
|
||||||
"sweet corn": {
|
"sweet corn": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "sweet corn",
|
"name": "kukurydza cukrowa",
|
||||||
"plural_name": "sweet corns"
|
"plural_name": "kukurydze cukrowe"
|
||||||
},
|
},
|
||||||
"chile pepper": {
|
"chile pepper": {
|
||||||
"aliases": [
|
"aliases": [
|
||||||
"capsicum"
|
"papryka ostra"
|
||||||
],
|
],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "chile pepper",
|
"name": "papryczka chili",
|
||||||
"plural_name": "chile peppers"
|
"plural_name": "papryczki chili"
|
||||||
},
|
},
|
||||||
"sweet potato": {
|
"sweet potato": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "sweet potato",
|
"name": "batat",
|
||||||
"plural_name": "sweet potatoes"
|
"plural_name": "bataty"
|
||||||
},
|
},
|
||||||
"broccoli": {
|
"broccoli": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "broccoli",
|
"name": "brokół",
|
||||||
"plural_name": "broccolis"
|
"plural_name": "brokóły"
|
||||||
},
|
},
|
||||||
"heart of palm": {
|
"heart of palm": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -138,56 +138,56 @@
|
||||||
"pumpkin": {
|
"pumpkin": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "pumpkin",
|
"name": "dynia",
|
||||||
"plural_name": "pumpkins"
|
"plural_name": "dynie"
|
||||||
},
|
},
|
||||||
"cauliflower": {
|
"cauliflower": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "cauliflower",
|
"name": "kalafior",
|
||||||
"plural_name": "cauliflowers"
|
"plural_name": "kalafiory"
|
||||||
},
|
},
|
||||||
"cabbage": {
|
"cabbage": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "cabbage",
|
"name": "kapusta",
|
||||||
"plural_name": "cabbages"
|
"plural_name": "kapusty"
|
||||||
},
|
},
|
||||||
"asparagu": {
|
"asparagu": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "asparagu",
|
"name": "szparag",
|
||||||
"plural_name": "asparagus"
|
"plural_name": "szparagi"
|
||||||
},
|
},
|
||||||
"kale": {
|
"kale": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "kale",
|
"name": "jarmuż",
|
||||||
"plural_name": "kales"
|
"plural_name": "jarmuże"
|
||||||
},
|
},
|
||||||
"arugula": {
|
"arugula": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "arugula",
|
"name": "rukola",
|
||||||
"plural_name": "arugulas"
|
"plural_name": "rukole"
|
||||||
},
|
},
|
||||||
"leek": {
|
"leek": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "leek",
|
"name": "por",
|
||||||
"plural_name": "leeks"
|
"plural_name": "pory"
|
||||||
},
|
},
|
||||||
"eggplant": {
|
"eggplant": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "eggplant",
|
"name": "bakłażan",
|
||||||
"plural_name": "eggplants"
|
"plural_name": "bakłażany"
|
||||||
},
|
},
|
||||||
"lettuce": {
|
"lettuce": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "lettuce",
|
"name": "sałata",
|
||||||
"plural_name": "lettuces"
|
"plural_name": "sałaty"
|
||||||
},
|
},
|
||||||
"butternut squash": {
|
"butternut squash": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -204,8 +204,8 @@
|
||||||
"beetroot": {
|
"beetroot": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "beetroot",
|
"name": "burak",
|
||||||
"plural_name": "beetroots"
|
"plural_name": "buraki"
|
||||||
},
|
},
|
||||||
"brussels sprout": {
|
"brussels sprout": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -228,20 +228,20 @@
|
||||||
"radish": {
|
"radish": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "radish",
|
"name": "rzodkiewka",
|
||||||
"plural_name": "radishes"
|
"plural_name": "rzodkiewki"
|
||||||
},
|
},
|
||||||
"red cabbage": {
|
"red cabbage": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "red cabbage",
|
"name": "czerwona kapusta",
|
||||||
"plural_name": "red cabbages"
|
"plural_name": "czerwone kapusty"
|
||||||
},
|
},
|
||||||
"artichoke": {
|
"artichoke": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "artichoke",
|
"name": "karczoch",
|
||||||
"plural_name": "artichokes"
|
"plural_name": "karczochy"
|
||||||
},
|
},
|
||||||
"new potato": {
|
"new potato": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -261,14 +261,14 @@
|
||||||
"mixed green": {
|
"mixed green": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "mixed green",
|
"name": "mieszanka zieleniny",
|
||||||
"plural_name": "mixed greens"
|
"plural_name": "mieszanka zielenin"
|
||||||
},
|
},
|
||||||
"parsnip": {
|
"parsnip": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "parsnip",
|
"name": "pasternak",
|
||||||
"plural_name": "parsnips"
|
"plural_name": "pasternaki"
|
||||||
},
|
},
|
||||||
"baby carrot": {
|
"baby carrot": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -279,8 +279,8 @@
|
||||||
"mixed vegetable": {
|
"mixed vegetable": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "mixed vegetable",
|
"name": "mieszanka warzywna",
|
||||||
"plural_name": "mixed vegetables"
|
"plural_name": "mieszanki warzywne"
|
||||||
},
|
},
|
||||||
"poblano pepper": {
|
"poblano pepper": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -321,8 +321,8 @@
|
||||||
"iceberg": {
|
"iceberg": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "iceberg",
|
"name": "sałata lodowa",
|
||||||
"plural_name": "icebergs"
|
"plural_name": "sałaty lodowe"
|
||||||
},
|
},
|
||||||
"mashed potato": {
|
"mashed potato": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -333,14 +333,14 @@
|
||||||
"horseradish": {
|
"horseradish": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "horseradish",
|
"name": "chrzan",
|
||||||
"plural_name": "horseradishes"
|
"plural_name": "chrzany"
|
||||||
},
|
},
|
||||||
"chard": {
|
"chard": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "chard",
|
"name": "botwina",
|
||||||
"plural_name": "chards"
|
"plural_name": "botwiny"
|
||||||
},
|
},
|
||||||
"pimiento": {
|
"pimiento": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -377,8 +377,8 @@
|
||||||
"celeriac": {
|
"celeriac": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "celeriac",
|
"name": "seler korzeniowy",
|
||||||
"plural_name": "celeriacs"
|
"plural_name": "selery korzeniowe"
|
||||||
},
|
},
|
||||||
"water chestnut": {
|
"water chestnut": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -419,8 +419,8 @@
|
||||||
"corn cob": {
|
"corn cob": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "corn cob",
|
"name": "kolba kukurydzy",
|
||||||
"plural_name": "corn cobs"
|
"plural_name": "kolby kukurydzy"
|
||||||
},
|
},
|
||||||
"radicchio": {
|
"radicchio": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -559,8 +559,8 @@
|
||||||
"kohlrabi": {
|
"kohlrabi": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "kohlrabi",
|
"name": "kalarepa",
|
||||||
"plural_name": "kohlrabis"
|
"plural_name": "kalarepy"
|
||||||
},
|
},
|
||||||
"fresno chile": {
|
"fresno chile": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -628,75 +628,75 @@
|
||||||
"foods": {
|
"foods": {
|
||||||
"tomato": {
|
"tomato": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "Yes they are a fruit",
|
"description": "Tak, to są owoce",
|
||||||
"name": "tomato",
|
"name": "pomidor",
|
||||||
"plural_name": "tomatoes"
|
"plural_name": "pomidory"
|
||||||
},
|
},
|
||||||
"lemon": {
|
"lemon": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "lemon",
|
"name": "cytryna",
|
||||||
"plural_name": "lemons"
|
"plural_name": "cytryny"
|
||||||
},
|
},
|
||||||
"lime": {
|
"lime": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "lime",
|
"name": "limonka",
|
||||||
"plural_name": "limes"
|
"plural_name": "limonki"
|
||||||
},
|
},
|
||||||
"apple": {
|
"apple": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "apple",
|
"name": "jabłko",
|
||||||
"plural_name": "apples"
|
"plural_name": "jabłka"
|
||||||
},
|
},
|
||||||
"banana": {
|
"banana": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "banana",
|
"name": "banan",
|
||||||
"plural_name": "bananas"
|
"plural_name": "banany"
|
||||||
},
|
},
|
||||||
"orange": {
|
"orange": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "orange",
|
"name": "pomarańcza",
|
||||||
"plural_name": "oranges"
|
"plural_name": "pomarańcze"
|
||||||
},
|
},
|
||||||
"raisin": {
|
"raisin": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "raisin",
|
"name": "rodzynka",
|
||||||
"plural_name": "raisins"
|
"plural_name": "rodzynki"
|
||||||
},
|
},
|
||||||
"pineapple": {
|
"pineapple": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "pineapple",
|
"name": "ananas",
|
||||||
"plural_name": "pineapples"
|
"plural_name": "ananasy"
|
||||||
},
|
},
|
||||||
"mango": {
|
"mango": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "mango",
|
"name": "mango",
|
||||||
"plural_name": "mangoes"
|
"plural_name": "mango"
|
||||||
},
|
},
|
||||||
"peach": {
|
"peach": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "peach",
|
"name": "brzoskwinia",
|
||||||
"plural_name": "peaches"
|
"plural_name": "brzoskwinie"
|
||||||
},
|
},
|
||||||
"date": {
|
"date": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "date",
|
"name": "data",
|
||||||
"plural_name": "dates"
|
"plural_name": "daty"
|
||||||
},
|
},
|
||||||
"coconut": {
|
"coconut": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "coconut",
|
"name": "kokos",
|
||||||
"plural_name": "coconuts"
|
"plural_name": "kokosy"
|
||||||
},
|
},
|
||||||
"craisin": {
|
"craisin": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -707,74 +707,74 @@
|
||||||
"pear": {
|
"pear": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "pear",
|
"name": "gruszka",
|
||||||
"plural_name": "pears"
|
"plural_name": "gruszki"
|
||||||
},
|
},
|
||||||
"grape": {
|
"grape": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "grape",
|
"name": "winogron",
|
||||||
"plural_name": "grapes"
|
"plural_name": "winogrona"
|
||||||
},
|
},
|
||||||
"pomegranate": {
|
"pomegranate": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "pomegranate",
|
"name": "granat",
|
||||||
"plural_name": "pomegranates"
|
"plural_name": "granaty"
|
||||||
},
|
},
|
||||||
"watermelon": {
|
"watermelon": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "watermelon",
|
"name": "arbuz",
|
||||||
"plural_name": "watermelons"
|
"plural_name": "arbuzy"
|
||||||
},
|
},
|
||||||
"rhubarb": {
|
"rhubarb": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "rhubarb",
|
"name": "rabarbar",
|
||||||
"plural_name": "rhubarbs"
|
"plural_name": "rabarbary"
|
||||||
},
|
},
|
||||||
"dried apricot": {
|
"dried apricot": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "dried apricot",
|
"name": "suszona morela",
|
||||||
"plural_name": "dried apricots"
|
"plural_name": "suszone morele"
|
||||||
},
|
},
|
||||||
"kiwi": {
|
"kiwi": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "kiwi",
|
"name": "kiwi",
|
||||||
"plural_name": "kiwis"
|
"plural_name": "kiwi"
|
||||||
},
|
},
|
||||||
"grapefruit": {
|
"grapefruit": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "grapefruit",
|
"name": "grejpfrut",
|
||||||
"plural_name": "grapefruits"
|
"plural_name": "grejpfruty"
|
||||||
},
|
},
|
||||||
"plum": {
|
"plum": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "plum",
|
"name": "śliwka",
|
||||||
"plural_name": "plums"
|
"plural_name": "śliwki"
|
||||||
},
|
},
|
||||||
"fig": {
|
"fig": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "fig",
|
"name": "figa",
|
||||||
"plural_name": "figs"
|
"plural_name": "figi"
|
||||||
},
|
},
|
||||||
"apricot": {
|
"apricot": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "apricot",
|
"name": "morela",
|
||||||
"plural_name": "apricots"
|
"plural_name": "morele"
|
||||||
},
|
},
|
||||||
"currant": {
|
"currant": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "currant",
|
"name": "porzeczka",
|
||||||
"plural_name": "currants"
|
"plural_name": "porzeczki"
|
||||||
},
|
},
|
||||||
"mandarin": {
|
"mandarin": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -803,14 +803,14 @@
|
||||||
"passion fruit": {
|
"passion fruit": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "passion fruit",
|
"name": "marakuja",
|
||||||
"plural_name": "passion fruits"
|
"plural_name": "marakuje"
|
||||||
},
|
},
|
||||||
"papaya": {
|
"papaya": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "papaya",
|
"name": "papaja",
|
||||||
"plural_name": "papayas"
|
"plural_name": "papaje"
|
||||||
},
|
},
|
||||||
"tamarind": {
|
"tamarind": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -821,14 +821,14 @@
|
||||||
"nectarine": {
|
"nectarine": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "nectarine",
|
"name": "nektarynka",
|
||||||
"plural_name": "nectarines"
|
"plural_name": "nektarynki"
|
||||||
},
|
},
|
||||||
"dried fig": {
|
"dried fig": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "dried fig",
|
"name": "suszona figa",
|
||||||
"plural_name": "dried figs"
|
"plural_name": "suszone figi"
|
||||||
},
|
},
|
||||||
"chestnut": {
|
"chestnut": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -870,7 +870,7 @@
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "melon",
|
"name": "melon",
|
||||||
"plural_name": "melons"
|
"plural_name": "melony"
|
||||||
},
|
},
|
||||||
"tangerine": {
|
"tangerine": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "alho",
|
"name": "alho",
|
||||||
"plural_name": "garlics"
|
"plural_name": "alhos"
|
||||||
},
|
},
|
||||||
"onion": {
|
"onion": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -28,94 +28,94 @@
|
||||||
"scallion": {
|
"scallion": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "scallion",
|
"name": "cebolinho",
|
||||||
"plural_name": "scallions"
|
"plural_name": "cebolinhos"
|
||||||
},
|
},
|
||||||
"zucchini": {
|
"zucchini": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "zucchini",
|
"name": "courgette",
|
||||||
"plural_name": "zucchinis"
|
"plural_name": "courgettes"
|
||||||
},
|
},
|
||||||
"potato": {
|
"potato": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "potato",
|
"name": "batata",
|
||||||
"plural_name": "batatas"
|
"plural_name": "batatas"
|
||||||
},
|
},
|
||||||
"red onion": {
|
"red onion": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "red onion",
|
"name": "cebola roxa",
|
||||||
"plural_name": "red onions"
|
"plural_name": "cebolas roxas"
|
||||||
},
|
},
|
||||||
"yellow onion": {
|
"yellow onion": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "yellow onion",
|
"name": "cebola",
|
||||||
"plural_name": "yellow onions"
|
"plural_name": "cebolas"
|
||||||
},
|
},
|
||||||
"celery": {
|
"celery": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "celery",
|
"name": "aipo",
|
||||||
"plural_name": "celeries"
|
"plural_name": "aipos"
|
||||||
},
|
},
|
||||||
"jalapeno": {
|
"jalapeno": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "jalapeno",
|
"name": "jalapeño",
|
||||||
"plural_name": "jalapenoes"
|
"plural_name": "jalapeños"
|
||||||
},
|
},
|
||||||
"avocado": {
|
"avocado": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "avocado",
|
"name": "abacate",
|
||||||
"plural_name": "avocados"
|
"plural_name": "abacates"
|
||||||
},
|
},
|
||||||
"shallot": {
|
"shallot": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "shallot",
|
"name": "chalota",
|
||||||
"plural_name": "shallots"
|
"plural_name": "chalotas"
|
||||||
},
|
},
|
||||||
"cherry tomato": {
|
"cherry tomato": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "cherry tomato",
|
"name": "tomate cherry",
|
||||||
"plural_name": "cherry tomatoes"
|
"plural_name": "tomates cherry"
|
||||||
},
|
},
|
||||||
"cucumber": {
|
"cucumber": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "cucumber",
|
"name": "pepino",
|
||||||
"plural_name": "cucumbers"
|
"plural_name": "pepinos"
|
||||||
},
|
},
|
||||||
"spinach": {
|
"spinach": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "spinach",
|
"name": "espinafre",
|
||||||
"plural_name": "spinaches"
|
"plural_name": "espinafres"
|
||||||
},
|
},
|
||||||
"sweet corn": {
|
"sweet corn": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "sweet corn",
|
"name": "milho doce",
|
||||||
"plural_name": "sweet corns"
|
"plural_name": "milhos doces"
|
||||||
},
|
},
|
||||||
"chile pepper": {
|
"chile pepper": {
|
||||||
"aliases": [
|
"aliases": [
|
||||||
"capsicum"
|
"pimento"
|
||||||
],
|
],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "chile pepper",
|
"name": "malagueta",
|
||||||
"plural_name": "chile peppers"
|
"plural_name": "malaguetas"
|
||||||
},
|
},
|
||||||
"sweet potato": {
|
"sweet potato": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "sweet potato",
|
"name": "batata doce",
|
||||||
"plural_name": "sweet potatoes"
|
"plural_name": "batatas doces"
|
||||||
},
|
},
|
||||||
"broccoli": {
|
"broccoli": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "болгарский перец",
|
"name": "болгарский перец",
|
||||||
"plural_name": "болгарских перца"
|
"plural_name": "болгарских перцев"
|
||||||
},
|
},
|
||||||
"carrot": {
|
"carrot": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -76,36 +76,36 @@
|
||||||
"shallot": {
|
"shallot": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "шалот",
|
"name": "лук-шалот",
|
||||||
"plural_name": "шалот"
|
"plural_name": "лука-шалот"
|
||||||
},
|
},
|
||||||
"cherry tomato": {
|
"cherry tomato": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "помидор Черри",
|
"name": "помидор черри",
|
||||||
"plural_name": "помидоры Черри"
|
"plural_name": "помидоров черри"
|
||||||
},
|
},
|
||||||
"cucumber": {
|
"cucumber": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "огурец",
|
"name": "огурец",
|
||||||
"plural_name": "огурцы"
|
"plural_name": "огурцов"
|
||||||
},
|
},
|
||||||
"spinach": {
|
"spinach": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "шпинат",
|
"name": "шпинат",
|
||||||
"plural_name": "шпинат"
|
"plural_name": "шпината"
|
||||||
},
|
},
|
||||||
"sweet corn": {
|
"sweet corn": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "сладкая кукуруза",
|
"name": "сладкая кукуруза",
|
||||||
"plural_name": "сладкая кукуруза"
|
"plural_name": "сладкой кукурузы"
|
||||||
},
|
},
|
||||||
"chile pepper": {
|
"chile pepper": {
|
||||||
"aliases": [
|
"aliases": [
|
||||||
"стручковый перец"
|
"стручкового перца"
|
||||||
],
|
],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "перец чили",
|
"name": "перец чили",
|
||||||
|
@ -115,7 +115,7 @@
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "батат",
|
"name": "батат",
|
||||||
"plural_name": "батат"
|
"plural_name": "батата"
|
||||||
},
|
},
|
||||||
"broccoli": {
|
"broccoli": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -133,7 +133,7 @@
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "молодая зелень",
|
"name": "молодая зелень",
|
||||||
"plural_name": "молодая зелень"
|
"plural_name": "молодой зелени"
|
||||||
},
|
},
|
||||||
"pumpkin": {
|
"pumpkin": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -151,55 +151,55 @@
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "капуста",
|
"name": "капуста",
|
||||||
"plural_name": "капуста"
|
"plural_name": "капусты"
|
||||||
},
|
},
|
||||||
"asparagu": {
|
"asparagu": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "спаржа",
|
"name": "спаржа",
|
||||||
"plural_name": "спаржа"
|
"plural_name": "спаржи"
|
||||||
},
|
},
|
||||||
"kale": {
|
"kale": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "кудрявая капуста",
|
"name": "кудрявая капуста",
|
||||||
"plural_name": "кудрявая капуста"
|
"plural_name": "кудрявой капусты"
|
||||||
},
|
},
|
||||||
"arugula": {
|
"arugula": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "руккола",
|
"name": "руккола",
|
||||||
"plural_name": "руккола"
|
"plural_name": "рукколы"
|
||||||
},
|
},
|
||||||
"leek": {
|
"leek": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "лук-порей",
|
"name": "лук-порей",
|
||||||
"plural_name": "лук-порей"
|
"plural_name": "лука-порей"
|
||||||
},
|
},
|
||||||
"eggplant": {
|
"eggplant": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "баклажан",
|
"name": "баклажан",
|
||||||
"plural_name": "баклажаны"
|
"plural_name": "баклажана"
|
||||||
},
|
},
|
||||||
"lettuce": {
|
"lettuce": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "салат - латук",
|
"name": "салат - латук",
|
||||||
"plural_name": "салат - латук"
|
"plural_name": "салата - латук"
|
||||||
},
|
},
|
||||||
"butternut squash": {
|
"butternut squash": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "мускатная тыква",
|
"name": "мускатная тыква",
|
||||||
"plural_name": "мускатная тыква"
|
"plural_name": "мускатной тыквы"
|
||||||
},
|
},
|
||||||
"romaine": {
|
"romaine": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "римский салат",
|
"name": "римский салат",
|
||||||
"plural_name": "римский салат"
|
"plural_name": "римского салата"
|
||||||
},
|
},
|
||||||
"beetroot": {
|
"beetroot": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -211,47 +211,47 @@
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "брюссельская капуста",
|
"name": "брюссельская капуста",
|
||||||
"plural_name": "брюссельская капуста"
|
"plural_name": "брюссельской капусты"
|
||||||
},
|
},
|
||||||
"fennel": {
|
"fennel": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "фенхель",
|
"name": "фенхель",
|
||||||
"plural_name": "фенхель"
|
"plural_name": "фенхеля"
|
||||||
},
|
},
|
||||||
"sun dried tomato": {
|
"sun dried tomato": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "вяленый помидор",
|
"name": "вяленый помидор",
|
||||||
"plural_name": "вяленые помидоры"
|
"plural_name": "вяленых помидор"
|
||||||
},
|
},
|
||||||
"radish": {
|
"radish": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "редис",
|
"name": "редис",
|
||||||
"plural_name": "редис"
|
"plural_name": "редиса"
|
||||||
},
|
},
|
||||||
"red cabbage": {
|
"red cabbage": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "красная капуста",
|
"name": "красная капуста",
|
||||||
"plural_name": "красная капуста"
|
"plural_name": "красной капусты"
|
||||||
},
|
},
|
||||||
"artichoke": {
|
"artichoke": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "артишок",
|
"name": "артишок",
|
||||||
"plural_name": "артишоки"
|
"plural_name": "артишока"
|
||||||
},
|
},
|
||||||
"new potato": {
|
"new potato": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "молодой картофель",
|
"name": "молодой картофель",
|
||||||
"plural_name": "молодой картофель"
|
"plural_name": "молодого картофеля"
|
||||||
},
|
},
|
||||||
"summer squash": {
|
"summer squash": {
|
||||||
"aliases": [
|
"aliases": [
|
||||||
"кабачок",
|
"кабачка",
|
||||||
"гем-сквош"
|
"гем-сквош"
|
||||||
],
|
],
|
||||||
"description": "",
|
"description": "",
|
||||||
|
@ -629,68 +629,68 @@
|
||||||
"tomato": {
|
"tomato": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "Yes they are a fruit",
|
"description": "Yes they are a fruit",
|
||||||
"name": "tomato",
|
"name": "помидор",
|
||||||
"plural_name": "tomatoes"
|
"plural_name": "помидоров"
|
||||||
},
|
},
|
||||||
"lemon": {
|
"lemon": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "lemon",
|
"name": "лимон",
|
||||||
"plural_name": "lemons"
|
"plural_name": "лимонов"
|
||||||
},
|
},
|
||||||
"lime": {
|
"lime": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "lime",
|
"name": "лайм",
|
||||||
"plural_name": "limes"
|
"plural_name": "лаймов"
|
||||||
},
|
},
|
||||||
"apple": {
|
"apple": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "apple",
|
"name": "яблоко",
|
||||||
"plural_name": "apples"
|
"plural_name": "яблок"
|
||||||
},
|
},
|
||||||
"banana": {
|
"banana": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "banana",
|
"name": "банан",
|
||||||
"plural_name": "bananas"
|
"plural_name": "бананов"
|
||||||
},
|
},
|
||||||
"orange": {
|
"orange": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "orange",
|
"name": "апельсин",
|
||||||
"plural_name": "oranges"
|
"plural_name": "апельсинов"
|
||||||
},
|
},
|
||||||
"raisin": {
|
"raisin": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "raisin",
|
"name": "изюм",
|
||||||
"plural_name": "raisins"
|
"plural_name": "изюма"
|
||||||
},
|
},
|
||||||
"pineapple": {
|
"pineapple": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "pineapple",
|
"name": "ананас",
|
||||||
"plural_name": "pineapples"
|
"plural_name": "ананасов"
|
||||||
},
|
},
|
||||||
"mango": {
|
"mango": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "mango",
|
"name": "манго",
|
||||||
"plural_name": "mangoes"
|
"plural_name": "манго"
|
||||||
},
|
},
|
||||||
"peach": {
|
"peach": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "peach",
|
"name": "персик",
|
||||||
"plural_name": "peaches"
|
"plural_name": "персиков"
|
||||||
},
|
},
|
||||||
"date": {
|
"date": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "date",
|
"name": "финик",
|
||||||
"plural_name": "dates"
|
"plural_name": "фиников"
|
||||||
},
|
},
|
||||||
"coconut": {
|
"coconut": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -713,14 +713,14 @@
|
||||||
"grape": {
|
"grape": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "grape",
|
"name": "виноград",
|
||||||
"plural_name": "grapes"
|
"plural_name": "винограда"
|
||||||
},
|
},
|
||||||
"pomegranate": {
|
"pomegranate": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "pomegranate",
|
"name": "гранат",
|
||||||
"plural_name": "pomegranates"
|
"plural_name": "граната"
|
||||||
},
|
},
|
||||||
"watermelon": {
|
"watermelon": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -743,8 +743,8 @@
|
||||||
"kiwi": {
|
"kiwi": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "kiwi",
|
"name": "киви",
|
||||||
"plural_name": "kiwis"
|
"plural_name": "киви"
|
||||||
},
|
},
|
||||||
"grapefruit": {
|
"grapefruit": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -911,14 +911,14 @@
|
||||||
"kumquat": {
|
"kumquat": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "kumquat",
|
"name": "кумкват",
|
||||||
"plural_name": "kumquats"
|
"plural_name": "кумкватов"
|
||||||
},
|
},
|
||||||
"jackfruit": {
|
"jackfruit": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "jackfruit",
|
"name": "джекфрут",
|
||||||
"plural_name": "jackfruits"
|
"plural_name": "джекфрутов"
|
||||||
},
|
},
|
||||||
"dragon fruit": {
|
"dragon fruit": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
|
|
@ -11659,7 +11659,7 @@
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "gochujang",
|
"name": "gochujang",
|
||||||
"plural_name": "gochujangs"
|
"plural_name": "gochujang"
|
||||||
},
|
},
|
||||||
"wasabi": {
|
"wasabi": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -11742,8 +11742,8 @@
|
||||||
"tartar sauce": {
|
"tartar sauce": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "tartar sauce",
|
"name": "tartarsås",
|
||||||
"plural_name": "tartar sauces"
|
"plural_name": "tartarsåser"
|
||||||
},
|
},
|
||||||
"hot pepper jelly": {
|
"hot pepper jelly": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -12060,8 +12060,8 @@
|
||||||
"banana ketchup": {
|
"banana ketchup": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "banana ketchup",
|
"name": "bananketchup",
|
||||||
"plural_name": "banana ketchups"
|
"plural_name": "bananketchuper"
|
||||||
},
|
},
|
||||||
"chili puree": {
|
"chili puree": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -12723,7 +12723,7 @@
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "salsa",
|
"name": "salsa",
|
||||||
"plural_name": "salsas"
|
"plural_name": "salsa"
|
||||||
},
|
},
|
||||||
"tahini": {
|
"tahini": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
@ -12797,7 +12797,7 @@
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
"description": "",
|
"description": "",
|
||||||
"name": "salsa verde",
|
"name": "salsa verde",
|
||||||
"plural_name": "salsa verdes"
|
"plural_name": "salsa verde"
|
||||||
},
|
},
|
||||||
"alfredo sauce": {
|
"alfredo sauce": {
|
||||||
"aliases": [],
|
"aliases": [],
|
||||||
|
|
|
@ -1,31 +1,31 @@
|
||||||
{
|
{
|
||||||
"teaspoon": {
|
"teaspoon": {
|
||||||
"name": "teelepel",
|
"name": "teelepel",
|
||||||
"plural_name": "teaspoons",
|
"plural_name": "teelepel",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "tl"
|
"abbreviation": "tl"
|
||||||
},
|
},
|
||||||
"tablespoon": {
|
"tablespoon": {
|
||||||
"name": "eetlepel",
|
"name": "eetlepel",
|
||||||
"plural_name": "tablespoons",
|
"plural_name": "eetlepel",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "el"
|
"abbreviation": "el"
|
||||||
},
|
},
|
||||||
"cup": {
|
"cup": {
|
||||||
"name": "koppie",
|
"name": "koppie",
|
||||||
"plural_name": "cups",
|
"plural_name": "koppie",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "c"
|
"abbreviation": "c"
|
||||||
},
|
},
|
||||||
"fluid-ounce": {
|
"fluid-ounce": {
|
||||||
"name": "vloeistofons",
|
"name": "vloeistofons",
|
||||||
"plural_name": "fluid ounces",
|
"plural_name": "vloeistofons",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "fl oz"
|
"abbreviation": "fl oz"
|
||||||
},
|
},
|
||||||
"pint": {
|
"pint": {
|
||||||
"name": "pint",
|
"name": "pint",
|
||||||
"plural_name": "pints",
|
"plural_name": "pint",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "pt"
|
"abbreviation": "pt"
|
||||||
},
|
},
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue