diff --git a/.env.template b/.env.template index ecc639192..290782081 100644 --- a/.env.template +++ b/.env.template @@ -13,6 +13,7 @@ TIMEZONE=Europe/Berlin # add only a database password if you want to run with the default postgres, otherwise change settings accordingly DB_ENGINE=django.db.backends.postgresql +# DB_OPTIONS= {} # e.g. {"sslmode":"require"} to enable ssl POSTGRES_HOST=db_recipes POSTGRES_PORT=5432 POSTGRES_USER=djangouser diff --git a/.github/ISSUE_TEMPLATE/url_import.md b/.github/ISSUE_TEMPLATE/url_import.md new file mode 100644 index 000000000..c99115a13 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/url_import.md @@ -0,0 +1,22 @@ +--- +name: Website Import +about: Anything related to website imports +title: '' +labels: enhancement, url_import +assignees: '' + +--- + +### Version +Please provide your current version (can be found on the system page since v0.8.4) +Version: + +### Information +Exact URL you are trying to import from: + +When did the issue happen: When pressing the search button with the url / when importing after the page has loaded + +Response/Message shown +``` +Message +``` diff --git a/cookbook/integration/chowdown.py b/cookbook/integration/chowdown.py index ecd2c45e1..f7a21b5b5 100644 --- a/cookbook/integration/chowdown.py +++ b/cookbook/integration/chowdown.py @@ -12,7 +12,7 @@ class Chowdown(Integration): def import_file_name_filter(self, zip_info_object): print("testing", zip_info_object.filename) - return re.match(r'^_recipes/([A-Za-z\d\s-])+.md$', zip_info_object.filename) + return re.match(r'^(_)*recipes/([A-Za-z\d\s-])+.md$', zip_info_object.filename) def get_recipe_from_file(self, file): ingredient_mode = False diff --git a/cookbook/locale/de/LC_MESSAGES/django.mo b/cookbook/locale/de/LC_MESSAGES/django.mo index e81bb3b7c..116dec9ae 100644 Binary files a/cookbook/locale/de/LC_MESSAGES/django.mo and b/cookbook/locale/de/LC_MESSAGES/django.mo differ diff --git a/cookbook/locale/de/LC_MESSAGES/django.po b/cookbook/locale/de/LC_MESSAGES/django.po index 9d8e58842..bdb830d59 100644 --- a/cookbook/locale/de/LC_MESSAGES/django.po +++ b/cookbook/locale/de/LC_MESSAGES/django.po @@ -2,11 +2,14 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# # Translators: # Benjamin Danowski , 2020 # vabene1111 , 2020 -# +# Aaron Dötsch, 2020 +# Tobias Lindenberg , 2021 +# Maximilian J, 2021 +# #, fuzzy msgid "" msgstr "" @@ -14,13 +17,12 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-02-09 18:01+0100\n" "PO-Revision-Date: 2020-06-02 19:28+0000\n" -"Last-Translator: vabene1111 , 2020\n" -"Language-Team: German (https://www.transifex.com/django-recipes/teams/110507/" -"de/)\n" -"Language: de\n" +"Last-Translator: Maximilian J, 2021\n" +"Language-Team: German (https://www.transifex.com/django-recipes/teams/110507/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: .\cookbook\filters.py:22 .\cookbook\templates\base.html:87 @@ -46,21 +48,25 @@ msgstr "Standardeinheit für neue Zutaten." msgid "" "Enables support for fractions in ingredient amounts (e.g. convert decimals " "to fractions automatically)" -msgstr "Unterstützung für Brüche aktivieren in Zutaten aktivieren." +msgstr "" +"Unterstützung für Brüche in Zutaten aktivieren. Dadurch werden Dezimalzahlen" +" mit Brüchen ersetzt, z.B. 0.5 mit ½." #: .\cookbook\forms.py:47 msgid "" "Users with whom newly created meal plan/shopping list entries should be " "shared by default." msgstr "" +"Nutzer, mit denen neue Pläne und Einkaufslisten standardmäßig geteilt werden" +" sollen." #: .\cookbook\forms.py:48 msgid "Show recently viewed recipes on search page." -msgstr "Zeige zuletzt angeschaute Rezepte über den Suchergebnissen." +msgstr "Zuletzt angeschaute Rezepte bei der Suche anzeigen." #: .\cookbook\forms.py:49 msgid "Number of decimals to round ingredients." -msgstr "Anzahl Dezimalstellen, auf die gerundet werden soll." +msgstr "Anzahl an Dezimalstellen, auf die gerundet werden soll." #: .\cookbook\forms.py:50 msgid "If you want to be able to create and see comments underneath recipes." @@ -74,13 +80,13 @@ msgid "" "mobile data. If lower than instance limit it is reset when saving." msgstr "" "0 deaktiviert automatische Synchronisation. Wird eine Einkaufsliste " -"betrachtet, wird wird sie gemäß der Einstellung alle paar Sekunden " +"betrachtet, dann wird wird sie gemäß der Einstellung alle paar Sekunden " "aktualisiert. Dies ist nützlich, wenn mehrere Personen eine Liste beim " "Einkaufen verwenden, benötigt jedoch etwas Datenvolumen." #: .\cookbook\forms.py:55 msgid "Makes the navbar stick to the top of the page." -msgstr "" +msgstr "Navigationsleiste wird oben angeheftet." #: .\cookbook\forms.py:71 msgid "" @@ -116,25 +122,23 @@ msgstr "Pfad" #: .\cookbook\forms.py:97 msgid "Storage UID" -msgstr "Speicher ID" +msgstr "Speicher-ID" #: .\cookbook\forms.py:117 -#, fuzzy -#| msgid "Number of Days" msgid "Number of servings" -msgstr "Anzahl Tage" +msgstr "Anzahl der Portionen" #: .\cookbook\forms.py:128 msgid "" "Include - [ ] in list for easier usage in markdown based " "documents." msgstr "" -"Füge - [ ] vor den Zutaten ein, um sie besser in einem Markdown-" -"Dokument zu verwenden." +"Füge - [ ] vor den Zutaten ein, um sie besser in einem " +"Markdown-Dokument zu verwenden." #: .\cookbook\forms.py:143 msgid "Default" -msgstr "" +msgstr "Standard" #: .\cookbook\forms.py:162 msgid "New Unit" @@ -162,7 +166,7 @@ msgstr "Neue Zutat, die die alte ersetzt." #: .\cookbook\forms.py:185 msgid "Old Food" -msgstr "Alte Zutat." +msgstr "Alte Zutat" #: .\cookbook\forms.py:186 msgid "Food that should be replaced." @@ -182,11 +186,11 @@ msgstr "Für Nextcloud leer lassen, für Dropbox API-Token eingeben." #: .\cookbook\forms.py:244 msgid "" -"Leave empty for dropbox and enter only base url for nextcloud (/remote." -"php/webdav/ is added automatically)" +"Leave empty for dropbox and enter only base url for nextcloud " +"(/remote.php/webdav/ is added automatically)" msgstr "" -"Für Dropbox leer lassen. Für Nextcloud Server-URL angeben, (/remote." -"php/webdav/ wird automatisch hinzugefügt)" +"Für Dropbox leer lassen, für Nextcloud Server-URL angeben " +"(/remote.php/webdav/ wird automatisch hinzugefügt)" #: .\cookbook\forms.py:263 msgid "Search String" @@ -194,7 +198,7 @@ msgstr "Suchwort" #: .\cookbook\forms.py:280 msgid "File ID" -msgstr "Datei ID" +msgstr "Datei-ID" #: .\cookbook\forms.py:299 msgid "You must provide at least a recipe or a title." @@ -203,23 +207,23 @@ msgstr "Mindestens ein Rezept oder ein Titel müssen angegeben werden." #: .\cookbook\forms.py:312 msgid "You can list default users to share recipes with in the settings." msgstr "" -"Benutzer, mit denen neue Rezepte standardmäßig geteilt werden sollen, können " -"in den Einstellungen angegeben werden." +"Benutzer, mit denen neue Rezepte standardmäßig geteilt werden sollen, können" +" in den Einstellungen angegeben werden." #: .\cookbook\forms.py:313 #: .\cookbook\templates\forms\edit_internal_recipe.html:377 msgid "" -"You can use markdown to format this field. See the docs here" +"You can use markdown to format this field. See the docs here" msgstr "" -"Markdown kann genutzt werden, um dieses Feld zu formatieren. Siehe hier für weitere Information." +"Markdown kann genutzt werden, um dieses Feld zu formatieren. Siehe hier für weitere Information." #: .\cookbook\forms.py:328 msgid "A username is not required, if left blank the new user can choose one." msgstr "" -"Kein Benutzername benötigt. Wenn leer gelassen, kann der neue Benutzer einen " -"wählen." +"Kein Benutzername benötigt. Wenn leer gelassen, kann der neue Benutzer einen" +" wählen." #: .\cookbook\helper\permission_helper.py:137 #: .\cookbook\helper\permission_helper.py:206 @@ -228,7 +232,7 @@ msgstr "" #: .\cookbook\helper\permission_helper.py:242 .\cookbook\views\data.py:32 #: .\cookbook\views\views.py:106 .\cookbook\views\views.py:218 msgid "You do not have the required permissions to view this page!" -msgstr "Du hast nicht die notwendigen Rechte, um diese Seite zu anzuzeigen!" +msgstr "Du hast nicht die notwendigen Rechte um diese Seite zu sehen!" #: .\cookbook\helper\permission_helper.py:151 msgid "You are not logged in and therefore cannot view this page!" @@ -249,8 +253,8 @@ msgstr "" #: .\cookbook\helper\recipe_url_import.py:53 msgid "" -"The requested site does not provide any recognized data format to import the " -"recipe from." +"The requested site does not provide any recognized data format to import the" +" recipe from." msgstr "" "Die angefragte Seite stellt keine bekannten Datenformate zur Verfügung." @@ -263,24 +267,24 @@ msgid "" "Importer expected a .zip file. Did you choose the correct importer type for " "your data ?" msgstr "" +"Importer erwartet eine .zip Datei. Hast du den richtigen Importer-Typ für " +"deine Daten ausgewählt?" #: .\cookbook\integration\safron.py:23 #: .\cookbook\templates\forms\edit_internal_recipe.html:65 #: .\cookbook\templates\include\log_cooking.html:16 #: .\cookbook\templates\url_import.html:65 msgid "Servings" -msgstr "Portionen" +msgstr "Portion(en)" #: .\cookbook\integration\safron.py:25 -#, fuzzy -#| msgid "Waiting time ~" msgid "Waiting time" -msgstr "Wartezeit ~" +msgstr "Wartezeit" #: .\cookbook\integration\safron.py:27 #: .\cookbook\templates\forms\edit_internal_recipe.html:59 msgid "Preparation Time" -msgstr "Vorbereitungs Zeit" +msgstr "Vorbereitungszeit" #: .\cookbook\integration\safron.py:29 .\cookbook\templates\base.html:67 #: .\cookbook\templates\forms\ingredients.html:7 @@ -289,10 +293,8 @@ msgid "Cookbook" msgstr "Kochbuch" #: .\cookbook\integration\safron.py:31 -#, fuzzy -#| msgid "Nutrition" msgid "Section" -msgstr "Nährwert" +msgstr "Sektion" #: .\cookbook\migrations\0047_auto_20200602_1133.py:12 msgid "Breakfast" @@ -318,7 +320,7 @@ msgstr "Suche" #: .\cookbook\templates\meal_plan.html:5 .\cookbook\views\delete.py:165 #: .\cookbook\views\edit.py:216 .\cookbook\views\new.py:189 msgid "Meal-Plan" -msgstr "Plan" +msgstr "Essensplan" #: .\cookbook\models.py:79 .\cookbook\templates\base.html:78 msgid "Books" @@ -378,47 +380,45 @@ msgstr "Zur Hauptseite" #: .\cookbook\templates\404.html:35 msgid "Report a Bug" -msgstr "Einen Bug melden" +msgstr "Fehler melden" #: .\cookbook\templates\account\login.html:7 #: .\cookbook\templates\base.html:166 msgid "Login" -msgstr "Einloggen" +msgstr "Anmelden" #: .\cookbook\templates\account\login.html:13 #: .\cookbook\templates\account\login.html:28 msgid "Sign In" -msgstr "" +msgstr "Einloggen" #: .\cookbook\templates\account\login.html:38 msgid "Social Login" -msgstr "" +msgstr "Social Login" #: .\cookbook\templates\account\login.html:39 msgid "You can use any of the following providers to sign in." -msgstr "" +msgstr "Du kannst jeden der folgenden Anbieter zum Einloggen verwenden." #: .\cookbook\templates\account\logout.html:5 #: .\cookbook\templates\account\logout.html:9 #: .\cookbook\templates\account\logout.html:18 msgid "Sign Out" -msgstr "" +msgstr "Ausloggen" #: .\cookbook\templates\account\logout.html:11 -#, fuzzy -#| msgid "Are you sure that you want to merge these two units?" msgid "Are you sure you want to sign out?" -msgstr "Bist du sicher diese beiden Einheiten zusammengeführt werden sollen ?" +msgstr "Willst du dich wirklich ausloggen?" #: .\cookbook\templates\account\password_reset.html:5 #: .\cookbook\templates\account\password_reset_done.html:5 msgid "Password Reset" -msgstr "" +msgstr "Passwort Reset" #: .\cookbook\templates\account\password_reset.html:9 #: .\cookbook\templates\account\password_reset_done.html:9 msgid "Password reset is not implemented for the time being!" -msgstr "" +msgstr "Passwort-Rücksetzung ist derzeit noch nicht implementiert!" #: .\cookbook\templates\account\signup.html:5 msgid "Register" @@ -465,7 +465,7 @@ msgstr "Speicherquellen" #: .\cookbook\templates\base.html:111 msgid "Configure Sync" -msgstr "Sync einstellen" +msgstr "Synchronisation einstellen" #: .\cookbook\templates\base.html:113 msgid "Discovered Recipes" @@ -473,7 +473,7 @@ msgstr "Entdeckte Rezepte" #: .\cookbook\templates\base.html:115 msgid "Discovery Log" -msgstr "Entdeckungs-Log" +msgstr "Entdeckungsverlauf" #: .\cookbook\templates\base.html:117 .\cookbook\templates\stats.html:10 msgid "Statistics" @@ -485,7 +485,7 @@ msgstr "Einheiten & Zutaten" #: .\cookbook\templates\base.html:121 msgid "Import Recipe" -msgstr "Importiere Rezept" +msgstr "Rezept importieren" #: .\cookbook\templates\base.html:140 .\cookbook\templates\settings.html:6 #: .\cookbook\templates\settings.html:16 @@ -495,7 +495,7 @@ msgstr "Einstellungen" #: .\cookbook\templates\base.html:142 .\cookbook\templates\history.html:6 #: .\cookbook\templates\history.html:14 msgid "History" -msgstr "Geschichte" +msgstr "Verlauf" #: .\cookbook\templates\base.html:146 .\cookbook\templates\system.html:13 msgid "System" @@ -507,7 +507,7 @@ msgstr "Admin" #: .\cookbook\templates\base.html:152 msgid "Markdown Guide" -msgstr "Markdown-Hilfe" +msgstr "Markdown-Anleitung" #: .\cookbook\templates\base.html:154 msgid "GitHub" @@ -519,7 +519,7 @@ msgstr "API Browser" #: .\cookbook\templates\base.html:161 msgid "Logout" -msgstr "Ausloggen" +msgstr "Abmelden" #: .\cookbook\templates\batch\edit.html:6 msgid "Batch edit Category" @@ -544,10 +544,6 @@ msgid "Manage watched Folders" msgstr "Überwachte Ordner verwalten" #: .\cookbook\templates\batch\monitor.html:14 -#, fuzzy -#| msgid "" -#| "On this Page you can manage all storage folder locations that should be " -#| "monitored and synced" msgid "" "On this Page you can manage all storage folder locations that should be " "monitored and synced." @@ -574,7 +570,7 @@ msgid "" "please wait." msgstr "" "Abhängig von der Anzahl der Rezepte kann dieser Vorgang einige Minuten " -"dauern, bitte warten." +"dauern, bitte gedulde dich ein wenig." #: .\cookbook\templates\books.html:5 .\cookbook\templates\books.html:11 msgid "Recipe Books" @@ -600,17 +596,17 @@ msgstr "Zuletzt gekocht" #: .\cookbook\templates\books.html:71 msgid "There are no recipes in this book yet." -msgstr "In diesem Buch sind bisher keine Rezepte." +msgstr "In diesem Buch sind bisher noch keine Rezepte." #: .\cookbook\templates\export.html:6 .\cookbook\templates\test2.html:6 msgid "Export Recipes" -msgstr "Exportiere Rezepte" +msgstr "Rezepte exportieren" #: .\cookbook\templates\export.html:14 .\cookbook\templates\export.html:20 #: .\cookbook\templates\shopping_list.html:345 #: .\cookbook\templates\test2.html:14 .\cookbook\templates\test2.html:20 msgid "Export" -msgstr "Export" +msgstr "Exportieren" #: .\cookbook\templates\forms\edit_import_recipe.html:5 #: .\cookbook\templates\forms\edit_import_recipe.html:9 @@ -640,24 +636,20 @@ msgid "Waiting Time" msgstr "Wartezeit" #: .\cookbook\templates\forms\edit_internal_recipe.html:68 -#, fuzzy -#| msgid "Servings" msgid "Servings Text" -msgstr "Portionen" +msgstr "Portionen-Text" #: .\cookbook\templates\forms\edit_internal_recipe.html:79 msgid "Select Keywords" -msgstr "Schlagwort wählen" +msgstr "Schlagwörter wählen" #: .\cookbook\templates\forms\edit_internal_recipe.html:93 -#, fuzzy -#| msgid "Nutrition" msgid "Description" -msgstr "Nährwert" +msgstr "Beschreibung" #: .\cookbook\templates\forms\edit_internal_recipe.html:108 msgid "Nutrition" -msgstr "Nährwert" +msgstr "Nährwerte" #: .\cookbook\templates\forms\edit_internal_recipe.html:112 #: .\cookbook\templates\forms\edit_internal_recipe.html:162 @@ -674,7 +666,7 @@ msgstr "Kohlenhydrate" #: .\cookbook\templates\forms\edit_internal_recipe.html:122 msgid "Fats" -msgstr "Fett" +msgstr "Fette" #: .\cookbook\templates\forms\edit_internal_recipe.html:124 msgid "Proteins" @@ -691,7 +683,7 @@ msgstr "Als Überschrift anzeigen" #: .\cookbook\templates\forms\edit_internal_recipe.html:173 msgid "Hide as header" -msgstr "nicht als Überschrift anzeigen" +msgstr "Nicht als Überschrift anzeigen" #: .\cookbook\templates\forms\edit_internal_recipe.html:178 msgid "Move Up" @@ -716,7 +708,7 @@ msgstr "Zeit in Minuten" #: .\cookbook\templates\forms\edit_internal_recipe.html:261 #: .\cookbook\templates\shopping_list.html:181 msgid "Select Unit" -msgstr "Einheit auswählen" +msgstr "Einheit wählen" #: .\cookbook\templates\forms\edit_internal_recipe.html:262 #: .\cookbook\templates\forms\edit_internal_recipe.html:286 @@ -734,12 +726,12 @@ msgstr "Erstellen" #: .\cookbook\templates\url_import.html:105 #: .\cookbook\templates\url_import.html:137 msgid "Select" -msgstr "Wählen" +msgstr "Auswählen" #: .\cookbook\templates\forms\edit_internal_recipe.html:285 #: .\cookbook\templates\shopping_list.html:203 msgid "Select Food" -msgstr "Zutat wählen" +msgstr "Zutat auswählen" #: .\cookbook\templates\forms\edit_internal_recipe.html:302 #: .\cookbook\templates\meal_plan.html:256 @@ -753,11 +745,11 @@ msgstr "Zutat löschen" #: .\cookbook\templates\forms\edit_internal_recipe.html:325 msgid "Make Header" -msgstr "Überschrift machen" +msgstr "Überschrift erstellen" #: .\cookbook\templates\forms\edit_internal_recipe.html:331 msgid "Make Ingredient" -msgstr "Zutat machen" +msgstr "Zutat erstellen" #: .\cookbook\templates\forms\edit_internal_recipe.html:337 msgid "Disable Amount" @@ -769,7 +761,7 @@ msgstr "Menge aktivieren" #: .\cookbook\templates\forms\edit_internal_recipe.html:348 msgid "Copy Template Reference" -msgstr "" +msgstr "Kopiere Vorlagen-Referenz" #: .\cookbook\templates\forms\edit_internal_recipe.html:374 #: .\cookbook\templates\url_import.html:177 @@ -812,24 +804,20 @@ msgstr "Schritte" #: .\cookbook\templates\forms\ingredients.html:15 msgid "Edit Ingredients" -msgstr "Zutaten Bearbeiten" +msgstr "Zutaten bearbeiten" #: .\cookbook\templates\forms\ingredients.html:16 msgid "" "\n" -" The following form can be used if, accidentally, two (or more) units " -"or ingredients where created that should be\n" +" The following form can be used if, accidentally, two (or more) units or ingredients where created that should be\n" " the same.\n" -" It merges two units or ingredients and updates all recipes using " -"them.\n" +" It merges two units or ingredients and updates all recipes using them.\n" " " msgstr "" "\n" -" Dieses Formular kann genutzt werden wenn versehentlich zwei (oder " -"mehr) Einheitenoder Zutaten erstellt wurden die eigentlich identisch\n" +" Dieses Formular kann genutzt werden, wenn versehentlich zwei (oder mehr) Einheiten oder Zutaten erstellt wurden, die eigentlich identisch\n" " sein sollen.\n" -" Es vereint zwei Zutaten oder Einheiten und aktualisiert alle " -"entsprechenden Rezepte.\n" +" Es vereint zwei Zutaten oder Einheiten und aktualisiert alle entsprechenden Rezepte.\n" " " #: .\cookbook\templates\forms\ingredients.html:24 @@ -839,7 +827,8 @@ msgstr "Einheiten" #: .\cookbook\templates\forms\ingredients.html:26 msgid "Are you sure that you want to merge these two units?" -msgstr "Bist du sicher diese beiden Einheiten zusammengeführt werden sollen ?" +msgstr "" +"Bist du dir sicher, dass du diese beiden Einheiten zusammenführen möchtest?" #: .\cookbook\templates\forms\ingredients.html:31 #: .\cookbook\templates\forms\ingredients.html:40 @@ -848,13 +837,14 @@ msgstr "Zusammenführen" #: .\cookbook\templates\forms\ingredients.html:36 msgid "Are you sure that you want to merge these two ingredients?" -msgstr "Bist du sicher diese beiden Zutaten zusammengeführt werden sollen ?" +msgstr "" +"Bist du dir sicher, dass du diese beiden Zutaten zusammenführen möchtest?" #: .\cookbook\templates\generic\delete_template.html:18 -#, fuzzy, python-format -#| msgid "Are you sure you want to delete the %(title)s: %(object)s?" +#, python-format msgid "Are you sure you want to delete the %(title)s: %(object)s " -msgstr "Bist du sicher das %(title)s: %(object)s gelöscht werden soll " +msgstr "" +"Bist du sicher, dass %(title)s: %(object)s gelöscht werden soll?" #: .\cookbook\templates\generic\delete_template.html:21 msgid "Confirm" @@ -862,7 +852,7 @@ msgstr "Bestätigen" #: .\cookbook\templates\generic\edit_template.html:30 msgid "View" -msgstr "Angucken" +msgstr "Anschauen" #: .\cookbook\templates\generic\edit_template.html:34 msgid "Delete original file" @@ -899,26 +889,26 @@ msgstr "nächste" #: .\cookbook\templates\history.html:20 msgid "View Log" -msgstr "Aufruf Log" +msgstr "Anschau-Verlauf" #: .\cookbook\templates\history.html:24 msgid "Cook Log" -msgstr "Koch Log" +msgstr "Kochverlauf" #: .\cookbook\templates\import.html:6 .\cookbook\templates\test.html:6 msgid "Import Recipes" -msgstr "Importierte Rezepte" +msgstr "Rezepte importieren" #: .\cookbook\templates\import.html:14 .\cookbook\templates\import.html:20 #: .\cookbook\templates\test.html:14 .\cookbook\templates\test.html:20 #: .\cookbook\templates\url_import.html:211 .\cookbook\views\delete.py:60 #: .\cookbook\views\edit.py:182 msgid "Import" -msgstr "Rezept Importieren" +msgstr "Importieren" #: .\cookbook\templates\include\log_cooking.html:7 msgid "Log Recipe Cooking" -msgstr "Kochen Protokollieren" +msgstr "Kochen protokollieren" #: .\cookbook\templates\include\log_cooking.html:13 msgid "All fields are optional and can be left empty." @@ -953,28 +943,21 @@ msgstr "Sicherheitswarnung" #: .\cookbook\templates\include\storage_backend_warning.html:5 msgid "" "\n" -" The Password and Token field are stored as plain text " -"inside the database.\n" -" This is necessary because they are needed to make API requests, but " -"it also increases the risk of\n" +" The Password and Token field are stored as plain text inside the database.\n" +" This is necessary because they are needed to make API requests, but it also increases the risk of\n" " someone stealing it.
\n" -" To limit the possible damage tokens or accounts with limited access " -"can be used.\n" +" To limit the possible damage tokens or accounts with limited access can be used.\n" " " msgstr "" "\n" -" Das Password und Token werden im Klartext in der " -"Datenbank gespeichert.\n" -" Dies ist notwendig da Passwort oder Token benötigt werden um API " -"anfragen zu machen, bringt jedoch auch ein Sicherheitsrisiko mit sich.
\n" -" Um das Risiko zu minimieren sollten, wenn möglich, Tokens benutzt " -"oder Accounts mit limitiertem Zugriff verwendet werden.\n" +" Password und Token werden im Klartext in der Datenbank gespeichert.\n" +" Dies ist notwendig da Passwort oder Token benötigt werden, um API-Anfragen zu stellen, bringt jedoch auch ein Sicherheitsrisiko mit sich.
\n" +" Um das Risiko zu minimieren sollten, wenn möglich, Tokens oder Accounts mit limitiertem Zugriff verwendet werden.\n" " " #: .\cookbook\templates\index.html:29 msgid "Search recipe ..." -msgstr "Suche Rezept ..." +msgstr "Rezept suchen..." #: .\cookbook\templates\index.html:44 msgid "New Recipe" @@ -982,7 +965,7 @@ msgstr "Neues Rezept" #: .\cookbook\templates\index.html:47 msgid "Website Import" -msgstr "Webseiten Import" +msgstr "Webseiten-Import" #: .\cookbook\templates\index.html:53 msgid "Advanced Search" @@ -1003,36 +986,25 @@ msgstr "Rezepte" #: .\cookbook\templates\index.html:94 msgid "Log in to view recipes" -msgstr "Einloggen um Rezepte anzusehen" +msgstr "Einloggen, um Rezepte anzusehen" #: .\cookbook\templates\markdown_info.html:5 #: .\cookbook\templates\markdown_info.html:13 msgid "Markdown Info" -msgstr "Markdown Info" +msgstr "Markdown-Übersicht" #: .\cookbook\templates\markdown_info.html:14 msgid "" "\n" -" Markdown is lightweight markup language that can be used to format " -"plain text easily.\n" -" This site uses the Python Markdown library to\n" -" convert your text into nice looking HTML. Its full markdown " -"documentation can be found\n" -" here.\n" -" An incomplete but most likely sufficient documentation can be found " -"below.\n" +" Markdown is lightweight markup language that can be used to format plain text easily.\n" +" This site uses the Python Markdown library to\n" +" convert your text into nice looking HTML. Its full markdown documentation can be found\n" +" here.\n" +" An incomplete but most likely sufficient documentation can be found below.\n" " " msgstr "" "\n" -"Markdown ist eine Schreibweise mit derer einfacher Text formatiert werden " -"kann. Diese Seite benutzt Python Markdown, eine Bibliothek die reinen Text in " -"schönes HTML umwandelt. Die komplette Dokumentation befindet sich hier. Die wichtigsten Formatierungszeichen befinden sich auch hier " -"auf dieser Seite." +"Markdown ist eine Schreibweise mit der Text einfach formatiert werden kann. Diese Seite benutzt Python Markdown, eine Bibliothek, die reinen Text in schönes HTML umwandelt. Die komplette Dokumentation befindet sich hier. Die wichtigsten Formatierungszeichen befinden sich hier auf dieser Seite." #: .\cookbook\templates\markdown_info.html:25 msgid "Headers" @@ -1045,7 +1017,7 @@ msgstr "Formatierung" #: .\cookbook\templates\markdown_info.html:56 #: .\cookbook\templates\markdown_info.html:72 msgid "Line breaks are inserted by adding two spaces after the end of a line" -msgstr "Zeilenumbrüchen entstehen durch zwei Leerzeichen am ende einer Zeile" +msgstr "Zeilenumbrüche entstehen durch zwei Leerzeichen am ende einer Zeile" #: .\cookbook\templates\markdown_info.html:57 #: .\cookbook\templates\markdown_info.html:73 @@ -1055,12 +1027,12 @@ msgstr "oder durch eine leere Zeile dazwischen." #: .\cookbook\templates\markdown_info.html:59 #: .\cookbook\templates\markdown_info.html:74 msgid "This text is bold" -msgstr "Dieser Text ist dick dargestellt" +msgstr "Dieser Text ist fett" #: .\cookbook\templates\markdown_info.html:60 #: .\cookbook\templates\markdown_info.html:75 msgid "This text is italic" -msgstr "Dieser Text ist kursiv dargestellt" +msgstr "Dieser Text ist kursiv" #: .\cookbook\templates\markdown_info.html:61 #: .\cookbook\templates\markdown_info.html:77 @@ -1076,8 +1048,8 @@ msgid "" "Lists can ordered or unorderd. It is important to leave a blank line " "before the list!" msgstr "" -"Liste können sortiert oder unsortiert sein. Es ist wichtig das eine leere " -"Zeile vor der Liste frei gelassen wird!" +"Liste können sortiert oder unsortiert sein. Es ist wichtig das eine leere" +" Zeile vor der Liste frei gelassen wird!" #: .\cookbook\templates\markdown_info.html:87 #: .\cookbook\templates\markdown_info.html:108 @@ -1105,7 +1077,7 @@ msgstr "Ungeordnete Liste" #: .\cookbook\templates\markdown_info.html:117 #: .\cookbook\templates\markdown_info.html:118 msgid "ordered list item" -msgstr "Geordneter Listen Eintrag" +msgstr "Geordneter Listeneintrag" #: .\cookbook\templates\markdown_info.html:125 msgid "Images & Links" @@ -1116,32 +1088,28 @@ msgid "" "Links can be formatted with Markdown. This application also allows to paste " "links directly into markdown fields without any formatting." msgstr "" -"Links können mit Markdown formatiert werden aber es ist auch möglich Links " -"vollständig ohne Formatierung einzufügen." +"Links können mit Markdown formatiert werden, aber es ist auch möglich, Links" +" vollständig ohne Formatierung einzufügen." #: .\cookbook\templates\markdown_info.html:132 #: .\cookbook\templates\markdown_info.html:145 msgid "This will become an image" -msgstr "Dieser Text hier wird ein Bild werden" +msgstr "Dies wird ein Bild werden" #: .\cookbook\templates\markdown_info.html:152 msgid "Tables" msgstr "Tabellen" #: .\cookbook\templates\markdown_info.html:153 -#, fuzzy -#| msgid "" -#| "Markdown tables are hard to create by hand. It is recommended to use a " -#| "table editor like this one." msgid "" -"Markdown tables are hard to create by hand. It is recommended to use a table " -"editor like this one." +"Markdown tables are hard to create by hand. It is recommended to use a table" +" editor like this one." msgstr "" -"Es ist schwierig Markdown Tabellen von Hand zu erstellen, daher bietet es " -"sich an Werkzeuge wie dieses hier zu verwenden." +"Es ist schwierig, Markdown-Tabellen von Hand zu erstellen. Daher bietet es " +"sich an, Werkzeuge wie dieses hier zu verwenden." #: .\cookbook\templates\markdown_info.html:155 #: .\cookbook\templates\markdown_info.html:157 @@ -1167,7 +1135,7 @@ msgstr "Neuer Eintrag" #: .\cookbook\templates\meal_plan.html:113 #: .\cookbook\templates\shopping_list.html:52 msgid "Search Recipe" -msgstr "Rezept Suchen" +msgstr "Rezept suchen" #: .\cookbook\templates\meal_plan.html:139 msgid "Title" @@ -1179,18 +1147,18 @@ msgstr "Notiz (optional)" #: .\cookbook\templates\meal_plan.html:143 msgid "" -"You can use markdown to format this field. See the docs here" +"You can use markdown to format this field. See the docs " +"here" msgstr "" -"Dieses Feld Unterstützt Markdown Formatierung. Siehe Dokumentation" +"Dieses Feld Unterstützt Markdown Formatierung. Siehe Dokumentation" #: .\cookbook\templates\meal_plan.html:147 #: .\cookbook\templates\meal_plan.html:251 -#, fuzzy -#| msgid "Servings" msgid "Serving Count" -msgstr "Portionen" +msgstr "Anzahl Portionen" #: .\cookbook\templates\meal_plan.html:153 msgid "Create only note" @@ -1205,7 +1173,7 @@ msgstr "Einkaufsliste" #: .\cookbook\templates\meal_plan.html:172 msgid "Shopping list currently empty" -msgstr "Einkaufsliste aktuell leer" +msgstr "Die Einkaufsliste ist aktuell leer" #: .\cookbook\templates\meal_plan.html:175 msgid "Open Shopping List" @@ -1217,7 +1185,7 @@ msgstr "Plan" #: .\cookbook\templates\meal_plan.html:196 msgid "Number of Days" -msgstr "Anzahl Tage" +msgstr "Anzahl an Tagen" #: .\cookbook\templates\meal_plan.html:206 msgid "Weekday offset" @@ -1225,16 +1193,16 @@ msgstr "Wochentage verschieben" #: .\cookbook\templates\meal_plan.html:209 msgid "" -"Number of days starting from the first day of the week to offset the default " -"view." +"Number of days starting from the first day of the week to offset the default" +" view." msgstr "" -"Anzahl der Tage von ersten Tag der Woche die der Plan standardmäßig " +"Anzahl der Tage von ersten Tag der Woche, die der Plan standardmäßig " "verschoben sein soll." #: .\cookbook\templates\meal_plan.html:217 #: .\cookbook\templates\meal_plan.html:294 msgid "Edit plan types" -msgstr "Plan Typen editieren" +msgstr "Plantypen editieren" #: .\cookbook\templates\meal_plan.html:219 msgid "Show help" @@ -1265,103 +1233,42 @@ msgstr "Neue Mahlzeit" #: .\cookbook\templates\meal_plan.html:338 msgid "Meal Plan Help" -msgstr "Plan Hilfe" +msgstr "Plan-Hilfe" #: .\cookbook\templates\meal_plan.html:344 -#, fuzzy -#| msgid "" -#| "\n" -#| "

The meal plan module allows planning of " -#| "meals both with recipes or just notes.

\n" -#| "

Simply select a recipe from the list of " -#| "recently viewed recipes or search the one you\n" -#| " want and drag it to the desired plan " -#| "position. You can also add a note and a title and\n" -#| " then drag the recipe to create a plan " -#| "entry with a custom title and note. Creating only\n" -#| " Notes is possible by dragging the create " -#| "note box into the plan.

\n" -#| "

Click on a recipe in order to open the " -#| "detail view. Here you can also add it to the\n" -#| " shopping list. You can also add all " -#| "recipes of a day to the shopping list by\n" -#| " clicking the shopping cart at the top of " -#| "the table.

\n" -#| "

Since a common use case is to plan meals " -#| "together you can define\n" -#| " users you want to share your plan with in " -#| "the settings.\n" -#| "

\n" -#| "

You can also edit the types of meals you " -#| "want to plan. If you share your plan with\n" -#| " someone with\n" -#| " different meals, their meal types will " -#| "appear in your list as well. To prevent\n" -#| " duplicates (e.g. Other and Misc.)\n" -#| " name your meal types the same as the " -#| "users you share your meals with and they will be\n" -#| " merged.

\n" -#| " " msgid "" "\n" -"

The meal plan module allows planning of meals " -"both with recipes and notes.

\n" -"

Simply select a recipe from the list of " -"recently viewed recipes or search the one you\n" -" want and drag it to the desired plan " -"position. You can also add a note and a title and\n" -" then drag the recipe to create a plan entry " -"with a custom title and note. Creating only\n" -" Notes is possible by dragging the create " -"note box into the plan.

\n" -"

Click on a recipe in order to open the " -"detailed view. There you can also add it to the\n" -" shopping list. You can also add all recipes " -"of a day to the shopping list by\n" -" clicking the shopping cart at the top of the " -"table.

\n" -"

Since a common use case is to plan meals " -"together you can define\n" -" users you want to share your plan with in " -"the settings.\n" +"

The meal plan module allows planning of meals both with recipes and notes.

\n" +"

Simply select a recipe from the list of recently viewed recipes or search the one you\n" +" want and drag it to the desired plan position. You can also add a note and a title and\n" +" then drag the recipe to create a plan entry with a custom title and note. Creating only\n" +" Notes is possible by dragging the create note box into the plan.

\n" +"

Click on a recipe in order to open the detailed view. There you can also add it to the\n" +" shopping list. You can also add all recipes of a day to the shopping list by\n" +" clicking the shopping cart at the top of the table.

\n" +"

Since a common use case is to plan meals together you can define\n" +" users you want to share your plan with in the settings.\n" "

\n" -"

You can also edit the types of meals you want " -"to plan. If you share your plan with\n" +"

You can also edit the types of meals you want to plan. If you share your plan with\n" " someone with\n" -" different meals, their meal types will " -"appear in your list as well. To prevent\n" +" different meals, their meal types will appear in your list as well. To prevent\n" " duplicates (e.g. Other and Misc.)\n" -" name your meal types the same as the users " -"you share your meals with and they will be\n" +" name your meal types the same as the users you share your meals with and they will be\n" " merged.

\n" " " msgstr "" "\n" -"

Das Plan Modul erlaubt das Planen von " -"Rezepten oder auch nur Notizen.

\n" -"

Einfach ein Rezept raussuchen und an die " -"Stelle im Plan ziehen an der es gekocht werden soll. Es kann außerdem eine " -"Notiz und ein Titel hinzugefügt werden. Einen Eintrag nur als Notiz zu " -"erstellen ist durch Eingabe einer Notiz und schieben des Notiz Blocks in den " -"Plan möglich.

\n" -"

Durch klicken auf ein Rezept öffnet sich die " -"Detailansicht. Hier kann es auch auf die Einkaufsliste hinzugefügt werden. " -"Es können auch alle Rezepte eines Tages auf die Einkaufsliste gesetzt werden " -"indem der Einkaufswagen in der Tabelle angeklickt wird.

\n" -"

Da Pläne häufig für mehrere Nutzer erstellt " -"werden können andere Nutzer in den Einstellungen angegeben werden mit denen " -"neue Pläne automatisch geteilt werden sollen.\n" +"

Das Planmodul erlaubt das Planen mithilfe von Rezepten und Notizen.

\n" +"

Einfach ein Rezept aussuchen und an die Stelle im Plan ziehen, an der es gekocht werden soll. Es kann außerdem eine Notiz und ein Titel hinzugefügt werden. Einen Eintrag nur als Notiz zu erstellen ist durch Eingabe einer Notiz und Schieben des Notiz-Blocks in den Plan möglich.

\n" +"

Durch Klicken auf ein Rezept öffnet sich die Detailansicht. Da kann das Rezept auch auf die Einkaufsliste hinzugefügt werden. Es können auch alle Rezepte eines Tages auf die Einkaufsliste gesetzt werden, indem der Einkaufswagen im Tabellenkopf angeklickt wird.

\n" +"

Da Pläne häufig für mehrere Nutzer erstellt werden, können Nutzer in den Einstellungen angegeben werden, mit denen neue Pläne automatisch geteilt werden sollen.\n" "

\n" -"

Die Mahlzeiten die geplant werden sollen " -"können bearbeitet werden. Wenn Pläne zwischen Nutzern mit unterschiedlichen " -"Mahlzeiten geteilt werden erscheinen alle Mahlzeiten. Um Duplikate zu " -"vermeiden (z.B. Mittagessen und Mittag) sollten Mahlzeiten teilender Nutzer " -"gleich benannt werden, dadurch kann das System sie zusammenfassen.

\n" +"

Die Mahlzeiten, die geplant werden sollen, können bearbeitet werden. Wenn Pläne zwischen Nutzern mit unterschiedlichen Mahlzeiten geteilt werden, erscheinen alle Mahlzeiten. Um Duplikate zu vermeiden (z.B. Mittagessen und Mittag) sollten Mahlzeiten teilender Nutzer gleich benannt werden, dadurch kann das System sie zusammenfassen.

\n" " " #: .\cookbook\templates\meal_plan_entry.html:6 msgid "Meal Plan View" -msgstr "Plan Ansicht" +msgstr "Plan-Ansicht" #: .\cookbook\templates\meal_plan_entry.html:50 msgid "Never cooked before." @@ -1374,27 +1281,31 @@ msgstr "Andere Mahlzeiten an diesem Tag" #: .\cookbook\templates\no_groups_info.html:5 #: .\cookbook\templates\offline.html:6 msgid "Offline" -msgstr "" +msgstr "Offline" #: .\cookbook\templates\no_groups_info.html:12 msgid "No Permissions" -msgstr "" +msgstr "Keine Berechtigungen" #: .\cookbook\templates\no_groups_info.html:15 msgid "" "You do not have any groups and therefor cannot use this application. Please " "contact your administrator." msgstr "" +"Du hast keine Gruppe und kannst daher diese Anwendung nicht nutzen. Bitte " +"kontaktiere deinen Administrator." #: .\cookbook\templates\offline.html:19 msgid "You are currently offline!" -msgstr "" +msgstr "Du bist gerade offline!" #: .\cookbook\templates\offline.html:20 msgid "" "The recipes listed below are available for offline viewing because you have " "recently viewed them. Keep in mind that data might be outdated." msgstr "" +"Die unterhalb aufgelisteten Rezepte sind offline verfügbar, da du sie vor " +"kurzem angesehen hast. Beachte, dass die Daten veraltetet sein könnten." #: .\cookbook\templates\recipe_view.html:21 .\cookbook\templates\stats.html:47 msgid "Comments" @@ -1409,7 +1320,7 @@ msgstr "Kommentar" #: .\cookbook\templates\recipes_table.html:23 #: .\cookbook\templates\url_import.html:50 msgid "Recipe Image" -msgstr "Rezept Bild" +msgstr "Rezeptbild" #: .\cookbook\templates\recipes_table.html:46 #: .\cookbook\templates\url_import.html:55 @@ -1427,11 +1338,11 @@ msgstr "Extern" #: .\cookbook\templates\recipes_table.html:81 msgid "Log Cooking" -msgstr "Kochen Protokollieren" +msgstr "Kochen protokollieren" #: .\cookbook\templates\rest_framework\api.html:5 msgid "Recipe Home" -msgstr "Rezept Hauptseite" +msgstr "Rezept-Hauptseite" #: .\cookbook\templates\settings.html:22 msgid "Account" @@ -1439,7 +1350,7 @@ msgstr "Account" #: .\cookbook\templates\settings.html:38 msgid "Link social account" -msgstr "" +msgstr "Social Account verlinken" #: .\cookbook\templates\settings.html:42 msgid "Language" @@ -1451,22 +1362,22 @@ msgstr "Stil" #: .\cookbook\templates\settings.html:79 msgid "API Token" -msgstr "API Token" +msgstr "API-Token" #: .\cookbook\templates\settings.html:80 msgid "" "You can use both basic authentication and token based authentication to " "access the REST API." msgstr "" -"Sowohl basic auth als auch token basierte Authentifizierung können für die " -"REST API verwendet werden." +"Sowohl Basic Authentication als auch tokenbasierte Authentifizierung können " +"für die REST-API verwendet werden." #: .\cookbook\templates\settings.html:92 msgid "" -"Use the token as an Authorization header prefixed by the word token as shown " -"in the following examples:" +"Use the token as an Authorization header prefixed by the word token as shown" +" in the following examples:" msgstr "" -"Benutzt das Token als Authorization header mit dem präfix token wie in " +"Nutz den Token als Authorization-Header mit der Präfix \"Token\" wie in " "folgendem Beispiel:" #: .\cookbook\templates\settings.html:94 @@ -1475,7 +1386,7 @@ msgstr "oder" #: .\cookbook\templates\setup.html:6 .\cookbook\templates\system.html:5 msgid "Cookbook Setup" -msgstr "Kochbuch Setup" +msgstr "Kochbuch-Setup" #: .\cookbook\templates\setup.html:14 msgid "Setup" @@ -1485,16 +1396,16 @@ msgstr "Setup" msgid "" "To start using this application you must first create a superuser account." msgstr "" -"Um diese Anwendung zu Benutzen muss zunächst ein Administrator erstellt " -"werden." +"Um diese Anwendung zu benutzen, muss zunächst ein Administrator-Account " +"erstellt werden." #: .\cookbook\templates\setup.html:20 msgid "Create Superuser account" -msgstr "Administrator Erstellen" +msgstr "Administrator-Account Erstellen" #: .\cookbook\templates\shopping_list.html:75 msgid "Shopping Recipes" -msgstr "Einkaufs Rezepte" +msgstr "Einkaufs-Rezepte" #: .\cookbook\templates\shopping_list.html:79 msgid "No recipes selected" @@ -1502,13 +1413,11 @@ msgstr "Keine Rezepte ausgewählt" #: .\cookbook\templates\shopping_list.html:145 msgid "Entry Mode" -msgstr "" +msgstr "Eintrags-Modus" #: .\cookbook\templates\shopping_list.html:153 -#, fuzzy -#| msgid "New Entry" msgid "Add Entry" -msgstr "Neuer Eintrag" +msgstr "Eintrag hinzufügen" #: .\cookbook\templates\shopping_list.html:168 msgid "Amount" @@ -1516,17 +1425,15 @@ msgstr "Menge" #: .\cookbook\templates\shopping_list.html:224 msgid "Supermarket" -msgstr "" +msgstr "Supermarkt" #: .\cookbook\templates\shopping_list.html:234 -#, fuzzy -#| msgid "Select User" msgid "Select Supermarket" -msgstr "Nutzer Auswählen" +msgstr "Supermarkt auswählen" #: .\cookbook\templates\shopping_list.html:258 msgid "Select User" -msgstr "Nutzer Auswählen" +msgstr "Nutzer auswählen" #: .\cookbook\templates\shopping_list.html:277 msgid "Finished" @@ -1534,7 +1441,7 @@ msgstr "Erledigt" #: .\cookbook\templates\shopping_list.html:290 msgid "You are offline, shopping list might not syncronize." -msgstr "Du bist offline, die Einkaufsliste aktualisiert möglicherweise nicht." +msgstr "Du bist offline, die Einkaufsliste wird ggf. nicht synchronisiert." #: .\cookbook\templates\shopping_list.html:353 msgid "Copy/Export" @@ -1542,35 +1449,38 @@ msgstr "Kopieren/Exportieren" #: .\cookbook\templates\shopping_list.html:357 msgid "List Prefix" -msgstr "Listen Präfix" +msgstr "Listenpräfix" #: .\cookbook\templates\shopping_list.html:696 msgid "There was an error creating a resource!" -msgstr "Es gab einen Fehler beim erstellen einer Ressource!" +msgstr "Es gab einen Fehler beim Erstellen einer Ressource!" #: .\cookbook\templates\socialaccount\connections.html:4 #: .\cookbook\templates\socialaccount\connections.html:7 msgid "Account Connections" -msgstr "" +msgstr "Account-Verbindungen" #: .\cookbook\templates\socialaccount\connections.html:10 msgid "" "You can sign in to your account using any of the following third party\n" " accounts:" msgstr "" +"Du kannst dich mit den folgenden Drittanbieter-Accounts\n" +" anmelden:" #: .\cookbook\templates\socialaccount\connections.html:36 msgid "Remove" -msgstr "" +msgstr "Entfernen" #: .\cookbook\templates\socialaccount\connections.html:44 msgid "" "You currently have no social network accounts connected to this account." msgstr "" +"Du hast momentan keine Social-Media Accounts mit diesem Account verbunden." #: .\cookbook\templates\socialaccount\connections.html:47 msgid "Add a 3rd Party Account" -msgstr "" +msgstr "Fremden Account hinzufügen" #: .\cookbook\templates\stats.html:4 msgid "Stats" @@ -1578,15 +1488,15 @@ msgstr "Statistiken" #: .\cookbook\templates\stats.html:19 msgid "Number of objects" -msgstr "Anzahl der Objekte" +msgstr "Anzahl an Objekten" #: .\cookbook\templates\stats.html:30 msgid "Recipe Imports" -msgstr "Rezept Importe" +msgstr "Importierte Rezepte" #: .\cookbook\templates\stats.html:38 msgid "Objects stats" -msgstr "Objekt Statistiken" +msgstr "Objekt-Statistiken" #: .\cookbook\templates\stats.html:41 msgid "Recipes without Keywords" @@ -1602,7 +1512,7 @@ msgstr "Interne Rezepte" #: .\cookbook\templates\system.html:21 .\cookbook\views\lists.py:128 msgid "Invite Links" -msgstr "Einladungs Link" +msgstr "Einladungslinks" #: .\cookbook\templates\system.html:22 msgid "Show Links" @@ -1618,29 +1528,25 @@ msgstr "Backup herunterladen" #: .\cookbook\templates\system.html:49 msgid "System Information" -msgstr "System Information" +msgstr "Systeminformation" #: .\cookbook\templates\system.html:51 msgid "" "\n" -" Django Recipes is an open source free software application. It can " -"be found on\n" +" Django Recipes is an open source free software application. It can be found on\n" " GitHub.\n" -" Changelogs can be found here.\n" +" Changelogs can be found here.\n" " " msgstr "" "\n" -" Django Rezepte ist eine kostenlose OpenSource Anwendung. Der Source " -"Code befindet sich auf\n" +" Django Recipes ist eine kostenlose OpenSource-Anwendung. Der Quellcode befindet sich auf\n" " GitHub.\n" -" Eine Übersicht über alle Änderungen findet sich hier.\n" +" Eine Übersicht über alle Änderungen findet sich hier.\n" " " #: .\cookbook\templates\system.html:65 msgid "Media Serving" -msgstr "Media Serving" +msgstr "Medien ausliefern" #: .\cookbook\templates\system.html:66 .\cookbook\templates\system.html:81 #: .\cookbook\templates\system.html:97 @@ -1656,22 +1562,19 @@ msgstr "Ok" msgid "" "Serving media files directly using gunicorn/python is not recommend!\n" " Please follow the steps described\n" -" here to update\n" +" here to update\n" " your installation.\n" " " msgstr "" -"Serving media files directly using gunicorn/python is not recommend!\n" -" Please follow the steps described\n" -" here to update\n" -" your installation.\n" -" " +"Das direkte ausliefern von Mediendateien mit gunicorn/python ist nicht " +"empfehlenswert! Bitte folge den beschriebenen Schritten hier," +" um Ihre Installation zu aktualisieren." #: .\cookbook\templates\system.html:74 .\cookbook\templates\system.html:90 #: .\cookbook\templates\system.html:105 .\cookbook\templates\system.html:119 msgid "Everything is fine!" -msgstr "Alles ok!" +msgstr "Alles in Ordnung!" #: .\cookbook\templates\system.html:79 msgid "Secret Key" @@ -1680,46 +1583,30 @@ msgstr "Secret Key" #: .\cookbook\templates\system.html:83 msgid "" "\n" -" You do not have a SECRET_KEY configured in your " -".env file. Django defaulted to the\n" +" You do not have a SECRET_KEY configured in your .env file. Django defaulted to the\n" " standard key\n" -" provided with the installation which is publicly know and " -"insecure! Please set\n" -" SECRET_KEY int the .env configuration " -"file.\n" +" provided with the installation which is publicly know and insecure! Please set\n" +" SECRET_KEY int the .env configuration file.\n" " " msgstr "" "\n" -" You do not have a SECRET_KEY configured in your " -".env file. Django defaulted to the\n" -" standard key\n" -" provided with the installation which is publicly know and " -"insecure! Please set\n" -" SECRET_KEY int the .env configuration " -"file.\n" -" " +"Du hast keinen SECRET_KEY in deiner .env-Datei konfiguriert. Django verwendet standardmäßig den mit der Installation gelieferten Standardschlüssel, der öffentlich bekannt und unsicher ist! Bitte setze den SECRET_KEY in der Konfigurationsdatei .env." #: .\cookbook\templates\system.html:95 msgid "Debug Mode" -msgstr "Debug Mode" +msgstr "Debug-Modus" #: .\cookbook\templates\system.html:99 msgid "" "\n" -" This application is still running in debug mode. This is most " -"likely not needed. Turn of debug mode by\n" +" This application is still running in debug mode. This is most likely not needed. Turn of debug mode by\n" " setting\n" -" DEBUG=0 int the .env configuration " -"file.\n" +" DEBUG=0 int the .env configuration file.\n" " " msgstr "" "\n" -" This application is still running in debug mode. This is most " -"likely not needed. Turn of debug mode by\n" -" setting\n" -" DEBUG=0 int the .env configuration " -"file.\n" -" " +"Diese Anwendung läuft noch im Debug-Modus. Dieser wird höchstwahrscheinlich nicht benötigt.\n" +"Schalte den Debug-Modus aus, indem du DEBUG=0 in der Konfigurationsdatei .env einstellst." #: .\cookbook\templates\system.html:110 msgid "Database" @@ -1727,33 +1614,30 @@ msgstr "Datenbank" #: .\cookbook\templates\system.html:112 msgid "Info" -msgstr "Information" +msgstr "Info" #: .\cookbook\templates\system.html:114 msgid "" "\n" -" This application is not running with a Postgres database " -"backend. This is ok but not recommended as some\n" +" This application is not running with a Postgres database backend. This is ok but not recommended as some\n" " features only work with postgres databases.\n" " " msgstr "" "\n" -" This application is not running with a Postgres database " -"backend. This is ok but not recommended as some\n" -" features only work with postgres databases.\n" -" " +"Diese Anwendung läuft nicht mit einer Postgres Datenbank. Dies ist in Ordnung, wird aber nicht empfohlen, da einige\n" +"Funktionen nur mit einer Postgres-Datenbanken funktionieren." #: .\cookbook\templates\url_import.html:5 msgid "URL Import" -msgstr "URL Import" +msgstr "URL-Import" #: .\cookbook\templates\url_import.html:23 msgid "Enter website URL" -msgstr "Webseiten URL eingeben" +msgstr "Webseite-URL eingeben" #: .\cookbook\templates\url_import.html:44 msgid "Recipe Name" -msgstr "Rezept Name" +msgstr "Rezeptname" #: .\cookbook\templates\url_import.html:104 #: .\cookbook\templates\url_import.html:136 @@ -1767,7 +1651,7 @@ msgstr "Alle Schlagwörter" #: .\cookbook\templates\url_import.html:206 msgid "Import all keywords, not only the ones already existing." -msgstr "Importiert alle Schlagwörter, nicht nur die die bereits existieren." +msgstr "Alle Schlagwörter importieren, nicht nur die bereits bestehenden." #: .\cookbook\templates\url_import.html:233 msgid "Information" @@ -1776,17 +1660,15 @@ msgstr "Information" #: .\cookbook\templates\url_import.html:235 msgid "" " Only websites containing ld+json or microdata information can currently\n" -" be imported. Most big recipe pages " -"support this. If you site cannot be imported but\n" +" be imported. Most big recipe pages support this. If you site cannot be imported but\n" " you think\n" -" it probably has some kind of structured " -"data feel free to post an example in the\n" +" it probably has some kind of structured data feel free to post an example in the\n" " github issues." msgstr "" "Nur Webseiten mit ld+json oder microdata können importiert werden. Die " "meisten großen Seiten unterstützen diese Formate. Wenn eine Seite nicht " -"importiert werden kann sie aber strukturierte Daten aufweist kann ein GitHub " -"Issue geöffnet werden." +"importiert werden kann, sie aber strukturierte Daten aufweist, kann ein " +"GitHub-Issue geöffnet werden." #: .\cookbook\templates\url_import.html:243 msgid "Google ld+json Info" @@ -1794,23 +1676,23 @@ msgstr "Google ld+json Informationen" #: .\cookbook\templates\url_import.html:246 msgid "GitHub Issues" -msgstr "GitHub Issues" +msgstr "GitHub-Issues" #: .\cookbook\templates\url_import.html:248 msgid "Recipe Markup Specification" -msgstr "Recipe Markup Spezifikation" +msgstr "Rezept-Markup-Spezifikation" #: .\cookbook\views\api.py:104 msgid "Parameter filter_list incorrectly formatted" -msgstr "Parameter filter_list incorrectly formatted" +msgstr "Der Parameter filter_list ist falsch formatiert" #: .\cookbook\views\api.py:117 msgid "Preference for given user already exists" -msgstr "Preference for given user already exists" +msgstr "Präferenz für den Benutzer existiert bereits" #: .\cookbook\views\api.py:416 .\cookbook\views\views.py:265 msgid "This feature is not available in the demo version!" -msgstr "" +msgstr "Diese Funktion ist in der Demo-Version nicht verfügbar!" #: .\cookbook\views\api.py:439 msgid "Sync successful!" @@ -1822,35 +1704,36 @@ msgstr "Fehler beim Synchronisieren" #: .\cookbook\views\api.py:510 msgid "The requested page could not be found." -msgstr "Die Angefragte Seite konnte nicht gefunden werden." +msgstr "Die angefragte Seite konnte nicht gefunden werden." #: .\cookbook\views\api.py:519 msgid "" "The requested page refused to provide any information (Status Code 403)." -msgstr "Die angefragte Seite hat die Anfrage abgelehnt (Status Code 403)." +msgstr "Die angefragte Seite hat die Anfrage abgelehnt (Status-Code 403)." #: .\cookbook\views\data.py:101 #, python-format msgid "Batch edit done. %(count)d recipe was updated." msgid_plural "Batch edit done. %(count)d Recipes where updated." -msgstr[0] "Massenbearbeitung erfolgreich. %(count)d Rezept wurde aktualisiert." +msgstr[0] "" +"Massenbearbeitung erfolgreich. %(count)d Rezept wurde aktualisiert." msgstr[1] "" "Massenbearbeitung erfolgreich. %(count)d Rezepte wurden aktualisiert." #: .\cookbook\views\delete.py:72 msgid "Monitor" -msgstr "Monitor" +msgstr "Überwachen" #: .\cookbook\views\delete.py:96 .\cookbook\views\lists.py:109 #: .\cookbook\views\new.py:83 msgid "Storage Backend" -msgstr "Speicher Quelle" +msgstr "Speicherquelle" #: .\cookbook\views\delete.py:106 msgid "" "Could not delete this storage backend as it is used in at least one monitor." msgstr "" -"Speicherquelle konnte nicht gelöscht werden da sie in mindestens einem " +"Speicherquelle konnte nicht gelöscht werden, da sie in mindestens einem " "Monitor verwendet wird." #: .\cookbook\views\delete.py:129 .\cookbook\views\edit.py:196 @@ -1880,7 +1763,7 @@ msgstr "Speicherquelle gespeichert!" #: .\cookbook\views\edit.py:137 msgid "There was an error updating this storage backend!" -msgstr "Es gab einen Fehler beim aktualisierung dieser Speicher Quelle!" +msgstr "Es gab einen Fehler beim Aktualisieren dieser Speicherquelle!" #: .\cookbook\views\edit.py:148 msgid "Storage" @@ -1900,27 +1783,27 @@ msgstr "Einheiten zusammengeführt!" #: .\cookbook\views\edit.py:295 .\cookbook\views\edit.py:317 msgid "Cannot merge with the same object!" -msgstr "" +msgstr "Zusammenführen mit selben Objekt nicht möglich!" #: .\cookbook\views\edit.py:311 msgid "Foods merged!" -msgstr "Lebensmittel vereint" +msgstr "Zutaten zusammengeführt!" #: .\cookbook\views\import_export.py:42 msgid "Importing is not implemented for this provider" -msgstr "" +msgstr "Importieren ist für diesen Anbieter noch nicht implementiert" #: .\cookbook\views\import_export.py:58 msgid "Exporting is not implemented for this provider" -msgstr "" +msgstr "Exportieren ist für diesen Anbieter noch nicht implementiert" #: .\cookbook\views\lists.py:42 msgid "Import Log" -msgstr "Import Log" +msgstr "Importverlauf" #: .\cookbook\views\lists.py:55 msgid "Discovery" -msgstr "Entdeckung" +msgstr "Entdecken" #: .\cookbook\views\lists.py:92 msgid "Shopping Lists" @@ -1928,16 +1811,16 @@ msgstr "Einkaufslisten" #: .\cookbook\views\new.py:107 msgid "Imported new recipe!" -msgstr "Importier neue Rezepte!" +msgstr "Neues Rezept importiert!" #: .\cookbook\views\new.py:114 msgid "There was an error importing this recipe!" -msgstr "Beim importieren des Rezeptes ist ein Fehler aufgetreten!" +msgstr "Beim Importieren des Rezeptes ist ein Fehler aufgetreten!" #: .\cookbook\views\views.py:117 msgid "You do not have the required permissions to perform this action!" msgstr "" -"Sie haben nicht die notwendigen Berechtigungen um diese Aktion durchzuführen!" +"Du hast nicht die notwendige Berechtigung, um diese Aktion durchzuführen!" #: .\cookbook\views\views.py:136 msgid "Comment saved!" @@ -1945,7 +1828,7 @@ msgstr "Kommentar gespeichert!" #: .\cookbook\views\views.py:152 msgid "This recipe is already linked to the book!" -msgstr "" +msgstr "Dieses Rezept ist bereits mit dem Buch verlinkt!" #: .\cookbook\views\views.py:158 msgid "Bookmark saved!" @@ -1954,11 +1837,11 @@ msgstr "Lesezeichen gespeichert!" #: .\cookbook\views\views.py:380 msgid "" "The setup page can only be used to create the first user! If you have " -"forgotten your superuser credentials please consult the django documentation " -"on how to reset passwords." +"forgotten your superuser credentials please consult the django documentation" +" on how to reset passwords." msgstr "" -"Die Setup Seite kann nur für den ersten Nutzer verwendet werden. Zum " -"zurücksetzen von Passwörtern bitte der Django Dokumentation folgen." +"Die Setup-Seite kann nur für den ersten Nutzer verwendet werden. Zum " +"Zurücksetzen von Passwörtern bitte der Django-Dokumentation folgen." #: .\cookbook\views\views.py:388 .\cookbook\views\views.py:435 msgid "Passwords dont match!" @@ -1970,163 +1853,8 @@ msgstr "Benutzer wurde erstellt, bitte einloggen!" #: .\cookbook\views\views.py:419 msgid "Malformed Invite Link supplied!" -msgstr "Fehlerhaften Einladungslink angegeben!" +msgstr "Fehlerhafter Einladungslink angegeben!" #: .\cookbook\views\views.py:470 msgid "Invite Link not valid or already used!" msgstr "Einladungslink ungültig oder bereits genutzt!" - -#~ msgid "Export Base64 encoded image?" -#~ msgstr "Base64 kodiertes Bild exportieren?" - -#~ msgid "Download export directly or show on page?" -#~ msgstr "Direkter Download oder Anzeige auf Seite ?" - -#~ msgid "Simply paste a JSON export into this textarea and click import." -#~ msgstr "Einfach JSON in die Textbox einfügen und \"Importieren\" klicken." - -#~ msgid "Exported Recipe" -#~ msgstr "Exportierte Rezepte" - -#~ msgid "Copy to clipboard" -#~ msgstr "In Zwischenablage kopieren" - -#~ msgid "Copied!" -#~ msgstr "Kopiert!" - -#~ msgid "Copy list to clipboard" -#~ msgstr "Kopiere Liste in Zwischenablage" - -#~ msgid "Your username and password didn't match. Please try again." -#~ msgstr "Nutzername oder Passwort falsch. Bitte versuch es erneut." - -#~ msgid "Recipe imported successfully!" -#~ msgstr "Rezept erfolgreich importiert!" - -#~ msgid "Something went wrong during the import!" -#~ msgstr "Beim Import ist etwas schief gegangen!" - -#~ msgid "Could not parse the supplied JSON!" -#~ msgstr "Das JSON konnte nicht gelesen werden!" - -#~ msgid "" -#~ "External recipes cannot be exported, please share the file directly or " -#~ "select an internal recipe." -#~ msgstr "" -#~ "Externe Rezepte können nicht exportiert werden, bitte Datei direkt teilen " -#~ "oder ein Internes Rezept auswählen." - -#~ msgid "Scaling factor for recipe." -#~ msgstr "Skalierungsfaktor für das Rezept." - -#~ msgid "Error" -#~ msgstr "Fehler" - -#~ msgid "There was an error loading the recipe!" -#~ msgstr "Es gab einen Fehler beim Laden des Rezepts!" - -#~ msgid "Updated" -#~ msgstr "Aktualisiert" - -#~ msgid "Changes saved successfully!" -#~ msgstr "Änderungen erfolgreich gespeichert!" - -#~ msgid "There was an error updating the recipe!" -#~ msgstr "Es gab einen Fehler beim aktualisieren des Rezepts!" - -#~ msgid "Are you sure that you want to delete this ingredient?" -#~ msgstr "Bist du sicher das du diese Zutat löschen willst?" - -#~ msgid "Are you sure that you want to delete this step?" -#~ msgstr "Soll dieser Schritt wirklich gelöscht werden?" - -#~ msgid "There was an error loading a resource!" -#~ msgstr "Es gab einen Fehler beim laden der Ressource!" - -#~ msgid "Recipe Multiplier" -#~ msgstr "Rezept Multiplikator" - -#~ msgid "" -#~ "When deleting a meal type all entries using that type will be deleted as " -#~ "well. Deletion will apply when configuration is saved. Do you want to " -#~ "proceed?" -#~ msgstr "" -#~ "Wenn eine Mahlzeit gelöscht wird werden auch alle Einträge mit dieser " -#~ "Mahlzeit gelöscht. Die Löschung wird erst aktiv wenn die Konfiguration " -#~ "gespeichert wird. Fortfahren ?" - -#~ msgid "Add to Book" -#~ msgstr "Zu Buch hinzufügen" - -#~ msgid "Add to Plan" -#~ msgstr "Zum Plan hinzufügen" - -#~ msgid "Print" -#~ msgstr "Drucken" - -#~ msgid "Share" -#~ msgstr "Teilen" - -#~ msgid "in" -#~ msgstr "in" - -#~ msgid "Preparation time ~" -#~ msgstr "Vorbereitungs Zeit ~" - -#~ msgid "Minutes" -#~ msgstr "Minuten" - -#~ msgid "View external recipe" -#~ msgstr "Externes Rezept ansehen" - -#~ msgid "External recipe image" -#~ msgstr "Externes Rezeptbild" - -#~ msgid "External recipe" -#~ msgstr "Externes Rezept" - -#~ msgid "" -#~ "\n" -#~ " This is an external recipe, which " -#~ "means you can only view it by opening the link\n" -#~ " above.\n" -#~ " You can convert this recipe to a " -#~ "fancy recipe by pressing the convert button. The\n" -#~ " original\n" -#~ " file\n" -#~ " will still be accessible.\n" -#~ " " -#~ msgstr "" -#~ "\n" -#~ " Dies ist ein externes Rezept. Das bedeutet das es " -#~ "nur durch klicken auf den link geöffnet werden kann.\n" -#~ " Das Rezept kann durch drücken des Umwandeln " -#~ "Knopfes in ein schickes lokales Rezept verwandelt werden. Die originale " -#~ "Datei bleibt weiterhin verfügbar.\n" -#~ " " - -#~ msgid "Convert now!" -#~ msgstr "Jetzt umwandeln!" - -#~ msgid "There was an error updating a resource!" -#~ msgstr "Es gab einen Fehler beim aktualisieren der Ressource!" - -#~ msgid "Object created successfully!" -#~ msgstr "Objekt erfolgreich erstellt!" - -#~ msgid "Please enter a valid food" -#~ msgstr "Bitte ein gültiges Lebensmittel eingeben" - -#~ msgid "Already importing the selected recipe, please wait!" -#~ msgstr "Das Rezept wird bereits importiert, bitte warten!" - -#~ msgid "An error occurred while trying to import this recipe!" -#~ msgstr "Beim importieren der Webseite ist ein Fehler aufgetreten!" - -#~ msgid "Default user to share newly created meal plan entries with." -#~ msgstr "" -#~ "Standardbenutzer, mit denen neue Einträge in der Mahlzeitenplanung " -#~ "geteilt werden sollen." - -#~ msgid "Tags" -#~ msgstr "Schlagwörter" diff --git a/cookbook/locale/hy/LC_MESSAGES/django.mo b/cookbook/locale/hy/LC_MESSAGES/django.mo new file mode 100644 index 000000000..852dca019 Binary files /dev/null and b/cookbook/locale/hy/LC_MESSAGES/django.mo differ diff --git a/cookbook/locale/hy/LC_MESSAGES/django.po b/cookbook/locale/hy/LC_MESSAGES/django.po new file mode 100644 index 000000000..44d377061 --- /dev/null +++ b/cookbook/locale/hy/LC_MESSAGES/django.po @@ -0,0 +1,1880 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +# Translators: +# H K , 2021 +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-02-09 18:01+0100\n" +"PO-Revision-Date: 2020-06-02 19:28+0000\n" +"Last-Translator: H K , 2021\n" +"Language-Team: Armenian (https://www.transifex.com/django-recipes/teams/110507/hy/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: hy\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: .\cookbook\filters.py:22 .\cookbook\templates\base.html:87 +#: .\cookbook\templates\forms\edit_internal_recipe.html:219 +#: .\cookbook\templates\forms\ingredients.html:34 +#: .\cookbook\templates\stats.html:28 .\cookbook\views\lists.py:72 +msgid "Ingredients" +msgstr "Բաղադրիչներ" + +#: .\cookbook\forms.py:44 +msgid "" +"Color of the top navigation bar. Not all colors work with all themes, just " +"try them out!" +msgstr "" +"Վերին վահանակի գույնը։ Ոչ բոլոր գույներն են աշխատում բոլոր թեմաների հետ, " +"պարզապես փորձեք։" + +#: .\cookbook\forms.py:45 +msgid "Default Unit to be used when inserting a new ingredient into a recipe." +msgstr "Նոր բաղադրիչ ավելացնելիս չափի լռելյայն միավորը։" + +#: .\cookbook\forms.py:46 +msgid "" +"Enables support for fractions in ingredient amounts (e.g. convert decimals " +"to fractions automatically)" +msgstr "" +"Ակտիվացնել բաղադրիչների քանակի համար կոտորակների աջակցությունը (փոխակերպել " +"տասնորդականները կոտորակների)" + +#: .\cookbook\forms.py:47 +msgid "" +"Users with whom newly created meal plan/shopping list entries should be " +"shared by default." +msgstr "" +"Օգտատերեր, ում հետ նոր ստեղծված ճաշացուցակները/գնումների ցուցակները պետք է " +"կիսվեն լռելյայն" + +#: .\cookbook\forms.py:48 +msgid "Show recently viewed recipes on search page." +msgstr "Ցույց տալ վերջերս դիտած բաղադրատոմսերը փնտրման էջում։" + +#: .\cookbook\forms.py:49 +msgid "Number of decimals to round ingredients." +msgstr "Բաղադրիչների կլորացման համար տասնորդականների քանակը" + +#: .\cookbook\forms.py:50 +msgid "If you want to be able to create and see comments underneath recipes." +msgstr "" +"Եթե ցանկանում եք կարողանալ ավելացնել և տեսնել մեկնաբանություններ " +"բաղադրատոմսերի ներքևում։" + +#: .\cookbook\forms.py:52 +msgid "" +"Setting to 0 will disable auto sync. When viewing a shopping list the list " +"is updated every set seconds to sync changes someone else might have made. " +"Useful when shopping with multiple people but might use a little bit of " +"mobile data. If lower than instance limit it is reset when saving." +msgstr "" +"0-ն կանջատի ավտոմատ սինքրոնացումը։ Գնումների ցուցակը թարմացվում է " +"յուրաքանչյուր սահմանված վարկյանը մեկ, մեկ ուրիշի կատարած փոփոխությունները " +"սինքրոնացնելու համար։ Հարմար է, երբ մեկից ավել մարդ է կատարում գնումները, " +"բայց կարող է օգտագործել բջջային ինտերնետ։" + +#: .\cookbook\forms.py:55 +msgid "Makes the navbar stick to the top of the page." +msgstr "Կցել նավիգացիոն տողը էջի վերևում" + +#: .\cookbook\forms.py:71 +msgid "" +"Both fields are optional. If none are given the username will be displayed " +"instead" +msgstr "" +"Երկու դաշտն էլ կամավոր են։ Դատարկ լինելու դեպքում օգտվողի անունը կցուցադրվի " +"փոխարենը" + +#: .\cookbook\forms.py:92 .\cookbook\forms.py:113 .\cookbook\forms.py:277 +#: .\cookbook\templates\forms\edit_internal_recipe.html:45 +msgid "Name" +msgstr "Անվանում" + +#: .\cookbook\forms.py:93 .\cookbook\forms.py:114 .\cookbook\forms.py:278 +#: .\cookbook\templates\base.html:94 +#: .\cookbook\templates\forms\edit_internal_recipe.html:71 +#: .\cookbook\templates\stats.html:24 .\cookbook\templates\url_import.html:183 +msgid "Keywords" +msgstr "Բանալի բառեր" + +#: .\cookbook\forms.py:94 .\cookbook\forms.py:115 +msgid "Preparation time in minutes" +msgstr "Պատրաստման տևողությունը րոպեներով" + +#: .\cookbook\forms.py:95 .\cookbook\forms.py:116 +msgid "Waiting time (cooking/baking) in minutes" +msgstr "Սպասման տևողությունը (եփել/թխել) րոպեներով" + +#: .\cookbook\forms.py:96 .\cookbook\forms.py:279 +msgid "Path" +msgstr "Ուղի" + +#: .\cookbook\forms.py:97 +msgid "Storage UID" +msgstr "Պահոցի UID" + +#: .\cookbook\forms.py:117 +msgid "Number of servings" +msgstr "Չափաբաժինների քանակը" + +#: .\cookbook\forms.py:128 +msgid "" +"Include - [ ] in list for easier usage in markdown based " +"documents." +msgstr "" +"Ներառել - [ ] ցուցակում markdown փաստաթղթերում հեշտ կիրառման " +"համար։" + +#: .\cookbook\forms.py:143 +msgid "Default" +msgstr "Լռելյայն" + +#: .\cookbook\forms.py:162 +msgid "New Unit" +msgstr "Նոր միավոր" + +#: .\cookbook\forms.py:163 +msgid "New unit that other gets replaced by." +msgstr "Նոր միավոր հները փոխարինելու համար։" + +#: .\cookbook\forms.py:168 +msgid "Old Unit" +msgstr "Հին միավոր" + +#: .\cookbook\forms.py:169 +msgid "Unit that should be replaced." +msgstr "Փոխարինման ենթակա միավոր" + +#: .\cookbook\forms.py:179 +msgid "New Food" +msgstr "Նոր սննդամթերք" + +#: .\cookbook\forms.py:180 +msgid "New food that other gets replaced by." +msgstr "Նոր սննդամթերք, որով փոխարինվում է հինը։" + +#: .\cookbook\forms.py:185 +msgid "Old Food" +msgstr "Հին սննդամթերք" + +#: .\cookbook\forms.py:186 +msgid "Food that should be replaced." +msgstr "Փոխարինման ենթակա սննդամթերք։" + +#: .\cookbook\forms.py:198 +msgid "Add your comment: " +msgstr "Ավելացրեք ձեր մեկնաբանությունը՝" + +#: .\cookbook\forms.py:229 +msgid "Leave empty for dropbox and enter app password for nextcloud." +msgstr "" +"Թողնել դատարկ dropbox-ի համար և մուտքագրել ծրագրի գաղտնաբառը nextcloud-ի " +"համար։" + +#: .\cookbook\forms.py:236 +msgid "Leave empty for nextcloud and enter api token for dropbox." +msgstr "" +"Թողնել դատարկ nextcloud-ի համար և մուտքագրել ծրագրի ժետոնը dropbox-ի համար։" + +#: .\cookbook\forms.py:244 +msgid "" +"Leave empty for dropbox and enter only base url for nextcloud " +"(/remote.php/webdav/ is added automatically)" +msgstr "" +"Թողնել դատարկ dropbox-ի համար և մուտքագրել միայն հիմքային հղումը nextcloud-ի" +" համար (/remote.php/webdav/ ինքնաբերաբար ավելացվում է)" + +#: .\cookbook\forms.py:263 +msgid "Search String" +msgstr "Փնտրել շարքը" + +#: .\cookbook\forms.py:280 +msgid "File ID" +msgstr "Ֆայլի ID" + +#: .\cookbook\forms.py:299 +msgid "You must provide at least a recipe or a title." +msgstr "Դուք պետք է տրամադրեք առնվազն բաղադրատոմս կամ վերնագիր" + +#: .\cookbook\forms.py:312 +msgid "You can list default users to share recipes with in the settings." +msgstr "" +"Դուք կարող եք կարգավորումներում ավելացնել այն օգտատերերին, ում հետ " +"բաղադրատոմսերը պետք է կիսվեն լռելյայն" + +#: .\cookbook\forms.py:313 +#: .\cookbook\templates\forms\edit_internal_recipe.html:377 +msgid "" +"You can use markdown to format this field. See the docs here" +msgstr "" +"Դուք կարող եք օգտագործել markdown-ն այս դաշտը ձևավորելու համար. Տեսեք փաստաթղթերն այստեղ" + +#: .\cookbook\forms.py:328 +msgid "A username is not required, if left blank the new user can choose one." +msgstr "" +"Օգտատերի անուն պարտադիր չէ, դատարկ թողնելու դեպքում նոր օգտատերը կարող է " +"անձամբ ընտրել։" + +#: .\cookbook\helper\permission_helper.py:137 +#: .\cookbook\helper\permission_helper.py:206 +#: .\cookbook\helper\permission_helper.py:220 +#: .\cookbook\helper\permission_helper.py:231 +#: .\cookbook\helper\permission_helper.py:242 .\cookbook\views\data.py:32 +#: .\cookbook\views\views.py:106 .\cookbook\views\views.py:218 +msgid "You do not have the required permissions to view this page!" +msgstr "Դուք չունեք անհրաժեշտ թույլտվություն այս էջը դիտելու համար։" + +#: .\cookbook\helper\permission_helper.py:151 +msgid "You are not logged in and therefore cannot view this page!" +msgstr "Դուք մուտք չեք գործել, հետևաբար չեք կարող տեսնել այս էջը։" + +#: .\cookbook\helper\permission_helper.py:161 +#: .\cookbook\helper\permission_helper.py:177 +#: .\cookbook\helper\permission_helper.py:192 .\cookbook\views\delete.py:146 +msgid "You cannot interact with this object as it is not owned by you!" +msgstr "Դուք չեք կարող փոփոխել այս օբյեկտը, որովհետև այն չի պատկանում ձեզ։" + +#: .\cookbook\helper\recipe_url_import.py:39 +msgid "The requested site provided malformed data and cannot be read." +msgstr "Հարցված կայքը տրամադրեց վատ ձևավորված տվյալներ և չի կարող կարդացվել։" + +#: .\cookbook\helper\recipe_url_import.py:53 +msgid "" +"The requested site does not provide any recognized data format to import the" +" recipe from." +msgstr "" +"Հարցված կայքը չի տրամադրում որևէ ճանաչելի տվյալ բաղադրատոմսը ներմուծելու " +"համար։" + +#: .\cookbook\helper\recipe_url_import.py:177 +msgid "Imported from" +msgstr "Ներմուծվել է՝" + +#: .\cookbook\integration\integration.py:97 +msgid "" +"Importer expected a .zip file. Did you choose the correct importer type for " +"your data ?" +msgstr "" +"Ներմուծողն ակնկալում էր .zip ֆայլ։ Արդյո՞ք ձեր ֆայլին համապատասխանող ճիշտ " +"տեսակի ներմուծող եք ընտրել։" + +#: .\cookbook\integration\safron.py:23 +#: .\cookbook\templates\forms\edit_internal_recipe.html:65 +#: .\cookbook\templates\include\log_cooking.html:16 +#: .\cookbook\templates\url_import.html:65 +msgid "Servings" +msgstr "Չափաբաժիններ" + +#: .\cookbook\integration\safron.py:25 +msgid "Waiting time" +msgstr "Սպասման տևողություն" + +#: .\cookbook\integration\safron.py:27 +#: .\cookbook\templates\forms\edit_internal_recipe.html:59 +msgid "Preparation Time" +msgstr "Պատրաստման տևողություն" + +#: .\cookbook\integration\safron.py:29 .\cookbook\templates\base.html:67 +#: .\cookbook\templates\forms\ingredients.html:7 +#: .\cookbook\templates\index.html:7 +msgid "Cookbook" +msgstr "Խոհարարական գիրք " + +#: .\cookbook\integration\safron.py:31 +msgid "Section" +msgstr "Բաժին" + +#: .\cookbook\migrations\0047_auto_20200602_1133.py:12 +msgid "Breakfast" +msgstr "Նախաճաշ" + +#: .\cookbook\migrations\0047_auto_20200602_1133.py:17 +msgid "Lunch" +msgstr "Ճաշ" + +#: .\cookbook\migrations\0047_auto_20200602_1133.py:22 +msgid "Dinner" +msgstr "Ընթրիք" + +#: .\cookbook\migrations\0047_auto_20200602_1133.py:27 +msgid "Other" +msgstr "Այլ" + +#: .\cookbook\models.py:77 .\cookbook\templates\shopping_list.html:48 +msgid "Search" +msgstr "Փնտրել" + +#: .\cookbook\models.py:78 .\cookbook\templates\base.html:81 +#: .\cookbook\templates\meal_plan.html:5 .\cookbook\views\delete.py:165 +#: .\cookbook\views\edit.py:216 .\cookbook\views\new.py:189 +msgid "Meal-Plan" +msgstr "Ճաշացուցակ" + +#: .\cookbook\models.py:79 .\cookbook\templates\base.html:78 +msgid "Books" +msgstr "Գրքեր" + +#: .\cookbook\models.py:86 +msgid "Small" +msgstr "Փոքր" + +#: .\cookbook\models.py:86 +msgid "Large" +msgstr "Մեծ" + +#: .\cookbook\models.py:242 +#: .\cookbook\templates\forms\edit_internal_recipe.html:198 +msgid "Text" +msgstr "Տեքստ" + +#: .\cookbook\models.py:242 +#: .\cookbook\templates\forms\edit_internal_recipe.html:199 +msgid "Time" +msgstr "Ժամանակ" + +#: .\cookbook\tables.py:35 .\cookbook\templates\books.html:36 +#: .\cookbook\templates\generic\edit_template.html:6 +#: .\cookbook\templates\generic\edit_template.html:14 +#: .\cookbook\templates\meal_plan.html:281 +#: .\cookbook\templates\recipes_table.html:77 +#: .\cookbook\templates\shopping_list.html:33 +msgid "Edit" +msgstr "Խմբագրել" + +#: .\cookbook\tables.py:124 .\cookbook\tables.py:147 +#: .\cookbook\templates\books.html:38 +#: .\cookbook\templates\generic\delete_template.html:5 +#: .\cookbook\templates\generic\delete_template.html:13 +#: .\cookbook\templates\generic\edit_template.html:27 +#: .\cookbook\templates\meal_plan.html:277 +msgid "Delete" +msgstr "Ջնջել" + +#: .\cookbook\tables.py:144 +msgid "Link" +msgstr "Հղում" + +#: .\cookbook\templates\404.html:5 +msgid "404 Error" +msgstr "Սխալ 404" + +#: .\cookbook\templates\404.html:18 +msgid "The page you are looking for could not be found." +msgstr "Ձեր փնտրած էջը հնարավոր չէ գտնել։" + +#: .\cookbook\templates\404.html:33 +msgid "Take me Home" +msgstr "Գնալ տուն" + +#: .\cookbook\templates\404.html:35 +msgid "Report a Bug" +msgstr "Զեկուցել սխալի մասին" + +#: .\cookbook\templates\account\login.html:7 +#: .\cookbook\templates\base.html:166 +msgid "Login" +msgstr "Մուտք" + +#: .\cookbook\templates\account\login.html:13 +#: .\cookbook\templates\account\login.html:28 +msgid "Sign In" +msgstr "Մուտք գործել" + +#: .\cookbook\templates\account\login.html:38 +msgid "Social Login" +msgstr "Մուտք Սոցիալական էջով" + +#: .\cookbook\templates\account\login.html:39 +msgid "You can use any of the following providers to sign in." +msgstr "" +"Դուք կարող եք օգտագործել հետևյալ պրովայդերներից ցանկացածը մուտք գործելու " +"համար։" + +#: .\cookbook\templates\account\logout.html:5 +#: .\cookbook\templates\account\logout.html:9 +#: .\cookbook\templates\account\logout.html:18 +msgid "Sign Out" +msgstr "Դուրս գալ" + +#: .\cookbook\templates\account\logout.html:11 +msgid "Are you sure you want to sign out?" +msgstr "Համոզվա՞ծ եք, որ ցանկանում եք դուրս գալ" + +#: .\cookbook\templates\account\password_reset.html:5 +#: .\cookbook\templates\account\password_reset_done.html:5 +msgid "Password Reset" +msgstr "Գաղտնաբառի վերականգնում" + +#: .\cookbook\templates\account\password_reset.html:9 +#: .\cookbook\templates\account\password_reset_done.html:9 +msgid "Password reset is not implemented for the time being!" +msgstr "Գաղտնաբառի վերականգնում առայժմ իրականացված չէ" + +#: .\cookbook\templates\account\signup.html:5 +msgid "Register" +msgstr "Գրանցվել" + +#: .\cookbook\templates\account\signup.html:9 +msgid "Create your Account" +msgstr "Ստեղծեք ձեր հաշիվը" + +#: .\cookbook\templates\account\signup.html:14 +msgid "Create User" +msgstr "Ստեղծել օգտատեր" + +#: .\cookbook\templates\api_info.html:5 .\cookbook\templates\base.html:156 +#: .\cookbook\templates\rest_framework\api.html:11 +msgid "API Documentation" +msgstr "API-ի փաստաթղթեր" + +#: .\cookbook\templates\base.html:74 +msgid "Utensils" +msgstr "Գործիքակազմ" + +#: .\cookbook\templates\base.html:84 +msgid "Shopping" +msgstr "Գնումներ" + +#: .\cookbook\templates\base.html:98 .\cookbook\views\delete.py:84 +#: .\cookbook\views\edit.py:83 .\cookbook\views\lists.py:26 +#: .\cookbook\views\new.py:62 +msgid "Keyword" +msgstr "Բանալի բառ" + +#: .\cookbook\templates\base.html:100 +msgid "Batch Edit" +msgstr "Խմբային խմբագրում" + +#: .\cookbook\templates\base.html:105 +msgid "Storage Data" +msgstr "Պահոցի տվյալներ" + +#: .\cookbook\templates\base.html:109 +msgid "Storage Backends" +msgstr "Պահոցի բեքենդեր" + +#: .\cookbook\templates\base.html:111 +msgid "Configure Sync" +msgstr "Կարգավորել սինքրոնիզացիան" + +#: .\cookbook\templates\base.html:113 +msgid "Discovered Recipes" +msgstr "Հայտնաբերված բաղադրատոմսեր" + +#: .\cookbook\templates\base.html:115 +msgid "Discovery Log" +msgstr "Բացահայտումների մատյան" + +#: .\cookbook\templates\base.html:117 .\cookbook\templates\stats.html:10 +msgid "Statistics" +msgstr "Վիճակագրություն " + +#: .\cookbook\templates\base.html:119 +msgid "Units & Ingredients" +msgstr "Միավորներ և բաղադրիչներ" + +#: .\cookbook\templates\base.html:121 +msgid "Import Recipe" +msgstr "Ներմուծել բաղադրատոմս" + +#: .\cookbook\templates\base.html:140 .\cookbook\templates\settings.html:6 +#: .\cookbook\templates\settings.html:16 +msgid "Settings" +msgstr "Կարգավորումներ" + +#: .\cookbook\templates\base.html:142 .\cookbook\templates\history.html:6 +#: .\cookbook\templates\history.html:14 +msgid "History" +msgstr "Պատմություն" + +#: .\cookbook\templates\base.html:146 .\cookbook\templates\system.html:13 +msgid "System" +msgstr "Համակարգ" + +#: .\cookbook\templates\base.html:148 +msgid "Admin" +msgstr "Ադմինիստրատոր" + +#: .\cookbook\templates\base.html:152 +msgid "Markdown Guide" +msgstr "Markdown-ի ուղեցույց" + +#: .\cookbook\templates\base.html:154 +msgid "GitHub" +msgstr "GitHub" + +#: .\cookbook\templates\base.html:158 +msgid "API Browser" +msgstr "API բրաուզեր" + +#: .\cookbook\templates\base.html:161 +msgid "Logout" +msgstr "Դուրս գալ" + +#: .\cookbook\templates\batch\edit.html:6 +msgid "Batch edit Category" +msgstr "Կատեգորիաների խմբային խմբագրում" + +#: .\cookbook\templates\batch\edit.html:15 +msgid "Batch edit Recipes" +msgstr "Բաղադրատոմսերի խմբային խմբագրում" + +#: .\cookbook\templates\batch\edit.html:20 +msgid "Add the specified keywords to all recipes containing a word" +msgstr "" +"Ավելացնել նշված բանալի բառերը բոլոր բաղադրատոմսերին, որոնք պարունակում են " +"բառ" + +#: .\cookbook\templates\batch\monitor.html:6 .\cookbook\views\edit.py:66 +msgid "Sync" +msgstr "Սինքրոնիզացնել" + +#: .\cookbook\templates\batch\monitor.html:10 +msgid "Manage watched Folders" +msgstr "Կարգավորել դիտվող թղթապանակները" + +#: .\cookbook\templates\batch\monitor.html:14 +msgid "" +"On this Page you can manage all storage folder locations that should be " +"monitored and synced." +msgstr "" +"Այս էջում կարող եք կարգավորել այն պահպաման թղթապանակները, որոնք պետք է " +"վերահսկվեն և սինքրոնիզացվեն։" + +#: .\cookbook\templates\batch\monitor.html:16 +msgid "The path must be in the following format" +msgstr "Ուղին պետք է լինի հետևյալ ձևաչափով՝" + +#: .\cookbook\templates\batch\monitor.html:27 +msgid "Sync Now!" +msgstr "Սինքրոնիզացնել հիմա։" + +#: .\cookbook\templates\batch\waiting.html:4 +#: .\cookbook\templates\batch\waiting.html:10 +msgid "Importing Recipes" +msgstr "Բաղադրատոմսերի ներմուծում" + +#: .\cookbook\templates\batch\waiting.html:23 +msgid "" +"This can take a few minutes, depending on the number of recipes in sync, " +"please wait." +msgstr "" +"Կախված սինքրոնիզացվող բաղադրատոմսերի քանակից, պրոցեսը կարող է տևել մի քանի " +"րոպե, խնդրում ենք սպասել։" + +#: .\cookbook\templates\books.html:5 .\cookbook\templates\books.html:11 +msgid "Recipe Books" +msgstr "Բաղադրատոմսերի գիրք" + +#: .\cookbook\templates\books.html:15 +msgid "New Book" +msgstr "Նոր գիրք" + +#: .\cookbook\templates\books.html:27 .\cookbook\templates\recipe_view.html:26 +msgid "by" +msgstr "Հեղինակ" + +#: .\cookbook\templates\books.html:34 +msgid "Toggle Recipes" +msgstr "Փոխանջատել Բաղադրատոմսերը" + +#: .\cookbook\templates\books.html:54 +#: .\cookbook\templates\meal_plan_entry.html:48 +#: .\cookbook\templates\recipes_table.html:59 +msgid "Last cooked" +msgstr "Վերջին պատրաստումը" + +#: .\cookbook\templates\books.html:71 +msgid "There are no recipes in this book yet." +msgstr "Այս գրքում բաղադրատոմսեր դեռ չկան։" + +#: .\cookbook\templates\export.html:6 .\cookbook\templates\test2.html:6 +msgid "Export Recipes" +msgstr "Արտահանել բաղադրատոմսերը" + +#: .\cookbook\templates\export.html:14 .\cookbook\templates\export.html:20 +#: .\cookbook\templates\shopping_list.html:345 +#: .\cookbook\templates\test2.html:14 .\cookbook\templates\test2.html:20 +msgid "Export" +msgstr "Արտահանել" + +#: .\cookbook\templates\forms\edit_import_recipe.html:5 +#: .\cookbook\templates\forms\edit_import_recipe.html:9 +msgid "Import new Recipe" +msgstr "Ներմուծել նոր բաղադրատոմս" + +#: .\cookbook\templates\forms\edit_import_recipe.html:14 +#: .\cookbook\templates\forms\edit_internal_recipe.html:389 +#: .\cookbook\templates\forms\edit_internal_recipe.html:421 +#: .\cookbook\templates\generic\edit_template.html:23 +#: .\cookbook\templates\generic\new_template.html:23 +#: .\cookbook\templates\include\log_cooking.html:28 +#: .\cookbook\templates\meal_plan.html:325 +#: .\cookbook\templates\settings.html:28 .\cookbook\templates\settings.html:35 +#: .\cookbook\templates\settings.html:58 .\cookbook\templates\settings.html:73 +#: .\cookbook\templates\shopping_list.html:347 +msgid "Save" +msgstr "Պահպանել" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:7 +#: .\cookbook\templates\forms\edit_internal_recipe.html:34 +msgid "Edit Recipe" +msgstr "Խմբագրել բաղադրատոմսը" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:62 +msgid "Waiting Time" +msgstr "Սպասման տևողություն" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:68 +msgid "Servings Text" +msgstr "Չափաբաժինների տեքստ" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:79 +msgid "Select Keywords" +msgstr "Ընտրել բանալի բառեր" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:93 +msgid "Description" +msgstr "Նկարագրություն" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:108 +msgid "Nutrition" +msgstr "Սննդայնություն" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:112 +#: .\cookbook\templates\forms\edit_internal_recipe.html:162 +msgid "Delete Step" +msgstr "Ջնջել քայլը" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:116 +msgid "Calories" +msgstr "Կալորիաներ" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:119 +msgid "Carbohydrates" +msgstr "Ածխաջրեր" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:122 +msgid "Fats" +msgstr "Ճարպեր" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:124 +msgid "Proteins" +msgstr "Սպիտակուցներ" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:146 +#: .\cookbook\templates\forms\edit_internal_recipe.html:454 +msgid "Step" +msgstr "Քայլ" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:167 +msgid "Show as header" +msgstr "Ցույց տալ որպես խորագիր" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:173 +msgid "Hide as header" +msgstr "Թաքցնել որպես խորագիր" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:178 +msgid "Move Up" +msgstr "Բարձրացնել" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:183 +msgid "Move Down" +msgstr "Իջեցնել" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:192 +msgid "Step Name" +msgstr "Քայլի անվանում" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:196 +msgid "Step Type" +msgstr "Քայլի տեսակ" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:207 +msgid "Step time in Minutes" +msgstr "Քայլի տևողությունը րոպեներով" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:261 +#: .\cookbook\templates\shopping_list.html:181 +msgid "Select Unit" +msgstr "Ընտրել միավորը" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:262 +#: .\cookbook\templates\forms\edit_internal_recipe.html:286 +#: .\cookbook\templates\shopping_list.html:182 +#: .\cookbook\templates\shopping_list.html:204 +msgid "Create" +msgstr "Ստեղծել" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:263 +#: .\cookbook\templates\forms\edit_internal_recipe.html:287 +#: .\cookbook\templates\shopping_list.html:183 +#: .\cookbook\templates\shopping_list.html:205 +#: .\cookbook\templates\shopping_list.html:235 +#: .\cookbook\templates\shopping_list.html:259 +#: .\cookbook\templates\url_import.html:105 +#: .\cookbook\templates\url_import.html:137 +msgid "Select" +msgstr "Ընտրել" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:285 +#: .\cookbook\templates\shopping_list.html:203 +msgid "Select Food" +msgstr "Ընտրել սննդամթերք" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:302 +#: .\cookbook\templates\meal_plan.html:256 +#: .\cookbook\templates\url_import.html:152 +msgid "Note" +msgstr "Նոթեր" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:319 +msgid "Delete Ingredient" +msgstr "Ջնջել բաղադրիչը" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:325 +msgid "Make Header" +msgstr "Ստեղծել Խորագիր" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:331 +msgid "Make Ingredient" +msgstr "Ստեղծել բաղդրիչ" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:337 +msgid "Disable Amount" +msgstr "Անջատել քանակը" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:343 +msgid "Enable Amount" +msgstr "Միացնել քանակը" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:348 +msgid "Copy Template Reference" +msgstr "Պատճենել ձևանմուշի հղումը" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:374 +#: .\cookbook\templates\url_import.html:177 +msgid "Instructions" +msgstr "Հրահանգներ" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:387 +#: .\cookbook\templates\forms\edit_internal_recipe.html:418 +msgid "Save & View" +msgstr "Պահպանել և Դիտել" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:391 +#: .\cookbook\templates\forms\edit_internal_recipe.html:424 +msgid "Add Step" +msgstr "Ավելացնել քայլ" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:394 +#: .\cookbook\templates\forms\edit_internal_recipe.html:428 +msgid "Add Nutrition" +msgstr "Ավելացնել Սննդայնություն" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:396 +#: .\cookbook\templates\forms\edit_internal_recipe.html:430 +msgid "Remove Nutrition" +msgstr "Հեռացնել Սննդայնություն" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:398 +#: .\cookbook\templates\forms\edit_internal_recipe.html:433 +msgid "View Recipe" +msgstr "Դիտել բաղադրատոմսը" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:400 +#: .\cookbook\templates\forms\edit_internal_recipe.html:435 +msgid "Delete Recipe" +msgstr "Ջնջել բաղադրատոմսը" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:441 +msgid "Steps" +msgstr "Քայլեր" + +#: .\cookbook\templates\forms\ingredients.html:15 +msgid "Edit Ingredients" +msgstr "Խմբագրել բաղադրիչները" + +#: .\cookbook\templates\forms\ingredients.html:16 +msgid "" +"\n" +" The following form can be used if, accidentally, two (or more) units or ingredients where created that should be\n" +" the same.\n" +" It merges two units or ingredients and updates all recipes using them.\n" +" " +msgstr "" +"\n" +" Հետևյալ բլանկը կարող է օգտագործվել, եթե երկու (կամ ավելի) միավորներ կամ բաղադրիչներ ստեղծվել են սխալմամբ, սակայն պետք է լինեն \n" +" նույնը։\n" +" Սա միավորում է երկու միավորները կամ բաղադրիչները և թարմացնում դրանք օգտագործող բոլոր բաղադրատոմսերը։ \n" +" " + +#: .\cookbook\templates\forms\ingredients.html:24 +#: .\cookbook\templates\stats.html:26 +msgid "Units" +msgstr "Միավորներ" + +#: .\cookbook\templates\forms\ingredients.html:26 +msgid "Are you sure that you want to merge these two units?" +msgstr "Համոզվա՞ծ եք, որ ցանկանում եք միավորել այս երկու միավորները։" + +#: .\cookbook\templates\forms\ingredients.html:31 +#: .\cookbook\templates\forms\ingredients.html:40 +msgid "Merge" +msgstr "Միավորել" + +#: .\cookbook\templates\forms\ingredients.html:36 +msgid "Are you sure that you want to merge these two ingredients?" +msgstr "Համոզվա՞ծ եք, որ ցանկանում եք միավորել այս երկու բաղադրիչները։" + +#: .\cookbook\templates\generic\delete_template.html:18 +#, python-format +msgid "Are you sure you want to delete the %(title)s: %(object)s " +msgstr "Համոզվա՞ծ եք, որ ուզում եք ջնջել %(title)s: %(object)s " + +#: .\cookbook\templates\generic\delete_template.html:21 +msgid "Confirm" +msgstr "Հաստատել" + +#: .\cookbook\templates\generic\edit_template.html:30 +msgid "View" +msgstr "Դիտել" + +#: .\cookbook\templates\generic\edit_template.html:34 +msgid "Delete original file" +msgstr "Ջնջել բնօրինակ ֆայլը" + +#: .\cookbook\templates\generic\list_template.html:6 +#: .\cookbook\templates\generic\list_template.html:12 +msgid "List" +msgstr "Ցուցակ" + +#: .\cookbook\templates\generic\list_template.html:25 +msgid "Filter" +msgstr "Ֆիլտր" + +#: .\cookbook\templates\generic\list_template.html:30 +msgid "Import all" +msgstr "Ներմուծել բոլորը" + +#: .\cookbook\templates\generic\new_template.html:6 +#: .\cookbook\templates\generic\new_template.html:14 +#: .\cookbook\templates\meal_plan.html:323 +msgid "New" +msgstr "Նոր" + +#: .\cookbook\templates\generic\table_template.html:76 +#: .\cookbook\templates\recipes_table.html:112 +msgid "previous" +msgstr "նախորդ" + +#: .\cookbook\templates\generic\table_template.html:98 +#: .\cookbook\templates\recipes_table.html:134 +msgid "next" +msgstr "հաջորդ" + +#: .\cookbook\templates\history.html:20 +msgid "View Log" +msgstr "Դիտումների մատյան" + +#: .\cookbook\templates\history.html:24 +msgid "Cook Log" +msgstr "Եփելու մատյան" + +#: .\cookbook\templates\import.html:6 .\cookbook\templates\test.html:6 +msgid "Import Recipes" +msgstr "Ներմուծել բաղադրատոմսերը" + +#: .\cookbook\templates\import.html:14 .\cookbook\templates\import.html:20 +#: .\cookbook\templates\test.html:14 .\cookbook\templates\test.html:20 +#: .\cookbook\templates\url_import.html:211 .\cookbook\views\delete.py:60 +#: .\cookbook\views\edit.py:182 +msgid "Import" +msgstr "Ներմուծել" + +#: .\cookbook\templates\include\log_cooking.html:7 +msgid "Log Recipe Cooking" +msgstr "Գրանցել բաղադրատոմսի օգտագործում" + +#: .\cookbook\templates\include\log_cooking.html:13 +msgid "All fields are optional and can be left empty." +msgstr "Բոլոր դաշտերը կամավոր են և կարող են դատարկ թողնվել" + +#: .\cookbook\templates\include\log_cooking.html:19 +msgid "Rating" +msgstr "Վարկանիշ" + +#: .\cookbook\templates\include\log_cooking.html:27 +#: .\cookbook\templates\include\recipe_open_modal.html:18 +#: .\cookbook\templates\meal_plan.html:283 +#: .\cookbook\templates\meal_plan.html:327 +#: .\cookbook\templates\meal_plan.html:366 +msgid "Close" +msgstr "Փակել" + +#: .\cookbook\templates\include\recipe_open_modal.html:7 +#: .\cookbook\templates\meal_plan.html:247 .\cookbook\views\delete.py:28 +#: .\cookbook\views\edit.py:262 .\cookbook\views\new.py:40 +msgid "Recipe" +msgstr "Բաղադրատոմս" + +#: .\cookbook\templates\include\recipe_open_modal.html:32 +msgid "Open Recipe" +msgstr "Բացել բաղադրատոմսը" + +#: .\cookbook\templates\include\storage_backend_warning.html:4 +msgid "Security Warning" +msgstr "Անվտանգության զգուշացում" + +#: .\cookbook\templates\include\storage_backend_warning.html:5 +msgid "" +"\n" +" The Password and Token field are stored as plain text inside the database.\n" +" This is necessary because they are needed to make API requests, but it also increases the risk of\n" +" someone stealing it.
\n" +" To limit the possible damage tokens or accounts with limited access can be used.\n" +" " +msgstr "" +"\n" +" Գաղտնաբառ և ժետոն դաշտերը պահպանվում են որպես հասարակ տեքստ շտեմարանի մեջ։\n" +" Սա անհրաժեշտ է, որովհետև դրանք օգտագործվում են API հարցումների համար, բայց դա նաև ավելացնում է ռիսկը, որ \n" +" ինչ-որ մեկը կգօողանա դրանք։
\n" +" Վնասը սահմանափակելու համար կարող են կիրառվել սահմանափակ թույլտվությամբ ժետոններ կամ հաշիվներ։\n" +" " + +#: .\cookbook\templates\index.html:29 +msgid "Search recipe ..." +msgstr "Փնտրել բաղադրատոմս" + +#: .\cookbook\templates\index.html:44 +msgid "New Recipe" +msgstr "Նոր Բաղադրատոմս" + +#: .\cookbook\templates\index.html:47 +msgid "Website Import" +msgstr "Ներմուծում վեբկայքից" + +#: .\cookbook\templates\index.html:53 +msgid "Advanced Search" +msgstr "Հավելյալ որոնում" + +#: .\cookbook\templates\index.html:57 +msgid "Reset Search" +msgstr "Զրոյացնել որոնումը" + +#: .\cookbook\templates\index.html:85 +msgid "Last viewed" +msgstr "Վերջին դիտածը" + +#: .\cookbook\templates\index.html:87 .\cookbook\templates\meal_plan.html:178 +#: .\cookbook\templates\stats.html:22 +msgid "Recipes" +msgstr "Բաղադրատոմսեր" + +#: .\cookbook\templates\index.html:94 +msgid "Log in to view recipes" +msgstr "Մուտք գործեք բաղադրատոմսերը դիտելու համար" + +#: .\cookbook\templates\markdown_info.html:5 +#: .\cookbook\templates\markdown_info.html:13 +msgid "Markdown Info" +msgstr "Markdown-ի մասին տեղեկություն" + +#: .\cookbook\templates\markdown_info.html:14 +msgid "" +"\n" +" Markdown is lightweight markup language that can be used to format plain text easily.\n" +" This site uses the Python Markdown library to\n" +" convert your text into nice looking HTML. Its full markdown documentation can be found\n" +" here.\n" +" An incomplete but most likely sufficient documentation can be found below.\n" +" " +msgstr "" +"\n" +" Markdown-ը թեթև markup լեզու է, որը կարող է օգտագործվել պարզ տեքստը ձևավորելու համար։\n" +" Այս կայքն օգտագործում էPython Markdown գրադարանը\n" +" ձեր տեքստը գեղեցիկ HTML-ի ձևափոխելու համար։ Markdown-ի ամբողջական ուղեցույցերը կարող եք գտնել\n" +" այստեղ։\n" +" Ոչ լրիվ, բայց հավանաբար բավարար ուղեցույցեր կարող եք գտնել ներքևում։\n" +" " + +#: .\cookbook\templates\markdown_info.html:25 +msgid "Headers" +msgstr "Խորագրեր" + +#: .\cookbook\templates\markdown_info.html:54 +msgid "Formatting" +msgstr "Ձևավորում" + +#: .\cookbook\templates\markdown_info.html:56 +#: .\cookbook\templates\markdown_info.html:72 +msgid "Line breaks are inserted by adding two spaces after the end of a line" +msgstr "Տողերի տրոհում կարելի է տեղադրել տողի վերջում ավելացնելող երկու բացատ" + +#: .\cookbook\templates\markdown_info.html:57 +#: .\cookbook\templates\markdown_info.html:73 +msgid "or by leaving a blank line inbetween." +msgstr "կամ դատարկ տող թողնելով։" + +#: .\cookbook\templates\markdown_info.html:59 +#: .\cookbook\templates\markdown_info.html:74 +msgid "This text is bold" +msgstr "Այս տեքստը թավ տառատեսակով է" + +#: .\cookbook\templates\markdown_info.html:60 +#: .\cookbook\templates\markdown_info.html:75 +msgid "This text is italic" +msgstr "Այս տեքստը շեղատառ է" + +#: .\cookbook\templates\markdown_info.html:61 +#: .\cookbook\templates\markdown_info.html:77 +msgid "Blockquotes are also possible" +msgstr "Blockquote-ներ նույնպես հնարավոր են" + +#: .\cookbook\templates\markdown_info.html:84 +msgid "Lists" +msgstr "Ցուցակներ" + +#: .\cookbook\templates\markdown_info.html:85 +msgid "" +"Lists can ordered or unorderd. It is important to leave a blank line " +"before the list!" +msgstr "" +"Ցուցակները կարող են լինել կարգավորված կամ անկարգավորված։ Շատկարևոր է " +"թողնել դատարկ տող ցուցաից առաջ։" + +#: .\cookbook\templates\markdown_info.html:87 +#: .\cookbook\templates\markdown_info.html:108 +msgid "Ordered List" +msgstr "Կարգավորված ցուցակ" + +#: .\cookbook\templates\markdown_info.html:89 +#: .\cookbook\templates\markdown_info.html:90 +#: .\cookbook\templates\markdown_info.html:91 +#: .\cookbook\templates\markdown_info.html:110 +#: .\cookbook\templates\markdown_info.html:111 +#: .\cookbook\templates\markdown_info.html:112 +msgid "unordered list item" +msgstr "չկարգավորված ցուցակի իր" + +#: .\cookbook\templates\markdown_info.html:93 +#: .\cookbook\templates\markdown_info.html:114 +msgid "Unordered List" +msgstr "Չկարգավորված ցուցակ" + +#: .\cookbook\templates\markdown_info.html:95 +#: .\cookbook\templates\markdown_info.html:96 +#: .\cookbook\templates\markdown_info.html:97 +#: .\cookbook\templates\markdown_info.html:116 +#: .\cookbook\templates\markdown_info.html:117 +#: .\cookbook\templates\markdown_info.html:118 +msgid "ordered list item" +msgstr "կարգավորված ցուցակի իր" + +#: .\cookbook\templates\markdown_info.html:125 +msgid "Images & Links" +msgstr "Նկարներ և հղումներ" + +#: .\cookbook\templates\markdown_info.html:126 +msgid "" +"Links can be formatted with Markdown. This application also allows to paste " +"links directly into markdown fields without any formatting." +msgstr "" +"Հղումները կարող են խմբագրվել Markdown-ի օգնությամբ։ Այս ծրագրում հնարավոր է " +"անմիջապես տեղադրել հղումներ markdown դաշտում առանց որևէ խմբագրման։" + +#: .\cookbook\templates\markdown_info.html:132 +#: .\cookbook\templates\markdown_info.html:145 +msgid "This will become an image" +msgstr "Սա կդառնա նկար" + +#: .\cookbook\templates\markdown_info.html:152 +msgid "Tables" +msgstr "Աղյուսակներ" + +#: .\cookbook\templates\markdown_info.html:153 +msgid "" +"Markdown tables are hard to create by hand. It is recommended to use a table" +" editor like this one." +msgstr "" +"Markdown աղյուսակները դժվար է ստեղծել ձեռքով։ Խորհուրդ է տրվում օգտագործել " +"աղյուսակների խմբագիր, օրինակ այս մեկը։" + +#: .\cookbook\templates\markdown_info.html:155 +#: .\cookbook\templates\markdown_info.html:157 +#: .\cookbook\templates\markdown_info.html:171 +#: .\cookbook\templates\markdown_info.html:177 +msgid "Table" +msgstr "Աղյուսակ" + +#: .\cookbook\templates\markdown_info.html:155 +#: .\cookbook\templates\markdown_info.html:172 +msgid "Header" +msgstr "Խորագիր" + +#: .\cookbook\templates\markdown_info.html:157 +#: .\cookbook\templates\markdown_info.html:178 +msgid "Cell" +msgstr "Բջիջ" + +#: .\cookbook\templates\meal_plan.html:101 +msgid "New Entry" +msgstr "Նոր գրառում" + +#: .\cookbook\templates\meal_plan.html:113 +#: .\cookbook\templates\shopping_list.html:52 +msgid "Search Recipe" +msgstr "Փնտրել բաղադրատոմս" + +#: .\cookbook\templates\meal_plan.html:139 +msgid "Title" +msgstr "Վերնագիր" + +#: .\cookbook\templates\meal_plan.html:141 +msgid "Note (optional)" +msgstr "Նոթեր (կամավոր)" + +#: .\cookbook\templates\meal_plan.html:143 +msgid "" +"You can use markdown to format this field. See the docs " +"here" +msgstr "" +"Դուք կարող եք օգտագործել markdown-ն այս դաշտը ձևավորելու համար. Տեսեք փաստաթղթերն այստեղ" + +#: .\cookbook\templates\meal_plan.html:147 +#: .\cookbook\templates\meal_plan.html:251 +msgid "Serving Count" +msgstr "Չափաբաժինների քանակ" + +#: .\cookbook\templates\meal_plan.html:153 +msgid "Create only note" +msgstr "Ստեղծել միայն նոթեր" + +#: .\cookbook\templates\meal_plan.html:168 +#: .\cookbook\templates\shopping_list.html:7 +#: .\cookbook\templates\shopping_list.html:29 +#: .\cookbook\templates\shopping_list.html:693 +msgid "Shopping List" +msgstr "Գնումների ցուցակ" + +#: .\cookbook\templates\meal_plan.html:172 +msgid "Shopping list currently empty" +msgstr "Գնումների ցուցակը դատարկ է" + +#: .\cookbook\templates\meal_plan.html:175 +msgid "Open Shopping List" +msgstr "Բացել գնումների ցուցակը" + +#: .\cookbook\templates\meal_plan.html:189 +msgid "Plan" +msgstr "Պլան" + +#: .\cookbook\templates\meal_plan.html:196 +msgid "Number of Days" +msgstr "Օրերի քանակ" + +#: .\cookbook\templates\meal_plan.html:206 +msgid "Weekday offset" +msgstr "Աշխատանքային օրերի փոխհատուցում" + +#: .\cookbook\templates\meal_plan.html:209 +msgid "" +"Number of days starting from the first day of the week to offset the default" +" view." +msgstr "" +"Շաբաթվա առաջին օրվանից հաշված օրերի քանակը, որը պետք է փոխհատուցել լռելյայն " +"էջում" + +#: .\cookbook\templates\meal_plan.html:217 +#: .\cookbook\templates\meal_plan.html:294 +msgid "Edit plan types" +msgstr "Խմբագրել ճաշացուցակների տեսակները" + +#: .\cookbook\templates\meal_plan.html:219 +msgid "Show help" +msgstr "Ցուցադրել օգնություն" + +#: .\cookbook\templates\meal_plan.html:220 +msgid "Week iCal export" +msgstr "Շաբաթվա արտահանում iCal ձևաչափով" + +#: .\cookbook\templates\meal_plan.html:264 +#: .\cookbook\templates\meal_plan_entry.html:18 +msgid "Created by" +msgstr "Ստեղծող" + +#: .\cookbook\templates\meal_plan.html:270 +#: .\cookbook\templates\meal_plan_entry.html:20 +#: .\cookbook\templates\shopping_list.html:248 +msgid "Shared with" +msgstr "Ու՞մ հետ է կիսվել" + +#: .\cookbook\templates\meal_plan.html:280 +msgid "Add to Shopping" +msgstr "Ավելացնել գնումներին" + +#: .\cookbook\templates\meal_plan.html:323 +msgid "New meal type" +msgstr "Կերակրի նոր տեսակ" + +#: .\cookbook\templates\meal_plan.html:338 +msgid "Meal Plan Help" +msgstr "Ճաշացուցակի Օգնություն" + +#: .\cookbook\templates\meal_plan.html:344 +msgid "" +"\n" +"

The meal plan module allows planning of meals both with recipes and notes.

\n" +"

Simply select a recipe from the list of recently viewed recipes or search the one you\n" +" want and drag it to the desired plan position. You can also add a note and a title and\n" +" then drag the recipe to create a plan entry with a custom title and note. Creating only\n" +" Notes is possible by dragging the create note box into the plan.

\n" +"

Click on a recipe in order to open the detailed view. There you can also add it to the\n" +" shopping list. You can also add all recipes of a day to the shopping list by\n" +" clicking the shopping cart at the top of the table.

\n" +"

Since a common use case is to plan meals together you can define\n" +" users you want to share your plan with in the settings.\n" +"

\n" +"

You can also edit the types of meals you want to plan. If you share your plan with\n" +" someone with\n" +" different meals, their meal types will appear in your list as well. To prevent\n" +" duplicates (e.g. Other and Misc.)\n" +" name your meal types the same as the users you share your meals with and they will be\n" +" merged.

\n" +" " +msgstr "" +"\n" +"

Ճաշացուցակի մոդուլը թույլ է տալիս պլանավորել ճաշերը բաղադրատոմսերով և նոթերով։

\n" +"

Պարզապես ընտրեք բաղադրատոմս վերջերս դիտած բաղադրատոմսերի ցուցակից կամ փնտրեք այն բաղադրատոմսը,\n" +" որն ուզում եք և քաշեք ընտրված ճաշացուցակի դիրք։ Դուք կարող եք նաև ավելացնել նոթեր և վերնագիր, ապա\n" +" քաշեք բաղադրատոմսը ձեր ընտրած վերնագրով և նոթերով ցուցակ ստեղծելու համար։ Միայն\n" +" նոթեր ստեղծելը նույնպես հնարավոր է, եթե քաշեք «ստեղծել միայն նոթեր» պատուհանը դեպի ցուցակ։

\n" +"

Սեղմեք որևէ բաղադրատոմսի վրա մանրամասներով պատուհանը բացելու համար։ Այդտեղից կարող եք այն նաև ավելացնել\n" +" գնումների ցուցակ։ Դուք կարող եք նաև ավելացնել օրվա բոլոր բաղադրատոմսերը գնումների ցուցակ\n" +" սեղմելով գնումների սայլակի նշանի վրա։

\n" +"

Քանի որ ընդունված է ճաշեր պլանավորել միասին, դուք կարող եք կարգավորումներում հստակեցնել\n" +" օգտատերերին ում հետ ցանկանում եք կիսվել ձեր ցուցակով։\n" +"

\n" +"

Դուք կարող եք նաև խմբագրել ճաշերի տեսակը, որը ցանկանում եք պլանավորել։ Եթե կիսվեք ձեր պլանով\n" +" որևէ մեկի հետ, ով\n" +" ունի ուրիշ ճաշեր, նրանց ճաշերի տեսակները նույնպես կհայտնվեն ձեր ցուցակում։ Կրկնօրինակներից (օրինակ ընթրիք և ընթրիքներ)\n" +" խուսաբելու համար\n" +" օգտագործեք միևնույն ճաշի տեսակների անունն այն մարդկանց պես, ում հետ ցանկանում եք կիսվել և դրանք\n" +" կմիավորվեն։

\n" +" " + +#: .\cookbook\templates\meal_plan_entry.html:6 +msgid "Meal Plan View" +msgstr "Ճաշացուցակի Դիտման էջ" + +#: .\cookbook\templates\meal_plan_entry.html:50 +msgid "Never cooked before." +msgstr "Երբեք պատրաստված չէ" + +#: .\cookbook\templates\meal_plan_entry.html:76 +msgid "Other meals on this day" +msgstr "Նույն օրվա այլ ճաշեր" + +#: .\cookbook\templates\no_groups_info.html:5 +#: .\cookbook\templates\offline.html:6 +msgid "Offline" +msgstr "Ցանցից դուրս" + +#: .\cookbook\templates\no_groups_info.html:12 +msgid "No Permissions" +msgstr "Թույլտվություն չկա" + +#: .\cookbook\templates\no_groups_info.html:15 +msgid "" +"You do not have any groups and therefor cannot use this application. Please " +"contact your administrator." +msgstr "" +"Դուք չունեք որևէ խումբ և չեք կարող օգտագործել այս ծրագիրը։ Կապվեք ձեր " +"ադմինիստրատորի հետ։" + +#: .\cookbook\templates\offline.html:19 +msgid "You are currently offline!" +msgstr "Դուք ցանցից դուրս եք։" + +#: .\cookbook\templates\offline.html:20 +msgid "" +"The recipes listed below are available for offline viewing because you have " +"recently viewed them. Keep in mind that data might be outdated." +msgstr "" +"Ներքևում նշված բաղադրատոմսերը հասանելի են ցանցից դուրս դիտման համար, " +"որովհետև դուք դիտել եք դրանք վերջերս։ Հիշեք, որ տվյալները կարող են հնացած " +"լինել։" + +#: .\cookbook\templates\recipe_view.html:21 .\cookbook\templates\stats.html:47 +msgid "Comments" +msgstr "Մեկնաբանություններ" + +#: .\cookbook\templates\recipe_view.html:44 .\cookbook\views\delete.py:118 +#: .\cookbook\views\edit.py:162 +msgid "Comment" +msgstr "Մեկնաբանել" + +#: .\cookbook\templates\recipes_table.html:19 +#: .\cookbook\templates\recipes_table.html:23 +#: .\cookbook\templates\url_import.html:50 +msgid "Recipe Image" +msgstr "Բաղադրատոմսի նկար" + +#: .\cookbook\templates\recipes_table.html:46 +#: .\cookbook\templates\url_import.html:55 +msgid "Preparation time ca." +msgstr "Պատրաստման տևողություն" + +#: .\cookbook\templates\recipes_table.html:52 +#: .\cookbook\templates\url_import.html:60 +msgid "Waiting time ca." +msgstr "Սպասման տևողություն" + +#: .\cookbook\templates\recipes_table.html:55 +msgid "External" +msgstr "Արտաքին" + +#: .\cookbook\templates\recipes_table.html:81 +msgid "Log Cooking" +msgstr "Գրանցել եփել" + +#: .\cookbook\templates\rest_framework\api.html:5 +msgid "Recipe Home" +msgstr "Բաղադրատոմսի տուն" + +#: .\cookbook\templates\settings.html:22 +msgid "Account" +msgstr "Հաշիվ" + +#: .\cookbook\templates\settings.html:38 +msgid "Link social account" +msgstr "Կցել սոցիալական հաշիվ" + +#: .\cookbook\templates\settings.html:42 +msgid "Language" +msgstr "Լեզու" + +#: .\cookbook\templates\settings.html:67 +msgid "Style" +msgstr "Ոճ" + +#: .\cookbook\templates\settings.html:79 +msgid "API Token" +msgstr "API ժետոն" + +#: .\cookbook\templates\settings.html:80 +msgid "" +"You can use both basic authentication and token based authentication to " +"access the REST API." +msgstr "" +"Դուք կարող եք օգտագործել ինչպես հասարակ այնպես էլ ժետոնով նույնականացում " +"REST API-ին հասանելիության համար։" + +#: .\cookbook\templates\settings.html:92 +msgid "" +"Use the token as an Authorization header prefixed by the word token as shown" +" in the following examples:" +msgstr "" +"Օգտագործեք ժետոնը որպես Թույլտվության խորագիր, նախածանցված բառ ժետոնով, " +"ինչպես ցույց է տրված հետևյալ օրինակում․" + +#: .\cookbook\templates\settings.html:94 +msgid "or" +msgstr "կամ" + +#: .\cookbook\templates\setup.html:6 .\cookbook\templates\system.html:5 +msgid "Cookbook Setup" +msgstr "Խոհարարական գրքի կարգավորում" + +#: .\cookbook\templates\setup.html:14 +msgid "Setup" +msgstr "Կարգավորում" + +#: .\cookbook\templates\setup.html:15 +msgid "" +"To start using this application you must first create a superuser account." +msgstr "" +"Այս ծրագիրն օգտագործելու համար նախ պետք է ստեղծեք սուպեր-օգտատերի հաշիվ" + +#: .\cookbook\templates\setup.html:20 +msgid "Create Superuser account" +msgstr "Ստեղծել սուպեր-օգտատերի հաշիվ" + +#: .\cookbook\templates\shopping_list.html:75 +msgid "Shopping Recipes" +msgstr "Գնումների բաղադրատոմսեր" + +#: .\cookbook\templates\shopping_list.html:79 +msgid "No recipes selected" +msgstr "Բաղադրատոմս ընտրված չէ" + +#: .\cookbook\templates\shopping_list.html:145 +msgid "Entry Mode" +msgstr "Գրառման ռեժիմ" + +#: .\cookbook\templates\shopping_list.html:153 +msgid "Add Entry" +msgstr "Ավելացնել գրառում" + +#: .\cookbook\templates\shopping_list.html:168 +msgid "Amount" +msgstr "Քանակ" + +#: .\cookbook\templates\shopping_list.html:224 +msgid "Supermarket" +msgstr "Սուպերմարկետ" + +#: .\cookbook\templates\shopping_list.html:234 +msgid "Select Supermarket" +msgstr "Ընտրել Սուպերմարկետ" + +#: .\cookbook\templates\shopping_list.html:258 +msgid "Select User" +msgstr "Ընտրել օգտատեր" + +#: .\cookbook\templates\shopping_list.html:277 +msgid "Finished" +msgstr "Ավարտված է" + +#: .\cookbook\templates\shopping_list.html:290 +msgid "You are offline, shopping list might not syncronize." +msgstr "Դուք ցանցից դուրս եք, գնումների ցուցակը կարող է չսինքրոնիզացվել։" + +#: .\cookbook\templates\shopping_list.html:353 +msgid "Copy/Export" +msgstr "Պատճենել/Արտահանել" + +#: .\cookbook\templates\shopping_list.html:357 +msgid "List Prefix" +msgstr "Ցուցակի նախածանց" + +#: .\cookbook\templates\shopping_list.html:696 +msgid "There was an error creating a resource!" +msgstr "Ռեսուրսը ստեղծելիս սխալ է գրանցվել" + +#: .\cookbook\templates\socialaccount\connections.html:4 +#: .\cookbook\templates\socialaccount\connections.html:7 +msgid "Account Connections" +msgstr "Հաշվի կապեր" + +#: .\cookbook\templates\socialaccount\connections.html:10 +msgid "" +"You can sign in to your account using any of the following third party\n" +" accounts:" +msgstr "" +"Դուք կարող եք մուտք գործել ձեր հաշիվ օգտագործելով հետևյալ երրորդ կողմի\n" +" հաշիվները․" + +#: .\cookbook\templates\socialaccount\connections.html:36 +msgid "Remove" +msgstr "Հեռացնել" + +#: .\cookbook\templates\socialaccount\connections.html:44 +msgid "" +"You currently have no social network accounts connected to this account." +msgstr "Դուք այս հաշվին կապված սոցիալական հաշիվներ չունեք " + +#: .\cookbook\templates\socialaccount\connections.html:47 +msgid "Add a 3rd Party Account" +msgstr "Ավելացնել 3րդ կողմի հաշիվ" + +#: .\cookbook\templates\stats.html:4 +msgid "Stats" +msgstr "Վիճակագրություն" + +#: .\cookbook\templates\stats.html:19 +msgid "Number of objects" +msgstr "Օբյեկտների քանակը" + +#: .\cookbook\templates\stats.html:30 +msgid "Recipe Imports" +msgstr "Բաղադրատոմսի ներմուծումներ" + +#: .\cookbook\templates\stats.html:38 +msgid "Objects stats" +msgstr "Օբյեկտների վիճակագրություն" + +#: .\cookbook\templates\stats.html:41 +msgid "Recipes without Keywords" +msgstr "Առանց բանալի բառերի բաղադրատոմսեր" + +#: .\cookbook\templates\stats.html:43 +msgid "External Recipes" +msgstr "Արտաքին բաղադրատոմսեր" + +#: .\cookbook\templates\stats.html:45 +msgid "Internal Recipes" +msgstr "Ներքին բաղադրատոմսեր" + +#: .\cookbook\templates\system.html:21 .\cookbook\views\lists.py:128 +msgid "Invite Links" +msgstr "Հրավերի հղումներ" + +#: .\cookbook\templates\system.html:22 +msgid "Show Links" +msgstr "Ցուցադրել հղումները" + +#: .\cookbook\templates\system.html:27 +msgid "Backup & Restore" +msgstr "Կրկնօրինակում և վերականգնում " + +#: .\cookbook\templates\system.html:28 +msgid "Download Backup" +msgstr "Ներբեռնել կրկնօրինակը" + +#: .\cookbook\templates\system.html:49 +msgid "System Information" +msgstr "Համակարգի տեղեկություն" + +#: .\cookbook\templates\system.html:51 +msgid "" +"\n" +" Django Recipes is an open source free software application. It can be found on\n" +" GitHub.\n" +" Changelogs can be found here.\n" +" " +msgstr "" +"\n" +" Django Բաղադրատոմսերը բաց աղբյուրով անվճար ծրագիր է։ Այն կարող եք գտնել \n" +" GitHub-ում։\n" +" Փոփոխությունների մատյանը կարող եք գտնել այստեղ։\n" +" " + +#: .\cookbook\templates\system.html:65 +msgid "Media Serving" +msgstr "Մեդիայի մատուցում" + +#: .\cookbook\templates\system.html:66 .\cookbook\templates\system.html:81 +#: .\cookbook\templates\system.html:97 +msgid "Warning" +msgstr "Զգուշացում" + +#: .\cookbook\templates\system.html:66 .\cookbook\templates\system.html:81 +#: .\cookbook\templates\system.html:97 .\cookbook\templates\system.html:112 +msgid "Ok" +msgstr "Լավ է" + +#: .\cookbook\templates\system.html:68 +msgid "" +"Serving media files directly using gunicorn/python is not recommend!\n" +" Please follow the steps described\n" +" here to update\n" +" your installation.\n" +" " +msgstr "" +"Մեդիա ֆայլերի մատուցումը gunicorn/python-ի կիրառմամբ խորհուրդ չէ տրվում։\n" +" Խնդրում ենք օգտագործել քայլերը նկարագրված\n" +" այստեղ ձեր տեղադրումը\n" +" թարմացնելու համար։\n" +" " + +#: .\cookbook\templates\system.html:74 .\cookbook\templates\system.html:90 +#: .\cookbook\templates\system.html:105 .\cookbook\templates\system.html:119 +msgid "Everything is fine!" +msgstr "Ամեն բան նորմալ է։" + +#: .\cookbook\templates\system.html:79 +msgid "Secret Key" +msgstr "Գաղտնի բանալի" + +#: .\cookbook\templates\system.html:83 +msgid "" +"\n" +" You do not have a SECRET_KEY configured in your .env file. Django defaulted to the\n" +" standard key\n" +" provided with the installation which is publicly know and insecure! Please set\n" +" SECRET_KEY int the .env configuration file.\n" +" " +msgstr "" +"\n" +" Դուք չունեք SECRET_KEY մատնանշված ձեր .env ֆայլում. Django-ն օգտագործում է\n" +" ստանդարտ բանալի\n" +" տրված ծրագրի ներդրման ժամանակ, ինչը հանրային է և ոչ անվտանգ։ Խնդրում ենք մատնանշել\n" +" SECRET_KEY բանալի .env Ֆայլում։\n" +" " + +#: .\cookbook\templates\system.html:95 +msgid "Debug Mode" +msgstr "Վրիպակների վերացման ռեժիմ" + +#: .\cookbook\templates\system.html:99 +msgid "" +"\n" +" This application is still running in debug mode. This is most likely not needed. Turn of debug mode by\n" +" setting\n" +" DEBUG=0 int the .env configuration file.\n" +" " +msgstr "" +"\n" +" Այս ծրագիրը դեռ աշխատում է վրիպակների վերացման ռեժիմում։ Սա հավանաբար անհրաժեշտ չէ։ Անժատեք այս ռեժիմը\n" +" սահմանելով\n" +" DEBUG=0 .env կազմաձևումների ֆայլում։\n" +" " + +#: .\cookbook\templates\system.html:110 +msgid "Database" +msgstr "Շտեմարան" + +#: .\cookbook\templates\system.html:112 +msgid "Info" +msgstr "Տեղեկություն" + +#: .\cookbook\templates\system.html:114 +msgid "" +"\n" +" This application is not running with a Postgres database backend. This is ok but not recommended as some\n" +" features only work with postgres databases.\n" +" " +msgstr "" +"\n" +" Այս ծրագիրը չի աշխատում Postgres շտեմարան բեքենդով։ Դա նորմալ է, բայց խորհուրդ չի տրվում որովհետև որոշ\n" +" հատկություններ աշխատում են միայն postgres շտեմարանների հետ։\n" +" " + +#: .\cookbook\templates\url_import.html:5 +msgid "URL Import" +msgstr "URL ներմուծում" + +#: .\cookbook\templates\url_import.html:23 +msgid "Enter website URL" +msgstr "Մուտքագրեք վեբկայքի URL-ը" + +#: .\cookbook\templates\url_import.html:44 +msgid "Recipe Name" +msgstr "Բաղադրատոմսի անուն" + +#: .\cookbook\templates\url_import.html:104 +#: .\cookbook\templates\url_import.html:136 +#: .\cookbook\templates\url_import.html:192 +msgid "Select one" +msgstr "Ընտրել մեկը" + +#: .\cookbook\templates\url_import.html:203 +msgid "All Keywords" +msgstr "Բոլոր բանալի բառերը" + +#: .\cookbook\templates\url_import.html:206 +msgid "Import all keywords, not only the ones already existing." +msgstr "Ներմուծել բոլոր բանալի բառերը, ոչ միայն արդեն գոյություն ունեցողները" + +#: .\cookbook\templates\url_import.html:233 +msgid "Information" +msgstr "Տեղեկություն" + +#: .\cookbook\templates\url_import.html:235 +msgid "" +" Only websites containing ld+json or microdata information can currently\n" +" be imported. Most big recipe pages support this. If you site cannot be imported but\n" +" you think\n" +" it probably has some kind of structured data feel free to post an example in the\n" +" github issues." +msgstr "" +" Ներկայումս միայն ld+json կամ microdata տեղեկություն պարունակող կայքերից կարելի է\n" +" ներմուծել։ Բաղադրատոմսերի մեծ կայքերը հիմնականում պարունակում են դա։ Եթե ձեր կայքը հնարավոր չէ ներմուծել, բայց\n" +" կարծում եք\n" +" այն հավանաբար ունի ինչ-որ տեսակի կառուցվածքավորված տվյալ, կարող եք տեղեկացնել մեզ ստեղծելով\n" +" github-ի խնդիր։" + +#: .\cookbook\templates\url_import.html:243 +msgid "Google ld+json Info" +msgstr "Google ld+json-ի տեղեկություն" + +#: .\cookbook\templates\url_import.html:246 +msgid "GitHub Issues" +msgstr "GitHub-ի խնդիրներ" + +#: .\cookbook\templates\url_import.html:248 +msgid "Recipe Markup Specification" +msgstr "Բաղադրատոմսի Markup բնութագրեր" + +#: .\cookbook\views\api.py:104 +msgid "Parameter filter_list incorrectly formatted" +msgstr "filter_list պարամետրը սխալ է ձևավորված" + +#: .\cookbook\views\api.py:117 +msgid "Preference for given user already exists" +msgstr "Այս օգտատերի նախապատվությունն արդեն գոյություն ունի" + +#: .\cookbook\views\api.py:416 .\cookbook\views\views.py:265 +msgid "This feature is not available in the demo version!" +msgstr "Այս հատկությունը հասանելի չէ փորձնական տարբերակում։" + +#: .\cookbook\views\api.py:439 +msgid "Sync successful!" +msgstr "Սինքրոնիզացիան հաջողված է" + +#: .\cookbook\views\api.py:444 +msgid "Error synchronizing with Storage" +msgstr "Պահոցի հետ սինքրոնիզացիայի սխալ" + +#: .\cookbook\views\api.py:510 +msgid "The requested page could not be found." +msgstr "Պահանջվող էջը չի գտնվել" + +#: .\cookbook\views\api.py:519 +msgid "" +"The requested page refused to provide any information (Status Code 403)." +msgstr "" +"Պահանջվող էջը մերժեց տրամադրել որևէ տեղեկություն (Կարգավիճակի ծածկագիր 403)" + +#: .\cookbook\views\data.py:101 +#, python-format +msgid "Batch edit done. %(count)d recipe was updated." +msgid_plural "Batch edit done. %(count)d Recipes where updated." +msgstr[0] "Խմբային խմբագրումն ավարտված է։ %(count)d բաղադրատոմս թարմացված է" +msgstr[1] "Խմբային խմբագրումն ավարտված է։ %(count)d բաղադրատոմս թարմացված է։" + +#: .\cookbook\views\delete.py:72 +msgid "Monitor" +msgstr "Վերահսկել" + +#: .\cookbook\views\delete.py:96 .\cookbook\views\lists.py:109 +#: .\cookbook\views\new.py:83 +msgid "Storage Backend" +msgstr "Պահոցի բեքենդ" + +#: .\cookbook\views\delete.py:106 +msgid "" +"Could not delete this storage backend as it is used in at least one monitor." +msgstr "Չենք կարող ջնջել պահոցի այս բեքենդը, քանի որ այն օգտագործվում է։" + +#: .\cookbook\views\delete.py:129 .\cookbook\views\edit.py:196 +#: .\cookbook\views\new.py:144 +msgid "Recipe Book" +msgstr "Բաղադրատոմսի գիրք" + +#: .\cookbook\views\delete.py:154 +msgid "Bookmarks" +msgstr "Էջանիշեր" + +#: .\cookbook\views\delete.py:176 .\cookbook\views\new.py:214 +msgid "Invite Link" +msgstr "Հրավերի հղում" + +#: .\cookbook\views\edit.py:100 +msgid "Food" +msgstr "Սննդամթերք" + +#: .\cookbook\views\edit.py:110 +msgid "You cannot edit this storage!" +msgstr "Դուք կարող եք խմբագրել այս պահոցը։" + +#: .\cookbook\views\edit.py:131 +msgid "Storage saved!" +msgstr "Պահոցը պահպանված է" + +#: .\cookbook\views\edit.py:137 +msgid "There was an error updating this storage backend!" +msgstr "Պահոցի այս բեքեբդի թարմացման ժամանակ սխալ է գրանցվել։" + +#: .\cookbook\views\edit.py:148 +msgid "Storage" +msgstr "Պահոց" + +#: .\cookbook\views\edit.py:245 +msgid "Changes saved!" +msgstr "Փոփոխությունները պահպանված են" + +#: .\cookbook\views\edit.py:253 +msgid "Error saving changes!" +msgstr "Փոփոխությունների պահպանման սխալ" + +#: .\cookbook\views\edit.py:289 +msgid "Units merged!" +msgstr "Միավորները միավորված են" + +#: .\cookbook\views\edit.py:295 .\cookbook\views\edit.py:317 +msgid "Cannot merge with the same object!" +msgstr "Հնարավոր չէ միավորել նույն օբյեկտի հետ" + +#: .\cookbook\views\edit.py:311 +msgid "Foods merged!" +msgstr "Սննդամթերքները միավորված են" + +#: .\cookbook\views\import_export.py:42 +msgid "Importing is not implemented for this provider" +msgstr "Ներմուծումն այս պրովայդերի համար իրականացված չէ" + +#: .\cookbook\views\import_export.py:58 +msgid "Exporting is not implemented for this provider" +msgstr "Արտահանումն այս պրովայդերի համար իրականացված չէ" + +#: .\cookbook\views\lists.py:42 +msgid "Import Log" +msgstr "Ներմուծման մատյան" + +#: .\cookbook\views\lists.py:55 +msgid "Discovery" +msgstr "Բացահայտել" + +#: .\cookbook\views\lists.py:92 +msgid "Shopping Lists" +msgstr "Գնումների ցուցակներ" + +#: .\cookbook\views\new.py:107 +msgid "Imported new recipe!" +msgstr "Բաղադրատոմսը ներմուծված է" + +#: .\cookbook\views\new.py:114 +msgid "There was an error importing this recipe!" +msgstr "Այս բաղադրատոմսի ներմուծման ժամանակ սխալ է գրանցվել։" + +#: .\cookbook\views\views.py:117 +msgid "You do not have the required permissions to perform this action!" +msgstr "Դուք չունեք բավարար թույլտվություն այս գործողության համար։" + +#: .\cookbook\views\views.py:136 +msgid "Comment saved!" +msgstr "Մեկնաբանությունը պահպանված է" + +#: .\cookbook\views\views.py:152 +msgid "This recipe is already linked to the book!" +msgstr "Բաղադրատոմսն արդեն կապված է գրքին" + +#: .\cookbook\views\views.py:158 +msgid "Bookmark saved!" +msgstr "Էջանիշը պահպանված է" + +#: .\cookbook\views\views.py:380 +msgid "" +"The setup page can only be used to create the first user! If you have " +"forgotten your superuser credentials please consult the django documentation" +" on how to reset passwords." +msgstr "" +"Կարգավորման էջը կարող է օգտագործվել միայն առաջին օգտագործողին ստեղծելու " +"համար։ Եթե մոռացել եք ձեր սուպեր-օգտատերի գաղտնաբառը, խնդրում ենք ստուգել " +"django-ի փաստաթղթերը գաղտնաբառը վերականգնելու ցուցումների համար։" + +#: .\cookbook\views\views.py:388 .\cookbook\views\views.py:435 +msgid "Passwords dont match!" +msgstr "Գաղտնաբառերը չեն համընկնում" + +#: .\cookbook\views\views.py:402 .\cookbook\views\views.py:449 +msgid "User has been created, please login!" +msgstr "Օգտատերը ստեղծված է, խնդրում ենք մուտք գործել։" + +#: .\cookbook\views\views.py:419 +msgid "Malformed Invite Link supplied!" +msgstr "Հրավերի արատավոր հղում է տրամադրվել։" + +#: .\cookbook\views\views.py:470 +msgid "Invite Link not valid or already used!" +msgstr "Հրավերի հղումը վավեր չէ, կամ արդեն օգտագործվել է" diff --git a/cookbook/locale/it/LC_MESSAGES/django.mo b/cookbook/locale/it/LC_MESSAGES/django.mo index 934b7a1b3..1c57ffac4 100644 Binary files a/cookbook/locale/it/LC_MESSAGES/django.mo and b/cookbook/locale/it/LC_MESSAGES/django.mo differ diff --git a/cookbook/locale/it/LC_MESSAGES/django.po b/cookbook/locale/it/LC_MESSAGES/django.po index 6b829d94b..ed945656a 100644 --- a/cookbook/locale/it/LC_MESSAGES/django.po +++ b/cookbook/locale/it/LC_MESSAGES/django.po @@ -2,11 +2,11 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. -# +# # Translators: # Alessandro Spallina , 2020 # Oliver Thomas Cervera , 2021 -# +# #, fuzzy msgid "" msgstr "" @@ -15,12 +15,11 @@ msgstr "" "POT-Creation-Date: 2021-02-09 18:01+0100\n" "PO-Revision-Date: 2020-06-02 19:28+0000\n" "Last-Translator: Oliver Thomas Cervera , 2021\n" -"Language-Team: Italian (https://www.transifex.com/django-recipes/" -"teams/110507/it/)\n" -"Language: it\n" +"Language-Team: Italian (https://www.transifex.com/django-recipes/teams/110507/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: .\cookbook\filters.py:22 .\cookbook\templates\base.html:87 @@ -35,8 +34,8 @@ msgid "" "Color of the top navigation bar. Not all colors work with all themes, just " "try them out!" msgstr "" -"Colore della barra di navigazione in alto. Non tutti i colori funzionano con " -"tutti i temi, provali e basta!" +"Colore della barra di navigazione in alto. Non tutti i colori funzionano con" +" tutti i temi, provali e basta!" #: .\cookbook\forms.py:45 msgid "Default Unit to be used when inserting a new ingredient into a recipe." @@ -81,15 +80,15 @@ msgid "" "mobile data. If lower than instance limit it is reset when saving." msgstr "" "L'impostazione su 0 disabiliterà la sincronizzazione automatica. Quando si " -"visualizza una lista della spesa, la lista viene aggiornata ogni tot secondi " -"impostati per sincronizzare le modifiche che qualcun altro potrebbe aver " -"fatto. Utile per gli acquisti con più persone, ma potrebbe utilizzare un po' " -"di dati mobili. Se inferiore al limite di istanza viene ripristinato durante " -"il salvataggio." +"visualizza una lista della spesa, la lista viene aggiornata ogni tot secondi" +" impostati per sincronizzare le modifiche che qualcun altro potrebbe aver " +"fatto. Utile per gli acquisti con più persone, ma potrebbe utilizzare un po'" +" di dati mobili. Se inferiore al limite di istanza viene ripristinato " +"durante il salvataggio." #: .\cookbook\forms.py:55 msgid "Makes the navbar stick to the top of the page." -msgstr "" +msgstr "Fissa la barra di navigazione nella parte superiore della pagina." #: .\cookbook\forms.py:71 msgid "" @@ -128,10 +127,8 @@ msgid "Storage UID" msgstr "UID di archiviazione" #: .\cookbook\forms.py:117 -#, fuzzy -#| msgid "Number of Days" msgid "Number of servings" -msgstr "Numero di giorni" +msgstr "Porzioni" #: .\cookbook\forms.py:128 msgid "" @@ -143,7 +140,7 @@ msgstr "" #: .\cookbook\forms.py:143 msgid "Default" -msgstr "" +msgstr "Predefinito" #: .\cookbook\forms.py:162 msgid "New Unit" @@ -192,11 +189,11 @@ msgstr "Lascia vuoto per nextcloud e inserisci l'api token per dropbox." #: .\cookbook\forms.py:244 msgid "" -"Leave empty for dropbox and enter only base url for nextcloud (/remote." -"php/webdav/ is added automatically)" +"Leave empty for dropbox and enter only base url for nextcloud " +"(/remote.php/webdav/ is added automatically)" msgstr "" -"Lascia vuoto per dropbox e inserisci solo l'url base per nextcloud (/" -"remote.php/webdav/ è aggiunto automaticamente)" +"Lascia vuoto per dropbox e inserisci solo l'url base per nextcloud " +"(/remote.php/webdav/ è aggiunto automaticamente)" #: .\cookbook\forms.py:263 msgid "Search String" @@ -219,11 +216,11 @@ msgstr "" #: .\cookbook\forms.py:313 #: .\cookbook\templates\forms\edit_internal_recipe.html:377 msgid "" -"You can use markdown to format this field. See the docs here" +"You can use markdown to format this field. See the docs here" msgstr "" -"Puoi usare markdown per formattare questo campo. Guarda la documentazione qui" +"Puoi usare markdown per formattare questo campo. Guarda la documentazione qui" #: .\cookbook\forms.py:328 msgid "A username is not required, if left blank the new user can choose one." @@ -258,8 +255,8 @@ msgstr "" #: .\cookbook\helper\recipe_url_import.py:53 msgid "" -"The requested site does not provide any recognized data format to import the " -"recipe from." +"The requested site does not provide any recognized data format to import the" +" recipe from." msgstr "" "Il sito richiesto non fornisce un formato di dati riconosciuto da cui " "importare la ricetta." @@ -273,6 +270,8 @@ msgid "" "Importer expected a .zip file. Did you choose the correct importer type for " "your data ?" msgstr "" +"La procedura di import necessita di un file .zip. Hai scelto il tipo di " +"importazione corretta per i tuoi dati?" #: .\cookbook\integration\safron.py:23 #: .\cookbook\templates\forms\edit_internal_recipe.html:65 @@ -282,10 +281,8 @@ msgid "Servings" msgstr "Porzioni" #: .\cookbook\integration\safron.py:25 -#, fuzzy -#| msgid "Waiting time ~" msgid "Waiting time" -msgstr "Tempo di Attesa ~" +msgstr "Tempo di attesa" #: .\cookbook\integration\safron.py:27 #: .\cookbook\templates\forms\edit_internal_recipe.html:59 @@ -300,7 +297,7 @@ msgstr "Ricettario" #: .\cookbook\integration\safron.py:31 msgid "Section" -msgstr "" +msgstr "Selezione" #: .\cookbook\migrations\0047_auto_20200602_1133.py:12 msgid "Breakfast" @@ -396,37 +393,35 @@ msgstr "Login" #: .\cookbook\templates\account\login.html:13 #: .\cookbook\templates\account\login.html:28 msgid "Sign In" -msgstr "" +msgstr "Accedi" #: .\cookbook\templates\account\login.html:38 msgid "Social Login" -msgstr "" +msgstr "Login con social network" #: .\cookbook\templates\account\login.html:39 msgid "You can use any of the following providers to sign in." -msgstr "" +msgstr "Puoi usare uno dei seguenti provider per accedere." #: .\cookbook\templates\account\logout.html:5 #: .\cookbook\templates\account\logout.html:9 #: .\cookbook\templates\account\logout.html:18 msgid "Sign Out" -msgstr "" +msgstr "Esci" #: .\cookbook\templates\account\logout.html:11 -#, fuzzy -#| msgid "Are you sure that you want to merge these two units?" msgid "Are you sure you want to sign out?" -msgstr "Sei sicuro di volere unire queste due unità di misura?" +msgstr "Sei sicuro di voler uscire?" #: .\cookbook\templates\account\password_reset.html:5 #: .\cookbook\templates\account\password_reset_done.html:5 msgid "Password Reset" -msgstr "" +msgstr "Recupero password" #: .\cookbook\templates\account\password_reset.html:9 #: .\cookbook\templates\account\password_reset_done.html:9 msgid "Password reset is not implemented for the time being!" -msgstr "" +msgstr "Il recupero della password non è stato ancora implementato!" #: .\cookbook\templates\account\signup.html:5 msgid "Register" @@ -540,8 +535,8 @@ msgstr "Modifica di massa per ricette" #: .\cookbook\templates\batch\edit.html:20 msgid "Add the specified keywords to all recipes containing a word" msgstr "" -"Aggiungi a tutte le ricette che contengono una determinata stringa le parole " -"chiave desiderate " +"Aggiungi a tutte le ricette che contengono una determinata stringa le parole" +" chiave desiderate " #: .\cookbook\templates\batch\monitor.html:6 .\cookbook\views\edit.py:66 msgid "Sync" @@ -556,8 +551,8 @@ msgid "" "On this Page you can manage all storage folder locations that should be " "monitored and synced." msgstr "" -"In questa pagina puoi gestire i percorsi delle cartelle di archiviazione che " -"devono essere monitorate e sincronizzate." +"In questa pagina puoi gestire i percorsi delle cartelle di archiviazione che" +" devono essere monitorate e sincronizzate." #: .\cookbook\templates\batch\monitor.html:16 msgid "The path must be in the following format" @@ -644,20 +639,16 @@ msgid "Waiting Time" msgstr "Tempo di Attesa" #: .\cookbook\templates\forms\edit_internal_recipe.html:68 -#, fuzzy -#| msgid "Servings" msgid "Servings Text" -msgstr "Porzioni" +msgstr "Nome delle porzioni" #: .\cookbook\templates\forms\edit_internal_recipe.html:79 msgid "Select Keywords" msgstr "Seleziona parole chiave" #: .\cookbook\templates\forms\edit_internal_recipe.html:93 -#, fuzzy -#| msgid "Nutrition" msgid "Description" -msgstr "Nutrienti" +msgstr "Descrizione" #: .\cookbook\templates\forms\edit_internal_recipe.html:108 msgid "Nutrition" @@ -773,7 +764,7 @@ msgstr "Abilita Quantità" #: .\cookbook\templates\forms\edit_internal_recipe.html:348 msgid "Copy Template Reference" -msgstr "" +msgstr "Copia riferimento template" #: .\cookbook\templates\forms\edit_internal_recipe.html:374 #: .\cookbook\templates\url_import.html:177 @@ -821,19 +812,14 @@ msgstr "Modifica Ingredienti" #: .\cookbook\templates\forms\ingredients.html:16 msgid "" "\n" -" The following form can be used if, accidentally, two (or more) units " -"or ingredients where created that should be\n" +" The following form can be used if, accidentally, two (or more) units or ingredients where created that should be\n" " the same.\n" -" It merges two units or ingredients and updates all recipes using " -"them.\n" +" It merges two units or ingredients and updates all recipes using them.\n" " " msgstr "" "\n" -" Questo modulo può essere utilizzato se, accidentalmente, sono stati " -"creati due (o più) unità di misura o ingredienti che dovrebbero essere lo " -"stesso. \n" -"Unisce due unità di misura o ingredienti e aggiorna tutte le ricette che li " -"utilizzano." +" Questo modulo può essere utilizzato se, accidentalmente, sono stati creati due (o più) unità di misura o ingredienti che dovrebbero essere lo stesso. \n" +"Unisce due unità di misura o ingredienti e aggiorna tutte le ricette che li utilizzano." #: .\cookbook\templates\forms\ingredients.html:24 #: .\cookbook\templates\stats.html:26 @@ -955,19 +941,15 @@ msgstr "Avviso di Sicurezza" #: .\cookbook\templates\include\storage_backend_warning.html:5 msgid "" "\n" -" The Password and Token field are stored as plain text " -"inside the database.\n" -" This is necessary because they are needed to make API requests, but " -"it also increases the risk of\n" +" The Password and Token field are stored as plain text inside the database.\n" +" This is necessary because they are needed to make API requests, but it also increases the risk of\n" " someone stealing it.
\n" -" To limit the possible damage tokens or accounts with limited access " -"can be used.\n" +" To limit the possible damage tokens or accounts with limited access can be used.\n" " " msgstr "" "\n" "I campi Password e Token sono salvati in chiaro nel database.\n" -"È necessario perché servono per fare richieste API, ma questo aumenta il " -"rischio che\n" +"È necessario perché servono per fare richieste API, ma questo aumenta il rischio che\n" "qualcuno possa impossessarsene.
\n" "Per liminare il danno puoi usare account con accesso limitato o i token." @@ -1012,29 +994,19 @@ msgstr "Informazioni su Markdown" #: .\cookbook\templates\markdown_info.html:14 msgid "" "\n" -" Markdown is lightweight markup language that can be used to format " -"plain text easily.\n" -" This site uses the Python Markdown library to\n" -" convert your text into nice looking HTML. Its full markdown " -"documentation can be found\n" -" here.\n" -" An incomplete but most likely sufficient documentation can be found " -"below.\n" +" Markdown is lightweight markup language that can be used to format plain text easily.\n" +" This site uses the Python Markdown library to\n" +" convert your text into nice looking HTML. Its full markdown documentation can be found\n" +" here.\n" +" An incomplete but most likely sufficient documentation can be found below.\n" " " msgstr "" "\n" -" Markdown è un linguaggio di markup molto leggero che può essere " -"utilizzato per formattare facilmente del testo.\n" -" Questo sito utilizza la libreria Python Markdown per\n" -" convertire il tuo testo in HTML formattato. È possibile trovare la " -"documentazione completa del markdown\n" -" qui.\n" -" Di seguito è possibile trovare una documentazione incompleta ma molto " -"probabilmente sufficiente." +" Markdown è un linguaggio di markup molto leggero che può essere utilizzato per formattare facilmente del testo.\n" +" Questo sito utilizza la libreria Python Markdown per\n" +" convertire il tuo testo in HTML formattato. È possibile trovare la documentazione completa del markdown\n" +" qui.\n" +" Di seguito è possibile trovare una documentazione incompleta ma molto probabilmente sufficiente." #: .\cookbook\templates\markdown_info.html:25 msgid "Headers" @@ -1134,19 +1106,15 @@ msgid "Tables" msgstr "Tabelle" #: .\cookbook\templates\markdown_info.html:153 -#, fuzzy -#| msgid "" -#| "Markdown tables are hard to create by hand. It is recommended to use a " -#| "table editor like this one." msgid "" -"Markdown tables are hard to create by hand. It is recommended to use a table " -"editor like this one." +"Markdown tables are hard to create by hand. It is recommended to use a table" +" editor like this one." msgstr "" -"Le tabelle in markdown sono difficili da creare a mano. È raccomandato " -"utilizzare un editor di tabelle come questo." +"Le tabelle in markdown sono difficili da creare a mano. Si raccomanda " +"l'utilizzo di un editor di come questo." #: .\cookbook\templates\markdown_info.html:155 #: .\cookbook\templates\markdown_info.html:157 @@ -1184,19 +1152,18 @@ msgstr "Note (opzionale)" #: .\cookbook\templates\meal_plan.html:143 msgid "" -"You can use markdown to format this field. See the docs here" +"You can use markdown to format this field. See the docs " +"here" msgstr "" -"Puoi usare markdown per formattare questo campo. Guarda la documentazione " -"qui" +"Puoi usare markdown per formattare questo campo. Guarda la documentazione qui" #: .\cookbook\templates\meal_plan.html:147 #: .\cookbook\templates\meal_plan.html:251 -#, fuzzy -#| msgid "Servings" msgid "Serving Count" -msgstr "Porzioni" +msgstr "Numero di porzioni" #: .\cookbook\templates\meal_plan.html:153 msgid "Create only note" @@ -1231,8 +1198,8 @@ msgstr "Correzione giorni feriali" #: .\cookbook\templates\meal_plan.html:209 msgid "" -"Number of days starting from the first day of the week to offset the default " -"view." +"Number of days starting from the first day of the week to offset the default" +" view." msgstr "" "Numero di giorni a partire dal primo giorno della settimana per correggere " "la visualizzazione predefinita." @@ -1274,98 +1241,40 @@ msgid "Meal Plan Help" msgstr "Aiuto per il piano alimentare" #: .\cookbook\templates\meal_plan.html:344 -#, fuzzy -#| msgid "" -#| "\n" -#| "

The meal plan module allows planning of " -#| "meals both with recipes or just notes.

\n" -#| "

Simply select a recipe from the list of " -#| "recently viewed recipes or search the one you\n" -#| " want and drag it to the desired plan " -#| "position. You can also add a note and a title and\n" -#| " then drag the recipe to create a plan " -#| "entry with a custom title and note. Creating only\n" -#| " Notes is possible by dragging the create " -#| "note box into the plan.

\n" -#| "

Click on a recipe in order to open the " -#| "detail view. Here you can also add it to the\n" -#| " shopping list. You can also add all " -#| "recipes of a day to the shopping list by\n" -#| " clicking the shopping cart at the top of " -#| "the table.

\n" -#| "

Since a common use case is to plan meals " -#| "together you can define\n" -#| " users you want to share your plan with in " -#| "the settings.\n" -#| "

\n" -#| "

You can also edit the types of meals you " -#| "want to plan. If you share your plan with\n" -#| " someone with\n" -#| " different meals, their meal types will " -#| "appear in your list as well. To prevent\n" -#| " duplicates (e.g. Other and Misc.)\n" -#| " name your meal types the same as the " -#| "users you share your meals with and they will be\n" -#| " merged.

\n" -#| " " msgid "" "\n" -"

The meal plan module allows planning of meals " -"both with recipes and notes.

\n" -"

Simply select a recipe from the list of " -"recently viewed recipes or search the one you\n" -" want and drag it to the desired plan " -"position. You can also add a note and a title and\n" -" then drag the recipe to create a plan entry " -"with a custom title and note. Creating only\n" -" Notes is possible by dragging the create " -"note box into the plan.

\n" -"

Click on a recipe in order to open the " -"detailed view. There you can also add it to the\n" -" shopping list. You can also add all recipes " -"of a day to the shopping list by\n" -" clicking the shopping cart at the top of the " -"table.

\n" -"

Since a common use case is to plan meals " -"together you can define\n" -" users you want to share your plan with in " -"the settings.\n" +"

The meal plan module allows planning of meals both with recipes and notes.

\n" +"

Simply select a recipe from the list of recently viewed recipes or search the one you\n" +" want and drag it to the desired plan position. You can also add a note and a title and\n" +" then drag the recipe to create a plan entry with a custom title and note. Creating only\n" +" Notes is possible by dragging the create note box into the plan.

\n" +"

Click on a recipe in order to open the detailed view. There you can also add it to the\n" +" shopping list. You can also add all recipes of a day to the shopping list by\n" +" clicking the shopping cart at the top of the table.

\n" +"

Since a common use case is to plan meals together you can define\n" +" users you want to share your plan with in the settings.\n" "

\n" -"

You can also edit the types of meals you want " -"to plan. If you share your plan with\n" +"

You can also edit the types of meals you want to plan. If you share your plan with\n" " someone with\n" -" different meals, their meal types will " -"appear in your list as well. To prevent\n" +" different meals, their meal types will appear in your list as well. To prevent\n" " duplicates (e.g. Other and Misc.)\n" -" name your meal types the same as the users " -"you share your meals with and they will be\n" +" name your meal types the same as the users you share your meals with and they will be\n" " merged.

\n" " " msgstr "" "\n" -"

Il modulo del piano alimentare consente di pianificare i pasti sia con " -"ricette che con semplici note.

\n" +"

Il modulo del piano alimentare consente di pianificare i pasti sia con ricette che con semplici note.

\n" "

Seleziona una ricetta dalla lista delle ricette recenti o cercane una,\n" -"quindi spostala sulla posizione desiderata. Puoi anche aggiungere una nota e " -"un titolo e\n" -"poi trascinare la ricetta per creare una voce nel piano con un titolo e una " -"nota personalizzata. Si possono anche creare\n" +"quindi spostala sulla posizione desiderata. Puoi anche aggiungere una nota e un titolo e\n" +"poi trascinare la ricetta per creare una voce nel piano con un titolo e una nota personalizzata. Si possono anche creare\n" "delle note trascinando la casella della nota nel piano.

\n" -"

Clicca su una ricetta per aprire la pagina dei dettagli. Qui potrai anche " -"aggiungerla alla lista della spesa. Puoi anche aggiungere tutte le ricette " -"di un giorno alla lista della spesa, basterà cliccare sul carrello sopra la " -"tabella.

\n" -"

Dato che è comune pianificare i pasti con qualcun altro, nelle " -"impostazioni puoi scegliere gli utenti con i quali condividere il tuo piano." -"

\n" -"

Puoi anche modificare i tipi di pasto che vuoi pianificare. Se condividi " -"il piano con\n" +"

Clicca su una ricetta per aprire la vista dettagliata. Qui potrai anche aggiungerla alla lista della spesa. Puoi anche aggiungere tutte le ricette di un giorno alla lista della spesa, basterà cliccare sul carrello sopra la tabella.

\n" +"

Dato che è comune pianificare i pasti con altre persone, nelle impostazioni puoi scegliere gli utenti con i quali condividere il tuo piano.

\n" +"

Puoi anche modificare i tipi di pasto che vuoi pianificare. Se condividi il piano con\n" "qualcuno\n" -"con pasti differenti, i loro tipi di pasto appariranno anche nella tua " -"lista. Per prevenire\n" +"con pasti differenti, i loro tipi di pasto appariranno anche nella tua lista. Per evitare\n" "duplicati (es. Altri e Varie)\n" -"dai nomi ai tuoi tipi di pasto uguali ai tuoi utenti in modo che verranno " -"uniti.

" +"dai nomi ai tuoi tipi di pasto uguali ai tuoi utenti in modo che verranno uniti.

" #: .\cookbook\templates\meal_plan_entry.html:6 msgid "Meal Plan View" @@ -1382,27 +1291,32 @@ msgstr "Altri pasti di questo giorno" #: .\cookbook\templates\no_groups_info.html:5 #: .\cookbook\templates\offline.html:6 msgid "Offline" -msgstr "" +msgstr "Non in linea" #: .\cookbook\templates\no_groups_info.html:12 msgid "No Permissions" -msgstr "" +msgstr "Nessun permesso" #: .\cookbook\templates\no_groups_info.html:15 msgid "" "You do not have any groups and therefor cannot use this application. Please " "contact your administrator." msgstr "" +"Non fai parte di un gruppo e questo non ti consente di usare l'applicazione." +" Contatta il tuo amministratore." #: .\cookbook\templates\offline.html:19 msgid "You are currently offline!" -msgstr "" +msgstr "Al momento sei offline!" #: .\cookbook\templates\offline.html:20 msgid "" "The recipes listed below are available for offline viewing because you have " "recently viewed them. Keep in mind that data might be outdated." msgstr "" +"Le ricette qui sotto sono disponibili per essere consultate quando sei " +"offline perché le hai aperte di recente. Ricorda che queste informazioni " +"potrebbero non essere aggiornate." #: .\cookbook\templates\recipe_view.html:21 .\cookbook\templates\stats.html:47 msgid "Comments" @@ -1447,7 +1361,7 @@ msgstr "Account" #: .\cookbook\templates\settings.html:38 msgid "Link social account" -msgstr "" +msgstr "Collega account social" #: .\cookbook\templates\settings.html:42 msgid "Language" @@ -1471,8 +1385,8 @@ msgstr "" #: .\cookbook\templates\settings.html:92 msgid "" -"Use the token as an Authorization header prefixed by the word token as shown " -"in the following examples:" +"Use the token as an Authorization header prefixed by the word token as shown" +" in the following examples:" msgstr "" "Usa il token come header Authorization preceduto dalla parola Token come " "negli esempi seguenti:" @@ -1509,13 +1423,11 @@ msgstr "Nessuna ricetta selezionata" #: .\cookbook\templates\shopping_list.html:145 msgid "Entry Mode" -msgstr "" +msgstr "Modalità di inserimento" #: .\cookbook\templates\shopping_list.html:153 -#, fuzzy -#| msgid "New Entry" msgid "Add Entry" -msgstr "Nuovo Campo" +msgstr "Aggiungi voce" #: .\cookbook\templates\shopping_list.html:168 msgid "Amount" @@ -1523,13 +1435,11 @@ msgstr "Quantità" #: .\cookbook\templates\shopping_list.html:224 msgid "Supermarket" -msgstr "" +msgstr "Supermercato" #: .\cookbook\templates\shopping_list.html:234 -#, fuzzy -#| msgid "Select User" msgid "Select Supermarket" -msgstr "Seleziona utente" +msgstr "Seleziona supermercato" #: .\cookbook\templates\shopping_list.html:258 msgid "Select User" @@ -1558,26 +1468,27 @@ msgstr "Si è verificato un errore durante la creazione di una risorsa!" #: .\cookbook\templates\socialaccount\connections.html:4 #: .\cookbook\templates\socialaccount\connections.html:7 msgid "Account Connections" -msgstr "" +msgstr "Collegamenti dell'account" #: .\cookbook\templates\socialaccount\connections.html:10 msgid "" "You can sign in to your account using any of the following third party\n" " accounts:" msgstr "" +"Puoi accedere al tuo account usando uno dei seguenti account di terze parti:" #: .\cookbook\templates\socialaccount\connections.html:36 msgid "Remove" -msgstr "" +msgstr "Rimuovi" #: .\cookbook\templates\socialaccount\connections.html:44 msgid "" "You currently have no social network accounts connected to this account." -msgstr "" +msgstr "Non hai account di social network collegati a questo account." #: .\cookbook\templates\socialaccount\connections.html:47 msgid "Add a 3rd Party Account" -msgstr "" +msgstr "Aggiungi un account di terze parti" #: .\cookbook\templates\stats.html:4 msgid "Stats" @@ -1630,18 +1541,14 @@ msgstr "Informazioni di sistema" #: .\cookbook\templates\system.html:51 msgid "" "\n" -" Django Recipes is an open source free software application. It can " -"be found on\n" +" Django Recipes is an open source free software application. It can be found on\n" " GitHub.\n" -" Changelogs can be found here.\n" +" Changelogs can be found here.\n" " " msgstr "" "\n" -"Django Recipes è una applicazione gratuita e open source. È disponibile su " -"GitHub.\n" -"Le ultime novità sono disponibili qui." +"Django Recipes è una applicazione gratuita e open source. È disponibile su GitHub.\n" +"Le ultime novità sono disponibili qui." #: .\cookbook\templates\system.html:65 msgid "Media Serving" @@ -1661,16 +1568,13 @@ msgstr "Ok" msgid "" "Serving media files directly using gunicorn/python is not recommend!\n" " Please follow the steps described\n" -" here to update\n" +" here to update\n" " your installation.\n" " " msgstr "" -"Erogare i file multimediali usando gunicorn/python non è raccomandato!\n" +"Erogare i file multimediali usando gunicorn/python non è raccomandato!\n" "Segui i passi descritti\n" -"qui " -"per aggiornare la tua installazione." +"qui per aggiornare la tua installazione." #: .\cookbook\templates\system.html:74 .\cookbook\templates\system.html:90 #: .\cookbook\templates\system.html:105 .\cookbook\templates\system.html:119 @@ -1684,18 +1588,14 @@ msgstr "Chiave segreta" #: .\cookbook\templates\system.html:83 msgid "" "\n" -" You do not have a SECRET_KEY configured in your " -".env file. Django defaulted to the\n" +" You do not have a SECRET_KEY configured in your .env file. Django defaulted to the\n" " standard key\n" -" provided with the installation which is publicly know and " -"insecure! Please set\n" -" SECRET_KEY int the .env configuration " -"file.\n" +" provided with the installation which is publicly know and insecure! Please set\n" +" SECRET_KEY int the .env configuration file.\n" " " msgstr "" "\n" -"Non hai inserito una SECRET_KEY nel file .env. " -"Django ha dovuto usare la chiave standard\n" +"Non hai inserito una SECRET_KEY nel file .env. Django ha dovuto usare la chiave standard\n" "dell'installazione che è pubblica e insicura! Sei pregato di aggiungere una\n" "SECRET_KEY nel file di configurazione .env." @@ -1706,16 +1606,13 @@ msgstr "Modalità di debug" #: .\cookbook\templates\system.html:99 msgid "" "\n" -" This application is still running in debug mode. This is most " -"likely not needed. Turn of debug mode by\n" +" This application is still running in debug mode. This is most likely not needed. Turn of debug mode by\n" " setting\n" -" DEBUG=0 int the .env configuration " -"file.\n" +" DEBUG=0 int the .env configuration file.\n" " " msgstr "" "\n" -"Questa applicazione è in esecuzione in modalità di debug. Probabilmente non " -"è necessario, spegni la modalità di debug \n" +"Questa applicazione è in esecuzione in modalità di debug. Probabilmente non è necessario, spegni la modalità di debug \n" "configurando\n" "DEBUG=0 nel file di configurazione.env." @@ -1730,14 +1627,12 @@ msgstr "Info" #: .\cookbook\templates\system.html:114 msgid "" "\n" -" This application is not running with a Postgres database " -"backend. This is ok but not recommended as some\n" +" This application is not running with a Postgres database backend. This is ok but not recommended as some\n" " features only work with postgres databases.\n" " " msgstr "" "\n" -"Questa applicazione non sta girando su un database Postgres. Non è " -"raccomandato perché alcune\n" +"Questa applicazione non sta girando su un database Postgres. Non è raccomandato perché alcune\n" "funzionalità sono disponibili solo con un database Posgres." #: .\cookbook\templates\url_import.html:5 @@ -1773,18 +1668,14 @@ msgstr "Info" #: .\cookbook\templates\url_import.html:235 msgid "" " Only websites containing ld+json or microdata information can currently\n" -" be imported. Most big recipe pages " -"support this. If you site cannot be imported but\n" +" be imported. Most big recipe pages support this. If you site cannot be imported but\n" " you think\n" -" it probably has some kind of structured " -"data feel free to post an example in the\n" +" it probably has some kind of structured data feel free to post an example in the\n" " github issues." msgstr "" -"Possono essere importati solo i siti che contengono informazioni Id+json o " -"microdata.\n" +"Possono essere importati solo i siti che contengono informazioni Id+json o microdata.\n" "I maggiori siti di ricette di solito sono supportati.\n" -"Se questo sito non può essere importato ma credi che abbia una qualche tipo " -"di struttura dati, puoi inviare un esempio nella sezione Issues su GitHub." +"Se questo sito non può essere importato ma credi che abbia una qualche tipo di struttura dati, puoi inviare un esempio nella sezione Issues su GitHub." #: .\cookbook\templates\url_import.html:243 msgid "Google ld+json Info" @@ -1808,7 +1699,7 @@ msgstr "La preferenza per l'utente fornito esiste già" #: .\cookbook\views\api.py:416 .\cookbook\views\views.py:265 msgid "This feature is not available in the demo version!" -msgstr "" +msgstr "Questa funzione non è disponibile nella versione demo!" #: .\cookbook\views\api.py:439 msgid "Sync successful!" @@ -1832,7 +1723,8 @@ msgstr "" #, python-format msgid "Batch edit done. %(count)d recipe was updated." msgid_plural "Batch edit done. %(count)d Recipes where updated." -msgstr[0] "Modifica di massa completata. %(count)d ricetta è stata aggiornata." +msgstr[0] "" +"Modifica di massa completata. %(count)d ricetta è stata aggiornata." msgstr[1] "" "Modifica di massa completata. %(count)d ricette sono state aggiornate." @@ -1901,7 +1793,7 @@ msgstr "Le unità sono state unite!" #: .\cookbook\views\edit.py:295 .\cookbook\views\edit.py:317 msgid "Cannot merge with the same object!" -msgstr "" +msgstr "Non è possibile unirlo con lo stesso oggetto!" #: .\cookbook\views\edit.py:311 msgid "Foods merged!" @@ -1909,11 +1801,11 @@ msgstr "Gli alimenti sono stati uniti!" #: .\cookbook\views\import_export.py:42 msgid "Importing is not implemented for this provider" -msgstr "" +msgstr "Questo provider non permette l'importazione" #: .\cookbook\views\import_export.py:58 msgid "Exporting is not implemented for this provider" -msgstr "" +msgstr "Questo provider non permette l'esportazione" #: .\cookbook\views\lists.py:42 msgid "Import Log" @@ -1945,7 +1837,7 @@ msgstr "Commento salvato!" #: .\cookbook\views\views.py:152 msgid "This recipe is already linked to the book!" -msgstr "" +msgstr "Questa ricetta è già collegata al libro!" #: .\cookbook\views\views.py:158 msgid "Bookmark saved!" @@ -1954,8 +1846,8 @@ msgstr "Preferito salvato!" #: .\cookbook\views\views.py:380 msgid "" "The setup page can only be used to create the first user! If you have " -"forgotten your superuser credentials please consult the django documentation " -"on how to reset passwords." +"forgotten your superuser credentials please consult the django documentation" +" on how to reset passwords." msgstr "" "La pagina di configurazione può essere usata solo per creare il primo " "utente! Se hai dimenticato le credenziali del tuo super utente controlla la " @@ -1976,158 +1868,3 @@ msgstr "È stato fornito un link di invito non valido!" #: .\cookbook\views\views.py:470 msgid "Invite Link not valid or already used!" msgstr "Il link di invito non è valido o è stato già usato!" - -#~ msgid "Export Base64 encoded image?" -#~ msgstr "Esportare immagini codificate in Base64?" - -#~ msgid "Download export directly or show on page?" -#~ msgstr "Scaricare l'esportazione direttamente o mostrare sulla pagina?" - -#~ msgid "Simply paste a JSON export into this textarea and click import." -#~ msgstr "" -#~ "Semplicemente incolla un'esportazione JSON in questa area di testo e " -#~ "clicca su importa." - -#~ msgid "Scaling factor for recipe." -#~ msgstr "Fattore di ridimensionamento per le ricette." - -#~ msgid "Exported Recipe" -#~ msgstr "Ricette Esportate" - -#~ msgid "Copy to clipboard" -#~ msgstr "Copia negli appunti" - -#~ msgid "Copied!" -#~ msgstr "Copiato!" - -#~ msgid "Copy list to clipboard" -#~ msgstr "Copia la lista negli appunti" - -#~ msgid "Error" -#~ msgstr "Errore" - -#~ msgid "There was an error loading the recipe!" -#~ msgstr "Si è verificato un errore durante il caricamento della ricetta!" - -#~ msgid "Updated" -#~ msgstr "Caricato" - -#~ msgid "Changes saved successfully!" -#~ msgstr "Cambiamenti salvati con successo!" - -#~ msgid "There was an error updating the recipe!" -#~ msgstr "Si è verificato un errore durante l'aggiornamento della ricetta!" - -#~ msgid "Are you sure that you want to delete this ingredient?" -#~ msgstr "Sei sicuro di voler eliminare questo ingrediente?" - -#~ msgid "Are you sure that you want to delete this step?" -#~ msgstr "Sei sicuro di voler eliminare questo step?" - -#~ msgid "There was an error loading a resource!" -#~ msgstr "Si è verificato un errore durante il caricamento di una risorsa!" - -#~ msgid "Recipe Multiplier" -#~ msgstr "Moltiplicatore di Ricetta" - -#~ msgid "" -#~ "When deleting a meal type all entries using that type will be deleted as " -#~ "well. Deletion will apply when configuration is saved. Do you want to " -#~ "proceed?" -#~ msgstr "" -#~ "Quando elimi un tipo di pasto tutte le voci che usano quel tipo verranno " -#~ "eliminate. L'eliminazione avviene quando la configurazione viene salvata. " -#~ "Vuoi procedere?" - -#~ msgid "Add to Book" -#~ msgstr "Aggiungi a libro" - -#~ msgid "Add to Plan" -#~ msgstr "Aggiungi a piano" - -#~ msgid "Print" -#~ msgstr "Stampa" - -#~ msgid "Share" -#~ msgstr "Condividi" - -#~ msgid "in" -#~ msgstr "in" - -#~ msgid "Preparation time ~" -#~ msgstr "Tempo di preparazione ~" - -#~ msgid "Minutes" -#~ msgstr "Minuti" - -#~ msgid "View external recipe" -#~ msgstr "Mostra ricetta esterna" - -#~ msgid "External recipe image" -#~ msgstr "Immagine ricetta esterna" - -#~ msgid "External recipe" -#~ msgstr "Ricetta Esterna" - -#~ msgid "" -#~ "\n" -#~ " This is an external recipe, which " -#~ "means you can only view it by opening the link\n" -#~ " above.\n" -#~ " You can convert this recipe to a " -#~ "fancy recipe by pressing the convert button. The\n" -#~ " original\n" -#~ " file\n" -#~ " will still be accessible.\n" -#~ " " -#~ msgstr "" -#~ "\n" -#~ "Questa è una ricetta esterna, che significa puoi solo aprirla con il " -#~ "link \n" -#~ "qui sopra.\n" -#~ "Puoi convertire questa ricetta ad una più bella cliccando il tasto " -#~ "Converti.\n" -#~ "Il\n" -#~ "file \n" -#~ "originale\n" -#~ "sarà sempre accessibile." - -#~ msgid "Convert now!" -#~ msgstr "Converti ora!" - -#~ msgid "Your username and password didn't match. Please try again." -#~ msgstr "" -#~ "La combinazione inserita di username e password non è valida. Riprova." - -#~ msgid "There was an error updating a resource!" -#~ msgstr "Si è verificato un errore durante l'aggiornamento di una risorsa!" - -#~ msgid "Object created successfully!" -#~ msgstr "Oggetto creato con successo!" - -#~ msgid "Please enter a valid food" -#~ msgstr "Inserisci un alimento valido" - -#~ msgid "Already importing the selected recipe, please wait!" -#~ msgstr "L'importazione della ricetta selezionata è già in corso, attendere!" - -#~ msgid "An error occurred while trying to import this recipe!" -#~ msgstr "" -#~ "Si è verificato un errore durante il tentativo d'importazione di questa " -#~ "ricetta!" - -#~ msgid "Recipe imported successfully!" -#~ msgstr "Ricetta importata con successo!" - -#~ msgid "Something went wrong during the import!" -#~ msgstr "Qualcosa è andato storto durante l'importazione!" - -#~ msgid "Could not parse the supplied JSON!" -#~ msgstr "Impossibile analizzare il codice JSON!" - -#~ msgid "" -#~ "External recipes cannot be exported, please share the file directly or " -#~ "select an internal recipe." -#~ msgstr "" -#~ "Le ricette esterne non possono esportate, condividi direttamente il file " -#~ "oppure seleziona una ricetta interna." diff --git a/cookbook/static/vue/js/offline_view.js b/cookbook/static/vue/js/offline_view.js index 67d8c3f74..08531bef3 100644 --- a/cookbook/static/vue/js/offline_view.js +++ b/cookbook/static/vue/js/offline_view.js @@ -1 +1 @@ -(function(e){function t(t){for(var s,c,o=t[0],f=t[1],i=t[2],u=0,j=[];ut[n.id].updated_at&&(t[n.id]=n):t[n.id]=n)})),t}},data:function(){return{recipes:[],filter:""}},mounted:function(){this.loadRecipe()},methods:{formatDateTime:function(e){return i.a.locale(window.navigator.language),i()(e).format("LLL")},loadRecipe:function(){var e=this;caches.open("api-recipe").then((function(t){t.keys().then((function(t){t.forEach((function(t){caches.match(t).then((function(t){t.json().then((function(t){e.recipes.push(t)}))}))}))}))}))}}},u=d,j=n("2877"),l=Object(j["a"])(u,a,r,!1,null,null,null),b=l.exports;s["default"].config.productionTip=!1,new s["default"]({render:function(e){return e(b)}}).$mount("#app")},fa7d:function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"f",(function(){return c})),n.d(t,"a",(function(){return o})),n.d(t,"e",(function(){return f})),n.d(t,"b",(function(){return i})),n.d(t,"g",(function(){return d})),n.d(t,"d",(function(){return j}));n("99af");var s=n("59e4");function a(e,t,n){var s=Math.floor(e),a=1,r=s+1,c=1;if(e!==s)while(a<=t&&c<=t){var o=(s+r)/(a+c);if(e===o){a+c<=t?(a+=c,s+=r,c=t+1):a>c?c=t+1:a=t+1;break}et&&(a=c,s=r),!n)return[0,s,a];var f=Math.floor(s/a);return[f,s-f*a,a]}var r={methods:{makeToast:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return c(e,t,n)}}};function c(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=new s["a"];a.$bvToast.toast(t,{title:e,variant:n,toaster:"b-toaster-top-center",solid:!0})}var o={methods:{_:function(e){return f(e)}}};function f(e){return window.gettext(e)}var i={methods:{resolveDjangoUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return d(e,t)}}};function d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return null!==t?window.Urls[e](t):window.Urls[e]()}function u(e){return window.USER_PREF[e]}function j(e,t){if(u("user_fractions")){var n="",s=a.cont(e*t,9,!0);return s[0]>0&&(n+=s[0]),s[1]>0&&(n+=" ".concat(s[1],"").concat(s[2],"")),n}return l(e*t)}function l(e){var t=u("user_fractions")?u("user_fractions"):2;return+(Math.round(e+"e+".concat(t))+"e-".concat(t))}}}); \ No newline at end of file +(function(e){function t(t){for(var s,c,f=t[0],o=t[1],i=t[2],u=0,j=[];ut[n.id].updated_at&&(t[n.id]=n):t[n.id]=n)})),t}},data:function(){return{recipes:[],filter:""}},mounted:function(){this.loadRecipe()},methods:{formatDateTime:function(e){return i.a.locale(window.navigator.language),i()(e).format("LLL")},loadRecipe:function(){var e=this;caches.open("api-recipe").then((function(t){t.keys().then((function(t){t.forEach((function(t){caches.match(t).then((function(t){t.json().then((function(t){e.recipes.push(t)}))}))}))}))}))}}},u=d,j=n("2877"),l=Object(j["a"])(u,a,r,!1,null,null,null),b=l.exports;s["default"].config.productionTip=!1,new s["default"]({render:function(e){return e(b)}}).$mount("#app")},fa7d:function(e,t,n){"use strict";n.d(t,"c",(function(){return r})),n.d(t,"f",(function(){return c})),n.d(t,"a",(function(){return f})),n.d(t,"e",(function(){return o})),n.d(t,"b",(function(){return i})),n.d(t,"g",(function(){return d})),n.d(t,"d",(function(){return j}));n("99af");var s=n("59e4");function a(e,t,n){var s=Math.floor(e),a=1,r=s+1,c=1;if(e!==s)while(a<=t&&c<=t){var f=(s+r)/(a+c);if(e===f){a+c<=t?(a+=c,s+=r,c=t+1):a>c?c=t+1:a=t+1;break}et&&(a=c,s=r),!n)return[0,s,a];var o=Math.floor(s/a);return[o,s-o*a,a]}var r={methods:{makeToast:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return c(e,t,n)}}};function c(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=new s["a"];a.$bvToast.toast(t,{title:e,variant:n,toaster:"b-toaster-top-center",solid:!0})}var f={methods:{_:function(e){return o(e)}}};function o(e){return window.gettext(e)}var i={methods:{resolveDjangoUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return d(e,t)}}};function d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return null!==t?window.Urls[e](t):window.Urls[e]()}function u(e){return window.USER_PREF[e]}function j(e,t){if(u("use_fractions")){var n="",s=a(e*t,9,!0);return s[0]>0&&(n+=s[0]),s[1]>0&&(n+=" ".concat(s[1],"").concat(s[2],"")),n}return l(e*t)}function l(e){var t=u("user_fractions")?u("user_fractions"):2;return+(Math.round(e+"e+".concat(t))+"e-".concat(t))}}}); \ No newline at end of file diff --git a/cookbook/static/vue/js/recipe_view.js b/cookbook/static/vue/js/recipe_view.js index a567afe98..2f5efe259 100644 --- a/cookbook/static/vue/js/recipe_view.js +++ b/cookbook/static/vue/js/recipe_view.js @@ -1 +1 @@ -(function(e){function t(t){for(var i,r,c=t[0],o=t[1],l=t[2],p=0,f=[];p0?s("div",{staticClass:"col-md-6 order-md-1 col-sm-12 order-sm-2 col-12 order-2"},[s("div",{staticClass:"card border-primary"},[s("div",{staticClass:"card-body"},[s("div",{staticClass:"row"},[s("div",{staticClass:"col col-md-8"},[s("h4",{staticClass:"card-title"},[s("i",{staticClass:"fas fa-pepper-hot"}),e._v(" "+e._s(e._("Ingredients")))])])]),s("br"),s("div",{staticClass:"row"},[s("div",{staticClass:"col-md-12"},[s("table",{staticClass:"table table-sm"},[e._l(e.recipe.steps,(function(t){return[e._l(t.ingredients,(function(t){return[s("Ingredient",{key:t.id,attrs:{ingredient:t,ingredient_factor:e.ingredient_factor},on:{"checked-state-changed":e.updateIngredientCheckedState}})]}))]}))],2)])])])])]):e._e(),s("div",{staticClass:"col-12 order-1 col-sm-12 order-sm-1 col-md-6 order-md-2"},[s("div",{staticClass:"row"},[s("div",{staticClass:"col-12"},[null!==e.recipe.image?s("img",{staticClass:"img img-fluid rounded",staticStyle:{"max-height":"30vh"},attrs:{src:e.recipe.image,alt:e._("Recipe Image")}}):e._e()])]),s("div",{staticClass:"row",staticStyle:{"margin-top":"2vh","margin-bottom":"2vh"}},[s("div",{staticClass:"col-12"},[s("Nutrition",{attrs:{recipe:e.recipe,ingredient_factor:e.ingredient_factor}})],1)])])]),e.recipe.internal?e._e():[e.recipe.file_path.includes(".pdf")?s("div",[s("PdfViewer",{attrs:{recipe:e.recipe}})],1):e._e(),e.recipe.file_path.includes(".png")||e.recipe.file_path.includes(".jpg")||e.recipe.file_path.includes(".jpeg")?s("div",[s("ImageViewer",{attrs:{recipe:e.recipe}})],1):e._e()],e._l(e.recipe.steps,(function(t,i){return s("div",{key:t.id,staticStyle:{"margin-top":"1vh"}},[s("Step",{attrs:{recipe:e.recipe,step:t,ingredient_factor:e.ingredient_factor,index:i,start_time:e.start_time},on:{"update-start-time":e.updateStartTime,"checked-state-changed":e.updateIngredientCheckedState}})],1)}))],2),s("add-recipe-to-book",{attrs:{recipe:e.recipe}})],2)},n=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"my-auto",staticStyle:{"padding-right":"4px"}},[s("i",{staticClass:"fas fa-user-clock fa-2x text-primary"})])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"my-auto",staticStyle:{"padding-right":"4px"}},[s("i",{staticClass:"far fa-clock fa-2x text-primary"})])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"my-auto",staticStyle:{"padding-right":"4px"}},[s("i",{staticClass:"fas fa-pizza-slice fa-2x text-primary"})])}],r=s("b85c"),c=s("5f5b"),o=(s("2dd8"),s("bc3a")),l=s.n(o),d=s("fa7d");function p(e){var t=Object(d["g"])("api:recipe-detail",e);return void 0!==window.SHARE_UID&&(t+="?share="+window.SHARE_UID),l.a.get(t).then((function(e){return e.data})).catch((function(e){_(e,"There was an error loading a resource!","danger")}))}function f(e){return l.a.post(Object(d["g"])("api:cooklog-list"),e).then((function(e){Object(d["f"])("Saved","Cook Log entry saved!","success")})).catch((function(e){_(e,"There was an error creating a resource!","danger")}))}function u(e){return l.a.get(Object(d["g"])("api:recipebook-list")+"?query="+e).then((function(e){return e.data})).catch((function(e){_(e,"There was an error creating a resource!","danger")}))}function m(e){return l.a.post(Object(d["g"])("api:recipebookentry-list"),e).then((function(e){Object(d["f"])("Saved","Recipe Book entry saved!","success")})).catch((function(e){_(e,"There was an error creating a resource!","danger")}))}function _(e,t){if("response"in e){console.log(e.response);var s="statusText"in e.response?e.response.statusText:Object(d["e"])("Error");t+="\n\n"+JSON.stringify(e.response.data),Object(d["f"])(s,t,"danger")}else Object(d["f"])("Error",t,"danger"),console.log(e)}l.a.defaults.xsrfCookieName="csrftoken",l.a.defaults.xsrfHeaderName="X-CSRFTOKEN";var v=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("hr"),"TEXT"===e.step.type?[e.recipe.steps.length>1?s("div",{staticClass:"row"},[s("div",{staticClass:"col col-md-8"},[s("h5",{staticClass:"text-primary"},[e.step.name?[e._v(e._s(e.step.name))]:[e._v(e._s(e._("Step"))+" "+e._s(e.index+1))],0!==e.step.time?s("small",{staticClass:"text-muted",staticStyle:{"margin-left":"4px"}},[s("i",{staticClass:"fas fa-user-clock"}),e._v(" "+e._s(e.step.time)+" "+e._s(e._("min"))+" ")]):e._e(),""!==e.start_time?s("small",{staticClass:"d-print-none"},[s("b-link",{attrs:{id:"id_reactive_popover_"+e.step.id,href:"#"},on:{click:e.openPopover}},[e._v(" "+e._s(e.moment(e.start_time).add(e.step.time_offset,"minutes").format("HH:mm"))+" ")])],1):e._e()],2)]),s("div",{staticClass:"col col-md-4",staticStyle:{"text-align":"right"}},[s("b-button",{staticClass:"shadow-none",class:{"text-primary":e.details_visible,"text-success":!e.details_visible},staticStyle:{border:"none",background:"none"},on:{click:function(t){e.details_visible=!e.details_visible}}},[s("i",{staticClass:"far fa-check-circle"})])],1)]):e._e(),s("b-collapse",{attrs:{id:"collapse-1"},model:{value:e.details_visible,callback:function(t){e.details_visible=t},expression:"details_visible"}},[s("div",{staticClass:"row"},[e.step.ingredients.length>0&&e.recipe.steps.length>1?s("div",{staticClass:"col col-md-4"},[s("table",{staticClass:"table table-sm"},[e._l(e.step.ingredients,(function(t){return[s("Ingredient",{key:t.id,attrs:{ingredient:t,ingredient_factor:e.ingredient_factor},on:{"checked-state-changed":function(s){return e.$emit("checked-state-changed",t)}}})]}))],2)]):e._e(),s("div",{staticClass:"col",class:{"col-md-8":e.recipe.steps.length>1,"col-md-12":e.recipe.steps.length<=1}},[s("compile-component",{attrs:{code:e.step.ingredients_markdown,ingredient_factor:e.ingredient_factor}})],1)])])]:e._e(),"TIME"===e.step.type?[s("div",{staticClass:"row"},[s("div",{staticClass:"col-md-8 offset-md-2",staticStyle:{"text-align":"center"}},[s("h4",{staticClass:"text-primary"},[e.step.name?[e._v(e._s(e.step.name))]:[e._v(e._s(e._("Step"))+" "+e._s(e.index+1))]],2),0!==e.step.time?s("span",{staticClass:"text-muted",staticStyle:{"margin-left":"4px"}},[s("i",{staticClass:"fa fa-stopwatch"}),e._v(" "+e._s(e.step.time)+" "+e._s(e._("min")))]):e._e(),""!==e.start_time?s("b-link",{staticClass:"d-print-none",attrs:{id:"id_reactive_popover_"+e.step.id,href:"#"},on:{click:e.openPopover}},[e._v(" "+e._s(e.moment(e.start_time).add(e.step.time_offset,"minutes").format("HH:mm"))+" ")]):e._e()],1),s("div",{staticClass:"col-md-2",staticStyle:{"text-align":"right"}},[s("b-button",{staticClass:"shadow-none",class:{"text-primary":e.details_visible,"text-success":!e.details_visible},staticStyle:{border:"none",background:"none"},on:{click:function(t){e.details_visible=!e.details_visible}}},[s("i",{staticClass:"far fa-check-circle"})])],1)]),s("b-collapse",{attrs:{id:"collapse-1"},model:{value:e.details_visible,callback:function(t){e.details_visible=t},expression:"details_visible"}},[""!==e.step.instruction?s("div",{staticClass:"row"},[s("div",{staticClass:"col col-md-12",staticStyle:{"text-align":"center"}},[s("compile-component",{attrs:{code:e.step.ingredients_markdown,ingredient_factor:e.ingredient_factor}})],1)]):e._e()])]:e._e(),""!==e.start_time?s("div",[s("b-popover",{ref:"id_reactive_popover_"+e.step.id,attrs:{target:"id_reactive_popover_"+e.step.id,triggers:"click",placement:"bottom",title:e._("Step start time")}},[s("div",[s("b-form-group",{staticClass:"mb-1",attrs:{label:"Time","label-for":"popover-input-1","label-cols":"3"}},[s("b-form-input",{attrs:{type:"datetime-local",id:"popover-input-1",size:"sm"},model:{value:e.set_time_input,callback:function(t){e.set_time_input=t},expression:"set_time_input"}})],1)],1),s("div",{staticClass:"row",staticStyle:{"margin-top":"1vh"}},[s("div",{staticClass:"col-12",staticStyle:{"text-align":"right"}},[s("b-button",{staticStyle:{"margin-right":"8px"},attrs:{size:"sm",variant:"secondary"},on:{click:e.closePopover}},[e._v("Cancel")]),s("b-button",{attrs:{size:"sm",variant:"primary"},on:{click:e.updateTime}},[e._v("Ok")])],1)])])],1):e._e()],2)},g=[],b=(s("a9e3"),function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{on:{click:function(t){return e.$emit("checked-state-changed",e.ingredient)}}},[e.ingredient.is_header?[s("td",{attrs:{colspan:"5"}},[s("b",[e._v(e._s(e.ingredient.note))])])]:[s("td",[e.ingredient.checked?s("i",{staticClass:"far fa-check-circle text-success"}):e._e(),e.ingredient.checked?e._e():s("i",{staticClass:"far fa-check-circle text-primary"})]),s("td",[0!==e.ingredient.amount?s("span",[e._v(e._s(e.calculateAmount(e.ingredient.amount)))]):e._e()]),s("td",[null===e.ingredient.unit||e.ingredient.no_amount?e._e():s("span",[e._v(e._s(e.ingredient.unit.name))])]),s("td",[null!==e.ingredient.food?[null!==e.ingredient.food.recipe?s("a",{attrs:{href:e.resolveDjangoUrl("view_recipe",e.ingredient.food.recipe),target:"_blank",rel:"noopener noreferrer"}},[e._v(e._s(e.ingredient.food.name))]):e._e(),null===e.ingredient.food.recipe?s("span",[e._v(e._s(e.ingredient.food.name))]):e._e()]:e._e()],2),s("td",[e.ingredient.note?s("div",[s("span",{directives:[{name:"b-popover",rawName:"v-b-popover.hover",value:e.ingredient.note,expression:"ingredient.note",modifiers:{hover:!0}}],staticClass:"d-print-none"},[s("i",{staticClass:"far fa-comment"})]),s("div",{staticClass:"d-none d-print-block"},[s("i",{staticClass:"far fa-comment-alt"}),e._v(" "+e._s(e.ingredient.note)+" ")])]):e._e()])]],2)}),h=[],j={name:"Ingredient",props:{ingredient:Object,ingredient_factor:{type:Number,default:1}},mixins:[d["b"]],data:function(){return{checked:!1}},methods:{calculateAmount:function(e){return Object(d["d"])(e,this.ingredient_factor)}}},y=j,C=s("2877"),k=Object(C["a"])(y,b,h,!1,null,null,null),w=k.exports,x=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s(e.compiled,{tag:"component",attrs:{ingredient_factor:e.ingredient_factor,code:e.code}})],1)},O=[],S=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("span",[e._v(e._s(e.calculateAmount(e.number)))])},E=[],$={name:"ScalableNumber",props:{number:Number,factor:{type:Number,default:4}},methods:{calculateAmount:function(e){return Object(d["d"])(e,this.factor)}}},z=$,T=Object(C["a"])(z,S,E,!1,null,null,null),N=T.exports,P={name:"CompileComponent",props:["code","ingredient_factor"],data:function(){return{compiled:null}},mounted:function(){this.compiled=i["default"].component("compiled-component",{props:["ingredient_factor","code"],components:{ScalableNumber:N},template:"
".concat(this.code,"
")})}},M=P,D=Object(C["a"])(M,x,O,!1,null,null,null),R=D.exports,U=s("c1df"),I=s.n(U);i["default"].prototype.moment=I.a;var A={name:"Step",mixins:[d["a"]],components:{Ingredient:w,CompileComponent:R},props:{step:Object,ingredient_factor:Number,index:Number,recipe:Object,start_time:String},data:function(){return{details_visible:!0,set_time_input:""}},mounted:function(){this.set_time_input=I()(this.start_time).add(this.step.time_offset,"minutes").format("yyyy-MM-DDTHH:mm")},methods:{calculateAmount:function(e){return Object(d["d"])(e,this.ingredient_factor)},updateTime:function(){var e=I()(this.set_time_input).add(-1*this.step.time_offset,"minutes").format("yyyy-MM-DDTHH:mm");this.$emit("update-start-time",e),this.closePopover()},closePopover:function(){this.$refs["id_reactive_popover_".concat(this.step.id)].$emit("close")},openPopover:function(){this.$refs["id_reactive_popover_".concat(this.step.id)].$emit("open")}}},H=A,B=Object(C["a"])(H,v,g,!1,null,null,null),L=B.exports,V=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"dropdown"},[e._m(0),s("div",{staticClass:"dropdown-menu dropdown-menu-right",attrs:{"aria-labelledby":"dropdownMenuLink"}},[s("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("edit_recipe",e.recipe.id)}},[s("i",{staticClass:"fas fa-pencil-alt fa-fw"}),e._v(" "+e._s(e._("Edit")))]),e.recipe.internal?e._e():s("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("edit_convert_recipe",e.recipe.id)}},[s("i",{staticClass:"fas fa-exchange-alt fa-fw"}),e._v(" "+e._s(e._("Convert to internal recipe")))]),s("button",{staticClass:"dropdown-item",on:{click:function(t){return e.$bvModal.show("id_modal_add_book")}}},[s("i",{staticClass:"fas fa-bookmark fa-fw"}),e._v(" "+e._s(e._("Add to Book"))+" ")]),e.recipe.internal?s("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("view_shopping")+"?r=["+e.recipe.id+","+e.servings_value+"]",target:"_blank",rel:"noopener noreferrer"}},[s("i",{staticClass:"fas fa-shopping-cart fa-fw"}),e._v(" "+e._s(e._("Add to Shopping"))+" ")]):e._e(),s("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("new_meal_plan")+"?r="+e.recipe.id,target:"_blank",rel:"noopener noreferrer"}},[s("i",{staticClass:"fas fa-calendar fa-fw"}),e._v(" "+e._s(e._("Add to Plan"))+" ")]),s("button",{staticClass:"dropdown-item",on:{click:function(t){return e.$bvModal.show("id_modal_cook_log")}}},[s("i",{staticClass:"fas fa-clipboard-list fa-fw"}),e._v(" "+e._s(e._("Log Cooking"))+" ")]),s("button",{staticClass:"dropdown-item",attrs:{onclick:"window.print()"}},[s("i",{staticClass:"fas fa-print fa-fw"}),e._v(" "+e._s(e._("Print"))+" ")]),s("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("view_export")+"?r="+e.recipe.id,target:"_blank",rel:"noopener noreferrer"}},[s("i",{staticClass:"fas fa-file-export fa-fw"}),e._v(" "+e._s(e._("Export")))]),e.recipe.internal?s("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("new_share_link",e.recipe.id),target:"_blank",rel:"noopener noreferrer"}},[s("i",{staticClass:"fas fa-share-alt fa-fw"}),e._v(" "+e._s(e._("Share")))]):e._e()])]),s("cook-log",{attrs:{recipe:e.recipe}})],1)},F=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"btn shadow-none",attrs:{href:"#",role:"button",id:"dropdownMenuLink","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}},[s("i",{staticClass:"fas fa-ellipsis-v"})])}],q=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("b-modal",{staticClass:"modal",attrs:{id:"id_modal_cook_log",title:e._("Log Recipe Cooking"),"ok-title":e._("Save"),"cancel-title":e._("Close")},on:{ok:function(t){return e.logCook()}}},[s("p",[e._v(e._s(e._("All fields are optional and can be left empty.")))]),s("form",[s("label",{attrs:{for:"id_log_servings"}},[e._v(e._s(e._("Servings")))]),s("input",{directives:[{name:"model",rawName:"v-model",value:e.logObject.servings,expression:"logObject.servings"}],staticClass:"form-control",attrs:{type:"number",id:"id_log_servings"},domProps:{value:e.logObject.servings},on:{input:function(t){t.target.composing||e.$set(e.logObject,"servings",t.target.value)}}}),s("label",{staticStyle:{"margin-top":"2vh"}},[e._v(e._s(e._("Rating"))+" - "),s("span",{attrs:{id:"id_rating_show"}},[e._v(e._s(e.logObject.rating)+"/5")])]),s("b-form-rating",{model:{value:e.logObject.rating,callback:function(t){e.$set(e.logObject,"rating",t)},expression:"logObject.rating"}}),s("label",{staticStyle:{"margin-top":"2vh"},attrs:{for:"id_date"}},[e._v(e._s(e._("Date")))]),s("input",{directives:[{name:"model",rawName:"v-model",value:e.logObject.created_at,expression:"logObject.created_at"}],staticClass:"form-control",attrs:{type:"datetime-local",id:"id_date"},domProps:{value:e.logObject.created_at},on:{input:function(t){t.target.composing||e.$set(e.logObject,"created_at",t.target.value)}}})],1)])],1)},J=[];i["default"].prototype.moment=I.a,i["default"].use(c["a"]);var K={name:"CookLog",mixins:[d["a"]],props:{recipe:Object},data:function(){return{logObject:{recipe:this.recipe.id,servings:0,rating:0,created_at:I()().format("yyyy-MM-DDTHH:mm")}}},methods:{logCook:function(){f(this.logObject)}}},G=K,X=Object(C["a"])(G,q,J,!1,null,null,null),W=X.exports,Q={name:"RecipeContextMenu",mixins:[d["b"],d["a"]],components:{CookLog:W},data:function(){return{servings_value:0}},props:{recipe:Object,servings:{type:Number,default:-1}},mounted:function(){this.servings_value=-1===this.servings?this.recipe.servings:this.servings}},Y=Q,Z=Object(C["a"])(Y,V,F,!1,null,null,null),ee=Z.exports,te=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("iframe",{staticStyle:{border:"none"},attrs:{src:e.pdfUrl,width:"100%",height:"700px"}})])},se=[],ie={name:"PdfViewer",mixins:[d["b"]],props:{recipe:Object},computed:{pdfUrl:function(){return"/static/pdfjs/viewer.html?file="+Object(d["g"])("api_get_recipe_file",this.recipe.id)}}},ae=ie,ne=Object(C["a"])(ae,te,se,!1,null,null,null),re=ne.exports,ce=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("img",{attrs:{src:e.pdfUrl,width:"100%",height:"700px",alt:e._("External Recipe Image")}})])},oe=[],le={name:"ImageViewer",mixins:[d["a"]],props:{recipe:Object},computed:{pdfUrl:function(){return Object(d["g"])("api_get_recipe_file",this.recipe.id)}}},de=le,pe=Object(C["a"])(de,ce,oe,!1,null,null,null),fe=pe.exports,ue=function(){var e=this,t=e.$createElement,s=e._self._c||t;return null!==e.recipe.nutrition?s("div",[s("div",{staticClass:"card border-success"},[s("div",{staticClass:"card-body"},[s("div",{staticClass:"row"},[s("div",{staticClass:"col-12"},[s("h4",{staticClass:"card-title"},[s("i",{staticClass:"fas fa-carrot"}),e._v(" "+e._s(e._("Nutrition")))])])]),s("div",{staticClass:"row"},[s("div",{staticClass:"col-6"},[s("i",{staticClass:"fas fa-fire fa-fw text-primary"}),e._v(" "+e._s(e._("Calories"))+" ")]),s("div",{staticClass:"col-6"},[e._v(" "+e._s(e.calculateAmount(e.recipe.nutrition.calories))+" kcal ")])]),s("div",{staticClass:"row"},[s("div",{staticClass:"col-6"},[s("i",{staticClass:"fas fa-bread-slice fa-fw text-primary"}),e._v(" "+e._s(e._("Carbohydrates"))+" ")]),s("div",{staticClass:"col-6"},[e._v(" "+e._s(e.calculateAmount(e.recipe.nutrition.carbohydrates))+" g ")])]),s("div",{staticClass:"row"},[s("div",{staticClass:"col-6"},[s("i",{staticClass:"fas fa-cheese fa-fw text-primary"}),e._v(" "+e._s(e._("Fats"))+" ")]),s("div",{staticClass:"col-6"},[e._v(" "+e._s(e.calculateAmount(e.recipe.nutrition.fats))+" g ")])]),s("div",{staticClass:"row"},[s("div",{staticClass:"col-6"},[s("i",{staticClass:"fas fa-drumstick-bite fa-fw text-primary"}),e._v(" "+e._s(e._("Proteins"))+" ")]),s("div",{staticClass:"col-6"},[e._v(" "+e._s(e.calculateAmount(e.recipe.nutrition.proteins))+" g ")])])])])]):e._e()},me=[],_e={name:"Nutrition",mixins:[d["a"]],props:{recipe:Object,ingredient_factor:Number},methods:{calculateAmount:function(e){return Object(d["d"])(e,this.ingredient_factor)}}},ve=_e,ge=Object(C["a"])(ve,ue,me,!1,null,null,null),be=ge.exports,he=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.recipe.keywords.length>0?s("div",e._l(e.recipe.keywords,(function(t){return s("small",{key:t.id,staticStyle:{padding:"2px"}},[e._v(" "+e._s(t.icon)+" "+e._s(t.name)+" ")])})),0):e._e()},je=[],ye={name:"Keywords",props:{recipe:Object}},Ce=ye,ke=Object(C["a"])(Ce,he,je,!1,null,null,null),we=ke.exports,xe=function(){var e=this,t=e.$createElement;e._self._c;return e._m(0)},Oe=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"row"},[s("div",{staticClass:"col",staticStyle:{"text-align":"center"}},[s("i",{staticClass:"fas fa-spinner fa-spin fa-10x"})])])}],Se={name:"LoadingSpinner",props:{recipe:Object}},Ee=Se,$e=Object(C["a"])(Ee,xe,Oe,!1,null,null,null),ze=$e.exports,Te=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("b-modal",{staticClass:"modal",attrs:{id:"id_modal_add_book",title:e._("Add to Book"),"ok-title":e._("Add"),"cancel-title":e._("Close")},on:{ok:function(t){return e.addToBook()}}},[s("multiselect",{attrs:{options:e.books,"preserve-search":!0,placeholder:e._("Select Book"),label:"name","track-by":"id",id:"id_books",multiple:!1},on:{"search-change":e.loadBook},model:{value:e.selected_book,callback:function(t){e.selected_book=t},expression:"selected_book"}})],1)],1)},Ne=[],Pe=s("8e5f"),Me=s.n(Pe);i["default"].prototype.moment=I.a,i["default"].use(c["a"]);var De={name:"AddRecipeToBook",mixins:[d["a"]],components:{Multiselect:Me.a},props:{recipe:Object},data:function(){return{books:[],selected_book:null}},mounted:function(){this.loadBook("")},methods:{loadBook:function(e){var t=this;u(e).then((function(e){t.books=e}))},addToBook:function(){m({recipe:this.recipe.id,book:this.selected_book.id})}}},Re=De,Ue=(s("60bc"),Object(C["a"])(Re,Te,Ne,!1,null,null,null)),Ie=Ue.exports;i["default"].prototype.moment=I.a,i["default"].use(c["a"]);var Ae={name:"RecipeView",mixins:[d["a"],d["b"],d["c"]],components:{PdfViewer:re,ImageViewer:fe,Ingredient:w,Step:L,RecipeContextMenu:ee,Nutrition:be,Keywords:we,LoadingSpinner:ze,AddRecipeToBook:Ie},computed:{ingredient_factor:function(){return this.servings/this.recipe.servings}},data:function(){return{loading:!0,recipe:void 0,ingredient_count:0,servings:1,start_time:""}},mounted:function(){this.loadRecipe(window.RECIPE_ID)},methods:{loadRecipe:function(e){var t=this;p(e).then((function(e){0!==window.USER_SERVINGS&&(e.servings=window.USER_SERVINGS),t.servings=e.servings;var s,i=0,a=Object(r["a"])(e.steps);try{for(a.s();!(s=a.n()).done;){var n=s.value;t.ingredient_count+=n.ingredients.length;var c,o=Object(r["a"])(n.ingredients);try{for(o.s();!(c=o.n()).done;){var l=c.value;t.$set(l,"checked",!1)}}catch(d){o.e(d)}finally{o.f()}n.time_offset=i,i+=n.time}}catch(d){a.e(d)}finally{a.f()}i>0&&(t.start_time=I()().format("yyyy-MM-DDTHH:mm")),t.recipe=e,t.loading=!1}))},updateStartTime:function(e){this.start_time=e},updateIngredientCheckedState:function(e){var t,s=Object(r["a"])(this.recipe.steps);try{for(s.s();!(t=s.n()).done;){var i,a=t.value,n=Object(r["a"])(a.ingredients);try{for(n.s();!(i=n.n()).done;){var c=i.value;c.id===e.id&&this.$set(c,"checked",!c.checked)}}catch(o){n.e(o)}finally{n.f()}}}catch(o){s.e(o)}finally{s.f()}}}},He=Ae,Be=Object(C["a"])(He,a,n,!1,null,null,null),Le=Be.exports;i["default"].config.productionTip=!1,new i["default"]({render:function(e){return e(Le)}}).$mount("#app")},4678:function(e,t,s){var i={"./af":"2bfb","./af.js":"2bfb","./ar":"8e73","./ar-dz":"a356","./ar-dz.js":"a356","./ar-kw":"423e","./ar-kw.js":"423e","./ar-ly":"1cfd","./ar-ly.js":"1cfd","./ar-ma":"0a84","./ar-ma.js":"0a84","./ar-sa":"8230","./ar-sa.js":"8230","./ar-tn":"6d83","./ar-tn.js":"6d83","./ar.js":"8e73","./az":"485c","./az.js":"485c","./be":"1fc1","./be.js":"1fc1","./bg":"84aa","./bg.js":"84aa","./bm":"a7fa","./bm.js":"a7fa","./bn":"9043","./bn-bd":"9686","./bn-bd.js":"9686","./bn.js":"9043","./bo":"d26a","./bo.js":"d26a","./br":"6887","./br.js":"6887","./bs":"2554","./bs.js":"2554","./ca":"d716","./ca.js":"d716","./cs":"3c0d","./cs.js":"3c0d","./cv":"03ec","./cv.js":"03ec","./cy":"9797","./cy.js":"9797","./da":"0f14","./da.js":"0f14","./de":"b469","./de-at":"b3eb","./de-at.js":"b3eb","./de-ch":"bb71","./de-ch.js":"bb71","./de.js":"b469","./dv":"598a","./dv.js":"598a","./el":"8d47","./el.js":"8d47","./en-au":"0e6b","./en-au.js":"0e6b","./en-ca":"3886","./en-ca.js":"3886","./en-gb":"39a6","./en-gb.js":"39a6","./en-ie":"e1d3","./en-ie.js":"e1d3","./en-il":"7333","./en-il.js":"7333","./en-in":"ec2e","./en-in.js":"ec2e","./en-nz":"6f50","./en-nz.js":"6f50","./en-sg":"b7e9","./en-sg.js":"b7e9","./eo":"65db","./eo.js":"65db","./es":"898b","./es-do":"0a3c","./es-do.js":"0a3c","./es-mx":"b5b7","./es-mx.js":"b5b7","./es-us":"55c9","./es-us.js":"55c9","./es.js":"898b","./et":"ec18","./et.js":"ec18","./eu":"0ff2","./eu.js":"0ff2","./fa":"8df4","./fa.js":"8df4","./fi":"81e9","./fi.js":"81e9","./fil":"d69a","./fil.js":"d69a","./fo":"0721","./fo.js":"0721","./fr":"9f26","./fr-ca":"d9f8","./fr-ca.js":"d9f8","./fr-ch":"0e49","./fr-ch.js":"0e49","./fr.js":"9f26","./fy":"7118","./fy.js":"7118","./ga":"5120","./ga.js":"5120","./gd":"f6b4","./gd.js":"f6b4","./gl":"8840","./gl.js":"8840","./gom-deva":"aaf2","./gom-deva.js":"aaf2","./gom-latn":"0caa","./gom-latn.js":"0caa","./gu":"e0c5","./gu.js":"e0c5","./he":"c7aa","./he.js":"c7aa","./hi":"dc4d","./hi.js":"dc4d","./hr":"4ba9","./hr.js":"4ba9","./hu":"5b14","./hu.js":"5b14","./hy-am":"d6b6","./hy-am.js":"d6b6","./id":"5038","./id.js":"5038","./is":"0558","./is.js":"0558","./it":"6e98","./it-ch":"6f12","./it-ch.js":"6f12","./it.js":"6e98","./ja":"079e","./ja.js":"079e","./jv":"b540","./jv.js":"b540","./ka":"201b","./ka.js":"201b","./kk":"6d79","./kk.js":"6d79","./km":"e81d","./km.js":"e81d","./kn":"3e92","./kn.js":"3e92","./ko":"22f8","./ko.js":"22f8","./ku":"2421","./ku.js":"2421","./ky":"9609","./ky.js":"9609","./lb":"440c","./lb.js":"440c","./lo":"b29d","./lo.js":"b29d","./lt":"26f9","./lt.js":"26f9","./lv":"b97c","./lv.js":"b97c","./me":"293c","./me.js":"293c","./mi":"688b","./mi.js":"688b","./mk":"6909","./mk.js":"6909","./ml":"02fb","./ml.js":"02fb","./mn":"958b","./mn.js":"958b","./mr":"39bd","./mr.js":"39bd","./ms":"ebe4","./ms-my":"6403","./ms-my.js":"6403","./ms.js":"ebe4","./mt":"1b45","./mt.js":"1b45","./my":"8689","./my.js":"8689","./nb":"6ce3","./nb.js":"6ce3","./ne":"3a39","./ne.js":"3a39","./nl":"facd","./nl-be":"db29","./nl-be.js":"db29","./nl.js":"facd","./nn":"b84c","./nn.js":"b84c","./oc-lnc":"167b","./oc-lnc.js":"167b","./pa-in":"f3ff","./pa-in.js":"f3ff","./pl":"8d57","./pl.js":"8d57","./pt":"f260","./pt-br":"d2d4","./pt-br.js":"d2d4","./pt.js":"f260","./ro":"972c","./ro.js":"972c","./ru":"957c","./ru.js":"957c","./sd":"6784","./sd.js":"6784","./se":"ffff","./se.js":"ffff","./si":"eda5","./si.js":"eda5","./sk":"7be6","./sk.js":"7be6","./sl":"8155","./sl.js":"8155","./sq":"c8f3","./sq.js":"c8f3","./sr":"cf1e","./sr-cyrl":"13e9","./sr-cyrl.js":"13e9","./sr.js":"cf1e","./ss":"52bd","./ss.js":"52bd","./sv":"5fbd","./sv.js":"5fbd","./sw":"74dc","./sw.js":"74dc","./ta":"3de5","./ta.js":"3de5","./te":"5cbb","./te.js":"5cbb","./tet":"576c","./tet.js":"576c","./tg":"3b1b","./tg.js":"3b1b","./th":"10e8","./th.js":"10e8","./tk":"5aff","./tk.js":"5aff","./tl-ph":"0f38","./tl-ph.js":"0f38","./tlh":"cf755","./tlh.js":"cf755","./tr":"0e81","./tr.js":"0e81","./tzl":"cf51","./tzl.js":"cf51","./tzm":"c109","./tzm-latn":"b53d","./tzm-latn.js":"b53d","./tzm.js":"c109","./ug-cn":"6117","./ug-cn.js":"6117","./uk":"ada2","./uk.js":"ada2","./ur":"5294","./ur.js":"5294","./uz":"2e8c","./uz-latn":"010e","./uz-latn.js":"010e","./uz.js":"2e8c","./vi":"2921","./vi.js":"2921","./x-pseudo":"fd7e","./x-pseudo.js":"fd7e","./yo":"7f33","./yo.js":"7f33","./zh-cn":"5c3a","./zh-cn.js":"5c3a","./zh-hk":"49ab","./zh-hk.js":"49ab","./zh-mo":"3a6c","./zh-mo.js":"3a6c","./zh-tw":"90ea","./zh-tw.js":"90ea"};function a(e){var t=n(e);return s(t)}function n(e){if(!s.o(i,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return i[e]}a.keys=function(){return Object.keys(i)},a.resolve=n,e.exports=a,a.id="4678"},fa7d:function(e,t,s){"use strict";s.d(t,"c",(function(){return n})),s.d(t,"f",(function(){return r})),s.d(t,"a",(function(){return c})),s.d(t,"e",(function(){return o})),s.d(t,"b",(function(){return l})),s.d(t,"g",(function(){return d})),s.d(t,"d",(function(){return f}));s("99af");var i=s("59e4");function a(e,t,s){var i=Math.floor(e),a=1,n=i+1,r=1;if(e!==i)while(a<=t&&r<=t){var c=(i+n)/(a+r);if(e===c){a+r<=t?(a+=r,i+=n,r=t+1):a>r?r=t+1:a=t+1;break}et&&(a=r,i=n),!s)return[0,i,a];var o=Math.floor(i/a);return[o,i-o*a,a]}var n={methods:{makeToast:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return r(e,t,s)}}};function r(e,t){var s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=new i["a"];a.$bvToast.toast(t,{title:e,variant:s,toaster:"b-toaster-top-center",solid:!0})}var c={methods:{_:function(e){return o(e)}}};function o(e){return window.gettext(e)}var l={methods:{resolveDjangoUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return d(e,t)}}};function d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return null!==t?window.Urls[e](t):window.Urls[e]()}function p(e){return window.USER_PREF[e]}function f(e,t){if(p("user_fractions")){var s="",i=a.cont(e*t,9,!0);return i[0]>0&&(s+=i[0]),i[1]>0&&(s+=" ".concat(i[1],"").concat(i[2],"")),s}return u(e*t)}function u(e){var t=p("user_fractions")?p("user_fractions"):2;return+(Math.round(e+"e+".concat(t))+"e-".concat(t))}}}); \ No newline at end of file +(function(e){function t(t){for(var i,r,o=t[0],c=t[1],l=t[2],p=0,f=[];p0?s("div",{staticClass:"col-md-6 order-md-1 col-sm-12 order-sm-2 col-12 order-2"},[s("div",{staticClass:"card border-primary"},[s("div",{staticClass:"card-body"},[s("div",{staticClass:"row"},[s("div",{staticClass:"col col-md-8"},[s("h4",{staticClass:"card-title"},[s("i",{staticClass:"fas fa-pepper-hot"}),e._v(" "+e._s(e._("Ingredients")))])])]),s("br"),s("div",{staticClass:"row"},[s("div",{staticClass:"col-md-12"},[s("table",{staticClass:"table table-sm"},[e._l(e.recipe.steps,(function(t){return[e._l(t.ingredients,(function(t){return[s("Ingredient",{key:t.id,attrs:{ingredient:t,ingredient_factor:e.ingredient_factor},on:{"checked-state-changed":e.updateIngredientCheckedState}})]}))]}))],2)])])])])]):e._e(),s("div",{staticClass:"col-12 order-1 col-sm-12 order-sm-1 col-md-6 order-md-2"},[s("div",{staticClass:"row"},[s("div",{staticClass:"col-12"},[null!==e.recipe.image?s("img",{staticClass:"img img-fluid rounded",staticStyle:{"max-height":"30vh"},attrs:{src:e.recipe.image,alt:e._("Recipe Image")}}):e._e()])]),s("div",{staticClass:"row",staticStyle:{"margin-top":"2vh","margin-bottom":"2vh"}},[s("div",{staticClass:"col-12"},[s("Nutrition",{attrs:{recipe:e.recipe,ingredient_factor:e.ingredient_factor}})],1)])])]),e.recipe.internal?e._e():[e.recipe.file_path.includes(".pdf")?s("div",[s("PdfViewer",{attrs:{recipe:e.recipe}})],1):e._e(),e.recipe.file_path.includes(".png")||e.recipe.file_path.includes(".jpg")||e.recipe.file_path.includes(".jpeg")?s("div",[s("ImageViewer",{attrs:{recipe:e.recipe}})],1):e._e()],e._l(e.recipe.steps,(function(t,i){return s("div",{key:t.id,staticStyle:{"margin-top":"1vh"}},[s("Step",{attrs:{recipe:e.recipe,step:t,ingredient_factor:e.ingredient_factor,index:i,start_time:e.start_time},on:{"update-start-time":e.updateStartTime,"checked-state-changed":e.updateIngredientCheckedState}})],1)}))],2),s("add-recipe-to-book",{attrs:{recipe:e.recipe}})],2)},n=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"my-auto",staticStyle:{"padding-right":"4px"}},[s("i",{staticClass:"fas fa-user-clock fa-2x text-primary"})])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"my-auto",staticStyle:{"padding-right":"4px"}},[s("i",{staticClass:"far fa-clock fa-2x text-primary"})])},function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"my-auto",staticStyle:{"padding-right":"4px"}},[s("i",{staticClass:"fas fa-pizza-slice fa-2x text-primary"})])}],r=s("b85c"),o=s("5f5b"),c=(s("2dd8"),s("bc3a")),l=s.n(c),d=s("fa7d");function p(e){var t=Object(d["g"])("api:recipe-detail",e);return void 0!==window.SHARE_UID&&(t+="?share="+window.SHARE_UID),l.a.get(t).then((function(e){return e.data})).catch((function(e){_(e,"There was an error loading a resource!","danger")}))}function f(e){return l.a.post(Object(d["g"])("api:cooklog-list"),e).then((function(e){Object(d["f"])("Saved","Cook Log entry saved!","success")})).catch((function(e){_(e,"There was an error creating a resource!","danger")}))}function u(e){return l.a.get(Object(d["g"])("api:recipebook-list")+"?query="+e).then((function(e){return e.data})).catch((function(e){_(e,"There was an error creating a resource!","danger")}))}function m(e){return l.a.post(Object(d["g"])("api:recipebookentry-list"),e).then((function(e){Object(d["f"])("Saved","Recipe Book entry saved!","success")})).catch((function(e){_(e,"There was an error creating a resource!","danger")}))}function _(e,t){if("response"in e){console.log(e.response);var s="statusText"in e.response?e.response.statusText:Object(d["e"])("Error");t+="\n\n"+JSON.stringify(e.response.data),Object(d["f"])(s,t,"danger")}else Object(d["f"])("Error",t,"danger"),console.log(e)}l.a.defaults.xsrfCookieName="csrftoken",l.a.defaults.xsrfHeaderName="X-CSRFTOKEN";var v=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("hr"),"TEXT"===e.step.type?[e.recipe.steps.length>1?s("div",{staticClass:"row"},[s("div",{staticClass:"col col-md-8"},[s("h5",{staticClass:"text-primary"},[e.step.name?[e._v(e._s(e.step.name))]:[e._v(e._s(e._("Step"))+" "+e._s(e.index+1))],0!==e.step.time?s("small",{staticClass:"text-muted",staticStyle:{"margin-left":"4px"}},[s("i",{staticClass:"fas fa-user-clock"}),e._v(" "+e._s(e.step.time)+" "+e._s(e._("min"))+" ")]):e._e(),""!==e.start_time?s("small",{staticClass:"d-print-none"},[s("b-link",{attrs:{id:"id_reactive_popover_"+e.step.id,href:"#"},on:{click:e.openPopover}},[e._v(" "+e._s(e.moment(e.start_time).add(e.step.time_offset,"minutes").format("HH:mm"))+" ")])],1):e._e()],2)]),s("div",{staticClass:"col col-md-4",staticStyle:{"text-align":"right"}},[s("b-button",{staticClass:"shadow-none",class:{"text-primary":e.details_visible,"text-success":!e.details_visible},staticStyle:{border:"none",background:"none"},on:{click:function(t){e.details_visible=!e.details_visible}}},[s("i",{staticClass:"far fa-check-circle"})])],1)]):e._e(),s("b-collapse",{attrs:{id:"collapse-1"},model:{value:e.details_visible,callback:function(t){e.details_visible=t},expression:"details_visible"}},[s("div",{staticClass:"row"},[e.step.ingredients.length>0&&e.recipe.steps.length>1?s("div",{staticClass:"col col-md-4"},[s("table",{staticClass:"table table-sm"},[e._l(e.step.ingredients,(function(t){return[s("Ingredient",{key:t.id,attrs:{ingredient:t,ingredient_factor:e.ingredient_factor},on:{"checked-state-changed":function(s){return e.$emit("checked-state-changed",t)}}})]}))],2)]):e._e(),s("div",{staticClass:"col",class:{"col-md-8":e.recipe.steps.length>1,"col-md-12":e.recipe.steps.length<=1}},[s("compile-component",{attrs:{code:e.step.ingredients_markdown,ingredient_factor:e.ingredient_factor}})],1)])])]:e._e(),"TIME"===e.step.type?[s("div",{staticClass:"row"},[s("div",{staticClass:"col-md-8 offset-md-2",staticStyle:{"text-align":"center"}},[s("h4",{staticClass:"text-primary"},[e.step.name?[e._v(e._s(e.step.name))]:[e._v(e._s(e._("Step"))+" "+e._s(e.index+1))]],2),0!==e.step.time?s("span",{staticClass:"text-muted",staticStyle:{"margin-left":"4px"}},[s("i",{staticClass:"fa fa-stopwatch"}),e._v(" "+e._s(e.step.time)+" "+e._s(e._("min")))]):e._e(),""!==e.start_time?s("b-link",{staticClass:"d-print-none",attrs:{id:"id_reactive_popover_"+e.step.id,href:"#"},on:{click:e.openPopover}},[e._v(" "+e._s(e.moment(e.start_time).add(e.step.time_offset,"minutes").format("HH:mm"))+" ")]):e._e()],1),s("div",{staticClass:"col-md-2",staticStyle:{"text-align":"right"}},[s("b-button",{staticClass:"shadow-none",class:{"text-primary":e.details_visible,"text-success":!e.details_visible},staticStyle:{border:"none",background:"none"},on:{click:function(t){e.details_visible=!e.details_visible}}},[s("i",{staticClass:"far fa-check-circle"})])],1)]),s("b-collapse",{attrs:{id:"collapse-1"},model:{value:e.details_visible,callback:function(t){e.details_visible=t},expression:"details_visible"}},[""!==e.step.instruction?s("div",{staticClass:"row"},[s("div",{staticClass:"col col-md-12",staticStyle:{"text-align":"center"}},[s("compile-component",{attrs:{code:e.step.ingredients_markdown,ingredient_factor:e.ingredient_factor}})],1)]):e._e()])]:e._e(),""!==e.start_time?s("div",[s("b-popover",{ref:"id_reactive_popover_"+e.step.id,attrs:{target:"id_reactive_popover_"+e.step.id,triggers:"click",placement:"bottom",title:e._("Step start time")}},[s("div",[s("b-form-group",{staticClass:"mb-1",attrs:{label:"Time","label-for":"popover-input-1","label-cols":"3"}},[s("b-form-input",{attrs:{type:"datetime-local",id:"popover-input-1",size:"sm"},model:{value:e.set_time_input,callback:function(t){e.set_time_input=t},expression:"set_time_input"}})],1)],1),s("div",{staticClass:"row",staticStyle:{"margin-top":"1vh"}},[s("div",{staticClass:"col-12",staticStyle:{"text-align":"right"}},[s("b-button",{staticStyle:{"margin-right":"8px"},attrs:{size:"sm",variant:"secondary"},on:{click:e.closePopover}},[e._v("Cancel")]),s("b-button",{attrs:{size:"sm",variant:"primary"},on:{click:e.updateTime}},[e._v("Ok")])],1)])])],1):e._e()],2)},b=[],g=(s("a9e3"),function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("tr",{on:{click:function(t){return e.$emit("checked-state-changed",e.ingredient)}}},[e.ingredient.is_header?[s("td",{attrs:{colspan:"5"}},[s("b",[e._v(e._s(e.ingredient.note))])])]:[s("td",[e.ingredient.checked?s("i",{staticClass:"far fa-check-circle text-success"}):e._e(),e.ingredient.checked?e._e():s("i",{staticClass:"far fa-check-circle text-primary"})]),s("td",[0!==e.ingredient.amount?s("span",{domProps:{innerHTML:e._s(e.calculateAmount(e.ingredient.amount))}}):e._e()]),s("td",[null===e.ingredient.unit||e.ingredient.no_amount?e._e():s("span",[e._v(e._s(e.ingredient.unit.name))])]),s("td",[null!==e.ingredient.food?[null!==e.ingredient.food.recipe?s("a",{attrs:{href:e.resolveDjangoUrl("view_recipe",e.ingredient.food.recipe),target:"_blank",rel:"noopener noreferrer"}},[e._v(e._s(e.ingredient.food.name))]):e._e(),null===e.ingredient.food.recipe?s("span",[e._v(e._s(e.ingredient.food.name))]):e._e()]:e._e()],2),s("td",[e.ingredient.note?s("div",[s("span",{directives:[{name:"b-popover",rawName:"v-b-popover.hover",value:e.ingredient.note,expression:"ingredient.note",modifiers:{hover:!0}}],staticClass:"d-print-none"},[s("i",{staticClass:"far fa-comment"})]),s("div",{staticClass:"d-none d-print-block"},[s("i",{staticClass:"far fa-comment-alt"}),e._v(" "+e._s(e.ingredient.note)+" ")])]):e._e()])]],2)}),h=[],j={name:"Ingredient",props:{ingredient:Object,ingredient_factor:{type:Number,default:1}},mixins:[d["b"]],data:function(){return{checked:!1}},methods:{calculateAmount:function(e){return Object(d["d"])(e,this.ingredient_factor)}}},y=j,C=s("2877"),k=Object(C["a"])(y,g,h,!1,null,null,null),w=k.exports,x=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s(e.compiled,{tag:"component",attrs:{ingredient_factor:e.ingredient_factor,code:e.code}})],1)},O=[],S=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("span",{domProps:{innerHTML:e._s(e.calculateAmount(e.number))}})},E=[],T={name:"ScalableNumber",props:{number:Number,factor:{type:Number,default:4}},methods:{calculateAmount:function(e){return Object(d["d"])(e,this.factor)}}},$=T,P=Object(C["a"])($,S,E,!1,null,null,null),M=P.exports,z={name:"CompileComponent",props:["code","ingredient_factor"],data:function(){return{compiled:null}},mounted:function(){this.compiled=i["default"].component("compiled-component",{props:["ingredient_factor","code"],components:{ScalableNumber:M},template:"
".concat(this.code,"
")})}},N=z,D=Object(C["a"])(N,x,O,!1,null,null,null),R=D.exports,U=s("c1df"),H=s.n(U);i["default"].prototype.moment=H.a;var I={name:"Step",mixins:[d["a"]],components:{Ingredient:w,CompileComponent:R},props:{step:Object,ingredient_factor:Number,index:Number,recipe:Object,start_time:String},data:function(){return{details_visible:!0,set_time_input:""}},mounted:function(){this.set_time_input=H()(this.start_time).add(this.step.time_offset,"minutes").format("yyyy-MM-DDTHH:mm")},methods:{calculateAmount:function(e){return Object(d["d"])(e,this.ingredient_factor)},updateTime:function(){var e=H()(this.set_time_input).add(-1*this.step.time_offset,"minutes").format("yyyy-MM-DDTHH:mm");this.$emit("update-start-time",e),this.closePopover()},closePopover:function(){this.$refs["id_reactive_popover_".concat(this.step.id)].$emit("close")},openPopover:function(){this.$refs["id_reactive_popover_".concat(this.step.id)].$emit("open")}}},A=I,L=Object(C["a"])(A,v,b,!1,null,null,null),B=L.exports,V=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("div",{staticClass:"dropdown"},[e._m(0),s("div",{staticClass:"dropdown-menu dropdown-menu-right",attrs:{"aria-labelledby":"dropdownMenuLink"}},[s("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("edit_recipe",e.recipe.id)}},[s("i",{staticClass:"fas fa-pencil-alt fa-fw"}),e._v(" "+e._s(e._("Edit")))]),e.recipe.internal?e._e():s("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("edit_convert_recipe",e.recipe.id)}},[s("i",{staticClass:"fas fa-exchange-alt fa-fw"}),e._v(" "+e._s(e._("Convert to internal recipe")))]),s("button",{staticClass:"dropdown-item",on:{click:function(t){return e.$bvModal.show("id_modal_add_book")}}},[s("i",{staticClass:"fas fa-bookmark fa-fw"}),e._v(" "+e._s(e._("Add to Book"))+" ")]),e.recipe.internal?s("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("view_shopping")+"?r=["+e.recipe.id+","+e.servings_value+"]",target:"_blank",rel:"noopener noreferrer"}},[s("i",{staticClass:"fas fa-shopping-cart fa-fw"}),e._v(" "+e._s(e._("Add to Shopping"))+" ")]):e._e(),s("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("new_meal_plan")+"?r="+e.recipe.id,target:"_blank",rel:"noopener noreferrer"}},[s("i",{staticClass:"fas fa-calendar fa-fw"}),e._v(" "+e._s(e._("Add to Plan"))+" ")]),s("button",{staticClass:"dropdown-item",on:{click:function(t){return e.$bvModal.show("id_modal_cook_log")}}},[s("i",{staticClass:"fas fa-clipboard-list fa-fw"}),e._v(" "+e._s(e._("Log Cooking"))+" ")]),s("button",{staticClass:"dropdown-item",attrs:{onclick:"window.print()"}},[s("i",{staticClass:"fas fa-print fa-fw"}),e._v(" "+e._s(e._("Print"))+" ")]),s("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("view_export")+"?r="+e.recipe.id,target:"_blank",rel:"noopener noreferrer"}},[s("i",{staticClass:"fas fa-file-export fa-fw"}),e._v(" "+e._s(e._("Export")))]),e.recipe.internal?s("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("new_share_link",e.recipe.id),target:"_blank",rel:"noopener noreferrer"}},[s("i",{staticClass:"fas fa-share-alt fa-fw"}),e._v(" "+e._s(e._("Share")))]):e._e()])]),s("cook-log",{attrs:{recipe:e.recipe}})],1)},F=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("a",{staticClass:"btn shadow-none",attrs:{href:"#",role:"button",id:"dropdownMenuLink","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}},[s("i",{staticClass:"fas fa-ellipsis-v"})])}],q=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("b-modal",{staticClass:"modal",attrs:{id:"id_modal_cook_log",title:e._("Log Recipe Cooking"),"ok-title":e._("Save"),"cancel-title":e._("Close")},on:{ok:function(t){return e.logCook()}}},[s("p",[e._v(e._s(e._("All fields are optional and can be left empty.")))]),s("form",[s("label",{attrs:{for:"id_log_servings"}},[e._v(e._s(e._("Servings")))]),s("input",{directives:[{name:"model",rawName:"v-model",value:e.logObject.servings,expression:"logObject.servings"}],staticClass:"form-control",attrs:{type:"number",id:"id_log_servings"},domProps:{value:e.logObject.servings},on:{input:function(t){t.target.composing||e.$set(e.logObject,"servings",t.target.value)}}}),s("label",{staticStyle:{"margin-top":"2vh"}},[e._v(e._s(e._("Rating"))+" - "),s("span",{attrs:{id:"id_rating_show"}},[e._v(e._s(e.logObject.rating)+"/5")])]),s("b-form-rating",{model:{value:e.logObject.rating,callback:function(t){e.$set(e.logObject,"rating",t)},expression:"logObject.rating"}}),s("label",{staticStyle:{"margin-top":"2vh"},attrs:{for:"id_date"}},[e._v(e._s(e._("Date")))]),s("input",{directives:[{name:"model",rawName:"v-model",value:e.logObject.created_at,expression:"logObject.created_at"}],staticClass:"form-control",attrs:{type:"datetime-local",id:"id_date"},domProps:{value:e.logObject.created_at},on:{input:function(t){t.target.composing||e.$set(e.logObject,"created_at",t.target.value)}}})],1)])],1)},J=[];i["default"].prototype.moment=H.a,i["default"].use(o["a"]);var K={name:"CookLog",mixins:[d["a"]],props:{recipe:Object},data:function(){return{logObject:{recipe:this.recipe.id,servings:0,rating:0,created_at:H()().format("yyyy-MM-DDTHH:mm")}}},methods:{logCook:function(){f(this.logObject)}}},G=K,X=Object(C["a"])(G,q,J,!1,null,null,null),W=X.exports,Q={name:"RecipeContextMenu",mixins:[d["b"],d["a"]],components:{CookLog:W},data:function(){return{servings_value:0}},props:{recipe:Object,servings:{type:Number,default:-1}},mounted:function(){this.servings_value=-1===this.servings?this.recipe.servings:this.servings}},Y=Q,Z=Object(C["a"])(Y,V,F,!1,null,null,null),ee=Z.exports,te=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("iframe",{staticStyle:{border:"none"},attrs:{src:e.pdfUrl,width:"100%",height:"700px"}})])},se=[],ie={name:"PdfViewer",mixins:[d["b"]],props:{recipe:Object},computed:{pdfUrl:function(){return"/static/pdfjs/viewer.html?file="+Object(d["g"])("api_get_recipe_file",this.recipe.id)}}},ae=ie,ne=Object(C["a"])(ae,te,se,!1,null,null,null),re=ne.exports,oe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("img",{attrs:{src:e.pdfUrl,width:"100%",height:"700px",alt:e._("External Recipe Image")}})])},ce=[],le={name:"ImageViewer",mixins:[d["a"]],props:{recipe:Object},computed:{pdfUrl:function(){return Object(d["g"])("api_get_recipe_file",this.recipe.id)}}},de=le,pe=Object(C["a"])(de,oe,ce,!1,null,null,null),fe=pe.exports,ue=function(){var e=this,t=e.$createElement,s=e._self._c||t;return null!==e.recipe.nutrition?s("div",[s("div",{staticClass:"card border-success"},[s("div",{staticClass:"card-body"},[s("div",{staticClass:"row"},[s("div",{staticClass:"col-12"},[s("h4",{staticClass:"card-title"},[s("i",{staticClass:"fas fa-carrot"}),e._v(" "+e._s(e._("Nutrition")))])])]),s("div",{staticClass:"row"},[s("div",{staticClass:"col-6"},[s("i",{staticClass:"fas fa-fire fa-fw text-primary"}),e._v(" "+e._s(e._("Calories"))+" ")]),s("div",{staticClass:"col-6"},[s("span",{domProps:{innerHTML:e._s(e.calculateAmount(e.recipe.nutrition.calories))}}),e._v(" kcal ")])]),s("div",{staticClass:"row"},[s("div",{staticClass:"col-6"},[s("i",{staticClass:"fas fa-bread-slice fa-fw text-primary"}),e._v(" "+e._s(e._("Carbohydrates"))+" ")]),s("div",{staticClass:"col-6"},[s("span",{domProps:{innerHTML:e._s(e.calculateAmount(e.recipe.nutrition.carbohydrates))}}),e._v(" g ")])]),s("div",{staticClass:"row"},[s("div",{staticClass:"col-6"},[s("i",{staticClass:"fas fa-cheese fa-fw text-primary"}),e._v(" "+e._s(e._("Fats"))+" ")]),s("div",{staticClass:"col-6"},[s("span",{domProps:{innerHTML:e._s(e.calculateAmount(e.recipe.nutrition.fats))}}),e._v(" g ")])]),s("div",{staticClass:"row"},[s("div",{staticClass:"col-6"},[s("i",{staticClass:"fas fa-drumstick-bite fa-fw text-primary"}),e._v(" "+e._s(e._("Proteins"))+" ")]),s("div",{staticClass:"col-6"},[s("span",{domProps:{innerHTML:e._s(e.calculateAmount(e.recipe.nutrition.proteins))}}),e._v(" g ")])])])])]):e._e()},me=[],_e={name:"Nutrition",mixins:[d["a"]],props:{recipe:Object,ingredient_factor:Number},methods:{calculateAmount:function(e){return Object(d["d"])(e,this.ingredient_factor)}}},ve=_e,be=Object(C["a"])(ve,ue,me,!1,null,null,null),ge=be.exports,he=function(){var e=this,t=e.$createElement,s=e._self._c||t;return e.recipe.keywords.length>0?s("div",e._l(e.recipe.keywords,(function(t){return s("small",{key:t.id,staticStyle:{padding:"2px"}},[e._v(" "+e._s(t.icon)+" "+e._s(t.name)+" ")])})),0):e._e()},je=[],ye={name:"Keywords",props:{recipe:Object}},Ce=ye,ke=Object(C["a"])(Ce,he,je,!1,null,null,null),we=ke.exports,xe=function(){var e=this,t=e.$createElement;e._self._c;return e._m(0)},Oe=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"row"},[s("div",{staticClass:"col",staticStyle:{"text-align":"center"}},[s("i",{staticClass:"fas fa-spinner fa-spin fa-10x"})])])}],Se={name:"LoadingSpinner",props:{recipe:Object}},Ee=Se,Te=Object(C["a"])(Ee,xe,Oe,!1,null,null,null),$e=Te.exports,Pe=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",[s("b-modal",{staticClass:"modal",attrs:{id:"id_modal_add_book",title:e._("Add to Book"),"ok-title":e._("Add"),"cancel-title":e._("Close")},on:{ok:function(t){return e.addToBook()}}},[s("multiselect",{attrs:{options:e.books,"preserve-search":!0,placeholder:e._("Select Book"),label:"name","track-by":"id",id:"id_books",multiple:!1},on:{"search-change":e.loadBook},model:{value:e.selected_book,callback:function(t){e.selected_book=t},expression:"selected_book"}})],1)],1)},Me=[],ze=s("8e5f"),Ne=s.n(ze);i["default"].prototype.moment=H.a,i["default"].use(o["a"]);var De={name:"AddRecipeToBook",mixins:[d["a"]],components:{Multiselect:Ne.a},props:{recipe:Object},data:function(){return{books:[],selected_book:null}},mounted:function(){this.loadBook("")},methods:{loadBook:function(e){var t=this;u(e).then((function(e){t.books=e}))},addToBook:function(){m({recipe:this.recipe.id,book:this.selected_book.id})}}},Re=De,Ue=(s("60bc"),Object(C["a"])(Re,Pe,Me,!1,null,null,null)),He=Ue.exports;i["default"].prototype.moment=H.a,i["default"].use(o["a"]);var Ie={name:"RecipeView",mixins:[d["a"],d["b"],d["c"]],components:{PdfViewer:re,ImageViewer:fe,Ingredient:w,Step:B,RecipeContextMenu:ee,Nutrition:ge,Keywords:we,LoadingSpinner:$e,AddRecipeToBook:He},computed:{ingredient_factor:function(){return this.servings/this.recipe.servings}},data:function(){return{loading:!0,recipe:void 0,ingredient_count:0,servings:1,start_time:""}},mounted:function(){this.loadRecipe(window.RECIPE_ID)},methods:{loadRecipe:function(e){var t=this;p(e).then((function(e){0!==window.USER_SERVINGS&&(e.servings=window.USER_SERVINGS),t.servings=e.servings;var s,i=0,a=Object(r["a"])(e.steps);try{for(a.s();!(s=a.n()).done;){var n=s.value;t.ingredient_count+=n.ingredients.length;var o,c=Object(r["a"])(n.ingredients);try{for(c.s();!(o=c.n()).done;){var l=o.value;t.$set(l,"checked",!1)}}catch(d){c.e(d)}finally{c.f()}n.time_offset=i,i+=n.time}}catch(d){a.e(d)}finally{a.f()}i>0&&(t.start_time=H()().format("yyyy-MM-DDTHH:mm")),t.recipe=e,t.loading=!1}))},updateStartTime:function(e){this.start_time=e},updateIngredientCheckedState:function(e){var t,s=Object(r["a"])(this.recipe.steps);try{for(s.s();!(t=s.n()).done;){var i,a=t.value,n=Object(r["a"])(a.ingredients);try{for(n.s();!(i=n.n()).done;){var o=i.value;o.id===e.id&&this.$set(o,"checked",!o.checked)}}catch(c){n.e(c)}finally{n.f()}}}catch(c){s.e(c)}finally{s.f()}}}},Ae=Ie,Le=Object(C["a"])(Ae,a,n,!1,null,null,null),Be=Le.exports;i["default"].config.productionTip=!1,new i["default"]({render:function(e){return e(Be)}}).$mount("#app")},4678:function(e,t,s){var i={"./af":"2bfb","./af.js":"2bfb","./ar":"8e73","./ar-dz":"a356","./ar-dz.js":"a356","./ar-kw":"423e","./ar-kw.js":"423e","./ar-ly":"1cfd","./ar-ly.js":"1cfd","./ar-ma":"0a84","./ar-ma.js":"0a84","./ar-sa":"8230","./ar-sa.js":"8230","./ar-tn":"6d83","./ar-tn.js":"6d83","./ar.js":"8e73","./az":"485c","./az.js":"485c","./be":"1fc1","./be.js":"1fc1","./bg":"84aa","./bg.js":"84aa","./bm":"a7fa","./bm.js":"a7fa","./bn":"9043","./bn-bd":"9686","./bn-bd.js":"9686","./bn.js":"9043","./bo":"d26a","./bo.js":"d26a","./br":"6887","./br.js":"6887","./bs":"2554","./bs.js":"2554","./ca":"d716","./ca.js":"d716","./cs":"3c0d","./cs.js":"3c0d","./cv":"03ec","./cv.js":"03ec","./cy":"9797","./cy.js":"9797","./da":"0f14","./da.js":"0f14","./de":"b469","./de-at":"b3eb","./de-at.js":"b3eb","./de-ch":"bb71","./de-ch.js":"bb71","./de.js":"b469","./dv":"598a","./dv.js":"598a","./el":"8d47","./el.js":"8d47","./en-au":"0e6b","./en-au.js":"0e6b","./en-ca":"3886","./en-ca.js":"3886","./en-gb":"39a6","./en-gb.js":"39a6","./en-ie":"e1d3","./en-ie.js":"e1d3","./en-il":"7333","./en-il.js":"7333","./en-in":"ec2e","./en-in.js":"ec2e","./en-nz":"6f50","./en-nz.js":"6f50","./en-sg":"b7e9","./en-sg.js":"b7e9","./eo":"65db","./eo.js":"65db","./es":"898b","./es-do":"0a3c","./es-do.js":"0a3c","./es-mx":"b5b7","./es-mx.js":"b5b7","./es-us":"55c9","./es-us.js":"55c9","./es.js":"898b","./et":"ec18","./et.js":"ec18","./eu":"0ff2","./eu.js":"0ff2","./fa":"8df4","./fa.js":"8df4","./fi":"81e9","./fi.js":"81e9","./fil":"d69a","./fil.js":"d69a","./fo":"0721","./fo.js":"0721","./fr":"9f26","./fr-ca":"d9f8","./fr-ca.js":"d9f8","./fr-ch":"0e49","./fr-ch.js":"0e49","./fr.js":"9f26","./fy":"7118","./fy.js":"7118","./ga":"5120","./ga.js":"5120","./gd":"f6b4","./gd.js":"f6b4","./gl":"8840","./gl.js":"8840","./gom-deva":"aaf2","./gom-deva.js":"aaf2","./gom-latn":"0caa","./gom-latn.js":"0caa","./gu":"e0c5","./gu.js":"e0c5","./he":"c7aa","./he.js":"c7aa","./hi":"dc4d","./hi.js":"dc4d","./hr":"4ba9","./hr.js":"4ba9","./hu":"5b14","./hu.js":"5b14","./hy-am":"d6b6","./hy-am.js":"d6b6","./id":"5038","./id.js":"5038","./is":"0558","./is.js":"0558","./it":"6e98","./it-ch":"6f12","./it-ch.js":"6f12","./it.js":"6e98","./ja":"079e","./ja.js":"079e","./jv":"b540","./jv.js":"b540","./ka":"201b","./ka.js":"201b","./kk":"6d79","./kk.js":"6d79","./km":"e81d","./km.js":"e81d","./kn":"3e92","./kn.js":"3e92","./ko":"22f8","./ko.js":"22f8","./ku":"2421","./ku.js":"2421","./ky":"9609","./ky.js":"9609","./lb":"440c","./lb.js":"440c","./lo":"b29d","./lo.js":"b29d","./lt":"26f9","./lt.js":"26f9","./lv":"b97c","./lv.js":"b97c","./me":"293c","./me.js":"293c","./mi":"688b","./mi.js":"688b","./mk":"6909","./mk.js":"6909","./ml":"02fb","./ml.js":"02fb","./mn":"958b","./mn.js":"958b","./mr":"39bd","./mr.js":"39bd","./ms":"ebe4","./ms-my":"6403","./ms-my.js":"6403","./ms.js":"ebe4","./mt":"1b45","./mt.js":"1b45","./my":"8689","./my.js":"8689","./nb":"6ce3","./nb.js":"6ce3","./ne":"3a39","./ne.js":"3a39","./nl":"facd","./nl-be":"db29","./nl-be.js":"db29","./nl.js":"facd","./nn":"b84c","./nn.js":"b84c","./oc-lnc":"167b","./oc-lnc.js":"167b","./pa-in":"f3ff","./pa-in.js":"f3ff","./pl":"8d57","./pl.js":"8d57","./pt":"f260","./pt-br":"d2d4","./pt-br.js":"d2d4","./pt.js":"f260","./ro":"972c","./ro.js":"972c","./ru":"957c","./ru.js":"957c","./sd":"6784","./sd.js":"6784","./se":"ffff","./se.js":"ffff","./si":"eda5","./si.js":"eda5","./sk":"7be6","./sk.js":"7be6","./sl":"8155","./sl.js":"8155","./sq":"c8f3","./sq.js":"c8f3","./sr":"cf1e","./sr-cyrl":"13e9","./sr-cyrl.js":"13e9","./sr.js":"cf1e","./ss":"52bd","./ss.js":"52bd","./sv":"5fbd","./sv.js":"5fbd","./sw":"74dc","./sw.js":"74dc","./ta":"3de5","./ta.js":"3de5","./te":"5cbb","./te.js":"5cbb","./tet":"576c","./tet.js":"576c","./tg":"3b1b","./tg.js":"3b1b","./th":"10e8","./th.js":"10e8","./tk":"5aff","./tk.js":"5aff","./tl-ph":"0f38","./tl-ph.js":"0f38","./tlh":"cf755","./tlh.js":"cf755","./tr":"0e81","./tr.js":"0e81","./tzl":"cf51","./tzl.js":"cf51","./tzm":"c109","./tzm-latn":"b53d","./tzm-latn.js":"b53d","./tzm.js":"c109","./ug-cn":"6117","./ug-cn.js":"6117","./uk":"ada2","./uk.js":"ada2","./ur":"5294","./ur.js":"5294","./uz":"2e8c","./uz-latn":"010e","./uz-latn.js":"010e","./uz.js":"2e8c","./vi":"2921","./vi.js":"2921","./x-pseudo":"fd7e","./x-pseudo.js":"fd7e","./yo":"7f33","./yo.js":"7f33","./zh-cn":"5c3a","./zh-cn.js":"5c3a","./zh-hk":"49ab","./zh-hk.js":"49ab","./zh-mo":"3a6c","./zh-mo.js":"3a6c","./zh-tw":"90ea","./zh-tw.js":"90ea"};function a(e){var t=n(e);return s(t)}function n(e){if(!s.o(i,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return i[e]}a.keys=function(){return Object.keys(i)},a.resolve=n,e.exports=a,a.id="4678"},fa7d:function(e,t,s){"use strict";s.d(t,"c",(function(){return n})),s.d(t,"f",(function(){return r})),s.d(t,"a",(function(){return o})),s.d(t,"e",(function(){return c})),s.d(t,"b",(function(){return l})),s.d(t,"g",(function(){return d})),s.d(t,"d",(function(){return f}));s("99af");var i=s("59e4");function a(e,t,s){var i=Math.floor(e),a=1,n=i+1,r=1;if(e!==i)while(a<=t&&r<=t){var o=(i+n)/(a+r);if(e===o){a+r<=t?(a+=r,i+=n,r=t+1):a>r?r=t+1:a=t+1;break}et&&(a=r,i=n),!s)return[0,i,a];var c=Math.floor(i/a);return[c,i-c*a,a]}var n={methods:{makeToast:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return r(e,t,s)}}};function r(e,t){var s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=new i["a"];a.$bvToast.toast(t,{title:e,variant:s,toaster:"b-toaster-top-center",solid:!0})}var o={methods:{_:function(e){return c(e)}}};function c(e){return window.gettext(e)}var l={methods:{resolveDjangoUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return d(e,t)}}};function d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return null!==t?window.Urls[e](t):window.Urls[e]()}function p(e){return window.USER_PREF[e]}function f(e,t){if(p("use_fractions")){var s="",i=a(e*t,9,!0);return i[0]>0&&(s+=i[0]),i[1]>0&&(s+=" ".concat(i[1],"").concat(i[2],"")),s}return u(e*t)}function u(e){var t=p("user_fractions")?p("user_fractions"):2;return+(Math.round(e+"e+".concat(t))+"e-".concat(t))}}}); \ No newline at end of file diff --git a/cookbook/templates/shopping_list.html b/cookbook/templates/shopping_list.html index 4dcd36d82..c52414d09 100644 --- a/cookbook/templates/shopping_list.html +++ b/cookbook/templates/shopping_list.html @@ -542,6 +542,7 @@ this.loadShoppingList() {% if recipes %} + this.loading = true this.edit_mode = true let loadingRecipes = [] @@ -605,6 +606,7 @@ }) }, loadInitialRecipe: function (recipe, servings) { + servings = 1 //TODO temporary until i can actually fix the servings for this #453 return this.$http.get('{% url 'api:recipe-detail' 123456 %}'.replace('123456', recipe)).then((response) => { this.addRecipeToList(response.data, servings) }).catch((err) => { diff --git a/cookbook/tests/other/test_edits_recipe.py b/cookbook/tests/other/test_edits_recipe.py index c8f44979c..288f56075 100644 --- a/cookbook/tests/other/test_edits_recipe.py +++ b/cookbook/tests/other/test_edits_recipe.py @@ -11,15 +11,15 @@ class TestEditsRecipe(TestBase): def test_ld_json(self): test_list = [ {'file': 'cookbook/tests/resources/websites/ld_json_1.html', 'result_length': 3237}, - {'file': 'cookbook/tests/resources/websites/ld_json_2.html', 'result_length': 1509}, - {'file': 'cookbook/tests/resources/websites/ld_json_3.html', 'result_length': 1629}, + {'file': 'cookbook/tests/resources/websites/ld_json_2.html', 'result_length': 1525}, + {'file': 'cookbook/tests/resources/websites/ld_json_3.html', 'result_length': 1644}, {'file': 'cookbook/tests/resources/websites/ld_json_4.html', 'result_length': 1744}, - {'file': 'cookbook/tests/resources/websites/ld_json_itemList.html', 'result_length': 3206}, + {'file': 'cookbook/tests/resources/websites/ld_json_itemList.html', 'result_length': 3222}, {'file': 'cookbook/tests/resources/websites/ld_json_multiple.html', 'result_length': 1621}, - {'file': 'cookbook/tests/resources/websites/micro_data_1.html', 'result_length': 1079}, - {'file': 'cookbook/tests/resources/websites/micro_data_2.html', 'result_length': 1438}, - {'file': 'cookbook/tests/resources/websites/micro_data_3.html', 'result_length': 1148}, - {'file': 'cookbook/tests/resources/websites/micro_data_4.html', 'result_length': 4396}, + {'file': 'cookbook/tests/resources/websites/micro_data_1.html', 'result_length': 1094}, + {'file': 'cookbook/tests/resources/websites/micro_data_2.html', 'result_length': 1453}, + {'file': 'cookbook/tests/resources/websites/micro_data_3.html', 'result_length': 1163}, + {'file': 'cookbook/tests/resources/websites/micro_data_4.html', 'result_length': 4411}, ] for test in test_list: diff --git a/cookbook/views/api.py b/cookbook/views/api.py index 4feeca0ba..fd692996a 100644 --- a/cookbook/views/api.py +++ b/cookbook/views/api.py @@ -71,6 +71,8 @@ class StandardFilterMixin(ViewSetMixin): queryset = queryset.filter(updated_at__gte=updated_at) except FieldError: pass + except ValidationError: + raise APIException(_('Parameter updated_at incorrectly formatted')) limit = self.request.query_params.get('limit', None) random = self.request.query_params.get('random', False) diff --git a/cookbook/views/views.py b/cookbook/views/views.py index bb122d70d..9402efb07 100644 --- a/cookbook/views/views.py +++ b/cookbook/views/views.py @@ -252,7 +252,7 @@ def shopping_list(request, pk=None): if re.match(r'^([0-9])+,([0-9])+[.]*([0-9])*$', r): rid, multiplier = r.split(',') if recipe := Recipe.objects.filter(pk=int(rid)).first(): - recipes.append({'recipe': recipe.id, 'multiplier': multiplier}) + recipes.append({'recipe': recipe.id, 'servings': multiplier}) edit = True if 'edit' in request.GET and request.GET['edit'] == 'true' else False diff --git a/docs/features/import_export.md b/docs/features/import_export.md index 258eb562a..069687ebe 100644 --- a/docs/features/import_export.md +++ b/docs/features/import_export.md @@ -63,6 +63,11 @@ Images are saved in a directory called `images`. In order to import your Chowdown recipes simply create a `.zip` file from those two folders and import them. The folder structure should look as follows + +!!! info "_recipes" + For some reason chowdown uses `_` before the `recipes` folder. To avoid confusion the import supports both + `_recipes` and `recipes` + ``` Recipes.zip/ ├── _recipes/ diff --git a/docs/install/other.md b/docs/install/other.md index 45b50a319..1221b2094 100644 --- a/docs/install/other.md +++ b/docs/install/other.md @@ -35,6 +35,7 @@ docker-compose: environment: # all the other env - SCRIPT_NAME=/ + - JS_REVERSE_SCRIPT_PREFIX=// - STATIC_URL=//static/ - MEDIA_URL=//media/ labels: @@ -56,4 +57,4 @@ apache: I used two paths `` and `` for simplicity. In my case I have ` = recipes` and ` = serve/recipes`. One could also change the matching rules of traefik to have everything under one path. -I left out the TLS config in this example for simplicty. \ No newline at end of file +I left out the TLS config in this example for simplicty. diff --git a/recipes/settings.py b/recipes/settings.py index 3105c67f1..8de7190c5 100644 --- a/recipes/settings.py +++ b/recipes/settings.py @@ -175,6 +175,7 @@ WSGI_APPLICATION = 'recipes.wsgi.application' DATABASES = { 'default': { 'ENGINE': os.getenv('DB_ENGINE') if os.getenv('DB_ENGINE') else 'django.db.backends.sqlite3', + 'OPTIONS': ast.literal_eval(os.getenv('DB_OPTIONS')) if os.getenv('DB_OPTIONS') else {}, 'HOST': os.getenv('POSTGRES_HOST'), 'PORT': os.getenv('POSTGRES_PORT'), 'USER': os.getenv('POSTGRES_USER'), @@ -211,6 +212,7 @@ USE_L10N = True USE_TZ = True LANGUAGES = [ + ('hy', _('Armenian ')), ('ca', _('Catalan')), ('cs', _('Czech')), ('nl', _('Dutch')), @@ -228,6 +230,8 @@ LANGUAGES = [ # path for django_js_reverse to generate the javascript file containing all urls. Only done because the default command (collectstatic_js_reverse) fails to update the manifest JS_REVERSE_OUTPUT_PATH = os.path.join(BASE_DIR, "cookbook/static/django_js_reverse") +JS_REVERSE_SCRIPT_PREFIX = os.getenv('JS_REVERSE_SCRIPT_PREFIX', os.getenv('SCRIPT_NAME', '')) + STATIC_URL = os.getenv('STATIC_URL', '/static/') STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles") diff --git a/requirements.txt b/requirements.txt index 4b7ff6cbf..8ec7594f0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,10 +1,10 @@ bleach==3.3.0 bleach-whitelist==0.0.11 -Django==3.1.6 +Django==3.1.7 django-annoying==0.10.6 -django-autocomplete-light==3.8.1 +django-autocomplete-light==3.8.2 django-cleanup==5.1.0 -django-crispy-forms==1.11.0 +django-crispy-forms==1.11.1 django-emoji-picker==0.0.6 django-filter==2.4.0 django-tables2==2.3.4 @@ -12,7 +12,7 @@ djangorestframework==3.12.2 drf-writable-nested==0.6.2 gunicorn==20.0.4 lxml==4.6.2 -Markdown==3.3.3 +Markdown==3.3.4 Pillow==8.1.0 psycopg2-binary==2.8.6 python-dotenv==0.15.0 diff --git a/vue/src/apps/RecipeView/RecipeView.vue b/vue/src/apps/RecipeView/RecipeView.vue index 9278420ee..43cd0a161 100644 --- a/vue/src/apps/RecipeView/RecipeView.vue +++ b/vue/src/apps/RecipeView/RecipeView.vue @@ -24,7 +24,7 @@
-
+
@@ -36,7 +36,7 @@
-
+
@@ -48,7 +48,7 @@
-
+
diff --git a/vue/src/components/Ingredient.vue b/vue/src/components/Ingredient.vue index 8cebf42ba..5b20373f4 100644 --- a/vue/src/components/Ingredient.vue +++ b/vue/src/components/Ingredient.vue @@ -12,7 +12,7 @@ - {{ calculateAmount(ingredient.amount) }} + {{ ingredient.unit.name }} diff --git a/vue/src/components/Nutrition.vue b/vue/src/components/Nutrition.vue index b2607c40b..f1dec7127 100644 --- a/vue/src/components/Nutrition.vue +++ b/vue/src/components/Nutrition.vue @@ -15,7 +15,7 @@ {{ _('Calories') }}
- {{ calculateAmount(recipe.nutrition.calories) }} kcal + kcal
@@ -24,8 +24,7 @@ {{ _('Carbohydrates') }}
- - {{ calculateAmount(recipe.nutrition.carbohydrates) }} g + g
@@ -34,7 +33,7 @@ {{ _('Fats') }}
- {{ calculateAmount(recipe.nutrition.fats) }} g + g
@@ -43,7 +42,7 @@ {{ _('Proteins') }}
- {{ calculateAmount(recipe.nutrition.proteins) }} g + g
diff --git a/vue/src/components/ScalableNumber.vue b/vue/src/components/ScalableNumber.vue index 3f1184b5b..2054c6c1c 100644 --- a/vue/src/components/ScalableNumber.vue +++ b/vue/src/components/ScalableNumber.vue @@ -1,5 +1,5 @@ diff --git a/vue/src/utils/utils.js b/vue/src/utils/utils.js index e23be7265..96fe8c14f 100644 --- a/vue/src/utils/utils.js +++ b/vue/src/utils/utils.js @@ -78,9 +78,9 @@ export function getUserPreference(pref) { import {frac} from "@/utils/fractions"; export function calculateAmount(amount, factor) { - if (getUserPreference('user_fractions')) { + if (getUserPreference('use_fractions')) { let return_string = '' - let fraction = frac.cont((amount * factor), 9, true) + let fraction = frac((amount * factor), 9, true) if (fraction[0] > 0) { return_string += fraction[0]