diff --git a/recipes/settings.py b/recipes/settings.py
index 2afb515b6..dffb21f43 100644
--- a/recipes/settings.py
+++ b/recipes/settings.py
@@ -552,6 +552,8 @@ with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
if DEBUG:
print("Vite Dev Server is running")
DJANGO_VITE['default']['dev_mode'] = True
+ else:
+ raise Exception('Debug not True, running in production mode')
except Exception:
print("Running django-vite in production mode (no HMR)")
diff --git a/vue3/src/locales/ar.json b/vue3/src/locales/ar.json
index 58cde844a..4b9f22b9e 100644
--- a/vue3/src/locales/ar.json
+++ b/vue3/src/locales/ar.json
@@ -60,6 +60,7 @@
"Continue": "",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "",
"Copy Link": "",
"Copy Token": "",
@@ -134,6 +135,7 @@
"GroupBy": "",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "",
"Hide_Keyword": "",
"Hide_Keywords": "",
@@ -272,6 +274,7 @@
"Quick actions": "",
"QuickEntry": "",
"Random Recipes": "",
+ "RandomOrder": "",
"Rating": "",
"Ratings": "",
"Recently_Viewed": "",
@@ -387,6 +390,7 @@
"Valid Until": "",
"View": "",
"View_Recipes": "",
+ "Viewed": "",
"Waiting": "",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -404,11 +408,15 @@
"additional_options": "",
"advanced": "",
"advanced_search_settings": "",
+ "after": "",
+ "all": "",
"all_fields_optional": "",
"and": "",
"and_down": "",
"and_up": "",
+ "any": "",
"asc": "",
+ "before": "",
"book_filter_help": "",
"click_image_import": "",
"confirm_delete": "",
@@ -447,6 +455,8 @@
"err_move_self": "",
"err_moving_resource": "",
"err_updating_resource": "",
+ "exact": "",
+ "exclude": "",
"expert_mode": "",
"explain": "",
"fields": "",
@@ -486,6 +496,7 @@
"not": "",
"nothing": "",
"nothing_planned_today": "",
+ "on": "",
"one_url_per_line": "",
"or": "",
"parameter_count": "",
@@ -506,6 +517,9 @@
"reset_food_inheritance_info": "",
"review_shopping": "",
"save_filter": "",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_create_help_text": "",
"search_import_help_text": "",
"search_no_recipes": "",
diff --git a/vue3/src/locales/bg.json b/vue3/src/locales/bg.json
index 0ca29eff1..eed8cdbaf 100644
--- a/vue3/src/locales/bg.json
+++ b/vue3/src/locales/bg.json
@@ -60,6 +60,7 @@
"Continue": "",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "Копиране",
"Copy_template_reference": "Копирайте препратка към шаблона",
"CountMore": "...+{count} още",
@@ -131,6 +132,7 @@
"GroupBy": "Групирай по",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "Скриване на храна",
"Hide_Keyword": "Скриване на ключови думи",
"Hide_Keywords": "Скриване на ключова дума",
@@ -265,6 +267,7 @@
"Quick actions": "Бързи действия",
"QuickEntry": "Бързо влизане",
"Random Recipes": "Случайни рецепти",
+ "RandomOrder": "",
"Rating": "Рейтинг",
"Ratings": "Рейтинги",
"Recently_Viewed": "Наскоро разгледани",
@@ -378,6 +381,7 @@
"User": "потребител",
"View": "Изглед",
"View_Recipes": "Вижте рецепти",
+ "Viewed": "",
"Waiting": "Очакване",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -395,11 +399,15 @@
"additional_options": "Допълнителни настройки",
"advanced": "Разширено",
"advanced_search_settings": "Разширени настройки за търсене",
+ "after": "",
+ "all": "",
"all_fields_optional": "Всички полета са незадължителни и могат да бъдат оставени празни.",
"and": "и",
"and_down": "и надолу",
"and_up": "и нагоре",
+ "any": "",
"asc": "Възходящ",
+ "before": "",
"book_filter_help": "Включете рецепти от филтъра за рецепти в допълнение към ръчно зададените.",
"click_image_import": "Щракнете върху изображението, което искате да импортирате за тази рецепта",
"confirm_delete": "Наистина ли искате да изтриете този {object}?",
@@ -438,6 +446,8 @@
"err_move_self": "Не може елемента да се премести към себе си",
"err_moving_resource": "Възникна грешка при преместването на ресурс!",
"err_updating_resource": "Възникна грешка при актуализирането на ресурс!",
+ "exact": "",
+ "exclude": "",
"expert_mode": "Експертен режим",
"explain": "Обяснение",
"fields": "Полета",
@@ -476,6 +486,7 @@
"not": "не",
"nothing": "Няма нищо за правене",
"nothing_planned_today": "Нямате нищо планирано за днес!",
+ "on": "",
"one_url_per_line": "Един URL на ред",
"or": "или",
"parameter_count": "Параметър {count}",
@@ -494,6 +505,9 @@
"reset_children_help": "Презаписване на всички последователи със стойности от наследени полета. Наследените полета на последователите ще бъдат зададени на наследяване на полета, освен ако последователите наследяват полета не е зададено.",
"review_shopping": "Прегледайте записите за пазаруване, преди да запазите",
"save_filter": "Запазване на филтъра",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_create_help_text": "Създайте нова рецепта директно в Tandoor.",
"search_import_help_text": "Импортирайте рецепта от външен уебсайт или приложение.",
"search_no_recipes": "Не можах да намеря никакви рецепти!",
diff --git a/vue3/src/locales/ca.json b/vue3/src/locales/ca.json
index 049462b25..a5574ceb7 100644
--- a/vue3/src/locales/ca.json
+++ b/vue3/src/locales/ca.json
@@ -73,6 +73,7 @@
"Conversion": "",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "",
"Copy Link": "",
"Copy Token": "",
@@ -174,6 +175,7 @@
"GroupBy": "",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "",
"Hide_Keyword": "",
"Hide_Keywords": "Amagueu paraula clau",
@@ -340,6 +342,7 @@
"Quick actions": "",
"QuickEntry": "",
"Random Recipes": "",
+ "RandomOrder": "",
"Rating": "",
"Ratings": "",
"Recently_Viewed": "Vistos recentment",
@@ -481,6 +484,7 @@
"Valid Until": "",
"View": "",
"View_Recipes": "Mostreu les receptes",
+ "Viewed": "",
"Waiting": "",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -499,13 +503,17 @@
"additional_options": "",
"advanced": "",
"advanced_search_settings": "",
+ "after": "",
+ "all": "",
"all_fields_optional": "Tots els camps són opcionals i es poden deixar buits.",
"and": "",
"and_down": "",
"and_up": "",
+ "any": "",
"asc": "",
"base_amount": "",
"base_unit": "",
+ "before": "",
"book_filter_help": "",
"click_image_import": "",
"confirm_delete": "Esteu segurs que voleu eliminar aquest {object}?",
@@ -547,6 +555,8 @@
"err_move_self": "",
"err_moving_resource": "Hi ha hagut un error movent el recurs!",
"err_updating_resource": "Hi ha hagut un error quan s'actualitzava el recurs!",
+ "exact": "",
+ "exclude": "",
"expert_mode": "",
"explain": "",
"fields": "",
@@ -600,6 +610,7 @@
"not": "",
"nothing": "",
"nothing_planned_today": "",
+ "on": "",
"one_url_per_line": "",
"open_data_help_text": "El projecte de dades obertes de Tandoor proporciona dades per a Tandoor a partir de les contribucions de la comunitat. Aquest camp s'emplena automàticament quan s'importa i permet que es facin actualitzacions en un futur.",
"or": "",
@@ -630,6 +641,9 @@
"reusable_help_text": "L'enllaç d'invitació es pot fer servir per més d'un usuari.",
"review_shopping": "",
"save_filter": "",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_create_help_text": "",
"search_import_help_text": "",
"search_no_recipes": "",
diff --git a/vue3/src/locales/cs.json b/vue3/src/locales/cs.json
index 96e2a9f4b..6279b720a 100644
--- a/vue3/src/locales/cs.json
+++ b/vue3/src/locales/cs.json
@@ -73,6 +73,7 @@
"Conversion": "Převod",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "Kopírovat",
"Copy Link": "Kopírovat odkaz",
"Copy Token": "Kopírovat token",
@@ -174,6 +175,7 @@
"GroupBy": "Seskupit podle",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "Skrýt potravinu",
"Hide_Keyword": "Skrýt štítky",
"Hide_Keywords": "Skrýt štítek",
@@ -338,6 +340,7 @@
"Quick actions": "Rychlé akce",
"QuickEntry": "Rychlý záznam",
"Random Recipes": "Náhodné recepty",
+ "RandomOrder": "",
"Rating": "Hodnocení",
"Ratings": "Hodnocení",
"Recently_Viewed": "Naposledy prohlížené",
@@ -474,6 +477,7 @@
"Valid Until": "Platné do",
"View": "Zobrazit",
"View_Recipes": "Zobrazit recepty",
+ "Viewed": "",
"Waiting": "Čekající",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -492,13 +496,17 @@
"additional_options": "Rozšířené možnosti",
"advanced": "Pokročilé",
"advanced_search_settings": "Rozšířené vyhledávání",
+ "after": "",
+ "all": "",
"all_fields_optional": "Všechna pole jsou nepviná a mohou být ponechána prázdná.",
"and": "a",
"and_down": "a dolů",
"and_up": "a nahoru",
+ "any": "",
"asc": "Vzestupně",
"base_amount": "Základní množství",
"base_unit": "Základní jednotka",
+ "before": "",
"book_filter_help": "Zahrnout i recepty z filtru stejně jako manuálně přidané.",
"click_image_import": "Vyberte obrázek, který chcete přiřadit k tomuto receptu",
"confirm_delete": "Jste si jisti že chcete odstranit tento {objekt}?",
@@ -540,6 +548,8 @@
"err_move_self": "Není možné přesunout jednu položku do sebe samé",
"err_moving_resource": "Během přesunu došlo k chybě!",
"err_updating_resource": "Během úprav došlo k chybě!",
+ "exact": "",
+ "exclude": "",
"expert_mode": "Expertní režim",
"explain": "Vysvětlit",
"fields": "Pole",
@@ -593,6 +603,7 @@
"not": "ne",
"nothing": "Není co dělat",
"nothing_planned_today": "Dnes nemáte nic naplánováno!",
+ "on": "",
"one_url_per_line": "Jeden URL odkaz na řádek",
"open_data_help_text": "Projekt Tandoor Open Data nabízí komunitou poskytnutá otevřená data pro Tandoor. Toto pole se vyplní automaticky při importu a umožňuje budoucí aktualizace.",
"or": "nebo",
@@ -623,6 +634,9 @@
"reusable_help_text": "Má-li pozvánka platit pro více než jednoho uživatele.",
"review_shopping": "Zkontrolovat nákupní položky před uložením",
"save_filter": "Uložit filtr",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_create_help_text": "Vytvořit nový recept přímo v Tandoor.",
"search_import_help_text": "Importovat recept z externí webové stránky nebo aplikace.",
"search_no_recipes": "Nebyly nealezeny žádné recepty!",
diff --git a/vue3/src/locales/da.json b/vue3/src/locales/da.json
index b784c0aa4..a849fb4cf 100644
--- a/vue3/src/locales/da.json
+++ b/vue3/src/locales/da.json
@@ -72,6 +72,7 @@
"Conversion": "Konversion",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "Kopier",
"Copy Link": "Kopier link",
"Copy Token": "Kopier token",
@@ -162,6 +163,7 @@
"GroupBy": "Grupper efter",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "Skjul mad",
"Hide_Keyword": "Skjul nøgleord",
"Hide_Keywords": "Skjul nøgleord",
@@ -322,6 +324,7 @@
"Quick actions": "Hurtige handlinger",
"QuickEntry": "Hurtigt indlæg",
"Random Recipes": "Tilfældige opskrifter",
+ "RandomOrder": "",
"Rating": "Bedømmelse",
"Ratings": "Bedømmelser",
"Recently_Viewed": "Vist for nylig",
@@ -454,6 +457,7 @@
"Valid Until": "Gyldig indtil",
"View": "Vis",
"View_Recipes": "Vis opskrifter",
+ "Viewed": "",
"Waiting": "Vente",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -472,13 +476,17 @@
"additional_options": "Yderligere indstillinger",
"advanced": "Avanceret",
"advanced_search_settings": "Avancerede søgeindstillinger",
+ "after": "",
+ "all": "",
"all_fields_optional": "Alle felter er valgfri og kan være tomme.",
"and": "og",
"and_down": "& Ned",
"and_up": "& Op",
+ "any": "",
"asc": "Stigende",
"base_amount": "Basismængde",
"base_unit": "Basisenhed",
+ "before": "",
"book_filter_help": "Inkluder opskrifter fra opskriftsfilter udover de manuelt udvalgte.",
"click_image_import": "Klik på billedet du vil importere til denne opskrift",
"confirm_delete": "Er du sikker på at du slette dette {object}?",
@@ -519,6 +527,8 @@
"err_move_self": "Kan ikke flytte element til sig selv",
"err_moving_resource": "Der opstod en fejl under flytningen af denne ressource!",
"err_updating_resource": "Der opstod en fejl under opdateringen af denne ressource!",
+ "exact": "",
+ "exclude": "",
"expert_mode": "Avanceret tilstand",
"explain": "Forklar",
"fields": "Felter",
@@ -572,6 +582,7 @@
"not": "ikke",
"nothing": "Intet at gøre",
"nothing_planned_today": "Du har ikke noget planlagt for i dag!",
+ "on": "",
"one_url_per_line": "Et link pr. linje",
"open_data_help_text": "Tandoor Open Data projektet tilføjer netværksgenereret data til Tandoor. Dette felt bliver udfyldt automatisk under importering og muliggør fremtidige opdateringer.",
"or": "eller",
@@ -601,6 +612,9 @@
"reusable_help_text": "Om invitationslinket skal kunne bruges af mere end en bruger.",
"review_shopping": "Tjek indkøbsvarer inden der gemmes",
"save_filter": "Gem filter",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_create_help_text": "Opret en ny opskrift direkte i Tandoor.",
"search_import_help_text": "Importer en opskrift fra en ekstern hjemmeside eller applikation.",
"search_no_recipes": "Kunne ikke finde nogen opskrifter!",
diff --git a/vue3/src/locales/de.json b/vue3/src/locales/de.json
index aafe29548..1eb71a61d 100644
--- a/vue3/src/locales/de.json
+++ b/vue3/src/locales/de.json
@@ -75,6 +75,7 @@
"Conversion": "Umrechnung",
"ConversionsHelp": "Mit Umrechnungen kann die Menge einens Lebensmittels in verschiedenen Einheiten ausgerechnet werden. Aktuell wird dies nur zur berechnung von Eigenschaften verwendet, später jedoch sollen auch andere Funktionen von Tandoor davon profitieren.",
"CookLog": "Kochprotokoll",
+ "Cooked": "Gekocht",
"Copy": "Kopieren",
"Copy Link": "Link Kopieren",
"Copy Token": "Kopiere Token",
@@ -177,6 +178,7 @@
"GroupBy": "Gruppieren nach",
"HeaderWarning": "Achtung: Durch ändern auf Überschrift werden Menge/Einheit/Lebensmittel gelöscht",
"Headline": "Überschrift",
+ "Hide_External": "Externe ausblenden",
"Hide_Food": "Lebensmittel verbergen",
"Hide_Keyword": "Schlüsselwörter verbergen",
"Hide_Keywords": "Schlagwort verstecken",
@@ -224,7 +226,7 @@
"Key_Shift": "Umschalttaste",
"Keyword": "Schlüsselwort",
"Keyword_Alias": "Schlagwort Alias",
- "Keywords": "Stichwörter",
+ "Keywords": "Schlagwörter",
"Language": "Sprache",
"Last": "Letztes",
"Last_name": "Nachname",
@@ -344,6 +346,7 @@
"Quick actions": "Schnellbefehle",
"QuickEntry": "Einfach",
"Random Recipes": "Zufällige Rezepte",
+ "RandomOrder": "Zufällige Reihenfolge",
"Rating": "Bewertung",
"Ratings": "Bewertungen",
"Recently_Viewed": "Kürzlich angesehen",
@@ -485,6 +488,7 @@
"Valid Until": "Gültig bis",
"View": "Ansicht",
"View_Recipes": "Rezepte Ansehen",
+ "Viewed": "Angesehen",
"Waiting": "Wartezeit",
"WaitingTime": "Wartezeit",
"WarnPageLeave": "Deine Änderungen wurden noch nicht gespeichert und gehen verloren. Seite wirklich verlassen?",
@@ -503,13 +507,17 @@
"additional_options": "Weitere Möglichkeiten",
"advanced": "Erweitert",
"advanced_search_settings": "Erweiterte Sucheinstellungen",
+ "after": "nach",
+ "all": "alle",
"all_fields_optional": "Alle Felder sind optional und können leer gelassen werden.",
"and": "und",
"and_down": "& Runter",
"and_up": "& hoch",
+ "any": "beliebiges",
"asc": "Aufsteigend",
"base_amount": "Grundbetrag",
"base_unit": "Basiseinheit",
+ "before": "vor",
"book_filter_help": "Schließt zusätzlich zu den manuell hinzugefügten Rezepten, alle Rezepte die dem Filter entsprechen ein.",
"click_image_import": "Drücke auf das Bild, das du für das Rezept importieren möchtest",
"confirm_delete": "Soll dieses {object} wirklich gelöscht werden?",
@@ -552,6 +560,8 @@
"err_move_self": "Element kann nicht auf sich selbst verschoben werden",
"err_moving_resource": "Beim Verschieben einer Ressource trat ein Fehler auf!",
"err_updating_resource": "Beim Aktualisieren einer Ressource ist ein Fehler aufgetreten!",
+ "exact": "exakt",
+ "exclude": "ausschließen",
"expert_mode": "Experten-Modus",
"explain": "Erklären",
"fields": "Felder",
@@ -605,6 +615,7 @@
"not": "nicht",
"nothing": "Nichts zu tun",
"nothing_planned_today": "Sie haben für heute nichts geplant!",
+ "on": "am",
"one_url_per_line": "Eine URL pro Zeile",
"open_data_help_text": "Das Tandoor Open Data Projekt bietet von der Gemeinschaft bereitgestellte Daten für Tandoor. Dieses Feld wird beim Importieren automatisch ausgefüllt und ermöglicht künftige Aktualisierungen.",
"or": "oder",
@@ -635,6 +646,10 @@
"reusable_help_text": "Soll der Einladungslink für mehr als eine Person nutzbar sein.",
"review_shopping": "Überprüfe die Einkaufsliste vor dem Speichern",
"save_filter": "Filter speichern",
+ "searchFilterObjectsAndHelp": "Rezepte mit allen gewählten {type}",
+ "searchFilterObjectsAndNotHelp": "Rezepte ausschließen die alle gewählten {type} haben.",
+ "searchFilterObjectsHelp": "Rezepte mit einem beliebigen der ausgewählten {type}",
+ "searchFilterObjectsOrNotHelp": "Nur Rezepte bei denen alle Zutaten (oder Ihre Alternativen) als vorrätig markiert sind.",
"search_create_help_text": "Erstelle ein neues Rezept direkt in Tandoor.",
"search_import_help_text": "Importiere ein Rezept von einer externen Webseite oder Anwendung.",
"search_no_recipes": "Keine Rezepte gefunden!",
diff --git a/vue3/src/locales/el.json b/vue3/src/locales/el.json
index 6f297f228..71b62cf16 100644
--- a/vue3/src/locales/el.json
+++ b/vue3/src/locales/el.json
@@ -71,6 +71,7 @@
"Conversion": "Μετατροπή",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "Αντιγραφή",
"Copy Link": "Αντιγραφή συνδέσμου",
"Copy Token": "Αντιγραφή token",
@@ -157,6 +158,7 @@
"GroupBy": "Ομαδοποίηση κατά",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "Απόκρυψη φαγητού",
"Hide_Keyword": "Απόκρυψη λέξεων-κλειδί",
"Hide_Keywords": "Απόκρυψη λέξης-κλειδί",
@@ -314,6 +316,7 @@
"Quick actions": "Γρήγηορες δράσεις",
"QuickEntry": "Γρήγορη καταχώρηση",
"Random Recipes": "Τυχαίες συνταγές",
+ "RandomOrder": "",
"Rating": "Βαθμολογία",
"Ratings": "Βαθμολογίες",
"Recently_Viewed": "Προβλήθηκαν πρόσφατα",
@@ -443,6 +446,7 @@
"Valid Until": "Ισχύει έως",
"View": "Προβολή",
"View_Recipes": "Προβολή συνταγών",
+ "Viewed": "",
"Waiting": "Αναμονή",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -461,13 +465,17 @@
"additional_options": "Επιπλέον επιλογές",
"advanced": "Για προχωρημένους",
"advanced_search_settings": "Προχωρημένες ρυθμίσεις αναζήτησης",
+ "after": "",
+ "all": "",
"all_fields_optional": "Όλα τα πεδία είναι προαιρετικά και μπορούν να μη συμπληρωθούν.",
"and": "και",
"and_down": "και κάτω",
"and_up": "και πάνω",
+ "any": "",
"asc": "Αύξουσα",
"base_amount": "Βασική ποσότητα",
"base_unit": "Βασική μονάδα μέτρησης",
+ "before": "",
"book_filter_help": "Συμπερίλαβε συνταγές από το φίλτρο μαζί με αυτές που έχουν ανατεθεί χειροκίνητα.",
"click_image_import": "Κάντε κλικ στην εικόνα που θέλετε να εισάγετε για αυτή τη συνταγή",
"confirm_delete": "Θέλετε σίγουρα να διαγράψετε αυτό το {object};",
@@ -508,6 +516,8 @@
"err_move_self": "Δεν είναι δυνατή η μετακίνηση ενός αντικειμένου στον εαυτό του",
"err_moving_resource": "Παρουσιάστηκε ένα σφάλμα κατά τη μετακίνηση ενός πόρου!",
"err_updating_resource": "Παρουσιάστηκε ένα σφάλμα κατά την ενημέρωση ενός πόρου!",
+ "exact": "",
+ "exclude": "",
"expert_mode": "Λειτουργία για προχωρημένους",
"explain": "Επεξήγηση",
"fields": "Πεδία",
@@ -559,6 +569,7 @@
"not": "όχι",
"nothing": "Καμία δράση",
"nothing_planned_today": "Δεν έχετε τίποτα προγραμματισμένο για σήμερα!",
+ "on": "",
"one_url_per_line": "Ένα URL ανά γραμμή",
"open_data_help_text": "Μέσω του project Tandoor Open Data η κοινότητα παρέχει δεδομένα για το Tandoor. Αυτό το πεδίο συμπληρώνεται αυτόματα κατά την εισαγωγή του και επιτρέπει ενημερώσεις στο μέλλον.",
"or": "ή",
@@ -588,6 +599,9 @@
"reusable_help_text": "Ο σύνδεσμος πρόσκλησης μπορεί να χρησιμοποιηθεί από πολλαπλούς χρήστες.",
"review_shopping": "Ανασκόπηση εγγραφών στις αγορές πριν την αποθήκευση",
"save_filter": "Αποθήκευση φίλτρου",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_create_help_text": "Δημιουργία νέας συνταγής απευθείας στο Tandoor.",
"search_import_help_text": "Εισαγωγή συνταγής από μια ιστοσελίδα ή εφαρμογή.",
"search_no_recipes": "Δεν βρέθηκαν συνταγές!",
diff --git a/vue3/src/locales/en.json b/vue3/src/locales/en.json
index e9d377646..7d3304180 100644
--- a/vue3/src/locales/en.json
+++ b/vue3/src/locales/en.json
@@ -73,6 +73,7 @@
"Conversion": "Conversion",
"ConversionsHelp": "With conversions you can calculate the amount of a food in different units. Currently this is only used for property calculation, later it might also be used in other parts of tandoor. ",
"CookLog": "Cook Log",
+ "Cooked": "Cooked",
"Copy": "Copy",
"Copy Link": "Copy Link",
"Copy Token": "Copy Token",
@@ -175,6 +176,7 @@
"GroupBy": "Group By",
"HeaderWarning": "Warning: Changing to a Heading deletes the Amount/Unit/Food",
"Headline": "Headline",
+ "Hide_External": "Hide External",
"Hide_Food": "Hide Food",
"Hide_Keyword": "Hide keywords",
"Hide_Keywords": "Hide Keyword",
@@ -342,6 +344,7 @@
"Quick actions": "Quick actions",
"QuickEntry": "Quick Entry",
"Random Recipes": "Random Recipes",
+ "RandomOrder": "Random order",
"Rating": "Rating",
"Ratings": "Ratings",
"Recently_Viewed": "Recently Viewed",
@@ -483,6 +486,7 @@
"Valid Until": "Valid Until",
"View": "View",
"View_Recipes": "View Recipes",
+ "Viewed": "Viewed",
"Waiting": "Waiting",
"WaitingTime": "Waiting Time",
"WarnPageLeave": "There are unsaved changes that will get lost. Leave page anyway?",
@@ -501,13 +505,17 @@
"additional_options": "Additional Options",
"advanced": "Advanced",
"advanced_search_settings": "Advanced Search Settings",
+ "after": "after",
+ "all": "all",
"all_fields_optional": "All fields are optional and can be left empty.",
"and": "and",
"and_down": "& Down",
"and_up": "& Up",
+ "any": "any",
"asc": "Ascending",
"base_amount": "Base Amount",
"base_unit": "Base Unit",
+ "before": "before",
"book_filter_help": "Include recipes from recipe filter in addition to manually assigned ones.",
"click_image_import": "Click the image you want to import for this recipe",
"confirm_delete": "Are you sure you want to delete this {object}?",
@@ -549,6 +557,8 @@
"err_move_self": "Cannot move item to itself",
"err_moving_resource": "There was an error moving a resource!",
"err_updating_resource": "There was an error updating a resource!",
+ "exact": "exact",
+ "exclude": "exclude",
"expert_mode": "Expert Mode",
"explain": "Explain",
"fields": "Fields",
@@ -602,6 +612,7 @@
"not": "not",
"nothing": "Nothing to do",
"nothing_planned_today": "You have nothing planned for today!",
+ "on": "on",
"one_url_per_line": "One URL per line",
"open_data_help_text": "The Tandoor Open Data project provides community contributed data for Tandoor. This field is filled automatically when importing it and allows updates in the future.",
"or": "or",
@@ -632,6 +643,10 @@
"reusable_help_text": "Should the invite link be usable for more than one user.",
"review_shopping": "Review shopping entries before saving",
"save_filter": "Save Filter",
+ "searchFilterObjectsAndHelp": "Recipes with all of the selected {type}",
+ "searchFilterObjectsAndNotHelp": "Exclude recipes with all of the selected {type}",
+ "searchFilterObjectsHelp": "Recipes with any of the selected {type}",
+ "searchFilterObjectsOrNotHelp": "Only recipes were all foods (or its substitutes) are marked as on hand.",
"search_create_help_text": "Create a new recipe directly in Tandoor.",
"search_import_help_text": "Import a recipe from an external website or application.",
"search_no_recipes": "Could not find any recipes!",
diff --git a/vue3/src/locales/es.json b/vue3/src/locales/es.json
index b117bbe5c..5fed8b555 100644
--- a/vue3/src/locales/es.json
+++ b/vue3/src/locales/es.json
@@ -73,6 +73,7 @@
"Conversion": "Conversión",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "Copiar",
"Copy Link": "Copiar Enlace",
"Copy Token": "Copiar Token",
@@ -175,6 +176,7 @@
"GroupBy": "Agrupar por",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "Esconder ingrediente",
"Hide_Keyword": "Esconder Palabras Clave",
"Hide_Keywords": "Esconder palabra clave",
@@ -340,6 +342,7 @@
"Quick actions": "Acciones Rápidas",
"QuickEntry": "Entrada Rápida",
"Random Recipes": "Recetas Aleatorias",
+ "RandomOrder": "",
"Rating": "Puntuación",
"Ratings": "Calificaciones",
"Recently_Viewed": "Visto recientemente",
@@ -481,6 +484,7 @@
"Valid Until": "Valido Hasta",
"View": "Mostrar",
"View_Recipes": "Mostrar recetas",
+ "Viewed": "",
"Waiting": "esperando",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -499,13 +503,17 @@
"additional_options": "Opciones Adicionales",
"advanced": "Avanzado",
"advanced_search_settings": "Ajustes de Búsqueda Avanzada",
+ "after": "",
+ "all": "",
"all_fields_optional": "Todos los campos son opcionales y pueden ser dejados en blanco.",
"and": "y",
"and_down": "& Abajo",
"and_up": "& Arriba",
+ "any": "",
"asc": "ascendente",
"base_amount": "Cantidad Base",
"base_unit": "Unidad Base",
+ "before": "",
"book_filter_help": "Incluir las recetas del filtro de recetas además de las asignadas manualmente.",
"click_image_import": "Haz clic en la imagen que quieres importar para esta receta",
"confirm_delete": "¿Estás seguro de eliminar este {object}?",
@@ -547,6 +555,8 @@
"err_move_self": "No puedes mover un elemento a sí mismo",
"err_moving_resource": "¡Hubo un error moviendo el recurso!",
"err_updating_resource": "¡Hubo un error al actualizar el recurso!",
+ "exact": "",
+ "exclude": "",
"expert_mode": "Modo Experto",
"explain": "Explicar",
"fields": "Campos",
@@ -600,6 +610,7 @@
"not": "no",
"nothing": "Nada que hacer",
"nothing_planned_today": "¡No tienes nada planeado para hoy!",
+ "on": "",
"one_url_per_line": "Una URL por línea",
"open_data_help_text": "El proyecto Tandoor Open Data proporciona datos aportados por la comunidad para Tandoor. Este campo se rellena automáticamente cuando se importa y permite actualizaciones en el futuro.",
"or": "o",
@@ -630,6 +641,9 @@
"reusable_help_text": "El enlace de invitación podrá ser usado por más de un usuario.",
"review_shopping": "Revise entradas de compra antes de guardar",
"save_filter": "Guardar Filtros",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_create_help_text": "Crear una nueva receta directamente en Tandoor.",
"search_import_help_text": "Importar una receta de un sitio web externo o aplicación.",
"search_no_recipes": "¡No pudo encontrarse ninguna receta!",
diff --git a/vue3/src/locales/fi.json b/vue3/src/locales/fi.json
index 116c2796b..a51c33e0a 100644
--- a/vue3/src/locales/fi.json
+++ b/vue3/src/locales/fi.json
@@ -46,6 +46,7 @@
"Continue": "",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "Kopioi",
"Copy_template_reference": "Kopioi malliviittaus",
"Create": "Luo",
@@ -103,6 +104,7 @@
"GettingStarted": "",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "Piilota ruoka",
"Hide_Keyword": "Piilota avainsana",
"Hide_Keywords": "Piilota Avainsana",
@@ -203,6 +205,7 @@
"PropertyType": "",
"Property_Editor": "",
"Proteins": "Proteiinit",
+ "RandomOrder": "",
"Rating": "Luokitus",
"Recently_Viewed": "Äskettäin katsotut",
"Recipe": "Resepti",
@@ -298,6 +301,7 @@
"Use_Plural_Unit_Simple": "",
"View": "Katso",
"View_Recipes": "Näytä Reseptit",
+ "Viewed": "",
"Waiting": "Odottaa",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -308,9 +312,13 @@
"Year": "Vuosi",
"YourSpaces": "",
"active": "",
+ "after": "",
+ "all": "",
"all_fields_optional": "Kaikki kentät ovat valinnaisia ja voidaan jättää tyhjiksi.",
"and": "ja",
"and_up": "& Ylös",
+ "any": "",
+ "before": "",
"confirm_delete": "Haluatko varmasti poistaa tämän {object}?",
"convert_internal": "Muunna sisäiseksi reseptiksi",
"create_rule": "ja luo automaatio",
@@ -326,6 +334,8 @@
"err_merging_resource": "Resurssin yhdistämisessä tapahtui virhe!",
"err_moving_resource": "Resurssin siirtämisessä tapahtui virhe!",
"err_updating_resource": "Resurssin päivittämisessä tapahtui virhe!",
+ "exact": "",
+ "exclude": "",
"file_upload_disabled": "Tiedoston lähetys ei ole käytössä tilassasi.",
"import_running": "Tuonti käynnissä, odota!",
"merge_confirmation": "Korvaa {source} esiintymiset {target}:lla",
@@ -335,9 +345,13 @@
"move_confirmation": "Siirrä {child} yläluokkaan {parent}",
"move_selection": "Valitse yläluokka {type} johon {source} siirretään.",
"move_title": "Siirrä {type}",
+ "on": "",
"or": "tai",
"plural_short": "",
"plural_usage_info": "",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"show_only_internal": "Näytä vain sisäiset reseptit",
"show_split_screen": "Jaettu näkymä",
"step_time_minutes": "Askelaika minuutteina",
diff --git a/vue3/src/locales/fr.json b/vue3/src/locales/fr.json
index 8768b351f..afb893743 100644
--- a/vue3/src/locales/fr.json
+++ b/vue3/src/locales/fr.json
@@ -72,6 +72,7 @@
"Conversion": "Conversion",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "Copier",
"Copy Link": "Copier le lien",
"Copy Token": "Copier le jeton",
@@ -174,6 +175,7 @@
"GroupBy": "Grouper par",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "Cacher l’aliment",
"Hide_Keyword": "masquer les mots clefs",
"Hide_Keywords": "Cacher le mot-clé",
@@ -340,6 +342,7 @@
"Quick actions": "Actions Rapides",
"QuickEntry": "Entrée rapide",
"Random Recipes": "Recettes Aléatoires",
+ "RandomOrder": "",
"Rating": "Note",
"Ratings": "Notes",
"Recently_Viewed": "Vu récemment",
@@ -480,6 +483,7 @@
"Valid Until": "Valide jusqu’au",
"View": "Voir",
"View_Recipes": "Voir les recettes",
+ "Viewed": "",
"Waiting": "Attente",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -498,13 +502,17 @@
"additional_options": "Options Supplémentaires",
"advanced": "Avancé",
"advanced_search_settings": "Paramètres de recherche avancée",
+ "after": "",
+ "all": "",
"all_fields_optional": "Tous les champs sont facultatifs et peuvent être laissés vides.",
"and": "et",
"and_down": "& Dessous",
"and_up": "&Au-dessus",
+ "any": "",
"asc": "Ordre croissant",
"base_amount": "Quantité de base",
"base_unit": "Unités de base",
+ "before": "",
"book_filter_help": "Inclure les recettes filtrées en plus de celles ajoutées manuellement.",
"click_image_import": "Cliquez sur l'image que vous souhaitez importer pour cette recette",
"confirm_delete": "Voulez-vous vraiment supprimer {objet} ?",
@@ -547,6 +555,8 @@
"err_move_self": "Impossible de déplacer un élément vers lui-même",
"err_moving_resource": "Erreur lors du déplacement d’une ressource !",
"err_updating_resource": "Erreur lors de la mise à jour d’une ressource !",
+ "exact": "",
+ "exclude": "",
"expert_mode": "Mode expert",
"explain": "Expliquer",
"fields": "Champs",
@@ -592,6 +602,7 @@
"not": "pas",
"nothing": "Rien à effectuer",
"nothing_planned_today": "Vous n'avez rien de prévu pour aujourd'hui !",
+ "on": "",
"one_url_per_line": "Une URL par ligne",
"open_data_help_text": "Le projet «Tandoor Open Data» est une base de données fournie par la communauté. Ce champ est rempli automatiquement lors de l'importation des données et permet les mises à jour dans le futur.",
"or": "ou",
@@ -619,6 +630,9 @@
"reusable_help_text": "Le lien d’invitation doit-il être utilisable par plus d’un utilisateur.",
"review_shopping": "Vérifier les éléments de la liste avant de sauvegarder",
"save_filter": "Sauvegarder le filtre",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_create_help_text": "Créer une nouvelle recette directement dans Tandoor.",
"search_import_help_text": "Importer une recette depuis un site ou une application externe.",
"search_no_recipes": "Aucune recette trouvée !",
diff --git a/vue3/src/locales/he.json b/vue3/src/locales/he.json
index 8b283aab6..f66a94ee2 100644
--- a/vue3/src/locales/he.json
+++ b/vue3/src/locales/he.json
@@ -73,6 +73,7 @@
"Conversion": "עברית",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "העתקה",
"Copy Link": "העתק קישור",
"Copy Token": "העתק טוקן",
@@ -175,6 +176,7 @@
"GroupBy": "אסוף לפי",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "הסתר אוכל",
"Hide_Keyword": "הסתר מילות מפתח",
"Hide_Keywords": "הסתרת מילת מפתח",
@@ -341,6 +343,7 @@
"Quick actions": "פעולות מהירות",
"QuickEntry": "רשומה מהירה",
"Random Recipes": "מתכון אקראי",
+ "RandomOrder": "",
"Rating": "דירוג",
"Ratings": "דירוג",
"Recently_Viewed": "נצפו לאחרונה",
@@ -482,6 +485,7 @@
"Valid Until": "פעיל עד",
"View": "תצוגה",
"View_Recipes": "הצג מתכונים",
+ "Viewed": "",
"Waiting": "המתנה",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -500,13 +504,17 @@
"additional_options": "אפשרויות נוספות",
"advanced": "מתקדם",
"advanced_search_settings": "הגדרות חיפוש מתקדמות",
+ "after": "",
+ "all": "",
"all_fields_optional": "כל השדות הינן שדות רשות וניתן להשאירם ריקים.",
"and": "וגם",
"and_down": "ומטה",
"and_up": "ומעלה",
+ "any": "",
"asc": "עולה",
"base_amount": "כמות בסיס",
"base_unit": "יחידת בסיס",
+ "before": "",
"book_filter_help": "כלול מתכונים מתוך סנן המתכון בנוסף למתכונים שסומנו ידנית.",
"click_image_import": "בחר תמונה שתרצה לייבוא למתכון זה",
"confirm_delete": "האם אתה בטוח רוצה למחק את {object}?",
@@ -548,6 +556,8 @@
"err_move_self": "לא ניתן להעביר פריט לעצמו",
"err_moving_resource": "שגיאה בהעברת משאב!",
"err_updating_resource": "שגיאה בעת עדכון משאב!",
+ "exact": "",
+ "exclude": "",
"expert_mode": "מצב מתקדם",
"explain": "הסבר",
"fields": "שדות",
@@ -601,6 +611,7 @@
"not": "לא",
"nothing": "אין כלום מה לעשות",
"nothing_planned_today": "שום דבר מתכונן היום!",
+ "on": "",
"one_url_per_line": "קישור בכל שורה",
"open_data_help_text": "הקהילה מאחורי פרוייקט Tandoor Open Data תורמת מידע לTandoor. ערך זה ממולא אוטומטית כאשר מייברים אותו ומאפשר עדכון בעתיד.",
"or": "או",
@@ -631,6 +642,9 @@
"reusable_help_text": "האם הכתובת השיתוף תהיה שמישה ליותר ממשתמש אחד.",
"review_shopping": "עיין ברשימת הקניות לפני שמירה",
"save_filter": "שמור סנן",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_create_help_text": "צור מתכון חדש ישירות בTandoor.",
"search_import_help_text": "ייבא מתכון מאתר חיצוני או אפליקציה.",
"search_no_recipes": "לא נמצאו כל מתכונים!",
diff --git a/vue3/src/locales/hu.json b/vue3/src/locales/hu.json
index ba9b69b4c..f9864dda9 100644
--- a/vue3/src/locales/hu.json
+++ b/vue3/src/locales/hu.json
@@ -72,6 +72,7 @@
"Conversion": "Konverzió",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "Másolás",
"Copy Link": "Link másolása",
"Copy Token": "Token másolása",
@@ -158,6 +159,7 @@
"GroupBy": "Csoportosítva",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "Alapanyag elrejtése",
"Hide_Keyword": "Kulcsszavak elrejtése",
"Hide_Keywords": "Kulcsszó elrejtése",
@@ -316,6 +318,7 @@
"Quick actions": "Gyors parancsok",
"QuickEntry": "Gyors bevitel",
"Random Recipes": "Véletlenszerű receptek",
+ "RandomOrder": "",
"Rating": "Értékelés",
"Ratings": "Értékelések",
"Recently_Viewed": "Nemrég megtekintett",
@@ -445,6 +448,7 @@
"Valid Until": "Érvényes",
"View": "Nézet",
"View_Recipes": "Receptek megjelenítése",
+ "Viewed": "",
"Waiting": "Várakozás",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -463,13 +467,17 @@
"additional_options": "További lehetőségek",
"advanced": "Haladó",
"advanced_search_settings": "Részletes keresési beállítások",
+ "after": "",
+ "all": "",
"all_fields_optional": "Minden mező opcionális és üresen hagyható.",
"and": "és",
"and_down": "& le",
"and_up": "& fel",
+ "any": "",
"asc": "Emelkedő",
"base_amount": "Alapösszeg",
"base_unit": "Alap mértékegység",
+ "before": "",
"book_filter_help": "A manuálisan hozzárendelt receptek mellett a recept-szűrőből származó receptek szerepeltetése.",
"click_image_import": "Kattintson a képre, amelyet a recepthez importálni szeretne",
"confirm_delete": "Biztos, hogy törölni akarja ezt a {object}?",
@@ -511,6 +519,8 @@
"err_move_self": "",
"err_moving_resource": "Hiba történt egy erőforrás áthelyezésekor!",
"err_updating_resource": "Hiba történt egy erőforrás frissítése során!",
+ "exact": "",
+ "exclude": "",
"expert_mode": "Szakértő mód",
"explain": "Magyarázat",
"fields": "Mezők",
@@ -563,6 +573,7 @@
"not": "nem",
"nothing": "",
"nothing_planned_today": "Mára semmit sem tervezett!",
+ "on": "",
"one_url_per_line": "Soronként egy URL-cím",
"open_data_help_text": "A Tandoor Open Data projekt a Tandoor közösségi adatait biztosítja. Ez a mező automatikusan kitöltődik az importáláskor, és lehetővé teszi a jövőbeni frissítéseket.",
"or": "vagy",
@@ -590,6 +601,9 @@
"reusable_help_text": "A meghívó linknek egynél több felhasználó számára is használhatónak kell lennie.",
"review_shopping": "A bevásárlási bejegyzések áttekintése mentés előtt",
"save_filter": "Szűrő mentése",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_create_help_text": "Új recept létrehozása közvetlenül a Tandoorban.",
"search_import_help_text": "Recept importálása külső webhelyről vagy alkalmazásból.",
"search_no_recipes": "Nem találtunk semmilyen receptet!",
diff --git a/vue3/src/locales/hy.json b/vue3/src/locales/hy.json
index aa52011ff..799363873 100644
--- a/vue3/src/locales/hy.json
+++ b/vue3/src/locales/hy.json
@@ -38,6 +38,7 @@
"Continue": "",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "",
"Create": "Ստեղծել",
"Create_New_Food": "Ավելացնել նոր սննդամթերք",
@@ -82,6 +83,7 @@
"GettingStarted": "",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "Թաքցնել սննդամթերքը",
"Hide_Keywords": "Թաքցնել բանալի բառը",
"Hide_Recipes": "Թաքցնել բաղադրատոմսերը",
@@ -149,6 +151,7 @@
"PropertyType": "",
"Property_Editor": "",
"Proteins": "",
+ "RandomOrder": "",
"Rating": "",
"Recently_Viewed": "Վերջերս դիտած",
"Recipe": "Բաղադրատոմս",
@@ -228,6 +231,7 @@
"Use_Plural_Unit_Simple": "",
"View": "Դիտել",
"View_Recipes": "Դիտել բաղադրատոմսերը",
+ "Viewed": "",
"Waiting": "",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -235,8 +239,12 @@
"WorkingTime": "",
"YourSpaces": "",
"active": "",
+ "after": "",
+ "all": "",
"all_fields_optional": "Բոլոր տողերը կամավոր են և կարող են մնալ դատարկ։",
"and": "և",
+ "any": "",
+ "before": "",
"confirm_delete": "Համոզվա՞ծ եք, որ ուզում եք ջնջել այս {օբյեկտը}։",
"convert_internal": "Փոխակերպել ներքին բաղադրատոմսի",
"create_rule": "և ստեղծել ավտոմատացում",
@@ -246,12 +254,18 @@
"err_deleting_resource": "Ռեսուրսը ջնջելիս սխալ է գրանցվել:",
"err_fetching_resource": "Ռեսուրսը կցելիս սխալ է գրանցվել:",
"err_updating_resource": "Ռեսուրսը թարմացնելիս սխալ է գրանցվել:",
+ "exact": "",
+ "exclude": "",
"file_upload_disabled": "Ջեր տարածությունում ֆայլերի վերբեռնումը միացված չէ։",
"import_running": "Ներմուծվում է, խնդրում ենք սպասել։",
"min": "",
+ "on": "",
"or": "կամ",
"plural_short": "",
"plural_usage_info": "",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"show_only_internal": "Ցույց տալ միայն ներքին բաղադրատոմսերը",
"step_time_minutes": "Քայլի տևողությունը րոպեներով",
"success_creating_resource": "Ռեսուրսը հաջողությամբ ստեղծվել է։",
diff --git a/vue3/src/locales/id.json b/vue3/src/locales/id.json
index c9126ba05..78abc41a2 100644
--- a/vue3/src/locales/id.json
+++ b/vue3/src/locales/id.json
@@ -64,6 +64,7 @@
"Continue": "",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "Salin",
"Copy Link": "Salin Tautan",
"Copy Token": "Salin Token",
@@ -146,6 +147,7 @@
"GroupBy": "",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "",
"Hide_Keyword": "",
"Hide_Keywords": "Sembunyikan Kata Kunci",
@@ -292,6 +294,7 @@
"Quick actions": "",
"QuickEntry": "",
"Random Recipes": "",
+ "RandomOrder": "",
"Rating": "Peringkat",
"Ratings": "",
"Recently_Viewed": "baru saja dilihat",
@@ -412,6 +415,7 @@
"Valid Until": "",
"View": "Melihat",
"View_Recipes": "Lihat Resep",
+ "Viewed": "",
"Waiting": "Menunggu",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -429,11 +433,15 @@
"additional_options": "",
"advanced": "",
"advanced_search_settings": "",
+ "after": "",
+ "all": "",
"all_fields_optional": "Semua bidang adalah opsional dan dapat dibiarkan kosong.",
"and": "dan",
"and_down": "",
"and_up": "",
+ "any": "",
"asc": "",
+ "before": "",
"book_filter_help": "",
"click_image_import": "",
"confirm_delete": "Anda yakin ingin menghapus {object} ini?",
@@ -472,6 +480,8 @@
"err_move_self": "",
"err_moving_resource": "Terjadi kesalahan saat memindahkan sumber daya!",
"err_updating_resource": "Terjadi kesalahan saat memperbarui sumber daya!",
+ "exact": "",
+ "exclude": "",
"expert_mode": "",
"explain": "",
"fields": "",
@@ -511,6 +521,7 @@
"not": "",
"nothing": "",
"nothing_planned_today": "",
+ "on": "",
"one_url_per_line": "",
"or": "atau",
"parameter_count": "",
@@ -531,6 +542,9 @@
"reusable_help_text": "Haruskah tautan undangan dapat digunakan untuk lebih dari satu pengguna.",
"review_shopping": "",
"save_filter": "",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_create_help_text": "",
"search_import_help_text": "",
"search_no_recipes": "",
diff --git a/vue3/src/locales/is.json b/vue3/src/locales/is.json
index ebe4ec27d..5705893c2 100644
--- a/vue3/src/locales/is.json
+++ b/vue3/src/locales/is.json
@@ -73,6 +73,7 @@
"Conversion": "",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "",
"Copy Link": "",
"Copy Token": "",
@@ -174,6 +175,7 @@
"GroupBy": "",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "",
"Hide_Keyword": "",
"Hide_Keywords": "",
@@ -340,6 +342,7 @@
"Quick actions": "",
"QuickEntry": "",
"Random Recipes": "",
+ "RandomOrder": "",
"Rating": "",
"Ratings": "",
"Recently_Viewed": "",
@@ -480,6 +483,7 @@
"Valid Until": "",
"View": "",
"View_Recipes": "",
+ "Viewed": "",
"Waiting": "",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -498,13 +502,17 @@
"additional_options": "",
"advanced": "",
"advanced_search_settings": "",
+ "after": "",
+ "all": "",
"all_fields_optional": "",
"and": "",
"and_down": "",
"and_up": "",
+ "any": "",
"asc": "",
"base_amount": "",
"base_unit": "",
+ "before": "",
"book_filter_help": "",
"click_image_import": "",
"confirm_delete": "",
@@ -546,6 +554,8 @@
"err_move_self": "",
"err_moving_resource": "Villa kom upp við að færa gögn!",
"err_updating_resource": "Villa kom upp við að uppfæra gögn!",
+ "exact": "",
+ "exclude": "",
"expert_mode": "",
"explain": "",
"fields": "",
@@ -599,6 +609,7 @@
"not": "",
"nothing": "",
"nothing_planned_today": "",
+ "on": "",
"one_url_per_line": "",
"open_data_help_text": "",
"or": "",
@@ -629,6 +640,9 @@
"reusable_help_text": "",
"review_shopping": "",
"save_filter": "",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_create_help_text": "",
"search_import_help_text": "",
"search_no_recipes": "",
diff --git a/vue3/src/locales/it.json b/vue3/src/locales/it.json
index fb9d09497..4eb33dff9 100644
--- a/vue3/src/locales/it.json
+++ b/vue3/src/locales/it.json
@@ -68,6 +68,7 @@
"Continue": "",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "Copia",
"Copy Link": "Copia link",
"Copy Token": "Copia token",
@@ -151,6 +152,7 @@
"GroupBy": "Raggruppa per",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "Nascondi alimento",
"Hide_Keyword": "Nascondi parole chiave",
"Hide_Keywords": "Nascondi parola chiave",
@@ -300,6 +302,7 @@
"Quick actions": "Azioni rapide",
"QuickEntry": "Inserimento rapido",
"Random Recipes": "Ricette casuali",
+ "RandomOrder": "",
"Rating": "Valutazione",
"Ratings": "Valutazioni",
"Recently_Viewed": "Visualizzato di recente",
@@ -427,6 +430,7 @@
"Valid Until": "Valido fino",
"View": "Mostra",
"View_Recipes": "Mostra ricette",
+ "Viewed": "",
"Waiting": "Attesa",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -444,11 +448,15 @@
"additional_options": "Opzioni aggiuntive",
"advanced": "Avanzate",
"advanced_search_settings": "Impostazioni avanzate di ricerca",
+ "after": "",
+ "all": "",
"all_fields_optional": "Tutti i campi sono opzionali e possono essere lasciati vuoti.",
"and": "e",
"and_down": "& Giù",
"and_up": "& Su",
+ "any": "",
"asc": "Crescente",
+ "before": "",
"book_filter_help": "Includi ricette dal filtro ricette oltre a quelle assegnate manualmente.",
"click_image_import": "Clicca sull'immagine che vuoi importare per questa ricetta",
"confirm_delete": "Sei sicuro di voler eliminare questo {object}?",
@@ -489,6 +497,8 @@
"err_move_self": "Non è possibile muovere un elemento in sé stesso",
"err_moving_resource": "Si è verificato un errore durante lo spostamento di una risorsa!",
"err_updating_resource": "Si è verificato un errore durante l'aggiornamento di una risorsa!",
+ "exact": "",
+ "exclude": "",
"expert_mode": "Modalità esperto",
"explain": "Maggior informazioni",
"fields": "Campi",
@@ -528,6 +538,7 @@
"not": "not",
"nothing": "Nulla da fare",
"nothing_planned_today": "Non hai pianificato nulla per oggi!",
+ "on": "",
"one_url_per_line": "Un indirizzo per riga",
"or": "o",
"parameter_count": "Parametro {count}",
@@ -549,6 +560,9 @@
"reusable_help_text": "Il link di invito dovrebbe essere usabile per più di un utente.",
"review_shopping": "Rivedi le voci della spesa prima di salvare",
"save_filter": "Salva filtro",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_create_help_text": "Crea una nuova ricetta direttamente in Tandoor.",
"search_import_help_text": "Importa una ricetta da un sito web o da una applicazione.",
"search_no_recipes": "Non sono state trovate ricette!",
diff --git a/vue3/src/locales/lt.json b/vue3/src/locales/lt.json
index b2775f3a2..92f52829f 100644
--- a/vue3/src/locales/lt.json
+++ b/vue3/src/locales/lt.json
@@ -72,6 +72,7 @@
"Conversion": "",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "",
"Copy Link": "",
"Copy Token": "",
@@ -160,6 +161,7 @@
"GroupBy": "",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "",
"Hide_Keyword": "",
"Hide_Keywords": "Paslėpti raktažodį",
@@ -320,6 +322,7 @@
"Quick actions": "",
"QuickEntry": "",
"Random Recipes": "",
+ "RandomOrder": "",
"Rating": "",
"Ratings": "",
"Recently_Viewed": "Neseniai Žiūrėta",
@@ -452,6 +455,7 @@
"Valid Until": "",
"View": "",
"View_Recipes": "Žiūrėti receptus",
+ "Viewed": "",
"Waiting": "",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -470,13 +474,17 @@
"additional_options": "",
"advanced": "",
"advanced_search_settings": "",
+ "after": "",
+ "all": "",
"all_fields_optional": "Visi laukeliai yra neprivalomi ir gali būti palikti tušti.",
"and": "",
"and_down": "",
"and_up": "",
+ "any": "",
"asc": "",
"base_amount": "",
"base_unit": "",
+ "before": "",
"book_filter_help": "",
"click_image_import": "",
"confirm_delete": "Ar tikrai norite ištrinti šį {object}?",
@@ -517,6 +525,8 @@
"err_move_self": "",
"err_moving_resource": "Perkeliant išteklius įvyko klaida!",
"err_updating_resource": "Atnaujinant išteklius įvyko klaida!",
+ "exact": "",
+ "exclude": "",
"expert_mode": "",
"explain": "",
"fields": "",
@@ -570,6 +580,7 @@
"not": "",
"nothing": "",
"nothing_planned_today": "",
+ "on": "",
"one_url_per_line": "",
"open_data_help_text": "",
"or": "",
@@ -599,6 +610,9 @@
"reusable_help_text": "",
"review_shopping": "",
"save_filter": "",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_create_help_text": "",
"search_import_help_text": "",
"search_no_recipes": "",
diff --git a/vue3/src/locales/nb_NO.json b/vue3/src/locales/nb_NO.json
index b4dc0d1a8..f4cf67aff 100644
--- a/vue3/src/locales/nb_NO.json
+++ b/vue3/src/locales/nb_NO.json
@@ -70,6 +70,7 @@
"Conversion": "Omregn enhet",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "Kopier",
"Copy Link": "Kopier lenke",
"Copy Token": "Kopier Token",
@@ -155,6 +156,7 @@
"GroupBy": "Grupér",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "Skjul Matrett",
"Hide_Keyword": "Skjul nøkkelord",
"Hide_Keywords": "Skjul nøkkelord",
@@ -312,6 +314,7 @@
"Quick actions": "",
"QuickEntry": "Hurtigregistrering",
"Random Recipes": "Tilfeldige oppskrifter",
+ "RandomOrder": "",
"Rating": "Vurdering",
"Ratings": "",
"Recently_Viewed": "Nylig vist",
@@ -441,6 +444,7 @@
"Valid Until": "",
"View": "Visning",
"View_Recipes": "Vis oppskrifter",
+ "Viewed": "",
"Waiting": "Venter",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -459,13 +463,17 @@
"additional_options": "",
"advanced": "Avansert",
"advanced_search_settings": "",
+ "after": "",
+ "all": "",
"all_fields_optional": "Alle felt er valgfri, og kan stå tomme.",
"and": "og",
"and_down": "& Ned",
"and_up": "& Opp",
+ "any": "",
"asc": "Stigende",
"base_amount": "Basemengde",
"base_unit": "Baseenhet",
+ "before": "",
"book_filter_help": "",
"click_image_import": "",
"confirm_delete": "Er du sikker på at du vil slette dette {object}?",
@@ -507,6 +515,8 @@
"err_move_self": "Kan ikke flytte elementet til seg selv",
"err_moving_resource": "Feil ved flytting av ressurs!",
"err_updating_resource": "Feil ved oppdatering av ressurs!",
+ "exact": "",
+ "exclude": "",
"expert_mode": "Ekspert Modus",
"explain": "",
"fields": "Felt",
@@ -546,6 +556,7 @@
"not": "ikke",
"nothing": "Ingenting å gjøre",
"nothing_planned_today": "",
+ "on": "",
"one_url_per_line": "En Lenke per linje",
"open_data_help_text": "Tandoor Open Data prosjektet gir fra fellesskapet til Tandoor. Dette feltet fylles ut automatisk når det importeres og tillater oppdateringer i fremtiden.",
"or": "eller",
@@ -571,6 +582,9 @@
"reusable_help_text": "Burde invitasjonslenken være brukbar for flere enn én bruker.",
"review_shopping": "",
"save_filter": "Lagre filtre",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_create_help_text": "",
"search_import_help_text": "",
"search_no_recipes": "",
diff --git a/vue3/src/locales/nl.json b/vue3/src/locales/nl.json
index d8565400a..56cf19d0f 100644
--- a/vue3/src/locales/nl.json
+++ b/vue3/src/locales/nl.json
@@ -73,6 +73,7 @@
"Conversion": "Omrekening",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "Kopie",
"Copy Link": "Kopieer Link",
"Copy Token": "Kopieer Token",
@@ -159,6 +160,7 @@
"GroupBy": "Groepeer per",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "Verberg Eten",
"Hide_Keyword": "Verberg etiketten",
"Hide_Keywords": "Verberg Etiket",
@@ -316,6 +318,7 @@
"Quick actions": "Snelle acties",
"QuickEntry": "Snelle invoer",
"Random Recipes": "Willekeurige recepten",
+ "RandomOrder": "",
"Rating": "Beoordeling",
"Ratings": "Waardering",
"Recently_Viewed": "Recent bekeken",
@@ -445,6 +448,7 @@
"Valid Until": "Geldig tot",
"View": "Bekijk",
"View_Recipes": "Bekijk Recepten",
+ "Viewed": "",
"Waiting": "Wachten",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -463,13 +467,17 @@
"additional_options": "Extra opties",
"advanced": "Geavanceerd",
"advanced_search_settings": "Geavanceerde zoekinstellingen",
+ "after": "",
+ "all": "",
"all_fields_optional": "Alle velden zijn optioneel en kunnen leeg gelaten worden.",
"and": "en",
"and_down": "& omlaag",
"and_up": "& Omhoog",
+ "any": "",
"asc": "Oplopend",
"base_amount": "Basisbedrag",
"base_unit": "Basis Unit",
+ "before": "",
"book_filter_help": "Voeg naast handmatig toegewezen recepten ook recepten uit het receptfilter toe.",
"click_image_import": "Klik op de afbeelding die je wil importeren voor dit recept",
"confirm_delete": "Weet je zeker dat je dit {object} wil verwijderen?",
@@ -513,6 +521,8 @@
"err_move_self": "Item kan niet naar zichzelf verplaatst worden",
"err_moving_resource": "Bij het verplaatsen van een hulpbron is een fout opgetreden!",
"err_updating_resource": "Bij het updaten van een hulpbron is een fout opgetreden!",
+ "exact": "",
+ "exclude": "",
"expert_mode": "Expertmodus",
"explain": "Leg uit",
"fields": "Velden",
@@ -563,6 +573,7 @@
"not": "niet",
"nothing": "Niks te doen",
"nothing_planned_today": "Je hebt niks gepland voor vandaag!",
+ "on": "",
"one_url_per_line": "Een URL per regel",
"open_data_help_text": "Het Tandoor Open Data-project biedt door de community bijgedragen gegevens voor Tandoor. Dit veld wordt automatisch gevuld bij het importeren en maakt updates in de toekomst mogelijk.",
"or": "of",
@@ -592,6 +603,9 @@
"reusable_help_text": "Zou de uitnodigingslink voor meer dan een gebruiker bruikbaar zijn.",
"review_shopping": "Beoordeel items op het boodschappenlijstje voor opslaan",
"save_filter": "Bewaar filter",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_create_help_text": "Maak direct een nieuw recept in Tandoor.",
"search_import_help_text": "Importeer een recept van een externe website of applicatie.",
"search_no_recipes": "Er zijn geen recepten gevonden!",
diff --git a/vue3/src/locales/pl.json b/vue3/src/locales/pl.json
index cfc833cdc..a32a09e01 100644
--- a/vue3/src/locales/pl.json
+++ b/vue3/src/locales/pl.json
@@ -74,6 +74,7 @@
"Conversion": "Konwersja",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "Kopiuj",
"Copy Link": "Skopiuj link",
"Copy Token": "Kopiuj Token",
@@ -176,6 +177,7 @@
"GroupBy": "Grupuj według",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "Ukryj żywność",
"Hide_Keyword": "Ukryj słowa kluczowe",
"Hide_Keywords": "Ukryj słowo kluczowe",
@@ -342,6 +344,7 @@
"Quick actions": "Szybkie akcje",
"QuickEntry": "Szybki wpis",
"Random Recipes": "Losowe przepisy",
+ "RandomOrder": "",
"Rating": "Ocena",
"Ratings": "Oceny",
"Recently_Viewed": "Ostatnio oglądane",
@@ -483,6 +486,7 @@
"Valid Until": "Ważne do",
"View": "Pogląd",
"View_Recipes": "Przeglądaj przepisy",
+ "Viewed": "",
"Waiting": "Oczekiwanie",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -501,13 +505,17 @@
"additional_options": "Opcje dodatkowe",
"advanced": "Zaawansowany",
"advanced_search_settings": "Zaawansowane ustawienia wyszukiwania",
+ "after": "",
+ "all": "",
"all_fields_optional": "Wszystkie pola są opcjonalne i można je pozostawić puste.",
"and": "i",
"and_down": "& Dół",
"and_up": "& Góra",
+ "any": "",
"asc": "Rosnąco",
"base_amount": "Ilość bazowa",
"base_unit": "Jednostka podstawowa",
+ "before": "",
"book_filter_help": "Uwzględnij przepisy z filtra przepisów oprócz ręcznie przypisanych.",
"click_image_import": "Kliknij obraz, który chcesz zaimportować do tego przepisu",
"confirm_delete": "Czy na pewno chcesz usunąć {object}?",
@@ -550,6 +558,8 @@
"err_move_self": "Nie można przenieść elementu do niego samego",
"err_moving_resource": "Wystąpił błąd podczas przenoszenia zasobu!",
"err_updating_resource": "Wystąpił błąd podczas aktualizowania zasobu!",
+ "exact": "",
+ "exclude": "",
"expert_mode": "Tryb eksperta",
"explain": "Wyjaśnij",
"fields": "Pola",
@@ -603,6 +613,7 @@
"not": "nie",
"nothing": "Nie ma nic do zrobienia",
"nothing_planned_today": "Na dziś nic nie planujesz!",
+ "on": "",
"one_url_per_line": "Jeden URL na linię",
"open_data_help_text": "Projekt Tandoor Open Data dostarcza danych przesłanych przez społeczność dla Tandoor. To pole jest wypełniane automatycznie podczas importu i umożliwia aktualizacje w przyszłości.",
"or": "lub",
@@ -633,6 +644,9 @@
"reusable_help_text": "Czy link z zaproszeniem może być używany przez więcej niż jednego użytkownika.",
"review_shopping": "Przejrzyj wpisy zakupów przed zapisaniem",
"save_filter": "Zapisz filtr",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_create_help_text": "Utwórz nowy przepis bezpośrednio w Tandoor.",
"search_import_help_text": "Zaimportuj przepis z zewnętrznej strony internetowej lub aplikacji.",
"search_no_recipes": "Nie udało się znaleźć żadnych przepisów!",
diff --git a/vue3/src/locales/pt.json b/vue3/src/locales/pt.json
index 8c383e292..03e98b1e3 100644
--- a/vue3/src/locales/pt.json
+++ b/vue3/src/locales/pt.json
@@ -59,6 +59,7 @@
"Continue": "",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "Copiar",
"Copy Link": "Copiar Ligação",
"Copy Token": "Copiar Chave",
@@ -133,6 +134,7 @@
"GroupBy": "Agrupar por",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "Esconder comida",
"Hide_Keyword": "",
"Hide_Keywords": "Esconder palavra-chave",
@@ -262,6 +264,7 @@
"Quick actions": "Acções Rápidas",
"QuickEntry": "",
"Random Recipes": "Receitas Aleatórias",
+ "RandomOrder": "",
"Rating": "Avaliação",
"Ratings": "Avaliações",
"Recently_Viewed": "Vistos Recentemente",
@@ -374,6 +377,7 @@
"User": "Utilizador",
"View": "Vista",
"View_Recipes": "Ver Receitas",
+ "Viewed": "",
"Waiting": "Em espera",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -388,11 +392,15 @@
"add_keyword": "Adicionar Palavra Chave",
"advanced": "",
"advanced_search_settings": "Configurações Avançadas de Pesquisa",
+ "after": "",
+ "all": "",
"all_fields_optional": "Todo os campos são opcionais e podem ficar vazios.",
"and": "e",
"and_down": "e para baixo",
"and_up": "e para cima",
+ "any": "",
"asc": "",
+ "before": "",
"book_filter_help": "",
"confirm_delete": "Tem a certeza que pretende eliminar este {object}?",
"convert_internal": "Converter em receita interna",
@@ -431,6 +439,8 @@
"err_move_self": "",
"err_moving_resource": "Ocorreu um erro movendo o recurso!",
"err_updating_resource": "Ocorreu um erro atualizando um recurso!",
+ "exact": "",
+ "exclude": "",
"expert_mode": "",
"explain": "",
"fields": "",
@@ -468,6 +478,7 @@
"not": "",
"nothing": "",
"nothing_planned_today": "Não Tem nada planeado para hoje!",
+ "on": "",
"one_url_per_line": "Um URL por linha",
"or": "ou",
"parameter_count": "Parametro {count}",
@@ -487,6 +498,9 @@
"reusable_help_text": "O link de convite poderá ser usado por mais do que um utilizador.",
"review_shopping": "",
"save_filter": "",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_create_help_text": "",
"search_import_help_text": "",
"search_no_recipes": "",
diff --git a/vue3/src/locales/pt_BR.json b/vue3/src/locales/pt_BR.json
index 5551bb7ad..4afe417fb 100644
--- a/vue3/src/locales/pt_BR.json
+++ b/vue3/src/locales/pt_BR.json
@@ -72,6 +72,7 @@
"Conversion": "Conversão",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "Copiar",
"Copy Link": "Copiar Link",
"Copy Token": "Copiar Token",
@@ -170,6 +171,7 @@
"GroupBy": "Agrupar Por",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "Esconder Comida",
"Hide_Keyword": "Oculta palavras-chave",
"Hide_Keywords": "Esconder palavra-chave",
@@ -329,6 +331,7 @@
"Quick actions": "Ações rápidas",
"QuickEntry": "",
"Random Recipes": "Receitas Aleatórias",
+ "RandomOrder": "",
"Rating": "Nota",
"Ratings": "Classificações",
"Recently_Viewed": "Visto recentemente",
@@ -459,6 +462,7 @@
"Valid Until": "Válido Até",
"View": "Visualizar",
"View_Recipes": "Ver Receitas",
+ "Viewed": "",
"Waiting": "Espera",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -476,13 +480,17 @@
"additional_options": "Opções Adicionais",
"advanced": "Avançado",
"advanced_search_settings": "Configuração de Pesquisa Avançada",
+ "after": "",
+ "all": "",
"all_fields_optional": "Todos os campos são opcionais e podem ser deixados em branco.",
"and": "e",
"and_down": "& Abaixo",
"and_up": "& Acima",
+ "any": "",
"asc": "Ascendente",
"base_amount": "Quantidade Base",
"base_unit": "Unidade Base",
+ "before": "",
"book_filter_help": "",
"click_image_import": "Clicar na imagem que deseja importar para esta receita",
"confirm_delete": "Tem certeza que deseja deletar esse {object}?",
@@ -525,6 +533,8 @@
"err_move_self": "Não é possível mover o item para ele mesmo",
"err_moving_resource": "Ocorreu um erro ao mover um recurso!",
"err_updating_resource": "Ocorreu um erro ao atualizar um recurso!",
+ "exact": "",
+ "exclude": "",
"expert_mode": "Modo Expert",
"explain": "Explicar",
"fields": "Campos",
@@ -569,6 +579,7 @@
"not": "não",
"nothing": "Nada para fazer",
"nothing_planned_today": "Você não tem nada planejado para hoje!",
+ "on": "",
"one_url_per_line": "Uma URL por linha",
"open_data_help_text": "O projeto Tandoor Open Data fornece dados contribuídos pela comunidade para o Tandoor. Este campo é preenchido automaticamente ao importá-lo e permite atualizações no futuro.",
"or": "ou",
@@ -595,6 +606,9 @@
"reusable_help_text": "O convite pode ser utilizado para mais de um usuário.",
"review_shopping": "",
"save_filter": "Salvar Filtro",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_create_help_text": "Crie uma nova receita diretamente em Tandoor.",
"search_import_help_text": "Importe uma receita de um website externo ou aplicação.",
"search_no_recipes": "Não encontrou nenhuma receita!",
diff --git a/vue3/src/locales/ro.json b/vue3/src/locales/ro.json
index 7b8806436..a3d3cc6f3 100644
--- a/vue3/src/locales/ro.json
+++ b/vue3/src/locales/ro.json
@@ -69,6 +69,7 @@
"Continue": "",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "Copie",
"Copy Link": "Copiere link",
"Copy Token": "Copiere token",
@@ -153,6 +154,7 @@
"GroupBy": "Grupat de",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "Ascunde mâncare",
"Hide_Keyword": "Ascunde cuvintele cheie",
"Hide_Keywords": "Ascunde cuvânt cheie",
@@ -304,6 +306,7 @@
"Quick actions": "Acțiuni rapide",
"QuickEntry": "Înscriere rapidă",
"Random Recipes": "Rețete aleatoare",
+ "RandomOrder": "",
"Rating": "Evaluare",
"Ratings": "Evaluări",
"Recently_Viewed": "Vizualizate recent",
@@ -431,6 +434,7 @@
"Valid Until": "Valabil până la",
"View": "Vizualizare",
"View_Recipes": "Vizionare rețete",
+ "Viewed": "",
"Waiting": "Așteptare",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -448,11 +452,15 @@
"additional_options": "Opțiuni suplimentare",
"advanced": "Avansat",
"advanced_search_settings": "Setări avansate de căutare",
+ "after": "",
+ "all": "",
"all_fields_optional": "Toate câmpurile sunt opționale și pot fi lăsate necompletate.",
"and": "și",
"and_down": "& Jos",
"and_up": "& Sus",
+ "any": "",
"asc": "Crescător",
+ "before": "",
"book_filter_help": "Includeți rețete din filtrul de rețete în plus față de cele atribuite manual.",
"click_image_import": "Faceți click pe imaginea pe care doriți să o importați pentru această rețetă",
"confirm_delete": "Sunteți sigur că vreți să ștergeți acest {object}?",
@@ -491,6 +499,8 @@
"err_move_self": "Nu se poate muta elementul în sine",
"err_moving_resource": "A existat o eroare în mutarea unei resurse!",
"err_updating_resource": "A apărut o eroare la actualizarea unei resurse!",
+ "exact": "",
+ "exclude": "",
"expert_mode": "Modul Expert",
"explain": "Explicație",
"fields": "Câmpuri",
@@ -530,6 +540,7 @@
"not": "nu",
"nothing": "Nimic de făcut",
"nothing_planned_today": "Nu ai nimic planificat pentru ziua de azi!",
+ "on": "",
"one_url_per_line": "O adresă URL pe linie",
"or": "sau",
"parameter_count": "Parametru {count}",
@@ -552,6 +563,9 @@
"reusable_help_text": "Ar trebui link-ul de invitație să poată fi utilizat de mai mulți utilizatori.",
"review_shopping": "Examinați intrările de cumpărături înainte de a salva",
"save_filter": "Salvare filtru",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_create_help_text": "Creați o rețetă nouă direct în Tandoor.",
"search_import_help_text": "Importați o rețetă de pe un site web sau o aplicație externă.",
"search_no_recipes": "Nu a putut găsi nici o rețetă!",
diff --git a/vue3/src/locales/ru.json b/vue3/src/locales/ru.json
index be6e6bf6e..8114512ce 100644
--- a/vue3/src/locales/ru.json
+++ b/vue3/src/locales/ru.json
@@ -54,6 +54,7 @@
"Continue": "",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "Копировать",
"Copy_template_reference": "Скопировать ссылку на шаблон",
"CountMore": "...+{count} больше",
@@ -122,6 +123,7 @@
"GroupBy": "Сгруппировать по",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "Скрыть еду",
"Hide_Keyword": "Скрыть ключевые слова",
"Hide_Keywords": "Скрыть ключевое слово",
@@ -247,6 +249,7 @@
"Proteins": "Белки",
"Quick actions": "Быстрые действия",
"Random Recipes": "Случайные рецепты",
+ "RandomOrder": "",
"Rating": "Рейтинг",
"Ratings": "Рейтинги",
"Recently_Viewed": "Недавно просмотренные",
@@ -349,6 +352,7 @@
"User": "Пользователь",
"View": "Просмотр",
"View_Recipes": "Просмотр рецепта",
+ "Viewed": "",
"Waiting": "Ожидание",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -365,10 +369,14 @@
"additional_options": "Дополнительные опции",
"advanced": "Расширенный",
"advanced_search_settings": "Расширенные настройки поиска",
+ "after": "",
+ "all": "",
"all_fields_optional": "Все поля не обязательны для заполнения.",
"and": "и",
"and_down": "Вниз",
"and_up": "Вверх",
+ "any": "",
+ "before": "",
"book_filter_help": "Включать рецепты из фильтра рецептов в дополнение к назначенным вручную.",
"confirm_delete": "Вы уверены, что хотите удалить этот объект?",
"convert_internal": "Конвертировать рецепт во внутренний формат",
@@ -398,6 +406,8 @@
"err_move_self": "Невозможно переместить элемент на себя",
"err_moving_resource": "Произошла ошибка при перемещении продукта!",
"err_updating_resource": "Ошибка при редактировании продукта!",
+ "exact": "",
+ "exclude": "",
"expert_mode": "Экспертный режим",
"fields": "Поля",
"file_upload_disabled": "Выгрузка файла не активирована в настройках.",
@@ -428,6 +438,7 @@
"no_pinned_recipes": "У Вас нет закреплённых рецептов!",
"nothing": "Нечего делать",
"nothing_planned_today": "Вы ничего не запланировали на сегодня!",
+ "on": "",
"one_url_per_line": "Один URL в строке",
"or": "или",
"parameter_count": "Параметр {count}",
@@ -439,6 +450,9 @@
"remove_selection": "Отменить выбор",
"review_shopping": "Просмотрите записи о покупках перед сохранением",
"save_filter": "Сохранить фильтр",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_rank": "Поисковый рейтинг",
"select_file": "Выбрать файл",
"select_food": "Выберите продукты питания",
diff --git a/vue3/src/locales/sl.json b/vue3/src/locales/sl.json
index 695e169bd..358ed33fe 100644
--- a/vue3/src/locales/sl.json
+++ b/vue3/src/locales/sl.json
@@ -55,6 +55,7 @@
"Continue": "",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "Kopiraj",
"Copy_template_reference": "Kopiraj referenco vzorca",
"CountMore": "...+{count} več",
@@ -122,6 +123,7 @@
"GroupBy": "Združi po",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "Skrij hrano",
"Hide_Keyword": "Skrij ključne besede",
"Hide_Keywords": "Skrij ključno besedo",
@@ -240,6 +242,7 @@
"Property_Editor": "",
"Proteins": "Beljakovine",
"QuickEntry": "Hitri vnos",
+ "RandomOrder": "",
"Rating": "Ocena",
"Recently_Viewed": "Nazadnje videno",
"Recipe": "Recept",
@@ -344,6 +347,7 @@
"Use_Plural_Unit_Simple": "",
"View": "Pogled",
"View_Recipes": "Preglej recepte",
+ "Viewed": "",
"Waiting": "Čakanje",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -355,11 +359,15 @@
"Year": "Leto",
"YourSpaces": "",
"active": "",
+ "after": "",
+ "all": "",
"all_fields_optional": "Vsa polja so opcijska in jih lahko pustiš prazne.",
"and": "in",
"and_up": "& gor",
+ "any": "",
"base_amount": "Osnovna Količina",
"base_unit": "Osnovna Enota",
+ "before": "",
"confirm_delete": "Ali si prepričan da želiš izbrisati {object}?",
"convert_internal": "Pretvori v interni recept",
"converted_amount": "Pretvorjena Količina",
@@ -390,6 +398,8 @@
"err_move_self": "Ne morem premakniti elementa v samega sebe",
"err_moving_resource": "Napaka pri premikanju vira!",
"err_updating_resource": "Napaka pri posodabljanju vira!",
+ "exact": "",
+ "exclude": "",
"file_upload_disabled": "Nalaganje datoteke ni omogočeno za tvoj prostor.",
"filter_to_supermarket_desc": "Privzeto, razvrsti nakupovalni listek, da vključi samo označene trgovine.",
"food_inherit_info": "Polja za živila, ki so privzeto podedovana.",
@@ -412,6 +422,7 @@
"move_selection": "Izberi starša {type} za premik v {source}.",
"move_title": "Premakni {type}",
"nothing": "Ni kaj za narediti",
+ "on": "",
"open_data_help_text": "Projekt Tandoor Open Data zagotavlja podatke, ki jih je prispeva skupnost. To polje se samodejno izpolni ob uvozu in omogoča posodobitve v prihodnosti.",
"or": "ali",
"per_serving": "na porcijo",
@@ -422,6 +433,9 @@
"remember_hours": "Ure, ki si jih zapomni",
"remember_search": "Zapomni si iskanje",
"reusable_help_text": "Ali lahko povezavo za povabilo uporabi več kot en uporabnik.",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"shopping_add_onhand": "Avtomatsko v roki",
"shopping_auto_sync": "Avtomatska sinhronizacija",
"shopping_auto_sync_desc": "Nastavitev na 0 bo onemogoča avtomatsko sinhronizacijo. Pri ogledu nakupovalnega seznama se seznam posodablja vsakih nekaj sekund za sinhronizacijo sprememb, ki jih je morda naredil nekdo drug. Uporabno pri nakupovanju z več ljudmi, vendar bo uporabljalo mobilne podatke.",
diff --git a/vue3/src/locales/sv.json b/vue3/src/locales/sv.json
index d41ae5cee..e685630f9 100644
--- a/vue3/src/locales/sv.json
+++ b/vue3/src/locales/sv.json
@@ -74,6 +74,7 @@
"Conversion": "Omvandling",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "Kopiera",
"Copy Link": "Kopiera Länk",
"Copy Token": "Kopiera token",
@@ -176,6 +177,7 @@
"GroupBy": "Gruppera enligt",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "Dölj livsmedel",
"Hide_Keyword": "Dölj nyckelord",
"Hide_Keywords": "Dölj nyckelord",
@@ -342,6 +344,7 @@
"Quick actions": "Snabba handlingar",
"QuickEntry": "Snabbt inlägg",
"Random Recipes": "Slumpmässiga recept",
+ "RandomOrder": "",
"Rating": "Betyg",
"Ratings": "Betyg",
"Recently_Viewed": "Nyligen visade",
@@ -483,6 +486,7 @@
"Valid Until": "Giltig till",
"View": "Visa",
"View_Recipes": "Visa recept",
+ "Viewed": "",
"Waiting": "Väntan",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -501,13 +505,17 @@
"additional_options": "Ytterligare alternativ",
"advanced": "Avancerat",
"advanced_search_settings": "Avancerade sökinställningar",
+ "after": "",
+ "all": "",
"all_fields_optional": "Alla rutor är valfria och kan lämnas tomma.",
"and": "och",
"and_down": "& up",
"and_up": "& ned",
+ "any": "",
"asc": "Stigande",
"base_amount": "Basmängd",
"base_unit": "Basenhet",
+ "before": "",
"book_filter_help": "Inkludera recept från receptfilter utöver de manuellt tilldelade.",
"click_image_import": "Klicka på bilden du vill importera till detta recept",
"confirm_delete": "Är du säker på att du vill radera detta {object}?",
@@ -550,6 +558,8 @@
"err_move_self": "Kan inte flytta objektet till sig självt",
"err_moving_resource": "Det uppstod ett fel när en resurs skulle flyttas!",
"err_updating_resource": "Det uppstod ett fel när en resurs skulle uppdateras!",
+ "exact": "",
+ "exclude": "",
"expert_mode": "Expertläge",
"explain": "Förklara",
"fields": "Fält",
@@ -603,6 +613,7 @@
"not": "inte",
"nothing": "Inget att göra",
"nothing_planned_today": "Du har ingenting planerat för idag!",
+ "on": "",
"one_url_per_line": "Endast en URL per rad",
"open_data_help_text": "Tandoor Open Data projektet ger tillgång till Tandoor data som har bidragits av voluntärer. Det här fältet fylls automatiskt vid import och möjliggör updateringar i framtiden.",
"or": "eller",
@@ -633,6 +644,9 @@
"reusable_help_text": "Bör inbjudningslänken vara användbar för mer än en användare.",
"review_shopping": "Granska inköpsposter innan du sparar",
"save_filter": "Spara filter",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_create_help_text": "Skapa ett nytt recept direkt i Tandoor.",
"search_import_help_text": "Importera ett recept från en extern webbplats eller applikation.",
"search_no_recipes": "Hittade inga recept!",
diff --git a/vue3/src/locales/tr.json b/vue3/src/locales/tr.json
index 207fbe7bb..f5ae2cd91 100644
--- a/vue3/src/locales/tr.json
+++ b/vue3/src/locales/tr.json
@@ -73,6 +73,7 @@
"Conversion": "Dönüşüm",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "Kopyala",
"Copy Link": "Bağlantıyı Kopyala",
"Copy Token": "Anahtarı Kopyala",
@@ -175,6 +176,7 @@
"GroupBy": "Gruplandırma Ölçütü",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "Yiyeceği Gizle",
"Hide_Keyword": "Anahtar kelimeleri gizle",
"Hide_Keywords": "Anahtar Kelimeyi Gizle",
@@ -341,6 +343,7 @@
"Quick actions": "Hızlı işlemler",
"QuickEntry": "Hızlı Giriş",
"Random Recipes": "Rasgele Tarifler",
+ "RandomOrder": "",
"Rating": "Puanlama",
"Ratings": "Derecelendirmeler",
"Recently_Viewed": "Son Görüntülenen",
@@ -482,6 +485,7 @@
"Valid Until": "Geçerlilik Tarihi",
"View": "Görüntüle",
"View_Recipes": "Tarifleri Görüntüle",
+ "Viewed": "",
"Waiting": "Bekleniyor",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -500,13 +504,17 @@
"additional_options": "Ek Seçenekler",
"advanced": "Gelişmiş",
"advanced_search_settings": "Gelişmiş Arama Ayarları",
+ "after": "",
+ "all": "",
"all_fields_optional": "Bütün alanlar tercihe bağlıdır ve boş bırakılabilir.",
"and": "ve",
"and_down": "& Aşağı",
"and_up": "& Yukarı",
+ "any": "",
"asc": "Artan",
"base_amount": "Temel Miktar",
"base_unit": "Temel Birim",
+ "before": "",
"book_filter_help": "Manuel olarak atananlara ek olarak tarif filtresindeki tarifleri de ekleyin.",
"click_image_import": "Bu tarif için içe aktarmak istediğiniz görsele tıklayın",
"confirm_delete": "Bu {object}'yi silmek istediğinizden emin misiniz?",
@@ -548,6 +556,8 @@
"err_move_self": "Öğe kendisine taşınamaz",
"err_moving_resource": "Kaynak taşınırken bir hata oluştu!",
"err_updating_resource": "Kaynak güncellenirken bir hata oluştu!",
+ "exact": "",
+ "exclude": "",
"expert_mode": "Uzman Modu",
"explain": "Açıkla",
"fields": "Alanlar",
@@ -601,6 +611,7 @@
"not": "değil",
"nothing": "Yapacak bir şey yok",
"nothing_planned_today": "Bugün için planınız yok!",
+ "on": "",
"one_url_per_line": "Satır başına bir URL",
"open_data_help_text": "The Tandoor Open Data projesi Tandoor için topluluk tarafından oluşturulmuş verileri sağlar. Bu alan içeri aktarım sırasında otomatik olarak doldurulur ve gelecekte güncellenebilir.",
"or": "veya",
@@ -631,6 +642,9 @@
"reusable_help_text": "Davet bağlantısı birden fazla kullanıcı için kullanılabilir olsun mu.",
"review_shopping": "Kaydetmeden önce alışveriş girişlerini inceleyin",
"save_filter": "Filtreyi Kaydet",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_create_help_text": "Doğrudan Tandoor'da yeni bir tarif oluşturun.",
"search_import_help_text": "Harici bir web sitesinden veya uygulamadan bir tarifi içe aktarın.",
"search_no_recipes": "Herhangi bir tarif bulunamadı!",
diff --git a/vue3/src/locales/uk.json b/vue3/src/locales/uk.json
index 901332c3b..f492fb46f 100644
--- a/vue3/src/locales/uk.json
+++ b/vue3/src/locales/uk.json
@@ -63,6 +63,7 @@
"Continue": "",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "Копіювати",
"Copy Link": "Скопіювати Посилання",
"Copy Token": "Скопіювати Токен",
@@ -140,6 +141,7 @@
"GroupBy": "По Групі",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "Сховати Їжу",
"Hide_Keyword": "",
"Hide_Keywords": "Сховати Ключове слово",
@@ -280,6 +282,7 @@
"Quick actions": "",
"QuickEntry": "",
"Random Recipes": "",
+ "RandomOrder": "",
"Rating": "Рейтинг",
"Ratings": "",
"Recently_Viewed": "Нещодавно переглянуті",
@@ -396,6 +399,7 @@
"User": "",
"View": "",
"View_Recipes": "Подивитися Рецепт",
+ "Viewed": "",
"Waiting": "Очікування",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -413,11 +417,15 @@
"additional_options": "",
"advanced": "",
"advanced_search_settings": "",
+ "after": "",
+ "all": "",
"all_fields_optional": "Всі поля опціональні і можна залишити їх пустими.",
"and": "і",
"and_down": "І Вниз",
"and_up": "І Уверх",
+ "any": "",
"asc": "",
+ "before": "",
"book_filter_help": "",
"click_image_import": "",
"confirm_delete": "Ви впевнені, що хочете видалити {object}?",
@@ -456,6 +464,8 @@
"err_move_self": "",
"err_moving_resource": "Виникла помилка при переміщені ресурсу!",
"err_updating_resource": "Виникла помилка при оновленні ресурсу!",
+ "exact": "",
+ "exclude": "",
"expert_mode": "",
"explain": "",
"fields": "",
@@ -494,6 +504,7 @@
"not": "",
"nothing": "",
"nothing_planned_today": "",
+ "on": "",
"one_url_per_line": "Одна URL на лінію",
"or": "або",
"parameter_count": "",
@@ -513,6 +524,9 @@
"reusable_help_text": "Запрошувальне посилання має бути тільки для одного користувача.",
"review_shopping": "",
"save_filter": "",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_create_help_text": "",
"search_import_help_text": "",
"search_no_recipes": "",
diff --git a/vue3/src/locales/zh_Hans.json b/vue3/src/locales/zh_Hans.json
index fbc3d5dca..a83c1f5e7 100644
--- a/vue3/src/locales/zh_Hans.json
+++ b/vue3/src/locales/zh_Hans.json
@@ -72,6 +72,7 @@
"Conversion": "转换",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "复制",
"Copy Link": "复制链接",
"Copy Token": "复制令牌",
@@ -171,6 +172,7 @@
"GroupBy": "分组",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_Food": "隐藏食物",
"Hide_Keyword": "隐藏关键词",
"Hide_Keywords": "隐藏关键词",
@@ -336,6 +338,7 @@
"Quick actions": "快捷操作",
"QuickEntry": "快速入口",
"Random Recipes": "随机食谱",
+ "RandomOrder": "",
"Rating": "评分",
"Ratings": "等级",
"Recently_Viewed": "最近浏览",
@@ -473,6 +476,7 @@
"Valid Until": "有效期限",
"View": "查看",
"View_Recipes": "查看食谱",
+ "Viewed": "",
"Waiting": "等待",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -491,13 +495,17 @@
"additional_options": "附加选项",
"advanced": "高级",
"advanced_search_settings": "高级搜索设置",
+ "after": "",
+ "all": "",
"all_fields_optional": "所有字段都是可选的,可以留空。",
"and": "和",
"and_down": "& Down",
"and_up": "& Up",
+ "any": "",
"asc": "升序",
"base_amount": "基本量",
"base_unit": "基本单位",
+ "before": "",
"book_filter_help": "除手动选择的食谱外,还包括筛选中的食谱。",
"click_image_import": "单击此处为食谱导入图像",
"confirm_delete": "您确定要删除 {object} 吗?",
@@ -540,6 +548,8 @@
"err_move_self": "无法将项目移动到自身",
"err_moving_resource": "移动资源时出错!",
"err_updating_resource": "更新资源时出错!",
+ "exact": "",
+ "exclude": "",
"expert_mode": "专家模式",
"explain": "解释",
"fields": "字段",
@@ -593,6 +603,7 @@
"not": "不",
"nothing": "无事可做",
"nothing_planned_today": "你今天没有任何计划!",
+ "on": "",
"one_url_per_line": "每行一个 URL",
"open_data_help_text": "Tandoor开放数据项目为Tandoor提供社区贡献的数据。该字段在导入时会自动填充,并可以之后更新。",
"or": "或",
@@ -623,6 +634,9 @@
"reusable_help_text": "邀请链接是否可用于多个用户。",
"review_shopping": "保存前查看购物列表",
"save_filter": "保存筛选器",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"search_create_help_text": "直接在泥炉中创建新食谱。",
"search_import_help_text": "从外部网站或应用程序导入食谱。",
"search_no_recipes": "找不到任何食谱!",
diff --git a/vue3/src/locales/zh_Hant.json b/vue3/src/locales/zh_Hant.json
index 1ece5159a..9d1e1a5dc 100644
--- a/vue3/src/locales/zh_Hant.json
+++ b/vue3/src/locales/zh_Hant.json
@@ -35,6 +35,7 @@
"Continue": "",
"ConversionsHelp": "",
"CookLog": "",
+ "Cooked": "",
"Copy": "",
"Copy_template_reference": "複製參考模板",
"Create": "",
@@ -70,6 +71,7 @@
"GettingStarted": "",
"HeaderWarning": "",
"Headline": "",
+ "Hide_External": "",
"Hide_as_header": "隱藏為標題",
"History": "",
"HostedFreeVersion": "",
@@ -124,6 +126,7 @@
"PropertyType": "",
"Property_Editor": "",
"Proteins": "",
+ "RandomOrder": "",
"Rating": "",
"Recently_Viewed": "",
"RecipeStepsHelp": "",
@@ -197,6 +200,7 @@
"Use_Plural_Unit_Always": "",
"Use_Plural_Unit_Simple": "",
"View_Recipes": "",
+ "Viewed": "",
"Waiting": "",
"WaitingTime": "",
"WarnPageLeave": "",
@@ -204,8 +208,12 @@
"WorkingTime": "",
"YourSpaces": "",
"active": "",
+ "after": "",
+ "all": "",
"all_fields_optional": "所有欄位都是可選的,可以留空。",
"and": "",
+ "any": "",
+ "before": "",
"confirm_delete": "您確定要刪除這個{object}嗎?",
"convert_internal": "轉換為內部食譜",
"created_by": "",
@@ -217,15 +225,21 @@
"err_merging_resource": "合併資源時發生錯誤!",
"err_moving_resource": "移動資源時發生錯誤!",
"err_updating_resource": "更新資源時發生錯誤!",
+ "exact": "",
+ "exclude": "",
"file_upload_disabled": "您的空間未啟用檔案上傳功能。",
"food_inherit_info": "食物上應該預設繼承的欄位。",
"import_running": "正在進行匯入,請稍候!",
"min": "",
+ "on": "",
"or": "",
"per_serving": "每份",
"plural_short": "",
"plural_usage_info": "",
"recipe_property_info": "您也可以為食材添加屬性,以便根據您的食譜自動計算它們!",
+ "searchFilterObjectsAndHelp": "",
+ "searchFilterObjectsAndNotHelp": "",
+ "searchFilterObjectsOrNotHelp": "",
"show_only_internal": "僅顯示內部食譜",
"show_split_screen": "分割視圖",
"step_time_minutes": "步驟時間(以分鐘為單位)",
diff --git a/vue3/src/pages/SearchPage.vue b/vue3/src/pages/SearchPage.vue
index 52975987e..77d99b3ec 100644
--- a/vue3/src/pages/SearchPage.vue
+++ b/vue3/src/pages/SearchPage.vue
@@ -42,8 +42,8 @@
-
+
@@ -204,7 +204,7 @@ const tableHeaders = computed(() => {
const tableItemCount = ref(0)
const recipes = ref([] as RecipeOverview[])
-const selectedCustomFilter = ref({} as CustomFilter)
+const selectedCustomFilter = ref(null)
const newFilterName = ref('')
/**
@@ -264,6 +264,7 @@ function reset() {
filter.enabled = false
filter.modelValue = filter.default
})
+ selectedCustomFilter.value = null
recipes.value = []
searchRecipes({page: 1})
}
@@ -312,7 +313,7 @@ function isFilterDefaultValue(filter: any) {
function saveCustomFilter() {
let api = new ApiApi()
- if (Object.keys(selectedCustomFilter.value).length > 0) {
+ if (selectedCustomFilter.value != null) {
loading.value = true
selectedCustomFilter.value.search = JSON.stringify(filtersToCustomFilterFormat())
api.apiCustomFilterUpdate({id: selectedCustomFilter.value.id!, customFilter: selectedCustomFilter.value}).then((r) => {
@@ -323,12 +324,13 @@ function saveCustomFilter() {
loading.value = false
})
} else {
+ newFilterName.value = ''
dialog.value = true
}
}
/**
- * create new filter
+ * create a new saved search filter in the database via api
*/
function createCustomFilter() {
let api = new ApiApi()
@@ -344,457 +346,117 @@ function createCustomFilter() {
})
}
-function loadCustomFilter() {
- let obj = customFilterToApiRecipeListRequest(selectedCustomFilter.value.search)
- console.log(obj, selectedCustomFilter.value.search)
- Object.keys(obj).forEach((key) => {
- urlSearchParams[key] = obj[key]
- })
-}
-
-
-function transformTandoor1Filter(customFilterParams: any){
- if (customFilterParams['query'] != null) {
- query.value = customFilterParams['query']
- }
-
- if (customFilterParams['books'] != null) {
- filters.value.books.modelValue = customFilterParams['books']
- }
-
- if (customFilterParams['books_and'] != null) {
- filters.value.booksAnd.modelValue = customFilterParams['books_and']
- }
-
- if (customFilterParams['books_and_not'] != null) {
- filters.value.booksAndNot.modelValue = customFilterParams['books_and_not']
- }
-
- if (customFilterParams['books_or'] != null) {
- filters.value.books.modelValue.concat(customFilterParams['books_or'])
- }
-
- if (customFilterParams['books_or_not'] != null) {
- filters.value.booksOrNot.modelValue = customFilterParams['books_or_not']
- }
-
- if (customFilterParams['foods'] != null) {
- filters.value.foods.modelValue = customFilterParams['foods']
- }
-
- if (customFilterParams['foods_and'] != null) {
- filters.value.foodsAnd.modelValue = customFilterParams['foods_and']
- }
-
- if (customFilterParams['foods_and_not'] != null) {
- filters.value.foodsAndNot.modelValue = customFilterParams['foods_and_not']
- }
-
- if (customFilterParams['foods_or'] != null) {
- filters.value.foods.modelValue.concat(customFilterParams['foods_or'])
- }
-
- if (customFilterParams['foods_or_not'] != null) {
- filters.value.foodsOrNot.modelValue = customFilterParams['foods_or_not']
- }
-
-
- if (customFilterParams['keywords'] != null) {
- filters.value.keywords.modelValue = customFilterParams['keywords'];
- }
-
- if (customFilterParams['keywords_and'] != null) {
- filters.value.keywordsAnd.modelValue = customFilterParams['keywords_and'];
- }
-
- if (customFilterParams['keywords_and_not'] != null) {
- filters.value.keywordsAndNot.modelValue = customFilterParams['keywords_and_not'];
- }
-
- if (customFilterParams['keywords_or'] != null) {
- filters.value.foodsOrNot.modelValue.concat(customFilterParams['keywords_or']);
- }
-
- if (customFilterParams['keywords_or_not'] != null) {
- filters.value.keywordsOrNot.modelValue = customFilterParams['keywords_or_not'];
- }
-
-
- if (customFilterParams['internal'] != null) {
- filters.value.internal.modelValue = customFilterParams['internal'];
- }
-
- if (customFilterParams['makenow'] != null) {
- filters.value.makenow.modelValue = customFilterParams['makenow'];
- }
-
- if (customFilterParams['random'] != null) {
- filters.value.random.modelValue = customFilterParams['random'];
- }
-
- if (customFilterParams['units'] != null) {
- filters.value.units.modelValue = customFilterParams['units'];
- }
-
- // logic to load filters for parameters that changed since tandoor 1
- if (customFilterParams['version'] == null) {
- if (customFilterParams['cookedon'] != null) {
- if (customFilterParams['cookedon'].startsWith('-')) {
- filters.value.cookedonLte.modelValue = customFilterParams['cookedon'].substring(1)
- } else {
- filters.value.cookedonGte.modelValue = customFilterParams['cookedon']
- }
- }
- if (customFilterParams['viewedon'] != null) {
- if (customFilterParams['viewedon'].startsWith('-')) {
- filters.value.viewedonLte.modelValue = customFilterParams['viewedon'].substring(1)
- } else {
- filters.value.viewedonGte.modelValue = customFilterParams['viewedon']
- }
- }
- if (customFilterParams['updatedon'] != null) {
- if (customFilterParams['updatedon'].startsWith('-')) {
- filters.value.updatedonLte.modelValue = customFilterParams['updatedon'].substring(1)
- } else {
- filters.value.updatedonGte.modelValue = customFilterParams['updatedon']
- }
- }
- if (customFilterParams['createdon'] != null) {
- if (customFilterParams['createdon'].startsWith('-')) {
- filters.value.createdonLte.modelValue = customFilterParams['createdon'].substring(1)
- } else {
- filters.value.createdonGte.modelValue = customFilterParams['createdon']
- }
- }
-
- if (customFilterParams['rating'] != null) {
- if (customFilterParams['rating'].startsWith('-')) {
- filters.value.ratingLte.modelValue = customFilterParams['rating'].substring(1)
- } else {
- filters.value.ratingGte.modelValue = customFilterParams['rating']
- }
- }
-
- if (customFilterParams['timescooked'] != null) {
- if (customFilterParams['timescooked'].startsWith('-')) {
- customFilterParams['timescooked_lte'] = customFilterParams['timescooked'].substring(1)
- } else {
- customFilterParams['timescooked_gte'] = customFilterParams['timescooked']
- }
- }
- }
-
-
- return customFilterParams
-}
-
-// TODO temporary function to convert old saved search format, either make proper db table or convert to native new format
/**
- * turn data in the format of a CustomFilter into the format needed for api request
- * @param customFilterParams
+ * load selected custom filter into the filters system
*/
-function customFilterFormatToFilters(customFilterParams: any) {
- let recipeListRequestParams: any = {};
- customFilterParams = JSON.parse(customFilterParams)
+function loadSelectedCustomFilter() {
+ let customFilterParams = JSON.parse(selectedCustomFilter.value.search)
+ if (customFilterParams['version'] == null) {
+ customFilterParams = transformTandoor1Filter(customFilterParams)
+ }
if (customFilterParams['query'] != null) {
query.value = customFilterParams['query']
}
- if (customFilterParams['books'] != null) {
- filters.value.books.modelValue = customFilterParams['books']
- }
-
- if (customFilterParams['books_and'] != null) {
- filters.value.booksAnd.modelValue = customFilterParams['books_and']
- }
-
- if (customFilterParams['books_and_not'] != null) {
- filters.value.booksAndNot.modelValue = customFilterParams['books_and_not']
- }
-
- if (customFilterParams['books_or'] != null) {
- filters.value.books.modelValue.concat(customFilterParams['books_or'])
- }
-
- if (customFilterParams['books_or_not'] != null) {
- filters.value.booksOrNot.modelValue = customFilterParams['books_or_not']
- }
-
- if (customFilterParams['foods'] != null) {
- filters.value.foods.modelValue = customFilterParams['foods']
- }
-
- if (customFilterParams['foods_and'] != null) {
- filters.value.foodsAnd.modelValue = customFilterParams['foods_and']
- }
-
- if (customFilterParams['foods_and_not'] != null) {
- filters.value.foodsAndNot.modelValue = customFilterParams['foods_and_not']
- }
-
- if (customFilterParams['foods_or'] != null) {
- filters.value.foods.modelValue.concat(customFilterParams['foods_or'])
- }
-
- if (customFilterParams['foods_or_not'] != null) {
- filters.value.foodsOrNot.modelValue = customFilterParams['foods_or_not']
- }
-
-
- if (customFilterParams['keywords'] != null) {
- filters.value.keywords.modelValue = customFilterParams['keywords'];
- }
-
- if (customFilterParams['keywords_and'] != null) {
- filters.value.keywordsAnd.modelValue = customFilterParams['keywords_and'];
- }
-
- if (customFilterParams['keywords_and_not'] != null) {
- filters.value.keywordsAndNot.modelValue = customFilterParams['keywords_and_not'];
- }
-
- if (customFilterParams['keywords_or'] != null) {
- filters.value.foodsOrNot.modelValue.concat(customFilterParams['keywords_or']);
- }
-
- if (customFilterParams['keywords_or_not'] != null) {
- filters.value.keywordsOrNot.modelValue = customFilterParams['keywords_or_not'];
- }
-
-
- if (customFilterParams['internal'] != null) {
- filters.value.internal.modelValue = customFilterParams['internal'];
- }
-
- if (customFilterParams['makenow'] != null) {
- filters.value.makenow.modelValue = customFilterParams['makenow'];
- }
-
- if (customFilterParams['random'] != null) {
- filters.value.random.modelValue = customFilterParams['random'];
- }
-
- if (customFilterParams['units'] != null) {
- filters.value.units.modelValue = customFilterParams['units'];
- }
-
- // logic to load filters for parameters that changed since tandoor 1
- if (customFilterParams['version'] == null) {
- if (customFilterParams['cookedon'] != null) {
- if (customFilterParams['cookedon'].startsWith('-')) {
- filters.value.cookedonLte.modelValue = customFilterParams['cookedon'].substring(1)
- } else {
- filters.value.cookedonGte.modelValue = customFilterParams['cookedon']
- }
+ Object.values(filters.value).forEach((filter) => {
+ let filterName = filter.id.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase()
+ if (customFilterParams[filterName] != null) {
+ filter.modelValue = customFilterParams[filterName]
+ filter.enabled = true
}
- if (customFilterParams['viewedon'] != null) {
- if (customFilterParams['viewedon'].startsWith('-')) {
- filters.value.viewedonLte.modelValue = customFilterParams['viewedon'].substring(1)
- } else {
- filters.value.viewedonGte.modelValue = customFilterParams['viewedon']
- }
- }
- if (customFilterParams['updatedon'] != null) {
- if (customFilterParams['updatedon'].startsWith('-')) {
- filters.value.updatedonLte.modelValue = customFilterParams['updatedon'].substring(1)
- } else {
- filters.value.updatedonGte.modelValue = customFilterParams['updatedon']
- }
- }
- if (customFilterParams['createdon'] != null) {
- if (customFilterParams['createdon'].startsWith('-')) {
- filters.value.createdonLte.modelValue = customFilterParams['createdon'].substring(1)
- } else {
- filters.value.createdonGte.modelValue = customFilterParams['createdon']
- }
- }
-
- if (customFilterParams['rating'] != null) {
- if (customFilterParams['rating'].startsWith('-')) {
- filters.value.ratingLte.modelValue = customFilterParams['rating'].substring(1)
- } else {
- filters.value.ratingGte.modelValue = customFilterParams['rating']
- }
- }
-
- if (customFilterParams['timescooked'] != null) {
- if (customFilterParams['timescooked'].startsWith('-')) {
- filters.value.timescookedLte.modelValue = customFilterParams['timescooked'].substring(1)
- } else {
- filters.value.timescookedGte.modelValue = customFilterParams['timescooked']
- }
- }
- } else {
- // logic to load tandoor 2 date filters
- if (customFilterParams['cookedon_lte'] != null) {
- filters.value.cookedonLte.modelValue = customFilterParams['cookedon_lte'];
- }
- if (customFilterParams['cookedon_gte'] != null) {
- filters.value.cookedonGte.modelValue = customFilterParams['cookedon_gte'];
- }
-
- if (customFilterParams['viewedon_lte'] != null) {
- filters.value.viewedonLte.modelValue = customFilterParams['viewedon_lte'];
- }
- if (customFilterParams['viewedon_gte'] != null) {
- filters.value.viewedonGte.modelValue = customFilterParams['viewedon_gte'];
- }
-
- if (customFilterParams['createdon'] != null) {
- filters.value.createdon.modelValue = customFilterParams['createdon'];
- }
- if (customFilterParams['createdon_lte'] != null) {
- filters.value.createdonLte.modelValue = customFilterParams['createdon_lte'];
- }
- if (customFilterParams['createdon_gte'] != null) {
- filters.value.createdonGte.modelValue = customFilterParams['createdon_gte'];
- }
-
- if (customFilterParams['updatedon'] != null) {
- filters.value.updatedon.modelValue = customFilterParams['updatedon'];
- }
- if (customFilterParams['updatedon_lte'] != null) {
- filters.value.updatedonLte.modelValue = customFilterParams['updatedon_lte'];
- }
- if (customFilterParams['updatedon_gte'] != null) {
- filters.value.updatedonGte.modelValue = customFilterParams['updatedon_gte'];
- }
- }
-
-
- return recipeListRequestParams
+ })
}
/**
* convert filters to custom filter format
*/
-// TODO unchanged for backward compatability for now, change to something easier to use later
function filtersToCustomFilterFormat() {
let customFilterParams: any = {};
- // booksOr/keywordsOr/foodsOr are intentionally left out as they are merged into books/keywords/foods on load and no longer saved
-
if (query.value != '') {
customFilterParams['query'] = query.value;
}
- if (!isFilterDefaultValue(filters.value.books)) {
- customFilterParams['books'] = filters.value.books.modelValue;
+ Object.values(filters.value).forEach((filter) => {
+ if (!isFilterDefaultValue(filter)) {
+ let filterName = filter.id.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase()
+ customFilterParams[filterName] = filter.modelValue
+ }
+ })
+
+ customFilterParams['version'] = '2'
+
+ return customFilterParams
+}
+
+/**
+ * transform a filter that is in the tandoor 1 format into the tandoor 2 format
+ * @param customFilterParams
+ */
+function transformTandoor1Filter(customFilterParams: any) {
+
+ // _or was basically an alias to the standard filter which behaves like an or filter
+ [['books_or', 'books'], ['foods_or', 'foods'], ['keywords_or', 'keywords'],].forEach(pair => {
+ if (customFilterParams[pair[1]] != null) {
+ if (customFilterParams[pair[2]] != null) {
+ customFilterParams[pair[2]].concat(customFilterParams[pair[1]])
+ } else {
+ customFilterParams[pair[2]] = customFilterParams[pair[1]]
+ }
+ }
+ })
+
+ if (customFilterParams['cookedon'] != null) {
+ if (customFilterParams['cookedon'].startsWith('-')) {
+ customFilterParams['cookedon_lte'] = customFilterParams['cookedon'].substring(1)
+ } else {
+ customFilterParams['cookedon_gte'] = customFilterParams['cookedon']
+ }
}
- if (!isFilterDefaultValue(filters.value.booksAnd)) {
- customFilterParams['books_and'] = filters.value.booksAnd.modelValue;
+ if (customFilterParams['viewedon'] != null) {
+ if (customFilterParams['viewedon'].startsWith('-')) {
+ customFilterParams['viewedon_lte'] = customFilterParams['viewedon'].substring(1)
+ } else {
+ customFilterParams['viewedon_gte'] = customFilterParams['viewedon']
+ }
}
- if (!isFilterDefaultValue(filters.value.booksAndNot)) {
- customFilterParams['books_and_not'] = filters.value.booksAndNot.modelValue;
+ if (customFilterParams['updatedon'] != null) {
+ if (customFilterParams['updatedon'].startsWith('-')) {
+ customFilterParams['updatedon_lte'] = customFilterParams['updatedon'].substring(1)
+ } else {
+ customFilterParams['updatedon_gte'] = customFilterParams['updatedon']
+ }
}
- if (!isFilterDefaultValue(filters.value.booksOrNot)) {
- customFilterParams['books_or_not'] = filters.value.booksOrNot.modelValue;
+ if (customFilterParams['createdon'] != null) {
+ if (customFilterParams['createdon'].startsWith('-')) {
+ customFilterParams['createdon_lte'] = customFilterParams['createdon'].substring(1)
+ } else {
+ customFilterParams['createdon_gte'] = customFilterParams['createdon']
+ }
}
- if (!isFilterDefaultValue(filters.value.foods)) {
- customFilterParams['foods'] = filters.value.foods.modelValue;
+ if (customFilterParams['rating'] != null) {
+ if (customFilterParams['rating'].startsWith('-')) {
+ customFilterParams['rating_lte'] = customFilterParams['rating'].substring(1)
+ } else {
+ customFilterParams['rating_gte'] = customFilterParams['rating']
+ }
}
- if (!isFilterDefaultValue(filters.value.foodsAnd)) {
- customFilterParams['foods_and'] = filters.value.foodsAnd.modelValue;
+ if (customFilterParams['timescooked'] != null) {
+ if (customFilterParams['timescooked'].startsWith('-')) {
+ customFilterParams['timescooked_lte'] = customFilterParams['timescooked'].substring(1)
+ } else {
+ customFilterParams['timescooked_gte'] = customFilterParams['timescooked']
+ }
}
- if (!isFilterDefaultValue(filters.value.foodsAndNot)) {
- customFilterParams['foods_and_not'] = filters.value.foodsAndNot.modelValue;
- }
- if (!isFilterDefaultValue(filters.value.foodsOrNot)) {
- customFilterParams['foods_or_not'] = filters.value.foodsOrNot.modelValue;
- }
-
- if (!isFilterDefaultValue(filters.value.internal)) {
- customFilterParams['internal'] = filters.value.internal.modelValue;
- }
-
- if (!isFilterDefaultValue(filters.value.keywords)) {
- customFilterParams['keywords'] = filters.value.keywords.modelValue;
- }
-
- if (!isFilterDefaultValue(filters.value.keywordsAnd)) {
- customFilterParams['keywords_and'] = filters.value.keywordsAnd.modelValue;
- }
-
- if (!isFilterDefaultValue(filters.value.keywordsAndNot)) {
- customFilterParams['keywords_and_not'] = filters.value.keywordsAndNot.modelValue;
- }
-
- if (!isFilterDefaultValue(filters.value.keywordsOrNot)) {
- customFilterParams['keywords_or_not'] = filters.value.keywordsOrNot.modelValue;
- }
-
- if (!isFilterDefaultValue(filters.value.makenow)) {
- customFilterParams['makenow'] = filters.value.makenow.modelValue;
- }
-
- if (!isFilterDefaultValue(filters.value.random)) {
- customFilterParams['random'] = filters.value.random.modelValue;
- }
-
- if (!isFilterDefaultValue(filters.value.units)) {
- customFilterParams['units'] = filters.value.units.modelValue;
- }
-
- if (!isFilterDefaultValue(filters.value.cookedonGte)) {
- customFilterParams['cookedon_gte'] = filters.value.cookedonGte.modelValue;
- }
- if (!isFilterDefaultValue(filters.value.cookedonLte)) {
- customFilterParams['cookedon_lte'] = filters.value.cookedonLte.modelValue;
- }
-
- if (!isFilterDefaultValue(filters.value.viewedonLte)) {
- customFilterParams['viewedon_lte'] = filters.value.viewedonLte.modelValue;
- }
- if (!isFilterDefaultValue(filters.value.viewedonGte)) {
- customFilterParams['viewedon_gte'] = filters.value.viewedonGte.modelValue;
- }
-
- if (!isFilterDefaultValue(filters.value.createdon)) {
- customFilterParams['createdon'] = filters.value.createdon.modelValue;
- }
- if (!isFilterDefaultValue(filters.value.createdonLte)) {
- customFilterParams['createdon_lte'] = filters.value.createdonLte.modelValue;
- }
- if (!isFilterDefaultValue(filters.value.createdonGte)) {
- customFilterParams['createdon_gte'] = filters.value.createdonGte.modelValue;
- }
-
- if (!isFilterDefaultValue(filters.value.updatedon)) {
- customFilterParams['updatedon'] = filters.value.updatedon.modelValue;
- }
- if (!isFilterDefaultValue(filters.value.updatedonLte)) {
- customFilterParams['updatedon_lte'] = filters.value.updatedonLte.modelValue;
- }
- if (!isFilterDefaultValue(filters.value.updatedonGte)) {
- customFilterParams['updatedon_gte'] = filters.value.updatedonGte.modelValue;
- }
-
- if (!isFilterDefaultValue(filters.value.rating)) {
- customFilterParams['rating'] = filters.value.rating.modelValue;
- }
- if (!isFilterDefaultValue(filters.value.ratingLte)) {
- customFilterParams['rating_lte'] = filters.value.ratingLte.modelValue;
- }
- if (!isFilterDefaultValue(filters.value.ratingGte)) {
- customFilterParams['rating_gte'] = filters.value.ratingGte.modelValue;
- }
-
- if (!isFilterDefaultValue(filters.value.timescookedLte)) {
- customFilterParams['timescooked_lte'] = filters.value.timescookedLte.modelValue;
- }
- if (!isFilterDefaultValue(filters.value.timescookedGte)) {
- customFilterParams['timescooked_gte'] = filters.value.timescookedGte.modelValue;
- }
-
- customFilterParams['version'] = 'tandoor_2'
+ customFilterParams['version'] = '2'
return customFilterParams
}
@@ -805,8 +467,8 @@ function filtersToCustomFilterFormat() {
const filters = ref({
keywords: {
id: 'keywords',
- label: 'Keyword (any)',
- hint: 'Any of the given keywords',
+ label: `${t('Keywords')} (${t('any')})`,
+ hint: t('searchFilterObjectsHelp', {type: t('Keywords')}),
enabled: false,
default: [],
is: ModelSelect,
@@ -818,8 +480,8 @@ const filters = ref({
},
keywordsAnd: {
id: 'keywordsAnd',
- label: 'Keyword (all)',
- hint: 'All of the given keywords',
+ label: `${t('Keywords')} (${t('all')})`,
+ hint: t('searchFilterObjectsAndHelp', {type: t('Keywords')}),
enabled: false,
default: [],
is: ModelSelect,
@@ -831,8 +493,8 @@ const filters = ref({
},
keywordsOrNot: {
id: 'keywordsOrNot',
- label: 'Keyword exclude (any)',
- hint: 'Exclude recipes with any of the given keywords',
+ label: `${t('Keywords')} ${'exclude'} (${t('any')})`,
+ hint: t('searchFilterObjectsOrNotHelp', {type: t('Keywords')}),
enabled: false,
default: [],
is: ModelSelect,
@@ -844,8 +506,8 @@ const filters = ref({
},
keywordsAndNot: {
id: 'keywordsAndNot',
- label: 'Keyword exclude (all)',
- hint: 'Exclude recipes with all of the given keywords',
+ label: `${t('Keywords')} ${'exclude'} (${t('all')})`,
+ hint: t('searchFilterObjectsAndNotHelp', {type: t('Keywords')}),
enabled: false,
default: [],
is: ModelSelect,
@@ -857,8 +519,8 @@ const filters = ref({
},
foods: {
id: 'foods',
- label: 'Foods (any)',
- hint: 'Any of the given foods',
+ label: `${t('Foods')} (${t('any')})`,
+ hint: t('searchFilterObjectsHelp', {type: t('Foods')}),
enabled: false,
default: [],
is: ModelSelect,
@@ -870,8 +532,8 @@ const filters = ref({
},
foodsAnd: {
id: 'foodsAnd',
- label: 'Food (all)',
- hint: 'All of the given foods',
+ label: `${t('Keywords')} (${t('all')})`,
+ hint: t('searchFilterObjectsAndHelp', {type: t('Foods')}),
enabled: false,
default: [],
is: ModelSelect,
@@ -883,8 +545,8 @@ const filters = ref({
},
foodsOrNot: {
id: 'foodsOrNot',
- label: 'Food exclude (any)',
- hint: 'Exclude recipes with any of the given foods',
+ label: `${t('Foods')} ${'exclude'} (${t('any')})`,
+ hint: t('searchFilterObjectsOrNotHelp', {type: t('Foods')}),
enabled: false,
default: [],
is: ModelSelect,
@@ -896,8 +558,8 @@ const filters = ref({
},
foodsAndNot: {
id: 'foodsAndNot',
- label: 'Food exclude (all)',
- hint: 'Exclude recipes with all of the given foods',
+ label: `${t('Foods')} ${'exclude'} (${t('all')})`,
+ hint: t('searchFilterObjectsAndNotHelp', {type: t('Foods')}),
enabled: false,
default: [],
is: ModelSelect,
@@ -909,8 +571,8 @@ const filters = ref({
},
books: {
id: 'books',
- label: 'Book (any)',
- hint: 'Recipes that are in any of the given books',
+ label: `${t('Books')} (${t('any')})`,
+ hint: t('searchFilterObjectsHelp', {type: t('Books')}),
enabled: false,
default: [],
is: ModelSelect,
@@ -922,8 +584,8 @@ const filters = ref({
},
booksAnd: {
id: 'booksAnd',
- label: 'Book (all)',
- hint: 'Recipes that are in all of the given books',
+ label: `${t('Books')} (${t('all')})`,
+ hint: t('searchFilterObjectsAndHelp', {type: t('Books')}),
enabled: false,
default: [],
is: ModelSelect,
@@ -935,8 +597,8 @@ const filters = ref({
},
booksOrNot: {
id: 'booksOrNot',
- label: 'Book exclude (any)',
- hint: 'Exclude recipes with any of the given books',
+ label: `${t('Books')} ${'exclude'} (${t('any')})`,
+ hint: t('searchFilterObjectsOrNotHelp', {type: t('Books')}),
enabled: false,
default: [],
is: ModelSelect,
@@ -948,8 +610,8 @@ const filters = ref({
},
booksAndNot: {
id: 'booksAndNot',
- label: 'Book exclude (all)',
- hint: 'Exclude recipes with all of the given books',
+ label: `${t('Books')} ${'exclude'} (${t('all')})`,
+ hint: t('searchFilterObjectsAndNotHelp', {type: t('Books')}),
enabled: false,
default: [],
is: ModelSelect,
@@ -961,8 +623,8 @@ const filters = ref({
},
createdby: {
id: 'createdby',
- label: 'Created By',
- hint: 'Recipes created by the selected user',
+ label: t('CreatedBy'),
+ hint: t('searchFilterCreatedByHelp'),
enabled: false,
default: undefined,
is: ModelSelect,
@@ -974,8 +636,8 @@ const filters = ref({
},
units: {
id: 'units',
- label: 'Unit (any)',
- hint: 'Recipes that contain any of the given units',
+ label: `${t('Units')} (${t('any')})`,
+ hint: t('searchFilterObjectsHelp', {type: t('Units')}),
enabled: false,
default: [],
is: ModelSelect,
@@ -987,8 +649,8 @@ const filters = ref({
},
internal: {
id: 'internal',
- label: 'Hide External',
- hint: 'Hide external recipes',
+ label: t('Hide_External'),
+ hint: t('searchFilterHideExternalHelp'),
enabled: false,
default: "false",
is: VSelect,
@@ -997,8 +659,8 @@ const filters = ref({
},
random: {
id: 'random',
- label: 'Random Order',
- hint: 'Show recipes in random order',
+ label: t('RandomOrder'),
+ hint: t('searchFilterRandomHelp'),
enabled: false,
default: "false",
is: VSelect,
@@ -1007,8 +669,8 @@ const filters = ref({
},
rating: {
id: 'rating',
- label: 'Rating (exact)',
- hint: 'Recipes with the exact rating',
+ label: `${t('Rating')} (${t('exact')})`,
+ hint: '',
enabled: false,
default: undefined,
is: RatingField,
@@ -1016,8 +678,8 @@ const filters = ref({
},
ratingGte: {
id: 'ratingGte',
- label: 'Rating (>=)',
- hint: 'Recipes with the given or a greater rating',
+ label: `${t('Rating')} (>=)`,
+ hint: '',
enabled: false,
default: undefined,
is: RatingField,
@@ -1025,17 +687,26 @@ const filters = ref({
},
ratingLte: {
id: 'ratingLte',
- label: 'Rating (<=)',
- hint: 'Recipes with the given or a smaller rating',
+ label: `${t('Rating')} (<=)`,
+ hint: '',
enabled: false,
default: undefined,
is: RatingField,
modelValue: useRouteQuery('ratingLte', undefined, {transform: Number}),
},
+ timescooked: {
+ id: 'timescooked',
+ label: `${t('times_cooked')} (${t('exact')})`,
+ hint: 'Recipes that were cooked at least X times',
+ enabled: false,
+ default: undefined,
+ is: VNumberInput,
+ modelValue: useRouteQuery('timescookedGte', undefined, {transform: Number}),
+ },
timescookedGte: {
id: 'timescookedGte',
- label: 'Times Cooked (>=)',
- hint: 'Recipes that were cooked at least X times',
+ label: `${t('times_cooked')} (>=)`,
+ hint: '',
enabled: false,
default: undefined,
is: VNumberInput,
@@ -1043,8 +714,8 @@ const filters = ref({
},
timescookedLte: {
id: 'timescookedLte',
- label: 'Times Cooked (<=)',
- hint: 'Recipes that were cooked at most X times',
+ label: `${t('times_cooked')} (<=)`,
+ hint: '',
enabled: false,
default: undefined,
is: VNumberInput,
@@ -1052,19 +723,18 @@ const filters = ref({
},
makenow: {
id: 'makenow',
- label: 'Foods on Hand',
- hint: 'Only recipes were all foods (or its substitutes) are marked as on hand',
+ label: t('OnHand'),
+ hint: t('searchFilterOnHandHelp'),
enabled: false,
default: "false",
is: VSelect,
items: [{value: "true", title: 'Yes'}, {value: "false", title: 'No'}],
modelValue: useRouteQuery('makenow', "false"),
},
-
cookedonGte: {
id: 'cookedonGte',
- label: 'Cooked after',
- hint: 'Only recipes that were cooked on or after the given date.',
+ label: `${t('Cooked')} ${t('after')}`,
+ hint: '',
enabled: false,
default: null,
is: VDateInput,
@@ -1072,8 +742,8 @@ const filters = ref({
},
cookedonLte: {
id: 'cookedonLte',
- label: 'Cooked before',
- hint: 'Only recipes that were cooked on or before the given date.',
+ label: `${t('Cooked')} ${t('before')}`,
+ hint: '',
enabled: false,
default: null,
is: VDateInput,
@@ -1081,8 +751,8 @@ const filters = ref({
},
viewedonGte: {
id: 'viewedonGte',
- label: 'Viewed after',
- hint: 'Only recipes that were viewed on or after the given date.',
+ label: `${t('Viewed')} ${t('after')}`,
+ hint: '',
enabled: false,
default: null,
is: VDateInput,
@@ -1090,18 +760,17 @@ const filters = ref({
},
viewedonLte: {
id: 'viewedonLte',
- label: 'Viewed before',
- hint: 'Only recipes that were viewed on or before the given date.',
+ label: `${t('Viewed')} ${t('before')}`,
+ hint: '',
enabled: false,
default: null,
is: VDateInput,
modelValue: useRouteQuery('viewedonLte', null, {transform: routeQueryDateTransformer}),
},
-
createdon: {
id: 'createdon',
- label: 'Created on',
- hint: 'Only recipes that were created on the given date.',
+ label: `${t('Created')} ${t('on')}`,
+ hint: '',
enabled: false,
default: null,
is: VDateInput,
@@ -1109,8 +778,8 @@ const filters = ref({
},
createdonGte: {
id: 'createdonGte',
- label: 'Created on/after',
- hint: 'Only recipes that were created on or after the given date.',
+ label: `${t('Created')} ${t('on')}/${t('after')}`,
+ hint: '',
enabled: false,
default: null,
is: VDateInput,
@@ -1118,8 +787,8 @@ const filters = ref({
},
createdonLte: {
id: 'createdonLte',
- label: 'Created on/before',
- hint: 'Only recipes that were created on or before the given date.',
+ label: `${t('Created')} ${t('on')}/${t('before')}`,
+ hint: '',
enabled: false,
default: null,
is: VDateInput,
@@ -1127,8 +796,8 @@ const filters = ref({
},
updatedon: {
id: 'updatedon',
- label: 'Updated on',
- hint: 'Only recipes that were updated on the given date.',
+ label: `${t('Updated')} ${t('on')}`,
+ hint: '',
enabled: false,
default: null,
is: VDateInput,
@@ -1136,8 +805,8 @@ const filters = ref({
},
updatedonGte: {
id: 'updatedonGte',
- label: 'Updated on/after',
- hint: 'Only recipes that were updated on or after the given date.',
+ label: `${t('Updated')} ${t('on')}/${t('after')}`,
+ hint: '',
enabled: false,
default: null,
is: VDateInput,
@@ -1145,8 +814,8 @@ const filters = ref({
},
updatedonLte: {
id: 'updatedonLte',
- label: 'Updated on/before',
- hint: 'Only recipes that were updated on or before the given date.',
+ label: `${t('Updated')} ${t('on')}/${t('before')}`,
+ hint: '',
enabled: false,
default: null,
is: VDateInput,