mirror of
https://github.com/mealie-recipes/mealie.git
synced 2026-03-03 20:23:11 -05:00
Compare commits
90 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
42a33cd993 | ||
|
|
d73817adad | ||
|
|
ce58da8e18 | ||
|
|
fe89981e78 | ||
|
|
520bc7154a | ||
|
|
a38dfc094e | ||
|
|
0a81579da1 | ||
|
|
f4e77f6837 | ||
|
|
1e04e9424f | ||
|
|
d1bbfece9d | ||
|
|
94a85f9977 | ||
|
|
3d0adda405 | ||
|
|
47086da6b6 | ||
|
|
9ce71c911f | ||
|
|
2244c3a8b5 | ||
|
|
f0d0d0d463 | ||
|
|
dbec3e58f9 | ||
|
|
a5e56dc97f | ||
|
|
6d64418727 | ||
|
|
2b71174765 | ||
|
|
7f6de730a3 | ||
|
|
22cc19a085 | ||
|
|
b16fa49f16 | ||
|
|
90e373582b | ||
|
|
1b3cbb38ae | ||
|
|
ac5a63e32d | ||
|
|
d5d86488a0 | ||
|
|
3f9c46a763 | ||
|
|
04176f6927 | ||
|
|
2aa8c5810a | ||
|
|
a071a7d16b | ||
|
|
a14c1b48c6 | ||
|
|
43174dcebe | ||
|
|
3ee53977ec | ||
|
|
de1486c57f | ||
|
|
a12aba6b9d | ||
|
|
fb70bc76b3 | ||
|
|
e6351273e2 | ||
|
|
82dcfb5635 | ||
|
|
dddeed6359 | ||
|
|
5f4a36bbd8 | ||
|
|
f74610a0f7 | ||
|
|
166f2486a2 | ||
|
|
88a5209237 | ||
|
|
d954869dd7 | ||
|
|
9cf181b415 | ||
|
|
5a7dc14a48 | ||
|
|
d916c0a472 | ||
|
|
a3693d83a3 | ||
|
|
bb9620b67e | ||
|
|
3174216931 | ||
|
|
94342081f9 | ||
|
|
36088f0db9 | ||
|
|
4c60febb9c | ||
|
|
0283185913 | ||
|
|
f42114e966 | ||
|
|
d4de15ba1e | ||
|
|
e686fa671c | ||
|
|
597e6c8e0f | ||
|
|
d5ba69d828 | ||
|
|
564f43085b | ||
|
|
a0b6cc3e62 | ||
|
|
c960c00cbe | ||
|
|
47b60e9ad5 | ||
|
|
026ca0364e | ||
|
|
13e7dfe920 | ||
|
|
8a3173094e | ||
|
|
0d16a2a943 | ||
|
|
2918a824e4 | ||
|
|
00e5e4384d | ||
|
|
634b0590ed | ||
|
|
52c58e1dc0 | ||
|
|
67b7fb007b | ||
|
|
292672601c | ||
|
|
fa3bbdcde1 | ||
|
|
7e519c6b5a | ||
|
|
57c11b23c4 | ||
|
|
ba60428b03 | ||
|
|
e48619bae6 | ||
|
|
6d38960a5a | ||
|
|
14497b9b5e | ||
|
|
e90f05d2dc | ||
|
|
677dc8f36a | ||
|
|
449eeb0d53 | ||
|
|
41204ca7f9 | ||
|
|
437f5c454f | ||
|
|
3a30b3216e | ||
|
|
408df286fd | ||
|
|
2cfc63b302 | ||
|
|
a8583c8e69 |
@@ -49,7 +49,9 @@
|
||||
"onCreateCommand": "sudo chown -R vscode:vscode /workspaces/mealie/frontend/node_modules && task setup",
|
||||
// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
|
||||
"remoteUser": "vscode",
|
||||
// "features": {
|
||||
// "git": "latest"
|
||||
// }
|
||||
"features": {
|
||||
"ghcr.io/devcontainers/features/docker-in-docker:2": {
|
||||
"dockerDashComposeVersion": "v2"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@@ -49,6 +49,8 @@ jobs:
|
||||
needs:
|
||||
- build-release
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
- name: Checkout 🛎
|
||||
uses: actions/checkout@v4
|
||||
|
||||
55
frontend/components/Domain/Cookbook/CookbookEditor.vue
Normal file
55
frontend/components/Domain/Cookbook/CookbookEditor.vue
Normal file
@@ -0,0 +1,55 @@
|
||||
<template>
|
||||
<div>
|
||||
<v-card-text v-if="cookbook">
|
||||
<v-text-field v-model="cookbook.name" :label="$t('cookbook.cookbook-name')"></v-text-field>
|
||||
<v-textarea v-model="cookbook.description" auto-grow :rows="2" :label="$t('recipe.description')"></v-textarea>
|
||||
<RecipeOrganizerSelector v-model="cookbook.categories" selector-type="categories" />
|
||||
<RecipeOrganizerSelector v-model="cookbook.tags" selector-type="tags" />
|
||||
<RecipeOrganizerSelector v-model="cookbook.tools" selector-type="tools" />
|
||||
<v-switch v-model="cookbook.public" hide-details single-line>
|
||||
<template #label>
|
||||
{{ $t('cookbook.public-cookbook') }}
|
||||
<HelpIcon small right class="ml-2">
|
||||
{{ $t('cookbook.public-cookbook-description') }}
|
||||
</HelpIcon>
|
||||
</template>
|
||||
</v-switch>
|
||||
<div class="mt-4">
|
||||
<h3 class="text-subtitle-1 d-flex align-center mb-0 pb-0">
|
||||
{{ $t('cookbook.filter-options') }}
|
||||
<HelpIcon right small class="ml-2">
|
||||
{{ $t('cookbook.filter-options-description') }}
|
||||
</HelpIcon>
|
||||
</h3>
|
||||
<v-switch v-model="cookbook.requireAllCategories" class="mt-0" hide-details single-line>
|
||||
<template #label> {{ $t('cookbook.require-all-categories') }} </template>
|
||||
</v-switch>
|
||||
<v-switch v-model="cookbook.requireAllTags" hide-details single-line>
|
||||
<template #label> {{ $t('cookbook.require-all-tags') }} </template>
|
||||
</v-switch>
|
||||
<v-switch v-model="cookbook.requireAllTools" hide-details single-line>
|
||||
<template #label> {{ $t('cookbook.require-all-tools') }} </template>
|
||||
</v-switch>
|
||||
</div>
|
||||
</v-card-text>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent } from "@nuxtjs/composition-api";
|
||||
import { ReadCookBook } from "~/lib/api/types/cookbook";
|
||||
import RecipeOrganizerSelector from "~/components/Domain/Recipe/RecipeOrganizerSelector.vue";
|
||||
export default defineComponent({
|
||||
components: { RecipeOrganizerSelector },
|
||||
props: {
|
||||
cookbook: {
|
||||
type: Object as () => ReadCookBook,
|
||||
required: true,
|
||||
},
|
||||
actions: {
|
||||
type: Object as () => any,
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
});
|
||||
</script>
|
||||
@@ -12,6 +12,8 @@
|
||||
$emit('submit');
|
||||
dialog = false;
|
||||
"
|
||||
@click:outside="$emit('cancel')"
|
||||
@keydown.esc="$emit('cancel')"
|
||||
>
|
||||
<v-card height="100%">
|
||||
<v-app-bar dark dense :color="color" class="">
|
||||
|
||||
@@ -57,12 +57,12 @@
|
||||
:buttons="[
|
||||
{
|
||||
icon: $globals.icons.edit,
|
||||
text: $t('general.edit'),
|
||||
text: $tc('general.edit'),
|
||||
event: 'edit',
|
||||
},
|
||||
{
|
||||
icon: $globals.icons.delete,
|
||||
text: $t('general.delete'),
|
||||
text: $tc('general.delete'),
|
||||
event: 'delete',
|
||||
},
|
||||
]"
|
||||
@@ -160,6 +160,8 @@ export default defineComponent({
|
||||
props.bulkActions.forEach((action) => {
|
||||
handlers[action.event] = () => {
|
||||
context.emit(action.event, selected.value);
|
||||
// clear selection
|
||||
selected.value = [];
|
||||
};
|
||||
});
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import { usePublicExploreApi } from "../api/api-client";
|
||||
import { useUserApi } from "~/composables/api";
|
||||
import { IngredientFood } from "~/lib/api/types/recipe";
|
||||
|
||||
let foodStore: Ref<IngredientFood[] | null> | null = null;
|
||||
let foodStore: Ref<IngredientFood[] | null> = ref([]);
|
||||
|
||||
/**
|
||||
* useFoodData returns a template reactive object
|
||||
@@ -39,11 +39,11 @@ export const usePublicFoodStore = function (groupSlug: string) {
|
||||
const actions = {
|
||||
...usePublicStoreActions(api.foods, foodStore, loading),
|
||||
flushStore() {
|
||||
foodStore = null;
|
||||
foodStore = ref([]);
|
||||
},
|
||||
};
|
||||
|
||||
if (!foodStore) {
|
||||
if (!foodStore.value || foodStore.value.length === 0) {
|
||||
foodStore = actions.getAll();
|
||||
}
|
||||
|
||||
@@ -57,11 +57,11 @@ export const useFoodStore = function () {
|
||||
const actions = {
|
||||
...useStoreActions(api.foods, foodStore, loading),
|
||||
flushStore() {
|
||||
foodStore = null;
|
||||
foodStore.value = [];
|
||||
},
|
||||
};
|
||||
|
||||
if (!foodStore) {
|
||||
if (!foodStore.value || foodStore.value.length === 0) {
|
||||
foodStore = actions.getAll();
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import { useStoreActions } from "../partials/use-actions-factory";
|
||||
import { MultiPurposeLabelOut } from "~/lib/api/types/labels";
|
||||
import { useUserApi } from "~/composables/api";
|
||||
|
||||
let labelStore: Ref<MultiPurposeLabelOut[] | null> | null = null;
|
||||
let labelStore: Ref<MultiPurposeLabelOut[] | null> = ref([]);
|
||||
|
||||
export function useLabelData() {
|
||||
const data = reactive({
|
||||
@@ -33,11 +33,11 @@ export function useLabelStore() {
|
||||
const actions = {
|
||||
...useStoreActions<MultiPurposeLabelOut>(api.multiPurposeLabels, labelStore, loading),
|
||||
flushStore() {
|
||||
labelStore = null;
|
||||
labelStore.value = [];
|
||||
},
|
||||
};
|
||||
|
||||
if (!labelStore) {
|
||||
if (!labelStore.value || labelStore.value?.length === 0) {
|
||||
labelStore = actions.getAll();
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import { useStoreActions } from "../partials/use-actions-factory";
|
||||
import { useUserApi } from "~/composables/api";
|
||||
import { IngredientUnit } from "~/lib/api/types/recipe";
|
||||
|
||||
let unitStore: Ref<IngredientUnit[] | null> | null = null;
|
||||
let unitStore: Ref<IngredientUnit[] | null> = ref([]);
|
||||
|
||||
/**
|
||||
* useUnitData returns a template reactive object
|
||||
@@ -40,11 +40,11 @@ export const useUnitStore = function () {
|
||||
const actions = {
|
||||
...useStoreActions<IngredientUnit>(api.units, unitStore, loading),
|
||||
flushStore() {
|
||||
unitStore = null;
|
||||
unitStore.value = [];
|
||||
},
|
||||
};
|
||||
|
||||
if (!unitStore) {
|
||||
if (!unitStore.value || unitStore.value.length === 0) {
|
||||
unitStore = actions.getAll();
|
||||
}
|
||||
|
||||
|
||||
@@ -109,6 +109,7 @@ export const useCookbooks = function () {
|
||||
}
|
||||
|
||||
loading.value = false;
|
||||
return data;
|
||||
},
|
||||
async updateOne(updateData: UpdateCookBook) {
|
||||
if (!updateData.id) {
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Laai dokument op",
|
||||
"created-on-date": "Geskep op: {0}",
|
||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Is jy seker jy wil <b>{groupName}<b/> uitvee?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Vereis alle merkers",
|
||||
"require-all-tools": "Vereis alle kookgerei",
|
||||
"cookbook-name": "Naam van die kookboek",
|
||||
"cookbook-with-name": "Kookboek {0}"
|
||||
"cookbook-with-name": "Kookboek {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "تحميل الملف",
|
||||
"created-on-date": "تم الإنشاء في {0}",
|
||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "هل انت متأكد من رغبتك في حذف <b>{groupName}<b/>؟",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Require All Tags",
|
||||
"require-all-tools": "Require All Tools",
|
||||
"cookbook-name": "Cookbook Name",
|
||||
"cookbook-with-name": "Cookbook {0}"
|
||||
"cookbook-with-name": "Cookbook {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Качване на файл",
|
||||
"created-on-date": "Създадено на {0}",
|
||||
"unsaved-changes": "Имате незапазени промени. Желаете ли да ги запазите преди да излезете? Натиснете Ок за запазване и Отказ за отхвърляне на промените.",
|
||||
"clipboard-copy-failure": "Линкът към рецептата е копиран в клипборда."
|
||||
"clipboard-copy-failure": "Линкът към рецептата е копиран в клипборда.",
|
||||
"confirm-delete-generic-items": "Сигурни ли сте, че желаете да изтриете следните елементи?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Сигурни ли сте, че искате да изтриете <b>{groupName}<b/>?",
|
||||
@@ -258,7 +259,7 @@
|
||||
},
|
||||
"meal-plan": {
|
||||
"create-a-new-meal-plan": "Създаване на нов хранителен план",
|
||||
"update-this-meal-plan": "Update this Meal Plan",
|
||||
"update-this-meal-plan": "Обнови този План за хранене",
|
||||
"dinner-this-week": "Вечеря тази седмица",
|
||||
"dinner-today": "Вечеря Днес",
|
||||
"dinner-tonight": "Вечеря ТАЗИ ВЕЧЕР",
|
||||
@@ -473,11 +474,11 @@
|
||||
"add-to-timeline": "Добави към времевата линия",
|
||||
"recipe-added-to-list": "Рецептата е добавена към списъка",
|
||||
"recipes-added-to-list": "Рецептите са добавени към списъка",
|
||||
"successfully-added-to-list": "Successfully added to list",
|
||||
"successfully-added-to-list": "Успешно добавено в списъка",
|
||||
"recipe-added-to-mealplan": "Рецептата е добавена към хранителния план",
|
||||
"failed-to-add-recipes-to-list": "Неуспешно добавяне на рецепта към списъка",
|
||||
"failed-to-add-recipe-to-mealplan": "Рецептата не беше добавена към хранителния план",
|
||||
"failed-to-add-to-list": "Failed to add to list",
|
||||
"failed-to-add-to-list": "Неуспешно добавяне към списъка",
|
||||
"yield": "Добив",
|
||||
"quantity": "Количество",
|
||||
"choose-unit": "Избери единица",
|
||||
@@ -536,8 +537,8 @@
|
||||
"new-recipe-names-must-be-unique": "Името на рецептата трябва да бъде уникално",
|
||||
"scrape-recipe": "Обхождане на рецепта",
|
||||
"scrape-recipe-description": "Обходи рецепта по линк. Предоставете линк за сайт, който искате да бъде обходен. Mealie ще опита да обходи рецептата от този сайт и да я добави във Вашата колекция.",
|
||||
"scrape-recipe-have-a-lot-of-recipes": "Have a lot of recipes you want to scrape at once?",
|
||||
"scrape-recipe-suggest-bulk-importer": "Try out the bulk importer",
|
||||
"scrape-recipe-have-a-lot-of-recipes": "Имате много рецепти, които искате да обходите наведнъж?",
|
||||
"scrape-recipe-suggest-bulk-importer": "Пробвайте масовото импорторане",
|
||||
"import-original-keywords-as-tags": "Импортирай оригиналните ключови думи като тагове",
|
||||
"stay-in-edit-mode": "Остани в режим на редакция",
|
||||
"import-from-zip": "Импортирай от Zip",
|
||||
@@ -561,7 +562,7 @@
|
||||
"upload-image": "Качване на изображение",
|
||||
"screen-awake": "Запази екрана активен",
|
||||
"remove-image": "Премахване на изображение",
|
||||
"nextStep": "Next step"
|
||||
"nextStep": "Следваща стъпка"
|
||||
},
|
||||
"search": {
|
||||
"advanced-search": "Разширено търсене",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Изискване на всички тагове",
|
||||
"require-all-tools": "Изискване на всички инструменти",
|
||||
"cookbook-name": "Име на книгата с рецепти",
|
||||
"cookbook-with-name": "Книга с рецепти {0}"
|
||||
"cookbook-with-name": "Книга с рецепти {0}",
|
||||
"create-a-cookbook": "Създай Готварска книга",
|
||||
"cookbook": "Готварска книга"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Puja un fitxer",
|
||||
"created-on-date": "Creat el: {0}",
|
||||
"unsaved-changes": "Tens canvis que no estan guardats. Vols guardar-los abans de sortir? Clica d'acord per guardar-los o cancel·lar per descartar els canvis.",
|
||||
"clipboard-copy-failure": "No s'ha pogut copiar al porta-retalls."
|
||||
"clipboard-copy-failure": "No s'ha pogut copiar al porta-retalls.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Esteu segur de voler suprimir el grup <b>{groupName}<b/>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Requereix totes les etiquetes",
|
||||
"require-all-tools": "Requereix tots els utensilis",
|
||||
"cookbook-name": "Nom del receptari",
|
||||
"cookbook-with-name": "Receptari {0}"
|
||||
"cookbook-with-name": "Receptari {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Nahrát soubor",
|
||||
"created-on-date": "Vytvořeno dne: {0}",
|
||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Jste si jisti, že chcete smazat <b>{groupName}<b/>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Vyžadovat všechny štítky",
|
||||
"require-all-tools": "Vyžadovat všechny nástroje",
|
||||
"cookbook-name": "Název kuchařky",
|
||||
"cookbook-with-name": "Kuchařka {0}"
|
||||
"cookbook-with-name": "Kuchařka {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Upload Fil",
|
||||
"created-on-date": "Oprettet den: {0}",
|
||||
"unsaved-changes": "Du har ændringer som ikke er gemt. Vil du gemme før du forlader? Vælg \"Okay\" for at gemme, eller \"Annullér\" for at kassere ændringer.",
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Er du sikker på, du vil slette <b>{groupName}<b/>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Kræv Alle Mærker",
|
||||
"require-all-tools": "Kræv Alle Værktøjer",
|
||||
"cookbook-name": "Navn på kogebog",
|
||||
"cookbook-with-name": "Kogebog {0}"
|
||||
"cookbook-with-name": "Kogebog {0}",
|
||||
"create-a-cookbook": "Opret en ny kogebog",
|
||||
"cookbook": "Kogebog"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Datei hochladen",
|
||||
"created-on-date": "Erstellt am: {0}",
|
||||
"unsaved-changes": "Du hast ungespeicherte Änderungen. Möchtest du vor dem Verlassen speichern? OK um zu speichern, Cancel um Änderungen zu verwerfen.",
|
||||
"clipboard-copy-failure": "Fehler beim Kopieren in die Zwischenablage."
|
||||
"clipboard-copy-failure": "Fehler beim Kopieren in die Zwischenablage.",
|
||||
"confirm-delete-generic-items": "Bist du dir sicher, dass du die folgenden Einträge löschen möchtest?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Bist du dir sicher, dass du die Gruppe <b>{groupName}<b/> löschen möchtest?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Alle Schlagwörter erforderlich",
|
||||
"require-all-tools": "Alle Utensilien erforderlich",
|
||||
"cookbook-name": "Kochbuch Name",
|
||||
"cookbook-with-name": "Kochbuch {0}"
|
||||
"cookbook-with-name": "Kochbuch {0}",
|
||||
"create-a-cookbook": "Ein Kochbuch erstellen",
|
||||
"cookbook": "Kochbuch"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Μεταφόρτωση αρχείου",
|
||||
"created-on-date": "Δημιουργήθηκε στις: {0}",
|
||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό τον ασφαλή σύνδεσμο <b>{groupName}<b/>;",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Require All Tags",
|
||||
"require-all-tools": "Require All Tools",
|
||||
"cookbook-name": "Cookbook Name",
|
||||
"cookbook-with-name": "Cookbook {0}"
|
||||
"cookbook-with-name": "Cookbook {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Upload File",
|
||||
"created-on-date": "Created on: {0}",
|
||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete <b>{groupName}<b/>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Require All Tags",
|
||||
"require-all-tools": "Require All Tools",
|
||||
"cookbook-name": "Cookbook Name",
|
||||
"cookbook-with-name": "Cookbook {0}"
|
||||
"cookbook-with-name": "Cookbook {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Upload File",
|
||||
"created-on-date": "Created on: {0}",
|
||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete <b>{groupName}<b/>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Require All Tags",
|
||||
"require-all-tools": "Require All Tools",
|
||||
"cookbook-name": "Cookbook Name",
|
||||
"cookbook-with-name": "Cookbook {0}"
|
||||
"cookbook-with-name": "Cookbook {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Subir Archivo",
|
||||
"created-on-date": "Creado el {0}",
|
||||
"unsaved-changes": "Tienes cambios sin guardar. ¿Quieres guardar antes de salir? Aceptar para guardar, Cancelar para descartar cambios.",
|
||||
"clipboard-copy-failure": "No se pudo copiar al portapapeles."
|
||||
"clipboard-copy-failure": "No se pudo copiar al portapapeles.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Por favor, confirma que deseas eliminar <b>{groupName}<b/>",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Requerir todas las etiquetas",
|
||||
"require-all-tools": "Requiere todos los utensilios",
|
||||
"cookbook-name": "Nombre del recetario",
|
||||
"cookbook-with-name": "Recetario {0}"
|
||||
"cookbook-with-name": "Recetario {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Tuo tiedosto",
|
||||
"created-on-date": "Luotu {0}",
|
||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Haluatko varmasti poistaa ryhmän <b>{groupName}<b/>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Vaadi Kaikki Tunnisteet",
|
||||
"require-all-tools": "Vaadi Kaikki Työkalut",
|
||||
"cookbook-name": "Keittokirjan Nimi",
|
||||
"cookbook-with-name": "Keittokirja {0}"
|
||||
"cookbook-with-name": "Keittokirja {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Transférer un fichier",
|
||||
"created-on-date": "Créé le {0}",
|
||||
"unsaved-changes": "Vous avez des modifications non enregistrées. Voulez-vous les enregistrer ? Ok pour enregistrer, annuler pour ignorer les modifications.",
|
||||
"clipboard-copy-failure": "Échec de la copie vers le presse-papiers."
|
||||
"clipboard-copy-failure": "Échec de la copie vers le presse-papiers.",
|
||||
"confirm-delete-generic-items": "Êtes-vous sûr de vouloir supprimer les éléments suivants ?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Êtes-vous certain de vouloir supprimer <b>{groupName}<b/>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Nécessite tous les mots-clés",
|
||||
"require-all-tools": "Nécessite tous les ustensiles",
|
||||
"cookbook-name": "Nom du livre de recettes",
|
||||
"cookbook-with-name": "Livre de recettes {0}"
|
||||
"cookbook-with-name": "Livre de recettes {0}",
|
||||
"create-a-cookbook": "Créer un nouveau livre de recettes",
|
||||
"cookbook": "Livre de recettes"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Transférer un fichier",
|
||||
"created-on-date": "Créé le {0}",
|
||||
"unsaved-changes": "Vous avez des modifications non enregistrées. Voulez-vous enregistrer avant de partir ? OK pour enregistrer, Annuler pour ignorer les modifications.",
|
||||
"clipboard-copy-failure": "Échec de la copie dans le presse-papiers."
|
||||
"clipboard-copy-failure": "Échec de la copie dans le presse-papiers.",
|
||||
"confirm-delete-generic-items": "Êtes-vous sûr de vouloir supprimer les éléments suivants ?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Voulez-vous vraiment supprimer <b>{groupName}<b/> ?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Nécessite tous les mots-clés",
|
||||
"require-all-tools": "Nécessite tous les ustensiles",
|
||||
"cookbook-name": "Nom du livre de recettes",
|
||||
"cookbook-with-name": "Livre de recettes {0}"
|
||||
"cookbook-with-name": "Livre de recettes {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Upload File",
|
||||
"created-on-date": "Created on: {0}",
|
||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete <b>{groupName}<b/>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Require All Tags",
|
||||
"require-all-tools": "Require All Tools",
|
||||
"cookbook-name": "Cookbook Name",
|
||||
"cookbook-with-name": "Cookbook {0}"
|
||||
"cookbook-with-name": "Cookbook {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "העלאת קבצים",
|
||||
"created-on-date": "נוצר ב-{0}",
|
||||
"unsaved-changes": "יש שינויים שלא נשמרו. לצאת לפני שמירה? אשר לשמירה, בטל למחיקת שינויים.",
|
||||
"clipboard-copy-failure": "כשלון בהעתקה ללוח ההדבקה."
|
||||
"clipboard-copy-failure": "כשלון בהעתקה ללוח ההדבקה.",
|
||||
"confirm-delete-generic-items": "האם אתה בטוח שברצונך למחוק את הפריטים הנבחרים?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "האם את/ה בטוח/ה שברצונך למחוק את <b>{groupName}<b/>?",
|
||||
@@ -258,7 +259,7 @@
|
||||
},
|
||||
"meal-plan": {
|
||||
"create-a-new-meal-plan": "יצירת תכנית ארוחות חדשה",
|
||||
"update-this-meal-plan": "Update this Meal Plan",
|
||||
"update-this-meal-plan": "עדכן את תכנון הארוחות",
|
||||
"dinner-this-week": "ארוחות ערב השבוע",
|
||||
"dinner-today": "ארוחת ערב היום",
|
||||
"dinner-tonight": "ארוחת ערב היום",
|
||||
@@ -473,11 +474,11 @@
|
||||
"add-to-timeline": "הוסף לציר הזמן",
|
||||
"recipe-added-to-list": "מתכון נוסף לרשימה",
|
||||
"recipes-added-to-list": "מתכונים הוספו לרשימה",
|
||||
"successfully-added-to-list": "Successfully added to list",
|
||||
"successfully-added-to-list": "נוסף לרשימה בהצלחה",
|
||||
"recipe-added-to-mealplan": "מתכון נוסף לתכנון ארוחות",
|
||||
"failed-to-add-recipes-to-list": "כשלון בהוספת מתכון לרשימה",
|
||||
"failed-to-add-recipe-to-mealplan": "הוספת מתכון לתכנון ארוחות נכשלה",
|
||||
"failed-to-add-to-list": "Failed to add to list",
|
||||
"failed-to-add-to-list": "כשלון בהוספה לרשימה",
|
||||
"yield": "תשואה",
|
||||
"quantity": "כמות",
|
||||
"choose-unit": "בחירת יחידת מידה",
|
||||
@@ -514,7 +515,7 @@
|
||||
"how-did-it-turn-out": "איך יצא?",
|
||||
"user-made-this": "{user} הכין את זה",
|
||||
"last-made-date": "נעשה לאחרונה ב{date}",
|
||||
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
||||
"api-extras-description": "מתכונים נוספים הם יכולת מפתח של Mealie API. הם מאפשרים ליצור צמדי key/value בצורת JSON על מנת לקרוא אותם בתוכנת צד שלישית. תוכלו להשתמש בצמדים האלה כדי לספק מידע, לדוגמא להפעיל אוטומציות או הודעות מותאמות אישית למכשירים מסויימים.",
|
||||
"message-key": "מפתח הודעה",
|
||||
"parse": "ניתוח",
|
||||
"attach-images-hint": "הוסף תמונות ע\"י גרירה ושחרור אל תוך העורך",
|
||||
@@ -536,8 +537,8 @@
|
||||
"new-recipe-names-must-be-unique": "שם מתכון חדש חייב להיות ייחודי",
|
||||
"scrape-recipe": "קריאת מתכון",
|
||||
"scrape-recipe-description": "קריאת מתכון בעזרת לינק. ספק את הלינק של האתר שברצונך לקרוא, ומילי תנסה לקרוא את המתכון מהאתר ולהוסיף אותו לאוסף.",
|
||||
"scrape-recipe-have-a-lot-of-recipes": "Have a lot of recipes you want to scrape at once?",
|
||||
"scrape-recipe-suggest-bulk-importer": "Try out the bulk importer",
|
||||
"scrape-recipe-have-a-lot-of-recipes": "יש לך הרבה מתכונים שאתה רוצה לקרוא בבת אחת?",
|
||||
"scrape-recipe-suggest-bulk-importer": "נסה את יכולת קריאת רשימה",
|
||||
"import-original-keywords-as-tags": "ייבא שמות מפתח מקוריות כתגיות",
|
||||
"stay-in-edit-mode": "השאר במצב עריכה",
|
||||
"import-from-zip": "ייבא מקובץ",
|
||||
@@ -561,7 +562,7 @@
|
||||
"upload-image": "העלה תמונה",
|
||||
"screen-awake": "השאר את המסך פעיל",
|
||||
"remove-image": "האם למחוק את התמונה?",
|
||||
"nextStep": "Next step"
|
||||
"nextStep": "השלב הבא"
|
||||
},
|
||||
"search": {
|
||||
"advanced-search": "חיפוש מתקדם",
|
||||
@@ -796,7 +797,7 @@
|
||||
"untagged-count": "לא מתוייג {count}",
|
||||
"create-a-tag": "צור תגית",
|
||||
"tag-name": "שם תגית",
|
||||
"tag": "Tag"
|
||||
"tag": "תגית"
|
||||
},
|
||||
"tool": {
|
||||
"tools": "כלים",
|
||||
@@ -806,7 +807,7 @@
|
||||
"create-new-tool": "יצירת כלי חדש",
|
||||
"on-hand-checkbox-label": "הראה מה יש לי במטבח",
|
||||
"required-tools": "צריך כלים",
|
||||
"tool": "Tool"
|
||||
"tool": "כלי"
|
||||
},
|
||||
"user": {
|
||||
"admin": "אדמין",
|
||||
@@ -897,10 +898,10 @@
|
||||
"user-can-organize-group-data": "משתמש יכול לשנות מידע של קבוצה",
|
||||
"enable-advanced-features": "אפשר אפשרויות מתקדמות",
|
||||
"it-looks-like-this-is-your-first-time-logging-in": "נראה שזו ההתחברות הראשונה שלך.",
|
||||
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!",
|
||||
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "לא רוצה לראות את זה יותר? דאג לשנות את המייל של בהגדרות המשתמש!",
|
||||
"forgot-password": "שכחתי סיסמא",
|
||||
"forgot-password-text": "Please enter your email address and we will send you a link to reset your password.",
|
||||
"changes-reflected-immediately": "Changes to this user will be reflected immediately."
|
||||
"forgot-password-text": "נא לספק כתובת דוא\"ל. אנו נשלח לך הודעת דוא\"ל לצורך איפוס הסיסמה שלך.",
|
||||
"changes-reflected-immediately": "השינויים למשתמש זה יבוצעו מיידית."
|
||||
},
|
||||
"language-dialog": {
|
||||
"translated": "תורגם",
|
||||
@@ -922,8 +923,8 @@
|
||||
"food-label": "תוית אוכל",
|
||||
"edit-food": "עריכת מזון",
|
||||
"food-data": "נתוני אוכל",
|
||||
"example-food-singular": "ex: Onion",
|
||||
"example-food-plural": "ex: Onions"
|
||||
"example-food-singular": "דוגמא: בצל",
|
||||
"example-food-plural": "דוגמא: בצלים"
|
||||
},
|
||||
"units": {
|
||||
"seed-dialog-text": "אכלס את מסד הנתונים עם יחידות מדידה בהתאם לשפה המקומית שלך.",
|
||||
@@ -934,7 +935,7 @@
|
||||
"merging-unit-into-unit": "ממזג את {0} לתוך {1}",
|
||||
"create-unit": "יצירת יחידה",
|
||||
"abbreviation": "קיצור",
|
||||
"plural-abbreviation": "Plural Abbreviation",
|
||||
"plural-abbreviation": "צורת הרבית",
|
||||
"description": "תיאור",
|
||||
"display-as-fraction": "הצגה כשבר",
|
||||
"use-abbreviation": "השתמש בקיצור",
|
||||
@@ -942,10 +943,10 @@
|
||||
"unit-data": "נתוני יחידה",
|
||||
"use-abbv": "השתמש בקיצור",
|
||||
"fraction": "שבר",
|
||||
"example-unit-singular": "ex: Tablespoon",
|
||||
"example-unit-plural": "ex: Tablespoons",
|
||||
"example-unit-abbreviation-singular": "ex: Tbsp",
|
||||
"example-unit-abbreviation-plural": "ex: Tbsps"
|
||||
"example-unit-singular": "דוגמא: כפית",
|
||||
"example-unit-plural": "דוגמא: כפיות",
|
||||
"example-unit-abbreviation-singular": "דוגמא: כף",
|
||||
"example-unit-abbreviation-plural": "דוגמא: כפות"
|
||||
},
|
||||
"labels": {
|
||||
"seed-dialog-text": "אכלס את מסד הנתונים בתגיות נפוצות בהתאם לשפה המקומית שלך.",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "זקוק לכל התגיות",
|
||||
"require-all-tools": "זקוק לכל הכלים",
|
||||
"cookbook-name": "שם ספר בישול",
|
||||
"cookbook-with-name": "ספר בישול {0}"
|
||||
"cookbook-with-name": "ספר בישול {0}",
|
||||
"create-a-cookbook": "צור ספר בישול חדש",
|
||||
"cookbook": "ספר בישול"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Prenesi Datoteku",
|
||||
"created-on-date": "Kreirano dana: {0}",
|
||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Jeste li sigurni da želite izbrisati <b>{groupName}<b/>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Zahtijevaj sve oznake",
|
||||
"require-all-tools": "Zahtijevaj sve Alate",
|
||||
"cookbook-name": "Naziv Zbirke recepata",
|
||||
"cookbook-with-name": "ZbirkaRecepata {0}"
|
||||
"cookbook-with-name": "ZbirkaRecepata {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Fájl feltöltése",
|
||||
"created-on-date": "Létrehozva: {0}",
|
||||
"unsaved-changes": "El nem mentett módosításai vannak. Szeretné elmenteni, mielőtt kilép? A mentéshez kattintson az Ok, a módosítások elvetéséhez a Mégsem gombra.",
|
||||
"clipboard-copy-failure": "Nem sikerült a vágólapra másolás."
|
||||
"clipboard-copy-failure": "Nem sikerült a vágólapra másolás.",
|
||||
"confirm-delete-generic-items": "Biztos benne, hogy törölni szeretné az alábbi tételeket?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Biztosan törölni szeretnéd ezt: <b>{groupName}<b/>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Minden címke szükséges",
|
||||
"require-all-tools": "Minden szükséges eszköz",
|
||||
"cookbook-name": "Szakácskönyv neve",
|
||||
"cookbook-with-name": "Szakácskönyv {0}"
|
||||
"cookbook-with-name": "Szakácskönyv {0}",
|
||||
"create-a-cookbook": "Szakácskönyv létrehozása",
|
||||
"cookbook": "Szakácskönyv"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Upload File",
|
||||
"created-on-date": "Created on: {0}",
|
||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete <b>{groupName}<b/>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Require All Tags",
|
||||
"require-all-tools": "Require All Tools",
|
||||
"cookbook-name": "Cookbook Name",
|
||||
"cookbook-with-name": "Cookbook {0}"
|
||||
"cookbook-with-name": "Cookbook {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Carica file",
|
||||
"created-on-date": "Creato il: {0}",
|
||||
"unsaved-changes": "Sono state apportate modifiche non salvate. Salvare prima di uscire? Premi Ok per salvare, Annulla per scartare le modifiche.",
|
||||
"clipboard-copy-failure": "Impossibile copiare negli appunti."
|
||||
"clipboard-copy-failure": "Impossibile copiare negli appunti.",
|
||||
"confirm-delete-generic-items": "Sei sicuro di voler eliminare i seguenti elementi?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Sei sicuro di volerlo eliminare <b>{groupName}<b/>'?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Richiedi Tutti I Tag",
|
||||
"require-all-tools": "Richiedi Tutti Gli Strumenti",
|
||||
"cookbook-name": "Nome Ricettario",
|
||||
"cookbook-with-name": "Ricettario {0}"
|
||||
"cookbook-with-name": "Ricettario {0}",
|
||||
"create-a-cookbook": "Crea un libro di cucina",
|
||||
"cookbook": "Libro di cucina"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "ファイルのアップロード",
|
||||
"created-on-date": "Created on: {0}",
|
||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "<b>{groupName}<b/> を削除しますか?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Require All Tags",
|
||||
"require-all-tools": "Require All Tools",
|
||||
"cookbook-name": "Cookbook Name",
|
||||
"cookbook-with-name": "Cookbook {0}"
|
||||
"cookbook-with-name": "Cookbook {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Upload File",
|
||||
"created-on-date": "Created on: {0}",
|
||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete <b>{groupName}<b/>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Require All Tags",
|
||||
"require-all-tools": "Require All Tools",
|
||||
"cookbook-name": "Cookbook Name",
|
||||
"cookbook-with-name": "Cookbook {0}"
|
||||
"cookbook-with-name": "Cookbook {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Įkelti failą",
|
||||
"created-on-date": "Sukurta: {0}",
|
||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Ar tikrai norite ištrinti <b>{groupName}<b/>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Būtinos visos žymos",
|
||||
"require-all-tools": "Būtini visi įrankiai",
|
||||
"cookbook-name": "Receptų knygos pavadinimas",
|
||||
"cookbook-with-name": "Receptų knyga {0}"
|
||||
"cookbook-with-name": "Receptų knyga {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Upload File",
|
||||
"created-on-date": "Created on: {0}",
|
||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete <b>{groupName}<b/>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Require All Tags",
|
||||
"require-all-tools": "Require All Tools",
|
||||
"cookbook-name": "Cookbook Name",
|
||||
"cookbook-with-name": "Cookbook {0}"
|
||||
"cookbook-with-name": "Cookbook {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
"apprise-url": "Apprise URL",
|
||||
"database": "Database",
|
||||
"delete-event": "Gebeurtenis verwijderen",
|
||||
"event-delete-confirmation": "Weet je zeker dat je deze gebeurtenis wil verwijderen?",
|
||||
"event-delete-confirmation": "Weet je zeker dat je deze gebeurtenis wilt verwijderen?",
|
||||
"event-deleted": "Gebeurtenis verwijderd",
|
||||
"event-updated": "Gebeurtenis bijgewerkt",
|
||||
"new-notification-form-description": "Mealie gebruikt de notificatieservices van Apprise om notificaties te genereren. Apprise biedt diverse services aan om notificaties te versturen. Raadpleeg hun wiki voor een uitgebreide handleiding over het creëren van een link voor je service. Afhankelijk van de gekozen service zijn er mogelijk extra functionaliteiten beschikbaar.",
|
||||
@@ -84,7 +84,7 @@
|
||||
"clear": "Wissen",
|
||||
"close": "Sluiten",
|
||||
"confirm": "Bevestigen",
|
||||
"confirm-delete-generic": "Weet je zeker dat je dit wil verwijderen?",
|
||||
"confirm-delete-generic": "Weet je zeker dat je dit wilt verwijderen?",
|
||||
"copied_message": "Gekopieerd!",
|
||||
"create": "Aanmaken",
|
||||
"created": "Aangemaakt op",
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Bestand uploaden",
|
||||
"created-on-date": "Gemaakt op {0}",
|
||||
"unsaved-changes": "Er zijn niet-opgeslagen wijzigingen. Wil je eerst opslaan voordat je vertrekt? Okay om op te slaan, Annuleren om wijzigingen ongedaan te maken.",
|
||||
"clipboard-copy-failure": "Kopiëren naar klembord mislukt."
|
||||
"clipboard-copy-failure": "Kopiëren naar klembord mislukt.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Weet je zeker dat je <b>{groupName}<b/> wil verwijderen?",
|
||||
@@ -559,7 +560,7 @@
|
||||
"recipe-yield": "Recept Opbrengst",
|
||||
"unit": "Eenheid",
|
||||
"upload-image": "Afbeelding uploaden",
|
||||
"screen-awake": "Scherm laten aan staan",
|
||||
"screen-awake": "Scherm aan laten staan",
|
||||
"remove-image": "Afbeelding verwijderen",
|
||||
"nextStep": "Volgende stap"
|
||||
},
|
||||
@@ -736,7 +737,7 @@
|
||||
"shopping-lists": "Boodschappenlijsten",
|
||||
"food": "Voedsel",
|
||||
"note": "Notitie",
|
||||
"label": "Etiket",
|
||||
"label": "Label",
|
||||
"linked-item-warning": "Dit element is gekoppeld aan een of meer recepten. Het aanpassen van de eenheden of ingrediënten zal onverwachte resultaten opleveren bij het toevoegen of verwijderen van het recept uit deze lijst.",
|
||||
"toggle-food": "Voedsel schakelen",
|
||||
"manage-labels": "Labels beheren",
|
||||
@@ -746,10 +747,10 @@
|
||||
"delete-checked": "Selectie verwijderen",
|
||||
"toggle-label-sort": "Label sortering in-/uitschakelen",
|
||||
"reorder-labels": "Labels opnieuw indelen",
|
||||
"uncheck-all-items": "Deselecteer alle Items",
|
||||
"check-all-items": "Alle producten controleren",
|
||||
"uncheck-all-items": "Deselecteer alle items",
|
||||
"check-all-items": "Selecteer alle items",
|
||||
"linked-recipes-count": "Geen Gelinkte Recepten Eén Gekoppeld Recept{count} Gekoppelde Recepten",
|
||||
"items-checked-count": "Geen items aangevinkt, Eén item gecontroleerd{count} items gecontroleerd",
|
||||
"items-checked-count": "Geen items geselecteerd|Eén item geselecteerd|{count} items geselecteerd",
|
||||
"no-label": "Geen label",
|
||||
"completed-on": "Afgemaakt op {date}"
|
||||
},
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Vereis alle tags",
|
||||
"require-all-tools": "Vereis al het kookgerei",
|
||||
"cookbook-name": "Naam van het kookboek",
|
||||
"cookbook-with-name": "Kookboek {0}"
|
||||
"cookbook-with-name": "Kookboek {0}",
|
||||
"create-a-cookbook": "Maak een kookboek",
|
||||
"cookbook": "Kookboek"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Last opp fil",
|
||||
"created-on-date": "Opprettet: {0}",
|
||||
"unsaved-changes": "Du har ulagrede endringer. Ønsker du å lagre før du forlater? Trykk 'OK' for å lagre, 'Avbryt' for å forkaste endringene.",
|
||||
"clipboard-copy-failure": "Kunne ikke kopiere til utklippstavlen."
|
||||
"clipboard-copy-failure": "Kunne ikke kopiere til utklippstavlen.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Er du sikker på at du vil slette <b>{groupName}<b/>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Krev alle emneord",
|
||||
"require-all-tools": "Krev alle kjøkkenredskaper",
|
||||
"cookbook-name": "Navn på kokebok",
|
||||
"cookbook-with-name": "Kokebok {0}"
|
||||
"cookbook-with-name": "Kokebok {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
"loading": "Ładowanie",
|
||||
"loading-events": "Ładowanie wydarzeń",
|
||||
"loading-recipe": "Ładowanie przepisów...",
|
||||
"loading-ocr-data": "Loading OCR data...",
|
||||
"loading-ocr-data": "Wczytywanie danych OCR...",
|
||||
"loading-recipes": "Ładowanie przepisów",
|
||||
"message": "Wiadomość",
|
||||
"monday": "Poniedziałek",
|
||||
@@ -198,8 +198,9 @@
|
||||
"refresh": "Odśwież",
|
||||
"upload-file": "Prześlij plik",
|
||||
"created-on-date": "Utworzono dnia: {0}",
|
||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
||||
"unsaved-changes": "Masz niezapisane zmiany. Czy chcesz zapisać przed wyjściem? Ok, aby zapisać, Anuluj, żeby odrzucić zmiany.",
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Czy na pewno chcesz usunąć <b>{groupName}<b/>?",
|
||||
@@ -258,7 +259,7 @@
|
||||
},
|
||||
"meal-plan": {
|
||||
"create-a-new-meal-plan": "Utwórz nowy plan posiłku",
|
||||
"update-this-meal-plan": "Update this Meal Plan",
|
||||
"update-this-meal-plan": "Zaktualizuj plan posiłku",
|
||||
"dinner-this-week": "Obiad w tym tygodniu",
|
||||
"dinner-today": "Obiad dziś",
|
||||
"dinner-tonight": "OBIAD DZIŚ",
|
||||
@@ -473,7 +474,7 @@
|
||||
"add-to-timeline": "Dodaj do osi czasu",
|
||||
"recipe-added-to-list": "Przepis dodany do listy",
|
||||
"recipes-added-to-list": "Przepisy dodane do listy",
|
||||
"successfully-added-to-list": "Successfully added to list",
|
||||
"successfully-added-to-list": "Pomyślnie dodano do listy",
|
||||
"recipe-added-to-mealplan": "Przepis dodany do planu posiłków",
|
||||
"failed-to-add-recipes-to-list": "Nie udało się dodać przepisu do listy",
|
||||
"failed-to-add-recipe-to-mealplan": "Nie udało się dodać przepisu do planu posiłków",
|
||||
@@ -806,7 +807,7 @@
|
||||
"create-new-tool": "Utwórz nowe narzędzie",
|
||||
"on-hand-checkbox-label": "Pokaż jako Posiadane (Zaznaczono)",
|
||||
"required-tools": "Wymagane Narzędzia",
|
||||
"tool": "Tool"
|
||||
"tool": "Narzędzie"
|
||||
},
|
||||
"user": {
|
||||
"admin": "Administrator",
|
||||
@@ -944,7 +945,7 @@
|
||||
"fraction": "Ułamki",
|
||||
"example-unit-singular": "np. Łyżka stołowa",
|
||||
"example-unit-plural": "np. Łyżki stołowe",
|
||||
"example-unit-abbreviation-singular": "ex: Tbsp",
|
||||
"example-unit-abbreviation-singular": "na przykład: Łyżka stołowa",
|
||||
"example-unit-abbreviation-plural": "ex: Tbsps"
|
||||
},
|
||||
"labels": {
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Wymagaj wszystkich tagów",
|
||||
"require-all-tools": "Wymagaj wszystkich narzędzi",
|
||||
"cookbook-name": "Nazwa książki kucharskiej",
|
||||
"cookbook-with-name": "Książka kucharska {0}"
|
||||
"cookbook-with-name": "Książka kucharska {0}",
|
||||
"create-a-cookbook": "Utwórz nową książkę kucharską",
|
||||
"cookbook": "Książka kucharska"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Enviar arquivo",
|
||||
"created-on-date": "Criado em {0}",
|
||||
"unsaved-changes": "Você possui alterações não salvas. Deseja salvar antes de sair? Ok para salvar, Cancelar para descartar alterações.",
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Tem certeza que deseja excluir o grupo <b>{groupName}<b/>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Exigir todos os marcadores",
|
||||
"require-all-tools": "Exigir todas as ferramentas",
|
||||
"cookbook-name": "Nome do Livro de Receitas",
|
||||
"cookbook-with-name": "Livro de Receitas {0}"
|
||||
"cookbook-with-name": "Livro de Receitas {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Carregar ficheiro",
|
||||
"created-on-date": "Criado em: {0}",
|
||||
"unsaved-changes": "Tem alterações por gravar. Quer gravar antes de sair? OK para gravar, Cancelar para descartar alterações.",
|
||||
"clipboard-copy-failure": "Erro ao copiar para a área de transferência."
|
||||
"clipboard-copy-failure": "Erro ao copiar para a área de transferência.",
|
||||
"confirm-delete-generic-items": "Tem a certeza de que deseja eliminar os seguintes itens?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Tem a certeza que quer eliminar <b>{groupName}</b>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Requer todas as etiquetas",
|
||||
"require-all-tools": "Requer todas os utensílios",
|
||||
"cookbook-name": "Nome do Livro de Receitas",
|
||||
"cookbook-with-name": "Livro de Receitas {0}"
|
||||
"cookbook-with-name": "Livro de Receitas {0}",
|
||||
"create-a-cookbook": "Criar um Livro de Receitas",
|
||||
"cookbook": "Livro de Receitas"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Încărcă fișier",
|
||||
"created-on-date": "Creat pe {0}",
|
||||
"unsaved-changes": "Aveți modificări nesalvate. Doriți să salvați înainte de a închide aplicația? Apăsați \"OK\" pentru a salva sau \"Anulare\" pentru a renunța la modificări.",
|
||||
"clipboard-copy-failure": "Copierea în clipboard a eșuat."
|
||||
"clipboard-copy-failure": "Copierea în clipboard a eșuat.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Sunteți sigur că doriți să ștergeți <b>{groupName}<b/>?",
|
||||
@@ -370,49 +371,49 @@
|
||||
"google-ld-json-info": "Google ld+json Info",
|
||||
"must-be-a-valid-url": "Trebuie să fie o adresă URL validă",
|
||||
"paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Paste in your recipe data. Each line will be treated as an item in a list",
|
||||
"recipe-markup-specification": "Recipe Markup Specification",
|
||||
"recipe-url": "Recipe URL",
|
||||
"upload-a-recipe": "Upload a Recipe",
|
||||
"recipe-markup-specification": "Specificație Markup rețetă",
|
||||
"recipe-url": "URL rețetă",
|
||||
"upload-a-recipe": "Încarcă o rețetă",
|
||||
"upload-individual-zip-file": "Upload an individual .zip file exported from another Mealie instance.",
|
||||
"url-form-hint": "Copy and paste a link from your favorite recipe website",
|
||||
"url-form-hint": "Copiază și lipește un link de pe site-ul tău web preferat de rețete",
|
||||
"view-scraped-data": "View Scraped Data",
|
||||
"trim-whitespace-description": "Trim leading and trailing whitespace as well as blank lines",
|
||||
"trim-prefix-description": "Trim first character from each line",
|
||||
"split-by-numbered-line-description": "Attempts to split a paragraph by matching '1)' or '1.' patterns",
|
||||
"import-by-url": "Import a recipe by URL",
|
||||
"create-manually": "Create a recipe manually",
|
||||
"import-by-url": "Importă rețetă prin URL",
|
||||
"create-manually": "Creează o rețetă manual",
|
||||
"make-recipe-image": "Make this the recipe image"
|
||||
},
|
||||
"page": {
|
||||
"404-page-not-found": "404 Page not found",
|
||||
"all-recipes": "All Recipes",
|
||||
"new-page-created": "New page created",
|
||||
"page": "Page",
|
||||
"page-creation-failed": "Page creation failed",
|
||||
"page-deleted": "Page deleted",
|
||||
"page-deletion-failed": "Page deletion failed",
|
||||
"page-update-failed": "Page update failed",
|
||||
"page-updated": "Page updated",
|
||||
"pages-update-failed": "Pages update failed",
|
||||
"pages-updated": "Pages updated",
|
||||
"404-not-found": "404 Not Found",
|
||||
"an-error-occurred": "An error occurred"
|
||||
"404-page-not-found": "404 Pagina nu a fost găsită",
|
||||
"all-recipes": "Toate rețetele",
|
||||
"new-page-created": "Pagină nouă creată",
|
||||
"page": "Pagină",
|
||||
"page-creation-failed": "Crearea paginii a eșuat",
|
||||
"page-deleted": "Pagină ștearsă",
|
||||
"page-deletion-failed": "Ștergerea paginii a eșuat",
|
||||
"page-update-failed": "Actualizarea paginii a eșuat",
|
||||
"page-updated": "Pagina a fost actualizată",
|
||||
"pages-update-failed": "Actualizarea paginilor a eșuat",
|
||||
"pages-updated": "Pagini actualizate",
|
||||
"404-not-found": "404 Pagina nu a fost gasita",
|
||||
"an-error-occurred": "A intervenit o eroare"
|
||||
},
|
||||
"recipe": {
|
||||
"add-key": "Add Key",
|
||||
"add-to-favorites": "Add to Favorites",
|
||||
"add-key": "Adăugați cheia",
|
||||
"add-to-favorites": "Adaugă la Favorite",
|
||||
"api-extras": "API Extras",
|
||||
"calories": "Calories",
|
||||
"calories-suffix": "calories",
|
||||
"carbohydrate-content": "Carbohydrate",
|
||||
"categories": "Categories",
|
||||
"comment-action": "Comment",
|
||||
"comment": "Comment",
|
||||
"calories": "Calorii",
|
||||
"calories-suffix": "calorii",
|
||||
"carbohydrate-content": "Carbohidrat",
|
||||
"categories": "Categorii",
|
||||
"comment-action": "Comentariu",
|
||||
"comment": "Comentariu",
|
||||
"comments": "Comentarii",
|
||||
"delete-confirmation": "Sunteți sigur că doriți să ștergeți această rețetă?",
|
||||
"delete-recipe": "Șterge rețeta",
|
||||
"description": "Descriere",
|
||||
"disable-amount": "Disable Ingredient Amounts",
|
||||
"disable-amount": "Dezactivați cantitățile Ingredientelor",
|
||||
"disable-comments": "Dezactivează comentariile",
|
||||
"duplicate": "Reţeta duplicată",
|
||||
"duplicate-name": "Denumirea noii rețete",
|
||||
@@ -422,7 +423,7 @@
|
||||
"grams": "grame",
|
||||
"ingredient": "Ingredient",
|
||||
"ingredients": "Ingrediente",
|
||||
"insert-ingredient": "Insert Ingredient",
|
||||
"insert-ingredient": "Inserați Ingredientul",
|
||||
"insert-section": "Adăugare secțiune",
|
||||
"instructions": "Instrucțiuni",
|
||||
"key-name-required": "Numele cheii este necesar",
|
||||
@@ -473,16 +474,16 @@
|
||||
"add-to-timeline": "Adaugă la Cronologie",
|
||||
"recipe-added-to-list": "Rețeta a fost adăugată la listă",
|
||||
"recipes-added-to-list": "Rețeta a fost adăugată în listă",
|
||||
"successfully-added-to-list": "Successfully added to list",
|
||||
"successfully-added-to-list": "Adăugat cu succes la listă",
|
||||
"recipe-added-to-mealplan": "Rețeta a fist adăugată la planul de mese",
|
||||
"failed-to-add-recipes-to-list": "Adăugarea rețetei în listă a eșuat",
|
||||
"failed-to-add-recipe-to-mealplan": "Adăugarea rețetei la planul de mese a eșuat",
|
||||
"failed-to-add-to-list": "Failed to add to list",
|
||||
"failed-to-add-to-list": "Adăugarea la listă a eșuat",
|
||||
"yield": "Producție",
|
||||
"quantity": "Cantitate",
|
||||
"choose-unit": "Alegeţi unitatea",
|
||||
"press-enter-to-create": "Press Enter to Create",
|
||||
"choose-food": "Choose Food",
|
||||
"press-enter-to-create": "Apăsați Enter pentru a crea",
|
||||
"choose-food": "Alege Mâncarea",
|
||||
"notes": "Notițe",
|
||||
"toggle-section": "Activează/dezactivează secțiunea",
|
||||
"see-original-text": "Vezi Textul Original",
|
||||
@@ -521,13 +522,13 @@
|
||||
"drop-image": "Trage imaginea",
|
||||
"enable-ingredient-amounts-to-use-this-feature": "Enable ingredient amounts to use this feature",
|
||||
"recipes-with-units-or-foods-defined-cannot-be-parsed": "Recipes with units or foods defined cannot be parsed.",
|
||||
"parse-ingredients": "Parse ingredients",
|
||||
"edit-markdown": "Edit Markdown",
|
||||
"recipe-creation": "Recipe Creation",
|
||||
"select-one-of-the-various-ways-to-create-a-recipe": "Select one of the various ways to create a recipe",
|
||||
"parse-ingredients": "Analizează ingredientele",
|
||||
"edit-markdown": "Editează Markdown",
|
||||
"recipe-creation": "Crearea rețetei",
|
||||
"select-one-of-the-various-ways-to-create-a-recipe": "Selectează una dintre diferitele modalități de a crea o rețetă",
|
||||
"looking-for-migrations": "Looking For Migrations?",
|
||||
"import-with-url": "Import with URL",
|
||||
"create-recipe": "Create Recipe",
|
||||
"import-with-url": "Import cu URL",
|
||||
"create-recipe": "Crează rețetă",
|
||||
"import-with-zip": "Import with .zip",
|
||||
"create-recipe-from-an-image": "Create recipe from an image",
|
||||
"bulk-url-import": "Bulk URL Import",
|
||||
@@ -608,13 +609,13 @@
|
||||
"restore-backup": "Restore Backup"
|
||||
},
|
||||
"backup-and-exports": "Backups",
|
||||
"change-password": "Change Password",
|
||||
"current": "Version:",
|
||||
"custom-pages": "Custom Pages",
|
||||
"edit-page": "Edit Page",
|
||||
"events": "Events",
|
||||
"first-day-of-week": "First day of the week",
|
||||
"group-settings-updated": "Group Settings Updated",
|
||||
"change-password": "Schimbă parola",
|
||||
"current": "Versiune:",
|
||||
"custom-pages": "Pagini personalizate",
|
||||
"edit-page": "Editare pagină",
|
||||
"events": "Evenimente",
|
||||
"first-day-of-week": "Prima zi a săptămânii",
|
||||
"group-settings-updated": "Setări de grup actualizate",
|
||||
"homepage": {
|
||||
"all-categories": "All Categories",
|
||||
"card-per-section": "Card Per Section",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Require All Tags",
|
||||
"require-all-tools": "Require All Tools",
|
||||
"cookbook-name": "Cookbook Name",
|
||||
"cookbook-with-name": "Cookbook {0}"
|
||||
"cookbook-with-name": "Cookbook {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Загрузить файл",
|
||||
"created-on-date": "Создано: {0}",
|
||||
"unsaved-changes": "У вас есть несохраненные изменения. Вы хотите сохранить их перед выходом?",
|
||||
"clipboard-copy-failure": "Не удалось скопировать текст."
|
||||
"clipboard-copy-failure": "Не удалось скопировать текст.",
|
||||
"confirm-delete-generic-items": "Вы уверены, что хотите удалить следующие элементы?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Вы действительно хотите удалить <b>{groupName}<b/>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Требовать все теги",
|
||||
"require-all-tools": "Требовать все инструменты",
|
||||
"cookbook-name": "Название книги рецептов",
|
||||
"cookbook-with-name": "Книга рецептов {0}"
|
||||
"cookbook-with-name": "Книга рецептов {0}",
|
||||
"create-a-cookbook": "Создать книгу рецептов",
|
||||
"cookbook": "Книга рецептов"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Nahrať súbor",
|
||||
"created-on-date": "Vytvorené: {0}",
|
||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Naozaj chcete odstrániť <b>{groupName}<b/>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Vyžadovať všetky štítky",
|
||||
"require-all-tools": "Vyžadovať všetky nástroje",
|
||||
"cookbook-name": "Názov kuchárky",
|
||||
"cookbook-with-name": "Kuchárka {0}"
|
||||
"cookbook-with-name": "Kuchárka {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Naloži datoteko",
|
||||
"created-on-date": "Created on: {0}",
|
||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Ste prepričani, da želite izbrisati <b>{groupName}<b/>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Require All Tags",
|
||||
"require-all-tools": "Require All Tools",
|
||||
"cookbook-name": "Cookbook Name",
|
||||
"cookbook-with-name": "Cookbook {0}"
|
||||
"cookbook-with-name": "Cookbook {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Учитај датотеку",
|
||||
"created-on-date": "Крерирано: {0}",
|
||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Да ли сте сигурни да желите да обришете <b>{groupName}<b/>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Захтевај све ознаке",
|
||||
"require-all-tools": "Захтева сав прибор",
|
||||
"cookbook-name": "Cookbook Name",
|
||||
"cookbook-with-name": "Кувар {0}"
|
||||
"cookbook-with-name": "Кувар {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Ladda upp fil",
|
||||
"created-on-date": "Skapad {0}",
|
||||
"unsaved-changes": "Du har osparade ändringar. Vill du spara innan du lämnar? Tryck Okej att spara, Avbryt för att ignorera ändringar.",
|
||||
"clipboard-copy-failure": "Det gick inte att kopiera till urklipp."
|
||||
"clipboard-copy-failure": "Det gick inte att kopiera till urklipp.",
|
||||
"confirm-delete-generic-items": "Är du säker på att du vill radera följande objekt?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Är du säker på att du vill radera <b>{groupName}<b/>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Kräv alla taggar",
|
||||
"require-all-tools": "Kräv alla verktyg",
|
||||
"cookbook-name": "Namn på kokbok",
|
||||
"cookbook-with-name": "Kokbok {0}"
|
||||
"cookbook-with-name": "Kokbok {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Dosya Yükle",
|
||||
"created-on-date": "{0} tarihinde oluşturuldu",
|
||||
"unsaved-changes": "Kaydedilmemiş değişiklikleriniz mevcut. Ayrılmadan önce kaydetmek ister misiniz? Kaydetmek için Tamam'ı, değişiklikleri iptal etmek için İptal'i seçin.",
|
||||
"clipboard-copy-failure": "Panoya kopyalanamadı."
|
||||
"clipboard-copy-failure": "Panoya kopyalanamadı.",
|
||||
"confirm-delete-generic-items": "Aşağıdaki öğeleri silmek istediğinizden emin misiniz?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "<b>{groupName}<b/>'i silmek istediğine emin misin?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Require All Tags",
|
||||
"require-all-tools": "Require All Tools",
|
||||
"cookbook-name": "Cookbook Name",
|
||||
"cookbook-with-name": "Cookbook {0}"
|
||||
"cookbook-with-name": "Cookbook {0}",
|
||||
"create-a-cookbook": "Yemek Kitabı Oluştur",
|
||||
"cookbook": "Yemek kitabı"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Вивантажити файл",
|
||||
"created-on-date": "Створено: {0}",
|
||||
"unsaved-changes": "У вас є незбережені зміни. Ви хочете зберегти їх перед виходом? Гаразд, щоб зберегти, Скасувати, щоб скасувати.",
|
||||
"clipboard-copy-failure": "Не вдалося скопіювати до буфера обміну."
|
||||
"clipboard-copy-failure": "Не вдалося скопіювати до буфера обміну.",
|
||||
"confirm-delete-generic-items": "Ви впевнені, що хочете видалити вибрані елементи?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Ви дійсно бажаєте видалити <b>{groupName}<b/>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Вимагати всі мітки",
|
||||
"require-all-tools": "Вимагати всі інструменти",
|
||||
"cookbook-name": "Назва кулінарної книги",
|
||||
"cookbook-with-name": "Кулінарна книга {0}"
|
||||
"cookbook-with-name": "Кулінарна книга {0}",
|
||||
"create-a-cookbook": "Створити кулінарну книгу",
|
||||
"cookbook": "Кулінарна книга"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "Upload File",
|
||||
"created-on-date": "Created on: {0}",
|
||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete <b>{groupName}<b/>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Require All Tags",
|
||||
"require-all-tools": "Require All Tools",
|
||||
"cookbook-name": "Cookbook Name",
|
||||
"cookbook-with-name": "Cookbook {0}"
|
||||
"cookbook-with-name": "Cookbook {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "上传文件",
|
||||
"created-on-date": "创建于: {0}",
|
||||
"unsaved-changes": "你有未保存的更改。你希望现在离开前保存吗?保存选择“是”,不保存选择“取消”。",
|
||||
"clipboard-copy-failure": "未能复制到剪切板。"
|
||||
"clipboard-copy-failure": "未能复制到剪切板。",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "您确定要删除<b>{groupName}<b/>吗?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "包含全部标签",
|
||||
"require-all-tools": "包含全部工具",
|
||||
"cookbook-name": "食谱名称",
|
||||
"cookbook-with-name": "{0}合集"
|
||||
"cookbook-with-name": "{0}合集",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,8 @@
|
||||
"upload-file": "上傳文件",
|
||||
"created-on-date": "Created on: {0}",
|
||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||
},
|
||||
"group": {
|
||||
"are-you-sure-you-want-to-delete-the-group": "確定要刪除<b>{groupName}<b/>?",
|
||||
@@ -1185,6 +1186,8 @@
|
||||
"require-all-tags": "Require All Tags",
|
||||
"require-all-tools": "Require All Tools",
|
||||
"cookbook-name": "食譜名",
|
||||
"cookbook-with-name": "食譜 {0}"
|
||||
"cookbook-with-name": "食譜 {0}",
|
||||
"create-a-cookbook": "Create a Cookbook",
|
||||
"cookbook": "Cookbook"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ export interface AppInfo {
|
||||
version: string;
|
||||
demoStatus: boolean;
|
||||
allowSignup: boolean;
|
||||
defaultGroupSlug?: string;
|
||||
}
|
||||
export interface AppStartupInfo {
|
||||
isFirstLogin: boolean;
|
||||
|
||||
@@ -1,73 +1,81 @@
|
||||
<template>
|
||||
<v-container class="narrow-container">
|
||||
<BasePageTitle divider>
|
||||
<template #header>
|
||||
<v-img max-height="100" max-width="100" :src="require('~/static/svgs/manage-cookbooks.svg')"></v-img>
|
||||
</template>
|
||||
<template #title> {{ $t('cookbook.cookbooks') }} </template>
|
||||
{{ $t('cookbook.description') }}
|
||||
</BasePageTitle>
|
||||
<div>
|
||||
<!-- Create Dialog -->
|
||||
<BaseDialog
|
||||
v-if="createTarget"
|
||||
v-model="dialogStates.create"
|
||||
:width="650"
|
||||
:icon="$globals.icons.pages"
|
||||
:title="$t('cookbook.create-a-cookbook')"
|
||||
:submit-icon="$globals.icons.save"
|
||||
:submit-text="$tc('general.save')"
|
||||
@submit="actions.updateOne(createTarget)"
|
||||
@cancel="actions.deleteOne(createTarget.id)"
|
||||
>
|
||||
<v-card-text>
|
||||
<CookbookEditor
|
||||
:cookbook=createTarget
|
||||
:actions="actions"
|
||||
/>
|
||||
</v-card-text>
|
||||
</BaseDialog>
|
||||
|
||||
<BaseButton create @click="actions.createOne()" />
|
||||
<v-expansion-panels class="mt-2">
|
||||
<draggable v-model="cookbooks" handle=".handle" style="width: 100%" @change="actions.updateOrder()">
|
||||
<v-expansion-panel v-for="(cookbook, index) in cookbooks" :key="index" class="my-2 left-border rounded">
|
||||
<v-expansion-panel-header disable-icon-rotate class="headline">
|
||||
<div class="d-flex align-center">
|
||||
<v-icon large left>
|
||||
{{ $globals.icons.pages }}
|
||||
</v-icon>
|
||||
{{ cookbook.name }}
|
||||
</div>
|
||||
<template #actions>
|
||||
<v-icon class="handle">
|
||||
{{ $globals.icons.arrowUpDown }}
|
||||
</v-icon>
|
||||
<v-btn icon small class="ml-2">
|
||||
<v-icon>
|
||||
{{ $globals.icons.edit }}
|
||||
<!-- Delete Dialog -->
|
||||
<BaseDialog
|
||||
v-model="dialogStates.delete"
|
||||
:title="$t('general.delete-with-name', { name: $t('cookbook.cookbook') })"
|
||||
:icon="$globals.icons.alertCircle"
|
||||
color="error"
|
||||
@confirm="deleteCookbook()"
|
||||
>
|
||||
<v-card-text>
|
||||
<p>{{ $t("general.confirm-delete-generic-with-name", { name: $t('cookbook.cookbook') }) }}</p>
|
||||
<p v-if="deleteTarget" class="mt-4 ml-4">{{ deleteTarget.name }}</p>
|
||||
</v-card-text>
|
||||
</BaseDialog>
|
||||
|
||||
<!-- Cookbook Page -->
|
||||
<!-- Page Title -->
|
||||
<v-container class="narrow-container">
|
||||
<BasePageTitle divider>
|
||||
<template #header>
|
||||
<v-img max-height="100" max-width="100" :src="require('~/static/svgs/manage-cookbooks.svg')"></v-img>
|
||||
</template>
|
||||
<template #title> {{ $t('cookbook.cookbooks') }} </template>
|
||||
{{ $t('cookbook.description') }}
|
||||
</BasePageTitle>
|
||||
|
||||
<!-- Create New -->
|
||||
<BaseButton create @click="createCookbook" />
|
||||
|
||||
<!-- Cookbook List -->
|
||||
<v-expansion-panels class="mt-2">
|
||||
<draggable v-model="cookbooks" handle=".handle" style="width: 100%" @change="actions.updateOrder()">
|
||||
<v-expansion-panel v-for="(cookbook, index) in cookbooks" :key="index" class="my-2 left-border rounded">
|
||||
<v-expansion-panel-header disable-icon-rotate class="headline">
|
||||
<div class="d-flex align-center">
|
||||
<v-icon large left>
|
||||
{{ $globals.icons.pages }}
|
||||
</v-icon>
|
||||
</v-btn>
|
||||
</template>
|
||||
</v-expansion-panel-header>
|
||||
<v-expansion-panel-content>
|
||||
<v-card-text v-if="cookbooks">
|
||||
<v-text-field v-model="cookbooks[index].name" :label="$t('cookbook.cookbook-name')"></v-text-field>
|
||||
<v-textarea v-model="cookbooks[index].description" auto-grow :rows="2" :label="$t('recipe.description')"></v-textarea>
|
||||
<RecipeOrganizerSelector v-model="cookbooks[index].categories" selector-type="categories" />
|
||||
<RecipeOrganizerSelector v-model="cookbooks[index].tags" selector-type="tags" />
|
||||
<RecipeOrganizerSelector v-model="cookbooks[index].tools" selector-type="tools" />
|
||||
<v-switch v-model="cookbooks[index].public" hide-details single-line>
|
||||
<template #label>
|
||||
{{ $t('cookbook.public-cookbook') }}
|
||||
<HelpIcon small right class="ml-2">
|
||||
{{ $t('cookbook.public-cookbook-description') }}
|
||||
</HelpIcon>
|
||||
</template>
|
||||
</v-switch>
|
||||
<div class="mt-4">
|
||||
<h3 class="text-subtitle-1 d-flex align-center mb-0 pb-0">
|
||||
{{ $t('cookbook.filter-options') }}
|
||||
<HelpIcon right small class="ml-2">
|
||||
{{ $t('cookbook.filter-options-description') }}
|
||||
</HelpIcon>
|
||||
</h3>
|
||||
<v-switch v-model="cookbooks[index].requireAllCategories" class="mt-0" hide-details single-line>
|
||||
<template #label> {{ $t('cookbook.require-all-categories') }} </template>
|
||||
</v-switch>
|
||||
<v-switch v-model="cookbooks[index].requireAllTags" hide-details single-line>
|
||||
<template #label> {{ $t('cookbook.require-all-tags') }} </template>
|
||||
</v-switch>
|
||||
<v-switch v-model="cookbooks[index].requireAllTools" hide-details single-line>
|
||||
<template #label> {{ $t('cookbook.require-all-tools') }} </template>
|
||||
</v-switch>
|
||||
{{ cookbook.name }}
|
||||
</div>
|
||||
</v-card-text>
|
||||
<v-card-actions>
|
||||
<v-spacer></v-spacer>
|
||||
<BaseButtonGroup
|
||||
:buttons="[
|
||||
{
|
||||
<template #actions>
|
||||
<v-icon class="handle">
|
||||
{{ $globals.icons.arrowUpDown }}
|
||||
</v-icon>
|
||||
<v-btn icon small class="ml-2">
|
||||
<v-icon>
|
||||
{{ $globals.icons.edit }}
|
||||
</v-icon>
|
||||
</v-btn>
|
||||
</template>
|
||||
</v-expansion-panel-header>
|
||||
<v-expansion-panel-content>
|
||||
<CookbookEditor :cookbook="cookbook" :actions="actions" :collapsable="false" @delete="deleteEventHandler" />
|
||||
<v-card-actions>
|
||||
<v-spacer></v-spacer>
|
||||
<BaseButtonGroup
|
||||
:buttons="[{
|
||||
icon: $globals.icons.delete,
|
||||
text: $tc('general.delete'),
|
||||
event: 'delete',
|
||||
@@ -78,26 +86,27 @@
|
||||
event: 'save',
|
||||
},
|
||||
]"
|
||||
@delete="actions.deleteOne(cookbook.id)"
|
||||
@save="actions.updateOne(cookbook)"
|
||||
/>
|
||||
</v-card-actions>
|
||||
</v-expansion-panel-content>
|
||||
</v-expansion-panel>
|
||||
</draggable>
|
||||
</v-expansion-panels>
|
||||
</v-container>
|
||||
@delete="deleteEventHandler(cookbook)"
|
||||
@save="actions.updateOne(cookbook)" />
|
||||
</v-card-actions>
|
||||
</v-expansion-panel-content>
|
||||
</v-expansion-panel>
|
||||
</draggable>
|
||||
</v-expansion-panels>
|
||||
</v-container>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import { defineComponent, useRouter } from "@nuxtjs/composition-api";
|
||||
import { defineComponent, reactive, ref, useRouter } from "@nuxtjs/composition-api";
|
||||
import draggable from "vuedraggable";
|
||||
import { useCookbooks } from "@/composables/use-group-cookbooks";
|
||||
import { useLoggedInState } from "~/composables/use-logged-in-state";
|
||||
import RecipeOrganizerSelector from "~/components/Domain/Recipe/RecipeOrganizerSelector.vue";
|
||||
import CookbookEditor from "~/components/Domain/Cookbook/CookbookEditor.vue";
|
||||
import { ReadCookBook } from "~/lib/api/types/cookbook";
|
||||
|
||||
export default defineComponent({
|
||||
components: { draggable, RecipeOrganizerSelector },
|
||||
components: { CookbookEditor, draggable },
|
||||
setup() {
|
||||
const { isOwnGroup, loggedIn } = useLoggedInState();
|
||||
const router = useRouter();
|
||||
@@ -106,11 +115,50 @@ export default defineComponent({
|
||||
router.back();
|
||||
}
|
||||
|
||||
const dialogStates = reactive({
|
||||
create: false,
|
||||
delete: false,
|
||||
});
|
||||
|
||||
const { cookbooks, actions } = useCookbooks();
|
||||
|
||||
|
||||
// create
|
||||
const createTarget = ref<ReadCookBook | null>(null);
|
||||
async function createCookbook() {
|
||||
await actions.createOne().then((cookbook) => {
|
||||
createTarget.value = cookbook as ReadCookBook;
|
||||
});
|
||||
dialogStates.create = true;
|
||||
}
|
||||
|
||||
// delete
|
||||
const deleteTarget = ref<ReadCookBook | null>(null);
|
||||
function deleteEventHandler(item: ReadCookBook){
|
||||
deleteTarget.value = item;
|
||||
dialogStates.delete = true;
|
||||
}
|
||||
function deleteCookbook() {
|
||||
if (!deleteTarget.value) {
|
||||
return;
|
||||
}
|
||||
actions.deleteOne(deleteTarget.value.id);
|
||||
dialogStates.delete = false;
|
||||
deleteTarget.value = null;
|
||||
}
|
||||
|
||||
return {
|
||||
cookbooks,
|
||||
actions,
|
||||
dialogStates,
|
||||
// create
|
||||
createTarget,
|
||||
createCookbook,
|
||||
|
||||
// delete
|
||||
deleteTarget,
|
||||
deleteEventHandler,
|
||||
deleteCookbook,
|
||||
};
|
||||
},
|
||||
head() {
|
||||
|
||||
@@ -49,15 +49,41 @@
|
||||
</v-card-text>
|
||||
</BaseDialog>
|
||||
|
||||
<!-- Bulk Delete Dialog -->
|
||||
<BaseDialog
|
||||
v-model="state.bulkDeleteDialog"
|
||||
width="650px"
|
||||
:title="$tc('general.confirm')"
|
||||
:icon="$globals.icons.alertCircle"
|
||||
color="error"
|
||||
@confirm="deleteSelected"
|
||||
>
|
||||
<v-card-text>
|
||||
<p class="h4">{{ $t('general.confirm-delete-generic-items') }}</p>
|
||||
<v-card outlined>
|
||||
<v-virtual-scroll height="400" item-height="25" :items="bulkDeleteTarget">
|
||||
<template #default="{ item }">
|
||||
<v-list-item class="pb-2">
|
||||
<v-list-item-content>
|
||||
<v-list-item-title>{{ item.name }}</v-list-item-title>
|
||||
</v-list-item-content>
|
||||
</v-list-item>
|
||||
</template>
|
||||
</v-virtual-scroll>
|
||||
</v-card>
|
||||
</v-card-text>
|
||||
</BaseDialog>
|
||||
|
||||
<!-- 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="[]"
|
||||
:bulk-actions="[{icon: $globals.icons.delete, text: $tc('general.delete'), event: 'delete-selected'}]"
|
||||
@delete-one="deleteEventHandler"
|
||||
@edit-one="editEventHandler"
|
||||
@delete-selected="bulkDeleteEventHandler"
|
||||
>
|
||||
<template #button-row>
|
||||
<BaseButton create @click="state.createDialog = true">{{ $t("general.create") }}</BaseButton>
|
||||
@@ -96,6 +122,7 @@ export default defineComponent({
|
||||
createDialog: false,
|
||||
editDialog: false,
|
||||
deleteDialog: false,
|
||||
bulkDeleteDialog: false,
|
||||
});
|
||||
const categoryData = useCategoryData();
|
||||
const categoryStore = useCategoryStore();
|
||||
@@ -149,6 +176,24 @@ export default defineComponent({
|
||||
state.deleteDialog = false;
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// Bulk Delete Category
|
||||
const bulkDeleteTarget = ref<RecipeCategory[]>([]);
|
||||
function bulkDeleteEventHandler(selection: RecipeCategory[]) {
|
||||
bulkDeleteTarget.value = selection;
|
||||
state.bulkDeleteDialog = true;
|
||||
}
|
||||
|
||||
async function deleteSelected() {
|
||||
for (const item of bulkDeleteTarget.value) {
|
||||
if (!item.id) {
|
||||
continue;
|
||||
}
|
||||
await categoryStore.actions.deleteOne(item.id);
|
||||
}
|
||||
bulkDeleteTarget.value = [];
|
||||
}
|
||||
|
||||
return {
|
||||
state,
|
||||
tableConfig,
|
||||
@@ -168,7 +213,12 @@ export default defineComponent({
|
||||
// delete
|
||||
deleteTarget,
|
||||
deleteEventHandler,
|
||||
deleteCategory
|
||||
deleteCategory,
|
||||
|
||||
// bulk delete
|
||||
bulkDeleteTarget,
|
||||
bulkDeleteEventHandler,
|
||||
deleteSelected,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
@@ -155,16 +155,42 @@
|
||||
</v-card-text>
|
||||
</BaseDialog>
|
||||
|
||||
<!-- Bulk Delete Dialog -->
|
||||
<BaseDialog
|
||||
v-model="bulkDeleteDialog"
|
||||
width="650px"
|
||||
:title="$tc('general.confirm')"
|
||||
:icon="$globals.icons.alertCircle"
|
||||
color="error"
|
||||
@confirm="deleteSelected"
|
||||
>
|
||||
<v-card-text>
|
||||
<p class="h4">{{ $t('general.confirm-delete-generic-items') }}</p>
|
||||
<v-card outlined>
|
||||
<v-virtual-scroll height="400" item-height="25" :items="bulkDeleteTarget">
|
||||
<template #default="{ item }">
|
||||
<v-list-item class="pb-2">
|
||||
<v-list-item-content>
|
||||
<v-list-item-title>{{ item.name }}</v-list-item-title>
|
||||
</v-list-item-content>
|
||||
</v-list-item>
|
||||
</template>
|
||||
</v-virtual-scroll>
|
||||
</v-card>
|
||||
</v-card-text>
|
||||
</BaseDialog>
|
||||
|
||||
<!-- Data Table -->
|
||||
<BaseCardSectionTitle :icon="$globals.icons.foods" section :title="$tc('data-pages.foods.food-data')"> </BaseCardSectionTitle>
|
||||
<CrudTable
|
||||
:table-config="tableConfig"
|
||||
:headers.sync="tableHeaders"
|
||||
:data="foods || []"
|
||||
:bulk-actions="[]"
|
||||
:bulk-actions="[{icon: $globals.icons.delete, text: $tc('general.delete'), event: 'delete-selected'}]"
|
||||
@delete-one="deleteEventHandler"
|
||||
@edit-one="editEventHandler"
|
||||
@create-one="createEventHandler"
|
||||
@delete-selected="bulkDeleteEventHandler"
|
||||
>
|
||||
<template #button-row>
|
||||
<BaseButton create @click="createDialog = true" />
|
||||
@@ -306,6 +332,21 @@ export default defineComponent({
|
||||
deleteDialog.value = false;
|
||||
}
|
||||
|
||||
const bulkDeleteDialog = ref(false);
|
||||
const bulkDeleteTarget = ref<IngredientFood[]>([]);
|
||||
|
||||
function bulkDeleteEventHandler(selection: IngredientFood[]) {
|
||||
bulkDeleteTarget.value = selection;
|
||||
bulkDeleteDialog.value = true;
|
||||
}
|
||||
|
||||
async function deleteSelected() {
|
||||
for (const item of bulkDeleteTarget.value) {
|
||||
await foodStore.actions.deleteOne(item.id);
|
||||
}
|
||||
bulkDeleteTarget.value = [];
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// Alias Manager
|
||||
|
||||
@@ -396,6 +437,10 @@ export default defineComponent({
|
||||
deleteDialog,
|
||||
deleteFood,
|
||||
deleteTarget,
|
||||
bulkDeleteDialog,
|
||||
bulkDeleteTarget,
|
||||
bulkDeleteEventHandler,
|
||||
deleteSelected,
|
||||
// Alias Manager
|
||||
aliasManagerDialog,
|
||||
aliasManagerEventHandler,
|
||||
|
||||
@@ -45,6 +45,31 @@
|
||||
</v-card-text>
|
||||
</BaseDialog>
|
||||
|
||||
<!-- Bulk Delete Dialog -->
|
||||
<BaseDialog
|
||||
v-model="state.bulkDeleteDialog"
|
||||
width="650px"
|
||||
:title="$tc('general.confirm')"
|
||||
:icon="$globals.icons.alertCircle"
|
||||
color="error"
|
||||
@confirm="deleteSelected"
|
||||
>
|
||||
<v-card-text>
|
||||
<p class="h4">{{ $t('general.confirm-delete-generic-items') }}</p>
|
||||
<v-card outlined>
|
||||
<v-virtual-scroll height="400" item-height="25" :items="bulkDeleteTarget">
|
||||
<template #default="{ item }">
|
||||
<v-list-item class="pb-2">
|
||||
<v-list-item-content>
|
||||
<v-list-item-title>{{ item.name }}</v-list-item-title>
|
||||
</v-list-item-content>
|
||||
</v-list-item>
|
||||
</template>
|
||||
</v-virtual-scroll>
|
||||
</v-card>
|
||||
</v-card-text>
|
||||
</BaseDialog>
|
||||
|
||||
<!-- Seed Dialog-->
|
||||
<BaseDialog
|
||||
v-model="seedDialog"
|
||||
@@ -88,9 +113,10 @@
|
||||
:table-config="tableConfig"
|
||||
:headers.sync="tableHeaders"
|
||||
:data="labels || []"
|
||||
:bulk-actions="[]"
|
||||
:bulk-actions="[{icon: $globals.icons.delete, text: $tc('general.delete'), event: 'delete-selected'}]"
|
||||
@delete-one="deleteEventHandler"
|
||||
@edit-one="editEventHandler"
|
||||
@delete-selected="bulkDeleteEventHandler"
|
||||
>
|
||||
<template #button-row>
|
||||
<BaseButton create @click="state.createDialog = true">{{ $t("general.create") }}</BaseButton>
|
||||
@@ -146,6 +172,7 @@ export default defineComponent({
|
||||
createDialog: false,
|
||||
editDialog: false,
|
||||
deleteDialog: false,
|
||||
bulkDeleteDialog: false,
|
||||
});
|
||||
|
||||
// ============================================================
|
||||
@@ -179,6 +206,21 @@ export default defineComponent({
|
||||
state.deleteDialog = false;
|
||||
}
|
||||
|
||||
// Bulk Delete
|
||||
const bulkDeleteTarget = ref<MultiPurposeLabelSummary[]>([]);
|
||||
|
||||
function bulkDeleteEventHandler(selection: MultiPurposeLabelSummary[]) {
|
||||
bulkDeleteTarget.value = selection;
|
||||
state.bulkDeleteDialog = true;
|
||||
}
|
||||
|
||||
async function deleteSelected() {
|
||||
for (const item of bulkDeleteTarget.value) {
|
||||
await labelStore.actions.deleteOne(item.id);
|
||||
}
|
||||
bulkDeleteTarget.value = [];
|
||||
}
|
||||
|
||||
// Edit
|
||||
|
||||
const editLabel = ref<MultiPurposeLabelSummary | null>(null);
|
||||
@@ -244,6 +286,9 @@ export default defineComponent({
|
||||
deleteEventHandler,
|
||||
deleteLabel,
|
||||
deleteTarget,
|
||||
bulkDeleteEventHandler,
|
||||
deleteSelected,
|
||||
bulkDeleteTarget,
|
||||
|
||||
// Seed
|
||||
seedDatabase,
|
||||
|
||||
@@ -49,15 +49,41 @@
|
||||
</v-card-text>
|
||||
</BaseDialog>
|
||||
|
||||
<!-- Bulk Delete Dialog -->
|
||||
<BaseDialog
|
||||
v-model="state.bulkDeleteDialog"
|
||||
width="650px"
|
||||
:title="$tc('general.confirm')"
|
||||
:icon="$globals.icons.alertCircle"
|
||||
color="error"
|
||||
@confirm="deleteSelected"
|
||||
>
|
||||
<v-card-text>
|
||||
<p class="h4">{{ $t('general.confirm-delete-generic-items') }}</p>
|
||||
<v-card outlined>
|
||||
<v-virtual-scroll height="400" item-height="25" :items="bulkDeleteTarget">
|
||||
<template #default="{ item }">
|
||||
<v-list-item class="pb-2">
|
||||
<v-list-item-content>
|
||||
<v-list-item-title>{{ item.name }}</v-list-item-title>
|
||||
</v-list-item-content>
|
||||
</v-list-item>
|
||||
</template>
|
||||
</v-virtual-scroll>
|
||||
</v-card>
|
||||
</v-card-text>
|
||||
</BaseDialog>
|
||||
|
||||
<!-- 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="[]"
|
||||
:bulk-actions="[{icon: $globals.icons.delete, text: $tc('general.delete'), event: 'delete-selected'}]"
|
||||
@delete-one="deleteEventHandler"
|
||||
@edit-one="editEventHandler"
|
||||
@delete-selected="bulkDeleteEventHandler"
|
||||
>
|
||||
<template #button-row>
|
||||
<BaseButton create @click="state.createDialog = true">{{ $t("general.create") }}</BaseButton>
|
||||
@@ -96,6 +122,7 @@ export default defineComponent({
|
||||
createDialog: false,
|
||||
editDialog: false,
|
||||
deleteDialog: false,
|
||||
bulkDeleteDialog: false,
|
||||
});
|
||||
|
||||
const tagData = useTagData();
|
||||
@@ -150,6 +177,24 @@ export default defineComponent({
|
||||
state.deleteDialog = false;
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// Bulk Delete Tag
|
||||
const bulkDeleteTarget = ref<RecipeTag[]>([]);
|
||||
function bulkDeleteEventHandler(selection: RecipeTag[]) {
|
||||
bulkDeleteTarget.value = selection;
|
||||
state.bulkDeleteDialog = true;
|
||||
}
|
||||
|
||||
async function deleteSelected() {
|
||||
for (const item of bulkDeleteTarget.value) {
|
||||
if (!item.id) {
|
||||
continue;
|
||||
}
|
||||
await tagStore.actions.deleteOne(item.id);
|
||||
}
|
||||
bulkDeleteTarget.value = [];
|
||||
}
|
||||
|
||||
return {
|
||||
state,
|
||||
tableConfig,
|
||||
@@ -169,7 +214,12 @@ export default defineComponent({
|
||||
// delete
|
||||
deleteTarget,
|
||||
deleteEventHandler,
|
||||
deleteTag
|
||||
deleteTag,
|
||||
|
||||
// bulk delete
|
||||
bulkDeleteTarget,
|
||||
bulkDeleteEventHandler,
|
||||
deleteSelected,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
@@ -51,15 +51,41 @@
|
||||
</v-card-text>
|
||||
</BaseDialog>
|
||||
|
||||
<!-- Bulk Delete Dialog -->
|
||||
<BaseDialog
|
||||
v-model="state.bulkDeleteDialog"
|
||||
width="650px"
|
||||
:title="$tc('general.confirm')"
|
||||
:icon="$globals.icons.alertCircle"
|
||||
color="error"
|
||||
@confirm="deleteSelected"
|
||||
>
|
||||
<v-card-text>
|
||||
<p class="h4">{{ $t('general.confirm-delete-generic-items') }}</p>
|
||||
<v-card outlined>
|
||||
<v-virtual-scroll height="400" item-height="25" :items="bulkDeleteTarget">
|
||||
<template #default="{ item }">
|
||||
<v-list-item class="pb-2">
|
||||
<v-list-item-content>
|
||||
<v-list-item-title>{{ item.name }}</v-list-item-title>
|
||||
</v-list-item-content>
|
||||
</v-list-item>
|
||||
</template>
|
||||
</v-virtual-scroll>
|
||||
</v-card>
|
||||
</v-card-text>
|
||||
</BaseDialog>
|
||||
|
||||
<!-- 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="[]"
|
||||
:bulk-actions="[{icon: $globals.icons.delete, text: $tc('general.delete'), event: 'delete-selected'}]"
|
||||
@delete-one="deleteEventHandler"
|
||||
@edit-one="editEventHandler"
|
||||
@delete-selected="bulkDeleteEventHandler"
|
||||
>
|
||||
<template #button-row>
|
||||
<BaseButton create @click="state.createDialog = true">{{ $t("general.create") }}</BaseButton>
|
||||
@@ -108,6 +134,7 @@ export default defineComponent({
|
||||
createDialog: false,
|
||||
editDialog: false,
|
||||
deleteDialog: false,
|
||||
bulkDeleteDialog: false,
|
||||
});
|
||||
|
||||
const toolData = useToolData();
|
||||
@@ -162,6 +189,22 @@ export default defineComponent({
|
||||
state.deleteDialog = false;
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// Bulk Delete Tag
|
||||
|
||||
const bulkDeleteTarget = ref<RecipeTool[]>([]);
|
||||
function bulkDeleteEventHandler(selection: RecipeTool[]) {
|
||||
bulkDeleteTarget.value = selection;
|
||||
state.bulkDeleteDialog = true;
|
||||
}
|
||||
|
||||
async function deleteSelected() {
|
||||
for (const item of bulkDeleteTarget.value) {
|
||||
await toolStore.actions.deleteOne(item.id);
|
||||
}
|
||||
bulkDeleteTarget.value = [];
|
||||
}
|
||||
|
||||
return {
|
||||
state,
|
||||
tableConfig,
|
||||
@@ -181,7 +224,12 @@ export default defineComponent({
|
||||
// delete
|
||||
deleteTarget,
|
||||
deleteEventHandler,
|
||||
deleteTool
|
||||
deleteTool,
|
||||
|
||||
// bulk delete
|
||||
bulkDeleteTarget,
|
||||
bulkDeleteEventHandler,
|
||||
deleteSelected,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
@@ -129,6 +129,31 @@
|
||||
</v-card-text>
|
||||
</BaseDialog>
|
||||
|
||||
<!-- Bulk Delete Dialog -->
|
||||
<BaseDialog
|
||||
v-model="bulkDeleteDialog"
|
||||
width="650px"
|
||||
:title="$tc('general.confirm')"
|
||||
:icon="$globals.icons.alertCircle"
|
||||
color="error"
|
||||
@confirm="deleteSelected"
|
||||
>
|
||||
<v-card-text>
|
||||
<p class="h4">{{ $t('general.confirm-delete-generic-items') }}</p>
|
||||
<v-card outlined>
|
||||
<v-virtual-scroll height="400" item-height="25" :items="bulkDeleteTarget">
|
||||
<template #default="{ item }">
|
||||
<v-list-item class="pb-2">
|
||||
<v-list-item-content>
|
||||
<v-list-item-title>{{ item.name }}</v-list-item-title>
|
||||
</v-list-item-content>
|
||||
</v-list-item>
|
||||
</template>
|
||||
</v-virtual-scroll>
|
||||
</v-card>
|
||||
</v-card-text>
|
||||
</BaseDialog>
|
||||
|
||||
<!-- Seed Dialog-->
|
||||
<BaseDialog
|
||||
v-model="seedDialog"
|
||||
@@ -172,10 +197,11 @@
|
||||
:table-config="tableConfig"
|
||||
:headers.sync="tableHeaders"
|
||||
:data="units || []"
|
||||
:bulk-actions="[]"
|
||||
:bulk-actions="[{icon: $globals.icons.delete, text: $tc('general.delete'), event: 'delete-selected'}]"
|
||||
@delete-one="deleteEventHandler"
|
||||
@edit-one="editEventHandler"
|
||||
@create-one="createEventHandler"
|
||||
@delete-selected="bulkDeleteEventHandler"
|
||||
>
|
||||
<template #button-row>
|
||||
<BaseButton create @click="createDialog = true" />
|
||||
@@ -339,6 +365,22 @@ export default defineComponent({
|
||||
deleteDialog.value = false;
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// Bulk Delete Units
|
||||
const bulkDeleteDialog = ref(false);
|
||||
const bulkDeleteTarget = ref<IngredientUnit[]>([]);
|
||||
function bulkDeleteEventHandler(selection: IngredientUnit[]) {
|
||||
bulkDeleteTarget.value = selection;
|
||||
bulkDeleteDialog.value = true;
|
||||
}
|
||||
|
||||
async function deleteSelected() {
|
||||
for (const item of bulkDeleteTarget.value) {
|
||||
await unitActions.deleteOne(item.id);
|
||||
}
|
||||
bulkDeleteTarget.value = [];
|
||||
}
|
||||
|
||||
// ============================================================
|
||||
// Alias Manager
|
||||
|
||||
@@ -423,6 +465,11 @@ export default defineComponent({
|
||||
deleteDialog,
|
||||
deleteUnit,
|
||||
deleteTarget,
|
||||
// Bulk Delete
|
||||
bulkDeleteDialog,
|
||||
bulkDeleteEventHandler,
|
||||
bulkDeleteTarget,
|
||||
deleteSelected,
|
||||
// Alias Manager
|
||||
aliasManagerDialog,
|
||||
aliasManagerEventHandler,
|
||||
|
||||
@@ -4,17 +4,28 @@
|
||||
|
||||
<script lang="ts">
|
||||
import { computed, defineComponent, useContext, useRouter } from "@nuxtjs/composition-api";
|
||||
import { AppInfo } from "~/lib/api/types/admin";
|
||||
|
||||
export default defineComponent({
|
||||
layout: "blank",
|
||||
setup() {
|
||||
const { $auth } = useContext();
|
||||
const { $auth, $axios } = useContext();
|
||||
const router = useRouter();
|
||||
const groupSlug = computed(() => $auth.user?.groupSlug);
|
||||
|
||||
async function redirectPublicUserToDefaultGroup() {
|
||||
const { data } = await $axios.get<AppInfo>("/api/app/about");
|
||||
if (data?.defaultGroupSlug) {
|
||||
router.push(`/g/${data.defaultGroupSlug}`);
|
||||
} else {
|
||||
router.push("/login");
|
||||
}
|
||||
}
|
||||
|
||||
if (groupSlug.value) {
|
||||
router.push(`/g/${groupSlug.value}`);
|
||||
} else {
|
||||
router.push("/login");
|
||||
redirectPublicUserToDefaultGroup();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} is opgedateer, {url}",
|
||||
"generic-duplicated": "{name} is gekopieer",
|
||||
"generic-deleted": "{name} is verwyder"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} تم تحديثه، {url}",
|
||||
"generic-duplicated": "تم تكرار {name}",
|
||||
"generic-deleted": "تم حذف {name}"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} беше актуализирано, {url}",
|
||||
"generic-duplicated": "{name} е дублицирано",
|
||||
"generic-deleted": "{name} беше изтрито"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "година|години",
|
||||
"day": "ден|дни",
|
||||
"hour": "час|часове",
|
||||
"minute": "минута|минути",
|
||||
"second": "секунда|секунди",
|
||||
"millisecond": "милисекунда|милисекунди",
|
||||
"microsecond": "микросекунда|микросекунди"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} ha estat actualitzat, {url}",
|
||||
"generic-duplicated": "S'ha duplicat {name}",
|
||||
"generic-deleted": "{name} ha estat eliminat"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} byl aktualizován, {url}",
|
||||
"generic-duplicated": "{name} byl duplikován",
|
||||
"generic-deleted": "{name} byl odstraněn"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} er blevet opdateret, {url}",
|
||||
"generic-duplicated": "{name} er blevet dublikeret",
|
||||
"generic-deleted": "{name} er blevet slettet"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} wurde aktualisiert, {url}",
|
||||
"generic-duplicated": "{name} wurde dupliziert",
|
||||
"generic-deleted": "{name} wurde gelöscht"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} has been updated, {url}",
|
||||
"generic-duplicated": "{name} has been duplicated",
|
||||
"generic-deleted": "{name} has been deleted"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} has been updated, {url}",
|
||||
"generic-duplicated": "{name} has been duplicated",
|
||||
"generic-deleted": "{name} has been deleted"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} has been updated, {url}",
|
||||
"generic-duplicated": "{name} has been duplicated",
|
||||
"generic-deleted": "{name} has been deleted"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "Se ha actualizado {name}, {url}",
|
||||
"generic-duplicated": "Se ha duplicado {name}",
|
||||
"generic-deleted": "Se ha eliminado {name}"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} on päivitetty, {url}",
|
||||
"generic-duplicated": "{name} on kahdennettu",
|
||||
"generic-deleted": "{name} on poistettu"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} a été mis à jour, {url}",
|
||||
"generic-duplicated": "{name} a été dupliqué",
|
||||
"generic-deleted": "{name} a été supprimé"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} a été mis à jour, {url}",
|
||||
"generic-duplicated": "{name} a été dupliqué",
|
||||
"generic-deleted": "{name} a été supprimé"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} has been updated, {url}",
|
||||
"generic-duplicated": "{name} has been duplicated",
|
||||
"generic-deleted": "{name} has been deleted"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} עודכן, {url}",
|
||||
"generic-duplicated": "{name} שוכפל",
|
||||
"generic-deleted": "{name} נמחק"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} je ažuriran, {url}",
|
||||
"generic-duplicated": "{name} je dupliciran",
|
||||
"generic-deleted": "{name} je obrisan"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} frissítve, {url}",
|
||||
"generic-duplicated": "{name} duplikálva",
|
||||
"generic-deleted": "{name} törölve lett"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "év|év",
|
||||
"day": "nap/nap",
|
||||
"hour": "óra|óra",
|
||||
"minute": "perc/perc",
|
||||
"second": "másodperc|másodperc",
|
||||
"millisecond": "ezredmásodperc|ezredmásodperc",
|
||||
"microsecond": "mikroszekundum|mikroszekundum"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} has been updated, {url}",
|
||||
"generic-duplicated": "{name} has been duplicated",
|
||||
"generic-deleted": "{name} has been deleted"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} è stato aggiornato, {url}",
|
||||
"generic-duplicated": "{name} è stato duplicato",
|
||||
"generic-deleted": "{name} è stato eliminato"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "anno|anni",
|
||||
"day": "giorno|giorni",
|
||||
"hour": "ora|ore",
|
||||
"minute": "minuto|minuti",
|
||||
"second": "secondo|secondi",
|
||||
"millisecond": "millisecondo|millisecondi",
|
||||
"microsecond": "microsecondo|microsecondi"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} has been updated, {url}",
|
||||
"generic-duplicated": "{name} has been duplicated",
|
||||
"generic-deleted": "{name} has been deleted"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} has been updated, {url}",
|
||||
"generic-duplicated": "{name} has been duplicated",
|
||||
"generic-deleted": "{name} has been deleted"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} atnaujintas, {url}",
|
||||
"generic-duplicated": "{name} buvo nukopijuotas",
|
||||
"generic-deleted": "{name} ištrintas"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} has been updated, {url}",
|
||||
"generic-duplicated": "{name} has been duplicated",
|
||||
"generic-deleted": "{name} has been deleted"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"user-updated": "Gebruiker bijgewerkt",
|
||||
"password-updated": "Wachtwoord bijgewerkt",
|
||||
"invalid-current-password": "Ongeldig huidig wachtwoord",
|
||||
"ldap-update-password-unavailable": "Kan het wachtwoord niet bijwerken. De gebruiker wordt beheerd door LDAP."
|
||||
"ldap-update-password-unavailable": "Kan het wachtwoord niet bijwerken, de gebruiker wordt beheerd door LDAP"
|
||||
},
|
||||
"group": {
|
||||
"report-deleted": "Rapport verwijderd."
|
||||
@@ -20,7 +20,7 @@
|
||||
"exceptions": {
|
||||
"permission_denied": "Je hebt geen toestemming om deze actie uit te voeren",
|
||||
"no-entry-found": "Het opgevraagde is niet gevonden",
|
||||
"integrity-error": "Integriteitsprobleem voor database",
|
||||
"integrity-error": "Database integriteitsfout",
|
||||
"username-conflict-error": "Deze gebruikersnaam is al in gebruik",
|
||||
"email-conflict-error": "Dit e-mailadres is al in gebruik"
|
||||
},
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} is bijgewerkt, {url}",
|
||||
"generic-duplicated": "(naam) is gekopieerd",
|
||||
"generic-deleted": "{name} is verwijderd"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "jaar|jaren",
|
||||
"day": "dag|dagen",
|
||||
"hour": "uur|uren",
|
||||
"minute": "minuut|minuten",
|
||||
"second": "seconde|seconden",
|
||||
"millisecond": "milliseconde milliseconden",
|
||||
"microsecond": "microseconde microseconden"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} har blitt oppdatert, {url}",
|
||||
"generic-duplicated": "{name} har blitt duplisert",
|
||||
"generic-deleted": "{name} har blitt slettet"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} został zaktualizowany. {url}",
|
||||
"generic-duplicated": "{name} został zduplikowany",
|
||||
"generic-deleted": "{name} został usunięty"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} foi atualizado, {url}",
|
||||
"generic-duplicated": "{name} foi duplicada",
|
||||
"generic-deleted": "{name} foi excluído"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} foi atualizado, {url}",
|
||||
"generic-duplicated": "{name} foi duplicado",
|
||||
"generic-deleted": "{name} foi removido"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "ano|anos",
|
||||
"day": "dia|dias",
|
||||
"hour": "hora|horas",
|
||||
"minute": "minuto|minutos",
|
||||
"second": "segundo|segundos",
|
||||
"millisecond": "milissegundo|milissegundos",
|
||||
"microsecond": "microssegundo|microssegundos"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} a fost actualizat, {url}",
|
||||
"generic-duplicated": "{name} a fost duplicat",
|
||||
"generic-deleted": "{name} a fost șters"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} был обновлен, {url}",
|
||||
"generic-duplicated": "Копия {name} была создана",
|
||||
"generic-deleted": "{name} был удален"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} bol aktualizovaný, {url}",
|
||||
"generic-duplicated": "{name} bol duplikovaný",
|
||||
"generic-deleted": "{name} bol vymazaný"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} je bil posodobljen, {url}",
|
||||
"generic-duplicated": "{name} je bilo podvojeno",
|
||||
"generic-deleted": "{name} je bil izbrisan"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} је ажурирано, {url}",
|
||||
"generic-duplicated": "{name} је дуплиран",
|
||||
"generic-deleted": "{name} је обрисан"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} har uppdaterats, {url}",
|
||||
"generic-duplicated": "{name} har duplicerats",
|
||||
"generic-deleted": "{name} har tagits bort"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} güncellendi, {url}",
|
||||
"generic-duplicated": "{name} yinelendi",
|
||||
"generic-deleted": "{name} silindi"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} оновлено, {url}",
|
||||
"generic-duplicated": "{name} дубльовано",
|
||||
"generic-deleted": "{name} видалено"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} has been updated, {url}",
|
||||
"generic-duplicated": "{name} has been duplicated",
|
||||
"generic-deleted": "{name} has been deleted"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} 已创建, {url}",
|
||||
"generic-duplicated": "{name} 已复制",
|
||||
"generic-deleted": "{name} 已删除"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,5 +31,14 @@
|
||||
"generic-updated-with-url": "{name} has been updated, {url}",
|
||||
"generic-duplicated": "{name} has been duplicated",
|
||||
"generic-deleted": "{name} has been deleted"
|
||||
},
|
||||
"datetime": {
|
||||
"year": "year|years",
|
||||
"day": "day|days",
|
||||
"hour": "hour|hours",
|
||||
"minute": "minute|minutes",
|
||||
"second": "second|seconds",
|
||||
"millisecond": "millisecond|milliseconds",
|
||||
"microsecond": "microsecond|microseconds"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import json
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
from typing import cast
|
||||
|
||||
|
||||
@dataclass(slots=True)
|
||||
@@ -13,6 +14,22 @@ class JsonProvider:
|
||||
else:
|
||||
self.translations = path
|
||||
|
||||
def _parse_plurals(self, value: str, count: float):
|
||||
# based off of: https://kazupon.github.io/vue-i18n/guide/pluralization.html
|
||||
|
||||
values = [v.strip() for v in value.split("|")]
|
||||
if len(values) == 1:
|
||||
return value
|
||||
elif len(values) == 2:
|
||||
return values[0] if count == 1 else values[1]
|
||||
elif len(values) == 3:
|
||||
if count == 0:
|
||||
return values[0]
|
||||
else:
|
||||
return values[1] if count == 1 else values[2]
|
||||
else:
|
||||
return values[0]
|
||||
|
||||
def t(self, key: str, default=None, **kwargs) -> str:
|
||||
keys = key.split(".")
|
||||
|
||||
@@ -30,9 +47,12 @@ class JsonProvider:
|
||||
|
||||
if i == last:
|
||||
for key, value in kwargs.items():
|
||||
if not value:
|
||||
translation_value = cast(str, translation_value)
|
||||
if value is None:
|
||||
value = ""
|
||||
translation_value = translation_value.replace("{" + key + "}", value)
|
||||
return translation_value
|
||||
if key == "count":
|
||||
translation_value = self._parse_plurals(translation_value, float(value))
|
||||
translation_value = translation_value.replace("{" + key + "}", str(value)) # type: ignore
|
||||
return translation_value # type: ignore
|
||||
|
||||
return default or key
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
"cayenne-pepper": "kırmızı biber",
|
||||
"celeriac": "kereviz",
|
||||
"celery": "kereviz",
|
||||
"cereal-grains": "cereal grains",
|
||||
"cereal-grains": "tam taneli tahıl",
|
||||
"rice": "pirinç",
|
||||
"chard": "pazı",
|
||||
"cheese": "peynir",
|
||||
@@ -63,33 +63,33 @@
|
||||
"coriander": "kişniş",
|
||||
"corn": "mısır",
|
||||
"corn-syrup": "mısır şurubu",
|
||||
"cottonseed-oil": "cottonseed oil",
|
||||
"cottonseed-oil": "pamuk yağı",
|
||||
"courgette": "dolmalık kabak",
|
||||
"cream-of-tartar": "cream of tartar",
|
||||
"cream-of-tartar": "krem tartar",
|
||||
"cucumber": "salatalık",
|
||||
"cumin": "kimyon",
|
||||
"daikon": "beyaz turp",
|
||||
"dairy-products-and-dairy-substitutes": "süt ürünleri ve süt yerine geçen ürünler",
|
||||
"eggs": "yumurta",
|
||||
"ghee": "ghee",
|
||||
"ghee": "saf yağ",
|
||||
"milk": "süt",
|
||||
"dandelion": "dandelion",
|
||||
"demerara-sugar": "demerara sugar",
|
||||
"dandelion": "karahindiba",
|
||||
"demerara-sugar": "esmer şeker",
|
||||
"dough": "hamur",
|
||||
"edible-cactus": "edible cactus",
|
||||
"edible-cactus": "yenilebilir kaktüs",
|
||||
"eggplant": "patlıcan",
|
||||
"endive": "hindiba",
|
||||
"fats": "yağlar",
|
||||
"speck": "speck",
|
||||
"fava-beans": "fava beans",
|
||||
"fiddlehead": "fiddlehead",
|
||||
"fava-beans": "fava fasulyesi",
|
||||
"fiddlehead": "eğrelti otu filizi",
|
||||
"fish": "balık",
|
||||
"catfish": "kedibalığı ",
|
||||
"cod": "cod",
|
||||
"salt-cod": "salt cod",
|
||||
"cod": "morina",
|
||||
"salt-cod": "tuzlu morina",
|
||||
"salmon": "somon",
|
||||
"skate": "skate",
|
||||
"stockfish": "stockfish",
|
||||
"skate": "çemçe balığı",
|
||||
"stockfish": "kurutulmuş balık",
|
||||
"trout": "alabalık",
|
||||
"tuna": "ton balığı",
|
||||
"five-spice-powder": "beşli baharat",
|
||||
@@ -101,7 +101,7 @@
|
||||
"oranges": "portakal",
|
||||
"pear": "armut",
|
||||
"tomato": "domates ",
|
||||
"fruit-sugar": "fruit sugar",
|
||||
"fruit-sugar": "meyve şekeri",
|
||||
"garam-masala": "garam masala",
|
||||
"garlic": "sarımsak",
|
||||
"gem-squash": "gem squash",
|
||||
@@ -125,10 +125,10 @@
|
||||
"jaggery": "jaggery",
|
||||
"jams": "reçel",
|
||||
"jellies": "jellies",
|
||||
"jerusalem-artichoke": "jerusalem artichoke",
|
||||
"jicama": "jicama",
|
||||
"jerusalem-artichoke": "yerelması",
|
||||
"jicama": "meksika turpu",
|
||||
"kale": "kale",
|
||||
"kumara": "kumara",
|
||||
"kumara": "tatlı patates",
|
||||
"leavening-agents": "leavening agents",
|
||||
"leek": "leek",
|
||||
"legumes": "baklagiller ",
|
||||
@@ -142,14 +142,14 @@
|
||||
"meat": "et",
|
||||
"mortadella": "mortadella",
|
||||
"mushroom": "mantar",
|
||||
"white-mushroom": "white mushroom",
|
||||
"mussels": "mussels",
|
||||
"white-mushroom": "beyaz mantar",
|
||||
"mussels": "midye",
|
||||
"nori": "nori",
|
||||
"nutmeg": "nutmeg",
|
||||
"nutmeg": "muskat",
|
||||
"nutritional-yeast-flakes": "nutritional yeast flakes",
|
||||
"nuts": "nuts",
|
||||
"nanaimo-bar-mix": "nanaimo bar mix",
|
||||
"octopuses": "octopuses",
|
||||
"octopuses": "ahtapotlar",
|
||||
"oils": "yağ",
|
||||
"olive-oil": "zeytin yağı",
|
||||
"okra": "bamya",
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user