diff --git a/assets/i18n/ar.json b/assets/i18n/ar.json new file mode 100644 index 00000000..fd30d0aa --- /dev/null +++ b/assets/i18n/ar.json @@ -0,0 +1,215 @@ +{ + "app_bar": { + "logout": "تسجيل الخروج", + "clear_all": "محو الكل" + }, + "alert": { + "discard": "تجاهل", + "clear": "محو" + }, + "form": { + "validators": { + "invalid_number": "ليس رقماً صحيحاً", + "required": "لازمٌ" + } + }, + "login": { + "title": "الدخول", + "server_url": { + "field": "عنوان URL للخادوم", + "validator": { + "empty": "يُرجى إدخال عنوان URL لخادوم نكست كلاود خاصّتك.", + "pattern": "يُرجي إدخال عنوان URL صحيح" + } + }, + "username": { + "field": "اسم المستخدم" + }, + "password": { + "field": "كلمة السر" + }, + "settings": { + "title": "الإعدادات المتقدمة", + "app_password": "استخدم كلمة مرور التطبيق المُولّدى ذاتيًا. \nمطلوبة للحسابات في حالة التحقُّق المُثَنّى من الهُوِيّة \"2FA\"", + "self_signed_certificate": "تجاهل الشهادة غير الصالحة. \nمطلوبة للحصول على شهادات موقعة ذاتياً. \n(استخدمها على مسؤوليتك الخاصة!)" + }, + "button": "الدخول", + "retry": "معاودة الدخول", + "reset": "إعادة تعيين حيثيّات الدخول credentials", + "errors": { + "not_reachable": "لا يمكن الوصول إلى: {server_url} \n{error_msg}", + "certificate_failed": "تعذر التحقق من شهادة الخادوم: {server_url}\n {error_msg}", + "request_failed": "فشل طلب كلمة مرور التطبيق:\n {error_msg}", + "parse_failed": "لا يمكن تحليل استجابة كلمة مرور التطبيق! \n{error_msg}", + "parse_missing": "لا يمكن العثور على كلمة مرور التطبيق في الرد! {error_msg}", + "auth_failed": "اسم المستخدم و/ أو كلمة المرور غير صحيحة!", + "authentication_not_found": "لم يُمكن العثور على مصادقة في وحدة التخزين", + "failed_remove_remote": "فشل حذف كلمة مرور التطبيق القصِي remote!", + "failure": "تعذر إنهاء عملية تسجيل الدخول بشكل صحيح.\n {status_code}\n {status_message}", + "credentials_invalid": "حيثيات الدخول credentials المخزنة لم تعد صالحة وقد تم تسجيل خروجك!", + "no_internet": "لم تكن المصادقة ناجحة. ربما لا يوجد اتصال بالإنترنت؟ رسالة خطأ: {error_msg}", + "wrong_status": "لم تكن المصادقة ناجحة. ربما لم يكن مضيف الخادوم المقدم صحيحًا؟ رسالة الخطأ: {error_msg}" + } + }, + "categories": { + "title": "كتاب الطهو Cookbook", + "all_categories": "الكل", + "uncategorized": "غير مُصنّفة", + "items": { + "0": "لا توجد أي عناصر", + "1": "1 عنصر", + "else": "{{value}} عنصر" + }, + "drawer": { + "import": "استيراد وصفة ", + "settings": "الإعدادات" + }, + "errors": { + "unknown": "التصنيفات في حالة غير معروفة", + "load_failed": "فشل تحميل الفئة: {error_msg}", + "load_no_response": "تعذّر استرداد التصنيفات من الخادوم.", + "api_version_check_failed": "فشل التحقُّق من إصدار API للخادوم: \n{error_msg}", + "api_version_above_confirmed": "تمّ تحديث إصدار API للخادوم. قد لا تعمل بعض الميزات كما هو متوقع. من فضلك انتظر التحديث!\n {version}", + "plugin_missing": "لا يمكن تحميل التصنيفات. تأكد من تنصيب المكون الإضافي Cookbook plugin على خادوم نكست كلاود هذا!" + } + }, + "recipe_list": { + "title_category": "الفئة: {category}", + "errors": { + "load_failed": "فشل تحميل الوصفات!" + } + }, + "recipe": { + "title": "الوصفة:", + "prep": "وقت التحضير", + "cook": "وقت الطهو", + "total": "الوقت الكُلِّي", + "fields": { + "name": "اسم الوصفة", + "description": "وصف الوصفة", + "keywords": "الكلمات المفتاحية", + "category": "التصنيف", + "servings": { + "1": "عدد حصص الوصفة أي الأشخاص", + "else": "عدد حصص الوصفة" + }, + "source": "المصدر", + "source_button": "المصدر", + "image": "صورة", + "time": { + "prep": "زمن التحضير", + "cook": "زمن الطهي", + "total": "الزمن الكُلِّي", + "hours": "ساعات", + "minutes": "دقائق" + }, + "nutrition": { + "title": "المعلومات الغذائية", + "items": { + "calories": "الطاقة", + "carbohydrateContent": "الكربوهيدرات", + "cholesterolContent": "الكوليسترول", + "fatContent": "إجمالي الدهون", + "fiberContent": "الألياف", + "proteinContent": "البروتين", + "saturatedFatContent": "الدهون المشبعة", + "servingSize": "حجم حصة التقديم لكل شخصٍ", + "sodiumContent": "الصوديوم", + "sugarContent": "السكر", + "transFatContent": "محتوى الدهون المتحولة", + "unsaturatedFatContent": "محتوى الدهون غير المشبعة" + } + }, + "general": "العامة", + "times": "الأوقات", + "tools": "الأدوات", + "ingredients": "المُكوِّنات و المَقَادِير", + "instructions": "التعليمات" + }, + "errors": { + "load_failed": "فشل تحميل الوصفة!" + } + }, + "recipe_edit": { + "title": "تعديل الوصفة", + "button": "حفظ", + "errors": { + "update_failed": "فشل التحديث {error_msg}" + }, + "delete": { + "title": "حذف الوصفة ", + "dialog": "هل أنت متأكد من أنك تريد حذف {recipe} نهائيًا؟" + } + }, + "recipe_create": { + "title": "إنشاء وصفة", + "button": "إنشاء", + "add_field": "إضافة", + "remove_field": "حذف", + "errors": { + "update_failed": "فشل الإنشاء {error_msg}" + } + }, + "recipe_form": { + "dismiss_edit": { + "title": "إلغاء التعديل", + "dialog": "هل أنت متأكد أنك تريد تجاهل التغييرات التي أجريتها على {recipe}؟" + }, + "dismiss_create": { + "title": "إلغاء الإنشاء", + "dialog": "هل أنت متأكد أنك تريد تجاهل الإنشاء؟" + } + }, + "recipe_import": { + "title": "إستيراد وصفة ", + "button": "إستيراد", + "field": "عنوان URL للوصفة", + "errors": { + "import_failed": "فشل الاستيراد {error_msg}" + } + }, + "search": { + "title": "بحث في الوصفات", + "description": "ابحث عن وصفات بالاسم أو الكلمة الدلالية", + "nothing_found": "لم يتم العثور على وصفة!", + "errors": { + "search_failed": "تعذر تحميل كافة الوصفات! {error_msg}" + } + }, + "timer": { + "title": "مُؤقِّتَاتُك", + "started": "بَدَأَ المُؤَقِّت", + "finished": "إنتهي", + "button": { + "start": "وقت البداية", + "cancel": "إلغِ المُؤَقِّت" + }, + "done": "إنتهى المُؤَقِّت", + "missing": "يجب أن تقوم بتعيين وقت الطهو ليمكنك استعمال المُؤَقِّت", + "empty_list": "مُؤَقِّتَاتك ستظهر هنا عندما تعمل," + }, + "settings": { + "title": "إعدادات التطبيق", + "dark_mode": { + "title": "الوضع الداكن", + "system": "افتراضات النظام", + "dark": "دائماً", + "light": "مُطلَقاً" + }, + "language": { + "title": "اللغة" + }, + "stay_awake": { + "title": "إبقَ يَقِظاً", + "subtitle": "ستظل الشاشة قيد التشغيل طوال مدة عرض شاشة الوصفة." + }, + "recipe_font_size": { + "title": "حجم خط الوصفة", + "subtitle": "أدوات تغيير حجم خط الوصفات والمكونات والتعليمات لتسهيل القراءة." + }, + "category_font_size": { + "title": "حجم خط التصنيفات", + "subtitle": "تغيير حجم خط عنوان التصنيفات. يمكن أن يكون هذا مفيدًا إذا كان لديك أسماء تصنيفات طويلة." + } + } +} \ No newline at end of file diff --git a/assets/i18n/bg_BG.json b/assets/i18n/bg_BG.json index ea6ae655..be589ffe 100644 --- a/assets/i18n/bg_BG.json +++ b/assets/i18n/bg_BG.json @@ -1,10 +1,18 @@ { "app_bar": { - "search": "Търсене", - "refresh": "Опресняване", "logout": "Отписване", "clear_all": "Изтриване на всички" }, + "alert": { + "discard": "Отхвърляне", + "clear": "Изчистване" + }, + "form": { + "validators": { + "invalid_number": "не е валиден номер", + "required": "необходимо" + } + }, "login": { "title": "Вписване", "server_url": { @@ -46,6 +54,12 @@ "categories": { "title": "Готварска книга", "all_categories": "Всички", + "uncategorized": "Некатегоризирани", + "items": { + "0": "няма елементи", + "1": "1 елемент", + "else": "{{value}} елемента" + }, "drawer": { "import": " Импортиране на рецепта", "settings": "Настройки" @@ -71,18 +85,21 @@ "cook": "Време за готвене", "total": "Общо време", "fields": { - "name": "Име на рецепта:", - "description": "Описание на рецепта:", - "keywords": "Ключови думи:", - "category": "Категория:", - "servings": "Порции:", - "source": "Източник:", + "name": "Име на Рецепта", + "description": "Описание на Рецепта", + "keywords": "Ключови думи", + "category": "Категория", + "servings": { + "1": "Сервиране", + "else": "Порции" + }, + "source": "Източник", "source_button": "Източник", - "image": "Изображение:", + "image": "Изображение", "time": { - "prep": "Време за подготовка:", - "cook": "Време за готвене:", - "total": "Общо време:", + "prep": "Време за подготовка", + "cook": "Време за готвене", + "total": "Общо време", "hours": "Часове", "minutes": "Минути " }, @@ -103,9 +120,11 @@ "unsaturatedFatContent": "Съдържание на ненаситени мазнини" } }, - "tools": "Инструменти:", - "ingredients": "Съставки:", - "instructions": "Инструкции:" + "general": "Общи", + "times": "Пъти", + "tools": "Инструменти", + "ingredients": "Съставки", + "instructions": "Инструкции" }, "errors": { "load_failed": "Неуспешно зареждане на Рецепта!" @@ -116,26 +135,42 @@ "button": "Запиши", "errors": { "update_failed": "Актуализацията не беше успешна {error_msg}" + }, + "delete": { + "title": "Изтриване на Рецепта", + "dialog": "Сигурни ли сте, че искате да изтриете окончателно {recipe}?" } }, "recipe_create": { "title": "Създаване на Рецепта", "button": "Създаване", + "add_field": "добавяне", + "remove_field": "премахване", "errors": { "update_failed": "Създаването не беше успешно {error_msg}" } }, + "recipe_form": { + "dismiss_edit": { + "title": "Отказ на редактиране", + "dialog": "Сигурни ли сте, че искате да отхвърлите промените в {recipe}?" + }, + "dismiss_create": { + "title": "Отказ от създаване", + "dialog": "Сигурни ли сте, че искате да отхвърлите създаването?" + } + }, "recipe_import": { "title": " Импортиране на Рецепта", "button": "Импортиране", "field": "URL адрес към рецепта", - "clipboard": "Поставяне в клипборда", "errors": { "import_failed": "Импортирането не беше успешно {error_msg}" } }, "search": { "title": "Търсене на Рецепта", + "description": "Търсене на рецепти по име или ключова дума", "nothing_found": "Няма намерена рецепта", "errors": { "search_failed": "Невъзможно е да се заредят всички Рецепти!\n{error_msg}" @@ -145,8 +180,13 @@ "title": "Вашите таймери", "started": "Таймерът стартира.", "finished": " е завършен.", + "button": { + "start": "стартиране на таймер", + "cancel": "отказване на таймер" + }, "done": "Таймерът е готов.", - "missing": "Трябва да зададете времето за готвене, за да използвате таймер." + "missing": "Трябва да зададете времето за готвене, за да използвате таймер.", + "empty_list": "Вашите текущи таймери ще бъдат показвани тук." }, "settings": { "title": "Настройки на приложението", @@ -172,4 +212,4 @@ "subtitle": "Променя размера на шрифта на заглавието на категорията. Това може да бъде полезно, ако имате дълги имена на категории." } } -} +} \ No newline at end of file diff --git a/assets/i18n/cs_CZ.json b/assets/i18n/cs_CZ.json index 211dc372..f65c537e 100644 --- a/assets/i18n/cs_CZ.json +++ b/assets/i18n/cs_CZ.json @@ -1,10 +1,18 @@ { "app_bar": { - "search": "Hledat", - "refresh": "Načíst znovu", "logout": "Odhlásit", "clear_all": "Vyčistit vše" }, + "alert": { + "discard": "Zahodit", + "clear": "Vyčistit" + }, + "form": { + "validators": { + "invalid_number": "není platné číslo", + "required": "vyžadováno" + } + }, "login": { "title": "Přihlásit", "server_url": { @@ -39,24 +47,30 @@ "failed_remove_remote": "Nepovedlo se odstranit heslo pro externí aplikaci!", "failure": "Proces přihlašování se nepodařilo dokončit.\n{status_code}\n{status_message}", "credentials_invalid": "Uložené přihlašovací údaje už nebyly platné a proto jste byli odhlášeni!", - "no_internet": "Kontrola ověření se nebyla úspěšná.\nMožná není k dispozici připojení k Internetu?\nHlášení chyby: {error_msg}", - "wrong_status": "Kontrola ověření se nebyla úspěšná.\nMožná není správně zadaný hostitelský server?\nHlášení chyby: {error_msg}" + "no_internet": "Ověření se nebylo úspěšné.\nMožná není k dispozici připojení k Internetu?\nHlášení chyby: {error_msg}", + "wrong_status": "Ověření se nebylo úspěšné.\nMožná není správně zadaný hostitelský server?\nHlášení chyby: {error_msg}" } }, "categories": { "title": "Kuchařka", "all_categories": "Všechno", + "uncategorized": "Nezařazeno", + "items": { + "0": "žádné položky", + "1": "1 položka", + "else": "{{value}} položek" + }, "drawer": { - "import": "Importovat recept", + "import": "Naimportovat recept", "settings": "Nastavení" }, "errors": { "unknown": "Kategorie v neznámém stavu", "load_failed": "Načítání kategorie se nezdařilo: {error_msg}", "load_no_response": "Nepodařilo se získat kategorie ze serveru.", - "api_version_check_failed": "Nepovedlo se zjistit verzi API rozhraní serveru:\n{error_msg}", + "api_version_check_failed": "Nepodařilo se zjistit verzi API rozhraní serveru:\n{error_msg}", "api_version_above_confirmed": "Verze aplikačního program. rozhraní (API) serveru byla aktualizována. Některé funkce nemusí fungovat, tak jak se očekává. Počkejte prosím na aktualizaci aplikace!\n{version}", - "plugin_missing": "Kategorie se nepodařilo načíst. Ověřte, že je na této instanci Nextcloud nainstalován zásuvný modul kuchařka!" + "plugin_missing": "Kategorie se nepodařilo načíst. Ověřte, že je na této instanci Nextcloud nainstalován doplněk Kuchařka!" } }, "recipe_list": { @@ -68,21 +82,24 @@ "recipe": { "title": "Recept:", "prep": "Doba přípravy", - "cook": "Doba vaření", + "cook": "Doba tepelné úpravy", "total": "Celková doba", "fields": { - "name": "Název receptu:", - "description": "Popis receptu:", - "keywords": "Klíčová slova:", - "category": "Kategorie:", - "servings": "Porcí:", - "source": "Zdroj:", + "name": "Název receptu", + "description": "Popis receptu", + "keywords": "Klíčová slova", + "category": "Kategorie", + "servings": { + "1": "Porce", + "else": "Porce" + }, + "source": "Zdroj", "source_button": "Zdroj", - "image": "Obrázek:", + "image": "Obrázek", "time": { - "prep": "Doba přípravy:", - "cook": "Doba vaření:", - "total": "Celková doba:", + "prep": "Doba příprav", + "cook": "Doba tepelné úpravy", + "total": "Celková doba", "hours": "Hodin", "minutes": "Minut" }, @@ -103,12 +120,14 @@ "unsaturatedFatContent": "Obsah nenasycených tuků" } }, - "tools": "Vybavení:", - "ingredients": "Přísady:", - "instructions": "Postup:" + "general": "Obecné", + "times": "Časy", + "tools": "Nástroje", + "ingredients": "Přísady", + "instructions": "Pokyny" }, "errors": { - "load_failed": "Recept se nepovedlo načíst!" + "load_failed": "Recept se nepodařilo načíst!" } }, "recipe_edit": { @@ -116,26 +135,42 @@ "button": "Uložit", "errors": { "update_failed": "Aktualizace se nezdařila: {error_msg}" + }, + "delete": { + "title": "Smazat recept", + "dialog": "Opravdu chcete recept {recipe} nenávratně smazat?" } }, "recipe_create": { "title": "Vytvořit recept", "button": "Vytvořit", + "add_field": "přidat", + "remove_field": "odebrat", "errors": { "update_failed": "Vytvoření se nezdařilo {error_msg}" } }, + "recipe_form": { + "dismiss_edit": { + "title": "Zrušit úpravu", + "dialog": "Opravdu chcete vámi provedené změny v {recipe} zahodit?" + }, + "dismiss_create": { + "title": "Zrušit vytvoření", + "dialog": "Opravdu chcete výtvor zahodit?" + } + }, "recipe_import": { - "title": "Importovat recept", - "button": "Importovat", + "title": "Naimportovat recept", + "button": "Naimportovat", "field": "URL adresa receptu", - "clipboard": "Vložit obsah schránky", "errors": { "import_failed": "Import se nezdařil {error_msg}" } }, "search": { "title": "Hledat recept", + "description": "Vyhledat recepty podle názvu nebo klíčového slova", "nothing_found": "Nenalezen žádný recept!", "errors": { "search_failed": "Nedaří se načíst veškeré recepty!\n{error_msg}" @@ -145,8 +180,13 @@ "title": "Vaše minutky", "started": "Minutka spuštěna.", "finished": "je dokončeno.", + "button": { + "start": "spustit časovač", + "cancel": "zrušit časovač" + }, "done": "Minutka zvonila.", - "missing": "Pokud chcete použít časovač, je třeba nastavit dobu vaření." + "missing": "Pokud chcete použít časovač, je třeba nastavit dobu tepelné úpravy.", + "empty_list": "Vaše spuštěné časovače budou zobrazovány zde." }, "settings": { "title": "Nastavení aplikace", @@ -161,15 +201,15 @@ }, "stay_awake": { "title": "Nezhasínat", - "subtitle": "Při zobrazování receptu se obrazovka nevypne." + "subtitle": "Aby vám obrazovka s receptem nepotemněla, udržovat ji zapnutou." }, "recipe_font_size": { "title": "Velikost písma receptů", - "subtitle": "Změní velikost písma vybavení, přísad a pokynů pro recept tak, aby bylo lépe čitelné." + "subtitle": "Změní velikost písma u vybavení, přísad a pokynů pro recept tak, aby bylo lépe čitelné." }, "category_font_size": { "title": "Velikost písma kategorií", - "subtitle": "Změní velikost písma nadpisu kategorie. To se může hodit v případě dlouhých názvů kategorií." + "subtitle": "Změní velikost písma nadpisů kategorií. To se může hodit v případě jejich dlouhých názvů." } } -} +} \ No newline at end of file diff --git a/assets/i18n/de.json b/assets/i18n/de.json index 0e650899..99664db6 100644 --- a/assets/i18n/de.json +++ b/assets/i18n/de.json @@ -1,10 +1,18 @@ { "app_bar": { - "search": "Suchen", - "refresh": "Aktualisieren", "logout": "Abmelden", "clear_all": "Alles löschen" }, + "alert": { + "discard": "Verwerfen", + "clear": "Löschen" + }, + "form": { + "validators": { + "invalid_number": "Keine zulässige Zahl", + "required": "Erforderlich" + } + }, "login": { "title": "Anmelden", "server_url": { @@ -39,13 +47,19 @@ "failed_remove_remote": "Remote-App-Passwort konnte nicht entfernt werden!", "failure": "Anmeldevorgang konnte nicht ordnungsgemäß beendet werden.\n{status_code}\n{status_message}", "credentials_invalid": "Die gespeicherten Anmeldedaten waren nicht mehr gültig und du wurdest abgemeldet!", - "no_internet": "Die Authentifizierungsprüfung war nicht erfolgreich.\nVielleicht gibt es keine Internetverbindung?\nFehlermeldung: {error_msg}", - "wrong_status": "Die Authentifizierungsprüfung war nicht erfolgreich.\nVielleicht ist der angegebene Server-Host nicht korrekt?\nFehlermeldung: {error_msg}" + "no_internet": "Die Authentifizierung war nicht erfolgreich.\nVielleicht gibt es keine Internetverbindung?\nFehlermeldung: {error_msg}", + "wrong_status": "Die Authentifizierung war nicht erfolgreich.\nVielleicht ist der angegebene Server-Host nicht korrekt?\nFehlermeldung: {error_msg}" } }, "categories": { "title": "Kochbuch", "all_categories": "Alle", + "uncategorized": "Ohne Kategorie", + "items": { + "0": "Keine Elemente", + "1": "1 Element", + "else": "{{value}} Elemente" + }, "drawer": { "import": "Rezept importieren", "settings": "Einstellungen" @@ -56,7 +70,7 @@ "load_no_response": "Kategorien konnten vom Server nicht abgerufen werden.", "api_version_check_failed": "API-Version des Servers konnte nicht geprüft werden:\n{error_msg}", "api_version_above_confirmed": "Die API-Version des Servers wurde aktualisiert. Einige Funktionen funktionieren möglicherweise nicht wie erwartet. Bitte warte auf eine Aktualisierung!\n{version}", - "plugin_missing": "Die Kategorien konnten nicht geladen werden. Stellen Sie sicher, dass das Kochbuch-Plugin auf dieser Nextcloud installiert ist!" + "plugin_missing": "Die Kategorien konnten nicht geladen werden. Stelle sicher, dass das Kochbuch-Plugin auf dieser Nextcloud installiert ist!" } }, "recipe_list": { @@ -71,18 +85,21 @@ "cook": "Kochdauer", "total": "Gesamtzeit", "fields": { - "name": "Rezept-Name:", - "description": "Rezept-Beschreibung:", - "keywords": "Schlüsselwörter:", - "category": "Kategorie:", - "servings": "Portionen:", - "source": "Quelle:", + "name": "Rezeptname", + "description": "Rezeptbeschreibung:", + "keywords": "Schlüsselwörter", + "category": "Kategorie", + "servings": { + "1": "Portion", + "else": "Portionen" + }, + "source": "Quelle", "source_button": "Quelle", - "image": "Bild:", + "image": "Bild", "time": { - "prep": "Vorbereitungsdauer:", - "cook": "Kochdauer:", - "total": "Gesamtzeit:", + "prep": "Vorbereitungsdauer", + "cook": "Kochdauer", + "total": "Gesamtzeit", "hours": "Stunden", "minutes": "Minuten" }, @@ -103,9 +120,11 @@ "unsaturatedFatContent": "Gehalt an ungesättigten Fettsäuren" } }, - "tools": "Utensilien:", - "ingredients": "Zutaten:", - "instructions": "Zubereitung:" + "general": "Allgemeines", + "times": "Zeiten", + "tools": "Utensilien", + "ingredients": "Zutaten", + "instructions": "Zubereitung" }, "errors": { "load_failed": "Laden des Rezepts fehlgeschlagen!" @@ -116,26 +135,42 @@ "button": "Speichern", "errors": { "update_failed": "Aktualisierung fehlgeschlagen {error_msg}" + }, + "delete": { + "title": "Rezept löschen", + "dialog": "Möchtest du {recipe} endgültig löschen?" } }, "recipe_create": { "title": "Neues Rezept erstellen", "button": "Erstellen", + "add_field": "Hinzufügen", + "remove_field": "Entfernen", "errors": { "update_failed": "Erstellen fehlgeschlagen {error_msg}" } }, + "recipe_form": { + "dismiss_edit": { + "title": "Bearbeiten abbrechen", + "dialog": "Möchtest du deine Änderungen an {recipe} verwerfen?" + }, + "dismiss_create": { + "title": "Erstellung abbrechen", + "dialog": "Möchtest du die Erstellung verwerfen?" + } + }, "recipe_import": { "title": "Rezept importieren", "button": "Importieren", "field": "URL zum Rezept", - "clipboard": "Zwischenablage einfügen", "errors": { "import_failed": "Import fehlgeschlagen {error_msg}" } }, "search": { "title": "Rezept suchen", + "description": "Rezepte nach Name oder Schlüsselwort suchen", "nothing_found": "Kein Rezept gefunden!", "errors": { "search_failed": "Es konnten nicht alle Rezepte geladen werden!\n​{error_msg}" @@ -145,8 +180,13 @@ "title": "Deine Timer", "started": "Timer gestartet.", "finished": "ist abgeschlossen.", + "button": { + "start": "Timer starten", + "cancel": "Timer abbrechen" + }, "done": "Timer ist fertig.", - "missing": "Um einen Timer zu verwenden, musst du die Kochzeit angeben." + "missing": "Um einen Timer zu verwenden, musst du die Kochzeit angeben.", + "empty_list": "Deine laufenden Timer werden hier angezeigt." }, "settings": { "title": "App-Einstellungen", @@ -172,4 +212,4 @@ "subtitle": "Ändert die Schriftgröße des Kategorietitels. Dies kann nützlich sein, wenn du lange Kategorienamen verwendest." } } -} +} \ No newline at end of file diff --git a/assets/i18n/de_DE.json b/assets/i18n/de_DE.json index 7aea3e08..f26d1875 100644 --- a/assets/i18n/de_DE.json +++ b/assets/i18n/de_DE.json @@ -1,10 +1,18 @@ { "app_bar": { - "search": "Suche", - "refresh": "Aktualisieren", "logout": "Abmelden", "clear_all": "Alles löschen" }, + "alert": { + "discard": "Verwerfen", + "clear": "Leeren" + }, + "form": { + "validators": { + "invalid_number": "Keine zulässige Zahl", + "required": "Erforderlich" + } + }, "login": { "title": "Anmelden", "server_url": { @@ -39,13 +47,19 @@ "failed_remove_remote": "Remote-App-Passwort konnte nicht entfernt werden!", "failure": "Anmeldevorgang konnte nicht ordnungsgemäß beendet werden.\n{status_code}\n{status_message}", "credentials_invalid": "Die gespeicherten Anmeldedaten waren nicht mehr gültig und Sie wurden abgemeldet!", - "no_internet": "Die Authentifizierungsprüfung war nicht erfolgreich.\nVielleicht gibt es keine Internetverbindung?\nFehlermeldung: {error_msg}", - "wrong_status": "Die Authentifizierungsprüfung war nicht erfolgreich.\nVielleicht ist der angegebene Server-Host nicht korrekt?\nFehlermeldung: {error_msg}" + "no_internet": "Die Authentifizierung war nicht erfolgreich.\nVielleicht gibt es keine Internetverbindung?\nFehlermeldung: {error_msg}", + "wrong_status": "Die Authentifizierung war nicht erfolgreich.\nVielleicht ist der angegebene Server-Host nicht korrekt?\nFehlermeldung: {error_msg}" } }, "categories": { "title": "Kochbuch", "all_categories": "Alle", + "uncategorized": "Ohne Kategorie", + "items": { + "0": "Keine Elemente", + "1": "1 Element", + "else": "{{value}} Elemente" + }, "drawer": { "import": "Rezept importieren", "settings": "Einstellungen" @@ -71,18 +85,21 @@ "cook": "Kochdauer", "total": "Gesamtzeit", "fields": { - "name": "Rezept-Name:", - "description": "Rezept-Beschreibung:", - "keywords": "Schlüsselwörter:", - "category": "Kategorie:", - "servings": "Portionen:", - "source": "Quelle:", + "name": "Rezeptname", + "description": "Rezeptbeschreibung:", + "keywords": "Schlüsselwörter", + "category": "Kategorie", + "servings": { + "1": "Portion", + "else": "Portionen" + }, + "source": "Quelle", "source_button": "Quelle", - "image": "Bild:", + "image": "Bild", "time": { - "prep": "Vorbereitungsdauer:", - "cook": "Kochdauer:", - "total": "Gesamtzeit:", + "prep": "Vorbereitungsdauer", + "cook": "Kochdauer", + "total": "Gesamtzeit", "hours": "Stunden", "minutes": "Minuten" }, @@ -103,9 +120,11 @@ "unsaturatedFatContent": "Gehalt an ungesättigten Fettsäuren" } }, - "tools": "Utensilien:", - "ingredients": "Zutaten:", - "instructions": "Zubereitung:" + "general": "Allgemein", + "times": "Zeiten", + "tools": "Utensilien", + "ingredients": "Zutaten", + "instructions": "Zubereitung" }, "errors": { "load_failed": "Laden des Rezepts fehlgeschlagen!" @@ -116,26 +135,42 @@ "button": "Speichern", "errors": { "update_failed": "Aktualisierung fehlgeschlagen {error_msg}" + }, + "delete": { + "title": "Rezept löschen", + "dialog": "Möchten Sie {recipe} endgültig löschen?" } }, "recipe_create": { "title": "Rezept erstellen", "button": "Erstellen", + "add_field": "Hinzufügen", + "remove_field": "Entfernen", "errors": { "update_failed": "Erstellung fehlgeschlagen {error_msg}" } }, + "recipe_form": { + "dismiss_edit": { + "title": "Bearbeiten abbrechen", + "dialog": "Möchten Sie Ihre Änderungen an {recipe} verwerfen?" + }, + "dismiss_create": { + "title": "Erstellung abbrechen", + "dialog": "Möchten Sie die Erstellung verwerfen?" + } + }, "recipe_import": { "title": "Rezept importieren", "button": "Importieren", "field": "URL zum Rezept", - "clipboard": "Zwischenablage einfügen", "errors": { "import_failed": "Import fehlgeschlagen {error_msg}" } }, "search": { "title": "Rezept suchen", + "description": "Rezepte nach Name oder Schlüsselwort suchen", "nothing_found": "Kein Rezept gefunden!", "errors": { "search_failed": "Es konnten nicht alle Rezepte geladen werden!\n{error_msg}" @@ -145,8 +180,13 @@ "title": "Ihre Timer", "started": "Timer gestartet.", "finished": "ist abgeschlossen.", + "button": { + "start": "Timer starten", + "cancel": "Timer abbrechen" + }, "done": "Timer ist fertig.", - "missing": "Um einen Timer zu verwenden, müssen Sie die Kochzeit angeben." + "missing": "Um einen Timer zu verwenden, müssen Sie die Kochzeit angeben.", + "empty_list": "Ihre laufenden Timer werden hier angezeigt." }, "settings": { "title": "App-Einstellungen", @@ -172,4 +212,4 @@ "subtitle": "Ändert die Schriftgröße des Kategorietitels. Dies kann nützlich sein, wenn Sie lange Kategorienamen haben." } } -} +} \ No newline at end of file diff --git a/assets/i18n/en_GB.json b/assets/i18n/en_GB.json index c3ab051f..37e3c958 100644 --- a/assets/i18n/en_GB.json +++ b/assets/i18n/en_GB.json @@ -1,10 +1,18 @@ { "app_bar": { - "search": "Search", - "refresh": "Refresh", "logout": "Logout", "clear_all": "Clear all" }, + "alert": { + "discard": "Discard", + "clear": "Clear" + }, + "form": { + "validators": { + "invalid_number": "not a valid number", + "required": "required" + } + }, "login": { "title": "Login", "server_url": { @@ -39,13 +47,19 @@ "failed_remove_remote": "Failed to remove remote App Password!", "failure": "Login Process could not finish properly.\n{status_code}\n{status_message}", "credentials_invalid": "The stored credentials where no longer valid an you have been logged out!", - "no_internet": "Authentication check was not successful.\nMaybe there is no internet connection?\nError Message: {error_msg}", - "wrong_status": "Authentication check was not successful.\nMaybe the provided server host is not correct?\nError Message: {error_msg}" + "no_internet": "Authentication was not successful.\nMaybe there is no internet connection?\nError Message: {error_msg}", + "wrong_status": "Authentication was not successful.\nMaybe the server host provided is not correct?\nError Message: {error_msg}" } }, "categories": { "title": "Cookbook", "all_categories": "All", + "uncategorized": "Uncategorised", + "items": { + "0": "no items", + "1": "1 item", + "else": "{{value}} items" + }, "drawer": { "import": "Import Recipe", "settings": "Settings" @@ -71,18 +85,21 @@ "cook": "Cooking time", "total": "Total time", "fields": { - "name": "Recipe Name:", - "description": "Recipe Description:", - "keywords": "Keywords:", - "category": "Category:", - "servings": "Servings:", - "source": "Source:", + "name": "Recipe Name", + "description": "Recipe Description", + "keywords": "Keywords", + "category": "Category", + "servings": { + "1": "Serving", + "else": "Servings" + }, + "source": "Source", "source_button": "Source", - "image": "Image:", + "image": "Image", "time": { - "prep": "Preparation time:", - "cook": "Cooking time:", - "total": "Total time:", + "prep": "Preparation time", + "cook": "Cooking time", + "total": "Total time", "hours": "Hours", "minutes": "Minutes" }, @@ -103,9 +120,11 @@ "unsaturatedFatContent": "Unsaturated-fat content" } }, - "tools": "Tools:", - "ingredients": "Ingredients:", - "instructions": "Instructions:" + "general": "General", + "times": "Times", + "tools": "Tools", + "ingredients": "Ingredients", + "instructions": "Instructions" }, "errors": { "load_failed": "Failed to load Recipe!" @@ -116,26 +135,42 @@ "button": "Save", "errors": { "update_failed": "Update Failed {error_msg}" + }, + "delete": { + "title": "Delete Recipe", + "dialog": "Are you sure you want to permanently delete {recipe}?" } }, "recipe_create": { "title": "Create Recipe", "button": "Create", + "add_field": "add", + "remove_field": "remove", "errors": { "update_failed": "Create Failed {error_msg}" } }, + "recipe_form": { + "dismiss_edit": { + "title": "Cancel edit", + "dialog": "Are you sure you want to discard your changes to {recipe}?" + }, + "dismiss_create": { + "title": "Cancel create", + "dialog": "Are you sure you want to discard the creation?" + } + }, "recipe_import": { "title": "Import Recipe", "button": "Import", "field": "URL to Recipe", - "clipboard": "Paste Clipboard", "errors": { "import_failed": "Import Failed {error_msg}" } }, "search": { "title": "Search Recipe", + "description": "Search for recipes by name or keyword", "nothing_found": "No recipe found!", "errors": { "search_failed": "Unable to load all Recipes!\n{error_msg}" @@ -145,8 +180,13 @@ "title": "Your timers", "started": "Timer started.", "finished": "is finished.", + "button": { + "start": "start timer", + "cancel": "cancel timer" + }, "done": "Timer is done.", - "missing": "You need to set the cooking time to use a timer." + "missing": "You need to set the cooking time to use a timer.", + "empty_list": "Your running timers will be shown here." }, "settings": { "title": "App Settings", @@ -172,4 +212,4 @@ "subtitle": "Changes the font size of category title. This can be useful if you have long category names." } } -} +} \ No newline at end of file diff --git a/assets/i18n/es.json b/assets/i18n/es.json index 07226662..1cc018d3 100644 --- a/assets/i18n/es.json +++ b/assets/i18n/es.json @@ -1,10 +1,18 @@ { "app_bar": { - "search": "Buscar", - "refresh": "Actualizar", "logout": "Desconectar", "clear_all": "Borrar todo" }, + "alert": { + "discard": "Descartar", + "clear": "Borrar" + }, + "form": { + "validators": { + "invalid_number": "no es un número válido", + "required": "requerido" + } + }, "login": { "title": "Iniciar sesión", "server_url": { @@ -39,13 +47,19 @@ "failed_remove_remote": "¡Fallo al eliminar la contaseña de aplicación remota!", "failure": "El proceso de inicio de sesión no se ha completado adecuadamente.\n{status_code}\n{status_message}", "credentials_invalid": "¡Las credenciales almacenadas ya no son válidas y has sido desconectado!", - "no_internet": "La comprobación de autenticación no ha tenido éxito. ¿Puede que no haya conexión a internet?\nMensaje de error: {error_msg}", - "wrong_status": "La comprobación de autenticación no ha tenido éxito. ¿Puede que noel alojamiento del servidor no sea correcto?\nMensaje de error: {error_msg}" + "no_internet": "La autenticación ha fallado\n¿Tal vez no haya conexión a internet?\nMensaje de error: {error_msg}", + "wrong_status": "La autenticación ha fallado\n¿Tal vez el servidor especificado es incorrecto?\nMensaje de error: {error_msg}" } }, "categories": { "title": "Cookbook", "all_categories": "Todo", + "uncategorized": "Sin categoría", + "items": { + "0": "sin ítems", + "1": "1 ítem", + "else": "{{value}} ítems" + }, "drawer": { "import": "Importar receta", "settings": "Ajustes" @@ -71,18 +85,21 @@ "cook": "Tiempo de cocción", "total": "Tiempo total", "fields": { - "name": "Nombre de la receta:", - "description": "Descripción de la receta:", - "keywords": "Palabras clave:", - "category": "Categoría:", - "servings": "Porciones:", - "source": "Origen:", + "name": "Nombre de Recet", + "description": "Descripción de la Receta", + "keywords": "Palabras clave", + "category": "Categoría", + "servings": { + "1": "Porción", + "else": "Porciones" + }, + "source": "Origen", "source_button": "Origen", - "image": "Imagen:", + "image": "Imagen", "time": { - "prep": "Tiempo de preparación:", - "cook": "Tiempo de cocción:", - "total": "Tiempo total:", + "prep": "Tiempo de preparación", + "cook": "Tiempo de cocción", + "total": "Tiempo total", "hours": "Horas", "minutes": "Minutos" }, @@ -103,9 +120,11 @@ "unsaturatedFatContent": "Contenido de grasas insaturadas" } }, - "tools": "Herramientas:", - "ingredients": "Ingredientes:", - "instructions": "Instrucciones:" + "general": "General", + "times": "Veces", + "tools": "Herramientas", + "ingredients": "Ingredientes", + "instructions": "Instrucciones" }, "errors": { "load_failed": "¡Fallo al cargar la receta!" @@ -116,26 +135,42 @@ "button": "Guardar", "errors": { "update_failed": "La actualización falló {error_msg}" + }, + "delete": { + "title": "Borrar Receta", + "dialog": "¿Está seguro de que quiere eliminar permanentemente la receta {recipe}?" } }, "recipe_create": { "title": "Crear receta", "button": "Crear", + "add_field": "añadir", + "remove_field": "quitar", "errors": { "update_failed": "Fallo al crear {error_msg}" } }, + "recipe_form": { + "dismiss_edit": { + "title": "Cacelar edición", + "dialog": "¿Está seguro de que quiere descartar sus cambios a {recipe}?" + }, + "dismiss_create": { + "title": "Cancelar creación", + "dialog": "¿Está seguro que desea descartar la creación?" + } + }, "recipe_import": { "title": "Impotar receta", "button": "Importar", "field": "URL de la receta", - "clipboard": "Pegar del portapapeles", "errors": { "import_failed": "Fallo al importar: {error_msg}" } }, "search": { "title": "Buscar receta", + "description": "Buscar recetas por nombre o palabra clave", "nothing_found": "¡No se ha encontrado la receta!", "errors": { "search_failed": "¡No es posible cargar todas las recetas!\n{error_msg}" @@ -145,8 +180,13 @@ "title": "Tus temporizadores", "started": "Temporizador iniciado.", "finished": "ha terminado.", + "button": { + "start": "iniciar temporizador", + "cancel": "cancelar temporizador" + }, "done": "El temporizador ha terminado.", - "missing": "Necesitas configurar el tiempo de cocinado para usar un temporizador." + "missing": "Necesitas configurar el tiempo de cocinado para usar un temporizador.", + "empty_list": "Sus temporizadores en ejecución se mostrarán aquí." }, "settings": { "title": "Ajustes de la Aplicación", @@ -172,4 +212,4 @@ "subtitle": "Cambia el tamaño de la fuente del título de categoría. Esto puede ser útil si tienes categorías con nombres largos." } } -} +} \ No newline at end of file diff --git a/assets/i18n/es_EC.json b/assets/i18n/es_EC.json new file mode 100644 index 00000000..b88f2039 --- /dev/null +++ b/assets/i18n/es_EC.json @@ -0,0 +1,215 @@ +{ + "app_bar": { + "logout": "Cerrar sesión", + "clear_all": "Borrar todo" + }, + "alert": { + "discard": "Descartar", + "clear": "Limpiar" + }, + "form": { + "validators": { + "invalid_number": "no es un número válido", + "required": "requerido" + } + }, + "login": { + "title": "Iniciar sesión", + "server_url": { + "field": "URL del servidor", + "validator": { + "empty": "Por favor, introduce la URL de tu instancia de Nextcloud.", + "pattern": "Por favor, introduce una URL válida" + } + }, + "username": { + "field": "Usuario" + }, + "password": { + "field": "Contraseña" + }, + "settings": { + "title": "Configuración avanzada", + "app_password": "Usar Contraseña de Aplicación generada por uno mismo.\n Necesaria para cuentas con 2FA.", + "self_signed_certificate": "Ignorar certificado inválido.\n Necesario para certificados autofirmados.\n (Úsalo bajo tu propio riesgo)" + }, + "button": "Iniciar sesión", + "retry": "Reintentar inicio de sesión", + "reset": "Restablecer credenciales", + "errors": { + "not_reachable": "No se puede acceder a: {server_url}\n {error_msg}", + "certificate_failed": "No se pudo verificar el certificado del servidor: {server_url}\n {error_msg}", + "request_failed": "Falló la solicitud de Contraseña de Aplicación:\n {error_msg}", + "parse_failed": "No se pudo analizar la respuesta de Contraseña de Aplicación:\n {error_msg}", + "parse_missing": "No se encontró la Contraseña de Aplicación en la respuesta:\n {error_msg}", + "auth_failed": "¡El nombre de usuario y/o la contraseña no son correctos!", + "authentication_not_found": "No se encontró autenticación en el almacenamiento", + "failed_remove_remote": "No se pudo eliminar la Contraseña de Aplicación remota", + "failure": "El proceso de inicio de sesión no pudo finalizar correctamente.\n {status_code}\n {status_message}", + "credentials_invalid": "¡Las credenciales almacenadas ya no son válidas y has cerrado sesión!", + "no_internet": "La autenticación no fue exitosa.\n ¿Puede ser que no haya conexión a internet?\n Mensaje de error: {error_msg}", + "wrong_status": "La autenticación no fue exitosa.\n ¿Puede ser que el host del servidor proporcionado no sea correcto?\n Mensaje de error: {error_msg}" + } + }, + "categories": { + "title": "Cookbook", + "all_categories": "Todos", + "uncategorized": "Sin categoría", + "items": { + "0": "ningún elemento", + "1": "1 elemento", + "else": "{{value}} elementos" + }, + "drawer": { + "import": "Importar Receta", + "settings": "Ajustes" + }, + "errors": { + "unknown": "Categorías en estado desconocido", + "load_failed": "Error al cargar la categoría: {error_msg}", + "load_no_response": "No se pudieron recuperar las categorías del servidor.", + "api_version_check_failed": "Error al comprobar la versión de la API del servidor:\n {error_msg}", + "api_version_above_confirmed": "La versión de la API del servidor se actualizó. Es posible que algunas funciones no funcionen como se esperaba. ¡Espera una actualización!\n {version}", + "plugin_missing": "No se pudieron cargar las categorías. ¡Asegúrate de que el complemento Cookbook está instalado en esta instancia de Nextcloud!" + } + }, + "recipe_list": { + "title_category": "Categoría: {category}", + "errors": { + "load_failed": "Error al cargar las Recetas breves" + } + }, + "recipe": { + "title": "Receta:", + "prep": "Tiempo de preparación", + "cook": "Tiempo de cocción", + "total": "Tiempo total", + "fields": { + "name": "Nombre de la Receta", + "description": "Descripción de la Receta", + "keywords": "Palabras clave", + "category": "Categoría", + "servings": { + "1": "Porciones", + "else": "Porciones" + }, + "source": "Fuente", + "source_button": "Fuente", + "image": "Imagen", + "time": { + "prep": "Tiempo de preparación", + "cook": "Tiempo de cocción", + "total": "Tiempo total", + "hours": "Horas", + "minutes": "Minutos" + }, + "nutrition": { + "title": "Información nutricional", + "items": { + "calories": "Energía", + "carbohydrateContent": "Carbohidratos", + "cholesterolContent": "Colesterol", + "fatContent": "Grasa total", + "fiberContent": "Fibra", + "proteinContent": "Proteínas", + "saturatedFatContent": "Grasa saturada", + "servingSize": "Tamaño de la porción", + "sodiumContent": "Sodio", + "sugarContent": "Azúcar", + "transFatContent": "Contenido de grasa trans", + "unsaturatedFatContent": "Contenido de grasa insaturada" + } + }, + "general": "General", + "times": "Tiempos", + "tools": "Herramientas", + "ingredients": "Ingredientes", + "instructions": "Instrucciones" + }, + "errors": { + "load_failed": "Error al cargar la Receta" + } + }, + "recipe_edit": { + "title": "Editar Receta", + "button": "Guardar", + "errors": { + "update_failed": "Error al actualizar {error_msg}" + }, + "delete": { + "title": "Borrar Receta", + "dialog": "¿Estás seguro de que quieres eliminar {recipe} permanentemente?" + } + }, + "recipe_create": { + "title": "Crear Receta", + "button": "Crear", + "add_field": "agregar", + "remove_field": "eliminar", + "errors": { + "update_failed": "Error al crear {error_msg}" + } + }, + "recipe_form": { + "dismiss_edit": { + "title": "Cancelar edición", + "dialog": "¿Estás seguro de que quieres descartar los cambios de {recipe}?" + }, + "dismiss_create": { + "title": "Cancelar creación", + "dialog": "¿Estás seguro de que quieres descartar la creación?" + } + }, + "recipe_import": { + "title": "Importar Receta", + "button": "Importar", + "field": "URL de la Receta", + "errors": { + "import_failed": "Error al importar {error_msg}" + } + }, + "search": { + "title": "Buscar Receta", + "description": "Buscar recetas por nombre o palabra clave", + "nothing_found": "No se encontró ninguna receta", + "errors": { + "search_failed": "No se pudieron cargar todas las Recetas.\n {error_msg}" + } + }, + "timer": { + "title": "Tus temporizadores", + "started": "Temporizador iniciado.", + "finished": "ha terminado.", + "button": { + "start": "iniciar temporizador", + "cancel": "cancelar temporizador" + }, + "done": "El temporizador ha terminado.", + "missing": "Necesitas establecer el tiempo de cocción para usar un temporizador.", + "empty_list": "Aquí se mostrarán tus temporizadores activos." + }, + "settings": { + "title": "Configuración de la aplicación", + "dark_mode": { + "title": "Modo oscuro", + "system": "Configuración predeterminada del sistema", + "dark": "Siempre", + "light": "Nunca" + }, + "language": { + "title": "Idioma" + }, + "stay_awake": { + "title": "Mantener pantalla activa", + "subtitle": "La pantalla se mantendrá encendida mientras esté en la pantalla de la receta." + }, + "recipe_font_size": { + "title": "Tamaño de fuente de la receta", + "subtitle": "Cambia el tamaño de fuente de las herramientas de la receta, los ingredientes y las instrucciones para una mejor legibilidad." + }, + "category_font_size": { + "title": "Tamaño de fuente de la categoría", + "subtitle": "Cambia el tamaño de fuente del título de la categoría. Esto puede ser útil si tienes nombres de categorías largos." + } + } +} \ No newline at end of file diff --git a/assets/i18n/eu.json b/assets/i18n/eu.json index de904397..1235718f 100644 --- a/assets/i18n/eu.json +++ b/assets/i18n/eu.json @@ -1,10 +1,18 @@ { "app_bar": { - "search": "Bilatu", - "refresh": "Freskatu", "logout": "Amaitu saioa", "clear_all": "Garbitu dena" }, + "alert": { + "discard": "Baztertu", + "clear": "Garbitu" + }, + "form": { + "validators": { + "invalid_number": "ez da baliozko zenbakia", + "required": "beharrezkoa" + } + }, "login": { "title": "Hasi saioa", "server_url": { @@ -39,13 +47,19 @@ "failed_remove_remote": "Ezin izan da urruneko aplikazio-pasahitza kendu!", "failure": "Saioa hasteko prozesua ezin izan da behar bezala amaitu.\n{status_code}\n{status_message}", "credentials_invalid": "Gordetako kredentzialak jada ez dira baliozkoak eta saioa amaitu zaizu!", - "no_internet": "Autentifikazio-egiaztapena ez da arrakastatsua izan.\nAgian ez dago Interneteko konexiorik?\nErrore-mezua: {error_msg}", - "wrong_status": "Autentifikazio-egiaztapena ez da arrakastatsua izan.\nAgian emandako zerbitzariaren ostalaria ez da zuzena?\nErrore-mezua: {error_msg}" + "no_internet": "Autentifikazioak huts egin du.\nAgian ez dago interneteko konexiorik?\nErrore-mezua: {error_msg}", + "wrong_status": "Autentifikazioak huts egin du.\nAgian hornitutako zerbitzariaren ostalaria ez da zuzena?\nErrore-mezua: {error_msg}" } }, "categories": { "title": "Sukaldaritza-liburua", "all_categories": "Denak", + "uncategorized": "Kategoria gabe", + "items": { + "0": "elementurik ez", + "1": "elementu 1", + "else": "{{value}} elementu" + }, "drawer": { "import": "Inportatu errezeta", "settings": "Ezarpenak" @@ -71,18 +85,21 @@ "cook": "Janaria prestatzeko denbora", "total": "Denbora guztira", "fields": { - "name": "Errezetaren izena:", - "description": "Errezetaren deskribapena:", - "keywords": "Hitz gakoak:", - "category": "Kategoria:", - "servings": "Errazioak:", - "source": "Iturburua:", + "name": "Errezetaren izena", + "description": "Errezetaren deskribapena", + "keywords": "Hitz gakoak", + "category": "Kategoria", + "servings": { + "1": "Zerbitzua ematen", + "else": "Anoak" + }, + "source": "Iturburua", "source_button": "Iturburua", - "image": "Irudia:", + "image": "Irudia", "time": { - "prep": "Prestatzeko denbora:", - "cook": "Janaria prestatzeko denbora:", - "total": "Denbora guztira:", + "prep": "Prestatzeko denbora", + "cook": "Janaria prestatzeko denbora", + "total": "Denbora guztira", "hours": "Orduak", "minutes": "Minutuak" }, @@ -103,9 +120,11 @@ "unsaturatedFatContent": "Gantz asegabe kopurua" } }, - "tools": "Tresnak:", - "ingredients": "Osagaiak:", - "instructions": "Jarraibideak:" + "general": "Orokorra", + "times": "Denborak", + "tools": "Tresnak", + "ingredients": "Osagaiak", + "instructions": "Jarraibideak" }, "errors": { "load_failed": "Errezeta kargatzeak hust egin du!" @@ -116,26 +135,42 @@ "button": "Gorde", "errors": { "update_failed": "Eguneratzeak huts egin du {error_msg}" + }, + "delete": { + "title": "Ezabatu errezeta", + "dialog": "Ziur betiko ezabatu nahi duzula {recipe}?" } }, "recipe_create": { "title": "Sortu errezeta", "button": "Sortu", + "add_field": "gehitu", + "remove_field": "kendu", "errors": { "update_failed": "Huts egin du sortzean {error_msg}" } }, + "recipe_form": { + "dismiss_edit": { + "title": "Utzi editatzeari", + "dialog": "Ziur {recipe}-ri egindako aldaketak baztertu nahi dituzula?" + }, + "dismiss_create": { + "title": "Sortzea bertan behera utzi", + "dialog": "Ziru sortzea bertan behera utzi nahi duzula?" + } + }, "recipe_import": { "title": "Inportatu errezeta", "button": "Inportatu", "field": "Errezetaren URLa", - "clipboard": "Itsatsi arbela", "errors": { "import_failed": "Inportazioak huts egin du {error_msg}" } }, "search": { "title": "Bilatu errezeta", + "description": "Bilatu errezetak izenaren edo gako-hitzen arabera", "nothing_found": "Ez da errezetarik aurkitu!", "errors": { "search_failed": "Ezin dira errezeta guztiak kargatu!\n{error_msg}" @@ -145,8 +180,13 @@ "title": "Zure tenporizadoreak", "started": "Tenporizadorea hasita.", "finished": "amaituta dago.", + "button": { + "start": "abiarazi tenporizadorea", + "cancel": "gelditui tenporizadorea" + }, "done": "Tenporizadorea bukatu da.", - "missing": "Sukaldaritza denbora ezarri behar duzu tenporizadore bat erabili ahal izateko." + "missing": "Sukaldaritza denbora ezarri behar duzu tenporizadore bat erabili ahal izateko.", + "empty_list": "Hemen erakutsiko dira martxan dituzun tenporizadoreak." }, "settings": { "title": "Aplikazioaren ezarpenak", @@ -172,4 +212,4 @@ "subtitle": "Kategoriaren izenburuaren tamaina aldatzen du. Hau baliagarria izan daiteke kategoria izen luzeak badituzu." } } -} +} \ No newline at end of file diff --git a/assets/i18n/fi_FI.json b/assets/i18n/fi_FI.json index 039b6f7c..210d0325 100644 --- a/assets/i18n/fi_FI.json +++ b/assets/i18n/fi_FI.json @@ -1,10 +1,18 @@ { "app_bar": { - "search": "Etsi", - "refresh": "Päivitä", "logout": "Kirjaudu ulos", "clear_all": "Tyhjennä kaikki" }, + "alert": { + "discard": "Hylkää", + "clear": "Tyhjennä" + }, + "form": { + "validators": { + "invalid_number": "not a valid number", + "required": "required" + } + }, "login": { "title": "Kirjaudu sisään", "server_url": { @@ -39,13 +47,19 @@ "failed_remove_remote": "Sovellussalasanan poisto epäonnistui!", "failure": "Kirjautuminen ei onnistunut.\n {status_code}\n {status_message}", "credentials_invalid": "Tallennetut tunnistetiedot eivät ole enää kelvollisia, sinut on kirjattu ulos!", - "no_internet": "Tunnistautuminen epäonnistui.\nOnhan internetyhteys käytettävissä?\nVirheilmoitus: {error_msg}", - "wrong_status": "Tunnistautuminen epäonnistui.\nOnhan palveliuntarjoaja valittu oikein?\nVirheilmoitus: {error_msg}" + "no_internet": "Authentication was not successful.\nMaybe there is no internet connection?\nError Message: {error_msg}", + "wrong_status": "Authentication was not successful.\nMaybe the provided server host is not correct?\nError Message: {error_msg}" } }, "categories": { "title": "Keittokirja", "all_categories": "Kaikki", + "uncategorized": "Luokittelematon", + "items": { + "0": "no items", + "1": "1 item", + "else": "{{value}} items" + }, "drawer": { "import": "Tuo resepti", "settings": "Asetukset" @@ -71,18 +85,21 @@ "cook": "Kokkausaika", "total": "Kokonaiskesto", "fields": { - "name": "Reseptin nimi:", - "description": "Reseptin kuvaus:", - "keywords": "Avainsanat:", - "category": "Luokka:", - "servings": "Annoksia:", - "source": "Lähde:", + "name": "Recipe Name", + "description": "Recipe Description", + "keywords": "Avainsanat", + "category": "Kategoria", + "servings": { + "1": "Serving", + "else": "Annokset" + }, + "source": "Lähde", "source_button": "Lähde", - "image": "Kuva:", + "image": "Kuva", "time": { - "prep": "Esivalmistelujen kesto:", - "cook": "Valmistuksen kesto:", - "total": "Kokonaiskesto:", + "prep": "Valmisteluaika", + "cook": "Kokkausaika", + "total": "Kokonaiskesto", "hours": "Tunnit", "minutes": "Minuutit" }, @@ -103,9 +120,11 @@ "unsaturatedFatContent": "Tyydyttymätön rasva" } }, - "tools": "Työvälineet:", - "ingredients": "Ainesosat:", - "instructions": "Ohjeet:" + "general": "Yleiset", + "times": "Times", + "tools": "Työvälineet", + "ingredients": "Ainesosat", + "instructions": "Ohjeet" }, "errors": { "load_failed": "Reseptin lataus epäonnistui!" @@ -116,26 +135,42 @@ "button": "Tallenna", "errors": { "update_failed": "Päivitys epäonnistui {error_msg}" + }, + "delete": { + "title": "Delete Recipe", + "dialog": "Are you sure you want to permanently delete {recipe}?" } }, "recipe_create": { "title": "Luo resepti", "button": "Luo", + "add_field": "lisää", + "remove_field": "remove", "errors": { "update_failed": "Luonti epäonnistui {error_msg}" } }, + "recipe_form": { + "dismiss_edit": { + "title": "Peruuta muokkaus", + "dialog": "Are you sure you want to discard your changes to {recipe}?" + }, + "dismiss_create": { + "title": "Cancel create", + "dialog": "Are you sure you want to discard the creation?" + } + }, "recipe_import": { "title": "Tuo resepti", "button": "Tuo", "field": "Reseptin URL", - "clipboard": "Liitä leikepöydältä", "errors": { "import_failed": "Tuonti epäonnistui {error_msg}" } }, "search": { "title": "Etsi resepti", + "description": "Search for recipes by name or keyword", "nothing_found": "Reseptiä ei löytynyt!", "errors": { "search_failed": "Reseptien lataus ei onnistunut!\n{error_msg}" @@ -145,8 +180,13 @@ "title": "Ajastimesi", "started": "Ajastin käynnistyi.", "finished": "päättynyt.", + "button": { + "start": "start timer", + "cancel": "cancel timer" + }, "done": "Ajastin valmistui.", - "missing": "You need to set the cooking time to use a timer." + "missing": "You need to set the cooking time to use a timer.", + "empty_list": "Your running timers will be shown here." }, "settings": { "title": "Sovelluksen asetukset", @@ -172,4 +212,4 @@ "subtitle": "Muuttaa kategorian otsikon fontin kokoa. Muutos voi olla käytännöllistä, jos käytät pitkiä kategorioiden nimiä." } } -} +} \ No newline at end of file diff --git a/assets/i18n/fr.json b/assets/i18n/fr.json index 5528ba33..070d8939 100644 --- a/assets/i18n/fr.json +++ b/assets/i18n/fr.json @@ -1,10 +1,18 @@ { "app_bar": { - "search": "Rechercher", - "refresh": "Actualiser", "logout": "Se déconnecter", "clear_all": "Effacer tout" }, + "alert": { + "discard": "ignorer", + "clear": "Effacer" + }, + "form": { + "validators": { + "invalid_number": "not a valid number", + "required": "required" + } + }, "login": { "title": "S'identifier", "server_url": { @@ -22,7 +30,7 @@ }, "settings": { "title": "Paramètres avancés", - "app_password": "Utiliser un mot de passe d'application.\nNécessaire pour les comptes avec 2FA.", + "app_password": "Utiliser un mot de passe d'application auto-généré.\nNécessaire pour les comptes avec A2F.", "self_signed_certificate": "Ignorer les certificats invalides.\nNécessaire pour les certificats autosignés.\n(À utiliser à vos risques et périls !)" }, "button": "S'identifier", @@ -39,13 +47,19 @@ "failed_remove_remote": "Impossible de supprimer le mot de passe d'application distant", "failure": "L'opération de connexion ne sait pas terminée correctement.\n{status_code}\n{status_message}", "credentials_invalid": "Les informations d'identification stockées ne sont plus valables et vous avez été déconnecté !", - "no_internet": "L'authentification a échoué.\nPeut-être n'y-a-t-il pas de connexion internet ?\nMessage d'erreur : {error_msg}", - "wrong_status": "L'authentification a échoué.\nPeut-être le serveur indiqué est-il incorrect ?\nMessage d'erreur : {error_msg}" + "no_internet": "L'authentification n'a pas réussi.\nPeut-être n'y a-t-il pas de connexion Internet ?\nMessage d'erreur : {error_msg}", + "wrong_status": "L'authentification n'a pas réussi.\nPeut-être que l'hôte serveur configuré est incorrect ?\nMessage d'erreur : {error_msg}" } }, "categories": { "title": "Livre de recettes", "all_categories": "Tout", + "uncategorized": "Non catégorisé", + "items": { + "0": "no items", + "1": "1 item", + "else": "{{value}} items" + }, "drawer": { "import": "Importer une recette", "settings": "Paramètres" @@ -62,7 +76,7 @@ "recipe_list": { "title_category": "Catégorie : {category}", "errors": { - "load_failed": "Impossible de charger le raccourci de recette!" + "load_failed": "Impossible de charger le raccourci de recette !" } }, "recipe": { @@ -71,18 +85,21 @@ "cook": "Durée de cuisson", "total": "Temps total", "fields": { - "name": "Titre de la recette : ", - "description": "Description de la recette : ", - "keywords": "Mots-clés : ", - "category": "Catégorie : ", - "servings": "Portions :", - "source": "Source :", + "name": "Nom de la recette", + "description": "Description de la recette", + "keywords": "Mots-clefs", + "category": "Catégorie", + "servings": { + "1": "Serving", + "else": "Portions" + }, + "source": "Source", "source_button": "Source", - "image": "Image : ", + "image": "Image", "time": { - "prep": "Durée de préparation :", - "cook": "Durée de cuisson :", - "total": "Durée totale : ", + "prep": "Durée de préparation", + "cook": "Durée de cuisson", + "total": "Temps total", "hours": "Heures", "minutes": "Minutes" }, @@ -103,9 +120,11 @@ "unsaturatedFatContent": "Teneur en graisses insaturées" } }, - "tools": "Ustensiles :", - "ingredients": "Ingrédients :", - "instructions": "Instructions :" + "general": "Général", + "times": "Times", + "tools": "Ustensiles", + "ingredients": "Ingrédients", + "instructions": "Instructions" }, "errors": { "load_failed": "Impossible de charger la recette !" @@ -116,26 +135,42 @@ "button": "Enregistrer", "errors": { "update_failed": "Échec de mise à jour {error_msg}" + }, + "delete": { + "title": "Delete Recipe", + "dialog": "Are you sure you want to permanently delete {recipe}?" } }, "recipe_create": { "title": "Créer une recette", "button": "Créer", + "add_field": "additionner", + "remove_field": "remove", "errors": { "update_failed": "La création a échoué {error_msg}" } }, + "recipe_form": { + "dismiss_edit": { + "title": "Annuler les modifications", + "dialog": "Are you sure you want to discard your changes to {recipe}?" + }, + "dismiss_create": { + "title": "Cancel create", + "dialog": "Are you sure you want to discard the creation?" + } + }, "recipe_import": { "title": "Importer une recette", "button": "Importer", "field": "Adresse de la recette", - "clipboard": "Coller le presse-papier", "errors": { "import_failed": "L'importation a échoué {error_msg}" } }, "search": { "title": "Rechercher une recette", + "description": "Search for recipes by name or keyword", "nothing_found": "Aucune recette trouvée", "errors": { "search_failed": "Impossible de charger toutes les recettes !\n{error_msg}" @@ -145,8 +180,13 @@ "title": "Vos minuteurs", "started": "Minuteur démarré.", "finished": "est terminé.", + "button": { + "start": "start timer", + "cancel": "cancel timer" + }, "done": "Minutage terminé.", - "missing": "Vous devez renseigner la durée de cuisson avant d'utiliser un minuteur." + "missing": "Vous devez renseigner la durée de cuisson avant d'utiliser un minuteur.", + "empty_list": "Your running timers will be shown here." }, "settings": { "title": "Paramètres de l'application", @@ -172,4 +212,4 @@ "subtitle": "Change la taille de police des titres de catégories. Cela peut être utile en cas de noms de catégories longs." } } -} +} \ No newline at end of file diff --git a/assets/i18n/gl.json b/assets/i18n/gl.json index 48d2324a..43093530 100644 --- a/assets/i18n/gl.json +++ b/assets/i18n/gl.json @@ -1,15 +1,24 @@ { "app_bar": { - "search": "Buscar", - "refresh": "Actualizar", - "logout": "Saír" + "logout": "Saír", + "clear_all": "Limpar todo" + }, + "alert": { + "discard": "Desbortar", + "clear": "Limpar" + }, + "form": { + "validators": { + "invalid_number": "non é un número válido", + "required": "precisase" + } }, "login": { "title": "Acceder", "server_url": { "field": "URL do servidor", "validator": { - "empty": "Introduza o URL da súa instancia do Nextcloud.", + "empty": "Introduza o URL da súa instancia de Nextcloud.", "pattern": "Introduza un URL correcto" } }, @@ -21,10 +30,12 @@ }, "settings": { "title": "Axustes avanzados", - "app_password": "Use un contrasinal de aplicación autoxerado.\nNecesario para contas con 2FA", + "app_password": "Use un contrasinal de aplicación autoxerado.\nNecesario para contas con A2F", "self_signed_certificate": "Ignorar o certificado non válido\nNecesario para os certificados autoasinados\n(Utilíceo baixo a súa propia responsabilidade!)" }, "button": "Acceder", + "retry": "Tentar acceder outra vez!", + "reset": "Restabelecer as credenciais!", "errors": { "not_reachable": "Non é posíbel acadar: {server_url}\n{error_msg}", "certificate_failed": "Non foi posíbel verificar o certificado do servidor: {server_url}\n{error_msg}", @@ -33,24 +44,33 @@ "parse_missing": "Non foi posíbel atopar o contrasinal de aplicación na resposta.\n{error_msg}", "auth_failed": "O nome de usuario e / ou o contrasinal son incorrectos.", "authentication_not_found": "Non se atopou ningunha autenticación no almacenamento", - "failed_remove_remote": "Produciuse un erro ao eliminar o contrasinal de aplicación remoto.", + "failed_remove_remote": "Produciuse un erro ao retirar o contrasinal da aplicación remota.", "failure": "O proceso de acceso non puido rematar correctamente.\n{status_code}\n{status_message}", - "credentials_invalid": "As credenciais almacenadas xa non son válidas e foi pechada a sesión." + "credentials_invalid": "As credenciais almacenadas xa non son válidas e foi pechada a sesión.", + "no_internet": "A autenticación non se realizou correctamente.\nQuizais non hai conexión a internet?\nMensaxe de erro: {error_msg}", + "wrong_status": "A autenticación non se realizou correctamente.\nQuizais o servidor fornecido non sexa correcto?\nMensaxe de erro: {error_msg}" } }, "categories": { - "title": "Libro de cociña", + "title": "Receitas de cociña", "all_categories": "Todo", + "uncategorized": "Sen categorizar", + "items": { + "0": "non hai elementos", + "1": "1 elemento", + "else": "{{value}} elementos" + }, "drawer": { - "import": "Import Recipe" + "import": "Importar receita", + "settings": "Axustes" }, "errors": { "unknown": "Categorías en estado descoñecido", - "load_failed": "Produciuse un fallo ao cargar a categoría {error_msg}", + "load_failed": "Produciuse un fallo ao cargar a categoría: {error_msg}", "load_no_response": "Non foi posíbel recuperar as categorías do servidor.", "api_version_check_failed": "Produciuse un fallo ao comprobar a versión da API do servidor:\n{error_msg}", "api_version_above_confirmed": "Actualizouse a versión da API do servidor. É posíbel que algunhas funcións non traballen como se agardaba. Agarde por unha actualización.\n{version}", - "plugin_missing": "Categories could not be loaded. Make sure that the cookbook plugin is installed on this nextcloud instance!" + "plugin_missing": "Non foi posíbel cargar as categorías. Asegúrese de que o complemento «Cookbook» estea instalado nesta instancia de Nextcloud." } }, "recipe_list": { @@ -61,23 +81,50 @@ }, "recipe": { "title": "Receita:", + "prep": "Tempo de preparación", + "cook": "Tempo de cociñado", + "total": "Tempo total", "fields": { - "name": "Nome da receita:", - "description": "Descrición da receita:", - "keywords": "Palabras clave:", - "category": "Categoría:", - "servings": "Racións:", - "source": "Orixe:", + "name": "Nome da receita", + "description": "Descrición da receita", + "keywords": "Palabras clave", + "category": "Categoría", + "servings": { + "1": "Ración", + "else": "Racións" + }, + "source": "Orixe", "source_button": "Orixe", - "image": "Imaxe:", + "image": "Imaxe", "time": { - "prep": "Tempo de preparación:", - "cook": "Tempo de cociñado:", - "total": "Tempo total:" + "prep": "Tempo de preparación", + "cook": "Tempo de cociñado", + "total": "Tempo total", + "hours": "Horas", + "minutes": "Minutos" }, - "tools": "Trebellos:", - "ingredients": "Ingredientes:", - "instructions": "Elaboración:" + "nutrition": { + "title": "Información nutricional", + "items": { + "calories": "Calorias", + "carbohydrateContent": "Carbohidratos", + "cholesterolContent": "Colesterol", + "fatContent": "Graxa total", + "fiberContent": "Fibra", + "proteinContent": "Proteinas", + "saturatedFatContent": "Grasas saturadas", + "servingSize": "Tamaño da ración", + "sodiumContent": "Sodio", + "sugarContent": "Azucre", + "transFatContent": "Contido de graxas trans", + "unsaturatedFatContent": "Contido de graxa insaturada" + } + }, + "general": "Xeral", + "times": "Veces", + "tools": "Trebellos", + "ingredients": "Ingredientes", + "instructions": "Elaboración" }, "errors": { "load_failed": "Produciuse un fallo ao cargar a receita!" @@ -85,32 +132,84 @@ }, "recipe_edit": { "title": "Editar a receita", - "button": "Actualizar a receita", + "button": "Gardar", "errors": { - "update_failed": "Produciuse un fallo ao actualizar {error_msg}" + "update_failed": "Produciuse un fallo na actualización {error_msg}" + }, + "delete": { + "title": "Eliminar a receita", + "dialog": "Confirma que quere eliminar definitivamente {recipe}?" } }, "recipe_create": { - "title": "Create Recipe", - "button": "Create Recipe", + "title": "Crear unha receita", + "button": "Crear", + "add_field": "engadir", + "remove_field": "retirar", "errors": { - "update_failed": "Create Failed {error_msg}" + "update_failed": "Produciuse un fallo na creación {error_msg}" + } + }, + "recipe_form": { + "dismiss_edit": { + "title": "Cancelar a edición", + "dialog": "Confirma que quere desbotar os seus cambios en {recipe}?" + }, + "dismiss_create": { + "title": "Cancelar a creación", + "dialog": "Confirma que quere desbotar a creación?" } }, "recipe_import": { - "title": "Import Recipe", - "button": "Import", - "field": "URL to Recipe", - "clipboard": "Paste Clipboard", + "title": "Importar receita", + "button": "Importar", + "field": "URL para a receita", "errors": { - "import_failed": "Import Failed {error_msg}" + "import_failed": "Produciuse un fallo na importación {error_msg}" } }, "search": { - "title": "Search Recipe", + "title": "Buscar receita", + "description": "Buscar receitas polo nome ou por palabra clave", "nothing_found": "Non se atopou ningunha receita.", "errors": { - "search_failed": "Unable to load all Recipes!\n{error_msg}" + "search_failed": "Non é posíbel cargar todas as receitas!\n{error_msg}" + } + }, + "timer": { + "title": "Os seus temporizadores", + "started": "Comezou o temporizador.", + "finished": "rematou.", + "button": { + "start": "iniciar o temporizador", + "cancel": "cancelar o temporizador" + }, + "done": "O temporizador rematou.", + "missing": "Ten que estabelecer o tempo de cocción para usar un temporizador.", + "empty_list": "Os seus temporizadores de execución amosaranse aquí." + }, + "settings": { + "title": "Axustes da aplicación", + "dark_mode": { + "title": "Modo escuro", + "system": "Predeterminado do sistema", + "dark": "Sempre", + "light": "Nunca" + }, + "language": { + "title": "Idioma" + }, + "stay_awake": { + "title": "Manter acesa", + "subtitle": "A pantalla permanecerá acesa mentres está na pantalla da receita." + }, + "recipe_font_size": { + "title": "Tamaño da letra da receita", + "subtitle": "Cambia o tamaño da letra dos utensilios, ingredientes e instrucións para unha mellor lexibilidade." + }, + "category_font_size": { + "title": "Tamaño da letra da categoría", + "subtitle": "Cambia o tamaño da letra do título da categoría. Isto pode ser útil se ten nomes de categoría longos." } } -} +} \ No newline at end of file diff --git a/assets/i18n/hr.json b/assets/i18n/hr.json index 99a6bb7d..9837f425 100644 --- a/assets/i18n/hr.json +++ b/assets/i18n/hr.json @@ -1,10 +1,18 @@ { "app_bar": { - "search": "Traži", - "refresh": "Osvježi", "logout": "Odjava", "clear_all": "Izbriši sve" }, + "alert": { + "discard": "Odbaci", + "clear": "Izbriši" + }, + "form": { + "validators": { + "invalid_number": "not a valid number", + "required": "required" + } + }, "login": { "title": "Prijava", "server_url": { @@ -39,13 +47,19 @@ "failed_remove_remote": "Uklanjanje udaljenog servisa App Password nije uspjelo!", "failure": "Postupak prijave nije pravilno završen.\n{status_code}\n{status_message}", "credentials_invalid": "Pohranjene vjerodajnice više nisu važeće i odjavljeni ste!", - "no_internet": "Authentication check was not successful.\nMaybe there is no internet connection?\nError Message: {error_msg}", - "wrong_status": "Authentication check was not successful.\nMaybe the provided server host is not correct?\nError Message: {error_msg}" + "no_internet": "Authentication was not successful.\nMaybe there is no internet connection?\nError Message: {error_msg}", + "wrong_status": "Authentication was not successful.\nMaybe the provided server host is not correct?\nError Message: {error_msg}" } }, "categories": { "title": "Kuharica", "all_categories": "Sve", + "uncategorized": "Nekategorizirani", + "items": { + "0": "no items", + "1": "1 item", + "else": "{{value}} items" + }, "drawer": { "import": "Uvezi recept", "settings": "Postavke" @@ -71,18 +85,21 @@ "cook": "Vrijeme kuhanja", "total": "Ukupno vrijeme", "fields": { - "name": "Naziv recepta:", - "description": "Opis recepta:", - "keywords": "Ključne riječi:", - "category": "Kategorija:", - "servings": "Obroci:", - "source": "Izvor:", + "name": "Recipe Name", + "description": "Recipe Description", + "keywords": "Ključne riječi", + "category": "Kategorija", + "servings": { + "1": "Serving", + "else": "Obroci" + }, + "source": "Izvor", "source_button": "Izvor", - "image": "Slika:", + "image": "Slika", "time": { - "prep": "Vrijeme pripreme:", - "cook": "Vrijeme kuhanja:", - "total": "Ukupno vrijeme:", + "prep": "Vrijeme pripreme", + "cook": "Vrijeme kuhanja", + "total": "Ukupno vrijeme", "hours": "Sati", "minutes": "Minute" }, @@ -103,9 +120,11 @@ "unsaturatedFatContent": "Udio nezasićenih masnih kiselina" } }, - "tools": "Alati:", - "ingredients": "Sastojci:", - "instructions": "Upute:" + "general": "Općenito", + "times": "Times", + "tools": "Alati", + "ingredients": "Sastojci", + "instructions": "Upute" }, "errors": { "load_failed": "Učitavanje recepta nije uspjelo!" @@ -116,26 +135,42 @@ "button": "Spremi", "errors": { "update_failed": "Ažuriranje nije uspjelo {error_msg}" + }, + "delete": { + "title": "Delete Recipe", + "dialog": "Are you sure you want to permanently delete {recipe}?" } }, "recipe_create": { "title": "Stvori recept", "button": "Stvori", + "add_field": "add", + "remove_field": "remove", "errors": { "update_failed": "Stvaranje nije uspjelo {error_msg}" } }, + "recipe_form": { + "dismiss_edit": { + "title": "Otkaži uređivanje", + "dialog": "Are you sure you want to discard your changes to {recipe}?" + }, + "dismiss_create": { + "title": "Cancel create", + "dialog": "Are you sure you want to discard the creation?" + } + }, "recipe_import": { "title": "Uvezi recept", "button": "Uvezi", "field": "URL recepta", - "clipboard": "Zalijepi sadržaj međuspremnika", "errors": { "import_failed": "Uvoz nije uspio {error_msg}" } }, "search": { "title": "Traži recept", + "description": "Search for recipes by name or keyword", "nothing_found": "Nije pronađen nijedan recept!", "errors": { "search_failed": "Nije moguće učitati sve recepte!\n{error_msg}" @@ -145,8 +180,13 @@ "title": "Vaši brojači vremena", "started": "Brojač vremena je pokrenut.", "finished": "is finished.", + "button": { + "start": "start timer", + "cancel": "cancel timer" + }, "done": "Brojač vremena je završio.", - "missing": "You need to set the cooking time to use a timer." + "missing": "You need to set the cooking time to use a timer.", + "empty_list": "Your running timers will be shown here." }, "settings": { "title": "Postavke aplikacije", @@ -172,4 +212,4 @@ "subtitle": "Mijenja veličinu fonta naslova kategorije. To može biti korisno ako imate duge nazive kategorija." } } -} +} \ No newline at end of file diff --git a/assets/i18n/hu_HU.json b/assets/i18n/hu_HU.json index 00a42d15..db5f8190 100644 --- a/assets/i18n/hu_HU.json +++ b/assets/i18n/hu_HU.json @@ -1,10 +1,18 @@ { "app_bar": { - "search": "Keresés", - "refresh": "Frissítés", "logout": "Kijelentkezés", "clear_all": "Összes törlése" }, + "alert": { + "discard": "Elvetés", + "clear": "Törlés" + }, + "form": { + "validators": { + "invalid_number": "nem érvényes szám", + "required": "kötelező" + } + }, "login": { "title": "Bejelentkezés", "server_url": { @@ -39,13 +47,19 @@ "failed_remove_remote": "Nem sikerült eltávolítani a távoli alkalmazásjelszót.", "failure": "A bejelentkezési folyamat nem fejeződött be megfelelően.\n{status_code}\n{status_message}", "credentials_invalid": "A tárolt hitelesítő adatok már nem érvényesek, így ki lett jelentkeztetve.", - "no_internet": "A hitelesítési ellenőrzés sikertelen volt.\nTalán nincs internetkapcsolat?\nHibaüzenet: {error_msg}", - "wrong_status": "A hitelesítési ellenőrzés sikertelen volt.\nTalán a megadott kiszolgáló helytelen?\nHibaüzenet: {error_msg}" + "no_internet": "A hitelesítés nem sikerült.\nLehet, hogy nincs internetkapcsolat?\nHibaüzenet: {error_msg}", + "wrong_status": "A hitelesítés nem sikerült.\nLehet, hogy a megadott kiszolgáló helytelen?\nHibaüzenet: {error_msg}" } }, "categories": { "title": "Receptkönyv", "all_categories": "Mind", + "uncategorized": "Kategorizálatlan", + "items": { + "0": "nincsenek elemek", + "1": "1 elem", + "else": "{{value}} elem" + }, "drawer": { "import": "Recept importálása", "settings": "Beállítások" @@ -71,18 +85,21 @@ "cook": "Főzési idő", "total": "Teljes idő", "fields": { - "name": "Recept neve:", - "description": "Recept leírása:", - "keywords": "Kulcsszavak:", - "category": "Kategória:", - "servings": "Adagok:", - "source": "Forrás:", + "name": "Recept neve", + "description": "Recept leírása", + "keywords": "Kulcsszavak", + "category": "Kategória", + "servings": { + "1": "Adag", + "else": "Adagok" + }, + "source": "Forrás", "source_button": "Forrás", - "image": "Kép:", + "image": "Kép", "time": { - "prep": "Elkészítési idő:", - "cook": "Főzési idő:", - "total": "Teljes idő:", + "prep": "Előkészítési idő", + "cook": "Főzési idő", + "total": "Teljes idő", "hours": "Óra", "minutes": "Perc" }, @@ -103,9 +120,11 @@ "unsaturatedFatContent": "Telítetlen zsírtartalom" } }, - "tools": "Eszközök:", - "ingredients": "Hozzávalók:", - "instructions": "Leírások:" + "general": "Általános", + "times": "Idők", + "tools": "Eszközök", + "ingredients": "Hozzávalók", + "instructions": "Utasítások" }, "errors": { "load_failed": "Nem sikerült betölteni a receptet." @@ -116,26 +135,42 @@ "button": "Mentés", "errors": { "update_failed": "Sikertelen frissítés {error_msg}" + }, + "delete": { + "title": "Recept törlése", + "dialog": "Biztos, hogy véglegesen törli a következőt: {recipe}?" } }, "recipe_create": { "title": "Recept létrehozása", "button": "Létrehozás", + "add_field": "hozzáadás", + "remove_field": "eltávolítás", "errors": { "update_failed": "Sikertelen létrehozás {error_msg}" } }, + "recipe_form": { + "dismiss_edit": { + "title": "Változások elvetése", + "dialog": "Biztos, hogy törli ezt a következő recept változtatásait: {recipe}?" + }, + "dismiss_create": { + "title": "Létrehozás megszakítása", + "dialog": "Biztos, hogy elveti a létrehozást?" + } + }, "recipe_import": { "title": "Recept importálása", "button": "Importálás", "field": "Recept webcíme", - "clipboard": "Vágólap beillesztése", "errors": { "import_failed": "Sikertelen importálás {error_msg}" } }, "search": { "title": "Recept keresése", + "description": "Receptek keresése név vagy kulcsszó alapján", "nothing_found": "Nem található recept!", "errors": { "search_failed": "Nem tölthető be az összes recept!\n{error_msg}" @@ -145,8 +180,13 @@ "title": "Saját időzítők", "started": "Az időzítő elindult.", "finished": " befejeződött.", + "button": { + "start": "időzítő indítása", + "cancel": "időzítő megszakítása" + }, "done": "Az időzítő kész.", - "missing": "Az időzítő használatához be kell állítania a főzési időt." + "missing": "Az időzítő használatához be kell állítania a főzési időt.", + "empty_list": "A futó időzítők itt fognak megjelenni." }, "settings": { "title": "Alkalmazásbeállítások", @@ -172,4 +212,4 @@ "subtitle": "Módosítja a kategóriacím betűméretét. Ez akkor lehet hasznos, ha hosszú kategórianevei vannak." } } -} +} \ No newline at end of file diff --git a/assets/i18n/is.json b/assets/i18n/is.json index 7431fbd5..eb8cd230 100644 --- a/assets/i18n/is.json +++ b/assets/i18n/is.json @@ -1,10 +1,18 @@ { "app_bar": { - "search": "Search", - "refresh": "Endurnýja", "logout": "Útskráning", "clear_all": "Clear all" }, + "alert": { + "discard": "Fleygja", + "clear": "Hreinsa" + }, + "form": { + "validators": { + "invalid_number": "not a valid number", + "required": "required" + } + }, "login": { "title": "Innskráning", "server_url": { @@ -39,13 +47,19 @@ "failed_remove_remote": "Failed to remove remote App Password!", "failure": "Login Process could not finish properly.\n{status_code}\n{status_message}", "credentials_invalid": "The stored credentials where no longer valid an you have been logged out!", - "no_internet": "Authentication check was not successful.\nMaybe there is no internet connection?\nError Message: {error_msg}", - "wrong_status": "Authentication check was not successful.\nMaybe the provided server host is not correct?\nError Message: {error_msg}" + "no_internet": "Authentication was not successful.\nMaybe there is no internet connection?\nError Message: {error_msg}", + "wrong_status": "Authentication was not successful.\nMaybe the provided server host is not correct?\nError Message: {error_msg}" } }, "categories": { "title": "Uppskriftabók", "all_categories": "Allt", + "uncategorized": "Óflokkað", + "items": { + "0": "no items", + "1": "1 item", + "else": "{{value}} items" + }, "drawer": { "import": "Import Recipe", "settings": "Stillingar" @@ -71,18 +85,21 @@ "cook": "Eldunartími", "total": "Heildartími", "fields": { - "name": "Recipe Name:", - "description": "Recipe Description:", - "keywords": "Keywords:", - "category": "Category:", - "servings": "Servings:", - "source": "Source:", + "name": "Recipe Name", + "description": "Recipe Description", + "keywords": "Stikkorð", + "category": "Flokkur", + "servings": { + "1": "Serving", + "else": "Nóg fyrir" + }, + "source": "Heimild", "source_button": "Heimild", - "image": "Image:", + "image": "Mynd", "time": { - "prep": "Preparation time:", - "cook": "Cooking time:", - "total": "Total time:", + "prep": "Undirbúningstími", + "cook": "Eldunartími", + "total": "Heildartími", "hours": "klukkustundir", "minutes": "mínútur" }, @@ -103,9 +120,11 @@ "unsaturatedFatContent": "Unsaturated-fat content" } }, - "tools": "Tools:", - "ingredients": "Ingredients:", - "instructions": "Instructions:" + "general": "Almennt", + "times": "Times", + "tools": "Áhöld", + "ingredients": "Innihaldsefni", + "instructions": "Leiðbeiningar" }, "errors": { "load_failed": "Failed to load Recipe!" @@ -116,26 +135,42 @@ "button": "Vista", "errors": { "update_failed": "Update Failed {error_msg}" + }, + "delete": { + "title": "Delete Recipe", + "dialog": "Are you sure you want to permanently delete {recipe}?" } }, "recipe_create": { "title": "Create Recipe", "button": "Búa til", + "add_field": "bæta við", + "remove_field": "remove", "errors": { "update_failed": "Create Failed {error_msg}" } }, + "recipe_form": { + "dismiss_edit": { + "title": "Hætta við breytingar", + "dialog": "Are you sure you want to discard your changes to {recipe}?" + }, + "dismiss_create": { + "title": "Cancel create", + "dialog": "Are you sure you want to discard the creation?" + } + }, "recipe_import": { "title": "Import Recipe", "button": "Flytja inn", "field": "URL to Recipe", - "clipboard": "Paste Clipboard", "errors": { "import_failed": "Import Failed {error_msg}" } }, "search": { "title": "Search Recipe", + "description": "Search for recipes by name or keyword", "nothing_found": "No recipe found!", "errors": { "search_failed": "Unable to load all Recipes!\n{error_msg}" @@ -145,8 +180,13 @@ "title": "Your timers", "started": "Timer started.", "finished": "is finished.", + "button": { + "start": "start timer", + "cancel": "cancel timer" + }, "done": "Timer is done.", - "missing": "You need to set the cooking time to use a timer." + "missing": "You need to set the cooking time to use a timer.", + "empty_list": "Your running timers will be shown here." }, "settings": { "title": "App Settings", @@ -172,4 +212,4 @@ "subtitle": "Changes the font size of category title. This can be useful if you have long category names." } } -} +} \ No newline at end of file diff --git a/assets/i18n/it.json b/assets/i18n/it.json index 6d57973d..1a42e76a 100644 --- a/assets/i18n/it.json +++ b/assets/i18n/it.json @@ -1,10 +1,18 @@ { "app_bar": { - "search": "Cerca", - "refresh": "Aggiorna", "logout": "Esci", "clear_all": "Cancella tutto" }, + "alert": { + "discard": "Scarta", + "clear": "Pulisci" + }, + "form": { + "validators": { + "invalid_number": "not a valid number", + "required": "required" + } + }, "login": { "title": "Accedi", "server_url": { @@ -39,13 +47,19 @@ "failed_remove_remote": "Impossibile rimuovere la password dell'applicazione remota!", "failure": "L'accesso non è stato completato correttamente.\n{status_code}\n{status_message}", "credentials_invalid": "Le credenziali memorizzate non sono più valide e sei stato disconnesso!", - "no_internet": "La verifica dell'autenticazione non è riuscita.\nForse non c'è connessione a Internet?\nMessaggio di errore: {error_msg}", - "wrong_status": "La verifica dell'autenticazione non è riuscita.\nÈ possibile che l'host del server fornito non sia corretto?\nMessaggio di errore: {error_msg}" + "no_internet": "Autenticazione fallita\nPotrebbe essere che non sei connesso a Internet?\nMessaggio d'errore: {error_msg}", + "wrong_status": "Autenticazione fallita\nPotrebbe essere che il server host che hai inserito non sia corretto?\nMessaggio d'errore: {error_msg}" } }, "categories": { "title": "Ricettario", "all_categories": "Tutte", + "uncategorized": "Senza categoria", + "items": { + "0": "no items", + "1": "1 item", + "else": "{{value}} items" + }, "drawer": { "import": "Importa ricetta", "settings": "Impostazioni" @@ -71,18 +85,21 @@ "cook": "Tempo di cottura", "total": "Tempo totale", "fields": { - "name": "Nome della ricetta:", - "description": "Descrizione della ricetta:", - "keywords": "Parole chiave:", - "category": "Categoria:", - "servings": "Porzioni:", - "source": "Fonte:", + "name": "Nome della ricetta", + "description": "Descrizione della ricetta", + "keywords": "Parole chiave", + "category": "Categoria", + "servings": { + "1": "Serving", + "else": "Porzioni" + }, + "source": "Fonte", "source_button": "Fonte", - "image": "Immagine:", + "image": "Immagine", "time": { - "prep": "Tempo di preparazione:", - "cook": "Tempo di cottura:", - "total": "Tempo totale:", + "prep": "Tempo di preparazione", + "cook": "Tempo di cottura", + "total": "Tempo totale", "hours": "Ore", "minutes": "Minuti" }, @@ -103,9 +120,11 @@ "unsaturatedFatContent": "Contenuto di grassi insaturi" } }, - "tools": "Strumenti:", - "ingredients": "Ingredienti:", - "instructions": "Istruzioni:" + "general": "Generale", + "times": "Times", + "tools": "Strumenti", + "ingredients": "Ingredienti", + "instructions": "Istruzioni" }, "errors": { "load_failed": "Caricamento della ricetta non riuscito!" @@ -116,26 +135,42 @@ "button": "Salva", "errors": { "update_failed": "Aggiornamento non riuscito {error_msg}" + }, + "delete": { + "title": "Delete Recipe", + "dialog": "Are you sure you want to permanently delete {recipe}?" } }, "recipe_create": { "title": "Crea ricetta", "button": "Crea", + "add_field": "aggiungi", + "remove_field": "remove", "errors": { "update_failed": "Creazione non riuscita {error_msg}" } }, + "recipe_form": { + "dismiss_edit": { + "title": "Annulla modifica", + "dialog": "Are you sure you want to discard your changes to {recipe}?" + }, + "dismiss_create": { + "title": "Cancel create", + "dialog": "Are you sure you want to discard the creation?" + } + }, "recipe_import": { "title": "Importa ricetta", "button": "Importa", "field": "URL della ricetta", - "clipboard": "Incolla gli appunti", "errors": { "import_failed": "Importazione non riuscita {error_msg}" } }, "search": { "title": "Cerca ricetta", + "description": "Search for recipes by name or keyword", "nothing_found": "Nessuna ricetta trovata", "errors": { "search_failed": "Impossibile caricare tutte le ricette!\n{error_msg}" @@ -145,8 +180,13 @@ "title": "I tuoi timer", "started": "Il timer è partito.", "finished": "è terminato.", + "button": { + "start": "start timer", + "cancel": "cancel timer" + }, "done": "Il timer è terminato.", - "missing": "You need to set the cooking time to use a timer." + "missing": "You need to set the cooking time to use a timer.", + "empty_list": "Your running timers will be shown here." }, "settings": { "title": "Impostazioni dell'applicazione", @@ -172,4 +212,4 @@ "subtitle": "Cambia la dimensione del carattere del titolo della categoria. Può essere utile se hai nomi di categoria lunghi." } } -} +} \ No newline at end of file diff --git a/assets/i18n/nl.json b/assets/i18n/nl.json index 7a2ea26a..c3df3d8f 100644 --- a/assets/i18n/nl.json +++ b/assets/i18n/nl.json @@ -1,10 +1,18 @@ { "app_bar": { - "search": "Zoeken", - "refresh": "Verversen", "logout": "Uitloggen", "clear_all": "Wis alles" }, + "alert": { + "discard": "Weggooien", + "clear": "Terug" + }, + "form": { + "validators": { + "invalid_number": "not a valid number", + "required": "required" + } + }, "login": { "title": "Inloggen", "server_url": { @@ -39,13 +47,19 @@ "failed_remove_remote": "Kon het remote App-wachtwoord niet verwijderen!", "failure": "Het inlogproces kon niet goed eindigen.\n {status_code}\n {status_message}", "credentials_invalid": "De opgeslagen inloggegevens zijn niet meer geldig en je bent uitgelogd!", - "no_internet": "Authenticatie is niet gelukt.\nMisschien is er geen internetverbinding?\nFoutmelding: {error_msg}", - "wrong_status": "Authenticatiecontrole is niet gelukt.\nMisschien is de opgegeven host niet correct?\nFoutmelding: {error_msg}" + "no_internet": "Authentication was not successful.\nMaybe there is no internet connection?\nError Message: {error_msg}", + "wrong_status": "Authentication was not successful.\nMaybe the provided server host is not correct?\nError Message: {error_msg}" } }, "categories": { "title": "Kookboek", "all_categories": "Alle", + "uncategorized": "Niet gecategoriseerd", + "items": { + "0": "no items", + "1": "1 item", + "else": "{{value}} items" + }, "drawer": { "import": "Importeren recept", "settings": "Instellingen" @@ -71,18 +85,21 @@ "cook": "Kooktijd", "total": "Totale tijd", "fields": { - "name": "Receptnaam:", + "name": "Receptnaam", "description": "Receptbeschrijving", - "keywords": "Sleutelwoorden:", - "category": "Categorie:", - "servings": "Porties:", - "source": "Bron:", + "keywords": "Trefwoorden", + "category": "Categorie", + "servings": { + "1": "Serving", + "else": "Porties" + }, + "source": "Bron", "source_button": "Bron", - "image": "Afbeelding:", + "image": "Afbeelding", "time": { - "prep": "Voorbereidingstijd:", - "cook": "Kooktijd:", - "total": "Totale tijd:", + "prep": "Voorbereidingstijd", + "cook": "Kooktijd", + "total": "Totale tijd", "hours": "Uur", "minutes": "Minuten" }, @@ -103,9 +120,11 @@ "unsaturatedFatContent": "Onverzadigd vetgehalte" } }, + "general": "Algemeen", + "times": "Times", "tools": "Hulpmiddelen", - "ingredients": "Ingrediënten:", - "instructions": "Instructies:" + "ingredients": "Ingrediënten", + "instructions": "Instructies" }, "errors": { "load_failed": "Kon recept niet laden!" @@ -116,26 +135,42 @@ "button": "Opslaan", "errors": { "update_failed": "Bijwerken mislukt {error_msg}" + }, + "delete": { + "title": "Delete Recipe", + "dialog": "Are you sure you want to permanently delete {recipe}?" } }, "recipe_create": { "title": "Maak een recept", "button": "Creëren", + "add_field": "Toevoegen", + "remove_field": "remove", "errors": { "update_failed": "Aanmaken mislukt {error_msg}" } }, + "recipe_form": { + "dismiss_edit": { + "title": "Annuleer bewerking", + "dialog": "Are you sure you want to discard your changes to {recipe}?" + }, + "dismiss_create": { + "title": "Cancel create", + "dialog": "Are you sure you want to discard the creation?" + } + }, "recipe_import": { "title": "Importeren recept", "button": "Import", "field": "URL naar recept", - "clipboard": "Plakken klembord", "errors": { "import_failed": "Import mislukt {error_msg}" } }, "search": { "title": "Zoek recept", + "description": "Search for recipes by name or keyword", "nothing_found": "Geen recept gevonden!", "errors": { "search_failed": "Kon niet alle recepten niet laden!\n{error_msg}" @@ -145,8 +180,13 @@ "title": "Jouw timers", "started": "Timer gestart.", "finished": "is klaar.", + "button": { + "start": "start timer", + "cancel": "cancel timer" + }, "done": "Timer is klaar.", - "missing": "You need to set the cooking time to use a timer." + "missing": "You need to set the cooking time to use a timer.", + "empty_list": "Your running timers will be shown here." }, "settings": { "title": "App Instellingen", @@ -172,4 +212,4 @@ "subtitle": "Veranderingen in de lettertype grootte van de categorie titel. Dit kan handig zijn als je lange categorienamen hebt." } } -} +} \ No newline at end of file diff --git a/assets/i18n/pl.json b/assets/i18n/pl.json index 351e707d..e076e84a 100644 --- a/assets/i18n/pl.json +++ b/assets/i18n/pl.json @@ -1,10 +1,18 @@ { "app_bar": { - "search": "Szukaj", - "refresh": "Odśwież", "logout": "Wyloguj", "clear_all": "Wyczyść wszystko" }, + "alert": { + "discard": "Odrzuć", + "clear": "Wyczyść " + }, + "form": { + "validators": { + "invalid_number": "not a valid number", + "required": "required" + } + }, "login": { "title": "Zaloguj", "server_url": { @@ -39,13 +47,19 @@ "failed_remove_remote": "Nie udało się usunąć zdalnego hasła do aplikacji!", "failure": "Proces logowania nie mógł zakończyć się poprawnie.\n{status_code}\n{status_message}", "credentials_invalid": "Zapisane dane uwierzytelniające są już nie ważne i zostałeś wylogowany!", - "no_internet": "Sprawdzenie uwierzytelniania nie powiodło się.\nMoże nie ma połączenia z internetem?\nKomunikat o błędzie: {error_msg}", - "wrong_status": "Sprawdzenie uwierzytelniania nie powiodło się.\nMoże podany host serwera nie jest poprawny?\nKomunikat o błędzie: {error_msg}" + "no_internet": "Uwierzytelnianie nie powiodło się.\nMoże nie ma połączenia z internetem?\nKomunikat o błędzie: {error_msg}", + "wrong_status": "Uwierzytelnianie nie powiodło się.\nMoże podany host serwera jest nieprawidłowy?\nKomunikat o błędzie: {error_msg}" } }, "categories": { "title": "Książka kucharska", "all_categories": "Wszystkie", + "uncategorized": "Bez kategorii", + "items": { + "0": "no items", + "1": "1 item", + "else": "{{value}} items" + }, "drawer": { "import": "Importuj przepis", "settings": "Ustawienia" @@ -71,18 +85,21 @@ "cook": "Czas gotowania", "total": "Czas całkowity", "fields": { - "name": "Nazwa przepisu:", - "description": "Opis przepisu:", - "keywords": "Słowa kluczowe:", - "category": "Kategoria:", - "servings": "Porcje:", - "source": "Źródło:", + "name": "Recipe Name", + "description": "Recipe Description", + "keywords": "Słowa kluczowe", + "category": "Kategoria", + "servings": { + "1": "Serving", + "else": "Porcje" + }, + "source": "Źródło", "source_button": "Źródło", - "image": "Obraz:", + "image": "Obraz", "time": { - "prep": "Czas przygotowania:", - "cook": "Czas gotowania:", - "total": "Czas całkowity:", + "prep": "Czas przygotowania", + "cook": "Czas gotowania", + "total": "Czas całkowity", "hours": "Godziny", "minutes": "Minuty" }, @@ -103,7 +120,9 @@ "unsaturatedFatContent": "Zawartość tłuszczu nienasyconego" } }, - "tools": "Przybory:", + "general": "Ogólne", + "times": "Times", + "tools": "Przybory", "ingredients": "Składniki:", "instructions": "Instrukcje:" }, @@ -116,26 +135,42 @@ "button": "Zapisz", "errors": { "update_failed": "Aktualizacja nie powiodła się {error_msg}" + }, + "delete": { + "title": "Delete Recipe", + "dialog": "Are you sure you want to permanently delete {recipe}?" } }, "recipe_create": { "title": "Utwórz przepis", "button": "Utwórz", + "add_field": "dodaj", + "remove_field": "remove", "errors": { "update_failed": "Utworzenie nie powiodło się {error_msg}" } }, + "recipe_form": { + "dismiss_edit": { + "title": "Anuluj edycję", + "dialog": "Are you sure you want to discard your changes to {recipe}?" + }, + "dismiss_create": { + "title": "Cancel create", + "dialog": "Are you sure you want to discard the creation?" + } + }, "recipe_import": { "title": "Importuj przepis", "button": "Importuj", "field": "Adres URL do przepisu", - "clipboard": "Wklej ze schowka", "errors": { "import_failed": "Import nieudany {error_msg}" } }, "search": { "title": "Szukaj przepisu", + "description": "Search for recipes by name or keyword", "nothing_found": "Nie znaleziono przepisu!", "errors": { "search_failed": "Nie można załadować wszystkich przepisów!\n{error_msg}" @@ -145,8 +180,13 @@ "title": "Twój czas", "started": "Uruchomiony minutnik.", "finished": "zakończone.", + "button": { + "start": "start timer", + "cancel": "cancel timer" + }, "done": "Minutnik jest gotowy.", - "missing": "Aby korzystać z minutnika, musisz ustawić czas gotowania." + "missing": "Aby korzystać z minutnika, musisz ustawić czas gotowania.", + "empty_list": "Your running timers will be shown here." }, "settings": { "title": "Ustawienia aplikacji", @@ -172,4 +212,4 @@ "subtitle": "Zmienia rozmiar czcionki tytułu kategorii. Może to być przydatne, jeśli masz długie nazwy kategorii." } } -} +} \ No newline at end of file diff --git a/assets/i18n/pt_BR.json b/assets/i18n/pt_BR.json index 67505a74..68bf60ea 100644 --- a/assets/i18n/pt_BR.json +++ b/assets/i18n/pt_BR.json @@ -1,10 +1,18 @@ { "app_bar": { - "search": "Pesquisar", - "refresh": "Atualizar", "logout": "Sair", "clear_all": "Apagar tudo" }, + "alert": { + "discard": "Descartar", + "clear": "Limpar" + }, + "form": { + "validators": { + "invalid_number": "Nenhuma conta disponível...", + "required": "obrigatório" + } + }, "login": { "title": "Entrar", "server_url": { @@ -39,13 +47,19 @@ "failed_remove_remote": "Falha ao remover a senha do app remoto! ", "failure": "O processo de login não pôde terminar corretamente. \n{status_code}\n{status_message}", "credentials_invalid": "As credenciais armazenadas não eram mais válidas e você foi desconectado!", - "no_internet": "A verificação de autenticação não foi bem-sucedida.\nTalvez não haja conexão com a internet?\nMensagem de erro: {error_msg}", - "wrong_status": "A verificação de autenticação não foi bem-sucedida.\nTalvez o host do servidor fornecido não esteja correto?\nMensagem de erro: {error_msg}" + "no_internet": "A autenticação não foi bem-sucedida.\nTalvez não haja conexão com a internet?\nMensagem de Erro: {error_msg}", + "wrong_status": "A autenticação não foi bem-sucedida.\nTalvez o host do servidor fornecido não esteja correto?\nMensagem de Erro: {error_msg}" } }, "categories": { "title": "Livro de receitas", "all_categories": "Tudo", + "uncategorized": "Sem categoria", + "items": { + "0": "obrigatório", + "1": "1 item", + "else": "{{value}} itens" + }, "drawer": { "import": "Importar Receita", "settings": "Configurações" @@ -71,18 +85,21 @@ "cook": "Tempo de Cozimento", "total": "Tempo total", "fields": { - "name": "Nome da receita:", - "description": "Descrição da receita:", - "keywords": "Palavras chave:", - "category": "Categoria:", - "servings": "Porções:", - "source": "Origem:", + "name": "Nome da Receita", + "description": "Descrição da Receita", + "keywords": "Palavras-chave", + "category": "Categoria", + "servings": { + "1": "Servindo", + "else": "Porções" + }, + "source": "Origem", "source_button": "Origem", - "image": "Imagem:", + "image": "Imagem", "time": { - "prep": "Tempo de preparo:", - "cook": "Tempo de cozimento:", - "total": "Tempo total:", + "prep": "Tempo de preparação", + "cook": "Tempo de Cozimento", + "total": "Tempo total", "hours": "Horas", "minutes": "Minutos" }, @@ -103,9 +120,11 @@ "unsaturatedFatContent": "Conteúdo de gordura insaturada" } }, - "tools": "Utensílios:", - "ingredients": "Ingredientes:", - "instructions": "Instruções:" + "general": "Geral", + "times": "Horários", + "tools": "Ferramentas", + "ingredients": "Ingredientes", + "instructions": "Instruções" }, "errors": { "load_failed": "Erro ao carregar a receita!" @@ -116,26 +135,42 @@ "button": "Salvar", "errors": { "update_failed": "Erro na atualização {error_msg}" + }, + "delete": { + "title": "Excluir receita", + "dialog": "Tem certeza de que deseja excluir {receita} permanentemente?" } }, "recipe_create": { "title": "Criar Receita ", "button": "Criar", + "add_field": "adicionar", + "remove_field": "remover", "errors": { "update_failed": "Falha ao criar {error_msg} " } }, + "recipe_form": { + "dismiss_edit": { + "title": "Cancelar edição", + "dialog": "Tem certeza de que deseja descartar suas alterações em {receita}?" + }, + "dismiss_create": { + "title": "Cancelar criação", + "dialog": "Tem certeza de que deseja descartar a criação?" + } + }, "recipe_import": { "title": "Importar Receita", "button": "Importar", "field": "URL para Receita", - "clipboard": "Colar área de transferência", "errors": { "import_failed": "Importar Falhou {error_msg}" } }, "search": { "title": "Pesquisa de Receita", + "description": "Pesquise receitas por nome ou palavra-chave", "nothing_found": "Nenhuma receita encontrada!", "errors": { "search_failed": "Não foi possível carregar todas as receitas!\n{error_msg}" @@ -145,8 +180,13 @@ "title": "Seus temporizadores", "started": "Cronômetro inicializado.", "finished": "está finalizado.", + "button": { + "start": "iniciar cronômetro", + "cancel": "cancelar cronônmetro" + }, "done": "Temporizador finalizou..", - "missing": "Você precisa definir o tempo de cozimento para usar um cronômetro." + "missing": "Você precisa definir o tempo de cozimento para usar um cronômetro.", + "empty_list": "Seus cronômetros de execução serão mostrados aqui." }, "settings": { "title": "Configurações do Aplicativo", @@ -172,4 +212,4 @@ "subtitle": "Altera o tamanho da fonte do título da categoria. Isso pode ser útil se você tiver nomes de categorias longas." } } -} +} \ No newline at end of file diff --git a/assets/i18n/ru.json b/assets/i18n/ru.json index 252de395..e1f350fe 100644 --- a/assets/i18n/ru.json +++ b/assets/i18n/ru.json @@ -1,10 +1,18 @@ { "app_bar": { - "search": "Поиск", - "refresh": "Обновить", "logout": "Выйти", "clear_all": "Очистить всё" }, + "alert": { + "discard": "Отмена", + "clear": "Очистить" + }, + "form": { + "validators": { + "invalid_number": "not a valid number", + "required": "required" + } + }, "login": { "title": "Войти", "server_url": { @@ -39,13 +47,19 @@ "failed_remove_remote": "Не удалось удалить пароль приложения!", "failure": "Процесс входа не может завершиться должным образом.\n{status_code}\n{status_message}", "credentials_invalid": "Сохраненные учетные данные больше не действительны, и вы вышли из системы!", - "no_internet": "Аутентификация не прошла успешно.\nВозможно, отсутствует подключение к Интернету?\nСообщение об ошибке: {error_msg}", - "wrong_status": "Аутентификация не была успешной.\nВозможно, указанный хост сервера неверен?\nСообщение об ошибке: {error_msg}" + "no_internet": "Authentication was not successful.\nMaybe there is no internet connection?\nError Message: {error_msg}", + "wrong_status": "Authentication was not successful.\nMaybe the provided server host is not correct?\nError Message: {error_msg}" } }, "categories": { "title": "Кулинарная книга", "all_categories": "Все", + "uncategorized": "Без категории", + "items": { + "0": "no items", + "1": "1 item", + "else": "{{value}} items" + }, "drawer": { "import": "Импортировать рецепт", "settings": "Настройки" @@ -71,18 +85,21 @@ "cook": "Время готовки", "total": "Общее время", "fields": { - "name": "Название рецепта:", - "description": "Описание рецепта:", - "keywords": "Ключевые слова:", - "category": "Категория:", - "servings": "Порции:", - "source": "Источник:", + "name": "Recipe Name", + "description": "Recipe Description", + "keywords": "Ключевые слова", + "category": "Категория", + "servings": { + "1": "Serving", + "else": "Порции" + }, + "source": "Источник", "source_button": "Источник", - "image": "Изображение:", + "image": "Изображение", "time": { - "prep": "Время на подготовку:", - "cook": "Время готовки:", - "total": "Общее время:", + "prep": "Время приготовления", + "cook": "Время готовки", + "total": "Общее время", "hours": "Часов", "minutes": "Минуты" }, @@ -103,9 +120,11 @@ "unsaturatedFatContent": "Содержание ненасыщенных жиров" } }, - "tools": "Инструменты:", - "ingredients": "Ингредиенты:", - "instructions": "Инструкции:" + "general": "Основные", + "times": "Times", + "tools": "Инструменты", + "ingredients": "Ингредиенты", + "instructions": "Инструкции" }, "errors": { "load_failed": "Не удалось загрузить рецепт!" @@ -116,26 +135,42 @@ "button": "Сохранить", "errors": { "update_failed": "Ошибка обновления {error_msg}" + }, + "delete": { + "title": "Delete Recipe", + "dialog": "Are you sure you want to permanently delete {recipe}?" } }, "recipe_create": { "title": "Создать Рецепт", "button": "Создать", + "add_field": "добавить", + "remove_field": "remove", "errors": { "update_failed": "Не удалось создать {error_msg}" } }, + "recipe_form": { + "dismiss_edit": { + "title": "Отменить правку", + "dialog": "Are you sure you want to discard your changes to {recipe}?" + }, + "dismiss_create": { + "title": "Cancel create", + "dialog": "Are you sure you want to discard the creation?" + } + }, "recipe_import": { "title": "Импортировать рецепт", "button": "Импортировать", "field": "URL-адрес рецепта", - "clipboard": "Вставить буфер обмена", "errors": { "import_failed": "Ошибка импорта {error_msg}" } }, "search": { "title": "Поиск рецепта", + "description": "Search for recipes by name or keyword", "nothing_found": "Рецепт не найден!", "errors": { "search_failed": "Невозможно загрузить все рецепты!\n{error_msg}" @@ -145,8 +180,13 @@ "title": "Ваши таймеры", "started": "Таймер запущен.", "finished": "закончен.", + "button": { + "start": "start timer", + "cancel": "cancel timer" + }, "done": "Таймер завершён.", - "missing": "Для использования таймера необходимо установить время приготовления." + "missing": "Для использования таймера необходимо установить время приготовления.", + "empty_list": "Your running timers will be shown here." }, "settings": { "title": "Настройки приложения", @@ -172,4 +212,4 @@ "subtitle": "Изменяет размер шрифта заголовка категории. Это может быть полезно, если у вас длинные названия категорий." } } -} +} \ No newline at end of file diff --git a/assets/i18n/sk_SK.json b/assets/i18n/sk_SK.json index b460bfa3..6a7409a8 100644 --- a/assets/i18n/sk_SK.json +++ b/assets/i18n/sk_SK.json @@ -1,10 +1,18 @@ { "app_bar": { - "search": "Hľadať", - "refresh": "Obnoviť", "logout": "Odhlásiť", "clear_all": "Vyčistiť všetko" }, + "alert": { + "discard": "Odstrániť", + "clear": "Vyčistiť" + }, + "form": { + "validators": { + "invalid_number": "not a valid number", + "required": "required" + } + }, "login": { "title": "Prihlásenie", "server_url": { @@ -39,13 +47,19 @@ "failed_remove_remote": "Vymazanie hesla vzdialenej Aplikácie zlyhalo!", "failure": "Prihlasovací proces nemohol byť korektne ukončený.\n{status_code}\n{status_message}", "credentials_invalid": "Uložené prihlasovacie údaje nie sú naďalej platné a budete odhlásený!", - "no_internet": "Kontrola overenia nebola úspešná.\nMožno nemáte internetové pripojenie?\nChybové hlásenie: {error_msg}", - "wrong_status": "Kontrola overenia nebola úspešná.\nMožno nemáte internetové pripojenie?\nChybové hlásenie: {error_msg}" + "no_internet": "Authentication was not successful.\nMaybe there is no internet connection?\nError Message: {error_msg}", + "wrong_status": "Authentication was not successful.\nMaybe the provided server host is not correct?\nError Message: {error_msg}" } }, "categories": { "title": "Kuchárska kniha", "all_categories": "Všetko", + "uncategorized": "Nezaradené", + "items": { + "0": "no items", + "1": "1 item", + "else": "{{value}} items" + }, "drawer": { "import": "Importovať Recept", "settings": "Nastavenia" @@ -71,18 +85,21 @@ "cook": "Čas varenia", "total": "Celkový čas", "fields": { - "name": "Názov receptu:", - "description": "Popis receptu:", - "keywords": "Kľúčové slová:", - "category": "Kategória:", - "servings": "Počet porcií:", - "source": "Zdroj:", + "name": "Recipe Name", + "description": "Recipe Description", + "keywords": "Kľúčové slová", + "category": "Kategória", + "servings": { + "1": "Serving", + "else": "Počet porcií" + }, + "source": "Zdroj", "source_button": "Zdroj", - "image": "Obrázok:", + "image": "Obrázok", "time": { - "prep": "Doba prípravy:", - "cook": "Doba varenia:", - "total": "Celkový čas:", + "prep": "Doba prípravy", + "cook": "Čas varenia", + "total": "Celkový čas", "hours": "Hodín", "minutes": "Minúty" }, @@ -103,9 +120,11 @@ "unsaturatedFatContent": "Obsah nenasýtených tukov" } }, - "tools": "Nástroje:", - "ingredients": "Prísady:", - "instructions": "Postup:" + "general": "Všeobecné", + "times": "Times", + "tools": "Nástroje", + "ingredients": "Prísady", + "instructions": "Postup" }, "errors": { "load_failed": "Nepodarilo sa načítať Recept!" @@ -116,26 +135,42 @@ "button": "Uložiť", "errors": { "update_failed": "Aktualizácia zlyhala {error_msg}" + }, + "delete": { + "title": "Delete Recipe", + "dialog": "Are you sure you want to permanently delete {recipe}?" } }, "recipe_create": { "title": "Vytvoriť Recept", "button": "Vytvoriť", + "add_field": "pridať", + "remove_field": "remove", "errors": { "update_failed": "Vytváranie zlyhalo {error_msg}" } }, + "recipe_form": { + "dismiss_edit": { + "title": "Zrušiť upravovanie", + "dialog": "Are you sure you want to discard your changes to {recipe}?" + }, + "dismiss_create": { + "title": "Cancel create", + "dialog": "Are you sure you want to discard the creation?" + } + }, "recipe_import": { "title": "Importovať Recept", "button": "Import", "field": "URL k Receptu", - "clipboard": "Vložiť zo schránky", "errors": { "import_failed": "Aktualizácia zlyhala {error_msg}" } }, "search": { "title": "Vyhľadať Recept", + "description": "Search for recipes by name or keyword", "nothing_found": "Nenašiel sa žiadny recept!", "errors": { "search_failed": "Nie je možné načítať všetky Recepty!\n{error_msg}" @@ -145,8 +180,13 @@ "title": "Vaše budíky", "started": "Budík spustený.", "finished": "skončilo.", + "button": { + "start": "start timer", + "cancel": "cancel timer" + }, "done": "Budík skončil.", - "missing": "Ak chcete použiť časovač, musíte nastaviť dobu varenia." + "missing": "Ak chcete použiť časovač, musíte nastaviť dobu varenia.", + "empty_list": "Your running timers will be shown here." }, "settings": { "title": "Nastavenia Aplikácie", @@ -172,4 +212,4 @@ "subtitle": "Zmeniť veľkosť písma názvu kategórie. To môže byť užitočné, ak máte dlhé názvy kategórií." } } -} +} \ No newline at end of file diff --git a/assets/i18n/sl.json b/assets/i18n/sl.json index b67d08b2..fb67958e 100644 --- a/assets/i18n/sl.json +++ b/assets/i18n/sl.json @@ -1,10 +1,18 @@ { "app_bar": { - "search": "Poišči", - "refresh": "Osveži", "logout": "Odjava", "clear_all": "Počisti vse" }, + "alert": { + "discard": "Opusti", + "clear": "Počisti" + }, + "form": { + "validators": { + "invalid_number": "not a valid number", + "required": "required" + } + }, "login": { "title": "Prijava", "server_url": { @@ -39,13 +47,19 @@ "failed_remove_remote": "Odstranjevanje oddaljenega gesla programa je spodletelo!", "failure": "Prijave ni mogoče pravilno dokončati.\n {status_code}\n {status_message}", "credentials_invalid": "Shranjena poverila niso več veljavna ali pa ni več vzpostavljene prijave!", - "no_internet": "Overjanje je spodletelo!\nMorda ni vzpostavljene omrežne povezave?\nSporočilo napake: {error_msg}", - "wrong_status": "Overjanje je spodletelo!\nAli so podatki gostiteljskega strežnika pravi?\nSporočilo napake: {error_msg}" + "no_internet": "Authentication was not successful.\nMaybe there is no internet connection?\nError Message: {error_msg}", + "wrong_status": "Authentication was not successful.\nMaybe the provided server host is not correct?\nError Message: {error_msg}" } }, "categories": { "title": "Kuhar'ca", "all_categories": "Vse", + "uncategorized": "Neopredeljeno", + "items": { + "0": "no items", + "1": "1 item", + "else": "{{value}} items" + }, "drawer": { "import": "Uvozi recept", "settings": "Nastavitve" @@ -71,17 +85,20 @@ "cook": "Čas kuhanja", "total": "Skupni čas", "fields": { - "name": "Naslov recepta:", - "description": "Opis recepta:", - "keywords": "Ključne besede:", - "category": "Kategorija:", - "servings": "Število porcij:", - "source": "Vir:", + "name": "Ime recepta", + "description": "Opis recepta", + "keywords": "Ključne besede", + "category": "Kategorija", + "servings": { + "1": "Serving", + "else": "Število porcij" + }, + "source": "Vir", "source_button": "Vir", - "image": "Slika:", + "image": "Slika", "time": { - "prep": "Čas priprave:", - "cook": "Čas kuhanja ali pečenja:", + "prep": "Čas priprave", + "cook": "Čas kuhanja", "total": "Skupni čas", "hours": "Ure", "minutes": "Minute" @@ -103,9 +120,11 @@ "unsaturatedFatContent": "Vsebnost nenasičenih maščob" } }, - "tools": "Pripomočki:", - "ingredients": "Sestavine:", - "instructions": "Navodila:" + "general": "Splošno", + "times": "Times", + "tools": "Pripomočki", + "ingredients": "Sestavine", + "instructions": "Navodila" }, "errors": { "load_failed": "Nalaganje recepta je spodletelo!" @@ -116,26 +135,42 @@ "button": "Shrani", "errors": { "update_failed": "Posodobitev je spodletela {error_msg}" + }, + "delete": { + "title": "Delete Recipe", + "dialog": "Are you sure you want to permanently delete {recipe}?" } }, "recipe_create": { "title": "Ustvari recept", "button": "Ustvari", + "add_field": "add", + "remove_field": "remove", "errors": { "update_failed": "Ustvarjanje je spodletelo {error_msg}" } }, + "recipe_form": { + "dismiss_edit": { + "title": "Prekliči urejanje", + "dialog": "Are you sure you want to discard your changes to {recipe}?" + }, + "dismiss_create": { + "title": "Cancel create", + "dialog": "Are you sure you want to discard the creation?" + } + }, "recipe_import": { "title": "Uvozi recept", "button": "Uvozi", "field": "Naslov URL do recepta", - "clipboard": "Prilepi iz odložišča", "errors": { "import_failed": "Uvoz je spodletel: {error_msg}" } }, "search": { "title": "Poišči recept", + "description": "Search for recipes by name or keyword", "nothing_found": "Ni najdenih receptov", "errors": { "search_failed": "Ni mogoče naložiti receptov!\n{error_msg}" @@ -145,8 +180,13 @@ "title": "Your timers", "started": "Časomer je zagnan.", "finished": "is finished.", + "button": { + "start": "start timer", + "cancel": "cancel timer" + }, "done": "Časomer je ustavljen.", - "missing": "You need to set the cooking time to use a timer." + "missing": "You need to set the cooking time to use a timer.", + "empty_list": "Your running timers will be shown here." }, "settings": { "title": "Nastavitve programa", @@ -169,7 +209,7 @@ }, "category_font_size": { "title": "Velikost pisave kategorije", - "subtitle": "Changes the font size of category title. This can be useful if you have long category names." + "subtitle": "Spremeni velikost pisave naslova kategorije. To je lahko zelo uporabno pri daljših imenih." } } -} +} \ No newline at end of file diff --git a/assets/i18n/sr.json b/assets/i18n/sr.json new file mode 100644 index 00000000..a65a00b9 --- /dev/null +++ b/assets/i18n/sr.json @@ -0,0 +1,215 @@ +{ + "app_bar": { + "logout": "Одјава", + "clear_all": "Очисти све" + }, + "alert": { + "discard": "Одбаци", + "clear": "Очисти" + }, + "form": { + "validators": { + "invalid_number": "није исправан број", + "required": "обавезно" + } + }, + "login": { + "title": "Пријава", + "server_url": { + "field": "Адреса сервера", + "validator": { + "empty": "Молимо вас да унесете URL своје Nextcloud инстанце.", + "pattern": "Молимо вас да унесете исправну URL адресу" + } + }, + "username": { + "field": "Корисничко име" + }, + "password": { + "field": "Лозинка" + }, + "settings": { + "title": "Напредне поставке", + "app_password": "Употребите самостално генерисану лозинку апликације.\nПотребно је за налоге са 2FA.", + "self_signed_certificate": "Игнориши неважећи сертификат.\nПотребно је за самостално потписане сертификате.\n(Користите на сопствени ризик!)" + }, + "button": "Пријава", + "retry": "Понови покушај пријаву!", + "reset": "Ресетуј креденцијале!", + "errors": { + "not_reachable": "Не може да се дође до: {server_url}\n{error_msg}", + "certificate_failed": "Сертификат сервера није могао да се потврди: {server_url}\n{error_msg}", + "request_failed": "Није успео захтев за лозинку апликације:\n{error_msg}", + "parse_failed": "Не може да се парсира одговор лозинке апликације!\n{error_msg}", + "parse_missing": "Лозинка апликације не може да се пронађе у одговору!\n{error_msg}", + "auth_failed": "Корисничко име и / или лозинка нису тачни!", + "authentication_not_found": "У складишту није пронађена аутентификација", + "failed_remove_remote": "Није успело уклањање удаљене лозинке апликације!", + "failure": "Процес пријаве се није завршио како треба.\n{status_code}\n{status_message}", + "credentials_invalid": "Сачувани креденцијали више не важи и ви сте одјављени!", + "no_internet": "Аутентификација није била успешна.\nМожда нема везе са интернетом?\nПорука о грешки: {error_msg}", + "wrong_status": "Аутентификација није била успешна.\nМожда није исправан наведени сервер хост?\nПорука о грешки: {error_msg}" + } + }, + "categories": { + "title": "Кувар", + "all_categories": "Све", + "uncategorized": "Некатегоризовано", + "items": { + "0": "нема ставки", + "1": "1 ставка", + "else": "{{value}} ставки" + }, + "drawer": { + "import": "Увези рецепт", + "settings": "Поставке" + }, + "errors": { + "unknown": "Категорије у непознатом стању", + "load_failed": "Учитавање категорије није успело: {error_msg}", + "load_no_response": "Категорије нису могле да се добаве са сервера.", + "api_version_check_failed": "Није успела провера API верзије сервера:\n{error_msg}", + "api_version_above_confirmed": "Ажурирана је API верзија сервера. Неј+ке могућности можда неће радити онако како се то очекује. Молимо вас да сачекате на ажурирање!\n{version}", + "plugin_missing": "Категорије нису могле да се учитају. Обезбедите да је на овој Nextcloud инстанци инсталиран додатак Кувар!" + } + }, + "recipe_list": { + "title_category": "Категорија: {category}", + "errors": { + "load_failed": "Није успело учитавања кратке верзије рецепата!" + } + }, + "recipe": { + "title": "Рецепт:", + "prep": "Време припреме", + "cook": "Време кувања", + "total": "Укупно време", + "fields": { + "name": "Име рецепта", + "description": "Опис рецепта", + "keywords": "Кључне речи", + "category": "Категорија", + "servings": { + "1": "Порција", + "else": "Порција" + }, + "source": "Извор", + "source_button": "Извор", + "image": "Слика", + "time": { + "prep": "Време припреме", + "cook": "Време кувања", + "total": "Укупно време", + "hours": "Сати", + "minutes": "Минути" + }, + "nutrition": { + "title": "Нутритивне информације", + "items": { + "calories": "Енергија", + "carbohydrateContent": "Угљени хидрати", + "cholesterolContent": "Холестерол", + "fatContent": "Укупне масти", + "fiberContent": "Влакна", + "proteinContent": "Протеини", + "saturatedFatContent": "Засићене масти", + "servingSize": "Величина порције", + "sodiumContent": "Натријум", + "sugarContent": "Шећер", + "transFatContent": "Садржај трансмасти", + "unsaturatedFatContent": "Садржај незасићених масти" + } + }, + "general": "Опште", + "times": "Времена", + "tools": "Алати", + "ingredients": "Састојци", + "instructions": "Упутства" + }, + "errors": { + "load_failed": "Није успело учитавање рецепта!" + } + }, + "recipe_edit": { + "title": "Уреди рецепт", + "button": "Сачувај", + "errors": { + "update_failed": "Није успело ажурирање {error_msg}" + }, + "delete": { + "title": "Обриши рецепт", + "dialog": "Да ли сте сигурни да желите да трајно обришете {recipe}?" + } + }, + "recipe_create": { + "title": "Креирај рецепт", + "button": "Направи", + "add_field": "додај", + "remove_field": "уклони", + "errors": { + "update_failed": "Није успело креирање {error_msg}" + } + }, + "recipe_form": { + "dismiss_edit": { + "title": "Поништи измену", + "dialog": "Да ли сте сигурни да желите да одбаците измене над {recipe}?" + }, + "dismiss_create": { + "title": "Откажи креирање", + "dialog": "Да ли сте сигурни да желите да одбаците креирање?" + } + }, + "recipe_import": { + "title": "Увези рецепт", + "button": "Увоз", + "field": "URL до рецепта", + "errors": { + "import_failed": "Није успео увоз {error_msg}" + } + }, + "search": { + "title": "Претражи рецепт", + "description": "Претражи рецепте по имену или кључној речи", + "nothing_found": "Рецепт није пронађен!", + "errors": { + "search_failed": "Није успело учитавање свих рецепата!\n{error_msg}" + } + }, + "timer": { + "title": "Ваши тајмери", + "started": "Тајмер је кренуо.", + "finished": "се завршио.", + "button": { + "start": "покрени тајмер", + "cancel": "откажи тајмер" + }, + "done": "Тајмер је завршен.", + "missing": "Да бисте користили тајмер, потребно је да поставите време кувања.", + "empty_list": "Овде ће се приказати ваши покренути тајмери." + }, + "settings": { + "title": "Подешавања апликације", + "dark_mode": { + "title": "Тамни режим", + "system": "системска", + "dark": "Увек", + "light": "Никад" + }, + "language": { + "title": "Језик" + }, + "stay_awake": { + "title": "Остани будан", + "subtitle": "Екран се неће искључивати док се налазите на приказу рецепта." + }, + "recipe_font_size": { + "title": "Величина фонта рецепта", + "subtitle": "Да би се добила боља читљивост, мења величину фонта алата рецепта, састојака и упутстава." + }, + "category_font_size": { + "title": "Величина фонта категорије", + "subtitle": "Мења величину фонта наслова категорије. Ово може бити корисно ако имате дугачка имена категорија." + } + } +} \ No newline at end of file diff --git a/assets/i18n/tr.json b/assets/i18n/tr.json index 3aba89e6..4db12d4c 100644 --- a/assets/i18n/tr.json +++ b/assets/i18n/tr.json @@ -1,10 +1,18 @@ { "app_bar": { - "search": "Ara", - "refresh": "Yenlle", "logout": "Oturumu kapat", "clear_all": "Tümünü temizle" }, + "alert": { + "discard": "Yok say", + "clear": "Temizle" + }, + "form": { + "validators": { + "invalid_number": "geçerli bir sayı değil", + "required": "zorunlu" + } + }, "login": { "title": "Oturum aç", "server_url": { @@ -22,7 +30,7 @@ }, "settings": { "title": "Gelişmiş ayarlar", - "app_password": "Otomatik oluşturulan AppPassword kullanılsın.\nİki aşamalı kimlik doğrulaması kullanan hesaplar için gereklidir", + "app_password": "Otomatik oluşturulan AppPassword kullanılsın.\nİki adımlı doğrulama kullanan hesaplar için gereklidir", "self_signed_certificate": "Hatalı sertifika yok sayılsın\nKendinden imzalı sertifikalar için gereklidir\n(Kullanımdan doğacak riskler size aittir!)" }, "button": "Oturum aç", @@ -39,15 +47,21 @@ "failed_remove_remote": "Uzak AppPassword silinemedi!", "failure": "Oturum açma işlemi düzgün şekilde tamamlanamadı.\n{status_code}\n{status_message}", "credentials_invalid": "Kaydedilmiş kimlik doğrulama bilgileri artık geçerli olmadığından oturumunuz kapatıldı!", - "no_internet": "Kimlik doğrulama denetimi yapılamadı.\nİnternet bağlantısı kesik olabilir mi?\nHata iletisi: {error_msg}", - "wrong_status": "Kimlik doğrulama denetimi yapılamadı.\nBelirtilen sunucu adı yanlış olabilir mi?\nHata iletisi: {error_msg}" + "no_internet": "Kimlik doğrulanamadı.\nİnternet bağlantısı kesik olabilir mi?\nHata iletisi: {error_msg}", + "wrong_status": "Kimlik doğrulanamadı.\nBelirtilen sunucu adı yanlış olabilir mi?\nHata iletisi: {error_msg}" } }, "categories": { "title": "Yemek kitabı", "all_categories": "Tümü", + "uncategorized": "Kategorisiz", + "items": { + "0": "Herhangi bir öge yok", + "1": "1 öge", + "else": "{{value}} öge" + }, "drawer": { - "import": "İçe tarif aktar", + "import": "Tarifi içe aktar", "settings": "Ayarlar" }, "errors": { @@ -71,18 +85,21 @@ "cook": "Pişirme süresi", "total": "Toplam süre", "fields": { - "name": "Tarif adı:", - "description": "Tarif açıklaması:", - "keywords": "Anahtar sözcükler:", - "category": "Kategori:", - "servings": "Porsiyon:", - "source": "Kaynak:", + "name": "Tarif adı", + "description": "Tarif açıklaması", + "keywords": "Anahtar sözcükler", + "category": "Kategori", + "servings": { + "1": "Kaç kişilik", + "else": "Kaç kişilik" + }, + "source": "Kaynak", "source_button": "Kaynak", - "image": "Görsel:", + "image": "Görsel", "time": { - "prep": "Hazırlama süresi:", - "cook": "Pişirme süresi:", - "total": "Toplam süre:", + "prep": "Hazırlama süresi", + "cook": "Pişirme süresi", + "total": "Toplam süre", "hours": "Saat", "minutes": "Dakika" }, @@ -103,9 +120,11 @@ "unsaturatedFatContent": "Doymamış yağ miktarı" } }, - "tools": "Araçlar:", - "ingredients": "Malzemeler:", - "instructions": "Hazırlanışı:" + "general": "Genel", + "times": "Süreler", + "tools": "Araçlar", + "ingredients": "Malzemeler", + "instructions": "Nasıl yapılır" }, "errors": { "load_failed": "Tarif yüklenemedi!" @@ -116,37 +135,58 @@ "button": "Kaydet", "errors": { "update_failed": "Güncellenemedi {error_msg}" + }, + "delete": { + "title": "Tarifi sil", + "dialog": "{recipe} tarifini silmek istediğinize emin misiniz?" } }, "recipe_create": { - "title": "Yemek tarifi ekle", + "title": "Tarif ekle", "button": "Ekle", + "add_field": "ekle", + "remove_field": "sil", "errors": { "update_failed": "Eklenemedi {error_msg}" } }, + "recipe_form": { + "dismiss_edit": { + "title": "Düzenlemeyi iptal et", + "dialog": "{recipe} tarifinde yaptığınız değişiklikleri yok saymak istediğinize emin misiniz?" + }, + "dismiss_create": { + "title": "Eklemeyi iptal et", + "dialog": "Eklemeyi iptal etmek istediğinize emin misiniz?" + } + }, "recipe_import": { - "title": "İçe tarif aktar", + "title": "Tarifi içe aktar", "button": "İçe aktar", "field": "Tarif adresi", - "clipboard": "Panodan yapıştır", "errors": { "import_failed": "İçe aktarılamadı {error_msg}" } }, "search": { - "title": "Yemek tarifi ara", + "title": "Tarif ara", + "description": "Ada ya da anahtar sözcüğe göre tarif ara", "nothing_found": "Herhangi bir tarif bulunamadı!", "errors": { - "search_failed": "Tüm yemek tarifleri yüklenemedi!\n{error_msg}" + "search_failed": "Tüm tarifler yüklenemedi!\n{error_msg}" } }, "timer": { "title": "Zamanlayıcılarınız", "started": "Zamanlayıcı başlatıldı.", "finished": "tamamlandı.", + "button": { + "start": "zamanlayıcıyı başlat", + "cancel": "zamanlayıcıyı iptal et" + }, "done": "Zamanlayıcı tamamlandı.", - "missing": "Bir zamanlayıcı kullanmak için pişirme süresini ayarlamanız gerekir." + "missing": "Bir zamanlayıcı kullanmak için pişirme süresini ayarlamanız gerekir.", + "empty_list": "Çalışan zamanlayıcılarınız burada görüntülenir." }, "settings": { "title": "Uygulama ayarları", @@ -161,10 +201,10 @@ }, "stay_awake": { "title": "Uyanık kalınsın", - "subtitle": "Yemek tarifi ekranındayken ekran uykuya dalmaz" + "subtitle": "Tarif ekranındayken ekran uykuya dalmaz" }, "recipe_font_size": { - "title": "Yemek tarifi yazı boyutu", + "title": "Tarif yazı boyutu", "subtitle": "Daha iyi okunabilirlik için tarif araçlarının, malzemelerin ve yönergelerin yazı boyutunu değiştirir." }, "category_font_size": { @@ -172,4 +212,4 @@ "subtitle": "Kategori başlığının yazı boyutunu değiştirir. Uzun kategori adlarınız varsa yararlı olabilir." } } -} +} \ No newline at end of file diff --git a/assets/i18n/vi.json b/assets/i18n/vi.json index 6d8f3e73..5e97d5d3 100644 --- a/assets/i18n/vi.json +++ b/assets/i18n/vi.json @@ -1,10 +1,18 @@ { "app_bar": { - "search": "Tìm kiếm", - "refresh": "Tải mới", "logout": "Đăng xuất", "clear_all": "Xóa tât cả" }, + "alert": { + "discard": "Bỏ qua thay đổi", + "clear": "Xóa" + }, + "form": { + "validators": { + "invalid_number": "not a valid number", + "required": "required" + } + }, "login": { "title": "Đăng nhập", "server_url": { @@ -39,13 +47,19 @@ "failed_remove_remote": "Không xóa được mật khẩu ứng dụng từ xa!", "failure": "Quá trình đăng nhập không thể kết thúc đúng cách.\n{status_code}\n{status_message}", "credentials_invalid": "Các thông tin xác thực được lưu trữ không còn hợp lệ, và bạn đã đăng xuất!", - "no_internet": "Kiểm tra xác thực không thành công.\nCó thể không có kết nối internet?\nThông báo lỗi: {error_msg}", - "wrong_status": "Kiểm tra xác thực không thành công.\nCó thể máy chủ lưu trữ được cung cấp không đúng?\nThông báo lỗi: {error_msg}" + "no_internet": "Authentication was not successful.\nMaybe there is no internet connection?\nError Message: {error_msg}", + "wrong_status": "Authentication was not successful.\nMaybe the provided server host is not correct?\nError Message: {error_msg}" } }, "categories": { "title": "Sách dạy nấu ăn", "all_categories": "Tất cả", + "uncategorized": "Chưa phân loại", + "items": { + "0": "no items", + "1": "1 item", + "else": "{{value}} items" + }, "drawer": { "import": "Nhập công thức", "settings": "Cài đặt" @@ -71,18 +85,21 @@ "cook": "Thời gian nấu", "total": "Tổng thời gian", "fields": { - "name": "Tên công thức", - "description": "Mô tả công thức ", - "keywords": "Từ khóa:", - "category": "Danh mục:", - "servings": "Khẩu phần ăn:", - "source": "Nguồn:", + "name": "Recipe Name", + "description": "Recipe Description", + "keywords": "Từ khóa", + "category": "Hạng mục", + "servings": { + "1": "Serving", + "else": "Khẩu phần ăn" + }, + "source": "Nguồn", "source_button": "Nguồn", - "image": "Hình", + "image": "Hình ảnh", "time": { - "prep": "Thời gian chuẩn bị:", - "cook": "Thời gian nấu ăn:", - "total": "Tổng thời gian:", + "prep": "Thời gian chuẩn sự bị", + "cook": "Thời gian nấu", + "total": "Tổng thời gian", "hours": "Giờ", "minutes": "Phút" }, @@ -103,9 +120,11 @@ "unsaturatedFatContent": "Hàm lượng chất béo không bão hòa" } }, - "tools": "Công cụ:", - "ingredients": "Thành phần:", - "instructions": "Hướng dẫn:" + "general": "Cài đặt chung", + "times": "Times", + "tools": "Công cụ", + "ingredients": "Thành phần", + "instructions": "Hướng dẫn" }, "errors": { "load_failed": "Không thể tải công thức!" @@ -116,26 +135,42 @@ "button": "Lưu", "errors": { "update_failed": "Cập nhật không thành công {error_msg}" + }, + "delete": { + "title": "Delete Recipe", + "dialog": "Are you sure you want to permanently delete {recipe}?" } }, "recipe_create": { "title": "Tạo công thức", "button": "‎Tạo‎", + "add_field": "add", + "remove_field": "remove", "errors": { "update_failed": "Tạo không thành công {error_msg}" } }, + "recipe_form": { + "dismiss_edit": { + "title": "Hủy chỉnh sửa", + "dialog": "Are you sure you want to discard your changes to {recipe}?" + }, + "dismiss_create": { + "title": "Cancel create", + "dialog": "Are you sure you want to discard the creation?" + } + }, "recipe_import": { "title": "Nhập công thức", "button": "Nhập vào", "field": "URL của công thức", - "clipboard": "Dán khay nhớ tạm", "errors": { "import_failed": "Nhập không thành công {error_msg}" } }, "search": { "title": "Tìm kiếm công thức", + "description": "Search for recipes by name or keyword", "nothing_found": "Không tìm thấy công thức!", "errors": { "search_failed": "Không thể tải tất cả các Công thức!\n{error_msg}" @@ -145,8 +180,13 @@ "title": "Hẹn giờ của bạn", "started": "Đã bắt đầu hẹn giờ.", "finished": "đã hoàn thành", + "button": { + "start": "start timer", + "cancel": "cancel timer" + }, "done": "Hẹn giờ đã xong.", - "missing": "You need to set the cooking time to use a timer." + "missing": "You need to set the cooking time to use a timer.", + "empty_list": "Your running timers will be shown here." }, "settings": { "title": "Cài đặt ứng dụng", @@ -172,4 +212,4 @@ "subtitle": "Thay đổi kích cỏ phông chữ của tiêu đề danh mục. Điều này có thể hữu ích nếu bạn có tên danh mục dài." } } -} +} \ No newline at end of file diff --git a/assets/i18n/zh_CN.json b/assets/i18n/zh_CN.json index c61181b6..b6f31f1c 100644 --- a/assets/i18n/zh_CN.json +++ b/assets/i18n/zh_CN.json @@ -1,10 +1,18 @@ { "app_bar": { - "search": "搜索", - "refresh": "刷新", "logout": "注销", "clear_all": "清除全部" }, + "alert": { + "discard": "丢弃", + "clear": "清空" + }, + "form": { + "validators": { + "invalid_number": "not a valid number", + "required": "required" + } + }, "login": { "title": "登录", "server_url": { @@ -39,13 +47,19 @@ "failed_remove_remote": "移除远程应用密码失败!", "failure": "无法正常完成登录过程。{status_code}{status_message}", "credentials_invalid": "储存的凭据不再有效,你已被登出!", - "no_internet": "Authentication check was not successful.\nMaybe there is no internet connection?\nError Message: {error_msg}", - "wrong_status": "Authentication check was not successful.\nMaybe the provided server host is not correct?\nError Message: {error_msg}" + "no_internet": "Authentication was not successful.\nMaybe there is no internet connection?\nError Message: {error_msg}", + "wrong_status": "Authentication was not successful.\nMaybe the provided server host is not correct?\nError Message: {error_msg}" } }, "categories": { "title": "Cookbook", "all_categories": "所有", + "uncategorized": "未分类", + "items": { + "0": "no items", + "1": "1 item", + "else": "{{value}} items" + }, "drawer": { "import": "导入菜谱", "settings": "设置" @@ -54,7 +68,7 @@ "unknown": "处于未知状态的类别", "load_failed": "分类加载失败:{error_msg}", "load_no_response": "无法从服务器取得类别", - "api_version_check_failed": "检查服务器的 API 版本失败:\n{error_msg}", + "api_version_check_failed": "检查服务器API版本失败:\n{error_msg}", "api_version_above_confirmed": "已更新服务器的 API 版本。有些功能可能不能如预期的那样工作。请等待更新!\n{version}", "plugin_missing": "类别无法加载。请确保在这个 Nextcloud 实例上安装了 Cookbook 插件!" } @@ -62,7 +76,7 @@ "recipe_list": { "title_category": "类别:{category}", "errors": { - "load_failed": "加载 Recipes Short 失败!" + "load_failed": "加载Recipes Short失败!" } }, "recipe": { @@ -71,18 +85,21 @@ "cook": "烹饪时间", "total": "总时间", "fields": { - "name": "菜谱名:", - "description": "菜谱描述:", - "keywords": "关键词:", - "category": "类别:", - "servings": "份数:", - "source": "原材料:", + "name": "Recipe Name", + "description": "Recipe Description", + "keywords": "关键词", + "category": "分类", + "servings": { + "1": "Serving", + "else": "份数" + }, + "source": "来源", "source_button": "来源", - "image": "图片:", + "image": "图片", "time": { - "prep": "准备时间:", + "prep": "准备时间", "cook": "烹饪时间", - "total": "总时间:", + "total": "总时间", "hours": "小时", "minutes": "分钟" }, @@ -103,9 +120,11 @@ "unsaturatedFatContent": "不饱和脂肪含量" } }, - "tools": "工具:", - "ingredients": "配料:", - "instructions": "步骤:" + "general": "常规", + "times": "Times", + "tools": "工具", + "ingredients": "佐料", + "instructions": "步骤" }, "errors": { "load_failed": "加载菜谱失败!" @@ -116,26 +135,42 @@ "button": "保存", "errors": { "update_failed": "更新失败 {error_msg}" + }, + "delete": { + "title": "Delete Recipe", + "dialog": "Are you sure you want to permanently delete {recipe}?" } }, "recipe_create": { "title": "创建食谱", "button": "创建", + "add_field": "添加", + "remove_field": "remove", "errors": { "update_failed": "创建失败 {error_msg}" } }, + "recipe_form": { + "dismiss_edit": { + "title": "取消编辑", + "dialog": "Are you sure you want to discard your changes to {recipe}?" + }, + "dismiss_create": { + "title": "Cancel create", + "dialog": "Are you sure you want to discard the creation?" + } + }, "recipe_import": { "title": "导入菜谱", "button": "导入", "field": "菜谱URL", - "clipboard": "粘贴剪贴板", "errors": { "import_failed": "导入失败 {error_msg}" } }, "search": { "title": "搜索食谱", + "description": "Search for recipes by name or keyword", "nothing_found": "未找到菜谱!", "errors": { "search_failed": "无法加载所有食谱 !\n{error_msg}" @@ -145,8 +180,13 @@ "title": "你的计时器", "started": "计时开始", "finished": "is finished.", + "button": { + "start": "start timer", + "cancel": "cancel timer" + }, "done": "计时结束", - "missing": "You need to set the cooking time to use a timer." + "missing": "You need to set the cooking time to use a timer.", + "empty_list": "Your running timers will be shown here." }, "settings": { "title": "应用设置", @@ -172,4 +212,4 @@ "subtitle": "更改类别标题的字体大小。如果您的类别名称很长,这将非常有用。" } } -} +} \ No newline at end of file diff --git a/assets/i18n/zh_HK.json b/assets/i18n/zh_HK.json index 8f26af60..e06d6b47 100644 --- a/assets/i18n/zh_HK.json +++ b/assets/i18n/zh_HK.json @@ -1,10 +1,18 @@ { "app_bar": { - "search": "搜尋", - "refresh": "刷新", "logout": "登出", "clear_all": "清除全部" }, + "alert": { + "discard": "取消", + "clear": "清除" + }, + "form": { + "validators": { + "invalid_number": "不是有效號碼", + "required": "需要" + } + }, "login": { "title": "登入", "server_url": { @@ -39,13 +47,19 @@ "failed_remove_remote": "無法刪除遠端應用程式密碼!", "failure": "登入過程無法正確完成。\n{status_code}\n{status_message}", "credentials_invalid": "存儲的身分驗證不再有效,系統已註銷您!", - "no_internet": "身份驗證檢查不成功。\n也許沒有互聯網連接?\n錯誤消息:{error_msg}", - "wrong_status": "身份驗證檢查不成功。\n也許提供的伺服器主機不正確?\n錯誤消息:{error_msg}" + "no_internet": "身份驗證不成功。\n也許沒有互聯網連接?\n錯誤訊息:{error_msg}", + "wrong_status": "身份驗證不成功。\n也許提供的伺服器主機不正確?\n錯誤訊息:{error_msg}" } }, "categories": { "title": "食譜", "all_categories": "全部", + "uncategorized": "未分類", + "items": { + "0": "沒有項目", + "1": "一個項目", + "else": "{{value}} 個項目" + }, "drawer": { "import": "導入食譜", "settings": "設定" @@ -71,18 +85,21 @@ "cook": "烹調時間", "total": "總時間", "fields": { - "name": "食譜名稱:", - "description": "食譜描述:", - "keywords": "關鍵詞:", - "category": "分類:", - "servings": "份量:", - "source": "來源:", + "name": "食譜名稱", + "description": "食譜描述", + "keywords": "關鍵詞", + "category": "分類", + "servings": { + "1": "份量", + "else": "份量" + }, + "source": "來源", "source_button": "來源", - "image": "圖像:", + "image": "圖像", "time": { - "prep": "準備時間:", - "cook": "烹調時間:", - "total": "總時間:", + "prep": "準備時間", + "cook": "烹調時間", + "total": "總時間", "hours": "小時", "minutes": "分鐘" }, @@ -103,9 +120,11 @@ "unsaturatedFatContent": "不飽和脂肪含量" } }, - "tools": "工具:", - "ingredients": "材料:", - "instructions": "製法:" + "general": "常規", + "times": "時間", + "tools": "工具", + "ingredients": "材料", + "instructions": "烹飪方法" }, "errors": { "load_failed": "載入食譜失敗!" @@ -116,26 +135,42 @@ "button": "保存", "errors": { "update_failed": "更新失敗 {error_msg}" + }, + "delete": { + "title": "刪除食譜", + "dialog": "您確定要永久移除「{recipe}」嗎?" } }, "recipe_create": { "title": "創建食譜", "button": "創建", + "add_field": "添加", + "remove_field": "移除", "errors": { "update_failed": "創建失敗 {error_msg}" } }, + "recipe_form": { + "dismiss_edit": { + "title": "取消編輯", + "dialog": "您確定要放棄對「{recipe}」的更改嗎?" + }, + "dismiss_create": { + "title": "取消創建", + "dialog": "您確定要放棄創建嗎?" + } + }, "recipe_import": { "title": "導入食譜", "button": "導入", "field": "食譜 URL", - "clipboard": "從剪貼板粘貼", "errors": { "import_failed": "導入失敗 {error_msg}" } }, "search": { "title": "搜尋食譜", + "description": "按名稱或關鍵字搜索食譜", "nothing_found": "找不到食譜!", "errors": { "search_failed": "無法加載所有食譜!\n{error_msg}" @@ -145,8 +180,13 @@ "title": "你的計時器", "started": "計時器已啟動。", "finished": "已完成。", + "button": { + "start": "開始計時", + "cancel": "取消計時" + }, "done": "計時结束。", - "missing": "您需要設置烹飪時間才能使用計時器。" + "missing": "您需要設置烹飪時間才能使用計時器。", + "empty_list": "您正在運行的計時器將顯示在此處。" }, "settings": { "title": "應用程式設定", @@ -165,11 +205,11 @@ }, "recipe_font_size": { "title": "食譜字體大小", - "subtitle": "更改食譜工具、配料和烹調說明的字體大小,以提高可讀性。" + "subtitle": "更改食譜工具、材料和烹調說明的字體大小,以提高可讀性。" }, "category_font_size": { "title": "分類字體大小", "subtitle": "更改類別標題的字體大小。 這對於長類別名稱很有用。" } } -} +} \ No newline at end of file