Merge branch 'mealie-next' into mealie-next

This commit is contained in:
Jack Bailey 2023-11-23 10:47:25 +00:00 committed by GitHub
commit 8a2d640922
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
87 changed files with 3072 additions and 930 deletions

View File

@ -12,7 +12,7 @@ body:
Please confirm and check all the following prior to submission. If you do not do this, your Please confirm and check all the following prior to submission. If you do not do this, your
issue may be closed. issue may be closed.
options: options:
- label: This is not a feature request - label: This is not a feature request.
required: true required: true
- label: I added a very descriptive title to this issue. - label: I added a very descriptive title to this issue.
required: true required: true
@ -22,7 +22,7 @@ body:
required: true required: true
- label: I already read the docs and didn't find an answer. - label: I already read the docs and didn't find an answer.
required: true required: true
- label: This issue can be replicated on the demo site (https://demo.mealie.io/) - label: This issue can be replicated on the demo site (https://demo.mealie.io/).
required: false required: false
- type: textarea - type: textarea
id: description id: description
@ -41,13 +41,15 @@ body:
- type: textarea - type: textarea
id: logs id: logs
attributes: attributes:
label: Please provide relevent logs label: Please provide relevant logs
placeholder: For example from `docker-compose logs` or other system logs.
validations: validations:
required: true required: true
- type: textarea - type: textarea
id: version id: version
attributes: attributes:
label: Mealie Version label: Mealie Version
placeholder: Docker image, as well as 'Build' tag from https://yourmealieurl/admin/site-settings, if UI is working
- type: dropdown - type: dropdown
id: os id: os
attributes: attributes:

View File

@ -1,4 +1,4 @@
contact_links: contact_links:
- name: Feature Requests - name: Feature Requests
url: https://github.com/hay-kot/mealie/discussions/new?category=feature-request url: https://github.com/mealie-recipes/mealie/discussions/new?category=feature-request
about: Please add any Feature Requests as a Github Discussion using the for in this issue. about: Please add any Feature Requests as a Github Discussion using the form in this issue.

View File

@ -46,3 +46,6 @@ jobs:
tags: ghcr.io/${{ github.repository }}:${{ inputs.tag }} tags: ghcr.io/${{ github.repository }}:${{ inputs.tag }}
build-args: | build-args: |
COMMIT=${{ github.sha }} COMMIT=${{ github.sha }}
# https://docs.docker.com/build/ci/github-actions/cache/#github-cache
cache-from: type=gha
cache-to: type=gha,mode=max

View File

@ -1,3 +1,3 @@
# Maintainers Guide # Maintainers Guide
See -> ./docs/docs/contributors/developers-guide/maintainers.md See -> [/docs/docs/contributors/developers-guide/maintainers.md](/docs/docs/contributors/developers-guide/maintainers.md)

View File

@ -23,9 +23,9 @@ First, click the [link](https://www.icloud.com/shortcuts/cc568d1615bc4f998789f85
![screenshot](../../assets/img/sc1half.png) ![screenshot](../../assets/img/sc1half.png)
Next, you need to replace `url` and `port` with the information for your mealie instance. Next, you need to replace `url` and `port` with the information for your Mealie instance.
If you have a TLD that you use, put that here with no port. If you just run local, Then, you need to put in your mealie instance IP and the port of `9926`. If you have a domain that you use (e.g. `https://mealie.example.com`), put that here. If you just run local, then you need to put in your Mealie instance IP and the port you use (e.g. the default is `9925`).
![screenshot](../../assets/img/sc2half.png) ![screenshot](../../assets/img/sc2half.png)
@ -36,4 +36,4 @@ Finally, you need to replace the word `keyhere` with your API token. Keep the wo
![screenshot](../../assets/img/sc3half.png) ![screenshot](../../assets/img/sc3half.png)
You should now be able to share a website to the shortcut and have mealie grab all the necessary information! You should now be able to share a website to the shortcut and have Mealie grab all the necessary information!

View File

@ -4,19 +4,17 @@
### General ### General
| Variables | Default | Description | | Variables | Default | Description |
| ---------------- | :-------------------: | ----------------------------------------------------------------------------------- | | ------------- | :-------------------: | ----------------------------------------------------------------------------------- |
| PUID | 911 | UserID permissions between host OS and container | | PUID | 911 | UserID permissions between host OS and container |
| PGID | 911 | GroupID permissions between host OS and container | | PGID | 911 | GroupID permissions between host OS and container |
| DEFAULT_GROUP | Home | The default group for users | | DEFAULT_GROUP | Home | The default group for users |
| DEFAULT_EMAIL | changeme@example.com | The default username for the superuser | | BASE_URL | http://localhost:8080 | Used for Notifications |
| DEFAULT_PASSWORD | MyPassword | The default password for the superuser | | TOKEN_TIME | 48 | The time in hours that a login/auth token is valid |
| BASE_URL | http://localhost:8080 | Used for Notifications | | API_PORT | 9000 | The port exposed by backend API. **Do not change this if you're running in Docker** |
| TOKEN_TIME | 48 | The time in hours that a login/auth token is valid | | API_DOCS | True | Turns on/off access to the API documentation locally. |
| API_PORT | 9000 | The port exposed by backend API. **Do not change this if you're running in Docker** | | TZ | UTC | Must be set to get correct date/time on the server |
| API_DOCS | True | Turns on/off access to the API documentation locally. | | ALLOW_SIGNUP | true | Allow user sign-up without token |
| TZ | UTC | Must be set to get correct date/time on the server |
| ALLOW_SIGNUP | true | Allow user sign-up without token |
### Security ### Security

View File

@ -1,7 +1,7 @@
# Development Road Map # Development Road Map
## Feature Requests ## Feature Requests
[Please request new features on Github](https://github.com/hay-kot/mealie/issues/317) [Please request new features on Github](https://github.com/mealie-recipes/mealie/discussions/new?category=feature-request)
## Progress ## Progress
See the [Github Projects page](https://github.com/users/hay-kot/projects/2) to see what is currently being worked on See the [Github Projects page](https://github.com/users/hay-kot/projects/2) to see what is currently being worked on

View File

@ -2,6 +2,7 @@
.layout-leave-active { .layout-leave-active {
transition: opacity 0.2s; transition: opacity 0.2s;
} }
.layout-enter, .layout-enter,
.layout-leave-active { .layout-leave-active {
opacity: 0; opacity: 0;
@ -16,15 +17,15 @@
} }
.theme--dark.v-application { .theme--dark.v-application {
background-color: var(--v-background-base, #121212) !important; background-color: var(--v-background-base, #1e1e1e) !important;
} }
.theme--dark.v-navigation-drawer { .theme--dark.v-navigation-drawer {
background-color: var(--v-background-base, #121212) !important; background-color: var(--v-background-base, #1e1e1e) !important;
} }
.theme--dark.v-card { .theme--dark.v-card {
background-color: #2b2b2b !important; background-color: #1e1e1e !important;
} }
.left-border { .left-border {

View File

@ -0,0 +1,145 @@
<template>
<div class="text-center">
<RecipeDialogAddToShoppingList
v-if="shoppingLists"
v-model="shoppingListDialog"
:recipes="recipesWithScales"
:shopping-lists="shoppingLists"
/>
<v-menu
offset-y
left
:bottom="!menuTop"
:nudge-bottom="!menuTop ? '5' : '0'"
:top="menuTop"
:nudge-top="menuTop ? '5' : '0'"
allow-overflow
close-delay="125"
:open-on-hover="$vuetify.breakpoint.mdAndUp"
content-class="d-print-none"
>
<template #activator="{ on, attrs }">
<v-btn :fab="fab" :small="fab" :color="color" :icon="!fab" dark v-bind="attrs" v-on="on" @click.prevent>
<v-icon>{{ icon }}</v-icon>
</v-btn>
</template>
<v-list dense>
<v-list-item v-for="(item, index) in menuItems" :key="index" @click="contextMenuEventHandler(item.event)">
<v-list-item-icon>
<v-icon :color="item.color"> {{ item.icon }} </v-icon>
</v-list-item-icon>
<v-list-item-title>{{ item.title }}</v-list-item-title>
</v-list-item>
</v-list>
</v-menu>
</div>
</template>
<script lang="ts">
import { computed, defineComponent, reactive, ref, toRefs, useContext } from "@nuxtjs/composition-api";
import { Recipe } from "~/lib/api/types/recipe";
import RecipeDialogAddToShoppingList from "~/components/Domain/Recipe/RecipeDialogAddToShoppingList.vue";
import { ShoppingListSummary } from "~/lib/api/types/group";
import { useUserApi } from "~/composables/api";
export interface ContextMenuItem {
title: string;
icon: string;
color: string | undefined;
event: string;
isPublic: boolean;
}
export default defineComponent({
components: {
RecipeDialogAddToShoppingList,
},
props: {
recipes: {
type: Array as () => Recipe[],
default: () => [],
},
menuTop: {
type: Boolean,
default: true,
},
fab: {
type: Boolean,
default: false,
},
color: {
type: String,
default: "primary",
},
menuIcon: {
type: String,
default: null,
},
},
setup(props, context) {
const { $globals, i18n } = useContext();
const api = useUserApi();
const state = reactive({
loading: false,
shoppingListDialog: false,
menuItems: [
{
title: i18n.tc("recipe.add-to-list"),
icon: $globals.icons.cartCheck,
color: undefined,
event: "shoppingList",
isPublic: false,
},
],
});
const icon = props.menuIcon || $globals.icons.dotsVertical;
const shoppingLists = ref<ShoppingListSummary[]>();
const recipesWithScales = computed(() => {
return props.recipes.map((recipe) => {
return {
scale: 1,
...recipe,
};
})
})
async function getShoppingLists() {
const { data } = await api.shopping.lists.getAll();
if (data) {
shoppingLists.value = data.items ?? [];
}
}
const eventHandlers: { [key: string]: () => void | Promise<any> } = {
shoppingList: () => {
getShoppingLists();
state.shoppingListDialog = true;
},
};
function contextMenuEventHandler(eventKey: string) {
const handler = eventHandlers[eventKey];
if (handler && typeof handler === "function") {
handler();
state.loading = false;
return;
}
context.emit(eventKey);
state.loading = false;
}
return {
...toRefs(state),
contextMenuEventHandler,
icon,
recipesWithScales,
shoppingLists,
}
},
})
</script>

View File

@ -69,77 +69,12 @@
></v-select> ></v-select>
</v-card-text> </v-card-text>
</BaseDialog> </BaseDialog>
<BaseDialog v-model="shoppingListDialog" :title="$t('recipe.add-to-list')" :icon="$globals.icons.cartCheck"> <RecipeDialogAddToShoppingList
<v-card-text> v-if="shoppingLists && recipeRefWithScale"
<v-card v-model="shoppingListDialog"
v-for="list in shoppingLists" :recipes="[recipeRefWithScale]"
:key="list.id" :shopping-lists="shoppingLists"
hover />
class="my-2 left-border"
@click="openShoppingListIngredientDialog(list)"
>
<v-card-title class="py-2">
{{ list.name }}
</v-card-title>
</v-card>
</v-card-text>
</BaseDialog>
<BaseDialog
v-model="shoppingListIngredientDialog"
:title="selectedShoppingList ? selectedShoppingList.name : $t('recipe.add-to-list')"
:icon="$globals.icons.cartCheck"
width="70%"
:submit-text="$tc('recipe.add-to-list')"
@submit="addRecipeToList()"
>
<v-card
elevation="0"
height="fit-content"
max-height="60vh"
width="100%"
:class="$vuetify.breakpoint.smAndDown ? '' : 'ingredient-grid'"
:style="$vuetify.breakpoint.smAndDown ? '' : { gridTemplateRows: `repeat(${Math.ceil(recipeIngredients.length / 2)}, min-content)` }"
style="overflow-y: auto"
>
<v-list-item
v-for="(ingredientData, i) in recipeIngredients"
:key="'ingredient' + i"
dense
@click="recipeIngredients[i].checked = !recipeIngredients[i].checked"
>
<v-checkbox
hide-details
:input-value="ingredientData.checked"
class="pt-0 my-auto py-auto"
color="secondary"
/>
<v-list-item-content :key="ingredientData.ingredient.quantity">
<RecipeIngredientListItem
:ingredient="ingredientData.ingredient"
:disable-amount="ingredientData.disableAmount"
:scale="recipeScale" />
</v-list-item-content>
</v-list-item>
</v-card>
<div class="d-flex justify-end mb-4 mt-2">
<BaseButtonGroup
:buttons="[
{
icon: $globals.icons.checkboxBlankOutline,
text: $tc('shopping-list.uncheck-all-items'),
event: 'uncheck',
},
{
icon: $globals.icons.checkboxOutline,
text: $tc('shopping-list.check-all-items'),
event: 'check',
},
]"
@uncheck="bulkCheckIngredients(false)"
@check="bulkCheckIngredients(true)"
/>
</div>
</BaseDialog>
<v-menu <v-menu
offset-y offset-y
left left
@ -171,14 +106,14 @@
<script lang="ts"> <script lang="ts">
import { computed, defineComponent, reactive, toRefs, useContext, useRoute, useRouter, ref } from "@nuxtjs/composition-api"; import { computed, defineComponent, reactive, toRefs, useContext, useRoute, useRouter, ref } from "@nuxtjs/composition-api";
import RecipeIngredientListItem from "./RecipeIngredientListItem.vue"; import RecipeDialogAddToShoppingList from "./RecipeDialogAddToShoppingList.vue";
import RecipeDialogPrintPreferences from "./RecipeDialogPrintPreferences.vue"; import RecipeDialogPrintPreferences from "./RecipeDialogPrintPreferences.vue";
import RecipeDialogShare from "./RecipeDialogShare.vue"; import RecipeDialogShare from "./RecipeDialogShare.vue";
import { useLoggedInState } from "~/composables/use-logged-in-state"; import { useLoggedInState } from "~/composables/use-logged-in-state";
import { useUserApi } from "~/composables/api"; import { useUserApi } from "~/composables/api";
import { alert } from "~/composables/use-toast"; import { alert } from "~/composables/use-toast";
import { usePlanTypeOptions } from "~/composables/use-group-mealplan"; import { usePlanTypeOptions } from "~/composables/use-group-mealplan";
import { Recipe, RecipeIngredient } from "~/lib/api/types/recipe"; import { Recipe } from "~/lib/api/types/recipe";
import { ShoppingListSummary } from "~/lib/api/types/group"; import { ShoppingListSummary } from "~/lib/api/types/group";
import { PlanEntryType } from "~/lib/api/types/meal-plan"; import { PlanEntryType } from "~/lib/api/types/meal-plan";
import { useAxiosDownloader } from "~/composables/api/use-axios-download"; import { useAxiosDownloader } from "~/composables/api/use-axios-download";
@ -204,9 +139,9 @@ export interface ContextMenuItem {
export default defineComponent({ export default defineComponent({
components: { components: {
RecipeDialogAddToShoppingList,
RecipeDialogPrintPreferences, RecipeDialogPrintPreferences,
RecipeDialogShare, RecipeDialogShare,
RecipeIngredientListItem
}, },
props: { props: {
useItems: { useItems: {
@ -279,7 +214,6 @@ export default defineComponent({
recipeDeleteDialog: false, recipeDeleteDialog: false,
mealplannerDialog: false, mealplannerDialog: false,
shoppingListDialog: false, shoppingListDialog: false,
shoppingListIngredientDialog: false,
recipeDuplicateDialog: false, recipeDuplicateDialog: false,
recipeName: props.name, recipeName: props.name,
loading: false, loading: false,
@ -374,7 +308,7 @@ export default defineComponent({
} }
} }
// Add leading and Apppending Items // Add leading and Appending Items
state.menuItems = [...state.menuItems, ...props.leadingItems, ...props.appendItems]; state.menuItems = [...state.menuItems, ...props.leadingItems, ...props.appendItems];
const icon = props.menuIcon || $globals.icons.dotsVertical; const icon = props.menuIcon || $globals.icons.dotsVertical;
@ -383,9 +317,8 @@ export default defineComponent({
// Context Menu Event Handler // Context Menu Event Handler
const shoppingLists = ref<ShoppingListSummary[]>(); const shoppingLists = ref<ShoppingListSummary[]>();
const selectedShoppingList = ref<ShoppingListSummary>();
const recipeRef = ref<Recipe>(props.recipe); const recipeRef = ref<Recipe>(props.recipe);
const recipeIngredients = ref<{ checked: boolean; ingredient: RecipeIngredient, disableAmount: boolean }[]>([]); const recipeRefWithScale = computed(() => recipeRef.value ? { scale: props.recipeScale, ...recipeRef.value } : undefined);
async function getShoppingLists() { async function getShoppingLists() {
const { data } = await api.shopping.lists.getAll(); const { data } = await api.shopping.lists.getAll();
@ -401,61 +334,6 @@ export default defineComponent({
} }
} }
async function openShoppingListIngredientDialog(list: ShoppingListSummary) {
selectedShoppingList.value = list;
if (!recipeRef.value) {
await refreshRecipe();
}
if (recipeRef.value?.recipeIngredient) {
recipeIngredients.value = recipeRef.value.recipeIngredient.map((ingredient) => {
return {
checked: true,
ingredient,
disableAmount: recipeRef.value.settings?.disableAmount || false
};
});
}
state.shoppingListDialog = false;
state.shoppingListIngredientDialog = true;
}
function bulkCheckIngredients(value = true) {
recipeIngredients.value.forEach((data) => {
data.checked = value;
});
}
async function addRecipeToList() {
if (!selectedShoppingList.value) {
return;
}
const ingredients: RecipeIngredient[] = [];
recipeIngredients.value.forEach((data) => {
if (data.checked) {
ingredients.push(data.ingredient);
}
});
if (!ingredients.length) {
return;
}
const { data } = await api.shopping.lists.addRecipe(
selectedShoppingList.value.id,
props.recipeId,
props.recipeScale,
ingredients
);
if (data) {
alert.success(i18n.t("recipe.recipe-added-to-list") as string);
state.shoppingListDialog = false;
state.shoppingListIngredientDialog = false;
}
}
const router = useRouter(); const router = useRouter();
async function deleteRecipe() { async function deleteRecipe() {
@ -516,10 +394,12 @@ export default defineComponent({
state.printPreferencesDialog = true; state.printPreferencesDialog = true;
}, },
shoppingList: () => { shoppingList: () => {
getShoppingLists(); const promises: Promise<void>[] = [getShoppingLists()];
if (!recipeRef.value) {
promises.push(refreshRecipe());
}
state.shoppingListDialog = true; Promise.allSettled(promises).then(() => { state.shoppingListDialog = true });
state.shoppingListIngredientDialog = false;
}, },
share: () => { share: () => {
state.shareDialog = true; state.shareDialog = true;
@ -544,28 +424,15 @@ export default defineComponent({
return { return {
...toRefs(state), ...toRefs(state),
recipeRef, recipeRef,
recipeRefWithScale,
shoppingLists, shoppingLists,
selectedShoppingList,
openShoppingListIngredientDialog,
addRecipeToList,
bulkCheckIngredients,
duplicateRecipe, duplicateRecipe,
contextMenuEventHandler, contextMenuEventHandler,
deleteRecipe, deleteRecipe,
addRecipeToPlan, addRecipeToPlan,
icon, icon,
planTypeOptions, planTypeOptions,
recipeIngredients,
}; };
}, },
}); });
</script> </script>
<style scoped lang="css">
.ingredient-grid {
display: grid;
grid-auto-flow: column;
grid-template-columns: 1fr 1fr;
grid-gap: 0.5rem;
}
</style>

View File

@ -0,0 +1,303 @@
<template>
<div v-if="dialog">
<BaseDialog v-if="shoppingListDialog" v-model="dialog" :title="$t('recipe.add-to-list')" :icon="$globals.icons.cartCheck">
<v-card-text>
<v-card
v-for="list in shoppingLists"
:key="list.id"
hover
class="my-2 left-border"
@click="openShoppingListIngredientDialog(list)"
>
<v-card-title class="py-2">
{{ list.name }}
</v-card-title>
</v-card>
</v-card-text>
</BaseDialog>
<BaseDialog
v-if="shoppingListIngredientDialog"
v-model="dialog"
:title="selectedShoppingList ? selectedShoppingList.name : $t('recipe.add-to-list')"
:icon="$globals.icons.cartCheck"
width="70%"
:submit-text="$tc('recipe.add-to-list')"
@submit="addRecipesToList()"
>
<div style="max-height: 70vh; overflow-y: auto">
<v-card
v-for="(section, sectionIndex) in recipeIngredientSections" :key="section.recipeId + sectionIndex"
elevation="0"
height="fit-content"
width="100%"
>
<v-divider v-if="sectionIndex > 0" class="mt-3" />
<v-card-title
v-if="recipeIngredientSections.length > 1"
class="justify-center"
width="100%"
>
<v-container style="width: 100%;">
<v-row no-gutters class="ma-0 pa-0">
<v-col cols="12" align-self="center" class="text-center">
{{ section.recipeName }}
</v-col>
</v-row>
<v-row v-if="section.recipeScale > 1" no-gutters class="ma-0 pa-0">
<!-- TODO: make this editable in the dialog and visible on single-recipe lists -->
<v-col cols="12" align-self="center" class="text-center">
({{ $tc("recipe.quantity") }}: {{ section.recipeScale }})
</v-col>
</v-row>
</v-container>
</v-card-title>
<div
:class="$vuetify.breakpoint.smAndDown ? '' : 'ingredient-grid'"
:style="$vuetify.breakpoint.smAndDown ? '' : { gridTemplateRows: `repeat(${Math.ceil(section.ingredients.length / 2)}, min-content)` }"
>
<v-list-item
v-for="(ingredientData, i) in section.ingredients"
:key="'ingredient' + i"
dense
@click="recipeIngredientSections[sectionIndex].ingredients[i].checked = !recipeIngredientSections[sectionIndex].ingredients[i].checked"
>
<v-checkbox
hide-details
:input-value="ingredientData.checked"
class="pt-0 my-auto py-auto"
color="secondary"
/>
<v-list-item-content :key="ingredientData.ingredient.quantity">
<RecipeIngredientListItem
:ingredient="ingredientData.ingredient"
:disable-amount="ingredientData.disableAmount"
:scale="section.recipeScale" />
</v-list-item-content>
</v-list-item>
</div>
</v-card>
</div>
<div class="d-flex justify-end mb-4 mt-2">
<BaseButtonGroup
:buttons="[
{
icon: $globals.icons.checkboxBlankOutline,
text: $tc('shopping-list.uncheck-all-items'),
event: 'uncheck',
},
{
icon: $globals.icons.checkboxOutline,
text: $tc('shopping-list.check-all-items'),
event: 'check',
},
]"
@uncheck="bulkCheckIngredients(false)"
@check="bulkCheckIngredients(true)"
/>
</div>
</BaseDialog>
</div>
</template>
<script lang="ts">
import { computed, defineComponent, reactive, ref, useContext } from "@nuxtjs/composition-api";
import { toRefs } from "@vueuse/core";
import RecipeIngredientListItem from "./RecipeIngredientListItem.vue";
import { useUserApi } from "~/composables/api";
import { alert } from "~/composables/use-toast";
import { ShoppingListSummary } from "~/lib/api/types/group";
import { Recipe, RecipeIngredient } from "~/lib/api/types/recipe";
export interface RecipeWithScale extends Recipe {
scale: number;
}
export interface ShoppingListRecipeIngredient {
checked: boolean;
ingredient: RecipeIngredient;
disableAmount: boolean;
}
export interface ShoppingListRecipeIngredientSection {
recipeId: string;
recipeName: string;
recipeScale: number;
ingredients: ShoppingListRecipeIngredient[];
}
export default defineComponent({
components: {
RecipeIngredientListItem,
},
props: {
value: {
type: Boolean,
default: false,
},
recipes: {
type: Array as () => RecipeWithScale[],
default: undefined,
},
shoppingLists: {
type: Array as () => ShoppingListSummary[],
default: () => [],
},
},
setup(props, context) {
const { i18n } = useContext();
const api = useUserApi();
// v-model support
const dialog = computed({
get: () => {
return props.value;
},
set: (val) => {
context.emit("input", val);
initState();
},
});
const state = reactive({
shoppingListDialog: true,
shoppingListIngredientDialog: false,
});
const recipeIngredientSections = ref<ShoppingListRecipeIngredientSection[]>([]);
const selectedShoppingList = ref<ShoppingListSummary | null>(null);
async function consolidateRecipesIntoSections(recipes: RecipeWithScale[]) {
const recipeSectionMap = new Map<string, ShoppingListRecipeIngredientSection>();
for (const recipe of recipes) {
if (!recipe.slug) {
continue;
}
if (recipeSectionMap.has(recipe.slug)) {
// @ts-ignore not undefined, see above
recipeSectionMap.get(recipe.slug).recipeScale += recipe.scale;
continue;
}
if (!(recipe.id && recipe.name && recipe.recipeIngredient)) {
const { data } = await api.recipes.getOne(recipe.slug);
if (!data?.recipeIngredient?.length) {
continue;
}
recipe.id = data.id || "";
recipe.name = data.name || "";
recipe.recipeIngredient = data.recipeIngredient;
} else if (!recipe.recipeIngredient.length) {
continue;
}
const shoppingListIngredients: ShoppingListRecipeIngredient[] = recipe.recipeIngredient.map((ing) => {
return {
checked: true,
ingredient: ing,
disableAmount: recipe.settings?.disableAmount || false,
}
});
recipeSectionMap.set(recipe.slug, {
recipeId: recipe.id,
recipeName: recipe.name,
recipeScale: recipe.scale,
ingredients: shoppingListIngredients,
})
}
recipeIngredientSections.value = Array.from(recipeSectionMap.values());
}
function initState() {
state.shoppingListDialog = true;
state.shoppingListIngredientDialog = false;
recipeIngredientSections.value = [];
selectedShoppingList.value = null;
}
initState();
async function openShoppingListIngredientDialog(list: ShoppingListSummary) {
if (!props.recipes?.length) {
return;
}
selectedShoppingList.value = list;
await consolidateRecipesIntoSections(props.recipes);
state.shoppingListDialog = false;
state.shoppingListIngredientDialog = true;
}
function bulkCheckIngredients(value = true) {
recipeIngredientSections.value.forEach((section) => {
section.ingredients.forEach((ing) => {
ing.checked = value;
});
});
}
async function addRecipesToList() {
const promises: Promise<any>[] = [];
recipeIngredientSections.value.forEach((section) => {
if (!selectedShoppingList.value) {
return;
}
const ingredients: RecipeIngredient[] = [];
section.ingredients.forEach((ing) => {
if (ing.checked) {
ingredients.push(ing.ingredient);
}
});
if (!ingredients.length) {
return;
}
promises.push(api.shopping.lists.addRecipe(
selectedShoppingList.value.id,
section.recipeId,
section.recipeScale,
ingredients,
));
});
let success = true;
const results = await Promise.allSettled(promises);
results.forEach((result) => {
if (result.status === "rejected") {
success = false;
}
})
success ? alert.success(i18n.t("recipe.recipes-added-to-list") as string)
: alert.error(i18n.t("failed-to-add-recipes-to-list") as string)
state.shoppingListDialog = false;
state.shoppingListIngredientDialog = false;
dialog.value = false;
}
return {
dialog,
...toRefs(state),
addRecipesToList,
bulkCheckIngredients,
openShoppingListIngredientDialog,
recipeIngredientSections,
selectedShoppingList,
}
},
})
</script>
<style scoped lang="css">
.ingredient-grid {
display: grid;
grid-auto-flow: column;
grid-template-columns: 1fr 1fr;
grid-gap: 0.5rem;
}
</style>

View File

@ -7,7 +7,7 @@
:class="attrs.class.sheet" :class="attrs.class.sheet"
:style="tile ? 'max-width: 100%; width: fit-content;' : 'width: 100%;'" :style="tile ? 'max-width: 100%; width: fit-content;' : 'width: 100%;'"
> >
<v-list-item :to="'/' + groupSlug + '/r/' + recipe.slug" :class="attrs.class.listItem"> <v-list-item :to="'/g/' + groupSlug + '/r/' + recipe.slug" :class="attrs.class.listItem">
<v-list-item-avatar :class="attrs.class.avatar"> <v-list-item-avatar :class="attrs.class.avatar">
<v-icon :class="attrs.class.icon" dark :small="small"> {{ $globals.icons.primary }} </v-icon> <v-icon :class="attrs.class.icon" dark :small="small"> {{ $globals.icons.primary }} </v-icon>
</v-list-item-avatar> </v-list-item-avatar>

View File

@ -131,8 +131,8 @@ export default defineComponent({
async function select() { async function select() {
if (store) { if (store) {
// @ts-ignore - only property really required is the name // @ts-expect-error the same state is used for different organizer types, which have different requirements
await store.actions.createOne({ name: state.name }); await store.actions.createOne({ ...state });
} }
const newItem = store.items.value.find((item) => item.name === state.name); const newItem = store.items.value.find((item) => item.name === state.name);

View File

@ -16,6 +16,7 @@
<BaseDialog v-if="updateTarget" v-model="dialogs.update" :title="$t('general.update')" @confirm="updateOne()"> <BaseDialog v-if="updateTarget" v-model="dialogs.update" :title="$t('general.update')" @confirm="updateOne()">
<v-card-text> <v-card-text>
<v-text-field v-model="updateTarget.name" label="Name"> </v-text-field> <v-text-field v-model="updateTarget.name" label="Name"> </v-text-field>
<v-checkbox v-if="itemType === Organizer.Tool" v-model="updateTarget.onHand" :label="$t('tool.on-hand')"></v-checkbox>
</v-card-text> </v-card-text>
</BaseDialog> </BaseDialog>
@ -75,7 +76,7 @@ import Fuse from "fuse.js";
import { defineComponent, computed, ref, reactive, useContext, useRoute } from "@nuxtjs/composition-api"; import { defineComponent, computed, ref, reactive, useContext, useRoute } from "@nuxtjs/composition-api";
import { useContextPresets } from "~/composables/use-context-presents"; import { useContextPresets } from "~/composables/use-context-presents";
import RecipeOrganizerDialog from "~/components/Domain/Recipe/RecipeOrganizerDialog.vue"; import RecipeOrganizerDialog from "~/components/Domain/Recipe/RecipeOrganizerDialog.vue";
import { RecipeOrganizer } from "~/lib/api/types/non-generated"; import { Organizer, RecipeOrganizer } from "~/lib/api/types/non-generated";
import { useRouteQuery } from "~/composables/use-router"; import { useRouteQuery } from "~/composables/use-router";
import { deepCopy } from "~/composables/use-utils"; import { deepCopy } from "~/composables/use-utils";
@ -83,6 +84,7 @@ interface GenericItem {
id: string; id: string;
name: string; name: string;
slug: string; slug: string;
onHand: boolean;
} }
export default defineComponent({ export default defineComponent({
@ -217,6 +219,7 @@ export default defineComponent({
updateTarget, updateTarget,
deleteOne, deleteOne,
deleteTarget, deleteTarget,
Organizer,
presets, presets,
itemsSorted, itemsSorted,
searchString, searchString,

View File

@ -14,33 +14,42 @@
<!-- Model --> <!-- Model -->
<v-list v-if="mode === MODES.model" dense> <v-list v-if="mode === MODES.model" dense>
<v-list-item-group v-model="itemGroup"> <v-list-item-group v-model="itemGroup">
<v-list-item v-for="(item, index) in items" :key="index" @click="setValue(item)"> <template v-for="(item, index) in items">
<v-list-item-icon v-if="item.icon"> <v-list-item :key="index" @click="setValue(item)">
<v-icon>{{ item.icon }}</v-icon> <v-list-item-icon v-if="item.icon">
</v-list-item-icon> <v-icon>{{ item.icon }}</v-icon>
<v-list-item-title>{{ item.text }}</v-list-item-title> </v-list-item-icon>
</v-list-item> <v-list-item-title>{{ item.text }}</v-list-item-title>
<v-divider v-if="item.divider" :key="`divider-${index}`" class="my-1" ></v-divider>
</v-list-item>
</template>
</v-list-item-group> </v-list-item-group>
</v-list> </v-list>
<!-- Links --> <!-- Links -->
<v-list v-else-if="mode === MODES.link" dense> <v-list v-else-if="mode === MODES.link" dense>
<v-list-item-group v-model="itemGroup"> <v-list-item-group v-model="itemGroup">
<v-list-item v-for="(item, index) in items" :key="index" :to="item.to"> <template v-for="(item, index) in items">
<v-list-item :key="index" :to="item.to">
<v-list-item-icon v-if="item.icon"> <v-list-item-icon v-if="item.icon">
<v-icon>{{ item.icon }}</v-icon> <v-icon>{{ item.icon }}</v-icon>
</v-list-item-icon> </v-list-item-icon>
<v-list-item-title>{{ item.text }}</v-list-item-title> <v-list-item-title>{{ item.text }}</v-list-item-title>
</v-list-item> </v-list-item>
<v-divider v-if="item.divider" :key="`divider-${index}`" class="my-1" ></v-divider>
</template>
</v-list-item-group> </v-list-item-group>
</v-list> </v-list>
<!-- Event --> <!-- Event -->
<v-list v-else-if="mode === MODES.event" dense> <v-list v-else-if="mode === MODES.event" dense>
<v-list-item v-for="(item, index) in items" :key="index" @click="$emit(item.event)"> <template v-for="(item, index) in items">
<v-list-item-icon v-if="item.icon"> <v-list-item :key="index" @click="$emit(item.event)">
<v-icon>{{ item.icon }}</v-icon> <v-list-item-icon v-if="item.icon">
</v-list-item-icon> <v-icon>{{ item.icon }}</v-icon>
<v-list-item-title>{{ item.text }}</v-list-item-title> </v-list-item-icon>
</v-list-item> <v-list-item-title>{{ item.text }}</v-list-item-title>
<v-divider v-if="item.divider" :key="`divider-${index}`" class="my-1" ></v-divider>
</v-list-item>
</template>
</v-list> </v-list>
</v-menu> </v-menu>
</template> </template>
@ -64,6 +73,7 @@ export interface MenuItem {
to?: string; to?: string;
value?: string; value?: string;
event?: string; event?: string;
divider?: boolean;
} }
export default defineComponent({ export default defineComponent({

View File

@ -3,117 +3,117 @@ export const LOCALES = [
{ {
name: "繁體中文 (Chinese traditional)", name: "繁體中文 (Chinese traditional)",
value: "zh-TW", value: "zh-TW",
progress: 26, progress: 28,
}, },
{ {
name: "简体中文 (Chinese simplified)", name: "简体中文 (Chinese simplified)",
value: "zh-CN", value: "zh-CN",
progress: 34, progress: 65,
}, },
{ {
name: "Tiếng Việt (Vietnamese)", name: "Tiếng Việt (Vietnamese)",
value: "vi-VN", value: "vi-VN",
progress: 0, progress: 2,
}, },
{ {
name: "Українська (Ukrainian)", name: "Українська (Ukrainian)",
value: "uk-UA", value: "uk-UA",
progress: 100, progress: 99,
}, },
{ {
name: "Türkçe (Turkish)", name: "Türkçe (Turkish)",
value: "tr-TR", value: "tr-TR",
progress: 47, progress: 50,
}, },
{ {
name: "Svenska (Swedish)", name: "Svenska (Swedish)",
value: "sv-SE", value: "sv-SE",
progress: 60, progress: 71,
}, },
{ {
name: "српски (Serbian)", name: "српски (Serbian)",
value: "sr-SP", value: "sr-SP",
progress: 2, progress: 4,
}, },
{ {
name: "Slovenian", name: "Slovenian",
value: "sl-SI", value: "sl-SI",
progress: 47, progress: 49,
}, },
{ {
name: "Slovak", name: "Slovak",
value: "sk-SK", value: "sk-SK",
progress: 99, progress: 97,
}, },
{ {
name: "Pусский (Russian)", name: "Pусский (Russian)",
value: "ru-RU", value: "ru-RU",
progress: 31, progress: 99,
}, },
{ {
name: "Română (Romanian)", name: "Română (Romanian)",
value: "ro-RO", value: "ro-RO",
progress: 12, progress: 32,
}, },
{ {
name: "Português (Portuguese)", name: "Português (Portuguese)",
value: "pt-PT", value: "pt-PT",
progress: 69, progress: 99,
}, },
{ {
name: "Português do Brasil (Brazilian Portuguese)", name: "Português do Brasil (Brazilian Portuguese)",
value: "pt-BR", value: "pt-BR",
progress: 97, progress: 98,
}, },
{ {
name: "Polski (Polish)", name: "Polski (Polish)",
value: "pl-PL", value: "pl-PL",
progress: 99, progress: 97,
}, },
{ {
name: "Norsk (Norwegian)", name: "Norsk (Norwegian)",
value: "no-NO", value: "no-NO",
progress: 73, progress: 85,
}, },
{ {
name: "Nederlands (Dutch)", name: "Nederlands (Dutch)",
value: "nl-NL", value: "nl-NL",
progress: 100, progress: 98,
}, },
{ {
name: "Latvian", name: "Latvian",
value: "lv-LV", value: "lv-LV",
progress: 0, progress: 1,
}, },
{ {
name: "Lithuanian", name: "Lithuanian",
value: "lt-LT", value: "lt-LT",
progress: 99, progress: 97,
}, },
{ {
name: "한국어 (Korean)", name: "한국어 (Korean)",
value: "ko-KR", value: "ko-KR",
progress: 3, progress: 5,
}, },
{ {
name: "日本語 (Japanese)", name: "日本語 (Japanese)",
value: "ja-JP", value: "ja-JP",
progress: 9, progress: 11,
}, },
{ {
name: "Italiano (Italian)", name: "Italiano (Italian)",
value: "it-IT", value: "it-IT",
progress: 98, progress: 96,
}, },
{ {
name: "Magyar (Hungarian)", name: "Magyar (Hungarian)",
value: "hu-HU", value: "hu-HU",
progress: 43, progress: 99,
}, },
{ {
name: "Croatian", name: "Croatian",
value: "hr-HR", value: "hr-HR",
progress: 100, progress: 97,
}, },
{ {
name: "עברית (Hebrew)", name: "עברית (Hebrew)",
@ -123,27 +123,27 @@ export const LOCALES = [
{ {
name: "Galician", name: "Galician",
value: "gl-ES", value: "gl-ES",
progress: 0, progress: 1,
}, },
{ {
name: "Français (French)", name: "Français (French)",
value: "fr-FR", value: "fr-FR",
progress: 100, progress: 99,
}, },
{ {
name: "French, Canada", name: "French, Canada",
value: "fr-CA", value: "fr-CA",
progress: 54, progress: 97,
}, },
{ {
name: "Suomi (Finnish)", name: "Suomi (Finnish)",
value: "fi-FI", value: "fi-FI",
progress: 31, progress: 95,
}, },
{ {
name: "Español (Spanish)", name: "Español (Spanish)",
value: "es-ES", value: "es-ES",
progress: 59, progress: 76,
}, },
{ {
name: "American English", name: "American English",
@ -153,46 +153,46 @@ export const LOCALES = [
{ {
name: "British English", name: "British English",
value: "en-GB", value: "en-GB",
progress: 2, progress: 4,
}, },
{ {
name: "Ελληνικά (Greek)", name: "Ελληνικά (Greek)",
value: "el-GR", value: "el-GR",
progress: 33, progress: 35,
}, },
{ {
name: "Deutsch (German)", name: "Deutsch (German)",
value: "de-DE", value: "de-DE",
progress: 100, progress: 99,
}, },
{ {
name: "Dansk (Danish)", name: "Dansk (Danish)",
value: "da-DK", value: "da-DK",
progress: 90, progress: 100,
}, },
{ {
name: "Čeština (Czech)", name: "Čeština (Czech)",
value: "cs-CZ", value: "cs-CZ",
progress: 60, progress: 66,
}, },
{ {
name: "Català (Catalan)", name: "Català (Catalan)",
value: "ca-ES", value: "ca-ES",
progress: 54, progress: 61,
}, },
{ {
name: "Bulgarian", name: "Bulgarian",
value: "bg-BG", value: "bg-BG",
progress: 13, progress: 99,
}, },
{ {
name: "العربية (Arabic)", name: "العربية (Arabic)",
value: "ar-SA", value: "ar-SA",
progress: 7, progress: 16,
}, },
{ {
name: "Afrikaans (Afrikaans)", name: "Afrikaans (Afrikaans)",
value: "af-ZA", value: "af-ZA",
progress: 0, progress: 96,
}, },
] ]

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Geen resep gevind nie", "no-recipe-found": "Geen resep gevind nie",
"ok": "OK", "ok": "OK",
"options": "Opsies:", "options": "Opsies:",
"plural-name": "Plural Name",
"print": "Druk", "print": "Druk",
"print-preferences": "Drukvoorkeure", "print-preferences": "Drukvoorkeure",
"random": "Willekeurig", "random": "Willekeurig",
@ -462,7 +463,9 @@
"add-to-plan": "Voeg by plan", "add-to-plan": "Voeg by plan",
"add-to-timeline": "Voeg by tydlyn", "add-to-timeline": "Voeg by tydlyn",
"recipe-added-to-list": "Resep by lys gevoeg", "recipe-added-to-list": "Resep by lys gevoeg",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Resep is by die maaltydplan gevoeg", "recipe-added-to-mealplan": "Resep is by die maaltydplan gevoeg",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Kon nie resep by maaltydplan voeg nie", "failed-to-add-recipe-to-mealplan": "Kon nie resep by maaltydplan voeg nie",
"yield": "Resultaat", "yield": "Resultaat",
"quantity": "Hoeveelheid", "quantity": "Hoeveelheid",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "Gebruiker kan ander na groep nooi", "user-can-invite-other-to-group": "Gebruiker kan ander na groep nooi",
"user-can-manage-group": "Gebruiker kan groep bestuur", "user-can-manage-group": "Gebruiker kan groep bestuur",
"user-can-organize-group-data": "Gebruiker kan groepdata organiseer", "user-can-organize-group-data": "Gebruiker kan groepdata organiseer",
"enable-advanced-features": "Aktiveer gevorderde funksies" "enable-advanced-features": "Aktiveer gevorderde funksies",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "vertaal", "translated": "vertaal",
@ -888,7 +893,9 @@
"create-food": "Skep kos", "create-food": "Skep kos",
"food-label": "Kos etiket", "food-label": "Kos etiket",
"edit-food": "Wysig kos", "edit-food": "Wysig kos",
"food-data": "Voedseldata" "food-data": "Voedseldata",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Saai die databasis met algemene eenhede gebaseer op jou plaaslike taal.", "seed-dialog-text": "Saai die databasis met algemene eenhede gebaseer op jou plaaslike taal.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "Voeg {0} saam met {1}", "merging-unit-into-unit": "Voeg {0} saam met {1}",
"create-unit": "Skep eenheid", "create-unit": "Skep eenheid",
"abbreviation": "Afkorting", "abbreviation": "Afkorting",
"plural-abbreviation": "Plural Abbreviation",
"description": "Beskrywing", "description": "Beskrywing",
"display-as-fraction": "Wys as breuk", "display-as-fraction": "Wys as breuk",
"use-abbreviation": "Gebruik afkorting", "use-abbreviation": "Gebruik afkorting",
"edit-unit": "Wysig eenheid", "edit-unit": "Wysig eenheid",
"unit-data": "Eenheiddata", "unit-data": "Eenheiddata",
"use-abbv": "Gebruik afkorting", "use-abbv": "Gebruik afkorting",
"fraction": "Breuk" "fraction": "Breuk",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Vul die databasis met algemene etikette gebaseer op jou plaaslike taal.", "seed-dialog-text": "Vul die databasis met algemene etikette gebaseer op jou plaaslike taal.",
@ -934,6 +946,8 @@
"delete-recipes": "Verwyder resepte", "delete-recipes": "Verwyder resepte",
"source-unit-will-be-deleted": "Bron-eenheid sal verwyder word" "source-unit-will-be-deleted": "Bron-eenheid sal verwyder word"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Voorbeeld data", "seed-data": "Voorbeeld data",
"seed": "Vul", "seed": "Vul",
"data-management": "Databestuur", "data-management": "Databestuur",
@ -941,7 +955,22 @@
"select-data": "Kies data", "select-data": "Kies data",
"select-language": "Kies taal", "select-language": "Kies taal",
"columns": "Kolomme", "columns": "Kolomme",
"combine": "Kombineer" "combine": "Kombineer",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "Gebruiker registrasie", "user-registration": "Gebruiker registrasie",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "لم يتم العثور على وصفة", "no-recipe-found": "لم يتم العثور على وصفة",
"ok": "موافق", "ok": "موافق",
"options": "الخيارات:", "options": "الخيارات:",
"plural-name": "Plural Name",
"print": "طباعة", "print": "طباعة",
"print-preferences": "إعدادات الطباعة", "print-preferences": "إعدادات الطباعة",
"random": "عشوائي", "random": "عشوائي",
@ -462,7 +463,9 @@
"add-to-plan": "Add to Plan", "add-to-plan": "Add to Plan",
"add-to-timeline": "Add to Timeline", "add-to-timeline": "Add to Timeline",
"recipe-added-to-list": "Recipe added to list", "recipe-added-to-list": "Recipe added to list",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Recipe added to mealplan", "recipe-added-to-mealplan": "Recipe added to mealplan",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Failed to add recipe to mealplan", "failed-to-add-recipe-to-mealplan": "Failed to add recipe to mealplan",
"yield": "Yield", "yield": "Yield",
"quantity": "Quantity", "quantity": "Quantity",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "User can invite other to group", "user-can-invite-other-to-group": "User can invite other to group",
"user-can-manage-group": "User can manage group", "user-can-manage-group": "User can manage group",
"user-can-organize-group-data": "User can organize group data", "user-can-organize-group-data": "User can organize group data",
"enable-advanced-features": "Enable advanced features" "enable-advanced-features": "Enable advanced features",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "translated", "translated": "translated",
@ -888,7 +893,9 @@
"create-food": "Create Food", "create-food": "Create Food",
"food-label": "Food Label", "food-label": "Food Label",
"edit-food": "Edit Food", "edit-food": "Edit Food",
"food-data": "Food Data" "food-data": "Food Data",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Seed the database with common units based on your local language.", "seed-dialog-text": "Seed the database with common units based on your local language.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "Merging {0} into {1}", "merging-unit-into-unit": "Merging {0} into {1}",
"create-unit": "Create Unit", "create-unit": "Create Unit",
"abbreviation": "Abbreviation", "abbreviation": "Abbreviation",
"plural-abbreviation": "Plural Abbreviation",
"description": "Description", "description": "Description",
"display-as-fraction": "Display as Fraction", "display-as-fraction": "Display as Fraction",
"use-abbreviation": "Use Abbreviation", "use-abbreviation": "Use Abbreviation",
"edit-unit": "Edit Unit", "edit-unit": "Edit Unit",
"unit-data": "Unit Data", "unit-data": "Unit Data",
"use-abbv": "Use Abbv.", "use-abbv": "Use Abbv.",
"fraction": "Fraction" "fraction": "Fraction",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Seed the database with common labels based on your local language.", "seed-dialog-text": "Seed the database with common labels based on your local language.",
@ -934,6 +946,8 @@
"delete-recipes": "Delete Recipes", "delete-recipes": "Delete Recipes",
"source-unit-will-be-deleted": "Source Unit will be deleted" "source-unit-will-be-deleted": "Source Unit will be deleted"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Seed Data", "seed-data": "Seed Data",
"seed": "Seed", "seed": "Seed",
"data-management": "Data Management", "data-management": "Data Management",
@ -941,7 +955,22 @@
"select-data": "Select Data", "select-data": "Select Data",
"select-language": "Select Language", "select-language": "Select Language",
"columns": "Columns", "columns": "Columns",
"combine": "Combine" "combine": "Combine",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "User Registration", "user-registration": "User Registration",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Няма намерени рецепти", "no-recipe-found": "Няма намерени рецепти",
"ok": "Добре", "ok": "Добре",
"options": "Опции:", "options": "Опции:",
"plural-name": "Plural Name",
"print": "Принтирай", "print": "Принтирай",
"print-preferences": "Настройки на принтиране", "print-preferences": "Настройки на принтиране",
"random": "Произволно", "random": "Произволно",
@ -462,7 +463,9 @@
"add-to-plan": "Добави към план", "add-to-plan": "Добави към план",
"add-to-timeline": "Добави към времевата линия", "add-to-timeline": "Добави към времевата линия",
"recipe-added-to-list": "Рецептата е добавена към списъка", "recipe-added-to-list": "Рецептата е добавена към списъка",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Рецептата е добавена към хранителния план", "recipe-added-to-mealplan": "Рецептата е добавена към хранителния план",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Рецептата не беше добавена към хранителния план", "failed-to-add-recipe-to-mealplan": "Рецептата не беше добавена към хранителния план",
"yield": "Добив", "yield": "Добив",
"quantity": "Количество", "quantity": "Количество",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "Потребителя може да добавя други в групата", "user-can-invite-other-to-group": "Потребителя може да добавя други в групата",
"user-can-manage-group": "Потребителя може да управлява групата", "user-can-manage-group": "Потребителя може да управлява групата",
"user-can-organize-group-data": "Потребителя може да организира данните на групата", "user-can-organize-group-data": "Потребителя може да организира данните на групата",
"enable-advanced-features": "Включване на разширени функции" "enable-advanced-features": "Включване на разширени функции",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "преведено", "translated": "преведено",
@ -888,7 +893,9 @@
"create-food": "Създай храна", "create-food": "Създай храна",
"food-label": "Заглавие на храната", "food-label": "Заглавие на храната",
"edit-food": "Редактирай храна", "edit-food": "Редактирай храна",
"food-data": "Данни за храните" "food-data": "Данни за храните",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Заредете базата данни с общи единици въз основа на Вашия местен език.", "seed-dialog-text": "Заредете базата данни с общи единици въз основа на Вашия местен език.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "Обединяване на {0} с {1}", "merging-unit-into-unit": "Обединяване на {0} с {1}",
"create-unit": "Създаване на мерна единица", "create-unit": "Създаване на мерна единица",
"abbreviation": "Абревиатура", "abbreviation": "Абревиатура",
"plural-abbreviation": "Plural Abbreviation",
"description": "Описание", "description": "Описание",
"display-as-fraction": "Показване като фракция", "display-as-fraction": "Показване като фракция",
"use-abbreviation": "Използвай съкращение", "use-abbreviation": "Използвай съкращение",
"edit-unit": "Редактирай мерна единица", "edit-unit": "Редактирай мерна единица",
"unit-data": "Данни на мерната единица", "unit-data": "Данни на мерната единица",
"use-abbv": "Използвай съкращение", "use-abbv": "Използвай съкращение",
"fraction": "Фракция" "fraction": "Фракция",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Заредете базата данни с общи етикети въз основа на Вашия местен език.", "seed-dialog-text": "Заредете базата данни с общи етикети въз основа на Вашия местен език.",
@ -934,6 +946,8 @@
"delete-recipes": "Изтрий рецепти", "delete-recipes": "Изтрий рецепти",
"source-unit-will-be-deleted": "Изходната мерна единица ще бъде изтрита" "source-unit-will-be-deleted": "Изходната мерна единица ще бъде изтрита"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Сийд на данни", "seed-data": "Сийд на данни",
"seed": "Сийд", "seed": "Сийд",
"data-management": "Управление на данни", "data-management": "Управление на данни",
@ -941,7 +955,22 @@
"select-data": "Изберете данни", "select-data": "Изберете данни",
"select-language": "Изберете език", "select-language": "Изберете език",
"columns": "Колони", "columns": "Колони",
"combine": "Обедини" "combine": "Обедини",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "Регистрации на потребител", "user-registration": "Регистрации на потребител",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "No s'han trobat receptes", "no-recipe-found": "No s'han trobat receptes",
"ok": "D'acord", "ok": "D'acord",
"options": "Opcions:", "options": "Opcions:",
"plural-name": "Plural Name",
"print": "Imprimiu", "print": "Imprimiu",
"print-preferences": "Imprimiu les preferències", "print-preferences": "Imprimiu les preferències",
"random": "Aleatori", "random": "Aleatori",
@ -462,7 +463,9 @@
"add-to-plan": "Afegiu al menú", "add-to-plan": "Afegiu al menú",
"add-to-timeline": "Afegir a la cronologia", "add-to-timeline": "Afegir a la cronologia",
"recipe-added-to-list": "Recepta afegida a la llista", "recipe-added-to-list": "Recepta afegida a la llista",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Recepta afegida al menú", "recipe-added-to-mealplan": "Recepta afegida al menú",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "S'ha produït un error afegint la recepta al menú", "failed-to-add-recipe-to-mealplan": "S'ha produït un error afegint la recepta al menú",
"yield": "Racions", "yield": "Racions",
"quantity": "Quantitat", "quantity": "Quantitat",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "User can invite other to group", "user-can-invite-other-to-group": "User can invite other to group",
"user-can-manage-group": "User can manage group", "user-can-manage-group": "User can manage group",
"user-can-organize-group-data": "User can organize group data", "user-can-organize-group-data": "User can organize group data",
"enable-advanced-features": "Enable advanced features" "enable-advanced-features": "Enable advanced features",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "traduït", "translated": "traduït",
@ -888,7 +893,9 @@
"create-food": "Create Food", "create-food": "Create Food",
"food-label": "Food Label", "food-label": "Food Label",
"edit-food": "Edit Food", "edit-food": "Edit Food",
"food-data": "Food Data" "food-data": "Food Data",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Afegeix a la base de dades les unitats més comunes en el vostre idioma.", "seed-dialog-text": "Afegeix a la base de dades les unitats més comunes en el vostre idioma.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "Merging {0} into {1}", "merging-unit-into-unit": "Merging {0} into {1}",
"create-unit": "Crea la unitat", "create-unit": "Crea la unitat",
"abbreviation": "Abbreviation", "abbreviation": "Abbreviation",
"plural-abbreviation": "Plural Abbreviation",
"description": "Description", "description": "Description",
"display-as-fraction": "Display as Fraction", "display-as-fraction": "Display as Fraction",
"use-abbreviation": "Use Abbreviation", "use-abbreviation": "Use Abbreviation",
"edit-unit": "Edit Unit", "edit-unit": "Edit Unit",
"unit-data": "Unit Data", "unit-data": "Unit Data",
"use-abbv": "Use Abbv.", "use-abbv": "Use Abbv.",
"fraction": "Fraction" "fraction": "Fraction",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Afegeix a la base de dades etiquetes comunes en el vostre idioma.", "seed-dialog-text": "Afegeix a la base de dades etiquetes comunes en el vostre idioma.",
@ -934,6 +946,8 @@
"delete-recipes": "Delete Recipes", "delete-recipes": "Delete Recipes",
"source-unit-will-be-deleted": "Source Unit will be deleted" "source-unit-will-be-deleted": "Source Unit will be deleted"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Dades d'exemple", "seed-data": "Dades d'exemple",
"seed": "Seed", "seed": "Seed",
"data-management": "Data Management", "data-management": "Data Management",
@ -941,7 +955,22 @@
"select-data": "Select Data", "select-data": "Select Data",
"select-language": "Select Language", "select-language": "Select Language",
"columns": "Columns", "columns": "Columns",
"combine": "Combine" "combine": "Combine",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "Registre d'usuari", "user-registration": "Registre d'usuari",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Nebyl nalezen žádný recept", "no-recipe-found": "Nebyl nalezen žádný recept",
"ok": "OK", "ok": "OK",
"options": "Možnosti:", "options": "Možnosti:",
"plural-name": "Plural Name",
"print": "Tisk", "print": "Tisk",
"print-preferences": "Tisk předvoleb", "print-preferences": "Tisk předvoleb",
"random": "Náhodný", "random": "Náhodný",
@ -462,7 +463,9 @@
"add-to-plan": "Přidat do jídelníčku", "add-to-plan": "Přidat do jídelníčku",
"add-to-timeline": "Add to Timeline", "add-to-timeline": "Add to Timeline",
"recipe-added-to-list": "Recept byl přidán na seznam", "recipe-added-to-list": "Recept byl přidán na seznam",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Recept byl přidán do jídelníčku", "recipe-added-to-mealplan": "Recept byl přidán do jídelníčku",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Přidání receptu do jídelníčku selhalo", "failed-to-add-recipe-to-mealplan": "Přidání receptu do jídelníčku selhalo",
"yield": "Úroda", "yield": "Úroda",
"quantity": "Množství", "quantity": "Množství",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "User can invite other to group", "user-can-invite-other-to-group": "User can invite other to group",
"user-can-manage-group": "User can manage group", "user-can-manage-group": "User can manage group",
"user-can-organize-group-data": "User can organize group data", "user-can-organize-group-data": "User can organize group data",
"enable-advanced-features": "Enable advanced features" "enable-advanced-features": "Enable advanced features",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "přeloženo", "translated": "přeloženo",
@ -888,7 +893,9 @@
"create-food": "Create Food", "create-food": "Create Food",
"food-label": "Food Label", "food-label": "Food Label",
"edit-food": "Edit Food", "edit-food": "Edit Food",
"food-data": "Food Data" "food-data": "Food Data",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Naplnit databázi s běžnými jednotkami používanými ve vašem jazyce.", "seed-dialog-text": "Naplnit databázi s běžnými jednotkami používanými ve vašem jazyce.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "Merging {0} into {1}", "merging-unit-into-unit": "Merging {0} into {1}",
"create-unit": "Create Unit", "create-unit": "Create Unit",
"abbreviation": "Abbreviation", "abbreviation": "Abbreviation",
"plural-abbreviation": "Plural Abbreviation",
"description": "Description", "description": "Description",
"display-as-fraction": "Display as Fraction", "display-as-fraction": "Display as Fraction",
"use-abbreviation": "Use Abbreviation", "use-abbreviation": "Use Abbreviation",
"edit-unit": "Edit Unit", "edit-unit": "Edit Unit",
"unit-data": "Unit Data", "unit-data": "Unit Data",
"use-abbv": "Používat zkratky", "use-abbv": "Používat zkratky",
"fraction": "Zlomek" "fraction": "Zlomek",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Naplnit databázi s běžnými popisky používanými ve vašem jazyce.", "seed-dialog-text": "Naplnit databázi s běžnými popisky používanými ve vašem jazyce.",
@ -934,6 +946,8 @@
"delete-recipes": "Smazat recepty", "delete-recipes": "Smazat recepty",
"source-unit-will-be-deleted": "Source Unit will be deleted" "source-unit-will-be-deleted": "Source Unit will be deleted"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Seed Data", "seed-data": "Seed Data",
"seed": "Seed", "seed": "Seed",
"data-management": "Data Management", "data-management": "Data Management",
@ -941,7 +955,22 @@
"select-data": "Vybrat data", "select-data": "Vybrat data",
"select-language": "Select Language", "select-language": "Select Language",
"columns": "Sloupce", "columns": "Sloupce",
"combine": "Kombinovat" "combine": "Kombinovat",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "Registrace uživatele", "user-registration": "Registrace uživatele",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Ingen opskrift fundet", "no-recipe-found": "Ingen opskrift fundet",
"ok": "Ok", "ok": "Ok",
"options": "Valgmuligheder:", "options": "Valgmuligheder:",
"plural-name": "Navn i flertal",
"print": "Udskriv", "print": "Udskriv",
"print-preferences": "Print indstillinger", "print-preferences": "Print indstillinger",
"random": "Tilfældig", "random": "Tilfældig",
@ -462,7 +463,9 @@
"add-to-plan": "Tilføj til madplan", "add-to-plan": "Tilføj til madplan",
"add-to-timeline": "Tilføj til tidslinje", "add-to-timeline": "Tilføj til tidslinje",
"recipe-added-to-list": "Opskrift tilføjet til listen", "recipe-added-to-list": "Opskrift tilføjet til listen",
"recipes-added-to-list": "Opskrifter tilføjet til listen",
"recipe-added-to-mealplan": "Opskrift tilføjet til madplanen", "recipe-added-to-mealplan": "Opskrift tilføjet til madplanen",
"failed-to-add-recipes-to-list": "Kunne ikke tilføje opskrift til listen",
"failed-to-add-recipe-to-mealplan": "Kunne ikke tilføje opskrift til madplanen", "failed-to-add-recipe-to-mealplan": "Kunne ikke tilføje opskrift til madplanen",
"yield": "Portioner", "yield": "Portioner",
"quantity": "Antal", "quantity": "Antal",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "Bruger kan invitere andre til gruppen", "user-can-invite-other-to-group": "Bruger kan invitere andre til gruppen",
"user-can-manage-group": "Bruger kan administrere gruppen", "user-can-manage-group": "Bruger kan administrere gruppen",
"user-can-organize-group-data": "Bruger kan organisere gruppedata", "user-can-organize-group-data": "Bruger kan organisere gruppedata",
"enable-advanced-features": "Aktiver avancerede funktioner" "enable-advanced-features": "Aktiver avancerede funktioner",
"it-looks-like-this-is-your-first-time-logging-in": "Det ser ud til, at det er første gang, at du logger ind.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Vil du ikke længere se dette? Sørg for at ændre din e-mail i dine brugerindstillinger!"
}, },
"language-dialog": { "language-dialog": {
"translated": "oversat", "translated": "oversat",
@ -888,7 +893,9 @@
"create-food": "Opret fødevare", "create-food": "Opret fødevare",
"food-label": "Etiket på fødevare", "food-label": "Etiket på fødevare",
"edit-food": "Redigér fødevare", "edit-food": "Redigér fødevare",
"food-data": "Oplysninger om fødevare" "food-data": "Oplysninger om fødevare",
"example-food-singular": "fx.: grøntsag",
"example-food-plural": "fx.: grøntsager"
}, },
"units": { "units": {
"seed-dialog-text": "Opret standard enheder i dit sprog.", "seed-dialog-text": "Opret standard enheder i dit sprog.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "Samler {0} med {1}", "merging-unit-into-unit": "Samler {0} med {1}",
"create-unit": "Opret enhed", "create-unit": "Opret enhed",
"abbreviation": "Forkortelse", "abbreviation": "Forkortelse",
"plural-abbreviation": "Forkortelse af flertal",
"description": "Beskriveslse", "description": "Beskriveslse",
"display-as-fraction": "Vis som brøk", "display-as-fraction": "Vis som brøk",
"use-abbreviation": "Anvend forkortelse", "use-abbreviation": "Anvend forkortelse",
"edit-unit": "Rediger enhed", "edit-unit": "Rediger enhed",
"unit-data": "Enhedsoplysninger", "unit-data": "Enhedsoplysninger",
"use-abbv": "Anvend forkortelse", "use-abbv": "Anvend forkortelse",
"fraction": "Brøkdel" "fraction": "Brøkdel",
"example-unit-singular": "fx.: teske",
"example-unit-plural": "fx.: teskeer",
"example-unit-abbreviation-singular": "fx.: tsk",
"example-unit-abbreviation-plural": "fx.: tsk"
}, },
"labels": { "labels": {
"seed-dialog-text": "Opret standard etiketter på dit sprog.", "seed-dialog-text": "Opret standard etiketter på dit sprog.",
@ -934,6 +946,8 @@
"delete-recipes": "Slet Opskrifter", "delete-recipes": "Slet Opskrifter",
"source-unit-will-be-deleted": "Kildeenhed vil blive slettet" "source-unit-will-be-deleted": "Kildeenhed vil blive slettet"
}, },
"create-alias": "Opret alias",
"manage-aliases": "Administrer Aliaser",
"seed-data": "Opret standard data", "seed-data": "Opret standard data",
"seed": "Frø", "seed": "Frø",
"data-management": "Datastyring", "data-management": "Datastyring",
@ -941,7 +955,22 @@
"select-data": "vælg data", "select-data": "vælg data",
"select-language": "Vælg sprog", "select-language": "Vælg sprog",
"columns": "Kolonner", "columns": "Kolonner",
"combine": "Kombinér" "combine": "Kombinér",
"categories": {
"edit-category": "Rediger kategori",
"new-category": "Ny kategori",
"category-data": "Kategoridata"
},
"tags": {
"new-tag": "Nyt mærke",
"edit-tag": "Rediger Mærke",
"tag-data": "Mærke data"
},
"tools": {
"new-tool": "Nyt Værktøj",
"edit-tool": "Redigér værktøjer",
"tool-data": "Værktøjs Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "Brugerregistrering", "user-registration": "Brugerregistrering",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Kein Rezept gefunden", "no-recipe-found": "Kein Rezept gefunden",
"ok": "OK", "ok": "OK",
"options": "Optionen:", "options": "Optionen:",
"plural-name": "Mehrzahl",
"print": "Drucken", "print": "Drucken",
"print-preferences": "Druckeinstellungen", "print-preferences": "Druckeinstellungen",
"random": "Zufall", "random": "Zufall",
@ -462,7 +463,9 @@
"add-to-plan": "Zum Essensplan hinzufügen", "add-to-plan": "Zum Essensplan hinzufügen",
"add-to-timeline": "Zum Zeitstrahl hinzufügen", "add-to-timeline": "Zum Zeitstrahl hinzufügen",
"recipe-added-to-list": "Rezept wurde zur Einkaufsliste hinzugefügt", "recipe-added-to-list": "Rezept wurde zur Einkaufsliste hinzugefügt",
"recipes-added-to-list": "Rezepte wurden zur Einkaufsliste hinzugefügt",
"recipe-added-to-mealplan": "Rezept zum Essensplan hinzugefügt", "recipe-added-to-mealplan": "Rezept zum Essensplan hinzugefügt",
"failed-to-add-recipes-to-list": "Fehler beim Hinzufügen des Rezepts zur Einkaufsliste",
"failed-to-add-recipe-to-mealplan": "Fehler beim Hinzufügen des Rezepts zum Essensplan", "failed-to-add-recipe-to-mealplan": "Fehler beim Hinzufügen des Rezepts zum Essensplan",
"yield": "Portionsangabe", "yield": "Portionsangabe",
"quantity": "Menge", "quantity": "Menge",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "Benutzer kann andere in Gruppe einladen", "user-can-invite-other-to-group": "Benutzer kann andere in Gruppe einladen",
"user-can-manage-group": "Benutzer kann Gruppe verwalten", "user-can-manage-group": "Benutzer kann Gruppe verwalten",
"user-can-organize-group-data": "Benutzer kann Gruppendaten bearbeiten", "user-can-organize-group-data": "Benutzer kann Gruppendaten bearbeiten",
"enable-advanced-features": "Erweiterte Funktionen aktivieren" "enable-advanced-features": "Erweiterte Funktionen aktivieren",
"it-looks-like-this-is-your-first-time-logging-in": "Es sieht so aus, als ob du dich zum ersten Mal anmeldest.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Möchtest du das hier nicht mehr sehen? Bitte ändere deine E-Mail in den Benutzereinstellungen!"
}, },
"language-dialog": { "language-dialog": {
"translated": "übersetzt", "translated": "übersetzt",
@ -888,7 +893,9 @@
"create-food": "Lebensmittel erstellen", "create-food": "Lebensmittel erstellen",
"food-label": "Lebensmittel Etikett", "food-label": "Lebensmittel Etikett",
"edit-food": "Lebensmittel bearbeiten", "edit-food": "Lebensmittel bearbeiten",
"food-data": "Lebensmitteldaten" "food-data": "Lebensmitteldaten",
"example-food-singular": "z.B. Zwiebel",
"example-food-plural": "z.B. Zwiebeln"
}, },
"units": { "units": {
"seed-dialog-text": "Füllt die Datenbank mit gängigen Maßeinheiten basierend auf deiner Sprache.", "seed-dialog-text": "Füllt die Datenbank mit gängigen Maßeinheiten basierend auf deiner Sprache.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "{0} wird in {1} zusammengeführt", "merging-unit-into-unit": "{0} wird in {1} zusammengeführt",
"create-unit": "Einheit erstellen", "create-unit": "Einheit erstellen",
"abbreviation": "Abkürzung", "abbreviation": "Abkürzung",
"plural-abbreviation": "Mehrzahl Abkürzung",
"description": "Beschreibung", "description": "Beschreibung",
"display-as-fraction": "Als Bruchzahl anzeigen", "display-as-fraction": "Als Bruchzahl anzeigen",
"use-abbreviation": "Abkürzungen verwenden", "use-abbreviation": "Abkürzungen verwenden",
"edit-unit": "Einheit bearbeiten", "edit-unit": "Einheit bearbeiten",
"unit-data": "Einheitendaten", "unit-data": "Einheitendaten",
"use-abbv": "Verwende Abk.", "use-abbv": "Verwende Abk.",
"fraction": "Bruchzahl" "fraction": "Bruchzahl",
"example-unit-singular": "z.B. gehäufter Teelöffel",
"example-unit-plural": "z.B. gehäufte Teelöffel",
"example-unit-abbreviation-singular": "z.B. geh. TL",
"example-unit-abbreviation-plural": "z.B. geh. TL"
}, },
"labels": { "labels": {
"seed-dialog-text": "Füllt die Datenbank mit gängigen Etiketten basierend auf deiner Sprache.", "seed-dialog-text": "Füllt die Datenbank mit gängigen Etiketten basierend auf deiner Sprache.",
@ -934,6 +946,8 @@
"delete-recipes": "Rezepte löschen", "delete-recipes": "Rezepte löschen",
"source-unit-will-be-deleted": "Quell-Einheit wird gelöscht" "source-unit-will-be-deleted": "Quell-Einheit wird gelöscht"
}, },
"create-alias": "Alias erstellen",
"manage-aliases": "Aliasse verwalten",
"seed-data": "Musterdaten", "seed-data": "Musterdaten",
"seed": "Musterdaten", "seed": "Musterdaten",
"data-management": "Datenverwaltung", "data-management": "Datenverwaltung",
@ -941,7 +955,22 @@
"select-data": "Daten auswählen", "select-data": "Daten auswählen",
"select-language": "Sprache wählen", "select-language": "Sprache wählen",
"columns": "Spalten", "columns": "Spalten",
"combine": "Zusammenführen" "combine": "Zusammenführen",
"categories": {
"edit-category": "Kategorie bearbeiten",
"new-category": "Neue Kategorie",
"category-data": "Kategorien-Daten"
},
"tags": {
"new-tag": "Neues Schlagwort",
"edit-tag": "Schlagwort bearbeiten",
"tag-data": "Schlagworte-Daten"
},
"tools": {
"new-tool": "Neues Utensil",
"edit-tool": "Utensil bearbeiten",
"tool-data": "Utensilien-Daten"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "Benutzerregistrierung", "user-registration": "Benutzerregistrierung",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Δεν βρέθηκαν συνταγές", "no-recipe-found": "Δεν βρέθηκαν συνταγές",
"ok": "ΟΚ", "ok": "ΟΚ",
"options": "Επιλογές:", "options": "Επιλογές:",
"plural-name": "Plural Name",
"print": "Εκτύπωση", "print": "Εκτύπωση",
"print-preferences": "Προτιμήσεις Εκτύπωσης", "print-preferences": "Προτιμήσεις Εκτύπωσης",
"random": "Τυχαίο", "random": "Τυχαίο",
@ -462,7 +463,9 @@
"add-to-plan": "Add to Plan", "add-to-plan": "Add to Plan",
"add-to-timeline": "Add to Timeline", "add-to-timeline": "Add to Timeline",
"recipe-added-to-list": "Recipe added to list", "recipe-added-to-list": "Recipe added to list",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Recipe added to mealplan", "recipe-added-to-mealplan": "Recipe added to mealplan",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Failed to add recipe to mealplan", "failed-to-add-recipe-to-mealplan": "Failed to add recipe to mealplan",
"yield": "Yield", "yield": "Yield",
"quantity": "Quantity", "quantity": "Quantity",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "User can invite other to group", "user-can-invite-other-to-group": "User can invite other to group",
"user-can-manage-group": "User can manage group", "user-can-manage-group": "User can manage group",
"user-can-organize-group-data": "User can organize group data", "user-can-organize-group-data": "User can organize group data",
"enable-advanced-features": "Enable advanced features" "enable-advanced-features": "Enable advanced features",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "μεταφρασμένο", "translated": "μεταφρασμένο",
@ -888,7 +893,9 @@
"create-food": "Create Food", "create-food": "Create Food",
"food-label": "Food Label", "food-label": "Food Label",
"edit-food": "Edit Food", "edit-food": "Edit Food",
"food-data": "Food Data" "food-data": "Food Data",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Seed the database with common units based on your local language.", "seed-dialog-text": "Seed the database with common units based on your local language.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "Merging {0} into {1}", "merging-unit-into-unit": "Merging {0} into {1}",
"create-unit": "Create Unit", "create-unit": "Create Unit",
"abbreviation": "Abbreviation", "abbreviation": "Abbreviation",
"plural-abbreviation": "Plural Abbreviation",
"description": "Description", "description": "Description",
"display-as-fraction": "Display as Fraction", "display-as-fraction": "Display as Fraction",
"use-abbreviation": "Use Abbreviation", "use-abbreviation": "Use Abbreviation",
"edit-unit": "Edit Unit", "edit-unit": "Edit Unit",
"unit-data": "Unit Data", "unit-data": "Unit Data",
"use-abbv": "Use Abbv.", "use-abbv": "Use Abbv.",
"fraction": "Fraction" "fraction": "Fraction",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Seed the database with common labels based on your local language.", "seed-dialog-text": "Seed the database with common labels based on your local language.",
@ -934,6 +946,8 @@
"delete-recipes": "Delete Recipes", "delete-recipes": "Delete Recipes",
"source-unit-will-be-deleted": "Source Unit will be deleted" "source-unit-will-be-deleted": "Source Unit will be deleted"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Seed Data", "seed-data": "Seed Data",
"seed": "Seed", "seed": "Seed",
"data-management": "Data Management", "data-management": "Data Management",
@ -941,7 +955,22 @@
"select-data": "Select Data", "select-data": "Select Data",
"select-language": "Select Language", "select-language": "Select Language",
"columns": "Columns", "columns": "Columns",
"combine": "Combine" "combine": "Combine",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "User Registration", "user-registration": "User Registration",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "No Recipe Found", "no-recipe-found": "No Recipe Found",
"ok": "OK", "ok": "OK",
"options": "Options:", "options": "Options:",
"plural-name": "Plural Name",
"print": "Print", "print": "Print",
"print-preferences": "Print Preferences", "print-preferences": "Print Preferences",
"random": "Random", "random": "Random",
@ -463,7 +464,9 @@
"add-to-plan": "Add to Plan", "add-to-plan": "Add to Plan",
"add-to-timeline": "Add to Timeline", "add-to-timeline": "Add to Timeline",
"recipe-added-to-list": "Recipe added to list", "recipe-added-to-list": "Recipe added to list",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Recipe added to mealplan", "recipe-added-to-mealplan": "Recipe added to mealplan",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Failed to add recipe to mealplan", "failed-to-add-recipe-to-mealplan": "Failed to add recipe to mealplan",
"yield": "Yield", "yield": "Yield",
"quantity": "Quantity", "quantity": "Quantity",
@ -868,7 +871,9 @@
"user-can-invite-other-to-group": "User can invite other to group", "user-can-invite-other-to-group": "User can invite other to group",
"user-can-manage-group": "User can manage group", "user-can-manage-group": "User can manage group",
"user-can-organize-group-data": "User can organize group data", "user-can-organize-group-data": "User can organize group data",
"enable-advanced-features": "Enable advanced features" "enable-advanced-features": "Enable advanced features",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "translated", "translated": "translated",
@ -889,7 +894,9 @@
"create-food": "Create Food", "create-food": "Create Food",
"food-label": "Food Label", "food-label": "Food Label",
"edit-food": "Edit Food", "edit-food": "Edit Food",
"food-data": "Food Data" "food-data": "Food Data",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Seed the database with common units based on your local language.", "seed-dialog-text": "Seed the database with common units based on your local language.",
@ -900,13 +907,18 @@
"merging-unit-into-unit": "Merging {0} into {1}", "merging-unit-into-unit": "Merging {0} into {1}",
"create-unit": "Create Unit", "create-unit": "Create Unit",
"abbreviation": "Abbreviation", "abbreviation": "Abbreviation",
"plural-abbreviation": "Plural Abbreviation",
"description": "Description", "description": "Description",
"display-as-fraction": "Display as Fraction", "display-as-fraction": "Display as Fraction",
"use-abbreviation": "Use Abbreviation", "use-abbreviation": "Use Abbreviation",
"edit-unit": "Edit Unit", "edit-unit": "Edit Unit",
"unit-data": "Unit Data", "unit-data": "Unit Data",
"use-abbv": "Use Abbv.", "use-abbv": "Use Abbv.",
"fraction": "Fraction" "fraction": "Fraction",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Seed the database with common labels based on your local language.", "seed-dialog-text": "Seed the database with common labels based on your local language.",
@ -935,6 +947,8 @@
"delete-recipes": "Delete Recipes", "delete-recipes": "Delete Recipes",
"source-unit-will-be-deleted": "Source Unit will be deleted" "source-unit-will-be-deleted": "Source Unit will be deleted"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Seed Data", "seed-data": "Seed Data",
"seed": "Seed", "seed": "Seed",
"data-management": "Data Management", "data-management": "Data Management",
@ -942,7 +956,22 @@
"select-data": "Select Data", "select-data": "Select Data",
"select-language": "Select Language", "select-language": "Select Language",
"columns": "Columns", "columns": "Columns",
"combine": "Combine" "combine": "Combine",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "User Registration", "user-registration": "User Registration",

View File

@ -464,7 +464,9 @@
"add-to-plan": "Add to Plan", "add-to-plan": "Add to Plan",
"add-to-timeline": "Add to Timeline", "add-to-timeline": "Add to Timeline",
"recipe-added-to-list": "Recipe added to list", "recipe-added-to-list": "Recipe added to list",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Recipe added to mealplan", "recipe-added-to-mealplan": "Recipe added to mealplan",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Failed to add recipe to mealplan", "failed-to-add-recipe-to-mealplan": "Failed to add recipe to mealplan",
"yield": "Yield", "yield": "Yield",
"quantity": "Quantity", "quantity": "Quantity",
@ -869,7 +871,9 @@
"user-can-invite-other-to-group": "User can invite other to group", "user-can-invite-other-to-group": "User can invite other to group",
"user-can-manage-group": "User can manage group", "user-can-manage-group": "User can manage group",
"user-can-organize-group-data": "User can organize group data", "user-can-organize-group-data": "User can organize group data",
"enable-advanced-features": "Enable advanced features" "enable-advanced-features": "Enable advanced features",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "translated", "translated": "translated",
@ -952,7 +956,22 @@
"select-data": "Select Data", "select-data": "Select Data",
"select-language": "Select Language", "select-language": "Select Language",
"columns": "Columns", "columns": "Columns",
"combine": "Combine" "combine": "Combine",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "User Registration", "user-registration": "User Registration",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Receta no encontrada", "no-recipe-found": "Receta no encontrada",
"ok": "Aceptar", "ok": "Aceptar",
"options": "Opciones:", "options": "Opciones:",
"plural-name": "Nombre en plural",
"print": "Imprimir", "print": "Imprimir",
"print-preferences": "Preferencias de impresión", "print-preferences": "Preferencias de impresión",
"random": "Aleatorio", "random": "Aleatorio",
@ -369,7 +370,7 @@
"trim-whitespace-description": "Eliminar espacios en blanco iniciales y finales así como líneas en blanco", "trim-whitespace-description": "Eliminar espacios en blanco iniciales y finales así como líneas en blanco",
"trim-prefix-description": "Eliminar el primer carácter de cada línea", "trim-prefix-description": "Eliminar el primer carácter de cada línea",
"split-by-numbered-line-description": "Intenta dividir un párrafo utilizando los patrones '1)' o '1.'", "split-by-numbered-line-description": "Intenta dividir un párrafo utilizando los patrones '1)' o '1.'",
"import-by-url": "Importar una receta por URL", "import-by-url": "Importar una receta desde URL",
"create-manually": "Crear receta manualmente", "create-manually": "Crear receta manualmente",
"make-recipe-image": "Haz de esta la imagen de la receta" "make-recipe-image": "Haz de esta la imagen de la receta"
}, },
@ -462,7 +463,9 @@
"add-to-plan": "Agregar al menú", "add-to-plan": "Agregar al menú",
"add-to-timeline": "Añadir al cronograma", "add-to-timeline": "Añadir al cronograma",
"recipe-added-to-list": "Receta añadida a la lista", "recipe-added-to-list": "Receta añadida a la lista",
"recipes-added-to-list": "Recetas añadidas a la lista",
"recipe-added-to-mealplan": "Receta añadida al menú", "recipe-added-to-mealplan": "Receta añadida al menú",
"failed-to-add-recipes-to-list": "Error al añadir las recetas a la lista",
"failed-to-add-recipe-to-mealplan": "Error al añadir receta al menú", "failed-to-add-recipe-to-mealplan": "Error al añadir receta al menú",
"yield": "Raciones", "yield": "Raciones",
"quantity": "Cantidad", "quantity": "Cantidad",
@ -500,7 +503,7 @@
"how-did-it-turn-out": "¿Cómo resultó esto?", "how-did-it-turn-out": "¿Cómo resultó esto?",
"user-made-this": "{user} hizo esto", "user-made-this": "{user} hizo esto",
"last-made-date": "Cocinado por última vez el {date}", "last-made-date": "Cocinado por última vez el {date}",
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom json key/value pairs within a recipe to reference from 3rd part applications. You can use these keys to contain information to trigger automation or custom messages to relay to your desired device.", "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",
"attach-images-hint": "Adjuntar imágenes arrastrando y soltando en el editor", "attach-images-hint": "Adjuntar imágenes arrastrando y soltando en el editor",
@ -520,7 +523,7 @@
"create-a-recipe-by-providing-the-name-all-recipes-must-have-unique-names": "Crear una receta proporcionando el nombre. Todas las recetas deben tener nombres únicos.", "create-a-recipe-by-providing-the-name-all-recipes-must-have-unique-names": "Crear una receta proporcionando el nombre. Todas las recetas deben tener nombres únicos.",
"new-recipe-names-must-be-unique": "El nombre de la receta debe ser único", "new-recipe-names-must-be-unique": "El nombre de la receta debe ser único",
"scrape-recipe": "Analiza receta", "scrape-recipe": "Analiza receta",
"scrape-recipe-description": "Scrape a recipe by url. Provide the url for the site you want to scrape, and Mealie will attempt to scrape the recipe from that site and add it to your collection.", "scrape-recipe-description": "Importa una receta por URL. Proporcione la URL para el sitio que desea importar, y Mealie intentará importar la receta de ese sitio y añadirla a su colección.",
"import-original-keywords-as-tags": "Importar palabras clave originales como etiquetas", "import-original-keywords-as-tags": "Importar palabras clave originales como etiquetas",
"stay-in-edit-mode": "Permanecer en modo edición", "stay-in-edit-mode": "Permanecer en modo edición",
"import-from-zip": "Importar desde zip", "import-from-zip": "Importar desde zip",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "El usuario puede invitar a otros al grupo", "user-can-invite-other-to-group": "El usuario puede invitar a otros al grupo",
"user-can-manage-group": "El usuario puede administrar el grupo", "user-can-manage-group": "El usuario puede administrar el grupo",
"user-can-organize-group-data": "El usuario puede organizar los datos del grupo", "user-can-organize-group-data": "El usuario puede organizar los datos del grupo",
"enable-advanced-features": "Habilitar Características Avanzadas" "enable-advanced-features": "Habilitar Características Avanzadas",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "traducido", "translated": "traducido",
@ -888,7 +893,9 @@
"create-food": "Crear Alimento", "create-food": "Crear Alimento",
"food-label": "Etiqueta de Alimento", "food-label": "Etiqueta de Alimento",
"edit-food": "Editar Alimento", "edit-food": "Editar Alimento",
"food-data": "Datos de Alimento" "food-data": "Datos de Alimento",
"example-food-singular": "ej: Cebolla",
"example-food-plural": "ej: Cebollas"
}, },
"units": { "units": {
"seed-dialog-text": "Añade a la base de datos unidades comunes basadas en su idioma local.", "seed-dialog-text": "Añade a la base de datos unidades comunes basadas en su idioma local.",
@ -899,23 +906,28 @@
"merging-unit-into-unit": "Merging {0} into {1}", "merging-unit-into-unit": "Merging {0} into {1}",
"create-unit": "Create Unit", "create-unit": "Create Unit",
"abbreviation": "Abreviatura", "abbreviation": "Abreviatura",
"plural-abbreviation": "Abreviatura en plural",
"description": "Descripción", "description": "Descripción",
"display-as-fraction": "Display as Fraction", "display-as-fraction": "Display as Fraction",
"use-abbreviation": "Usar Abreviaturas", "use-abbreviation": "Usar Abreviaturas",
"edit-unit": "Editar unidad", "edit-unit": "Editar unidad",
"unit-data": "Unit Data", "unit-data": "Unit Data",
"use-abbv": "Use Abbv.", "use-abbv": "Usar Abr.",
"fraction": "Fraction" "fraction": "Fracción",
"example-unit-singular": "ej: Cucharada",
"example-unit-plural": "ej: Cucharadas",
"example-unit-abbreviation-singular": "ej: Cda",
"example-unit-abbreviation-plural": "ej: Cdas"
}, },
"labels": { "labels": {
"seed-dialog-text": "Añade a la base de datos etiquetas comunes basadas en su idioma local.", "seed-dialog-text": "Añade a la base de datos etiquetas comunes basadas en su idioma local.",
"edit-label": "Editar etiqueta", "edit-label": "Editar etiqueta",
"new-label": "Nueva etiqueta", "new-label": "Nueva etiqueta",
"labels": "Labels" "labels": "Etiquetas"
}, },
"recipes": { "recipes": {
"purge-exports": "Purge Exports", "purge-exports": "Limpiar exportaciones",
"are-you-sure-you-want-to-delete-all-export-data": "Are you sure you want to delete all export data?", "are-you-sure-you-want-to-delete-all-export-data": "¿Está seguro de que desea eliminar todos sus datos de exportación?",
"confirm-delete-recipes": "Are you sure you want to delete the following recipes? This action cannot be undone.", "confirm-delete-recipes": "Are you sure you want to delete the following recipes? This action cannot be undone.",
"the-following-recipes-selected-length-will-be-exported": "The following recipes ({0}) will be exported.", "the-following-recipes-selected-length-will-be-exported": "The following recipes ({0}) will be exported.",
"settings-chosen-explanation": "Settings chosen here, excluding the locked option, will be applied to all selected recipes.", "settings-chosen-explanation": "Settings chosen here, excluding the locked option, will be applied to all selected recipes.",
@ -928,20 +940,37 @@
"tag": "Etiqueta", "tag": "Etiqueta",
"categorize": "Clasificar", "categorize": "Clasificar",
"update-settings": "Actualizar configuración", "update-settings": "Actualizar configuración",
"tag-recipes": "Tag Recipes", "tag-recipes": "Etiquetar Recetas",
"categorize-recipes": "Categorizar recetas", "categorize-recipes": "Categorizar recetas",
"export-recipes": "Exportar recetas", "export-recipes": "Exportar recetas",
"delete-recipes": "Borrar Recetas", "delete-recipes": "Borrar Recetas",
"source-unit-will-be-deleted": "Source Unit will be deleted" "source-unit-will-be-deleted": "Source Unit will be deleted"
}, },
"create-alias": "Crear un Alias",
"manage-aliases": "Administrar Alias",
"seed-data": "Datos de ejemplo", "seed-data": "Datos de ejemplo",
"seed": "Seed", "seed": "Semilla",
"data-management": "Data Management", "data-management": "Data Management",
"data-management-description": "Select which data set you want to make changes to.", "data-management-description": "Select which data set you want to make changes to.",
"select-data": "Seleccionar datos", "select-data": "Seleccionar datos",
"select-language": "Seleccionar idioma", "select-language": "Seleccionar idioma",
"columns": "Columnas", "columns": "Columnas",
"combine": "Combinar" "combine": "Combinar",
"categories": {
"edit-category": "Editar Categoría",
"new-category": "Nueva Categoría",
"category-data": "Datos de la categoría"
},
"tags": {
"new-tag": "Nueva Etiqueta",
"edit-tag": "Editar Etiqueta",
"tag-data": "Etiquetar Datos"
},
"tools": {
"new-tool": "Nueva Herramienta",
"edit-tool": "Editar Herramienta",
"tool-data": "Datos Herramienta"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "Registro de usuario", "user-registration": "Registro de usuario",
@ -992,7 +1021,7 @@
"ocr-editor": { "ocr-editor": {
"ocr-editor": "Editor de OCR", "ocr-editor": "Editor de OCR",
"selection-mode": "Modo de selección", "selection-mode": "Modo de selección",
"pan-and-zoom-picture": "Pan and zoom picture", "pan-and-zoom-picture": "Desplazar y hacer zoom en la imagen",
"split-text": "Split text", "split-text": "Split text",
"preserve-line-breaks": "Preserve original line breaks", "preserve-line-breaks": "Preserve original line breaks",
"split-by-block": "Split by text block", "split-by-block": "Split by text block",
@ -1040,16 +1069,16 @@
"action-delete-log-files-description": "Deletes all the log files", "action-delete-log-files-description": "Deletes all the log files",
"action-clean-directories-name": "Clean Directories", "action-clean-directories-name": "Clean Directories",
"action-clean-directories-description": "Removes all the recipe folders that are not valid UUIDs", "action-clean-directories-description": "Removes all the recipe folders that are not valid UUIDs",
"action-clean-temporary-files-name": "Clean Temporary Files", "action-clean-temporary-files-name": "Eliminar archivos temporales",
"action-clean-temporary-files-description": "Removes all files and folders in the .temp directory", "action-clean-temporary-files-description": "Eliminar todos los archivos y carpetas del directorio .temp",
"action-clean-images-name": "Clean Images", "action-clean-images-name": "Limpiar imágenes",
"action-clean-images-description": "Elimina todas las imágenes que no terminan con .webp", "action-clean-images-description": "Elimina todas las imágenes que no terminan con .webp",
"actions-description": "Maintenance actions are {destructive_in_bold} and should be used with caution. Performing any of these actions is {irreversible_in_bold}.", "actions-description": "Las acciones de mantenimiento son {destructive_in_bold} y deben utilizarse con precaución. Realizar cualquiera de estas acciones es {irreversible_in_bold}.",
"actions-description-destructive": "destructive", "actions-description-destructive": "destructivas",
"actions-description-irreversible": "irreversible", "actions-description-irreversible": "irreversible",
"logs-action-refresh": "Refresh Logs", "logs-action-refresh": "Actualizar Logs",
"logs-page-title": "Mealie Logs", "logs-page-title": "Logs de Mealie",
"logs-tail-lines-label": "Tail Lines" "logs-tail-lines-label": "Últimas Líneas"
}, },
"mainentance": { "mainentance": {
"actions-title": "Acciones" "actions-title": "Acciones"
@ -1063,28 +1092,28 @@
"ingredient-text": "Ingredient Text", "ingredient-text": "Ingredient Text",
"average-confident": "{0} Confident", "average-confident": "{0} Confident",
"try-an-example": "Try an example", "try-an-example": "Try an example",
"parser": "Parser", "parser": "Procesador",
"background-tasks": "Background Tasks", "background-tasks": "Tareas en Segundo Plano",
"background-tasks-description": "Here you can view all the running background tasks and their status", "background-tasks-description": "Here you can view all the running background tasks and their status",
"no-logs-found": "No Logs Found", "no-logs-found": "No Logs Found",
"tasks": "Tasks" "tasks": "Tareas"
}, },
"profile": { "profile": {
"welcome-user": "👋 Welcome, {0}", "welcome-user": "👋 Hola, {0}",
"description": "Manage your profile, recipes, and group settings.", "description": "Administra tu perfil, recetas y ajustes de grupo.",
"get-invite-link": "Get Invite Link", "get-invite-link": "Obtener enlace de invitación",
"get-public-link": "Get Public Link", "get-public-link": "Obtener enlace público",
"account-summary": "Account Summary", "account-summary": "Información de la cuenta",
"account-summary-description": "Here's a summary of your group's information", "account-summary-description": "Este es un resumen de la información de tu grupo",
"group-statistics": "Group Statistics", "group-statistics": "Group Statistics",
"group-statistics-description": "Your Group Statistics provide some insight how you're using Mealie.", "group-statistics-description": "Your Group Statistics provide some insight how you're using Mealie.",
"storage-capacity": "Storage Capacity", "storage-capacity": "Capacidad de almacenamiento",
"storage-capacity-description": "Your storage capacity is a calculation of the images and assets you have uploaded.", "storage-capacity-description": "Your storage capacity is a calculation of the images and assets you have uploaded.",
"personal": "Personal", "personal": "Personal",
"personal-description": "These are settings that are personal to you. Changes here won't affect other users", "personal-description": "These are settings that are personal to you. Changes here won't affect other users",
"user-settings": "User Settings", "user-settings": "Ajustes de usuario",
"user-settings-description": "Manage your preferences, change your password, and update your email", "user-settings-description": "Administrar preferencias, cambiar contraseña y actualizar correo electrónico",
"api-tokens-description": "Manage your API Tokens for access from external applications", "api-tokens-description": "Administra tus API Tokens para acceder desde aplicaciones externas",
"group-description": "These items are shared within your group. Editing one of them will change it for the whole group!", "group-description": "These items are shared within your group. Editing one of them will change it for the whole group!",
"group-settings": "Group Settings", "group-settings": "Group Settings",
"group-settings-description": "Manage your common group settings like mealplan and privacy settings.", "group-settings-description": "Manage your common group settings like mealplan and privacy settings.",
@ -1111,19 +1140,19 @@
"manage-members": "Gestionar miembros", "manage-members": "Gestionar miembros",
"manage-webhooks": "Manage Webhooks", "manage-webhooks": "Manage Webhooks",
"manage-notifiers": "Manage Notifiers", "manage-notifiers": "Manage Notifiers",
"manage-data-migrations": "Manage Data Migrations" "manage-data-migrations": "Administrar Migraciones de Datos"
}, },
"cookbook": { "cookbook": {
"cookbooks": "Cookbooks", "cookbooks": "Recetarios",
"description": "Cookbooks are another way to organize recipes by creating cross sections of recipes and tags. Creating a cookbook will add an entry to the side-bar and all the recipes with the tags and categories chosen will be displayed in the cookbook.", "description": "Los recetarios son otra forma de organizar recetas creando secciones cruzadas de recetas y etiquetas. Crear un recetario añadirá una entrada a la barra lateral y todas las recetas con las etiquetas y categorías elegidas se mostrarán en el recetario.",
"public-cookbook": "Public Cookbook", "public-cookbook": "Recetario público",
"public-cookbook-description": "Public Cookbooks can be shared with non-mealie users and will be displayed on your groups page.", "public-cookbook-description": "Los recetarios públicos se pueden compartir con usuarios externos y se mostrarán en su página de grupos.",
"filter-options": "Opciones de filtro", "filter-options": "Opciones de filtro",
"filter-options-description": "When require all is selected the cookbook will only include recipes that have all of the items selected. This applies to each subset of selectors and not a cross section of the selected items.", "filter-options-description": "Cuando \"Requerir todo\" esté seleccionado, el recetario solo incluirá recetas que tengan todos los elementos seleccionados. Esto se aplica a cada subconjunto de selectores y no a una sección de los elementos seleccionados.",
"require-all-categories": "Require All Categories", "require-all-categories": "Requerir todas las categorías",
"require-all-tags": "Require All Tags", "require-all-tags": "Requerir todas las etiquetas",
"require-all-tools": "Require All Tools", "require-all-tools": "Requiere todas las herramientas",
"cookbook-name": "Cookbook Name", "cookbook-name": "Nombre del recetario",
"cookbook-with-name": "Cookbook {0}" "cookbook-with-name": "Recetario {0}"
} }
} }

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Reseptiä ei löytynyt", "no-recipe-found": "Reseptiä ei löytynyt",
"ok": "OK", "ok": "OK",
"options": "Valinnat:", "options": "Valinnat:",
"plural-name": "Plural Name",
"print": "Tulosta", "print": "Tulosta",
"print-preferences": "Tulosta asetukset", "print-preferences": "Tulosta asetukset",
"random": "Satunnainen", "random": "Satunnainen",
@ -462,7 +463,9 @@
"add-to-plan": "Lisää suunnitelmaan", "add-to-plan": "Lisää suunnitelmaan",
"add-to-timeline": "Lisää aikajanalle", "add-to-timeline": "Lisää aikajanalle",
"recipe-added-to-list": "Resepti lisätty listalle", "recipe-added-to-list": "Resepti lisätty listalle",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Resepti lisätty ateriasuunnitelmaan", "recipe-added-to-mealplan": "Resepti lisätty ateriasuunnitelmaan",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Reseptiä ei voitu lisätä ateriasuunnitelmaan", "failed-to-add-recipe-to-mealplan": "Reseptiä ei voitu lisätä ateriasuunnitelmaan",
"yield": "Sato", "yield": "Sato",
"quantity": "Määrä", "quantity": "Määrä",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "Käyttäjä voi kutsua muita ryhmään", "user-can-invite-other-to-group": "Käyttäjä voi kutsua muita ryhmään",
"user-can-manage-group": "Käyttäjä voi hallita ryhmää", "user-can-manage-group": "Käyttäjä voi hallita ryhmää",
"user-can-organize-group-data": "Käyttäjä voi järjestellä ryhmän tietoja", "user-can-organize-group-data": "Käyttäjä voi järjestellä ryhmän tietoja",
"enable-advanced-features": "Salli edistyneemmät ominaisuudet" "enable-advanced-features": "Salli edistyneemmät ominaisuudet",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "käännetty", "translated": "käännetty",
@ -888,7 +893,9 @@
"create-food": "Luo elintarvike", "create-food": "Luo elintarvike",
"food-label": "Elintarvikkeiden nimike", "food-label": "Elintarvikkeiden nimike",
"edit-food": "Muokkaa elintarviketta", "edit-food": "Muokkaa elintarviketta",
"food-data": "Elintarvikkeiden tiedot" "food-data": "Elintarvikkeiden tiedot",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Lisää tietokantaan yksiköt paikallisen kielen perusteella.", "seed-dialog-text": "Lisää tietokantaan yksiköt paikallisen kielen perusteella.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "Yhdistä {0} ja {1} yhdeksi", "merging-unit-into-unit": "Yhdistä {0} ja {1} yhdeksi",
"create-unit": "Luo yksikkö", "create-unit": "Luo yksikkö",
"abbreviation": "Lyhenne", "abbreviation": "Lyhenne",
"plural-abbreviation": "Plural Abbreviation",
"description": "Kuvaus", "description": "Kuvaus",
"display-as-fraction": "Näytä murtolukuna", "display-as-fraction": "Näytä murtolukuna",
"use-abbreviation": "Käytä Lyhennettä", "use-abbreviation": "Käytä Lyhennettä",
"edit-unit": "Muokkaa yksiköitä", "edit-unit": "Muokkaa yksiköitä",
"unit-data": "Yksikkötiedot", "unit-data": "Yksikkötiedot",
"use-abbv": "Käytä lyhennettä.", "use-abbv": "Käytä lyhennettä.",
"fraction": "Murtoluku" "fraction": "Murtoluku",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Lisää tietokantaan yleiset tunnisteet paikallisen kielen perusteella.", "seed-dialog-text": "Lisää tietokantaan yleiset tunnisteet paikallisen kielen perusteella.",
@ -934,6 +946,8 @@
"delete-recipes": "Poista Reseptit", "delete-recipes": "Poista Reseptit",
"source-unit-will-be-deleted": "Lähdeyksikkö poistetaan" "source-unit-will-be-deleted": "Lähdeyksikkö poistetaan"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Tietokannan pohjadata", "seed-data": "Tietokannan pohjadata",
"seed": "Lisää pohjadata", "seed": "Lisää pohjadata",
"data-management": "Tietojen hallinta", "data-management": "Tietojen hallinta",
@ -941,7 +955,22 @@
"select-data": "Valitse Tiedot", "select-data": "Valitse Tiedot",
"select-language": "Valitse kieli", "select-language": "Valitse kieli",
"columns": "Sarakkeet", "columns": "Sarakkeet",
"combine": "Yhdistä" "combine": "Yhdistä",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "Käyttäjien rekisteröinti", "user-registration": "Käyttäjien rekisteröinti",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Aucune recette trouvée", "no-recipe-found": "Aucune recette trouvée",
"ok": "OK", "ok": "OK",
"options": "Options :", "options": "Options :",
"plural-name": "Nom au pluriel",
"print": "Imprimer", "print": "Imprimer",
"print-preferences": "Préférences d'impression", "print-preferences": "Préférences d'impression",
"random": "Aléatoire", "random": "Aléatoire",
@ -462,7 +463,9 @@
"add-to-plan": "Ajouter à la planification des repas", "add-to-plan": "Ajouter à la planification des repas",
"add-to-timeline": "Ajouter à lhistorique", "add-to-timeline": "Ajouter à lhistorique",
"recipe-added-to-list": "Recette ajoutée à la liste", "recipe-added-to-list": "Recette ajoutée à la liste",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Recette ajoutée à la planification des repas", "recipe-added-to-mealplan": "Recette ajoutée à la planification des repas",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Échec de l'ajout de la recette à la planification des repas", "failed-to-add-recipe-to-mealplan": "Échec de l'ajout de la recette à la planification des repas",
"yield": "Rendement", "yield": "Rendement",
"quantity": "Quantité", "quantity": "Quantité",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "L'utilisateur peut inviter quelqu'un au groupe", "user-can-invite-other-to-group": "L'utilisateur peut inviter quelqu'un au groupe",
"user-can-manage-group": "L'utilisateur peut gérer le groupe", "user-can-manage-group": "L'utilisateur peut gérer le groupe",
"user-can-organize-group-data": "L'utilisateur peut organiser des données de groupe", "user-can-organize-group-data": "L'utilisateur peut organiser des données de groupe",
"enable-advanced-features": "Activer les fonctions avancées" "enable-advanced-features": "Activer les fonctions avancées",
"it-looks-like-this-is-your-first-time-logging-in": "Il semble que ce soit votre première connexion.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Vous ne voulez plus voir cela? Assurez-vous de changer votre adresse courriel dans vos paramètres d'utilisateur!"
}, },
"language-dialog": { "language-dialog": {
"translated": "traduit", "translated": "traduit",
@ -888,7 +893,9 @@
"create-food": "Créer un aliment", "create-food": "Créer un aliment",
"food-label": "Étiquette de l'aliment", "food-label": "Étiquette de l'aliment",
"edit-food": "Modifier Aliment", "edit-food": "Modifier Aliment",
"food-data": "Données de l'aliment" "food-data": "Données de l'aliment",
"example-food-singular": "ex : Oignon",
"example-food-plural": "ex : Oignons"
}, },
"units": { "units": {
"seed-dialog-text": "Initialisez la base de données avec des unités communes basées sur votre langue locale.", "seed-dialog-text": "Initialisez la base de données avec des unités communes basées sur votre langue locale.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "Fusion de {0} dans {1}", "merging-unit-into-unit": "Fusion de {0} dans {1}",
"create-unit": "Créer une unité", "create-unit": "Créer une unité",
"abbreviation": "Abréviation", "abbreviation": "Abréviation",
"plural-abbreviation": "Abréviation au pluriel",
"description": "Description", "description": "Description",
"display-as-fraction": "Afficher sous forme de fraction", "display-as-fraction": "Afficher sous forme de fraction",
"use-abbreviation": "Utiliser l'abréviation", "use-abbreviation": "Utiliser l'abréviation",
"edit-unit": "Modifier l'unité", "edit-unit": "Modifier l'unité",
"unit-data": "Données de l'unité", "unit-data": "Données de l'unité",
"use-abbv": "Utiliser abr.", "use-abbv": "Utiliser abr.",
"fraction": "Fraction" "fraction": "Fraction",
"example-unit-singular": "ex : Cuillère à soupe",
"example-unit-plural": "ex : Cuillères à soupe",
"example-unit-abbreviation-singular": "ex : CàS",
"example-unit-abbreviation-plural": "ex : CàS"
}, },
"labels": { "labels": {
"seed-dialog-text": "Initialisez la base de données avec des étiquettes communes basées sur votre langue locale.", "seed-dialog-text": "Initialisez la base de données avec des étiquettes communes basées sur votre langue locale.",
@ -934,6 +946,8 @@
"delete-recipes": "Supprimer les recettes", "delete-recipes": "Supprimer les recettes",
"source-unit-will-be-deleted": "L'unité source sera supprimée" "source-unit-will-be-deleted": "L'unité source sera supprimée"
}, },
"create-alias": "Créer un alias",
"manage-aliases": "Gérer les alias",
"seed-data": "Initialiser les données", "seed-data": "Initialiser les données",
"seed": "Initialiser", "seed": "Initialiser",
"data-management": "Gestion des données", "data-management": "Gestion des données",
@ -941,7 +955,22 @@
"select-data": "Sélectionner les données", "select-data": "Sélectionner les données",
"select-language": "Sélectionnez une langue", "select-language": "Sélectionnez une langue",
"columns": "Colonnes", "columns": "Colonnes",
"combine": "Combiner" "combine": "Combiner",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "Inscription dutilisateur", "user-registration": "Inscription dutilisateur",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Aucune recette trouvée", "no-recipe-found": "Aucune recette trouvée",
"ok": "OK", "ok": "OK",
"options": "Options:", "options": "Options:",
"plural-name": "Nom au pluriel",
"print": "Imprimer", "print": "Imprimer",
"print-preferences": "Préférences d'impression", "print-preferences": "Préférences d'impression",
"random": "Aléatoire", "random": "Aléatoire",
@ -462,7 +463,9 @@
"add-to-plan": "Ajouter au menu", "add-to-plan": "Ajouter au menu",
"add-to-timeline": "Ajouter à lhistorique", "add-to-timeline": "Ajouter à lhistorique",
"recipe-added-to-list": "Recette ajoutée à la liste", "recipe-added-to-list": "Recette ajoutée à la liste",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Recette ajoutée au menu", "recipe-added-to-mealplan": "Recette ajoutée au menu",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Échec de lajout de la recette au menu", "failed-to-add-recipe-to-mealplan": "Échec de lajout de la recette au menu",
"yield": "Nombre de portions", "yield": "Nombre de portions",
"quantity": "Quantité", "quantity": "Quantité",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "L'utilisateur peut inviter quelqu'un au groupe", "user-can-invite-other-to-group": "L'utilisateur peut inviter quelqu'un au groupe",
"user-can-manage-group": "L'utilisateur peut gérer le groupe", "user-can-manage-group": "L'utilisateur peut gérer le groupe",
"user-can-organize-group-data": "L'utilisateur peut organiser des données de groupe", "user-can-organize-group-data": "L'utilisateur peut organiser des données de groupe",
"enable-advanced-features": "Activer les fonctions avancées" "enable-advanced-features": "Activer les fonctions avancées",
"it-looks-like-this-is-your-first-time-logging-in": "Il semble que ce soit votre première connexion.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Vous ne voulez plus voir cela ? Assurez-vous de changer votre adresse e-mail dans vos paramètres d'utilisateur !"
}, },
"language-dialog": { "language-dialog": {
"translated": "traduit", "translated": "traduit",
@ -888,7 +893,9 @@
"create-food": "Créer un aliment", "create-food": "Créer un aliment",
"food-label": "Étiquette de l'aliment", "food-label": "Étiquette de l'aliment",
"edit-food": "Modifier Aliment", "edit-food": "Modifier Aliment",
"food-data": "Données de l'aliment" "food-data": "Données de l'aliment",
"example-food-singular": "ex : Oignon",
"example-food-plural": "ex : Oignons"
}, },
"units": { "units": {
"seed-dialog-text": "Initialisez la base de données avec des unités communes basées sur votre langue locale.", "seed-dialog-text": "Initialisez la base de données avec des unités communes basées sur votre langue locale.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "Fusion de {0} dans {1}", "merging-unit-into-unit": "Fusion de {0} dans {1}",
"create-unit": "Créer une unité", "create-unit": "Créer une unité",
"abbreviation": "Abréviation", "abbreviation": "Abréviation",
"plural-abbreviation": "Abréviation au pluriel",
"description": "Description", "description": "Description",
"display-as-fraction": "Afficher sous forme de fraction", "display-as-fraction": "Afficher sous forme de fraction",
"use-abbreviation": "Utiliser l'abréviation", "use-abbreviation": "Utiliser l'abréviation",
"edit-unit": "Modifier l'unité", "edit-unit": "Modifier l'unité",
"unit-data": "Données de l'unité", "unit-data": "Données de l'unité",
"use-abbv": "Utiliser abr.", "use-abbv": "Utiliser abr.",
"fraction": "Fraction" "fraction": "Fraction",
"example-unit-singular": "ex : Cuillère à soupe",
"example-unit-plural": "ex : Cuillères à soupe",
"example-unit-abbreviation-singular": "ex : CàS",
"example-unit-abbreviation-plural": "ex : CàS"
}, },
"labels": { "labels": {
"seed-dialog-text": "Initialisez la base de données avec des étiquettes communes basées sur votre langue locale.", "seed-dialog-text": "Initialisez la base de données avec des étiquettes communes basées sur votre langue locale.",
@ -934,6 +946,8 @@
"delete-recipes": "Supprimer les recettes", "delete-recipes": "Supprimer les recettes",
"source-unit-will-be-deleted": "L'unité source sera supprimée" "source-unit-will-be-deleted": "L'unité source sera supprimée"
}, },
"create-alias": "Créer un alias",
"manage-aliases": "Gérer les alias",
"seed-data": "Initialiser les données", "seed-data": "Initialiser les données",
"seed": "Initialiser", "seed": "Initialiser",
"data-management": "Gestion des données", "data-management": "Gestion des données",
@ -941,7 +955,22 @@
"select-data": "Sélectionner les données", "select-data": "Sélectionner les données",
"select-language": "Sélectionnez une langue", "select-language": "Sélectionnez une langue",
"columns": "Colonnes", "columns": "Colonnes",
"combine": "Combiner" "combine": "Combiner",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "Inscription dutilisateur", "user-registration": "Inscription dutilisateur",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "No Recipe Found", "no-recipe-found": "No Recipe Found",
"ok": "OK", "ok": "OK",
"options": "Options:", "options": "Options:",
"plural-name": "Plural Name",
"print": "Print", "print": "Print",
"print-preferences": "Print Preferences", "print-preferences": "Print Preferences",
"random": "Random", "random": "Random",
@ -463,7 +464,9 @@
"add-to-plan": "Add to Plan", "add-to-plan": "Add to Plan",
"add-to-timeline": "Add to Timeline", "add-to-timeline": "Add to Timeline",
"recipe-added-to-list": "Recipe added to list", "recipe-added-to-list": "Recipe added to list",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Recipe added to mealplan", "recipe-added-to-mealplan": "Recipe added to mealplan",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Failed to add recipe to mealplan", "failed-to-add-recipe-to-mealplan": "Failed to add recipe to mealplan",
"yield": "Yield", "yield": "Yield",
"quantity": "Quantity", "quantity": "Quantity",
@ -868,7 +871,9 @@
"user-can-invite-other-to-group": "User can invite other to group", "user-can-invite-other-to-group": "User can invite other to group",
"user-can-manage-group": "User can manage group", "user-can-manage-group": "User can manage group",
"user-can-organize-group-data": "User can organize group data", "user-can-organize-group-data": "User can organize group data",
"enable-advanced-features": "Enable advanced features" "enable-advanced-features": "Enable advanced features",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "translated", "translated": "translated",
@ -889,7 +894,9 @@
"create-food": "Create Food", "create-food": "Create Food",
"food-label": "Food Label", "food-label": "Food Label",
"edit-food": "Edit Food", "edit-food": "Edit Food",
"food-data": "Food Data" "food-data": "Food Data",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Seed the database with common units based on your local language.", "seed-dialog-text": "Seed the database with common units based on your local language.",
@ -900,13 +907,18 @@
"merging-unit-into-unit": "Merging {0} into {1}", "merging-unit-into-unit": "Merging {0} into {1}",
"create-unit": "Create Unit", "create-unit": "Create Unit",
"abbreviation": "Abbreviation", "abbreviation": "Abbreviation",
"plural-abbreviation": "Plural Abbreviation",
"description": "Description", "description": "Description",
"display-as-fraction": "Display as Fraction", "display-as-fraction": "Display as Fraction",
"use-abbreviation": "Use Abbreviation", "use-abbreviation": "Use Abbreviation",
"edit-unit": "Edit Unit", "edit-unit": "Edit Unit",
"unit-data": "Unit Data", "unit-data": "Unit Data",
"use-abbv": "Use Abbv.", "use-abbv": "Use Abbv.",
"fraction": "Fraction" "fraction": "Fraction",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Seed the database with common labels based on your local language.", "seed-dialog-text": "Seed the database with common labels based on your local language.",
@ -935,6 +947,8 @@
"delete-recipes": "Delete Recipes", "delete-recipes": "Delete Recipes",
"source-unit-will-be-deleted": "Source Unit will be deleted" "source-unit-will-be-deleted": "Source Unit will be deleted"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Seed Data", "seed-data": "Seed Data",
"seed": "Seed", "seed": "Seed",
"data-management": "Data Management", "data-management": "Data Management",
@ -942,7 +956,22 @@
"select-data": "Select Data", "select-data": "Select Data",
"select-language": "Select Language", "select-language": "Select Language",
"columns": "Columns", "columns": "Columns",
"combine": "Combine" "combine": "Combine",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "User Registration", "user-registration": "User Registration",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "לא נמצא מתכון", "no-recipe-found": "לא נמצא מתכון",
"ok": "אישור", "ok": "אישור",
"options": "אפשרויות:", "options": "אפשרויות:",
"plural-name": "Plural Name",
"print": "הדפסה", "print": "הדפסה",
"print-preferences": "העדפות הדפסה", "print-preferences": "העדפות הדפסה",
"random": "אקראי", "random": "אקראי",
@ -462,7 +463,9 @@
"add-to-plan": "הוספה לתכנית", "add-to-plan": "הוספה לתכנית",
"add-to-timeline": "הוסף לציר הזמן", "add-to-timeline": "הוסף לציר הזמן",
"recipe-added-to-list": "מתכון נוסף לרשימה", "recipe-added-to-list": "מתכון נוסף לרשימה",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "מתכון נוסף לתכנון ארוחות", "recipe-added-to-mealplan": "מתכון נוסף לתכנון ארוחות",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "הוספת מתכון לתכנון ארוחות נכשלה", "failed-to-add-recipe-to-mealplan": "הוספת מתכון לתכנון ארוחות נכשלה",
"yield": "תשואה", "yield": "תשואה",
"quantity": "כמות", "quantity": "כמות",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "משתמש יכול להזמין אחרים לקבוצה", "user-can-invite-other-to-group": "משתמש יכול להזמין אחרים לקבוצה",
"user-can-manage-group": "משתמש יכול לנהל קבוצה", "user-can-manage-group": "משתמש יכול לנהל קבוצה",
"user-can-organize-group-data": "משתמש יכול לשנות מידע של קבוצה", "user-can-organize-group-data": "משתמש יכול לשנות מידע של קבוצה",
"enable-advanced-features": "אפשר אפשרויות מתקדמות" "enable-advanced-features": "אפשר אפשרויות מתקדמות",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "תורגם", "translated": "תורגם",
@ -888,7 +893,9 @@
"create-food": "צור אוכל", "create-food": "צור אוכל",
"food-label": "תוית אוכל", "food-label": "תוית אוכל",
"edit-food": "עריכת מזון", "edit-food": "עריכת מזון",
"food-data": "נתוני אוכל" "food-data": "נתוני אוכל",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "אכלס את מסד הנתונים עם יחידות מדידה בהתאם לשפה המקומית שלך.", "seed-dialog-text": "אכלס את מסד הנתונים עם יחידות מדידה בהתאם לשפה המקומית שלך.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "ממזג את {0} לתוך {1}", "merging-unit-into-unit": "ממזג את {0} לתוך {1}",
"create-unit": "יצירת יחידה", "create-unit": "יצירת יחידה",
"abbreviation": "קיצור", "abbreviation": "קיצור",
"plural-abbreviation": "Plural Abbreviation",
"description": "תיאור", "description": "תיאור",
"display-as-fraction": "הצגה כשבר", "display-as-fraction": "הצגה כשבר",
"use-abbreviation": "השתמש בקיצור", "use-abbreviation": "השתמש בקיצור",
"edit-unit": "עריכת יחידה", "edit-unit": "עריכת יחידה",
"unit-data": "נתוני יחידה", "unit-data": "נתוני יחידה",
"use-abbv": "השתמש בקיצור", "use-abbv": "השתמש בקיצור",
"fraction": "שבר" "fraction": "שבר",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "אכלס את מסד הנתונים בתגיות נפוצות בהתאם לשפה המקומית שלך.", "seed-dialog-text": "אכלס את מסד הנתונים בתגיות נפוצות בהתאם לשפה המקומית שלך.",
@ -934,6 +946,8 @@
"delete-recipes": "מחיקת מתכונים", "delete-recipes": "מחיקת מתכונים",
"source-unit-will-be-deleted": "יחידת המקור תמחק" "source-unit-will-be-deleted": "יחידת המקור תמחק"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "אכלס נתונים", "seed-data": "אכלס נתונים",
"seed": "אכלס", "seed": "אכלס",
"data-management": "ניהול מידע", "data-management": "ניהול מידע",
@ -941,7 +955,22 @@
"select-data": "בחר נתונים", "select-data": "בחר נתונים",
"select-language": "בחירת שפה", "select-language": "בחירת שפה",
"columns": "עמודות", "columns": "עמודות",
"combine": "שילוב" "combine": "שילוב",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "רישום משתמשים", "user-registration": "רישום משתמשים",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Nije Pronađen Recept", "no-recipe-found": "Nije Pronađen Recept",
"ok": "OK", "ok": "OK",
"options": "Opcije:", "options": "Opcije:",
"plural-name": "Plural Name",
"print": "Ispiši", "print": "Ispiši",
"print-preferences": "Postavke ispisa", "print-preferences": "Postavke ispisa",
"random": "Nasumično", "random": "Nasumično",
@ -462,7 +463,9 @@
"add-to-plan": "Dodaj u Plan", "add-to-plan": "Dodaj u Plan",
"add-to-timeline": "Add to Timeline", "add-to-timeline": "Add to Timeline",
"recipe-added-to-list": "Recept je dodan na popis", "recipe-added-to-list": "Recept je dodan na popis",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Recept je dodan u Plan", "recipe-added-to-mealplan": "Recept je dodan u Plan",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Nije uspjelo dodavanje recepta u plan obroka", "failed-to-add-recipe-to-mealplan": "Nije uspjelo dodavanje recepta u plan obroka",
"yield": "Konačna Količina", "yield": "Konačna Količina",
"quantity": "Količina", "quantity": "Količina",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "Korisnik može pozvati druge u grupu", "user-can-invite-other-to-group": "Korisnik može pozvati druge u grupu",
"user-can-manage-group": "Korisnik može upravljati grupom", "user-can-manage-group": "Korisnik može upravljati grupom",
"user-can-organize-group-data": "Korisnik može organizirati podatke grupe", "user-can-organize-group-data": "Korisnik može organizirati podatke grupe",
"enable-advanced-features": "Omogućite napredne značajke" "enable-advanced-features": "Omogućite napredne značajke",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "prevedeno", "translated": "prevedeno",
@ -888,7 +893,9 @@
"create-food": "Kreiraj Namirnicu", "create-food": "Kreiraj Namirnicu",
"food-label": "Prehrambena oznaka", "food-label": "Prehrambena oznaka",
"edit-food": "Uredi Namirnicu", "edit-food": "Uredi Namirnicu",
"food-data": "Podaci o Namirnici" "food-data": "Podaci o Namirnici",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Popunite bazu podataka uobičajenim jedinicama na temelju vašeg lokalnog jezika.", "seed-dialog-text": "Popunite bazu podataka uobičajenim jedinicama na temelju vašeg lokalnog jezika.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "Spajanje {0} u {1}", "merging-unit-into-unit": "Spajanje {0} u {1}",
"create-unit": "Kreiraj Jedinicu", "create-unit": "Kreiraj Jedinicu",
"abbreviation": "Oznaka Jedinice", "abbreviation": "Oznaka Jedinice",
"plural-abbreviation": "Plural Abbreviation",
"description": "Opis", "description": "Opis",
"display-as-fraction": "Prikaži kao razlomak", "display-as-fraction": "Prikaži kao razlomak",
"use-abbreviation": "Koristi oznaku Jedinice", "use-abbreviation": "Koristi oznaku Jedinice",
"edit-unit": "Uredi Jedinicu", "edit-unit": "Uredi Jedinicu",
"unit-data": "Podaci Jedinice", "unit-data": "Podaci Jedinice",
"use-abbv": "Koristi Skraćenu oznaku.", "use-abbv": "Koristi Skraćenu oznaku.",
"fraction": "Razlomak" "fraction": "Razlomak",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Popunite bazu podataka uobičajenim oznakama na temelju vašeg lokalnog jezika.", "seed-dialog-text": "Popunite bazu podataka uobičajenim oznakama na temelju vašeg lokalnog jezika.",
@ -934,6 +946,8 @@
"delete-recipes": "Obriši Recepte", "delete-recipes": "Obriši Recepte",
"source-unit-will-be-deleted": "Izvorna jedinica će biti izbrisana" "source-unit-will-be-deleted": "Izvorna jedinica će biti izbrisana"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Unesi Podatke", "seed-data": "Unesi Podatke",
"seed": "Seed", "seed": "Seed",
"data-management": "Upravljanje Podacima", "data-management": "Upravljanje Podacima",
@ -941,7 +955,22 @@
"select-data": "Označite Podatke", "select-data": "Označite Podatke",
"select-language": "Odaberite Jezik", "select-language": "Odaberite Jezik",
"columns": "Stupci", "columns": "Stupci",
"combine": "Kombiniraj" "combine": "Kombiniraj",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "Registracija Korisnika", "user-registration": "Registracija Korisnika",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Nem található recept", "no-recipe-found": "Nem található recept",
"ok": "OK", "ok": "OK",
"options": "Opciók:", "options": "Opciók:",
"plural-name": "Név többes számban",
"print": "Nyomtatás", "print": "Nyomtatás",
"print-preferences": "Nyomtatási beállítások", "print-preferences": "Nyomtatási beállítások",
"random": "Véletlenszerű", "random": "Véletlenszerű",
@ -462,7 +463,9 @@
"add-to-plan": "Hozzáadás az étkezési tervhez", "add-to-plan": "Hozzáadás az étkezési tervhez",
"add-to-timeline": "Hozzáadás idővonalhoz", "add-to-timeline": "Hozzáadás idővonalhoz",
"recipe-added-to-list": "Recept hozzáadva listához", "recipe-added-to-list": "Recept hozzáadva listához",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Recept hozzáadva menütervhez", "recipe-added-to-mealplan": "Recept hozzáadva menütervhez",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Nem sikerült hozzáadni a receptet a menütervhez", "failed-to-add-recipe-to-mealplan": "Nem sikerült hozzáadni a receptet a menütervhez",
"yield": "Adag", "yield": "Adag",
"quantity": "Mennyiség", "quantity": "Mennyiség",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "A felhasználó meghívhat másokat a csoportba", "user-can-invite-other-to-group": "A felhasználó meghívhat másokat a csoportba",
"user-can-manage-group": "A felhasználó csoportot kezelhet", "user-can-manage-group": "A felhasználó csoportot kezelhet",
"user-can-organize-group-data": "Felhasználó szerkesztheti a csoport adatait", "user-can-organize-group-data": "Felhasználó szerkesztheti a csoport adatait",
"enable-advanced-features": "Haladó funkciók engedélyezése" "enable-advanced-features": "Haladó funkciók engedélyezése",
"it-looks-like-this-is-your-first-time-logging-in": "Úgy tűnik, most jelentkezik be először.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Nem akarja ezt többé látni? Mindenképpen változtassa meg az e-mail címét a felhasználói beállítások között!"
}, },
"language-dialog": { "language-dialog": {
"translated": "lefordítva", "translated": "lefordítva",
@ -888,7 +893,9 @@
"create-food": "Étel készítése", "create-food": "Étel készítése",
"food-label": "Étel címke", "food-label": "Étel címke",
"edit-food": "Étel szerkesztése", "edit-food": "Étel szerkesztése",
"food-data": "Étel adatai" "food-data": "Étel adatai",
"example-food-singular": "pl. Hagyma",
"example-food-plural": "pl. Hagymák"
}, },
"units": { "units": {
"seed-dialog-text": "Töltse be az Ön nyelve szerinti közös mennyiségi egységet tartalmazó adatbázist.", "seed-dialog-text": "Töltse be az Ön nyelve szerinti közös mennyiségi egységet tartalmazó adatbázist.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "{0} összevonása {1}-zel/zal", "merging-unit-into-unit": "{0} összevonása {1}-zel/zal",
"create-unit": "Mennyiségi egység létrehozása", "create-unit": "Mennyiségi egység létrehozása",
"abbreviation": "Rövidítés", "abbreviation": "Rövidítés",
"plural-abbreviation": "Többes szám rövidítése",
"description": "Megnevezés", "description": "Megnevezés",
"display-as-fraction": "Törtként való megjelenítés", "display-as-fraction": "Törtként való megjelenítés",
"use-abbreviation": "Rövidítés használata", "use-abbreviation": "Rövidítés használata",
"edit-unit": "Mennyiségi egység szerkesztése", "edit-unit": "Mennyiségi egység szerkesztése",
"unit-data": "Mennyiségi egység adatok", "unit-data": "Mennyiségi egység adatok",
"use-abbv": "Rövidítés haszn.", "use-abbv": "Rövidítés haszn.",
"fraction": "Tört" "fraction": "Tört",
"example-unit-singular": "pl. Evőkanál",
"example-unit-plural": "pl. Evőkanalak",
"example-unit-abbreviation-singular": "pl. ek",
"example-unit-abbreviation-plural": "pl. ek"
}, },
"labels": { "labels": {
"seed-dialog-text": "Töltse be az Ön nyelve szerinti közös címkélet tartalmazó adatbázist.", "seed-dialog-text": "Töltse be az Ön nyelve szerinti közös címkélet tartalmazó adatbázist.",
@ -934,6 +946,8 @@
"delete-recipes": "Receptek törlése", "delete-recipes": "Receptek törlése",
"source-unit-will-be-deleted": "A forrás mennyiségi egység törlésre kerül" "source-unit-will-be-deleted": "A forrás mennyiségi egység törlésre kerül"
}, },
"create-alias": "Alias készítése",
"manage-aliases": "Alias kezelése",
"seed-data": "Kezdőérték adat", "seed-data": "Kezdőérték adat",
"seed": "Kezdőérték", "seed": "Kezdőérték",
"data-management": "Adatmenedzsment", "data-management": "Adatmenedzsment",
@ -941,7 +955,22 @@
"select-data": "Válassza ki az adatot", "select-data": "Válassza ki az adatot",
"select-language": "Nyelv kiválasztása", "select-language": "Nyelv kiválasztása",
"columns": "Oszlopok", "columns": "Oszlopok",
"combine": "Összevonás" "combine": "Összevonás",
"categories": {
"edit-category": "Kategória szerkesztése",
"new-category": "Új kategória",
"category-data": "Kategória adatai"
},
"tags": {
"new-tag": "Új címke",
"edit-tag": "Címke szerkesztése",
"tag-data": "Címke adatok"
},
"tools": {
"new-tool": "Új eszköz",
"edit-tool": "Eszköz szerkesztése",
"tool-data": "Eszköz adatai"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "Felhasználó regisztráció", "user-registration": "Felhasználó regisztráció",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Nessuna Ricetta Trovata", "no-recipe-found": "Nessuna Ricetta Trovata",
"ok": "OK", "ok": "OK",
"options": "Opzioni:", "options": "Opzioni:",
"plural-name": "Plural Name",
"print": "Stampa", "print": "Stampa",
"print-preferences": "Preferenze Di Stampa", "print-preferences": "Preferenze Di Stampa",
"random": "Casuale", "random": "Casuale",
@ -462,7 +463,9 @@
"add-to-plan": "Aggiungi al piano giornaliero", "add-to-plan": "Aggiungi al piano giornaliero",
"add-to-timeline": "Add to Timeline", "add-to-timeline": "Add to Timeline",
"recipe-added-to-list": "Ricetta aggiunta alla lista", "recipe-added-to-list": "Ricetta aggiunta alla lista",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Ricetta aggiunta al piano alimentare", "recipe-added-to-mealplan": "Ricetta aggiunta al piano alimentare",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Impossibile aggiungere la ricetta al piano alimentare", "failed-to-add-recipe-to-mealplan": "Impossibile aggiungere la ricetta al piano alimentare",
"yield": "Porzioni", "yield": "Porzioni",
"quantity": "Quantità", "quantity": "Quantità",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "L'utente può invitare altri al gruppo", "user-can-invite-other-to-group": "L'utente può invitare altri al gruppo",
"user-can-manage-group": "L'utente può gestire il gruppo", "user-can-manage-group": "L'utente può gestire il gruppo",
"user-can-organize-group-data": "L'utente può organizzare i dati del gruppo", "user-can-organize-group-data": "L'utente può organizzare i dati del gruppo",
"enable-advanced-features": "Abilita funzionalità avanzate" "enable-advanced-features": "Abilita funzionalità avanzate",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "tradotto", "translated": "tradotto",
@ -888,7 +893,9 @@
"create-food": "Crea Alimento", "create-food": "Crea Alimento",
"food-label": "Etichetta Alimento", "food-label": "Etichetta Alimento",
"edit-food": "Modifica Alimento", "edit-food": "Modifica Alimento",
"food-data": "Dati Alimento" "food-data": "Dati Alimento",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Riempie il database con unità comuni basate sulla lingua.", "seed-dialog-text": "Riempie il database con unità comuni basate sulla lingua.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "Unione di {0} in {1}", "merging-unit-into-unit": "Unione di {0} in {1}",
"create-unit": "Crea Unità", "create-unit": "Crea Unità",
"abbreviation": "Abbreviazione", "abbreviation": "Abbreviazione",
"plural-abbreviation": "Plural Abbreviation",
"description": "Descrizione", "description": "Descrizione",
"display-as-fraction": "Mostra come Frazione", "display-as-fraction": "Mostra come Frazione",
"use-abbreviation": "Usa Abbreviazione", "use-abbreviation": "Usa Abbreviazione",
"edit-unit": "Modifica Unità", "edit-unit": "Modifica Unità",
"unit-data": "Dati Unità", "unit-data": "Dati Unità",
"use-abbv": "Utilizzare Abbrev.", "use-abbv": "Utilizzare Abbrev.",
"fraction": "Frazione" "fraction": "Frazione",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Riempie il database con etichette comuni basate sulla lingua.", "seed-dialog-text": "Riempie il database con etichette comuni basate sulla lingua.",
@ -934,6 +946,8 @@
"delete-recipes": "Elimina Ricette", "delete-recipes": "Elimina Ricette",
"source-unit-will-be-deleted": "L'unità di origine verrà eliminata" "source-unit-will-be-deleted": "L'unità di origine verrà eliminata"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Dati Predefiniti", "seed-data": "Dati Predefiniti",
"seed": "Inizializza", "seed": "Inizializza",
"data-management": "Gestione Dati", "data-management": "Gestione Dati",
@ -941,7 +955,22 @@
"select-data": "Seleziona Dati", "select-data": "Seleziona Dati",
"select-language": "Seleziona Lingua", "select-language": "Seleziona Lingua",
"columns": "Colonne", "columns": "Colonne",
"combine": "Unisci" "combine": "Unisci",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "Registrazione Utente", "user-registration": "Registrazione Utente",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "レシピが見つかりません。", "no-recipe-found": "レシピが見つかりません。",
"ok": "OK", "ok": "OK",
"options": "Options:", "options": "Options:",
"plural-name": "Plural Name",
"print": "印刷", "print": "印刷",
"print-preferences": "印刷設定", "print-preferences": "印刷設定",
"random": "ランダム", "random": "ランダム",
@ -463,7 +464,9 @@
"add-to-plan": "Add to Plan", "add-to-plan": "Add to Plan",
"add-to-timeline": "Add to Timeline", "add-to-timeline": "Add to Timeline",
"recipe-added-to-list": "Recipe added to list", "recipe-added-to-list": "Recipe added to list",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "レシピを献立に追加しました。", "recipe-added-to-mealplan": "レシピを献立に追加しました。",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "レシピを献立に追加する事に失敗しました。", "failed-to-add-recipe-to-mealplan": "レシピを献立に追加する事に失敗しました。",
"yield": "Yield", "yield": "Yield",
"quantity": "Quantity", "quantity": "Quantity",
@ -868,7 +871,9 @@
"user-can-invite-other-to-group": "User can invite other to group", "user-can-invite-other-to-group": "User can invite other to group",
"user-can-manage-group": "User can manage group", "user-can-manage-group": "User can manage group",
"user-can-organize-group-data": "User can organize group data", "user-can-organize-group-data": "User can organize group data",
"enable-advanced-features": "Enable advanced features" "enable-advanced-features": "Enable advanced features",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "translated", "translated": "translated",
@ -889,7 +894,9 @@
"create-food": "Create Food", "create-food": "Create Food",
"food-label": "Food Label", "food-label": "Food Label",
"edit-food": "Edit Food", "edit-food": "Edit Food",
"food-data": "Food Data" "food-data": "Food Data",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Seed the database with common units based on your local language.", "seed-dialog-text": "Seed the database with common units based on your local language.",
@ -900,13 +907,18 @@
"merging-unit-into-unit": "Merging {0} into {1}", "merging-unit-into-unit": "Merging {0} into {1}",
"create-unit": "Create Unit", "create-unit": "Create Unit",
"abbreviation": "Abbreviation", "abbreviation": "Abbreviation",
"plural-abbreviation": "Plural Abbreviation",
"description": "Description", "description": "Description",
"display-as-fraction": "Display as Fraction", "display-as-fraction": "Display as Fraction",
"use-abbreviation": "Use Abbreviation", "use-abbreviation": "Use Abbreviation",
"edit-unit": "Edit Unit", "edit-unit": "Edit Unit",
"unit-data": "Unit Data", "unit-data": "Unit Data",
"use-abbv": "Use Abbv.", "use-abbv": "Use Abbv.",
"fraction": "Fraction" "fraction": "Fraction",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Seed the database with common labels based on your local language.", "seed-dialog-text": "Seed the database with common labels based on your local language.",
@ -935,6 +947,8 @@
"delete-recipes": "Delete Recipes", "delete-recipes": "Delete Recipes",
"source-unit-will-be-deleted": "Source Unit will be deleted" "source-unit-will-be-deleted": "Source Unit will be deleted"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Seed Data", "seed-data": "Seed Data",
"seed": "Seed", "seed": "Seed",
"data-management": "Data Management", "data-management": "Data Management",
@ -942,7 +956,22 @@
"select-data": "Select Data", "select-data": "Select Data",
"select-language": "Select Language", "select-language": "Select Language",
"columns": "Columns", "columns": "Columns",
"combine": "Combine" "combine": "Combine",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "User Registration", "user-registration": "User Registration",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "레시피를 찾을 수 없습니다.", "no-recipe-found": "레시피를 찾을 수 없습니다.",
"ok": "확인", "ok": "확인",
"options": "옵션:", "options": "옵션:",
"plural-name": "Plural Name",
"print": "인쇄", "print": "인쇄",
"print-preferences": "인쇄 설정", "print-preferences": "인쇄 설정",
"random": "무작위", "random": "무작위",
@ -463,7 +464,9 @@
"add-to-plan": "Add to Plan", "add-to-plan": "Add to Plan",
"add-to-timeline": "Add to Timeline", "add-to-timeline": "Add to Timeline",
"recipe-added-to-list": "Recipe added to list", "recipe-added-to-list": "Recipe added to list",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Recipe added to mealplan", "recipe-added-to-mealplan": "Recipe added to mealplan",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Failed to add recipe to mealplan", "failed-to-add-recipe-to-mealplan": "Failed to add recipe to mealplan",
"yield": "Yield", "yield": "Yield",
"quantity": "Quantity", "quantity": "Quantity",
@ -868,7 +871,9 @@
"user-can-invite-other-to-group": "User can invite other to group", "user-can-invite-other-to-group": "User can invite other to group",
"user-can-manage-group": "User can manage group", "user-can-manage-group": "User can manage group",
"user-can-organize-group-data": "User can organize group data", "user-can-organize-group-data": "User can organize group data",
"enable-advanced-features": "Enable advanced features" "enable-advanced-features": "Enable advanced features",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "translated", "translated": "translated",
@ -889,7 +894,9 @@
"create-food": "Create Food", "create-food": "Create Food",
"food-label": "Food Label", "food-label": "Food Label",
"edit-food": "Edit Food", "edit-food": "Edit Food",
"food-data": "Food Data" "food-data": "Food Data",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Seed the database with common units based on your local language.", "seed-dialog-text": "Seed the database with common units based on your local language.",
@ -900,13 +907,18 @@
"merging-unit-into-unit": "Merging {0} into {1}", "merging-unit-into-unit": "Merging {0} into {1}",
"create-unit": "Create Unit", "create-unit": "Create Unit",
"abbreviation": "Abbreviation", "abbreviation": "Abbreviation",
"plural-abbreviation": "Plural Abbreviation",
"description": "Description", "description": "Description",
"display-as-fraction": "Display as Fraction", "display-as-fraction": "Display as Fraction",
"use-abbreviation": "Use Abbreviation", "use-abbreviation": "Use Abbreviation",
"edit-unit": "Edit Unit", "edit-unit": "Edit Unit",
"unit-data": "Unit Data", "unit-data": "Unit Data",
"use-abbv": "Use Abbv.", "use-abbv": "Use Abbv.",
"fraction": "Fraction" "fraction": "Fraction",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Seed the database with common labels based on your local language.", "seed-dialog-text": "Seed the database with common labels based on your local language.",
@ -935,6 +947,8 @@
"delete-recipes": "Delete Recipes", "delete-recipes": "Delete Recipes",
"source-unit-will-be-deleted": "Source Unit will be deleted" "source-unit-will-be-deleted": "Source Unit will be deleted"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Seed Data", "seed-data": "Seed Data",
"seed": "Seed", "seed": "Seed",
"data-management": "Data Management", "data-management": "Data Management",
@ -942,7 +956,22 @@
"select-data": "Select Data", "select-data": "Select Data",
"select-language": "Select Language", "select-language": "Select Language",
"columns": "Columns", "columns": "Columns",
"combine": "Combine" "combine": "Combine",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "User Registration", "user-registration": "User Registration",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Nerasta receptų", "no-recipe-found": "Nerasta receptų",
"ok": "Gerai", "ok": "Gerai",
"options": "Pasirinkimai:", "options": "Pasirinkimai:",
"plural-name": "Plural Name",
"print": "Spausdinti", "print": "Spausdinti",
"print-preferences": "Spausdinimo nustatymai", "print-preferences": "Spausdinimo nustatymai",
"random": "Atsitiktinis", "random": "Atsitiktinis",
@ -462,7 +463,9 @@
"add-to-plan": "Pridėti prie plano", "add-to-plan": "Pridėti prie plano",
"add-to-timeline": "Add to Timeline", "add-to-timeline": "Add to Timeline",
"recipe-added-to-list": "Recepts pridėtas į sąrašą", "recipe-added-to-list": "Recepts pridėtas į sąrašą",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Recepts pridėtas prie mitybos plano", "recipe-added-to-mealplan": "Recepts pridėtas prie mitybos plano",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Nepavyko pridėti recepto prie mitybos plano", "failed-to-add-recipe-to-mealplan": "Nepavyko pridėti recepto prie mitybos plano",
"yield": "Išeiga", "yield": "Išeiga",
"quantity": "Kiekis", "quantity": "Kiekis",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "Naudotojas gali kviesti kitus į grupę", "user-can-invite-other-to-group": "Naudotojas gali kviesti kitus į grupę",
"user-can-manage-group": "Naudotojas gali valdyti grupę", "user-can-manage-group": "Naudotojas gali valdyti grupę",
"user-can-organize-group-data": "Naudotojas gali tvarkyti grupės duomenis", "user-can-organize-group-data": "Naudotojas gali tvarkyti grupės duomenis",
"enable-advanced-features": "Įjungti pažangias funkcijas" "enable-advanced-features": "Įjungti pažangias funkcijas",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "išversta", "translated": "išversta",
@ -888,7 +893,9 @@
"create-food": "Pridėti produktą", "create-food": "Pridėti produktą",
"food-label": "Produkto etiketė", "food-label": "Produkto etiketė",
"edit-food": "Keisti produktą", "edit-food": "Keisti produktą",
"food-data": "Produktų duomenys" "food-data": "Produktų duomenys",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Įdėkite į duomenų bazę bendrus vienetus pagal jūsų kalbą.", "seed-dialog-text": "Įdėkite į duomenų bazę bendrus vienetus pagal jūsų kalbą.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "Sujungiama {0} su {1}", "merging-unit-into-unit": "Sujungiama {0} su {1}",
"create-unit": "Sukurti vienetą", "create-unit": "Sukurti vienetą",
"abbreviation": "Santrumpa", "abbreviation": "Santrumpa",
"plural-abbreviation": "Plural Abbreviation",
"description": "Aprašymas", "description": "Aprašymas",
"display-as-fraction": "Rodyti kaip trupmeną", "display-as-fraction": "Rodyti kaip trupmeną",
"use-abbreviation": "Naudoti santrumpą", "use-abbreviation": "Naudoti santrumpą",
"edit-unit": "Keisti vienetą", "edit-unit": "Keisti vienetą",
"unit-data": "Vienetų duomenys", "unit-data": "Vienetų duomenys",
"use-abbv": "Naudoti santr.", "use-abbv": "Naudoti santr.",
"fraction": "Trupmena" "fraction": "Trupmena",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Įdėkite į duomenų bazę bendras žymas pagal jūsų kalbą.", "seed-dialog-text": "Įdėkite į duomenų bazę bendras žymas pagal jūsų kalbą.",
@ -934,6 +946,8 @@
"delete-recipes": "Ištrinti receptus", "delete-recipes": "Ištrinti receptus",
"source-unit-will-be-deleted": "Pirminis vienetas bus ištrintas" "source-unit-will-be-deleted": "Pirminis vienetas bus ištrintas"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Pradiniai duomenys", "seed-data": "Pradiniai duomenys",
"seed": "Užpildyti", "seed": "Užpildyti",
"data-management": "Duomenų valdymas", "data-management": "Duomenų valdymas",
@ -941,7 +955,22 @@
"select-data": "Pasirinkti duomenis", "select-data": "Pasirinkti duomenis",
"select-language": "Pasirinkti kalbą", "select-language": "Pasirinkti kalbą",
"columns": "Stulpeliai", "columns": "Stulpeliai",
"combine": "Sujungti" "combine": "Sujungti",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "Vartotojo registracija", "user-registration": "Vartotojo registracija",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "No Recipe Found", "no-recipe-found": "No Recipe Found",
"ok": "OK", "ok": "OK",
"options": "Options:", "options": "Options:",
"plural-name": "Plural Name",
"print": "Print", "print": "Print",
"print-preferences": "Print Preferences", "print-preferences": "Print Preferences",
"random": "Random", "random": "Random",
@ -463,7 +464,9 @@
"add-to-plan": "Add to Plan", "add-to-plan": "Add to Plan",
"add-to-timeline": "Add to Timeline", "add-to-timeline": "Add to Timeline",
"recipe-added-to-list": "Recipe added to list", "recipe-added-to-list": "Recipe added to list",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Recipe added to mealplan", "recipe-added-to-mealplan": "Recipe added to mealplan",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Failed to add recipe to mealplan", "failed-to-add-recipe-to-mealplan": "Failed to add recipe to mealplan",
"yield": "Yield", "yield": "Yield",
"quantity": "Quantity", "quantity": "Quantity",
@ -868,7 +871,9 @@
"user-can-invite-other-to-group": "User can invite other to group", "user-can-invite-other-to-group": "User can invite other to group",
"user-can-manage-group": "User can manage group", "user-can-manage-group": "User can manage group",
"user-can-organize-group-data": "User can organize group data", "user-can-organize-group-data": "User can organize group data",
"enable-advanced-features": "Enable advanced features" "enable-advanced-features": "Enable advanced features",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "translated", "translated": "translated",
@ -889,7 +894,9 @@
"create-food": "Create Food", "create-food": "Create Food",
"food-label": "Food Label", "food-label": "Food Label",
"edit-food": "Edit Food", "edit-food": "Edit Food",
"food-data": "Food Data" "food-data": "Food Data",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Seed the database with common units based on your local language.", "seed-dialog-text": "Seed the database with common units based on your local language.",
@ -900,13 +907,18 @@
"merging-unit-into-unit": "Merging {0} into {1}", "merging-unit-into-unit": "Merging {0} into {1}",
"create-unit": "Create Unit", "create-unit": "Create Unit",
"abbreviation": "Abbreviation", "abbreviation": "Abbreviation",
"plural-abbreviation": "Plural Abbreviation",
"description": "Description", "description": "Description",
"display-as-fraction": "Display as Fraction", "display-as-fraction": "Display as Fraction",
"use-abbreviation": "Use Abbreviation", "use-abbreviation": "Use Abbreviation",
"edit-unit": "Edit Unit", "edit-unit": "Edit Unit",
"unit-data": "Unit Data", "unit-data": "Unit Data",
"use-abbv": "Use Abbv.", "use-abbv": "Use Abbv.",
"fraction": "Fraction" "fraction": "Fraction",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Seed the database with common labels based on your local language.", "seed-dialog-text": "Seed the database with common labels based on your local language.",
@ -935,6 +947,8 @@
"delete-recipes": "Delete Recipes", "delete-recipes": "Delete Recipes",
"source-unit-will-be-deleted": "Source Unit will be deleted" "source-unit-will-be-deleted": "Source Unit will be deleted"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Seed Data", "seed-data": "Seed Data",
"seed": "Seed", "seed": "Seed",
"data-management": "Data Management", "data-management": "Data Management",
@ -942,7 +956,22 @@
"select-data": "Select Data", "select-data": "Select Data",
"select-language": "Select Language", "select-language": "Select Language",
"columns": "Columns", "columns": "Columns",
"combine": "Combine" "combine": "Combine",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "User Registration", "user-registration": "User Registration",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Geen recept gevonden", "no-recipe-found": "Geen recept gevonden",
"ok": "Ok", "ok": "Ok",
"options": "Opties:", "options": "Opties:",
"plural-name": "Naam voor meervoud",
"print": "Afdrukken", "print": "Afdrukken",
"print-preferences": "Voorkeuren afdrukken", "print-preferences": "Voorkeuren afdrukken",
"random": "Willekeurig", "random": "Willekeurig",
@ -296,7 +297,7 @@
"for-type-meal-types": "voor {0} maaltijdsoorten", "for-type-meal-types": "voor {0} maaltijdsoorten",
"meal-plan-rules": "Maaltijdplanregels", "meal-plan-rules": "Maaltijdplanregels",
"new-rule": "Nieuwe regel", "new-rule": "Nieuwe regel",
"meal-plan-rules-description": "You can create rules for auto selecting recipes for your meal plans. These rules are used by the server to determine the random pool of recipes to select from when creating meal plans. Note that if rules have the same day/type constraints then the categories of the rules will be merged. In practice, it's unnecessary to create duplicate rules, but it's possible to do so.", "meal-plan-rules-description": "Je kunt regels maken voor het automatisch selecteren van recepten voor je maaltijdplanning. Deze regels worden gebruikt door de server om de recepten te selecteren bij het maken van een maaltijdplanning. Houdt er rekening mee dat als regels dezelfde dag en type restricties hebben de categorieën van de regels worden samengevoegd. In de praktijk is het dus niet nodig om dubbele regels te maken, maar het is wel mogelijk.",
"new-rule-description": "Bij het opstellen van een nieuwe regel voor een maaltijdplan kunt u de regel beperken tot een specifieke dag van de week en/of een specifiek type maaltijd. Om een regel toe te passen op alle dagen of alle maaltijden kunt u de regel op \"Ieder\" instellen die deze toepast op alle mogelijke waarden voor het type dag en/of maaltijd.", "new-rule-description": "Bij het opstellen van een nieuwe regel voor een maaltijdplan kunt u de regel beperken tot een specifieke dag van de week en/of een specifiek type maaltijd. Om een regel toe te passen op alle dagen of alle maaltijden kunt u de regel op \"Ieder\" instellen die deze toepast op alle mogelijke waarden voor het type dag en/of maaltijd.",
"recipe-rules": "Recept Regels", "recipe-rules": "Recept Regels",
"applies-to-all-days": "Van toepassing op alle dagen", "applies-to-all-days": "Van toepassing op alle dagen",
@ -462,7 +463,9 @@
"add-to-plan": "Toevoegen aan plan", "add-to-plan": "Toevoegen aan plan",
"add-to-timeline": "Aan tijdlijn toevoegen", "add-to-timeline": "Aan tijdlijn toevoegen",
"recipe-added-to-list": "Recept toegevoegd aan de lijst", "recipe-added-to-list": "Recept toegevoegd aan de lijst",
"recipes-added-to-list": "Recept toegevoegd aan de lijst",
"recipe-added-to-mealplan": "Recept toegevoegd aan het maaltijdplan", "recipe-added-to-mealplan": "Recept toegevoegd aan het maaltijdplan",
"failed-to-add-recipes-to-list": "Kon recept niet aan de lijst toevoegen ",
"failed-to-add-recipe-to-mealplan": "Recept aan maaltijdplan toevoegen mislukt", "failed-to-add-recipe-to-mealplan": "Recept aan maaltijdplan toevoegen mislukt",
"yield": "Resultaat", "yield": "Resultaat",
"quantity": "Hoeveelheid", "quantity": "Hoeveelheid",
@ -737,7 +740,7 @@
"cookbooks": "Kookboeken", "cookbooks": "Kookboeken",
"dashboard": "Dashboard", "dashboard": "Dashboard",
"home-page": "Homepagina", "home-page": "Homepagina",
"manage-users": "Beheer gebruikers", "manage-users": "Beheer Gebruikers",
"migrations": "Migraties", "migrations": "Migraties",
"profile": "Profiel", "profile": "Profiel",
"search": "Zoeken", "search": "Zoeken",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "Gebruiker kan iemand uitnodigen voor de groep", "user-can-invite-other-to-group": "Gebruiker kan iemand uitnodigen voor de groep",
"user-can-manage-group": "Gebruiker kan de groep beheren", "user-can-manage-group": "Gebruiker kan de groep beheren",
"user-can-organize-group-data": "Gebruiker kan groepsgegevens organiseren", "user-can-organize-group-data": "Gebruiker kan groepsgegevens organiseren",
"enable-advanced-features": "Geavanceerde functies inschakelen" "enable-advanced-features": "Geavanceerde functies inschakelen",
"it-looks-like-this-is-your-first-time-logging-in": "Het lijkt erop dat je voor het eerst inlogt.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Wil je dit niet meer zien? Verander dan je e-mailadres in je gebruikersinstellingen!"
}, },
"language-dialog": { "language-dialog": {
"translated": "vertaald", "translated": "vertaald",
@ -888,7 +893,9 @@
"create-food": "Maak Voedsel", "create-food": "Maak Voedsel",
"food-label": "Voedsel Label", "food-label": "Voedsel Label",
"edit-food": "Bewerk voedsel", "edit-food": "Bewerk voedsel",
"food-data": "Voedsel gegevens" "food-data": "Voedsel gegevens",
"example-food-singular": "bv: Ui",
"example-food-plural": "bv: Uien"
}, },
"units": { "units": {
"seed-dialog-text": "Vul de database aan met veelvoorkomende eenheden, gebaseerd op je lokale taal.", "seed-dialog-text": "Vul de database aan met veelvoorkomende eenheden, gebaseerd op je lokale taal.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "{0} samenvoegen met {1}", "merging-unit-into-unit": "{0} samenvoegen met {1}",
"create-unit": "Eenheid aanmaken", "create-unit": "Eenheid aanmaken",
"abbreviation": "Afkorting", "abbreviation": "Afkorting",
"plural-abbreviation": "Afkorting voor meervoud",
"description": "Beschrijving", "description": "Beschrijving",
"display-as-fraction": "Gedeelte weergeven", "display-as-fraction": "Gedeelte weergeven",
"use-abbreviation": "Gebruik afkorting", "use-abbreviation": "Gebruik afkorting",
"edit-unit": "Eenheid wijzigen", "edit-unit": "Eenheid wijzigen",
"unit-data": "Eenheid gegevens", "unit-data": "Eenheid gegevens",
"use-abbv": "Gebruik afk.", "use-abbv": "Gebruik afk.",
"fraction": "Breuk" "fraction": "Breuk",
"example-unit-singular": "Bv: eetlepel ",
"example-unit-plural": "Bv: eetlepels ",
"example-unit-abbreviation-singular": "Bv: el",
"example-unit-abbreviation-plural": "bv: els"
}, },
"labels": { "labels": {
"seed-dialog-text": "Vul de database aan met veelvoorkomende labels, gebaseerd op je lokale taal.", "seed-dialog-text": "Vul de database aan met veelvoorkomende labels, gebaseerd op je lokale taal.",
@ -934,6 +946,8 @@
"delete-recipes": "Verwijder recepten", "delete-recipes": "Verwijder recepten",
"source-unit-will-be-deleted": "Broneenheid zal worden verwijderd" "source-unit-will-be-deleted": "Broneenheid zal worden verwijderd"
}, },
"create-alias": "Maak alias",
"manage-aliases": "Beheer aliassen ",
"seed-data": "Voorbeeldgegevens", "seed-data": "Voorbeeldgegevens",
"seed": "Vul", "seed": "Vul",
"data-management": "Gegevensbeheer", "data-management": "Gegevensbeheer",
@ -941,7 +955,22 @@
"select-data": "Selecteer gegevens", "select-data": "Selecteer gegevens",
"select-language": "Selecteer taal", "select-language": "Selecteer taal",
"columns": "Kolommen", "columns": "Kolommen",
"combine": "Samenvoegen" "combine": "Samenvoegen",
"categories": {
"edit-category": "Categorie Bewerken",
"new-category": "Categorie Toevoegen",
"category-data": "Categorie Overzicht"
},
"tags": {
"new-tag": "Label Toevoegen",
"edit-tag": "Label Bewerken",
"tag-data": "Label Overzicht"
},
"tools": {
"new-tool": "Keukengerei Toevoegen",
"edit-tool": "Keukengerei Bewerken",
"tool-data": "Keukengerei Overzicht"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "Gebruikersregistratie", "user-registration": "Gebruikersregistratie",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Ingen oppskrift funnet", "no-recipe-found": "Ingen oppskrift funnet",
"ok": "OK", "ok": "OK",
"options": "Alternativer:", "options": "Alternativer:",
"plural-name": "Flertalls navn",
"print": "Skriv ut", "print": "Skriv ut",
"print-preferences": "Skriv ut innstillinger", "print-preferences": "Skriv ut innstillinger",
"random": "Tilfeldig", "random": "Tilfeldig",
@ -462,7 +463,9 @@
"add-to-plan": "Legg til i Plan", "add-to-plan": "Legg til i Plan",
"add-to-timeline": "Legg til på tidslinjen", "add-to-timeline": "Legg til på tidslinjen",
"recipe-added-to-list": "Oppskriften er lagt til i listen", "recipe-added-to-list": "Oppskriften er lagt til i listen",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Oppskriften er lagt til i listen", "recipe-added-to-mealplan": "Oppskriften er lagt til i listen",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Klarte ikke å legge til oppskrift på måltidsplan", "failed-to-add-recipe-to-mealplan": "Klarte ikke å legge til oppskrift på måltidsplan",
"yield": "Utbytte", "yield": "Utbytte",
"quantity": "Antall", "quantity": "Antall",
@ -669,14 +672,14 @@
"webhooks-caps": "WEBHOOKS", "webhooks-caps": "WEBHOOKS",
"webhooks": "Webhooks", "webhooks": "Webhooks",
"webhook-name": "Webhook navn", "webhook-name": "Webhook navn",
"description": "The webhooks defined below will be executed when a meal is defined for the day. At the scheduled time the webhooks will be sent with the data from the recipe that is scheduled for the day. Note that webhook execution is not exact. The webhooks are executed on a 5 minutes interval so the webhooks will be executed within 5 +/- minutes of the scheduled." "description": "Webhooks definert nedenfor vil utføres når et måltid defineres for dagen. På det planlagte tidspunktet blir webhook sendt med data fra oppskriften som er planlagt for dagen. Merke at av tidspunktet ikke er nøyaktig, webhooks utføres med et intervall på 5 minutter, dette betyr at webhooks utføres innen +/- 5 minutter etter planlagt tidspunkt."
}, },
"bug-report": "Feilrapport", "bug-report": "Feilrapport",
"bug-report-information": "Bruk denne informasjonen til å rapportere en feil. Gi detaljer om feilen din til utviklere er den beste måten å få problemer på en rask løsning.", "bug-report-information": "Bruk denne informasjonen til å rapportere en feil. Gi detaljer om feilen din til utviklere er den beste måten å få problemer på en rask løsning.",
"tracker": "Sporingsagent", "tracker": "Sporingsagent",
"configuration": "Konfigurasjon", "configuration": "Konfigurasjon",
"docker-volume": "Docker volum", "docker-volume": "Docker volum",
"docker-volume-help": "Mealie requires that the frontend container and the backend share the same docker volume or storage. This ensures that the frontend container can properly access the images and assets stored on disk.", "docker-volume-help": "Mealie krever at frontend og backend konteinerene deler samme docker volum/lagring. Dette sikrer at frontend får tilgang til bilder og ressurser lagret på harddisken.",
"volumes-are-misconfigured": "Volumene er feilkonfigurert", "volumes-are-misconfigured": "Volumene er feilkonfigurert",
"volumes-are-configured-correctly": "Volumene er riktig konfigurert.", "volumes-are-configured-correctly": "Volumene er riktig konfigurert.",
"status-unknown-try-running-a-validation": "Statusen er ukjent. Prøv å validere.", "status-unknown-try-running-a-validation": "Statusen er ukjent. Prøv å validere.",
@ -688,19 +691,19 @@
"failed": "Mislyktes", "failed": "Mislyktes",
"general-about": "Generelt om", "general-about": "Generelt om",
"application-version": "Programversjon", "application-version": "Programversjon",
"application-version-error-text": "Your current version ({0}) does not match the latest release. Considering updating to the latest version ({1}).", "application-version-error-text": "Din nåværende versjon ({0}) samsvarer ikke med den nyeste utgivelsen. Vurder å oppdatere til siste versjon ({1}).",
"mealie-is-up-to-date": "Mealie er oppdatert", "mealie-is-up-to-date": "Mealie er oppdatert",
"secure-site": "Sikkert nettsted", "secure-site": "Sikkert nettsted",
"secure-site-error-text": "Serve via localhost or secure with https. Clipboard and additional browser APIs may not work.", "secure-site-error-text": "Host via localhost eller sikre med https. Utklippstavle og nettleser-APIer virker kanskje ikke.",
"secure-site-success-text": "Site is accessed by localhost or https", "secure-site-success-text": "Tjenesten er tilgjengelig på localhost eller https",
"server-side-base-url": "Serverens sidebase URL", "server-side-base-url": "Serverens sidebase URL",
"server-side-base-url-error-text": "`BASE_URL` is still the default value on API Server. This will cause issues with notifications links generated on the server for emails, etc.", "server-side-base-url-error-text": "`BASE_URL` er fortsatt satt til standardverdien på API Serveren. Dette kan føre til problemer med varslingslenker generert på serveren for e-post, osv.",
"server-side-base-url-success-text": "Server Side URL does not match the default", "server-side-base-url-success-text": "Serverside-URL samsvarer ikke med standard",
"ldap-ready": "LDAP klar", "ldap-ready": "LDAP klar",
"ldap-ready-error-text": "Not all LDAP Values are configured. This can be ignored if you are not using LDAP Authentication.", "ldap-ready-error-text": "Ikke alle LDAP-verdier er konfigurert. Dette kan ignoreres hvis du ikke bruker LDAP til Autentisering.",
"ldap-ready-success-text": "Required LDAP variables are all set.", "ldap-ready-success-text": "Alle de nødvendige LDAP-variablene er satt.",
"build": "Bygg", "build": "Bygg",
"recipe-scraper-version": "Recipe Scraper Version" "recipe-scraper-version": "OppskriftsScraper versjon"
}, },
"shopping-list": { "shopping-list": {
"all-lists": "Alle lister", "all-lists": "Alle lister",
@ -725,8 +728,8 @@
"reorder-labels": "Omorganiser etiketter", "reorder-labels": "Omorganiser etiketter",
"uncheck-all-items": "Fjern merking av alle elementer", "uncheck-all-items": "Fjern merking av alle elementer",
"check-all-items": "Velg alle elementer", "check-all-items": "Velg alle elementer",
"linked-recipes-count": "No Linked Recipes|One Linked Recipe|{count} Linked Recipes", "linked-recipes-count": "Ingen lenkede oppskrifter|En lenket oppskrift|{count} Lenkede oppskrifter",
"items-checked-count": "No items checked|One item checked|{count} items checked", "items-checked-count": "Ingen elementer krysset av|Ett element krysset av|{count} elementer krysset av",
"no-label": "Ingen etikett", "no-label": "Ingen etikett",
"completed-on": "Fullført på {date}" "completed-on": "Fullført på {date}"
}, },
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "Brukeren kan invitere andre til gruppe", "user-can-invite-other-to-group": "Brukeren kan invitere andre til gruppe",
"user-can-manage-group": "Brukeren kan administrere gruppe", "user-can-manage-group": "Brukeren kan administrere gruppe",
"user-can-organize-group-data": "Brukeren kan organisere gruppedata", "user-can-organize-group-data": "Brukeren kan organisere gruppedata",
"enable-advanced-features": "Aktiver avanserte funksjoner" "enable-advanced-features": "Aktiver avanserte funksjoner",
"it-looks-like-this-is-your-first-time-logging-in": "Det ser ut som dette er første gang du logger på.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Ønsker du ikke å se dette lenger? Sørg for å endre e-posten din i brukerinnstillingene dine!"
}, },
"language-dialog": { "language-dialog": {
"translated": "oversatt", "translated": "oversatt",
@ -883,29 +888,36 @@
"seed-dialog-text": "Legg til databasen med mat basert på ditt lokale språk. Dette vil opprette 200+ felles matvarer som kan brukes til å organisere databasen. Næringsmidler oversettes via en samfunnsinnsats.", "seed-dialog-text": "Legg til databasen med mat basert på ditt lokale språk. Dette vil opprette 200+ felles matvarer som kan brukes til å organisere databasen. Næringsmidler oversettes via en samfunnsinnsats.",
"seed-dialog-warning": "Du har allerede elementer i databasen. Denne handlingen vil ikke rekonfigurere duplikater, du må administrere dem manuelt.", "seed-dialog-warning": "Du har allerede elementer i databasen. Denne handlingen vil ikke rekonfigurere duplikater, du må administrere dem manuelt.",
"combine-food": "Kombiner mat", "combine-food": "Kombiner mat",
"source-food": "Source Food", "source-food": "Kilde mat",
"target-food": "Target Food", "target-food": "Mål Mat",
"create-food": "Lag mat", "create-food": "Lag mat",
"food-label": "Mat etikett", "food-label": "Mat etikett",
"edit-food": "Rediger mat", "edit-food": "Rediger mat",
"food-data": "Mat data" "food-data": "Mat data",
"example-food-singular": "Feks: Tomat",
"example-food-plural": "Feks: Tomater"
}, },
"units": { "units": {
"seed-dialog-text": "Lag en database med vanlige enheter basert på ditt lokale språk.", "seed-dialog-text": "Lag en database med vanlige enheter basert på ditt lokale språk.",
"combine-unit-description": "Combining the selected units will merge the Source Unit and Target Unit into a single unit. The {source-unit-will-be-deleted} and all of the references to the Source Unit will be updated to point to the Target Unit.", "combine-unit-description": "Ved å kombinere de valgte enhetene vil kildeenheten og målenheten slås sammen i en enkelt enhet. {source-unit-will-be-deleted} og alle referansene til kildeenheten vil bli oppdatert til å peke til målenheten.",
"combine-unit": "Kombiner enhet", "combine-unit": "Kombiner enhet",
"source-unit": "Source Unit", "source-unit": "Kildeenhet",
"target-unit": "Target Unit", "target-unit": "Målenhet",
"merging-unit-into-unit": "Merging {0} into {1}", "merging-unit-into-unit": "Slår sammen {0} til {1}",
"create-unit": "Opprett enhet", "create-unit": "Opprett enhet",
"abbreviation": "Forkortelse", "abbreviation": "Forkortelse",
"plural-abbreviation": "Flertallsforkortelse",
"description": "Beskrivelse", "description": "Beskrivelse",
"display-as-fraction": "Vis som brøkdel", "display-as-fraction": "Vis som brøkdel",
"use-abbreviation": "Bruk forkortelse", "use-abbreviation": "Bruk forkortelse",
"edit-unit": "Rediger enhet", "edit-unit": "Rediger enhet",
"unit-data": "Unit Data", "unit-data": "Enhetsdata",
"use-abbv": "Use Abbv.", "use-abbv": "Bruk forkortelse.",
"fraction": "Brøk" "fraction": "Brøk",
"example-unit-singular": "Feks: Spiseskje",
"example-unit-plural": "Feks: Spiseskjeer",
"example-unit-abbreviation-singular": "Feks: SS",
"example-unit-abbreviation-plural": "Feks: SS"
}, },
"labels": { "labels": {
"seed-dialog-text": "Lag en database med vanlige enheter basert på ditt lokale språk.", "seed-dialog-text": "Lag en database med vanlige enheter basert på ditt lokale språk.",
@ -917,9 +929,9 @@
"purge-exports": "Fjern eksporter", "purge-exports": "Fjern eksporter",
"are-you-sure-you-want-to-delete-all-export-data": "Er du sikker på at du vil slette all historikk?", "are-you-sure-you-want-to-delete-all-export-data": "Er du sikker på at du vil slette all historikk?",
"confirm-delete-recipes": "Er du sikker på at du vil slette denne oppskriften? Denne handlingen kan ikke angres.", "confirm-delete-recipes": "Er du sikker på at du vil slette denne oppskriften? Denne handlingen kan ikke angres.",
"the-following-recipes-selected-length-will-be-exported": "The following recipes ({0}) will be exported.", "the-following-recipes-selected-length-will-be-exported": "Følgende oppskrifter ({0}) vil bli eksportert.",
"settings-chosen-explanation": "Settings chosen here, excluding the locked option, will be applied to all selected recipes.", "settings-chosen-explanation": "Innstillinger valgt her, bortsett fra det låste alternativet, vil bli brukt på alle valgte oppskrifter.",
"selected-length-recipe-s-settings-will-be-updated": "{count} recipe(s) settings will be updated.", "selected-length-recipe-s-settings-will-be-updated": "Innstillingene til {count} oppskrift(er) vil bli oppdatert.",
"recipe-data": "Oppskriftsdata", "recipe-data": "Oppskriftsdata",
"recipe-data-description": "Use this section to manage the data associated with your recipes. You can perform several bulk actions on your recipes including exporting, deleting, tagging, and assigning categories.", "recipe-data-description": "Use this section to manage the data associated with your recipes. You can perform several bulk actions on your recipes including exporting, deleting, tagging, and assigning categories.",
"recipe-columns": "Recipe Columns", "recipe-columns": "Recipe Columns",
@ -934,6 +946,8 @@
"delete-recipes": "Slett oppskrifter", "delete-recipes": "Slett oppskrifter",
"source-unit-will-be-deleted": "Kildeenheten vil bli slettet" "source-unit-will-be-deleted": "Kildeenheten vil bli slettet"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Frødata", "seed-data": "Frødata",
"seed": "Seed", "seed": "Seed",
"data-management": "Databehandling", "data-management": "Databehandling",
@ -941,7 +955,22 @@
"select-data": "Velg data", "select-data": "Velg data",
"select-language": "Velg språk", "select-language": "Velg språk",
"columns": "Kolonner", "columns": "Kolonner",
"combine": "Kombiner" "combine": "Kombiner",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "Brukerregistrering", "user-registration": "Brukerregistrering",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Nie znaleziono przepisu", "no-recipe-found": "Nie znaleziono przepisu",
"ok": "OK", "ok": "OK",
"options": "Opcje:", "options": "Opcje:",
"plural-name": "Plural Name",
"print": "Drukuj", "print": "Drukuj",
"print-preferences": "Właściwości drukowania", "print-preferences": "Właściwości drukowania",
"random": "Losowa", "random": "Losowa",
@ -462,7 +463,9 @@
"add-to-plan": "Dodaj do planu", "add-to-plan": "Dodaj do planu",
"add-to-timeline": "Add to Timeline", "add-to-timeline": "Add to Timeline",
"recipe-added-to-list": "Przepis dodany do listy", "recipe-added-to-list": "Przepis dodany do listy",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Przepis dodany do planu posiłków", "recipe-added-to-mealplan": "Przepis dodany do planu posiłków",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Nie udało się dodać przepisu do planu posiłków", "failed-to-add-recipe-to-mealplan": "Nie udało się dodać przepisu do planu posiłków",
"yield": "Wydajność", "yield": "Wydajność",
"quantity": "Ilość", "quantity": "Ilość",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "Użytkownik może zaprosić innych do grupy", "user-can-invite-other-to-group": "Użytkownik może zaprosić innych do grupy",
"user-can-manage-group": "Użytkownik może zarządzać grupą", "user-can-manage-group": "Użytkownik może zarządzać grupą",
"user-can-organize-group-data": "Użytkownik może organizować dane grupy", "user-can-organize-group-data": "Użytkownik może organizować dane grupy",
"enable-advanced-features": "Włącz zaawansowane funkcje" "enable-advanced-features": "Włącz zaawansowane funkcje",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "przetłumaczone", "translated": "przetłumaczone",
@ -888,7 +893,9 @@
"create-food": "Utwórz Żywność", "create-food": "Utwórz Żywność",
"food-label": "Etykieta Żywności", "food-label": "Etykieta Żywności",
"edit-food": "Edytuj Żywność", "edit-food": "Edytuj Żywność",
"food-data": "Dane Żywności" "food-data": "Dane Żywności",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Wypełnij bazę zwyczajowymi jednostkami dla wybranego języka.", "seed-dialog-text": "Wypełnij bazę zwyczajowymi jednostkami dla wybranego języka.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "Scalanie {0} do {1}", "merging-unit-into-unit": "Scalanie {0} do {1}",
"create-unit": "Utwórz Jednostkę", "create-unit": "Utwórz Jednostkę",
"abbreviation": "Skrócona nazwa", "abbreviation": "Skrócona nazwa",
"plural-abbreviation": "Plural Abbreviation",
"description": "Opis", "description": "Opis",
"display-as-fraction": "Wyświetlaj jako ułamek", "display-as-fraction": "Wyświetlaj jako ułamek",
"use-abbreviation": "Używaj skróconej nazwy", "use-abbreviation": "Używaj skróconej nazwy",
"edit-unit": "Edytuj jednostkę", "edit-unit": "Edytuj jednostkę",
"unit-data": "Dane Jednostki", "unit-data": "Dane Jednostki",
"use-abbv": "Użyj Skr.", "use-abbv": "Użyj Skr.",
"fraction": "Ułamki" "fraction": "Ułamki",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Wypełnij bazę zwyczajowymi etykietami dla wybranego języka.", "seed-dialog-text": "Wypełnij bazę zwyczajowymi etykietami dla wybranego języka.",
@ -934,6 +946,8 @@
"delete-recipes": "Usuń Przepisy", "delete-recipes": "Usuń Przepisy",
"source-unit-will-be-deleted": "Jednostka źródłowa zostanie usunięta" "source-unit-will-be-deleted": "Jednostka źródłowa zostanie usunięta"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Dane przykładowe", "seed-data": "Dane przykładowe",
"seed": "Seed", "seed": "Seed",
"data-management": "Zarządzanie Danymi", "data-management": "Zarządzanie Danymi",
@ -941,7 +955,22 @@
"select-data": "Wybierz Dane", "select-data": "Wybierz Dane",
"select-language": "Wybierz język", "select-language": "Wybierz język",
"columns": "Kolumny", "columns": "Kolumny",
"combine": "Połącz" "combine": "Połącz",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "Rejestracja użytkownika", "user-registration": "Rejestracja użytkownika",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Nenhuma Receita Encontrada", "no-recipe-found": "Nenhuma Receita Encontrada",
"ok": "OK", "ok": "OK",
"options": "Opções:", "options": "Opções:",
"plural-name": "Plural Name",
"print": "Imprimir", "print": "Imprimir",
"print-preferences": "Preferências de impressão", "print-preferences": "Preferências de impressão",
"random": "Aleatório", "random": "Aleatório",
@ -462,7 +463,9 @@
"add-to-plan": "Adicionar ao Plano", "add-to-plan": "Adicionar ao Plano",
"add-to-timeline": "Adicionar à linha do tempo", "add-to-timeline": "Adicionar à linha do tempo",
"recipe-added-to-list": "Receita adicionada à lista", "recipe-added-to-list": "Receita adicionada à lista",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Receita adicionada ao plano de refeições", "recipe-added-to-mealplan": "Receita adicionada ao plano de refeições",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Falha ao adicionar a receita ao plano de refeições", "failed-to-add-recipe-to-mealplan": "Falha ao adicionar a receita ao plano de refeições",
"yield": "Rendimento", "yield": "Rendimento",
"quantity": "Quantidade", "quantity": "Quantidade",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "O usuário pode convidar outro para o grupo", "user-can-invite-other-to-group": "O usuário pode convidar outro para o grupo",
"user-can-manage-group": "Usuário pode gerenciar o grupo", "user-can-manage-group": "Usuário pode gerenciar o grupo",
"user-can-organize-group-data": "Usuário pode organizar dados do grupo", "user-can-organize-group-data": "Usuário pode organizar dados do grupo",
"enable-advanced-features": "Ativar recursos avançados" "enable-advanced-features": "Ativar recursos avançados",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "traduzido", "translated": "traduzido",
@ -888,7 +893,9 @@
"create-food": "Criar Comida", "create-food": "Criar Comida",
"food-label": "Rótulo da Comida", "food-label": "Rótulo da Comida",
"edit-food": "Editar Comida", "edit-food": "Editar Comida",
"food-data": "Dados da Comida" "food-data": "Dados da Comida",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Adicione a base de dados unidades comuns baseadas em seu idioma.", "seed-dialog-text": "Adicione a base de dados unidades comuns baseadas em seu idioma.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "Mesclando {0} em {1}", "merging-unit-into-unit": "Mesclando {0} em {1}",
"create-unit": "Criar unidade", "create-unit": "Criar unidade",
"abbreviation": "Abreviação", "abbreviation": "Abreviação",
"plural-abbreviation": "Plural Abbreviation",
"description": "Descrição", "description": "Descrição",
"display-as-fraction": "Exibir como fração", "display-as-fraction": "Exibir como fração",
"use-abbreviation": "Usar abreviação", "use-abbreviation": "Usar abreviação",
"edit-unit": "Editar Unidade", "edit-unit": "Editar Unidade",
"unit-data": "Dados da Unidade", "unit-data": "Dados da Unidade",
"use-abbv": "Usar abreviação", "use-abbv": "Usar abreviação",
"fraction": "Fração" "fraction": "Fração",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Semente o banco de dados com rótulos comuns baseados no seu idioma local.", "seed-dialog-text": "Semente o banco de dados com rótulos comuns baseados no seu idioma local.",
@ -934,6 +946,8 @@
"delete-recipes": "Excluir Receitas", "delete-recipes": "Excluir Receitas",
"source-unit-will-be-deleted": "Unidade de origem será excluída" "source-unit-will-be-deleted": "Unidade de origem será excluída"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Semear dados", "seed-data": "Semear dados",
"seed": "Semear", "seed": "Semear",
"data-management": "Gerenciamento de dados", "data-management": "Gerenciamento de dados",
@ -941,7 +955,22 @@
"select-data": "Selecionar dados", "select-data": "Selecionar dados",
"select-language": "Selecionar idioma", "select-language": "Selecionar idioma",
"columns": "Colunas", "columns": "Colunas",
"combine": "Combinar" "combine": "Combinar",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "Cadastro de usuário", "user-registration": "Cadastro de usuário",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Nenhuma Receita Encontrada", "no-recipe-found": "Nenhuma Receita Encontrada",
"ok": "OK", "ok": "OK",
"options": "Opções:", "options": "Opções:",
"plural-name": "Plural Name",
"print": "Imprimir", "print": "Imprimir",
"print-preferences": "Preferências de impressão", "print-preferences": "Preferências de impressão",
"random": "Aleatório", "random": "Aleatório",
@ -462,7 +463,9 @@
"add-to-plan": "Adicionar ao plano", "add-to-plan": "Adicionar ao plano",
"add-to-timeline": "Adicionar à Linha Temporal", "add-to-timeline": "Adicionar à Linha Temporal",
"recipe-added-to-list": "Receita adicionada à lista", "recipe-added-to-list": "Receita adicionada à lista",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Receita adicionada ao plano de refeições", "recipe-added-to-mealplan": "Receita adicionada ao plano de refeições",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Erro ao adicionar receita ao plano de refeições", "failed-to-add-recipe-to-mealplan": "Erro ao adicionar receita ao plano de refeições",
"yield": "Rendimento", "yield": "Rendimento",
"quantity": "Quantidade", "quantity": "Quantidade",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "O utilizador pode convidar outro para o grupo", "user-can-invite-other-to-group": "O utilizador pode convidar outro para o grupo",
"user-can-manage-group": "O utilizador pode gerir o grupo", "user-can-manage-group": "O utilizador pode gerir o grupo",
"user-can-organize-group-data": "O utilizador pode organizar dados do grupo", "user-can-organize-group-data": "O utilizador pode organizar dados do grupo",
"enable-advanced-features": "Habilitar recursos avançados" "enable-advanced-features": "Habilitar recursos avançados",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "traduzido", "translated": "traduzido",
@ -888,7 +893,9 @@
"create-food": "Criar Alimento", "create-food": "Criar Alimento",
"food-label": "Rótulo de Alimento", "food-label": "Rótulo de Alimento",
"edit-food": "Editar Alimento", "edit-food": "Editar Alimento",
"food-data": "Dados do Alimento" "food-data": "Dados do Alimento",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Popule a base de dados com unidades comuns no seu idioma.", "seed-dialog-text": "Popule a base de dados com unidades comuns no seu idioma.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "A juntar {0} com {1}", "merging-unit-into-unit": "A juntar {0} com {1}",
"create-unit": "Criar Unidade", "create-unit": "Criar Unidade",
"abbreviation": "Abreviatura", "abbreviation": "Abreviatura",
"plural-abbreviation": "Plural Abbreviation",
"description": "Descrição", "description": "Descrição",
"display-as-fraction": "Mostrar como fração", "display-as-fraction": "Mostrar como fração",
"use-abbreviation": "Usar abreviatura", "use-abbreviation": "Usar abreviatura",
"edit-unit": "Editar unidade", "edit-unit": "Editar unidade",
"unit-data": "Dados da Unidade", "unit-data": "Dados da Unidade",
"use-abbv": "Usar Abrev.", "use-abbv": "Usar Abrev.",
"fraction": "Fração" "fraction": "Fração",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Adicionar à base de dados rótulos comuns no seu idioma local.", "seed-dialog-text": "Adicionar à base de dados rótulos comuns no seu idioma local.",
@ -934,6 +946,8 @@
"delete-recipes": "Eliminar Receitas", "delete-recipes": "Eliminar Receitas",
"source-unit-will-be-deleted": "Unidade de origem será eliminada" "source-unit-will-be-deleted": "Unidade de origem será eliminada"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Gerar dados", "seed-data": "Gerar dados",
"seed": "Gerar", "seed": "Gerar",
"data-management": "Gestão de dados", "data-management": "Gestão de dados",
@ -941,7 +955,22 @@
"select-data": "Selecionar dados", "select-data": "Selecionar dados",
"select-language": "Selecionar idioma", "select-language": "Selecionar idioma",
"columns": "Colunas", "columns": "Colunas",
"combine": "Combinar" "combine": "Combinar",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "Registo de Utilizador", "user-registration": "Registo de Utilizador",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Nici o rețetă găsită", "no-recipe-found": "Nici o rețetă găsită",
"ok": "OK", "ok": "OK",
"options": "Opțiuni:", "options": "Opțiuni:",
"plural-name": "Plural Name",
"print": "Imprimare", "print": "Imprimare",
"print-preferences": "Preferințe de imprimare", "print-preferences": "Preferințe de imprimare",
"random": "Aleatoriu", "random": "Aleatoriu",
@ -462,7 +463,9 @@
"add-to-plan": "Adaugă la Plan", "add-to-plan": "Adaugă la Plan",
"add-to-timeline": "Adaugă la Cronologie", "add-to-timeline": "Adaugă la Cronologie",
"recipe-added-to-list": "Rețeta a fost adăugată la listă", "recipe-added-to-list": "Rețeta a fost adăugată la listă",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Rețeta a fist adăugată la planul de mese", "recipe-added-to-mealplan": "Rețeta a fist adăugată la planul de mese",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Adăugarea rețetei la planul de mese a eșuat", "failed-to-add-recipe-to-mealplan": "Adăugarea rețetei la planul de mese a eșuat",
"yield": "Yield", "yield": "Yield",
"quantity": "Quantity", "quantity": "Quantity",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "User can invite other to group", "user-can-invite-other-to-group": "User can invite other to group",
"user-can-manage-group": "User can manage group", "user-can-manage-group": "User can manage group",
"user-can-organize-group-data": "User can organize group data", "user-can-organize-group-data": "User can organize group data",
"enable-advanced-features": "Enable advanced features" "enable-advanced-features": "Enable advanced features",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "translated", "translated": "translated",
@ -888,7 +893,9 @@
"create-food": "Create Food", "create-food": "Create Food",
"food-label": "Food Label", "food-label": "Food Label",
"edit-food": "Edit Food", "edit-food": "Edit Food",
"food-data": "Food Data" "food-data": "Food Data",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Seed the database with common units based on your local language.", "seed-dialog-text": "Seed the database with common units based on your local language.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "Merging {0} into {1}", "merging-unit-into-unit": "Merging {0} into {1}",
"create-unit": "Create Unit", "create-unit": "Create Unit",
"abbreviation": "Abbreviation", "abbreviation": "Abbreviation",
"plural-abbreviation": "Plural Abbreviation",
"description": "Description", "description": "Description",
"display-as-fraction": "Display as Fraction", "display-as-fraction": "Display as Fraction",
"use-abbreviation": "Use Abbreviation", "use-abbreviation": "Use Abbreviation",
"edit-unit": "Edit Unit", "edit-unit": "Edit Unit",
"unit-data": "Unit Data", "unit-data": "Unit Data",
"use-abbv": "Use Abbv.", "use-abbv": "Use Abbv.",
"fraction": "Fraction" "fraction": "Fraction",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Seed the database with common labels based on your local language.", "seed-dialog-text": "Seed the database with common labels based on your local language.",
@ -934,6 +946,8 @@
"delete-recipes": "Delete Recipes", "delete-recipes": "Delete Recipes",
"source-unit-will-be-deleted": "Source Unit will be deleted" "source-unit-will-be-deleted": "Source Unit will be deleted"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Seed Data", "seed-data": "Seed Data",
"seed": "Seed", "seed": "Seed",
"data-management": "Data Management", "data-management": "Data Management",
@ -941,7 +955,22 @@
"select-data": "Select Data", "select-data": "Select Data",
"select-language": "Select Language", "select-language": "Select Language",
"columns": "Columns", "columns": "Columns",
"combine": "Combine" "combine": "Combine",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "User Registration", "user-registration": "User Registration",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Рецепт не найден", "no-recipe-found": "Рецепт не найден",
"ok": "Ок", "ok": "Ок",
"options": "Параметры:", "options": "Параметры:",
"plural-name": "Название в мн. ч",
"print": "Печать", "print": "Печать",
"print-preferences": "Настройки печати", "print-preferences": "Настройки печати",
"random": "Случайный", "random": "Случайный",
@ -462,7 +463,9 @@
"add-to-plan": "Добавить к плану", "add-to-plan": "Добавить к плану",
"add-to-timeline": "Добавить в историю", "add-to-timeline": "Добавить в историю",
"recipe-added-to-list": "Рецепт добавлен в список", "recipe-added-to-list": "Рецепт добавлен в список",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Рецепт добавлен в план питания", "recipe-added-to-mealplan": "Рецепт добавлен в план питания",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Не удалось добавить рецепт в план питания", "failed-to-add-recipe-to-mealplan": "Не удалось добавить рецепт в план питания",
"yield": "Выход", "yield": "Выход",
"quantity": "Количество", "quantity": "Количество",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "Пользователь может пригласить других в группу", "user-can-invite-other-to-group": "Пользователь может пригласить других в группу",
"user-can-manage-group": "Пользователь может управлять группой", "user-can-manage-group": "Пользователь может управлять группой",
"user-can-organize-group-data": "Пользователь может менять групповые данные", "user-can-organize-group-data": "Пользователь может менять групповые данные",
"enable-advanced-features": "Включить доп. функции" "enable-advanced-features": "Включить доп. функции",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "переведено", "translated": "переведено",
@ -888,7 +893,9 @@
"create-food": "Добавить продукт", "create-food": "Добавить продукт",
"food-label": "Метка продукта", "food-label": "Метка продукта",
"edit-food": "Изменить продукт", "edit-food": "Изменить продукт",
"food-data": "Данные о продуктах" "food-data": "Данные о продуктах",
"example-food-singular": "пр. Луковица",
"example-food-plural": "пр. Луковиц"
}, },
"units": { "units": {
"seed-dialog-text": "Заполняет базу данных рядовыми единицами измерений на основе выбранного языка.", "seed-dialog-text": "Заполняет базу данных рядовыми единицами измерений на основе выбранного языка.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "Объединение {0} в {1}", "merging-unit-into-unit": "Объединение {0} в {1}",
"create-unit": "Добавить единицу измерения", "create-unit": "Добавить единицу измерения",
"abbreviation": "Аббревиатура", "abbreviation": "Аббревиатура",
"plural-abbreviation": "Сокращение во мн. ч.",
"description": "Описание", "description": "Описание",
"display-as-fraction": "Отображать как дробь", "display-as-fraction": "Отображать как дробь",
"use-abbreviation": "Использовать аббревиатуру", "use-abbreviation": "Использовать аббревиатуру",
"edit-unit": "Изменить единицу измерения", "edit-unit": "Изменить единицу измерения",
"unit-data": "Данные единицы измерения", "unit-data": "Данные единицы измерения",
"use-abbv": "Использовать аббревиатуру", "use-abbv": "Использовать аббревиатуру",
"fraction": "Дробь" "fraction": "Дробь",
"example-unit-singular": "пр. Столовая ложка",
"example-unit-plural": "пр. Столовых ложек",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Дополнить базу данных типичными единицами измерений на основе выбранного языка.", "seed-dialog-text": "Дополнить базу данных типичными единицами измерений на основе выбранного языка.",
@ -934,6 +946,8 @@
"delete-recipes": "Удалить рецепты", "delete-recipes": "Удалить рецепты",
"source-unit-will-be-deleted": "Первая единица измерения будет удалена" "source-unit-will-be-deleted": "Первая единица измерения будет удалена"
}, },
"create-alias": "Создать псевдоним",
"manage-aliases": "Управление псевдонимами",
"seed-data": "Заполнить данные", "seed-data": "Заполнить данные",
"seed": "Заполнить", "seed": "Заполнить",
"data-management": "Управление хранилищем данных", "data-management": "Управление хранилищем данных",
@ -941,7 +955,22 @@
"select-data": "Выберите данные", "select-data": "Выберите данные",
"select-language": "Выберите язык", "select-language": "Выберите язык",
"columns": "Столбцы", "columns": "Столбцы",
"combine": "Объединить" "combine": "Объединить",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "Регистрация", "user-registration": "Регистрация",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Žiadny recept nenájdený", "no-recipe-found": "Žiadny recept nenájdený",
"ok": "OK", "ok": "OK",
"options": "Možnosti:", "options": "Možnosti:",
"plural-name": "Plural Name",
"print": "Tlačiť", "print": "Tlačiť",
"print-preferences": "Nastavenia tlače", "print-preferences": "Nastavenia tlače",
"random": "Náhodné", "random": "Náhodné",
@ -462,7 +463,9 @@
"add-to-plan": "Pridať do plánu", "add-to-plan": "Pridať do plánu",
"add-to-timeline": "Add to Timeline", "add-to-timeline": "Add to Timeline",
"recipe-added-to-list": "Recept bol pridaný do zoznamu", "recipe-added-to-list": "Recept bol pridaný do zoznamu",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Recept bol pridaný do stravovacieho plánu", "recipe-added-to-mealplan": "Recept bol pridaný do stravovacieho plánu",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Pridanie receptu do stravovacieho plánu zlyhalo", "failed-to-add-recipe-to-mealplan": "Pridanie receptu do stravovacieho plánu zlyhalo",
"yield": "Počet porcií", "yield": "Počet porcií",
"quantity": "Množstvo", "quantity": "Množstvo",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "Užívateľ môže do skupiny pozvať ďalších", "user-can-invite-other-to-group": "Užívateľ môže do skupiny pozvať ďalších",
"user-can-manage-group": "Užívateľ môže spravovať skupinu", "user-can-manage-group": "Užívateľ môže spravovať skupinu",
"user-can-organize-group-data": "Užívateľ môže spravovať údaje skupiny", "user-can-organize-group-data": "Užívateľ môže spravovať údaje skupiny",
"enable-advanced-features": "Povoliť pokročilé funkcie" "enable-advanced-features": "Povoliť pokročilé funkcie",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "preložené", "translated": "preložené",
@ -888,7 +893,9 @@
"create-food": "Vytvoriť jedlo", "create-food": "Vytvoriť jedlo",
"food-label": "Značka jedla", "food-label": "Značka jedla",
"edit-food": "Upraviť jedlo", "edit-food": "Upraviť jedlo",
"food-data": "Údaje o jedle" "food-data": "Údaje o jedle",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Naplniť databázu z bežnými štítkami podla vášho lokálneho jazyka.", "seed-dialog-text": "Naplniť databázu z bežnými štítkami podla vášho lokálneho jazyka.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "Zlúčiť {0} do {1}", "merging-unit-into-unit": "Zlúčiť {0} do {1}",
"create-unit": "Vytvoriť jednotku", "create-unit": "Vytvoriť jednotku",
"abbreviation": "Skratky", "abbreviation": "Skratky",
"plural-abbreviation": "Plural Abbreviation",
"description": "Popis", "description": "Popis",
"display-as-fraction": "Zobraziť ako zlomok", "display-as-fraction": "Zobraziť ako zlomok",
"use-abbreviation": "Použiť skratky", "use-abbreviation": "Použiť skratky",
"edit-unit": "Upraviť jednotku", "edit-unit": "Upraviť jednotku",
"unit-data": "Údaje o jednotke", "unit-data": "Údaje o jednotke",
"use-abbv": "Použiť skrt.", "use-abbv": "Použiť skrt.",
"fraction": "Zlomok" "fraction": "Zlomok",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Naplniť databázu z bežnými štítkami podla vášho lokálneho jazyka.", "seed-dialog-text": "Naplniť databázu z bežnými štítkami podla vášho lokálneho jazyka.",
@ -934,6 +946,8 @@
"delete-recipes": "Odstrániť recepty", "delete-recipes": "Odstrániť recepty",
"source-unit-will-be-deleted": "Zdroj bude vymazaný" "source-unit-will-be-deleted": "Zdroj bude vymazaný"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Naplniť dáta", "seed-data": "Naplniť dáta",
"seed": "Zdroj", "seed": "Zdroj",
"data-management": "Správa dát", "data-management": "Správa dát",
@ -941,7 +955,22 @@
"select-data": "Vyberte dáta", "select-data": "Vyberte dáta",
"select-language": "Vyberte jazyk", "select-language": "Vyberte jazyk",
"columns": "Stĺpce", "columns": "Stĺpce",
"combine": "Kombinovať" "combine": "Kombinovať",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "Registrácia", "user-registration": "Registrácia",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Ne najdem recepta", "no-recipe-found": "Ne najdem recepta",
"ok": "V redu", "ok": "V redu",
"options": "Možnosti:", "options": "Možnosti:",
"plural-name": "Plural Name",
"print": "Natisni", "print": "Natisni",
"print-preferences": "Print Preferences", "print-preferences": "Print Preferences",
"random": "Naključno", "random": "Naključno",
@ -462,7 +463,9 @@
"add-to-plan": "Dodaj v načrt", "add-to-plan": "Dodaj v načrt",
"add-to-timeline": "Add to Timeline", "add-to-timeline": "Add to Timeline",
"recipe-added-to-list": "Recept dodan na seznam", "recipe-added-to-list": "Recept dodan na seznam",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Recept dodan v načrtovanje obroka", "recipe-added-to-mealplan": "Recept dodan v načrtovanje obroka",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Napaka pri dodajanji recepta v načrtovanje obroka", "failed-to-add-recipe-to-mealplan": "Napaka pri dodajanji recepta v načrtovanje obroka",
"yield": "Donos", "yield": "Donos",
"quantity": "Količina", "quantity": "Količina",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "User can invite other to group", "user-can-invite-other-to-group": "User can invite other to group",
"user-can-manage-group": "User can manage group", "user-can-manage-group": "User can manage group",
"user-can-organize-group-data": "User can organize group data", "user-can-organize-group-data": "User can organize group data",
"enable-advanced-features": "Enable advanced features" "enable-advanced-features": "Enable advanced features",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "prevedeno", "translated": "prevedeno",
@ -888,7 +893,9 @@
"create-food": "Create Food", "create-food": "Create Food",
"food-label": "Food Label", "food-label": "Food Label",
"edit-food": "Edit Food", "edit-food": "Edit Food",
"food-data": "Food Data" "food-data": "Food Data",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Napolni podatkovno bazo z običajnimi enotami, glede na vaš lokalni jezik.", "seed-dialog-text": "Napolni podatkovno bazo z običajnimi enotami, glede na vaš lokalni jezik.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "Merging {0} into {1}", "merging-unit-into-unit": "Merging {0} into {1}",
"create-unit": "Create Unit", "create-unit": "Create Unit",
"abbreviation": "Abbreviation", "abbreviation": "Abbreviation",
"plural-abbreviation": "Plural Abbreviation",
"description": "Description", "description": "Description",
"display-as-fraction": "Display as Fraction", "display-as-fraction": "Display as Fraction",
"use-abbreviation": "Use Abbreviation", "use-abbreviation": "Use Abbreviation",
"edit-unit": "Edit Unit", "edit-unit": "Edit Unit",
"unit-data": "Unit Data", "unit-data": "Unit Data",
"use-abbv": "Use Abbv.", "use-abbv": "Use Abbv.",
"fraction": "Fraction" "fraction": "Fraction",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Napolni podatkovno bazi s običajnimi oznakami, glede na vaš lokalni jezik.", "seed-dialog-text": "Napolni podatkovno bazi s običajnimi oznakami, glede na vaš lokalni jezik.",
@ -934,6 +946,8 @@
"delete-recipes": "Delete Recipes", "delete-recipes": "Delete Recipes",
"source-unit-will-be-deleted": "Source Unit will be deleted" "source-unit-will-be-deleted": "Source Unit will be deleted"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Napolni podatke", "seed-data": "Napolni podatke",
"seed": "Seed", "seed": "Seed",
"data-management": "Data Management", "data-management": "Data Management",
@ -941,7 +955,22 @@
"select-data": "Select Data", "select-data": "Select Data",
"select-language": "Select Language", "select-language": "Select Language",
"columns": "Columns", "columns": "Columns",
"combine": "Combine" "combine": "Combine",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "Registracija uporabnika", "user-registration": "Registracija uporabnika",

File diff suppressed because it is too large Load Diff

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Inga recept hittades", "no-recipe-found": "Inga recept hittades",
"ok": "Ok", "ok": "Ok",
"options": "Alternativ:", "options": "Alternativ:",
"plural-name": "Plural Name",
"print": "Skriv ut", "print": "Skriv ut",
"print-preferences": "Utskriftsinställningar", "print-preferences": "Utskriftsinställningar",
"random": "Slumpa", "random": "Slumpa",
@ -462,7 +463,9 @@
"add-to-plan": "Lägg till i plan", "add-to-plan": "Lägg till i plan",
"add-to-timeline": "Lägg till i tidslinje", "add-to-timeline": "Lägg till i tidslinje",
"recipe-added-to-list": "Recept tillagt i listan", "recipe-added-to-list": "Recept tillagt i listan",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Recept tillagt i måltidsplanen", "recipe-added-to-mealplan": "Recept tillagt i måltidsplanen",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Det gick inte att lägga till recept i måltidsplanen", "failed-to-add-recipe-to-mealplan": "Det gick inte att lägga till recept i måltidsplanen",
"yield": "Ger", "yield": "Ger",
"quantity": "Antal", "quantity": "Antal",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "Användaren kan bjuda in andra till gruppen", "user-can-invite-other-to-group": "Användaren kan bjuda in andra till gruppen",
"user-can-manage-group": "Användare kan hantera grupp", "user-can-manage-group": "Användare kan hantera grupp",
"user-can-organize-group-data": "Användaren kan organisera gruppdata", "user-can-organize-group-data": "Användaren kan organisera gruppdata",
"enable-advanced-features": "Aktivera avancerade funktioner" "enable-advanced-features": "Aktivera avancerade funktioner",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "översatt", "translated": "översatt",
@ -888,7 +893,9 @@
"create-food": "Skapa mat", "create-food": "Skapa mat",
"food-label": "Mat etikett", "food-label": "Mat etikett",
"edit-food": "Redigera mat", "edit-food": "Redigera mat",
"food-data": "Mat data" "food-data": "Mat data",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Fyll databasen med vanliga enheter baserade på ditt språk.", "seed-dialog-text": "Fyll databasen med vanliga enheter baserade på ditt språk.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "Slå samman {0} till {1}", "merging-unit-into-unit": "Slå samman {0} till {1}",
"create-unit": "Skapa enhet", "create-unit": "Skapa enhet",
"abbreviation": "Abbreviation", "abbreviation": "Abbreviation",
"plural-abbreviation": "Plural Abbreviation",
"description": "Beskrivning", "description": "Beskrivning",
"display-as-fraction": "Display as Fraction", "display-as-fraction": "Display as Fraction",
"use-abbreviation": "Use Abbreviation", "use-abbreviation": "Use Abbreviation",
"edit-unit": "Redigera enhet", "edit-unit": "Redigera enhet",
"unit-data": "Enhetsdata", "unit-data": "Enhetsdata",
"use-abbv": "Use Abbv.", "use-abbv": "Use Abbv.",
"fraction": "Fraction" "fraction": "Fraction",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Fyll databasen med vanliga etiketter baserade på ditt språk.", "seed-dialog-text": "Fyll databasen med vanliga etiketter baserade på ditt språk.",
@ -934,6 +946,8 @@
"delete-recipes": "Radera recept", "delete-recipes": "Radera recept",
"source-unit-will-be-deleted": "Source Unit will be deleted" "source-unit-will-be-deleted": "Source Unit will be deleted"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Exempeldata", "seed-data": "Exempeldata",
"seed": "Seed", "seed": "Seed",
"data-management": "Datahantering", "data-management": "Datahantering",
@ -941,7 +955,22 @@
"select-data": "Välj data", "select-data": "Välj data",
"select-language": "Välj språk", "select-language": "Välj språk",
"columns": "Kolumner", "columns": "Kolumner",
"combine": "Kombinera" "combine": "Kombinera",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "Användarregistrering", "user-registration": "Användarregistrering",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Tarif Bulunamadı", "no-recipe-found": "Tarif Bulunamadı",
"ok": "Tamam", "ok": "Tamam",
"options": "Seçenekler:", "options": "Seçenekler:",
"plural-name": "Çoğul Ad",
"print": "Yazdır", "print": "Yazdır",
"print-preferences": "Yazdırma Tercihleri", "print-preferences": "Yazdırma Tercihleri",
"random": "Rastgele", "random": "Rastgele",
@ -462,7 +463,9 @@
"add-to-plan": "Plana Ekle", "add-to-plan": "Plana Ekle",
"add-to-timeline": "Zaman Tüneline Ekle", "add-to-timeline": "Zaman Tüneline Ekle",
"recipe-added-to-list": "Tarif listeye eklendi", "recipe-added-to-list": "Tarif listeye eklendi",
"recipes-added-to-list": "Tarifler listeye eklendi",
"recipe-added-to-mealplan": "Tarif yemek planına eklendi", "recipe-added-to-mealplan": "Tarif yemek planına eklendi",
"failed-to-add-recipes-to-list": "Tarif listeye eklenemedi",
"failed-to-add-recipe-to-mealplan": "Tarif yemek planına eklerken hata oluştu", "failed-to-add-recipe-to-mealplan": "Tarif yemek planına eklerken hata oluştu",
"yield": "Yield", "yield": "Yield",
"quantity": "Miktar", "quantity": "Miktar",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "Kullanıcı başkalarını gruba davet edebilir", "user-can-invite-other-to-group": "Kullanıcı başkalarını gruba davet edebilir",
"user-can-manage-group": "Kullanıcı grubu yönetebilir", "user-can-manage-group": "Kullanıcı grubu yönetebilir",
"user-can-organize-group-data": "Kullanıcı grup verilerini düzenleyebilir", "user-can-organize-group-data": "Kullanıcı grup verilerini düzenleyebilir",
"enable-advanced-features": "Gelişmiş özellikleri etkinleştir" "enable-advanced-features": "Gelişmiş özellikleri etkinleştir",
"it-looks-like-this-is-your-first-time-logging-in": "Görünüşe göre ilk defa giriş yapıyorsunuz.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Artık bunu görmek istemiyor musunuz? Kullanıcı ayarlarınızda e-postanızı değiştirmeyi unutmayın!"
}, },
"language-dialog": { "language-dialog": {
"translated": "translated", "translated": "translated",
@ -888,7 +893,9 @@
"create-food": "Create Food", "create-food": "Create Food",
"food-label": "Food Label", "food-label": "Food Label",
"edit-food": "Yiyecek Düzenle", "edit-food": "Yiyecek Düzenle",
"food-data": "Food Data" "food-data": "Food Data",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Seed the database with common units based on your local language.", "seed-dialog-text": "Seed the database with common units based on your local language.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "Merging {0} into {1}", "merging-unit-into-unit": "Merging {0} into {1}",
"create-unit": "Create Unit", "create-unit": "Create Unit",
"abbreviation": "Kısaltma", "abbreviation": "Kısaltma",
"plural-abbreviation": "Çoğul Kısaltma",
"description": "Açıklama", "description": "Açıklama",
"display-as-fraction": "Display as Fraction", "display-as-fraction": "Display as Fraction",
"use-abbreviation": "Use Abbreviation", "use-abbreviation": "Use Abbreviation",
"edit-unit": "Edit Unit", "edit-unit": "Edit Unit",
"unit-data": "Unit Data", "unit-data": "Unit Data",
"use-abbv": "Use Abbv.", "use-abbv": "Use Abbv.",
"fraction": "Fraction" "fraction": "Fraction",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Seed the database with common labels based on your local language.", "seed-dialog-text": "Seed the database with common labels based on your local language.",
@ -934,6 +946,8 @@
"delete-recipes": "Delete Recipes", "delete-recipes": "Delete Recipes",
"source-unit-will-be-deleted": "Source Unit will be deleted" "source-unit-will-be-deleted": "Source Unit will be deleted"
}, },
"create-alias": "Takma Ad Oluştur",
"manage-aliases": "Takma Adları Yönet",
"seed-data": "Seed Data", "seed-data": "Seed Data",
"seed": "Seed", "seed": "Seed",
"data-management": "Data Management", "data-management": "Data Management",
@ -941,7 +955,22 @@
"select-data": "Select Data", "select-data": "Select Data",
"select-language": "Select Language", "select-language": "Select Language",
"columns": "Columns", "columns": "Columns",
"combine": "Birleştir" "combine": "Birleştir",
"categories": {
"edit-category": "Kategori Düzenle",
"new-category": "Yeni Kategori",
"category-data": "Kategori Verisi"
},
"tags": {
"new-tag": "Yeni Etiket",
"edit-tag": "Etiketi Düzenle",
"tag-data": "Etiket Verisi"
},
"tools": {
"new-tool": "Yeni Araç",
"edit-tool": "Araçları Düzenle",
"tool-data": "Araç Verisi"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "User Registration", "user-registration": "User Registration",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "Рецепти не знайдені", "no-recipe-found": "Рецепти не знайдені",
"ok": "OK", "ok": "OK",
"options": "Опції:", "options": "Опції:",
"plural-name": "Назва у множині",
"print": "Друк", "print": "Друк",
"print-preferences": "Налаштування друку", "print-preferences": "Налаштування друку",
"random": "Випадково", "random": "Випадково",
@ -462,7 +463,9 @@
"add-to-plan": "Додати до плану", "add-to-plan": "Додати до плану",
"add-to-timeline": "Додати до хроніки", "add-to-timeline": "Додати до хроніки",
"recipe-added-to-list": "Рецепт додано до списку", "recipe-added-to-list": "Рецепт додано до списку",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Рецепт додано до плану харчування", "recipe-added-to-mealplan": "Рецепт додано до плану харчування",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Не вдалося додати рецепт до плану харчування", "failed-to-add-recipe-to-mealplan": "Не вдалося додати рецепт до плану харчування",
"yield": "Вихід", "yield": "Вихід",
"quantity": "Кількість", "quantity": "Кількість",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "Користувач може запрошувати інших в групу", "user-can-invite-other-to-group": "Користувач може запрошувати інших в групу",
"user-can-manage-group": "Користувач може керувати групою", "user-can-manage-group": "Користувач може керувати групою",
"user-can-organize-group-data": "Користувач може впорядковувати дані групи", "user-can-organize-group-data": "Користувач може впорядковувати дані групи",
"enable-advanced-features": "Увімкнути додаткові функції" "enable-advanced-features": "Увімкнути додаткові функції",
"it-looks-like-this-is-your-first-time-logging-in": "Схоже, ви заходите вперше.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Більше не хочете це бачити? Обов'язково змініть адресу електронної пошти в налаштуваннях користувача!"
}, },
"language-dialog": { "language-dialog": {
"translated": "перекладено", "translated": "перекладено",
@ -888,7 +893,9 @@
"create-food": "Створити продукт", "create-food": "Створити продукт",
"food-label": "Етикетка продукту", "food-label": "Етикетка продукту",
"edit-food": "Редагувати продукт", "edit-food": "Редагувати продукт",
"food-data": "Дані про продукти" "food-data": "Дані про продукти",
"example-food-singular": "приклад: Цибулина",
"example-food-plural": "приклад: Цибуля"
}, },
"units": { "units": {
"seed-dialog-text": "Заповнити базу даних розповсюдженими одиницями виміру що відповідають мові.", "seed-dialog-text": "Заповнити базу даних розповсюдженими одиницями виміру що відповідають мові.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "Об'єднання {0} з {1}", "merging-unit-into-unit": "Об'єднання {0} з {1}",
"create-unit": "Створити одиницю вимірювання", "create-unit": "Створити одиницю вимірювання",
"abbreviation": "Скорочена назва", "abbreviation": "Скорочена назва",
"plural-abbreviation": "Скорочення в множині",
"description": "Опис", "description": "Опис",
"display-as-fraction": "Відображати як частку", "display-as-fraction": "Відображати як частку",
"use-abbreviation": "Використовувати скорочення", "use-abbreviation": "Використовувати скорочення",
"edit-unit": "Редагувати одиницю", "edit-unit": "Редагувати одиницю",
"unit-data": "Одиниці виміру", "unit-data": "Одиниці виміру",
"use-abbv": "Використовувати скороч-ння.", "use-abbv": "Використовувати скороч-ння.",
"fraction": "Частка" "fraction": "Частка",
"example-unit-singular": "приклад: Столова ложка",
"example-unit-plural": "приклад: Столові ложки",
"example-unit-abbreviation-singular": "приклад: ст. л",
"example-unit-abbreviation-plural": "приклад: ст. л"
}, },
"labels": { "labels": {
"seed-dialog-text": "Заповнити базу даних розповсюдженими категоріями що відповідають мові.", "seed-dialog-text": "Заповнити базу даних розповсюдженими категоріями що відповідають мові.",
@ -934,6 +946,8 @@
"delete-recipes": "Видалити рецепти", "delete-recipes": "Видалити рецепти",
"source-unit-will-be-deleted": "Початкову одиницю вимірювання буде видалено" "source-unit-will-be-deleted": "Початкову одиницю вимірювання буде видалено"
}, },
"create-alias": "Створити псевдонім",
"manage-aliases": "Керувати псевдонімами",
"seed-data": "Підготовлені дані", "seed-data": "Підготовлені дані",
"seed": "Згенерувати", "seed": "Згенерувати",
"data-management": "Керування даними", "data-management": "Керування даними",
@ -941,7 +955,22 @@
"select-data": "Вибір даних", "select-data": "Вибір даних",
"select-language": "Вибір мови", "select-language": "Вибір мови",
"columns": "Стовпці", "columns": "Стовпці",
"combine": "Об'єднати" "combine": "Об'єднати",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "Реєстрація користувачів", "user-registration": "Реєстрація користувачів",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "No Recipe Found", "no-recipe-found": "No Recipe Found",
"ok": "OK", "ok": "OK",
"options": "Options:", "options": "Options:",
"plural-name": "Plural Name",
"print": "Print", "print": "Print",
"print-preferences": "Print Preferences", "print-preferences": "Print Preferences",
"random": "Random", "random": "Random",
@ -463,7 +464,9 @@
"add-to-plan": "Add to Plan", "add-to-plan": "Add to Plan",
"add-to-timeline": "Add to Timeline", "add-to-timeline": "Add to Timeline",
"recipe-added-to-list": "Recipe added to list", "recipe-added-to-list": "Recipe added to list",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Recipe added to mealplan", "recipe-added-to-mealplan": "Recipe added to mealplan",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Failed to add recipe to mealplan", "failed-to-add-recipe-to-mealplan": "Failed to add recipe to mealplan",
"yield": "Yield", "yield": "Yield",
"quantity": "Quantity", "quantity": "Quantity",
@ -868,7 +871,9 @@
"user-can-invite-other-to-group": "User can invite other to group", "user-can-invite-other-to-group": "User can invite other to group",
"user-can-manage-group": "User can manage group", "user-can-manage-group": "User can manage group",
"user-can-organize-group-data": "User can organize group data", "user-can-organize-group-data": "User can organize group data",
"enable-advanced-features": "Enable advanced features" "enable-advanced-features": "Enable advanced features",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "translated", "translated": "translated",
@ -889,7 +894,9 @@
"create-food": "Create Food", "create-food": "Create Food",
"food-label": "Food Label", "food-label": "Food Label",
"edit-food": "Edit Food", "edit-food": "Edit Food",
"food-data": "Food Data" "food-data": "Food Data",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Seed the database with common units based on your local language.", "seed-dialog-text": "Seed the database with common units based on your local language.",
@ -900,13 +907,18 @@
"merging-unit-into-unit": "Merging {0} into {1}", "merging-unit-into-unit": "Merging {0} into {1}",
"create-unit": "Create Unit", "create-unit": "Create Unit",
"abbreviation": "Abbreviation", "abbreviation": "Abbreviation",
"plural-abbreviation": "Plural Abbreviation",
"description": "Description", "description": "Description",
"display-as-fraction": "Display as Fraction", "display-as-fraction": "Display as Fraction",
"use-abbreviation": "Use Abbreviation", "use-abbreviation": "Use Abbreviation",
"edit-unit": "Edit Unit", "edit-unit": "Edit Unit",
"unit-data": "Unit Data", "unit-data": "Unit Data",
"use-abbv": "Use Abbv.", "use-abbv": "Use Abbv.",
"fraction": "Fraction" "fraction": "Fraction",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Seed the database with common labels based on your local language.", "seed-dialog-text": "Seed the database with common labels based on your local language.",
@ -935,6 +947,8 @@
"delete-recipes": "Delete Recipes", "delete-recipes": "Delete Recipes",
"source-unit-will-be-deleted": "Source Unit will be deleted" "source-unit-will-be-deleted": "Source Unit will be deleted"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Seed Data", "seed-data": "Seed Data",
"seed": "Seed", "seed": "Seed",
"data-management": "Data Management", "data-management": "Data Management",
@ -942,7 +956,22 @@
"select-data": "Select Data", "select-data": "Select Data",
"select-language": "Select Language", "select-language": "Select Language",
"columns": "Columns", "columns": "Columns",
"combine": "Combine" "combine": "Combine",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "User Registration", "user-registration": "User Registration",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "未找到食谱", "no-recipe-found": "未找到食谱",
"ok": "好的", "ok": "好的",
"options": "选项:", "options": "选项:",
"plural-name": "Plural Name",
"print": "打印", "print": "打印",
"print-preferences": "打印偏好设置", "print-preferences": "打印偏好设置",
"random": "随机", "random": "随机",
@ -462,7 +463,9 @@
"add-to-plan": "添加到计划", "add-to-plan": "添加到计划",
"add-to-timeline": "添加到时间线", "add-to-timeline": "添加到时间线",
"recipe-added-to-list": "食谱已被添加到列表", "recipe-added-to-list": "食谱已被添加到列表",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "食谱已被添加到用餐计划", "recipe-added-to-mealplan": "食谱已被添加到用餐计划",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "食谱未能添加到用餐计划", "failed-to-add-recipe-to-mealplan": "食谱未能添加到用餐计划",
"yield": "Yield", "yield": "Yield",
"quantity": "数量", "quantity": "数量",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "User can invite other to group", "user-can-invite-other-to-group": "User can invite other to group",
"user-can-manage-group": "User can manage group", "user-can-manage-group": "User can manage group",
"user-can-organize-group-data": "User can organize group data", "user-can-organize-group-data": "User can organize group data",
"enable-advanced-features": "Enable advanced features" "enable-advanced-features": "Enable advanced features",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "已翻译", "translated": "已翻译",
@ -888,7 +893,9 @@
"create-food": "Create Food", "create-food": "Create Food",
"food-label": "Food Label", "food-label": "Food Label",
"edit-food": "Edit Food", "edit-food": "Edit Food",
"food-data": "Food Data" "food-data": "Food Data",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Seed the database with common units based on your local language.", "seed-dialog-text": "Seed the database with common units based on your local language.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "Merging {0} into {1}", "merging-unit-into-unit": "Merging {0} into {1}",
"create-unit": "Create Unit", "create-unit": "Create Unit",
"abbreviation": "Abbreviation", "abbreviation": "Abbreviation",
"plural-abbreviation": "Plural Abbreviation",
"description": "Description", "description": "Description",
"display-as-fraction": "Display as Fraction", "display-as-fraction": "Display as Fraction",
"use-abbreviation": "Use Abbreviation", "use-abbreviation": "Use Abbreviation",
"edit-unit": "Edit Unit", "edit-unit": "Edit Unit",
"unit-data": "Unit Data", "unit-data": "Unit Data",
"use-abbv": "Use Abbv.", "use-abbv": "Use Abbv.",
"fraction": "Fraction" "fraction": "Fraction",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Seed the database with common labels based on your local language.", "seed-dialog-text": "Seed the database with common labels based on your local language.",
@ -934,6 +946,8 @@
"delete-recipes": "Delete Recipes", "delete-recipes": "Delete Recipes",
"source-unit-will-be-deleted": "Source Unit will be deleted" "source-unit-will-be-deleted": "Source Unit will be deleted"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Seed Data", "seed-data": "Seed Data",
"seed": "Seed", "seed": "Seed",
"data-management": "Data Management", "data-management": "Data Management",
@ -941,7 +955,22 @@
"select-data": "Select Data", "select-data": "Select Data",
"select-language": "Select Language", "select-language": "Select Language",
"columns": "Columns", "columns": "Columns",
"combine": "Combine" "combine": "Combine",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "User Registration", "user-registration": "User Registration",

View File

@ -124,6 +124,7 @@
"no-recipe-found": "找不到食譜", "no-recipe-found": "找不到食譜",
"ok": "好的", "ok": "好的",
"options": "選項:", "options": "選項:",
"plural-name": "Plural Name",
"print": "列印", "print": "列印",
"print-preferences": "Print Preferences", "print-preferences": "Print Preferences",
"random": "隨機", "random": "隨機",
@ -462,7 +463,9 @@
"add-to-plan": "Add to Plan", "add-to-plan": "Add to Plan",
"add-to-timeline": "Add to Timeline", "add-to-timeline": "Add to Timeline",
"recipe-added-to-list": "Recipe added to list", "recipe-added-to-list": "Recipe added to list",
"recipes-added-to-list": "Recipes added to list",
"recipe-added-to-mealplan": "Recipe added to mealplan", "recipe-added-to-mealplan": "Recipe added to mealplan",
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
"failed-to-add-recipe-to-mealplan": "Failed to add recipe to mealplan", "failed-to-add-recipe-to-mealplan": "Failed to add recipe to mealplan",
"yield": "Yield", "yield": "Yield",
"quantity": "Quantity", "quantity": "Quantity",
@ -867,7 +870,9 @@
"user-can-invite-other-to-group": "User can invite other to group", "user-can-invite-other-to-group": "User can invite other to group",
"user-can-manage-group": "User can manage group", "user-can-manage-group": "User can manage group",
"user-can-organize-group-data": "User can organize group data", "user-can-organize-group-data": "User can organize group data",
"enable-advanced-features": "Enable advanced features" "enable-advanced-features": "Enable advanced features",
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!"
}, },
"language-dialog": { "language-dialog": {
"translated": "translated", "translated": "translated",
@ -888,7 +893,9 @@
"create-food": "Create Food", "create-food": "Create Food",
"food-label": "Food Label", "food-label": "Food Label",
"edit-food": "Edit Food", "edit-food": "Edit Food",
"food-data": "Food Data" "food-data": "Food Data",
"example-food-singular": "ex: Onion",
"example-food-plural": "ex: Onions"
}, },
"units": { "units": {
"seed-dialog-text": "Seed the database with common units based on your local language.", "seed-dialog-text": "Seed the database with common units based on your local language.",
@ -899,13 +906,18 @@
"merging-unit-into-unit": "Merging {0} into {1}", "merging-unit-into-unit": "Merging {0} into {1}",
"create-unit": "Create Unit", "create-unit": "Create Unit",
"abbreviation": "Abbreviation", "abbreviation": "Abbreviation",
"plural-abbreviation": "Plural Abbreviation",
"description": "Description", "description": "Description",
"display-as-fraction": "Display as Fraction", "display-as-fraction": "Display as Fraction",
"use-abbreviation": "Use Abbreviation", "use-abbreviation": "Use Abbreviation",
"edit-unit": "Edit Unit", "edit-unit": "Edit Unit",
"unit-data": "Unit Data", "unit-data": "Unit Data",
"use-abbv": "Use Abbv.", "use-abbv": "Use Abbv.",
"fraction": "Fraction" "fraction": "Fraction",
"example-unit-singular": "ex: Tablespoon",
"example-unit-plural": "ex: Tablespoons",
"example-unit-abbreviation-singular": "ex: Tbsp",
"example-unit-abbreviation-plural": "ex: Tbsps"
}, },
"labels": { "labels": {
"seed-dialog-text": "Seed the database with common labels based on your local language.", "seed-dialog-text": "Seed the database with common labels based on your local language.",
@ -934,6 +946,8 @@
"delete-recipes": "Delete Recipes", "delete-recipes": "Delete Recipes",
"source-unit-will-be-deleted": "Source Unit will be deleted" "source-unit-will-be-deleted": "Source Unit will be deleted"
}, },
"create-alias": "Create Alias",
"manage-aliases": "Manage Aliases",
"seed-data": "Seed Data", "seed-data": "Seed Data",
"seed": "Seed", "seed": "Seed",
"data-management": "Data Management", "data-management": "Data Management",
@ -941,7 +955,22 @@
"select-data": "Select Data", "select-data": "Select Data",
"select-language": "Select Language", "select-language": "Select Language",
"columns": "Columns", "columns": "Columns",
"combine": "Combine" "combine": "Combine",
"categories": {
"edit-category": "Edit Category",
"new-category": "New Category",
"category-data": "Category Data"
},
"tags": {
"new-tag": "New Tag",
"edit-tag": "Edit Tag",
"tag-data": "Tag Data"
},
"tools": {
"new-tool": "New Tool",
"edit-tool": "Edit Tool",
"tool-data": "Tool Data"
}
}, },
"user-registration": { "user-registration": {
"user-registration": "User Registration", "user-registration": "User Registration",

View File

@ -34,6 +34,9 @@ export interface AppInfo {
demoStatus: boolean; demoStatus: boolean;
allowSignup: boolean; allowSignup: boolean;
} }
export interface AppStartupInfo {
isFirstLogin: boolean;
}
export interface AppStatistics { export interface AppStatistics {
totalRecipes: number; totalRecipes: number;
totalUsers: number; totalUsers: number;
@ -41,6 +44,22 @@ export interface AppStatistics {
uncategorizedRecipes: number; uncategorizedRecipes: number;
untaggedRecipes: number; untaggedRecipes: number;
} }
export interface AppTheme {
lightPrimary?: string;
lightAccent?: string;
lightSecondary?: string;
lightSuccess?: string;
lightInfo?: string;
lightWarning?: string;
lightError?: string;
darkPrimary?: string;
darkAccent?: string;
darkSecondary?: string;
darkSuccess?: string;
darkInfo?: string;
darkWarning?: string;
darkError?: string;
}
export interface BackupOptions { export interface BackupOptions {
recipes?: boolean; recipes?: boolean;
settings?: boolean; settings?: boolean;

View File

@ -6,7 +6,14 @@
*/ */
export type WebhookType = "mealplan"; export type WebhookType = "mealplan";
export type SupportedMigrations = "nextcloud" | "chowdown" | "copymethat" | "paprika" | "mealie_alpha" | "tandoor" | "plantoeat"; export type SupportedMigrations =
| "nextcloud"
| "chowdown"
| "copymethat"
| "paprika"
| "mealie_alpha"
| "tandoor"
| "plantoeat";
export interface CreateGroupPreferences { export interface CreateGroupPreferences {
privateGroup?: boolean; privateGroup?: boolean;
@ -263,39 +270,56 @@ export interface RecipeIngredient {
} }
export interface IngredientUnit { export interface IngredientUnit {
name: string; name: string;
pluralName?: string;
description?: string; description?: string;
extras?: { extras?: {
[k: string]: unknown; [k: string]: unknown;
}; };
fraction?: boolean; fraction?: boolean;
abbreviation?: string; abbreviation?: string;
pluralAbbreviation?: string;
useAbbreviation?: boolean; useAbbreviation?: boolean;
aliases?: IngredientUnitAlias[];
id: string; id: string;
createdAt?: string; createdAt?: string;
updateAt?: string; updateAt?: string;
} }
export interface IngredientUnitAlias {
name: string;
}
export interface CreateIngredientUnit { export interface CreateIngredientUnit {
name: string; name: string;
pluralName?: string;
description?: string; description?: string;
extras?: { extras?: {
[k: string]: unknown; [k: string]: unknown;
}; };
fraction?: boolean; fraction?: boolean;
abbreviation?: string; abbreviation?: string;
pluralAbbreviation?: string;
useAbbreviation?: boolean; useAbbreviation?: boolean;
aliases?: CreateIngredientUnitAlias[];
}
export interface CreateIngredientUnitAlias {
name: string;
} }
export interface IngredientFood { export interface IngredientFood {
name: string; name: string;
pluralName?: string;
description?: string; description?: string;
extras?: { extras?: {
[k: string]: unknown; [k: string]: unknown;
}; };
labelId?: string; labelId?: string;
aliases?: IngredientFoodAlias[];
id: string; id: string;
label?: MultiPurposeLabelSummary; label?: MultiPurposeLabelSummary;
createdAt?: string; createdAt?: string;
updateAt?: string; updateAt?: string;
} }
export interface IngredientFoodAlias {
name: string;
}
export interface MultiPurposeLabelSummary { export interface MultiPurposeLabelSummary {
name: string; name: string;
color?: string; color?: string;
@ -304,11 +328,16 @@ export interface MultiPurposeLabelSummary {
} }
export interface CreateIngredientFood { export interface CreateIngredientFood {
name: string; name: string;
pluralName?: string;
description?: string; description?: string;
extras?: { extras?: {
[k: string]: unknown; [k: string]: unknown;
}; };
labelId?: string; labelId?: string;
aliases?: CreateIngredientFoodAlias[];
}
export interface CreateIngredientFoodAlias {
name: string;
} }
export interface ShoppingListCreate { export interface ShoppingListCreate {
name?: string; name?: string;

View File

@ -465,7 +465,7 @@ export interface ScrapeRecipe {
export interface ScrapeRecipeTest { export interface ScrapeRecipeTest {
url: string; url: string;
} }
export interface SlugResponse { } export interface SlugResponse {}
export interface TagIn { export interface TagIn {
name: string; name: string;
} }

View File

@ -5,6 +5,7 @@
/* Do not modify it by hand - just update the pydantic models and then re-run the script /* Do not modify it by hand - just update the pydantic models and then re-run the script
*/ */
export type OrderByNullPosition = "first" | "last";
export type OrderDirection = "asc" | "desc"; export type OrderDirection = "asc" | "desc";
export interface ErrorResponse { export interface ErrorResponse {
@ -19,6 +20,7 @@ export interface PaginationQuery {
page?: number; page?: number;
perPage?: number; perPage?: number;
orderBy?: string; orderBy?: string;
orderByNullPosition?: OrderByNullPosition;
orderDirection?: OrderDirection & string; orderDirection?: OrderDirection & string;
queryFilter?: string; queryFilter?: string;
paginationSeed?: string; paginationSeed?: string;

View File

@ -243,7 +243,7 @@ export default defineComponent({
}, },
head() { head() {
return { return {
title: this.$t("settings.site-settings") as string, title: this.$t("admin.maintenance.page-title") as string,
}; };
}, },
}); });

View File

@ -30,8 +30,10 @@ export default defineComponent({
actions, actions,
}; };
}, },
head: { head() {
title: "Categories", return {
title: this.$tc("category.categories"),
};
}, },
}); });
</script> </script>

View File

@ -44,6 +44,9 @@ export default defineComponent({
foods: i18n.tc("general.foods"), foods: i18n.tc("general.foods"),
units: i18n.tc("general.units"), units: i18n.tc("general.units"),
labels: i18n.tc("data-pages.labels.labels"), labels: i18n.tc("data-pages.labels.labels"),
categories: i18n.tc("category.categories"),
tags: i18n.tc("tag.tags"),
tools: i18n.tc("tool.tools"),
}; };
const route = useRoute(); const route = useRoute();
@ -53,6 +56,7 @@ export default defineComponent({
text: i18n.t("general.recipes"), text: i18n.t("general.recipes"),
value: "new", value: "new",
to: "/group/data/recipes", to: "/group/data/recipes",
divider: true,
}, },
{ {
text: i18n.t("general.foods"), text: i18n.t("general.foods"),
@ -68,7 +72,23 @@ export default defineComponent({
text: i18n.t("data-pages.labels.labels"), text: i18n.t("data-pages.labels.labels"),
value: "new", value: "new",
to: "/group/data/labels", to: "/group/data/labels",
divider: true,
}, },
{
text: i18n.t("category.categories"),
value: "new",
to: "/group/data/categories",
},
{
text: i18n.t("tag.tags"),
value: "new",
to: "/group/data/tags",
},
{
text: i18n.t("tool.tools"),
value: "new",
to: "/group/data/tools",
}
]); ]);
const buttonText = computed(() => { const buttonText = computed(() => {

View File

@ -0,0 +1,174 @@
<template>
<div>
<!-- Create Dialog -->
<BaseDialog
v-model="state.createDialog"
:title="$t('data-pages.categories.new-category')"
:icon="$globals.icons.categories"
@submit="createCategory"
>
<v-card-text>
<v-form ref="domNewCategoryForm">
<v-text-field
v-model="createTarget.name"
autofocus
:label="$t('general.name')"
:rules="[validators.required]"
></v-text-field>
</v-form>
</v-card-text>
</BaseDialog>
<!-- Edit Dialog -->
<BaseDialog
v-model="state.editDialog"
:icon="$globals.icons.categories"
:title="$t('data-pages.categories.edit-category')"
:submit-text="$tc('general.save')"
@submit="editSaveCategory"
>
<v-card-text v-if="editTarget">
<div class="mt-4">
<v-text-field v-model="editTarget.name" :label="$t('general.name')"> </v-text-field>
</div>
</v-card-text>
</BaseDialog>
<!-- Delete Dialog -->
<BaseDialog
v-model="state.deleteDialog"
:title="$tc('general.confirm')"
:icon="$globals.icons.alertCircle"
color="error"
@confirm="deleteCategory"
>
<v-card-text>
{{ $t("general.confirm-delete-generic") }}
</v-card-text>
</BaseDialog>
<!-- Recipe Data Table -->
<BaseCardSectionTitle :icon="$globals.icons.categories" section :title="$tc('data-pages.categories.category-data')"> </BaseCardSectionTitle>
<CrudTable
:table-config="tableConfig"
:headers.sync="tableHeaders"
:data="categories || []"
:bulk-actions="[]"
@delete-one="deleteEventHandler"
@edit-one="editEventHandler"
>
<template #button-row>
<BaseButton create @click="state.createDialog = true">{{ $t("general.create") }}</BaseButton>
</template>
</CrudTable>
</div>
</template>
<script lang="ts">
import { defineComponent, reactive, ref, useContext } from "@nuxtjs/composition-api";
import { validators } from "~/composables/use-validators";
import { useCategoryStore, useCategoryData } from "~/composables/store";
import { RecipeCategory } from "~/lib/api/types/admin";
export default defineComponent({
setup() {
const { i18n } = useContext();
const tableConfig = {
hideColumns: true,
canExport: true,
};
const tableHeaders = [
{
text: i18n.t("general.id"),
value: "id",
show: false,
},
{
text: i18n.t("general.name"),
value: "name",
show: true,
},
];
const state = reactive({
createDialog: false,
editDialog: false,
deleteDialog: false,
});
const categoryData = useCategoryData();
const categoryStore = useCategoryStore();
// ============================================================
// Create Category
async function createCategory() {
// @ts-ignore - only property really required is the name (RecipeOrganizerPage)
await categoryStore.actions.createOne({ name: categoryData.data.name });
categoryData.reset();
state.createDialog = false;
}
// ============================================================
// Edit Category
const editTarget = ref<RecipeCategory | null>(null);
function editEventHandler(item: RecipeCategory) {
state.editDialog = true;
editTarget.value = item;
}
async function editSaveCategory() {
if (!editTarget.value) {
return;
}
await categoryStore.actions.updateOne(editTarget.value);
state.editDialog = false;
}
// ============================================================
// Delete Category
const deleteTarget = ref<RecipeCategory | null>(null);
function deleteEventHandler(item: RecipeCategory) {
state.deleteDialog = true;
deleteTarget.value = item;
}
async function deleteCategory() {
if (!deleteTarget.value || deleteTarget.value.id === undefined) {
return;
}
await categoryStore.actions.deleteOne(deleteTarget.value.id);
state.deleteDialog = false;
}
return {
state,
tableConfig,
tableHeaders,
categories: categoryStore.items,
validators,
// create
createTarget: categoryData.data,
createCategory,
// edit
editTarget,
editEventHandler,
editSaveCategory,
// delete
deleteTarget,
deleteEventHandler,
deleteCategory
};
},
});
</script>

View File

@ -168,7 +168,7 @@
<template #button-row> <template #button-row>
<BaseButton create @click="createDialog = true" /> <BaseButton create @click="createDialog = true" />
<BaseButton @click="mergeDialog = true"> <BaseButton @click="mergeDialog = true">
<template #icon> {{ $globals.icons.foods }} </template> <template #icon> {{ $globals.icons.externalLink }} </template>
{{ $t('data-pages.combine') }} {{ $t('data-pages.combine') }}
</BaseButton> </BaseButton>
</template> </template>

View File

@ -90,10 +90,7 @@
@edit-one="editEventHandler" @edit-one="editEventHandler"
> >
<template #button-row> <template #button-row>
<BaseButton create @click="state.createDialog = true"> <BaseButton create @click="state.createDialog = true">{{ $t("general.create") }}</BaseButton>
<template #icon> {{ $globals.icons.tags }} </template>
{{ $t("general.create") }}
</BaseButton>
</template> </template>
<template #item.name="{ item }"> <template #item.name="{ item }">
<MultiPurposeLabel v-if="item" :label="item"> <MultiPurposeLabel v-if="item" :label="item">

View File

@ -0,0 +1,175 @@
<template>
<div>
<!-- Create Dialog -->
<BaseDialog
v-model="state.createDialog"
:title="$t('data-pages.tags.new-tag')"
:icon="$globals.icons.tags"
@submit="createTag"
>
<v-card-text>
<v-form ref="domNewTagForm">
<v-text-field
v-model="createTarget.name"
autofocus
:label="$t('general.name')"
:rules="[validators.required]"
></v-text-field>
</v-form>
</v-card-text>
</BaseDialog>
<!-- Edit Dialog -->
<BaseDialog
v-model="state.editDialog"
:icon="$globals.icons.tags"
:title="$t('data-pages.tags.edit-tag')"
:submit-text="$tc('general.save')"
@submit="editSaveTag"
>
<v-card-text v-if="editTarget">
<div class="mt-4">
<v-text-field v-model="editTarget.name" :label="$t('general.name')"> </v-text-field>
</div>
</v-card-text>
</BaseDialog>
<!-- Delete Dialog -->
<BaseDialog
v-model="state.deleteDialog"
:title="$tc('general.confirm')"
:icon="$globals.icons.alertCircle"
color="error"
@confirm="deleteTag"
>
<v-card-text>
{{ $t("general.confirm-delete-generic") }}
</v-card-text>
</BaseDialog>
<!-- Recipe Data Table -->
<BaseCardSectionTitle :icon="$globals.icons.tags" section :title="$tc('data-pages.tags.tag-data')"> </BaseCardSectionTitle>
<CrudTable
:table-config="tableConfig"
:headers.sync="tableHeaders"
:data="tags || []"
:bulk-actions="[]"
@delete-one="deleteEventHandler"
@edit-one="editEventHandler"
>
<template #button-row>
<BaseButton create @click="state.createDialog = true">{{ $t("general.create") }}</BaseButton>
</template>
</CrudTable>
</div>
</template>
<script lang="ts">
import { defineComponent, reactive, ref, useContext } from "@nuxtjs/composition-api";
import { validators } from "~/composables/use-validators";
import { useTagStore, useTagData } from "~/composables/store";
import { RecipeTag } from "~/lib/api/types/admin";
export default defineComponent({
setup() {
const { i18n } = useContext();
const tableConfig = {
hideColumns: true,
canExport: true,
};
const tableHeaders = [
{
text: i18n.t("general.id"),
value: "id",
show: false,
},
{
text: i18n.t("general.name"),
value: "name",
show: true,
},
];
const state = reactive({
createDialog: false,
editDialog: false,
deleteDialog: false,
});
const tagData = useTagData();
const tagStore = useTagStore();
// ============================================================
// Create Tag
async function createTag() {
// @ts-ignore - only property really required is the name (RecipeOrganizerPage)
await tagStore.actions.createOne({ name: tagData.data.name });
tagData.reset();
state.createDialog = false;
}
// ============================================================
// Edit Tag
const editTarget = ref<RecipeTag | null>(null);
function editEventHandler(item: RecipeTag) {
state.editDialog = true;
editTarget.value = item;
}
async function editSaveTag() {
if (!editTarget.value) {
return;
}
await tagStore.actions.updateOne(editTarget.value);
state.editDialog = false;
}
// ============================================================
// Delete Tag
const deleteTarget = ref<RecipeTag | null>(null);
function deleteEventHandler(item: RecipeTag) {
state.deleteDialog = true;
deleteTarget.value = item;
}
async function deleteTag() {
if (!deleteTarget.value || deleteTarget.value.id === undefined) {
return;
}
await tagStore.actions.deleteOne(deleteTarget.value.id);
state.deleteDialog = false;
}
return {
state,
tableConfig,
tableHeaders,
tags: tagStore.items,
validators,
// create
createTarget: tagData.data,
createTag,
// edit
editTarget,
editEventHandler,
editSaveTag,
// delete
deleteTarget,
deleteEventHandler,
deleteTag
};
},
});
</script>

View File

@ -0,0 +1,187 @@
<template>
<div>
<!-- Create Dialog -->
<BaseDialog
v-model="state.createDialog"
:title="$t('data-pages.tools.new-tool')"
:icon="$globals.icons.potSteam"
@submit="createTool"
>
<v-card-text>
<v-form ref="domNewToolForm">
<v-text-field
v-model="createTarget.name"
autofocus
:label="$t('general.name')"
:rules="[validators.required]"
></v-text-field>
<v-checkbox v-model="createTarget.onHand" :label="$t('tool.on-hand')">
</v-checkbox>
</v-form>
</v-card-text>
</BaseDialog>
<!-- Edit Dialog -->
<BaseDialog
v-model="state.editDialog"
:icon="$globals.icons.potSteam"
:title="$t('data-pages.tools.edit-tool')"
:submit-text="$tc('general.save')"
@submit="editSaveTool"
>
<v-card-text v-if="editTarget">
<div class="mt-4">
<v-text-field v-model="editTarget.name" :label="$t('general.name')"> </v-text-field>
<v-checkbox v-model="editTarget.onHand" :label="$t('tool.on-hand')"> </v-checkbox>
</div>
</v-card-text>
</BaseDialog>
<!-- Delete Dialog -->
<BaseDialog
v-model="state.deleteDialog"
:title="$tc('general.confirm')"
:icon="$globals.icons.alertCircle"
color="error"
@confirm="deleteTool"
>
<v-card-text>
{{ $t("general.confirm-delete-generic") }}
</v-card-text>
</BaseDialog>
<!-- Tool Data Table -->
<BaseCardSectionTitle :icon="$globals.icons.potSteam" section :title="$tc('data-pages.tools.tool-data')"> </BaseCardSectionTitle>
<CrudTable
:table-config="tableConfig"
:headers.sync="tableHeaders"
:data="tools || []"
:bulk-actions="[]"
@delete-one="deleteEventHandler"
@edit-one="editEventHandler"
>
<template #button-row>
<BaseButton create @click="state.createDialog = true">{{ $t("general.create") }}</BaseButton>
</template>
<template #item.onHand="{ item }">
<v-icon :color="item.onHand ? 'success' : undefined">
{{ item.onHand ? $globals.icons.check : $globals.icons.close }}
</v-icon>
</template>
</CrudTable>
</div>
</template>
<script lang="ts">
import { defineComponent, reactive, ref, useContext } from "@nuxtjs/composition-api";
import { validators } from "~/composables/use-validators";
import { useToolStore, useToolData } from "~/composables/store";
import { RecipeTool } from "~/lib/api/types/admin";
export default defineComponent({
setup() {
const { i18n } = useContext();
const tableConfig = {
hideColumns: true,
canExport: true,
};
const tableHeaders = [
{
text: i18n.t("general.id"),
value: "id",
show: false,
},
{
text: i18n.t("general.name"),
value: "name",
show: true,
},
{
text: i18n.t("tool.on-hand"),
value: "onHand",
show: true,
},
];
const state = reactive({
createDialog: false,
editDialog: false,
deleteDialog: false,
});
const toolData = useToolData();
const toolStore = useToolStore();
// ============================================================
// Create Tag
async function createTool() {
// @ts-ignore - only property really required is the name and onHand (RecipeOrganizerPage)
await toolStore.actions.createOne({ name: toolData.data.name, onHand: toolData.data.onHand });
toolData.reset();
state.createDialog = false;
}
// ============================================================
// Edit Tag
const editTarget = ref<RecipeTool | null>(null);
function editEventHandler(item: RecipeTool) {
state.editDialog = true;
editTarget.value = item;
}
async function editSaveTool() {
if (!editTarget.value) {
return;
}
await toolStore.actions.updateOne(editTarget.value);
state.editDialog = false;
}
// ============================================================
// Delete Tag
const deleteTarget = ref<RecipeTool | null>(null);
function deleteEventHandler(item: RecipeTool) {
state.deleteDialog = true;
deleteTarget.value = item;
}
async function deleteTool() {
if (!deleteTarget.value || deleteTarget.value.id === undefined) {
return;
}
await toolStore.actions.deleteOne(deleteTarget.value.id);
state.deleteDialog = false;
}
return {
state,
tableConfig,
tableHeaders,
tools: toolStore.items,
validators,
// create
createTarget: toolData.data,
createTool,
// edit
editTarget,
editEventHandler,
editSaveTool,
// delete
deleteTarget,
deleteEventHandler,
deleteTool
};
},
});
</script>

View File

@ -180,7 +180,7 @@
<BaseButton create @click="createDialog = true" /> <BaseButton create @click="createDialog = true" />
<BaseButton @click="mergeDialog = true"> <BaseButton @click="mergeDialog = true">
<template #icon> {{ $globals.icons.units }} </template> <template #icon> {{ $globals.icons.externalLink }} </template>
{{ $t('data-pages.combine') }} {{ $t('data-pages.combine') }}
</BaseButton> </BaseButton>
</template> </template>

View File

@ -1,51 +1,65 @@
<template> <template>
<v-row> <v-container class="mx-0 my-3 pa">
<v-col <v-row>
v-for="(day, index) in plan" <v-col
:key="index" v-for="(day, index) in plan"
cols="12" :key="index"
sm="12" cols="12"
md="4" sm="12"
lg="4" md="4"
xl="2" lg="4"
class="col-borders my-1 d-flex flex-column" xl="2"
> class="col-borders my-1 d-flex flex-column"
<v-card class="mb-2 border-left-primary rounded-sm pa-2"> >
<p class="pl-2 mb-1"> <v-card class="mb-2 border-left-primary rounded-sm px-2">
{{ $d(day.date, "short") }} <v-container class="px-0">
</p> <v-row no-gutters style="width: 100%;">
</v-card> <v-col cols="10">
<div v-for="section in day.sections" :key="section.title"> <p class="pl-2 my-1">
<div class="py-2 d-flex flex-column"> {{ $d(day.date, "short") }}
<div class="primary" style="width: 50px; height: 2.5px"></div> </p>
<p class="text-overline my-0"> </v-col>
{{ section.title }} <v-col class="d-flex justify-top" cols="2">
</p> <GroupMealPlanDayContextMenu v-if="day.recipes.length" :recipes="day.recipes" />
</div> </v-col>
</v-row>
</v-container>
</v-card>
<div v-for="section in day.sections" :key="section.title">
<div class="py-2 d-flex flex-column">
<div class="primary" style="width: 50px; height: 2.5px"></div>
<p class="text-overline my-0">
{{ section.title }}
</p>
</div>
<RecipeCardMobile <RecipeCardMobile
v-for="mealplan in section.meals" v-for="mealplan in section.meals"
:key="mealplan.id" :key="mealplan.id"
:recipe-id="mealplan.recipe ? mealplan.recipe.id : ''" :recipe-id="mealplan.recipe ? mealplan.recipe.id : ''"
class="mb-2" class="mb-2"
:route="mealplan.recipe ? true : false" :route="mealplan.recipe ? true : false"
:slug="mealplan.recipe ? mealplan.recipe.slug : mealplan.title" :slug="mealplan.recipe ? mealplan.recipe.slug : mealplan.title"
:description="mealplan.recipe ? mealplan.recipe.description : mealplan.text" :description="mealplan.recipe ? mealplan.recipe.description : mealplan.text"
:name="mealplan.recipe ? mealplan.recipe.name : mealplan.title" :name="mealplan.recipe ? mealplan.recipe.name : mealplan.title"
/> />
</div> </div>
</v-col> </v-col>
</v-row> </v-row>
</v-container>
</template> </template>
<script lang="ts"> <script lang="ts">
import { computed, defineComponent, useContext } from "@nuxtjs/composition-api"; import { computed, defineComponent, useContext } from "@nuxtjs/composition-api";
import { MealsByDate } from "./types"; import { MealsByDate } from "./types";
import { ReadPlanEntry } from "~/lib/api/types/meal-plan"; import { ReadPlanEntry } from "~/lib/api/types/meal-plan";
import GroupMealPlanDayContextMenu from "~/components/Domain/Group/GroupMealPlanDayContextMenu.vue";
import RecipeCardMobile from "~/components/Domain/Recipe/RecipeCardMobile.vue"; import RecipeCardMobile from "~/components/Domain/Recipe/RecipeCardMobile.vue";
import { RecipeSummary } from "~/lib/api/types/recipe";
export default defineComponent({ export default defineComponent({
components: { components: {
GroupMealPlanDayContextMenu,
RecipeCardMobile, RecipeCardMobile,
}, },
props: { props: {
@ -63,6 +77,7 @@ export default defineComponent({
type Days = { type Days = {
date: Date; date: Date;
sections: DaySection[]; sections: DaySection[];
recipes: RecipeSummary[];
}; };
const { i18n } = useContext(); const { i18n } = useContext();
@ -77,6 +92,7 @@ export default defineComponent({
{ title: i18n.tc("meal-plan.dinner"), meals: [] }, { title: i18n.tc("meal-plan.dinner"), meals: [] },
{ title: i18n.tc("meal-plan.side"), meals: [] }, { title: i18n.tc("meal-plan.side"), meals: [] },
], ],
recipes: [],
}; };
for (const meal of day.meals) { for (const meal of day.meals) {
@ -89,6 +105,10 @@ export default defineComponent({
} else if (meal.entryType === "side") { } else if (meal.entryType === "side") {
out.sections[3].meals.push(meal); out.sections[3].meals.push(meal);
} }
if (meal.recipe) {
out.recipes.push(meal.recipe);
}
} }
// Drop empty sections // Drop empty sections

View File

@ -7,6 +7,18 @@
'bg-off-white': !$vuetify.theme.dark && !isDark, 'bg-off-white': !$vuetify.theme.dark && !isDark,
}" }"
> >
<v-alert v-if="isFirstLogin" class="my-4" type="info" icon="mdi-information">
<div>
<p class="mb-3">
{{ $tc('user.it-looks-like-this-is-your-first-time-logging-in')}}
</p>
<p class="mb-1"><strong>{{ $tc('user.username') }}:</strong> changeme@example.com</p>
<p class="mb-3"><strong>{{ $tc('user.password') }}:</strong> MyPassword</p>
<p>
{{ $tc('user.dont-want-to-see-this-anymore-be-sure-to-change-your-email') }}
</p>
</div>
</v-alert>
<v-card tag="section" class="d-flex flex-column align-center" width="600px"> <v-card tag="section" class="d-flex flex-column align-center" width="600px">
<v-toolbar width="100%" color="primary" class="d-flex justify-center mb-4" dark> <v-toolbar width="100%" color="primary" class="d-flex justify-center mb-4" dark>
<v-toolbar-title class="headline text-h4"> Mealie </v-toolbar-title> <v-toolbar-title class="headline text-h4"> Mealie </v-toolbar-title>
@ -101,12 +113,14 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, ref, useContext, computed, reactive, useRouter } from "@nuxtjs/composition-api"; import { defineComponent, ref, useContext, computed, reactive, useRouter, useAsync } from "@nuxtjs/composition-api";
import { useDark, whenever } from "@vueuse/core"; import { useDark, whenever } from "@vueuse/core";
import { useLoggedInState } from "~/composables/use-logged-in-state"; import { useLoggedInState } from "~/composables/use-logged-in-state";
import { useAppInfo } from "~/composables/api"; import { useAppInfo } from "~/composables/api";
import { usePasswordField } from "~/composables/use-passwords"; import { usePasswordField } from "~/composables/use-passwords";
import { alert } from "~/composables/use-toast"; import { alert } from "~/composables/use-toast";
import { useAsyncKey } from "~/composables/use-utils";
import { AppStartupInfo } from "~/lib/api/types/admin";
export default defineComponent({ export default defineComponent({
layout: "blank", layout: "blank",
@ -115,7 +129,7 @@ export default defineComponent({
const isDark = useDark(); const isDark = useDark();
const router = useRouter(); const router = useRouter();
const { $auth, i18n } = useContext(); const { $auth, i18n, $axios } = useContext();
const { loggedIn } = useLoggedInState(); const { loggedIn } = useLoggedInState();
const groupSlug = computed(() => $auth.user?.groupSlug); const groupSlug = computed(() => $auth.user?.groupSlug);
@ -133,6 +147,13 @@ export default defineComponent({
remember: false, remember: false,
}); });
const isFirstLogin = ref(false)
useAsync(async () => {
const data = await $axios.get<AppStartupInfo>("/api/app/about/startup-info");
isFirstLogin.value = data.data.isFirstLogin;
}, useAsyncKey());
const loggingIn = ref(false); const loggingIn = ref(false);
const appInfo = useAppInfo(); const appInfo = useAppInfo();
@ -182,6 +203,7 @@ export default defineComponent({
passwordIcon, passwordIcon,
inputType, inputType,
togglePasswordShow, togglePasswordShow,
isFirstLogin
}; };
}, },

View File

@ -104,7 +104,6 @@ async def system_startup():
indent=4, indent=4,
exclude={ exclude={
"SECRET", "SECRET",
"DEFAULT_PASSWORD",
"SFTP_PASSWORD", "SFTP_PASSWORD",
"SFTP_USERNAME", "SFTP_USERNAME",
"DB_URL", # replace by DB_URL_PUBLIC for logs "DB_URL", # replace by DB_URL_PUBLIC for logs

View File

@ -85,8 +85,17 @@ class AppSettings(BaseSettings):
return self.DB_PROVIDER.db_url_public if self.DB_PROVIDER else None return self.DB_PROVIDER.db_url_public if self.DB_PROVIDER else None
DEFAULT_GROUP: str = "Home" DEFAULT_GROUP: str = "Home"
DEFAULT_EMAIL: str = "changeme@example.com"
DEFAULT_PASSWORD: str = "MyPassword" _DEFAULT_EMAIL: str = "changeme@example.com"
"""
This is the default email used for the first user created in the database. This is only used if no users
exist in the database. it should no longer be set by end users.
"""
_DEFAULT_PASSWORD: str = "MyPassword"
"""
This is the default password used for the first user created in the database. This is only used if no users
exist in the database. it should no longer be set by end users.
"""
# =============================================== # ===============================================
# Email Configuration # Email Configuration

View File

@ -1,35 +1,35 @@
{ {
"generic": { "generic": {
"server-error": "An unexpected error occurred" "server-error": "Догодила се неочекивана грешка"
}, },
"recipe": { "recipe": {
"unique-name-error": "Recipe names must be unique" "unique-name-error": "Назив рецепта мора бити јединствен"
}, },
"mealplan": { "mealplan": {
"no-recipes-match-your-rules": "No recipes match your rules" "no-recipes-match-your-rules": "Нема рецепата који одговарају вашим правилима"
}, },
"user": { "user": {
"user-updated": "User updated", "user-updated": "Корисник је ажуриран",
"password-updated": "Password updated", "password-updated": "Лозинка је ажурирана",
"invalid-current-password": "Invalid current password", "invalid-current-password": "Тренутна лозинка је неисправна",
"ldap-update-password-unavailable": "Unable to update password, user is controlled by LDAP" "ldap-update-password-unavailable": "Лозинку није могуће ажурирати, корисник је контролисан од стране LDAP-а"
}, },
"group": { "group": {
"report-deleted": "Report deleted." "report-deleted": "Рецепт је избрисан."
}, },
"exceptions": { "exceptions": {
"permission_denied": "You do not have permission to perform this action", "permission_denied": "Немате дозволу за извршење ове радње",
"no-entry-found": "The requested resource was not found", "no-entry-found": "Захтевани ресурс није пронађен",
"integrity-error": "Database integrity error", "integrity-error": "Грешка у интегритету базе података",
"username-conflict-error": "This username is already taken", "username-conflict-error": "Корисничко име је већ заузето",
"email-conflict-error": "This email is already in use" "email-conflict-error": "Овај е-мејл је већ у употреби"
}, },
"notifications": { "notifications": {
"generic-created": "{name} was created", "generic-created": "{name} је крериран",
"generic-updated": "{name} was updated", "generic-updated": "{name} је ажуриран",
"generic-created-with-url": "{name} has been created, {url}", "generic-created-with-url": "{name} је направљено, {url}",
"generic-updated-with-url": "{name} has been updated, {url}", "generic-updated-with-url": "{name} је ажурирано, {url}",
"generic-duplicated": "{name} has been duplicated", "generic-duplicated": "{name} је дуплиран",
"generic-deleted": "{name} has been deleted" "generic-deleted": "{name} је обрисан"
} }
} }

View File

@ -13,7 +13,7 @@ def dev_users() -> list[dict]:
"full_name": "Jason", "full_name": "Jason",
"username": "jason", "username": "jason",
"email": "jason@example.com", "email": "jason@example.com",
"password": hash_password(settings.DEFAULT_PASSWORD), "password": hash_password(settings._DEFAULT_PASSWORD),
"group": settings.DEFAULT_GROUP, "group": settings.DEFAULT_GROUP,
"admin": False, "admin": False,
}, },
@ -21,7 +21,7 @@ def dev_users() -> list[dict]:
"full_name": "Bob", "full_name": "Bob",
"username": "bob", "username": "bob",
"email": "bob@example.com", "email": "bob@example.com",
"password": hash_password(settings.DEFAULT_PASSWORD), "password": hash_password(settings._DEFAULT_PASSWORD),
"group": settings.DEFAULT_GROUP, "group": settings.DEFAULT_GROUP,
"admin": False, "admin": False,
}, },
@ -29,7 +29,7 @@ def dev_users() -> list[dict]:
"full_name": "Sarah", "full_name": "Sarah",
"username": "sarah", "username": "sarah",
"email": "sarah@example.com", "email": "sarah@example.com",
"password": hash_password(settings.DEFAULT_PASSWORD), "password": hash_password(settings._DEFAULT_PASSWORD),
"group": settings.DEFAULT_GROUP, "group": settings.DEFAULT_GROUP,
"admin": False, "admin": False,
}, },
@ -37,7 +37,7 @@ def dev_users() -> list[dict]:
"full_name": "Sammy", "full_name": "Sammy",
"username": "sammy", "username": "sammy",
"email": "sammy@example.com", "email": "sammy@example.com",
"password": hash_password(settings.DEFAULT_PASSWORD), "password": hash_password(settings._DEFAULT_PASSWORD),
"group": settings.DEFAULT_GROUP, "group": settings.DEFAULT_GROUP,
"admin": False, "admin": False,
}, },
@ -48,8 +48,8 @@ def default_user_init(db: AllRepositories):
default_user = { default_user = {
"full_name": "Change Me", "full_name": "Change Me",
"username": "admin", "username": "admin",
"email": settings.DEFAULT_EMAIL, "email": settings._DEFAULT_EMAIL,
"password": hash_password(settings.DEFAULT_PASSWORD), "password": hash_password(settings._DEFAULT_PASSWORD),
"group": settings.DEFAULT_GROUP, "group": settings.DEFAULT_GROUP,
"admin": True, "admin": True,
} }

View File

@ -1,65 +1,65 @@
[ [
{ {
"name": "Produce" "name": "Домаћи производи"
}, },
{ {
"name": "Grains" "name": "Житарице"
}, },
{ {
"name": "Fruits" "name": "Воће"
}, },
{ {
"name": "Vegetables" "name": "Поврће"
}, },
{ {
"name": "Meat" "name": "Месо"
}, },
{ {
"name": "Seafood" "name": "Морски плодови"
}, },
{ {
"name": "Beverages" "name": "Пића"
}, },
{ {
"name": "Baked Goods" "name": "Пецива"
}, },
{ {
"name": "Canned Goods" "name": "Конзервирана храна"
}, },
{ {
"name": "Condiments" "name": "Зачини"
}, },
{ {
"name": "Confectionary" "name": "Кондиторски производи"
}, },
{ {
"name": "Dairy Products" "name": "Млечни производи"
}, },
{ {
"name": "Frozen Foods" "name": "Смрзнута храна"
}, },
{ {
"name": "Health Foods" "name": "Здрава храна"
}, },
{ {
"name": "Household" "name": "Домаћинство"
}, },
{ {
"name": "Meat Products" "name": "Месни производи"
}, },
{ {
"name": "Snacks" "name": "Грицкалице"
}, },
{ {
"name": "Spices" "name": "Зачини"
}, },
{ {
"name": "Sweets" "name": "Слаткиши"
}, },
{ {
"name": "Alcohol" "name": "Алкохол"
}, },
{ {
"name": "Other" "name": "Остало"
} }
] ]

View File

@ -1,86 +1,86 @@
{ {
"teaspoon": { "teaspoon": {
"name": "teaspoon", "name": "кашичица",
"description": "", "description": "",
"abbreviation": "tsp" "abbreviation": "кашичица"
}, },
"tablespoon": { "tablespoon": {
"name": "tablespoon", "name": "кашика",
"description": "", "description": "",
"abbreviation": "tbsp" "abbreviation": "кашика"
}, },
"cup": { "cup": {
"name": "cup", "name": "шоља",
"description": "", "description": "",
"abbreviation": "cup" "abbreviation": "шоља"
}, },
"fluid-ounce": { "fluid-ounce": {
"name": "fluid ounce", "name": "течна унца",
"description": "", "description": "",
"abbreviation": "fl oz" "abbreviation": "течна унца"
}, },
"pint": { "pint": {
"name": "pint", "name": "пинта",
"description": "", "description": "",
"abbreviation": "pt" "abbreviation": "pt"
}, },
"quart": { "quart": {
"name": "quart", "name": "четврт галона",
"description": "", "description": "",
"abbreviation": "qt" "abbreviation": "qt"
}, },
"gallon": { "gallon": {
"name": "gallon", "name": "галон",
"description": "", "description": "",
"abbreviation": "gal" "abbreviation": "гал"
}, },
"milliliter": { "milliliter": {
"name": "milliliter", "name": "милиметар",
"description": "", "description": "",
"abbreviation": "ml" "abbreviation": "мл"
}, },
"liter": { "liter": {
"name": "liter", "name": "литар",
"description": "", "description": "",
"abbreviation": "l" "abbreviation": "л"
}, },
"pound": { "pound": {
"name": "pound", "name": "фунта",
"description": "", "description": "",
"abbreviation": "lb" "abbreviation": "lb"
}, },
"ounce": { "ounce": {
"name": "ounce", "name": "унца",
"description": "", "description": "",
"abbreviation": "oz" "abbreviation": "унца (oz)"
}, },
"gram": { "gram": {
"name": "gram", "name": "грам",
"description": "", "description": "",
"abbreviation": "g" "abbreviation": "г"
}, },
"kilogram": { "kilogram": {
"name": "kilogram", "name": "килограм",
"description": "", "description": "",
"abbreviation": "kg" "abbreviation": "кг"
}, },
"milligram": { "milligram": {
"name": "milligram", "name": "милиграм",
"description": "", "description": "",
"abbreviation": "mg" "abbreviation": "мг"
}, },
"splash": { "splash": {
"name": "splash", "name": "мала количина (splash)",
"description": "", "description": "",
"abbreviation": "" "abbreviation": ""
}, },
"dash": { "dash": {
"name": "dash", "name": "осмина кашичице",
"description": "", "description": "",
"abbreviation": "" "abbreviation": ""
}, },
"serving": { "serving": {
"name": "serving", "name": "порција",
"description": "", "description": "",
"abbreviation": "" "abbreviation": ""
}, },
@ -90,12 +90,12 @@
"abbreviation": "" "abbreviation": ""
}, },
"clove": { "clove": {
"name": "clove", "name": "клинчић",
"description": "", "description": "",
"abbreviation": "" "abbreviation": ""
}, },
"can": { "can": {
"name": "can", "name": "конзерва",
"description": "", "description": "",
"abbreviation": "" "abbreviation": ""
} }

View File

@ -1,8 +1,11 @@
from fastapi import APIRouter, Response from fastapi import APIRouter, Depends, Response
from sqlalchemy.orm.session import Session
from mealie.core.config import get_app_settings from mealie.core.config import get_app_settings
from mealie.core.settings.static import APP_VERSION from mealie.core.settings.static import APP_VERSION
from mealie.schema.admin.about import AppInfo, AppTheme from mealie.db.db_setup import generate_session
from mealie.db.models.users.users import User
from mealie.schema.admin.about import AppInfo, AppStartupInfo, AppTheme
router = APIRouter(prefix="/about") router = APIRouter(prefix="/about")
@ -20,6 +23,21 @@ def get_app_info():
) )
@router.get("/startup-info", response_model=AppStartupInfo)
def get_startup_info(session: Session = Depends(generate_session)):
"""returns helpful startup information"""
settings = get_app_settings()
is_first_login = False
with session as db:
if db.query(User).filter_by(email=settings._DEFAULT_EMAIL).count() > 0:
is_first_login = True
return AppStartupInfo(
is_first_login=is_first_login,
)
@router.get("/theme", response_model=AppTheme) @router.get("/theme", response_model=AppTheme)
def get_app_theme(resp: Response): def get_app_theme(resp: Response):
"""Get's the current theme settings""" """Get's the current theme settings"""

View File

@ -1,5 +1,5 @@
# This file is auto-generated by gen_schema_exports.py # This file is auto-generated by gen_schema_exports.py
from .about import AdminAboutInfo, AppInfo, AppStatistics, CheckAppConfig, DockerVolumeText from .about import AdminAboutInfo, AppInfo, AppStartupInfo, AppStatistics, AppTheme, CheckAppConfig, DockerVolumeText
from .backup import AllBackups, BackupFile, BackupOptions, CreateBackup, ImportJob from .backup import AllBackups, BackupFile, BackupOptions, CreateBackup, ImportJob
from .email import EmailReady, EmailSuccess, EmailTest from .email import EmailReady, EmailSuccess, EmailTest
from .maintenance import MaintenanceLogs, MaintenanceStorageDetails, MaintenanceSummary from .maintenance import MaintenanceLogs, MaintenanceStorageDetails, MaintenanceSummary
@ -27,7 +27,9 @@ __all__ = [
"MaintenanceSummary", "MaintenanceSummary",
"AdminAboutInfo", "AdminAboutInfo",
"AppInfo", "AppInfo",
"AppStartupInfo",
"AppStatistics", "AppStatistics",
"AppTheme",
"CheckAppConfig", "CheckAppConfig",
"DockerVolumeText", "DockerVolumeText",
"EmailReady", "EmailReady",

View File

@ -34,6 +34,15 @@ class AppTheme(MealieModel):
dark_error: str = "#EF5350" dark_error: str = "#EF5350"
class AppStartupInfo(MealieModel):
is_first_login: bool
"""
The applications best guess that a user hasn't logged in. Currently, it really
on indicates that the 'changeme@example.com' user is still in the database. Once
it is removed, this will always return False.
"""
class AdminAboutInfo(AppInfo): class AdminAboutInfo(AppInfo):
versionLatest: str versionLatest: str
api_port: int api_port: int

View File

@ -92,6 +92,25 @@ __all__ = [
"RecipeToolOut", "RecipeToolOut",
"RecipeToolResponse", "RecipeToolResponse",
"RecipeToolSave", "RecipeToolSave",
"RecipeTimelineEventCreate",
"RecipeTimelineEventIn",
"RecipeTimelineEventOut",
"RecipeTimelineEventPagination",
"RecipeTimelineEventUpdate",
"TimelineEventImage",
"TimelineEventType",
"RecipeAsset",
"RecipeSettings",
"RecipeShareToken",
"RecipeShareTokenCreate",
"RecipeShareTokenSave",
"RecipeShareTokenSummary",
"RecipeDuplicate",
"RecipeSlug",
"RecipeZipTokenResponse",
"SlugResponse",
"UpdateImageResponse",
"RecipeNote",
"CategoryBase", "CategoryBase",
"CategoryIn", "CategoryIn",
"CategoryOut", "CategoryOut",
@ -102,6 +121,12 @@ __all__ = [
"TagIn", "TagIn",
"TagOut", "TagOut",
"TagSave", "TagSave",
"RecipeCommentCreate",
"RecipeCommentOut",
"RecipeCommentPagination",
"RecipeCommentSave",
"RecipeCommentUpdate",
"UserBase",
"AssignCategories", "AssignCategories",
"AssignSettings", "AssignSettings",
"AssignTags", "AssignTags",
@ -109,34 +134,10 @@ __all__ = [
"ExportBase", "ExportBase",
"ExportRecipes", "ExportRecipes",
"ExportTypes", "ExportTypes",
"RecipeShareToken",
"RecipeShareTokenCreate",
"RecipeShareTokenSave",
"RecipeShareTokenSummary",
"ScrapeRecipe",
"ScrapeRecipeTest",
"RecipeCommentCreate",
"RecipeCommentOut",
"RecipeCommentPagination",
"RecipeCommentSave",
"RecipeCommentUpdate",
"UserBase",
"RecipeImageTypes",
"CreateRecipe",
"CreateRecipeBulk",
"CreateRecipeByUrlBulk",
"Recipe",
"RecipeCategory",
"RecipeCategoryPagination",
"RecipeLastMade",
"RecipePagination",
"RecipeSummary",
"RecipeTag",
"RecipeTagPagination",
"RecipeTool",
"RecipeToolPagination",
"IngredientReferences", "IngredientReferences",
"RecipeStep", "RecipeStep",
"RecipeImageTypes",
"Nutrition",
"CreateIngredientFood", "CreateIngredientFood",
"CreateIngredientFoodAlias", "CreateIngredientFoodAlias",
"CreateIngredientUnit", "CreateIngredientUnit",
@ -159,20 +160,19 @@ __all__ = [
"SaveIngredientFood", "SaveIngredientFood",
"SaveIngredientUnit", "SaveIngredientUnit",
"UnitFoodBase", "UnitFoodBase",
"RecipeAsset", "CreateRecipe",
"RecipeTimelineEventCreate", "CreateRecipeBulk",
"RecipeTimelineEventIn", "CreateRecipeByUrlBulk",
"RecipeTimelineEventOut", "Recipe",
"RecipeTimelineEventPagination", "RecipeCategory",
"RecipeTimelineEventUpdate", "RecipeCategoryPagination",
"TimelineEventImage", "RecipeLastMade",
"TimelineEventType", "RecipePagination",
"RecipeDuplicate", "RecipeSummary",
"RecipeSlug", "RecipeTag",
"RecipeZipTokenResponse", "RecipeTagPagination",
"SlugResponse", "RecipeTool",
"UpdateImageResponse", "RecipeToolPagination",
"Nutrition", "ScrapeRecipe",
"RecipeSettings", "ScrapeRecipeTest",
"RecipeNote",
] ]

View File

@ -1,5 +1,5 @@
# This file is auto-generated by gen_schema_exports.py # This file is auto-generated by gen_schema_exports.py
from .pagination import OrderDirection, PaginationBase, PaginationQuery, RecipeSearchQuery from .pagination import OrderByNullPosition, OrderDirection, PaginationBase, PaginationQuery, RecipeSearchQuery
from .query_filter import LogicalOperator, QueryFilter, QueryFilterComponent, RelationalKeyword, RelationalOperator from .query_filter import LogicalOperator, QueryFilter, QueryFilterComponent, RelationalKeyword, RelationalOperator
from .query_search import SearchFilter from .query_search import SearchFilter
from .responses import ErrorResponse, FileTokenResponse, SuccessResponse from .responses import ErrorResponse, FileTokenResponse, SuccessResponse
@ -15,6 +15,7 @@ __all__ = [
"QueryFilterComponent", "QueryFilterComponent",
"RelationalKeyword", "RelationalKeyword",
"RelationalOperator", "RelationalOperator",
"OrderByNullPosition",
"OrderDirection", "OrderDirection",
"PaginationBase", "PaginationBase",
"PaginationQuery", "PaginationQuery",

View File

@ -116,7 +116,7 @@ class UserOut(UserBase):
@property @property
def is_default_user(self) -> bool: def is_default_user(self) -> bool:
return self.email == settings.DEFAULT_EMAIL.strip().lower() return self.email == settings._DEFAULT_EMAIL.strip().lower()
@classmethod @classmethod
def loader_options(cls) -> list[LoaderOption]: def loader_options(cls) -> list[LoaderOption]:

View File

@ -10,7 +10,7 @@ from tests.utils import api_routes
def admin_token(api_client: TestClient): def admin_token(api_client: TestClient):
settings = get_app_settings() settings = get_app_settings()
form_data = {"username": settings.DEFAULT_EMAIL, "password": settings.DEFAULT_PASSWORD} form_data = {"username": settings._DEFAULT_EMAIL, "password": settings._DEFAULT_PASSWORD}
return utils.login(form_data, api_client) return utils.login(form_data, api_client)
@ -18,7 +18,7 @@ def admin_token(api_client: TestClient):
def admin_user(api_client: TestClient): def admin_user(api_client: TestClient):
settings = get_app_settings() settings = get_app_settings()
form_data = {"username": settings.DEFAULT_EMAIL, "password": settings.DEFAULT_PASSWORD} form_data = {"username": settings._DEFAULT_EMAIL, "password": settings._DEFAULT_PASSWORD}
token = utils.login(form_data, api_client) token = utils.login(form_data, api_client)
@ -33,7 +33,7 @@ def admin_user(api_client: TestClient):
yield utils.TestUser( yield utils.TestUser(
_group_id=user_data.get("groupId"), _group_id=user_data.get("groupId"),
user_id=user_data.get("id"), user_id=user_data.get("id"),
password=settings.DEFAULT_PASSWORD, password=settings._DEFAULT_PASSWORD,
username=user_data.get("username"), username=user_data.get("username"),
email=user_data.get("email"), email=user_data.get("email"),
token=token, token=token,

View File

@ -36,7 +36,7 @@ def test_init_superuser(api_client: TestClient, admin_user: TestUser):
assert admin_data["groupId"] == admin_user.group_id assert admin_data["groupId"] == admin_user.group_id
assert admin_data["fullName"] == "Change Me" assert admin_data["fullName"] == "Change Me"
assert admin_data["email"] == settings.DEFAULT_EMAIL assert admin_data["email"] == settings._DEFAULT_EMAIL
def test_create_user(api_client: TestClient, admin_token): def test_create_user(api_client: TestClient, admin_token):
@ -95,7 +95,7 @@ def test_update_other_user_as_not_admin(api_client: TestClient, unique_user: Tes
update_data = { update_data = {
"id": unique_user.user_id, "id": unique_user.user_id,
"fullName": "Updated Name", "fullName": "Updated Name",
"email": settings.DEFAULT_EMAIL, "email": settings._DEFAULT_EMAIL,
"group": "Home", "group": "Home",
"admin": True, "admin": True,
} }

View File

@ -14,7 +14,7 @@ from tests.utils.fixture_schemas import TestUser
def test_failed_login(api_client: TestClient): def test_failed_login(api_client: TestClient):
settings = get_app_settings() settings = get_app_settings()
form_data = {"username": settings.DEFAULT_EMAIL, "password": "WRONG_PASSWORD"} form_data = {"username": settings._DEFAULT_EMAIL, "password": "WRONG_PASSWORD"}
response = api_client.post(api_routes.auth_token, data=form_data) response = api_client.post(api_routes.auth_token, data=form_data)
assert response.status_code == 401 assert response.status_code == 401
@ -23,7 +23,7 @@ def test_failed_login(api_client: TestClient):
def test_superuser_login(api_client: TestClient, admin_token): def test_superuser_login(api_client: TestClient, admin_token):
settings = get_app_settings() settings = get_app_settings()
form_data = {"username": settings.DEFAULT_EMAIL, "password": settings.DEFAULT_PASSWORD} form_data = {"username": settings._DEFAULT_EMAIL, "password": settings._DEFAULT_PASSWORD}
response = api_client.post(api_routes.auth_token, data=form_data) response = api_client.post(api_routes.auth_token, data=form_data)
assert response.status_code == 200 assert response.status_code == 200

View File

@ -9,7 +9,6 @@ from mealie.core.settings.settings import AppSettings
def test_non_default_settings(monkeypatch): def test_non_default_settings(monkeypatch):
monkeypatch.setenv("DEFAULT_GROUP", "Test Group") monkeypatch.setenv("DEFAULT_GROUP", "Test Group")
monkeypatch.setenv("DEFAULT_PASSWORD", "Test Password")
monkeypatch.setenv("API_PORT", "8000") monkeypatch.setenv("API_PORT", "8000")
monkeypatch.setenv("API_DOCS", "False") monkeypatch.setenv("API_DOCS", "False")
@ -17,7 +16,6 @@ def test_non_default_settings(monkeypatch):
app_settings = get_app_settings() app_settings = get_app_settings()
assert app_settings.DEFAULT_GROUP == "Test Group" assert app_settings.DEFAULT_GROUP == "Test Group"
assert app_settings.DEFAULT_PASSWORD == "Test Password"
assert app_settings.API_PORT == 8000 assert app_settings.API_PORT == 8000
assert app_settings.API_DOCS is False assert app_settings.API_DOCS is False

View File

@ -45,6 +45,10 @@ admin_users_unlock = "/api/admin/users/unlock"
"""`/api/admin/users/unlock`""" """`/api/admin/users/unlock`"""
app_about = "/api/app/about" app_about = "/api/app/about"
"""`/api/app/about`""" """`/api/app/about`"""
app_about_startup_info = "/api/app/about/startup-info"
"""`/api/app/about/startup-info`"""
app_about_theme = "/api/app/about/theme"
"""`/api/app/about/theme`"""
auth_refresh = "/api/auth/refresh" auth_refresh = "/api/auth/refresh"
"""`/api/auth/refresh`""" """`/api/auth/refresh`"""
auth_token = "/api/auth/token" auth_token = "/api/auth/token"
@ -183,6 +187,8 @@ users_reset_password = "/api/users/reset-password"
"""`/api/users/reset-password`""" """`/api/users/reset-password`"""
users_self = "/api/users/self" users_self = "/api/users/self"
"""`/api/users/self`""" """`/api/users/self`"""
users_self_group = "/api/users/self/group"
"""`/api/users/self/group`"""
utils_download = "/api/utils/download" utils_download = "/api/utils/download"
"""`/api/utils/download`""" """`/api/utils/download`"""
validators_group = "/api/validators/group" validators_group = "/api/validators/group"