From d99e52360849719fb368285aa9a4ff401ba50afc Mon Sep 17 00:00:00 2001 From: vabene1111 Date: Thu, 14 Jan 2021 00:00:26 +0100 Subject: [PATCH] added pre commit hooks and some other workflow stuff --- .pre-commit-config.yaml | 30 + cookbook/locale/ca/LC_MESSAGES/django.mo | Bin 35046 -> 36988 bytes cookbook/locale/de/LC_MESSAGES/django.mo | Bin 36065 -> 29536 bytes cookbook/locale/de/LC_MESSAGES/django.po | 1365 +++++++++++---------- cookbook/locale/it/LC_MESSAGES/django.mo | Bin 37173 -> 37186 bytes cookbook/static/vue/js/recipe_view.js | 2 +- cookbook/tests/edits/test_edits_recipe.py | 2 +- recipes/locale/de/LC_MESSAGES/django.mo | Bin 493 -> 493 bytes recipes/locale/de/LC_MESSAGES/django.po | 20 +- requirements.txt | 3 +- vue/src/components/Step.vue | 2 +- 11 files changed, 730 insertions(+), 694 deletions(-) create mode 100644 .pre-commit-config.yaml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 000000000..86fbabe8f --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,30 @@ +# See https://pre-commit.com for more information +# See https://pre-commit.com/hooks.html for more hooks +repos: + - repo: local + hooks: + - id: pre-commit-yarn-build + name: Build javascript files + entry: yarn --cwd ./vue build + language: system + types: [ python ] + pass_filenames: false + +#- id: pre-commit-django-migrations +# name: Check django migrations +# entry: bash -c './venv/bin/activate && ./manage.py makemigrations --check' +# language: system +# types: [ python ] +# pass_filenames: false +# - id: pre-commit-django-make-messages +# name: Make messages if necessary +# entry: ./manage.py makemessages -i venv -a +# language: system +# types: [ python ] +# pass_filenames: false +# - id: pre-commit-django-compile-messages +# name: Compile messages if necessary +# entry: ./manage.py compilemessages -i venv +# language: system +# types: [ python ] +# pass_filenames: false \ No newline at end of file diff --git a/cookbook/locale/ca/LC_MESSAGES/django.mo b/cookbook/locale/ca/LC_MESSAGES/django.mo index 0f65776c7ef457e87d318ed6c1defd74017a7b8c..46fe0385efed17b1f2518333ce5f2f53a232ee52 100644 GIT binary patch delta 10201 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 delta 8360 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 DzG9fP diff --git a/cookbook/locale/de/LC_MESSAGES/django.mo b/cookbook/locale/de/LC_MESSAGES/django.mo index 460db34a9f76b8ef07773738ab8b7ec53537af05..6253c5d6bc7728ab70e6f967a343880587210e9a 100644 GIT binary patch delta 7444 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 delta 12644 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 uqMI3)qhT`L-6dao+~K8s&, 2020\n" "Language-Team: German (https://www.transifex.com/django-recipes/teams/110507/" @@ -23,15 +23,14 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: cookbook/filters.py:15 cookbook/templates/base.html:80 -#: cookbook/templates/forms/edit_internal_recipe.html:199 -#: cookbook/templates/forms/ingredients.html:34 -#: cookbook/templates/recipe_view.html:107 cookbook/templates/stats.html:28 -#: cookbook/views/lists.py:48 +#: .\cookbook\filters.py:22 .\cookbook\templates\base.html:82 +#: .\cookbook\templates\forms\edit_internal_recipe.html:215 +#: .\cookbook\templates\forms\ingredients.html:34 +#: .\cookbook\templates\stats.html:28 .\cookbook\views\lists.py:72 msgid "Ingredients" msgstr "Zutaten" -#: cookbook/forms.py:37 +#: .\cookbook\forms.py:44 msgid "" "Color of the top navigation bar. Not all colors work with all themes, just " "try them out!" @@ -39,35 +38,35 @@ msgstr "" "Farbe der oberen Navigationsleiste. Nicht alle Farben passen, daher einfach " "mal ausprobieren!" -#: cookbook/forms.py:38 +#: .\cookbook\forms.py:45 msgid "Default Unit to be used when inserting a new ingredient into a recipe." msgstr "Standardeinheit für neue Zutaten." -#: cookbook/forms.py:39 +#: .\cookbook\forms.py:46 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." -#: cookbook/forms.py:40 +#: .\cookbook\forms.py:47 msgid "" "Users with whom newly created meal plan/shopping list entries should be " "shared by default." msgstr "" -#: cookbook/forms.py:41 +#: .\cookbook\forms.py:48 msgid "Show recently viewed recipes on search page." msgstr "Zeige zuletzt angeschaute Rezepte über den Suchergebnissen." -#: cookbook/forms.py:42 +#: .\cookbook\forms.py:49 msgid "Number of decimals to round ingredients." msgstr "Anzahl Dezimalstellen, auf die gerundet werden soll." -#: cookbook/forms.py:43 +#: .\cookbook\forms.py:50 msgid "If you want to be able to create and see comments underneath recipes." msgstr "Ob Kommentare unter Rezepten erstellt und angesehen werden können." -#: cookbook/forms.py:45 +#: .\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. " @@ -79,7 +78,11 @@ msgstr "" "aktualisiert. Dies ist nützlich, wenn mehrere Personen eine Liste beim " "Einkaufen verwenden, benötigt jedoch etwas Datenvolumen." -#: cookbook/forms.py:62 +#: .\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" @@ -87,35 +90,41 @@ msgstr "" "Beide Felder sind optional, wenn keins von beiden gegeben ist, wird der " "Nutzername angezeigt" -#: cookbook/forms.py:76 cookbook/forms.py:94 cookbook/forms.py:241 -#: cookbook/templates/forms/edit_internal_recipe.html:45 +#: .\cookbook\forms.py:92 .\cookbook\forms.py:113 .\cookbook\forms.py:277 +#: .\cookbook\templates\forms\edit_internal_recipe.html:45 msgid "Name" msgstr "Name" -#: cookbook/forms.py:77 cookbook/forms.py:95 cookbook/forms.py:242 -#: cookbook/templates/base.html:87 -#: cookbook/templates/forms/edit_internal_recipe.html:65 -#: cookbook/templates/stats.html:24 cookbook/templates/url_import.html:177 +#: .\cookbook\forms.py:93 .\cookbook\forms.py:114 .\cookbook\forms.py:278 +#: .\cookbook\templates\base.html:89 +#: .\cookbook\templates\forms\edit_internal_recipe.html:68 +#: .\cookbook\templates\stats.html:24 .\cookbook\templates\url_import.html:178 msgid "Keywords" msgstr "Schlagwörter" -#: cookbook/forms.py:78 cookbook/forms.py:96 +#: .\cookbook\forms.py:94 .\cookbook\forms.py:115 msgid "Preparation time in minutes" msgstr "Zubereitungszeit in Minuten" -#: cookbook/forms.py:79 cookbook/forms.py:97 +#: .\cookbook\forms.py:95 .\cookbook\forms.py:116 msgid "Waiting time (cooking/baking) in minutes" msgstr "Wartezeit (kochen/backen) in Minuten" -#: cookbook/forms.py:80 cookbook/forms.py:243 +#: .\cookbook\forms.py:96 .\cookbook\forms.py:279 msgid "Path" msgstr "Pfad" -#: cookbook/forms.py:81 +#: .\cookbook\forms.py:97 msgid "Storage UID" msgstr "Speicher ID" -#: cookbook/forms.py:108 +#: .\cookbook\forms.py:117 +#, fuzzy +#| msgid "Number of Days" +msgid "Number of servings" +msgstr "Anzahl Tage" + +#: .\cookbook\forms.py:128 msgid "" "Include - [ ] in list for easier usage in markdown based " "documents." @@ -123,63 +132,63 @@ msgstr "" "Füge - [ ] vor den Zutaten ein, um sie besser in einem Markdown-" "Dokument zu verwenden." -#: cookbook/forms.py:120 +#: .\cookbook\forms.py:140 msgid "Export Base64 encoded image?" msgstr "Base64 kodiertes Bild exportieren?" -#: cookbook/forms.py:124 +#: .\cookbook\forms.py:144 msgid "Download export directly or show on page?" msgstr "Direkter Download oder Anzeige auf Seite ?" -#: cookbook/forms.py:130 +#: .\cookbook\forms.py:152 msgid "Simply paste a JSON export into this textarea and click import." msgstr "Einfach JSON in die Textbox einfügen und \"Importieren\" klicken." -#: cookbook/forms.py:139 +#: .\cookbook\forms.py:162 msgid "New Unit" msgstr "Neue Einheit" -#: cookbook/forms.py:140 +#: .\cookbook\forms.py:163 msgid "New unit that other gets replaced by." msgstr "Neue Einheit, die die alte ersetzt." -#: cookbook/forms.py:145 +#: .\cookbook\forms.py:168 msgid "Old Unit" msgstr "Alte Einheit" -#: cookbook/forms.py:146 +#: .\cookbook\forms.py:169 msgid "Unit that should be replaced." msgstr "Einheit, die ersetzt werden soll." -#: cookbook/forms.py:156 +#: .\cookbook\forms.py:179 msgid "New Food" msgstr "Neue Zutat" -#: cookbook/forms.py:157 +#: .\cookbook\forms.py:180 msgid "New food that other gets replaced by." msgstr "Neue Zutat, die die alte ersetzt." -#: cookbook/forms.py:162 +#: .\cookbook\forms.py:185 msgid "Old Food" msgstr "Alte Zutat." -#: cookbook/forms.py:163 +#: .\cookbook\forms.py:186 msgid "Food that should be replaced." msgstr "Zutat, die ersetzt werden soll." -#: cookbook/forms.py:175 +#: .\cookbook\forms.py:198 msgid "Add your comment: " msgstr "Schreibe einen Kommentar: " -#: cookbook/forms.py:200 +#: .\cookbook\forms.py:229 msgid "Leave empty for dropbox and enter app password for nextcloud." msgstr "Für Dropbox leer lassen, bei Nextcloud App-Passwort eingeben." -#: cookbook/forms.py:203 +#: .\cookbook\forms.py:236 msgid "Leave empty for nextcloud and enter api token for dropbox." msgstr "Für Nextcloud leer lassen, für Dropbox API-Token eingeben." -#: cookbook/forms.py:211 +#: .\cookbook\forms.py:244 msgid "" "Leave empty for dropbox and enter only base url for nextcloud (/remote." "php/webdav/ is added automatically)" @@ -187,25 +196,26 @@ msgstr "" "Für Dropbox leer lassen. Für Nextcloud Server-URL angeben, (/remote." "php/webdav/ wird automatisch hinzugefügt)" -#: cookbook/forms.py:230 +#: .\cookbook\forms.py:263 msgid "Search String" msgstr "Suchwort" -#: cookbook/forms.py:244 +#: .\cookbook\forms.py:280 msgid "File ID" msgstr "Datei ID" -#: cookbook/forms.py:262 +#: .\cookbook\forms.py:299 msgid "You must provide at least a recipe or a title." msgstr "Mindestens ein Rezept oder ein Titel müssen angegeben werden." -#: cookbook/forms.py:271 +#: .\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." -#: cookbook/forms.py:272 cookbook/templates/forms/edit_internal_recipe.html:352 +#: .\cookbook\forms.py:313 +#: .\cookbook\templates\forms\edit_internal_recipe.html:372 msgid "" "You can use markdown to format this field. See the docs here" @@ -213,262 +223,259 @@ msgstr "" "Markdown kann genutzt werden, um dieses Feld zu formatieren. Siehe hier für weitere Information." -#: cookbook/forms.py:273 -msgid "Scaling factor for recipe." -msgstr "Skalierungsfaktor für das Rezept." - -#: cookbook/forms.py:284 +#: .\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." -#: cookbook/helper/permission_helper.py:130 -#: cookbook/helper/permission_helper.py:186 -#: cookbook/helper/permission_helper.py:200 -#: cookbook/helper/permission_helper.py:211 -#: cookbook/helper/permission_helper.py:222 cookbook/views/data.py:27 -#: cookbook/views/views.py:79 cookbook/views/views.py:158 +#: .\cookbook\helper\permission_helper.py:137 +#: .\cookbook\helper\permission_helper.py:207 +#: .\cookbook\helper\permission_helper.py:221 +#: .\cookbook\helper\permission_helper.py:232 +#: .\cookbook\helper\permission_helper.py:243 .\cookbook\views\data.py:32 +#: .\cookbook\views\views.py:100 .\cookbook\views\views.py:228 msgid "You do not have the required permissions to view this page!" msgstr "Du hast nicht die notwendigen Rechte, um diese Seite zu anzuzeigen!" -#: cookbook/helper/permission_helper.py:140 +#: .\cookbook\helper\permission_helper.py:152 msgid "You are not logged in and therefore cannot view this page!" msgstr "Du bist nicht angemeldet, daher kannst du diese Seite nicht sehen!" -#: cookbook/helper/permission_helper.py:144 -#: cookbook/helper/permission_helper.py:158 -#: cookbook/helper/permission_helper.py:172 cookbook/views/delete.py:132 +#: .\cookbook\helper\permission_helper.py:162 +#: .\cookbook\helper\permission_helper.py:178 +#: .\cookbook\helper\permission_helper.py:193 .\cookbook\views\delete.py:143 msgid "You cannot interact with this object as it is not owned by you!" msgstr "" "Du kannst mit diesem Objekt nicht interagieren, da es dir nicht gehört!" -#: cookbook/helper/recipe_url_import.py:36 +#: .\cookbook\helper\recipe_url_import.py:39 msgid "The requested site provided malformed data and cannot be read." msgstr "" "Die angefragte Seite hat ungültige Daten zurückgegeben oder die Daten " "konnten nicht verarbeitet werden." -#: cookbook/helper/recipe_url_import.py:45 +#: .\cookbook\helper\recipe_url_import.py:53 msgid "" "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." -#: cookbook/helper/recipe_url_import.py:161 +#: .\cookbook\helper\recipe_url_import.py:176 msgid "Imported from" msgstr "Importiert von" -#: cookbook/migrations/0047_auto_20200602_1133.py:12 +#: .\cookbook\migrations\0047_auto_20200602_1133.py:12 msgid "Breakfast" msgstr "Frühstück" -#: cookbook/migrations/0047_auto_20200602_1133.py:17 +#: .\cookbook\migrations\0047_auto_20200602_1133.py:17 msgid "Lunch" msgstr "Mittagessen" -#: cookbook/migrations/0047_auto_20200602_1133.py:22 +#: .\cookbook\migrations\0047_auto_20200602_1133.py:22 msgid "Dinner" msgstr "Abendessen" -#: cookbook/migrations/0047_auto_20200602_1133.py:27 +#: .\cookbook\migrations\0047_auto_20200602_1133.py:27 msgid "Other" msgstr "Andere" -#: cookbook/models.py:60 cookbook/templates/shopping_list.html:44 +#: .\cookbook\models.py:77 .\cookbook\templates\shopping_list.html:44 msgid "Search" msgstr "Suche" -#: cookbook/models.py:60 cookbook/templates/base.html:74 -#: cookbook/templates/meal_plan.html:5 cookbook/views/delete.py:149 -#: cookbook/views/edit.py:194 cookbook/views/new.py:156 +#: .\cookbook\models.py:78 .\cookbook\templates\base.html:76 +#: .\cookbook\templates\meal_plan.html:5 .\cookbook\views\delete.py:162 +#: .\cookbook\views\edit.py:215 .\cookbook\views\new.py:189 msgid "Meal-Plan" msgstr "Plan" -#: cookbook/models.py:60 cookbook/templates/base.html:71 +#: .\cookbook\models.py:79 .\cookbook\templates\base.html:73 msgid "Books" msgstr "Bücher" -#: cookbook/models.py:66 +#: .\cookbook\models.py:86 msgid "Small" msgstr "Klein" -#: cookbook/models.py:66 +#: .\cookbook\models.py:86 msgid "Large" msgstr "Groß" -#: cookbook/models.py:175 -#: cookbook/templates/forms/edit_internal_recipe.html:178 +#: .\cookbook\models.py:217 +#: .\cookbook\templates\forms\edit_internal_recipe.html:194 msgid "Text" msgstr "Text" -#: cookbook/models.py:175 -#: cookbook/templates/forms/edit_internal_recipe.html:179 +#: .\cookbook\models.py:217 +#: .\cookbook\templates\forms\edit_internal_recipe.html:195 msgid "Time" msgstr "Zeit" -#: cookbook/tables.py:29 cookbook/templates/books.html:36 -#: cookbook/templates/generic/edit_template.html:6 -#: cookbook/templates/generic/edit_template.html:14 -#: cookbook/templates/meal_plan.html:274 cookbook/templates/recipe_view.html:38 -#: cookbook/templates/recipes_table.html:77 -#: cookbook/templates/shopping_list.html:29 +#: .\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:283 +#: .\cookbook\templates\recipes_table.html:77 +#: .\cookbook\templates\shopping_list.html:29 msgid "Edit" msgstr "Bearbeiten" -#: cookbook/tables.py:103 cookbook/tables.py:122 -#: 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:270 +#: .\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:279 msgid "Delete" msgstr "Löschen" -#: cookbook/tables.py:121 +#: .\cookbook\tables.py:144 msgid "Link" msgstr "Link" -#: cookbook/templates/404.html:5 +#: .\cookbook\templates\404.html:5 msgid "404 Error" msgstr "404 Fehler" -#: cookbook/templates/404.html:18 +#: .\cookbook\templates\404.html:18 msgid "The page you are looking for could not be found." msgstr "Die angeforderte Seite konnte nicht gefunden werden." -#: cookbook/templates/404.html:33 +#: .\cookbook\templates\404.html:33 msgid "Take me Home" msgstr "Zur Hauptseite" -#: cookbook/templates/404.html:35 +#: .\cookbook\templates\404.html:35 msgid "Report a Bug" msgstr "Einen Bug melden" -#: cookbook/templates/api_info.html:5 cookbook/templates/base.html:146 -#: cookbook/templates/rest_framework/api.html:11 +#: .\cookbook\templates\api_info.html:5 .\cookbook\templates\base.html:148 +#: .\cookbook\templates\rest_framework\api.html:11 msgid "API Documentation" msgstr "API-Dokumentation" -#: cookbook/templates/base.html:60 cookbook/templates/forms/ingredients.html:7 -#: cookbook/templates/index.html:7 +#: .\cookbook\templates\base.html:62 +#: .\cookbook\templates\forms\ingredients.html:7 +#: .\cookbook\templates\index.html:7 msgid "Cookbook" msgstr "Kochbuch" -#: cookbook/templates/base.html:67 +#: .\cookbook\templates\base.html:69 msgid "Utensils" msgstr "Utensilien" -#: cookbook/templates/base.html:77 +#: .\cookbook\templates\base.html:79 msgid "Shopping" msgstr "Einkaufsliste" -#: cookbook/templates/base.html:91 cookbook/views/delete.py:78 -#: cookbook/views/edit.py:76 cookbook/views/lists.py:21 -#: cookbook/views/new.py:56 +#: .\cookbook\templates\base.html:93 .\cookbook\views\delete.py:81 +#: .\cookbook\views\edit.py:82 .\cookbook\views\lists.py:26 +#: .\cookbook\views\new.py:62 msgid "Keyword" msgstr "Schlagwort" -#: cookbook/templates/base.html:93 +#: .\cookbook\templates\base.html:95 msgid "Batch Edit" msgstr "Massenbearbeitung" -#: cookbook/templates/base.html:98 +#: .\cookbook\templates\base.html:100 msgid "Storage Data" msgstr "Datenquellen" -#: cookbook/templates/base.html:102 +#: .\cookbook\templates\base.html:104 msgid "Storage Backends" msgstr "Speicherquellen" -#: cookbook/templates/base.html:104 +#: .\cookbook\templates\base.html:106 msgid "Configure Sync" msgstr "Sync einstellen" -#: cookbook/templates/base.html:106 +#: .\cookbook\templates\base.html:108 msgid "Discovered Recipes" msgstr "Entdeckte Rezepte" -#: cookbook/templates/base.html:108 +#: .\cookbook\templates\base.html:110 msgid "Discovery Log" msgstr "Entdeckungs-Log" -#: cookbook/templates/base.html:110 cookbook/templates/stats.html:10 +#: .\cookbook\templates\base.html:112 .\cookbook\templates\stats.html:10 msgid "Statistics" msgstr "Statistiken" -#: cookbook/templates/base.html:112 +#: .\cookbook\templates\base.html:114 msgid "Units & Ingredients" msgstr "Einheiten & Zutaten" -#: cookbook/templates/base.html:114 +#: .\cookbook\templates\base.html:116 msgid "Import Recipe" msgstr "Importiere Rezept" -#: cookbook/templates/base.html:130 cookbook/templates/settings.html:6 -#: cookbook/templates/settings.html:16 +#: .\cookbook\templates\base.html:132 .\cookbook\templates\settings.html:6 +#: .\cookbook\templates\settings.html:16 msgid "Settings" msgstr "Einstellungen" -#: cookbook/templates/base.html:132 cookbook/templates/history.html:6 -#: cookbook/templates/history.html:14 +#: .\cookbook\templates\base.html:134 .\cookbook\templates\history.html:6 +#: .\cookbook\templates\history.html:14 msgid "History" msgstr "Geschichte" -#: cookbook/templates/base.html:136 cookbook/templates/system.html:13 +#: .\cookbook\templates\base.html:138 .\cookbook\templates\system.html:13 msgid "System" msgstr "System" -#: cookbook/templates/base.html:138 +#: .\cookbook\templates\base.html:140 msgid "Admin" msgstr "Admin" -#: cookbook/templates/base.html:142 +#: .\cookbook\templates\base.html:144 msgid "Markdown Guide" msgstr "Markdown-Hilfe" -#: cookbook/templates/base.html:144 +#: .\cookbook\templates\base.html:146 msgid "GitHub" msgstr "GitHub" -#: cookbook/templates/base.html:148 +#: .\cookbook\templates\base.html:150 msgid "API Browser" msgstr "API Browser" -#: cookbook/templates/base.html:151 +#: .\cookbook\templates\base.html:153 msgid "Logout" msgstr "Ausloggen" -#: cookbook/templates/base.html:156 -#: cookbook/templates/registration/login.html:4 -#: cookbook/templates/registration/login.html:46 +#: .\cookbook\templates\base.html:158 +#: .\cookbook\templates\registration\login.html:4 +#: .\cookbook\templates\registration\login.html:46 msgid "Login" msgstr "Einloggen" -#: cookbook/templates/batch/edit.html:6 +#: .\cookbook\templates\batch\edit.html:6 msgid "Batch edit Category" msgstr "Kategorie-Massenbearbeitung" -#: cookbook/templates/batch/edit.html:15 +#: .\cookbook\templates\batch\edit.html:15 msgid "Batch edit Recipes" msgstr "Rezept-Massenbearbeitung" -#: cookbook/templates/batch/edit.html:20 +#: .\cookbook\templates\batch\edit.html:20 msgid "Add the specified keywords to all recipes containing a word" msgstr "" "Ausgewählte Schlagwörter zu allen Rezepten, die das Suchwort enthalten, " "hinzufügen" -#: cookbook/templates/batch/monitor.html:6 cookbook/views/edit.py:59 +#: .\cookbook\templates\batch\monitor.html:6 .\cookbook\views\edit.py:65 msgid "Sync" msgstr "Synchronisieren" -#: cookbook/templates/batch/monitor.html:10 +#: .\cookbook\templates\batch\monitor.html:10 msgid "Manage watched Folders" msgstr "Überwachte Ordner verwalten" -#: cookbook/templates/batch/monitor.html:14 +#: .\cookbook\templates\batch\monitor.html:14 #, fuzzy #| msgid "" #| "On this Page you can manage all storage folder locations that should be " @@ -480,20 +487,20 @@ msgstr "" "Auf dieser Seite kannst du alle Ordner verwalten, die überwacht und " "synchronisiert werden sollen." -#: cookbook/templates/batch/monitor.html:16 +#: .\cookbook\templates\batch\monitor.html:16 msgid "The path must be in the following format" msgstr "Der Pfad muss folgendes Format haben" -#: cookbook/templates/batch/monitor.html:27 +#: .\cookbook\templates\batch\monitor.html:27 msgid "Sync Now!" msgstr "Jetzt Synchronisieren!" -#: cookbook/templates/batch/waiting.html:4 -#: cookbook/templates/batch/waiting.html:10 +#: .\cookbook\templates\batch\waiting.html:4 +#: .\cookbook\templates\batch\waiting.html:10 msgid "Importing Recipes" msgstr "Rezepte werden importiert" -#: cookbook/templates/batch/waiting.html:23 +#: .\cookbook\templates\batch\waiting.html:23 msgid "" "This can take a few minutes, depending on the number of recipes in sync, " "please wait." @@ -501,339 +508,262 @@ msgstr "" "Abhängig von der Anzahl der Rezepte kann dieser Vorgang einige Minuten " "dauern, bitte warten." -#: cookbook/templates/books.html:5 cookbook/templates/books.html:11 +#: .\cookbook\templates\books.html:5 .\cookbook\templates\books.html:11 msgid "Recipe Books" msgstr "Rezeptbuch" -#: cookbook/templates/books.html:15 +#: .\cookbook\templates\books.html:15 msgid "New Book" msgstr "Neues Buch" -#: cookbook/templates/books.html:27 cookbook/templates/recipe_view.html:69 -#: cookbook/templates/recipe_view.html:451 +#: .\cookbook\templates\books.html:27 .\cookbook\templates\recipe_view.html:26 msgid "by" msgstr "von" -#: cookbook/templates/books.html:34 +#: .\cookbook\templates\books.html:34 msgid "Toggle Recipes" msgstr "Rezepte umschalten" -#: cookbook/templates/books.html:54 cookbook/templates/meal_plan_entry.html:48 -#: cookbook/templates/recipe_view.html:92 -#: cookbook/templates/recipes_table.html:59 +#: .\cookbook\templates\books.html:54 +#: .\cookbook\templates\meal_plan_entry.html:48 +#: .\cookbook\templates\recipes_table.html:59 msgid "Last cooked" msgstr "Zuletzt gekocht" -#: cookbook/templates/books.html:71 +#: .\cookbook\templates\books.html:71 msgid "There are no recipes in this book yet." msgstr "In diesem Buch sind bisher keine Rezepte." -#: cookbook/templates/export.html:6 +#: .\cookbook\templates\export.html:6 msgid "Export Recipes" msgstr "Exportiere Rezepte" -#: cookbook/templates/export.html:19 cookbook/templates/recipe_view.html:52 -#: cookbook/templates/shopping_list.html:272 +#: .\cookbook\templates\export.html:19 +#: .\cookbook\templates\shopping_list.html:272 msgid "Export" msgstr "Export" -#: cookbook/templates/export.html:31 +#: .\cookbook\templates\export.html:31 msgid "Exported Recipe" msgstr "Exportierte Rezepte" -#: cookbook/templates/export.html:42 +#: .\cookbook\templates\export.html:42 msgid "Copy to clipboard" msgstr "In Zwischenablage kopieren" -#: cookbook/templates/export.html:54 +#: .\cookbook\templates\export.html:54 msgid "Copied!" msgstr "Kopiert!" -#: cookbook/templates/export.html:61 +#: .\cookbook\templates\export.html:61 msgid "Copy list to clipboard" msgstr "Kopiere Liste in Zwischenablage" -#: cookbook/templates/forms/edit_import_recipe.html:5 -#: cookbook/templates/forms/edit_import_recipe.html:9 +#: .\cookbook\templates\forms\edit_import_recipe.html:5 +#: .\cookbook\templates\forms\edit_import_recipe.html:9 msgid "Import new Recipe" msgstr "Rezept importieren" -#: cookbook/templates/forms/edit_import_recipe.html:14 -#: cookbook/templates/forms/edit_internal_recipe.html:364 -#: cookbook/templates/forms/edit_internal_recipe.html:393 -#: 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:318 -#: cookbook/templates/recipe_view.html:502 cookbook/templates/settings.html:28 -#: cookbook/templates/settings.html:35 cookbook/templates/settings.html:57 -#: cookbook/templates/settings.html:72 -#: cookbook/templates/shopping_list.html:274 +#: .\cookbook\templates\forms\edit_import_recipe.html:14 +#: .\cookbook\templates\forms\edit_internal_recipe.html:384 +#: .\cookbook\templates\forms\edit_internal_recipe.html:413 +#: .\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:327 +#: .\cookbook\templates\settings.html:28 .\cookbook\templates\settings.html:35 +#: .\cookbook\templates\settings.html:57 .\cookbook\templates\settings.html:72 +#: .\cookbook\templates\shopping_list.html:274 msgid "Save" msgstr "Speichern" -#: cookbook/templates/forms/edit_internal_recipe.html:7 -#: cookbook/templates/forms/edit_internal_recipe.html:34 +#: .\cookbook\templates\forms\edit_internal_recipe.html:7 +#: .\cookbook\templates\forms\edit_internal_recipe.html:34 msgid "Edit Recipe" msgstr "Rezept bearbeiten" -#: cookbook/templates/forms/edit_internal_recipe.html:59 +#: .\cookbook\templates\forms\edit_internal_recipe.html:59 msgid "Preparation Time" msgstr "Vorbereitungs Zeit" -#: cookbook/templates/forms/edit_internal_recipe.html:62 +#: .\cookbook\templates\forms\edit_internal_recipe.html:62 msgid "Waiting Time" msgstr "Wartezeit" -#: cookbook/templates/forms/edit_internal_recipe.html:73 +#: .\cookbook\templates\forms\edit_internal_recipe.html:65 +#: .\cookbook\templates\include\log_cooking.html:16 +msgid "Servings" +msgstr "Portionen" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:76 msgid "Select Keywords" msgstr "Schlagwort wählen" -#: cookbook/templates/forms/edit_internal_recipe.html:88 -#: cookbook/templates/recipe_view.html:218 +#: .\cookbook\templates\forms\edit_internal_recipe.html:90 +#, fuzzy +#| msgid "Nutrition" +msgid "Description" +msgstr "Nährwert" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:104 msgid "Nutrition" msgstr "Nährwert" -#: cookbook/templates/forms/edit_internal_recipe.html:92 -#: cookbook/templates/forms/edit_internal_recipe.html:142 +#: .\cookbook\templates\forms\edit_internal_recipe.html:108 +#: .\cookbook\templates\forms\edit_internal_recipe.html:158 msgid "Delete Step" msgstr "Schritt löschen" -#: cookbook/templates/forms/edit_internal_recipe.html:96 -#: cookbook/templates/recipe_view.html:222 +#: .\cookbook\templates\forms\edit_internal_recipe.html:112 msgid "Calories" msgstr "Kalorien" -#: cookbook/templates/forms/edit_internal_recipe.html:99 -#: cookbook/templates/recipe_view.html:230 +#: .\cookbook\templates\forms\edit_internal_recipe.html:115 msgid "Carbohydrates" msgstr "Kohlenhydrate" -#: cookbook/templates/forms/edit_internal_recipe.html:102 -#: cookbook/templates/recipe_view.html:238 +#: .\cookbook\templates\forms\edit_internal_recipe.html:118 msgid "Fats" msgstr "Fett" -#: cookbook/templates/forms/edit_internal_recipe.html:104 -#: cookbook/templates/recipe_view.html:246 +#: .\cookbook\templates\forms\edit_internal_recipe.html:120 msgid "Proteins" msgstr "Proteine" -#: cookbook/templates/forms/edit_internal_recipe.html:126 -#: cookbook/templates/forms/edit_internal_recipe.html:426 -#: cookbook/templates/recipe_view.html:287 +#: .\cookbook\templates\forms\edit_internal_recipe.html:142 +#: .\cookbook\templates\forms\edit_internal_recipe.html:446 msgid "Step" msgstr "Schritt" -#: cookbook/templates/forms/edit_internal_recipe.html:147 +#: .\cookbook\templates\forms\edit_internal_recipe.html:163 msgid "Show as header" msgstr "Als Überschrift anzeigen" -#: cookbook/templates/forms/edit_internal_recipe.html:153 +#: .\cookbook\templates\forms\edit_internal_recipe.html:169 msgid "Hide as header" msgstr "nicht als Überschrift anzeigen" -#: cookbook/templates/forms/edit_internal_recipe.html:158 +#: .\cookbook\templates\forms\edit_internal_recipe.html:174 msgid "Move Up" msgstr "Nach oben" -#: cookbook/templates/forms/edit_internal_recipe.html:163 +#: .\cookbook\templates\forms\edit_internal_recipe.html:179 msgid "Move Down" msgstr "Nach unten" -#: cookbook/templates/forms/edit_internal_recipe.html:172 +#: .\cookbook\templates\forms\edit_internal_recipe.html:188 msgid "Step Name" msgstr "Name des Schritts" -#: cookbook/templates/forms/edit_internal_recipe.html:176 +#: .\cookbook\templates\forms\edit_internal_recipe.html:192 msgid "Step Type" msgstr "Art des Schritts" -#: cookbook/templates/forms/edit_internal_recipe.html:187 +#: .\cookbook\templates\forms\edit_internal_recipe.html:203 msgid "Step time in Minutes" msgstr "Zeit in Minuten" -#: cookbook/templates/forms/edit_internal_recipe.html:241 -#: cookbook/templates/shopping_list.html:148 +#: .\cookbook\templates\forms\edit_internal_recipe.html:257 +#: .\cookbook\templates\shopping_list.html:148 msgid "Select Unit" msgstr "Einheit auswählen" -#: cookbook/templates/forms/edit_internal_recipe.html:242 -#: cookbook/templates/forms/edit_internal_recipe.html:266 -#: cookbook/templates/shopping_list.html:149 -#: cookbook/templates/shopping_list.html:171 +#: .\cookbook\templates\forms\edit_internal_recipe.html:258 +#: .\cookbook\templates\forms\edit_internal_recipe.html:282 +#: .\cookbook\templates\shopping_list.html:149 +#: .\cookbook\templates\shopping_list.html:171 msgid "Create" msgstr "Erstellen" -#: cookbook/templates/forms/edit_internal_recipe.html:243 -#: cookbook/templates/forms/edit_internal_recipe.html:267 -#: cookbook/templates/shopping_list.html:150 -#: cookbook/templates/shopping_list.html:172 -#: cookbook/templates/shopping_list.html:214 -#: cookbook/templates/url_import.html:100 -#: cookbook/templates/url_import.html:132 +#: .\cookbook\templates\forms\edit_internal_recipe.html:259 +#: .\cookbook\templates\forms\edit_internal_recipe.html:283 +#: .\cookbook\templates\shopping_list.html:150 +#: .\cookbook\templates\shopping_list.html:172 +#: .\cookbook\templates\shopping_list.html:214 +#: .\cookbook\templates\url_import.html:100 +#: .\cookbook\templates\url_import.html:132 msgid "Select" msgstr "Wählen" -#: cookbook/templates/forms/edit_internal_recipe.html:265 -#: cookbook/templates/shopping_list.html:170 +#: .\cookbook\templates\forms\edit_internal_recipe.html:281 +#: .\cookbook\templates\shopping_list.html:170 msgid "Select Food" msgstr "Zutat wählen" -#: cookbook/templates/forms/edit_internal_recipe.html:282 -#: cookbook/templates/meal_plan.html:249 cookbook/templates/url_import.html:147 +#: .\cookbook\templates\forms\edit_internal_recipe.html:298 +#: .\cookbook\templates\meal_plan.html:258 +#: .\cookbook\templates\url_import.html:147 msgid "Note" msgstr "Notiz" -#: cookbook/templates/forms/edit_internal_recipe.html:299 +#: .\cookbook\templates\forms\edit_internal_recipe.html:315 msgid "Delete Ingredient" msgstr "Zutat löschen" -#: cookbook/templates/forms/edit_internal_recipe.html:305 +#: .\cookbook\templates\forms\edit_internal_recipe.html:321 msgid "Make Header" msgstr "Überschrift machen" -#: cookbook/templates/forms/edit_internal_recipe.html:311 +#: .\cookbook\templates\forms\edit_internal_recipe.html:327 msgid "Make Ingredient" msgstr "Zutat machen" -#: cookbook/templates/forms/edit_internal_recipe.html:317 +#: .\cookbook\templates\forms\edit_internal_recipe.html:333 msgid "Disable Amount" msgstr "Menge deaktivieren" -#: cookbook/templates/forms/edit_internal_recipe.html:323 +#: .\cookbook\templates\forms\edit_internal_recipe.html:339 msgid "Enable Amount" msgstr "Menge aktivieren" -#: cookbook/templates/forms/edit_internal_recipe.html:349 -#: cookbook/templates/recipe_view.html:269 -#: cookbook/templates/url_import.html:171 +#: .\cookbook\templates\forms\edit_internal_recipe.html:343 +msgid "Copy Template Reference" +msgstr "" + +#: .\cookbook\templates\forms\edit_internal_recipe.html:369 +#: .\cookbook\templates\url_import.html:172 msgid "Instructions" msgstr "Anleitung" -#: cookbook/templates/forms/edit_internal_recipe.html:362 -#: cookbook/templates/forms/edit_internal_recipe.html:390 +#: .\cookbook\templates\forms\edit_internal_recipe.html:382 +#: .\cookbook\templates\forms\edit_internal_recipe.html:410 msgid "Save & View" msgstr "Speichern & Ansehen" -#: cookbook/templates/forms/edit_internal_recipe.html:366 -#: cookbook/templates/forms/edit_internal_recipe.html:396 +#: .\cookbook\templates\forms\edit_internal_recipe.html:386 +#: .\cookbook\templates\forms\edit_internal_recipe.html:416 msgid "Add Step" msgstr "Schritt hinzufügen" -#: cookbook/templates/forms/edit_internal_recipe.html:369 -#: cookbook/templates/forms/edit_internal_recipe.html:400 +#: .\cookbook\templates\forms\edit_internal_recipe.html:389 +#: .\cookbook\templates\forms\edit_internal_recipe.html:420 msgid "Add Nutrition" msgstr "Nährwerte hinzufügen" -#: cookbook/templates/forms/edit_internal_recipe.html:371 -#: cookbook/templates/forms/edit_internal_recipe.html:402 +#: .\cookbook\templates\forms\edit_internal_recipe.html:391 +#: .\cookbook\templates\forms\edit_internal_recipe.html:422 msgid "Remove Nutrition" msgstr "Nährwerte entfernen" -#: cookbook/templates/forms/edit_internal_recipe.html:373 -#: cookbook/templates/forms/edit_internal_recipe.html:405 +#: .\cookbook\templates\forms\edit_internal_recipe.html:393 +#: .\cookbook\templates\forms\edit_internal_recipe.html:425 msgid "View Recipe" msgstr "Rezept ansehen" -#: cookbook/templates/forms/edit_internal_recipe.html:375 -#: cookbook/templates/forms/edit_internal_recipe.html:407 +#: .\cookbook\templates\forms\edit_internal_recipe.html:395 +#: .\cookbook\templates\forms\edit_internal_recipe.html:427 msgid "Delete Recipe" msgstr "Rezept löschen" -#: cookbook/templates/forms/edit_internal_recipe.html:413 +#: .\cookbook\templates\forms\edit_internal_recipe.html:433 msgid "Steps" msgstr "Schritte" -#: cookbook/templates/forms/edit_internal_recipe.html:534 -#: cookbook/templates/forms/edit_internal_recipe.html:552 -#: cookbook/templates/forms/edit_internal_recipe.html:566 -#: cookbook/templates/forms/edit_internal_recipe.html:647 -#: cookbook/templates/forms/edit_internal_recipe.html:666 -#: cookbook/templates/forms/edit_internal_recipe.html:686 -#: cookbook/templates/meal_plan.html:442 cookbook/templates/meal_plan.html:454 -#: cookbook/templates/meal_plan.html:509 cookbook/templates/meal_plan.html:522 -#: cookbook/templates/meal_plan.html:533 cookbook/templates/meal_plan.html:559 -#: cookbook/templates/meal_plan.html:570 cookbook/templates/meal_plan.html:584 -#: cookbook/templates/meal_plan.html:591 cookbook/templates/meal_plan.html:599 -#: cookbook/templates/shopping_list.html:453 -#: cookbook/templates/shopping_list.html:480 -#: cookbook/templates/shopping_list.html:516 -#: cookbook/templates/shopping_list.html:536 -#: cookbook/templates/shopping_list.html:547 -#: cookbook/templates/shopping_list.html:570 -#: cookbook/templates/shopping_list.html:596 -#: cookbook/templates/shopping_list.html:612 -#: cookbook/templates/shopping_list.html:654 -#: cookbook/templates/shopping_list.html:664 -#: cookbook/templates/shopping_list.html:673 -#: cookbook/templates/shopping_list.html:692 -#: cookbook/templates/url_import.html:308 -#: cookbook/templates/url_import.html:313 -#: cookbook/templates/url_import.html:322 -#: cookbook/templates/url_import.html:366 -#: cookbook/templates/url_import.html:384 -#: cookbook/templates/url_import.html:403 -msgid "Error" -msgstr "Fehler" - -#: cookbook/templates/forms/edit_internal_recipe.html:534 -msgid "There was an error loading the recipe!" -msgstr "Es gab einen Fehler beim Laden des Rezepts!" - -#: cookbook/templates/forms/edit_internal_recipe.html:545 -#: cookbook/templates/forms/edit_internal_recipe.html:562 -#: cookbook/templates/shopping_list.html:527 -#: cookbook/templates/shopping_list.html:543 -msgid "Updated" -msgstr "Aktualisiert" - -#: cookbook/templates/forms/edit_internal_recipe.html:545 -#: cookbook/templates/forms/edit_internal_recipe.html:562 -#: cookbook/templates/shopping_list.html:543 -msgid "Changes saved successfully!" -msgstr "Änderungen erfolgreich gespeichert!" - -#: cookbook/templates/forms/edit_internal_recipe.html:552 -#: cookbook/templates/forms/edit_internal_recipe.html:566 -msgid "There was an error updating the recipe!" -msgstr "Es gab einen Fehler beim aktualisieren des Rezepts!" - -#: cookbook/templates/forms/edit_internal_recipe.html:610 -msgid "Are you sure that you want to delete this ingredient?" -msgstr "Bist du sicher das du diese Zutat löschen willst?" - -#: cookbook/templates/forms/edit_internal_recipe.html:615 -msgid "Are you sure that you want to delete this step?" -msgstr "Soll dieser Schritt wirklich gelöscht werden?" - -#: cookbook/templates/forms/edit_internal_recipe.html:647 -#: cookbook/templates/forms/edit_internal_recipe.html:666 -#: cookbook/templates/forms/edit_internal_recipe.html:686 -#: cookbook/templates/meal_plan.html:442 cookbook/templates/meal_plan.html:454 -#: cookbook/templates/meal_plan.html:509 cookbook/templates/meal_plan.html:522 -#: cookbook/templates/meal_plan.html:533 cookbook/templates/meal_plan.html:559 -#: cookbook/templates/meal_plan.html:570 cookbook/templates/meal_plan.html:584 -#: cookbook/templates/meal_plan.html:591 cookbook/templates/meal_plan.html:599 -#: cookbook/templates/shopping_list.html:453 -#: cookbook/templates/shopping_list.html:480 -#: cookbook/templates/shopping_list.html:612 -#: cookbook/templates/shopping_list.html:654 -#: cookbook/templates/shopping_list.html:664 -#: cookbook/templates/shopping_list.html:673 -#: cookbook/templates/shopping_list.html:692 -#: cookbook/templates/url_import.html:308 -#: cookbook/templates/url_import.html:366 -#: cookbook/templates/url_import.html:384 -#: cookbook/templates/url_import.html:403 -msgid "There was an error loading a resource!" -msgstr "Es gab einen Fehler beim laden der Ressource!" - -#: cookbook/templates/forms/ingredients.html:15 +#: .\cookbook\templates\forms\ingredients.html:15 msgid "Edit Ingredients" msgstr "Zutaten Bearbeiten" -#: cookbook/templates/forms/ingredients.html:16 +#: .\cookbook\templates\forms\ingredients.html:16 msgid "" "\n" " The following form can be used if, accidentally, two (or more) units " @@ -851,126 +781,124 @@ msgstr "" "entsprechenden Rezepte.\n" " " -#: cookbook/templates/forms/ingredients.html:24 -#: cookbook/templates/stats.html:26 +#: .\cookbook\templates\forms\ingredients.html:24 +#: .\cookbook\templates\stats.html:26 msgid "Units" msgstr "Einheiten" -#: cookbook/templates/forms/ingredients.html:26 +#: .\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 ?" -#: cookbook/templates/forms/ingredients.html:31 -#: cookbook/templates/forms/ingredients.html:40 +#: .\cookbook\templates\forms\ingredients.html:31 +#: .\cookbook\templates\forms\ingredients.html:40 msgid "Merge" msgstr "Zusammenführen" -#: cookbook/templates/forms/ingredients.html:36 +#: .\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 ?" -#: cookbook/templates/generic/delete_template.html:18 +#: .\cookbook\templates\generic\delete_template.html:18 #, fuzzy, python-format #| msgid "Are you sure you want to delete the %(title)s: %(object)s?" 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 " -#: cookbook/templates/generic/delete_template.html:21 +#: .\cookbook\templates\generic\delete_template.html:21 msgid "Confirm" msgstr "Bestätigen" -#: cookbook/templates/generic/edit_template.html:30 +#: .\cookbook\templates\generic\edit_template.html:30 msgid "View" msgstr "Angucken" -#: cookbook/templates/generic/edit_template.html:34 +#: .\cookbook\templates\generic\edit_template.html:34 msgid "Delete original file" msgstr "Original löschen" -#: cookbook/templates/generic/list_template.html:6 -#: cookbook/templates/generic/list_template.html:12 +#: .\cookbook\templates\generic\list_template.html:6 +#: .\cookbook\templates\generic\list_template.html:12 msgid "List" msgstr "Liste" -#: cookbook/templates/generic/list_template.html:25 +#: .\cookbook\templates\generic\list_template.html:25 msgid "Filter" msgstr "Filter" -#: cookbook/templates/generic/list_template.html:30 +#: .\cookbook\templates\generic\list_template.html:30 msgid "Import all" msgstr "Alle importieren" -#: cookbook/templates/generic/new_template.html:6 -#: cookbook/templates/generic/new_template.html:14 -#: cookbook/templates/meal_plan.html:316 +#: .\cookbook\templates\generic\new_template.html:6 +#: .\cookbook\templates\generic\new_template.html:14 +#: .\cookbook\templates\meal_plan.html:325 msgid "New" msgstr "Neu" -#: cookbook/templates/generic/table_template.html:76 -#: cookbook/templates/recipes_table.html:112 +#: .\cookbook\templates\generic\table_template.html:76 +#: .\cookbook\templates\recipes_table.html:112 msgid "previous" msgstr "vorherige" -#: cookbook/templates/generic/table_template.html:98 -#: cookbook/templates/recipes_table.html:134 +#: .\cookbook\templates\generic\table_template.html:98 +#: .\cookbook\templates\recipes_table.html:134 msgid "next" msgstr "nächste" -#: cookbook/templates/history.html:20 +#: .\cookbook\templates\history.html:20 msgid "View Log" msgstr "Aufruf Log" -#: cookbook/templates/history.html:24 +#: .\cookbook\templates\history.html:24 msgid "Cook Log" msgstr "Koch Log" -#: cookbook/templates/import.html:6 +#: .\cookbook\templates\import.html:6 msgid "Import Recipes" msgstr "Importierte Rezepte" -#: cookbook/templates/import.html:14 cookbook/templates/url_import.html:203 -#: cookbook/views/delete.py:54 cookbook/views/edit.py:161 +#: .\cookbook\templates\import.html:14 +#: .\cookbook\templates\url_import.html:206 .\cookbook\views\delete.py:57 +#: .\cookbook\views\edit.py:181 msgid "Import" msgstr "Rezept Importieren" -#: cookbook/templates/include/log_cooking.html:7 +#: .\cookbook\templates\include\log_cooking.html:7 msgid "Log Recipe Cooking" msgstr "Kochen Protokollieren" -#: cookbook/templates/include/log_cooking.html:13 +#: .\cookbook\templates\include\log_cooking.html:13 msgid "All fields are optional and can be left empty." msgstr "Alle Felder sind optional und können leer gelassen werden." -#: cookbook/templates/include/log_cooking.html:16 -msgid "Servings" -msgstr "Portionen" - -#: cookbook/templates/include/log_cooking.html:19 +#: .\cookbook\templates\include\log_cooking.html:19 msgid "Rating" msgstr "Bewertung" -#: cookbook/templates/include/log_cooking.html:27 -#: cookbook/templates/include/recipe_open_modal.html:18 -#: cookbook/templates/meal_plan.html:276 cookbook/templates/meal_plan.html:320 -#: cookbook/templates/meal_plan.html:359 +#: .\cookbook\templates\include\log_cooking.html:27 +#: .\cookbook\templates\include\recipe_open_modal.html:18 +#: .\cookbook\templates\meal_plan.html:285 +#: .\cookbook\templates\meal_plan.html:329 +#: .\cookbook\templates\meal_plan.html:368 msgid "Close" msgstr "Schließen" -#: cookbook/templates/include/recipe_open_modal.html:7 -#: cookbook/templates/meal_plan.html:243 cookbook/views/delete.py:25 -#: cookbook/views/edit.py:227 cookbook/views/new.py:36 +#: .\cookbook\templates\include\recipe_open_modal.html:7 +#: .\cookbook\templates\meal_plan.html:249 .\cookbook\views\delete.py:27 +#: .\cookbook\views\edit.py:259 .\cookbook\views\new.py:40 msgid "Recipe" msgstr "Rezept" -#: cookbook/templates/include/recipe_open_modal.html:32 +#: .\cookbook\templates\include\recipe_open_modal.html:32 msgid "Open Recipe" msgstr "Rezept öffnen" -#: cookbook/templates/include/storage_backend_warning.html:4 +#: .\cookbook\templates\include\storage_backend_warning.html:4 msgid "Security Warning" msgstr "Sicherheitswarnung" -#: cookbook/templates/include/storage_backend_warning.html:5 +#: .\cookbook\templates\include\storage_backend_warning.html:5 msgid "" "\n" " The Password and Token field are stored as plain text " @@ -992,45 +920,45 @@ msgstr "" "oder Accounts mit limitiertem Zugriff verwendet werden.\n" " " -#: cookbook/templates/index.html:29 +#: .\cookbook\templates\index.html:29 msgid "Search recipe ..." msgstr "Suche Rezept ..." -#: cookbook/templates/index.html:44 +#: .\cookbook\templates\index.html:44 msgid "New Recipe" msgstr "Neues Rezept" -#: cookbook/templates/index.html:47 +#: .\cookbook\templates\index.html:47 msgid "Website Import" msgstr "Webseiten Import" -#: cookbook/templates/index.html:53 +#: .\cookbook\templates\index.html:53 msgid "Advanced Search" msgstr "Erweiterte Suche" -#: cookbook/templates/index.html:57 +#: .\cookbook\templates\index.html:57 msgid "Reset Search" msgstr "Suche zurücksetzen" -#: cookbook/templates/index.html:85 +#: .\cookbook\templates\index.html:85 msgid "Last viewed" msgstr "Zuletzt angesehen" -#: cookbook/templates/index.html:87 cookbook/templates/meal_plan.html:174 -#: cookbook/templates/stats.html:22 +#: .\cookbook\templates\index.html:87 .\cookbook\templates\meal_plan.html:180 +#: .\cookbook\templates\stats.html:22 msgid "Recipes" msgstr "Rezepte" -#: cookbook/templates/index.html:94 +#: .\cookbook\templates\index.html:94 msgid "Log in to view recipes" msgstr "Einloggen um Rezepte anzusehen" -#: cookbook/templates/markdown_info.html:5 -#: cookbook/templates/markdown_info.html:13 +#: .\cookbook\templates\markdown_info.html:5 +#: .\cookbook\templates\markdown_info.html:13 msgid "Markdown Info" msgstr "Markdown Info" -#: cookbook/templates/markdown_info.html:14 +#: .\cookbook\templates\markdown_info.html:14 msgid "" "\n" " Markdown is lightweight markup language that can be used to format " @@ -1054,44 +982,44 @@ msgstr "" "\">hier. Die wichtigsten Formatierungszeichen befinden sich auch hier " "auf dieser Seite." -#: cookbook/templates/markdown_info.html:25 +#: .\cookbook\templates\markdown_info.html:25 msgid "Headers" msgstr "Überschriften" -#: cookbook/templates/markdown_info.html:54 +#: .\cookbook\templates\markdown_info.html:54 msgid "Formatting" msgstr "Formatierung" -#: cookbook/templates/markdown_info.html:56 -#: cookbook/templates/markdown_info.html:72 +#: .\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" -#: cookbook/templates/markdown_info.html:57 -#: cookbook/templates/markdown_info.html:73 +#: .\cookbook\templates\markdown_info.html:57 +#: .\cookbook\templates\markdown_info.html:73 msgid "or by leaving a blank line inbetween." msgstr "oder durch eine leere Zeile dazwischen." -#: cookbook/templates/markdown_info.html:59 -#: cookbook/templates/markdown_info.html:74 +#: .\cookbook\templates\markdown_info.html:59 +#: .\cookbook\templates\markdown_info.html:74 msgid "This text is bold" msgstr "Dieser Text ist dick dargestellt" -#: cookbook/templates/markdown_info.html:60 -#: cookbook/templates/markdown_info.html:75 +#: .\cookbook\templates\markdown_info.html:60 +#: .\cookbook\templates\markdown_info.html:75 msgid "This text is italic" msgstr "Dieser Text ist kursiv dargestellt" -#: cookbook/templates/markdown_info.html:61 -#: cookbook/templates/markdown_info.html:77 +#: .\cookbook\templates\markdown_info.html:61 +#: .\cookbook\templates\markdown_info.html:77 msgid "Blockquotes are also possible" msgstr "Zitate sind auch möglich" -#: cookbook/templates/markdown_info.html:84 +#: .\cookbook\templates\markdown_info.html:84 msgid "Lists" msgstr "Listen" -#: cookbook/templates/markdown_info.html:85 +#: .\cookbook\templates\markdown_info.html:85 msgid "" "Lists can ordered or unorderd. It is important to leave a blank line " "before the list!" @@ -1099,39 +1027,39 @@ msgstr "" "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 +#: .\cookbook\templates\markdown_info.html:87 +#: .\cookbook\templates\markdown_info.html:108 msgid "Ordered List" msgstr "Geordnete Liste" -#: 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 +#: .\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 "Ungeordneter Listeneintrag" -#: cookbook/templates/markdown_info.html:93 -#: cookbook/templates/markdown_info.html:114 +#: .\cookbook\templates\markdown_info.html:93 +#: .\cookbook\templates\markdown_info.html:114 msgid "Unordered List" msgstr "Ungeordnete Liste" -#: 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 +#: .\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 "Geordneter Listen Eintrag" -#: cookbook/templates/markdown_info.html:125 +#: .\cookbook\templates\markdown_info.html:125 msgid "Images & Links" msgstr "Bilder & Links" -#: cookbook/templates/markdown_info.html:126 +#: .\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." @@ -1139,60 +1067,65 @@ msgstr "" "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 +#: .\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" -#: cookbook/templates/markdown_info.html:152 +#: .\cookbook\templates\markdown_info.html:152 msgid "Tables" msgstr "Tabellen" -#: cookbook/templates/markdown_info.html:153 +#: .\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." +"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." -#: cookbook/templates/markdown_info.html:155 -#: cookbook/templates/markdown_info.html:157 -#: cookbook/templates/markdown_info.html:171 -#: cookbook/templates/markdown_info.html:177 +#: .\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 "Tabelle" -#: cookbook/templates/markdown_info.html:155 -#: cookbook/templates/markdown_info.html:172 +#: .\cookbook\templates\markdown_info.html:155 +#: .\cookbook\templates\markdown_info.html:172 msgid "Header" msgstr "Überschrift" -#: cookbook/templates/markdown_info.html:157 -#: cookbook/templates/markdown_info.html:178 +#: .\cookbook\templates\markdown_info.html:157 +#: .\cookbook\templates\markdown_info.html:178 msgid "Cell" msgstr "Zelle" -#: cookbook/templates/meal_plan.html:101 +#: .\cookbook\templates\meal_plan.html:103 msgid "New Entry" msgstr "Neuer Eintrag" -#: cookbook/templates/meal_plan.html:113 -#: cookbook/templates/shopping_list.html:48 +#: .\cookbook\templates\meal_plan.html:115 +#: .\cookbook\templates\shopping_list.html:48 msgid "Search Recipe" msgstr "Rezept Suchen" -#: cookbook/templates/meal_plan.html:135 cookbook/templates/meal_plan.html:640 +#: .\cookbook\templates\meal_plan.html:141 msgid "Title" msgstr "Titel" -#: cookbook/templates/meal_plan.html:137 +#: .\cookbook\templates\meal_plan.html:143 msgid "Note (optional)" msgstr "Notiz (optional)" -#: cookbook/templates/meal_plan.html:139 +#: .\cookbook\templates\meal_plan.html:145 msgid "" "You can use markdown to format this field. See the docs here" @@ -1200,42 +1133,45 @@ msgstr "" "Dieses Feld Unterstützt Markdown Formatierung. Siehe Dokumentation" -#: cookbook/templates/meal_plan.html:143 -msgid "Recipe Multiplier" -msgstr "Rezept Multiplikator" +#: .\cookbook\templates\meal_plan.html:149 +#: .\cookbook\templates\meal_plan.html:253 +#, fuzzy +#| msgid "Servings" +msgid "Serving Count" +msgstr "Portionen" -#: cookbook/templates/meal_plan.html:149 +#: .\cookbook\templates\meal_plan.html:155 msgid "Create only note" msgstr "Nur Notiz erstellen" -#: cookbook/templates/meal_plan.html:164 -#: cookbook/templates/shopping_list.html:7 -#: cookbook/templates/shopping_list.html:25 -#: cookbook/templates/shopping_list.html:533 +#: .\cookbook\templates\meal_plan.html:170 +#: .\cookbook\templates\shopping_list.html:7 +#: .\cookbook\templates\shopping_list.html:25 +#: .\cookbook\templates\shopping_list.html:535 msgid "Shopping List" msgstr "Einkaufsliste" -#: cookbook/templates/meal_plan.html:168 +#: .\cookbook\templates\meal_plan.html:174 msgid "Shopping list currently empty" msgstr "Einkaufsliste aktuell leer" -#: cookbook/templates/meal_plan.html:171 +#: .\cookbook\templates\meal_plan.html:177 msgid "Open Shopping List" msgstr "Einkaufsliste öffnen" -#: cookbook/templates/meal_plan.html:185 +#: .\cookbook\templates\meal_plan.html:191 msgid "Plan" msgstr "Plan" -#: cookbook/templates/meal_plan.html:192 +#: .\cookbook\templates\meal_plan.html:198 msgid "Number of Days" msgstr "Anzahl Tage" -#: cookbook/templates/meal_plan.html:202 +#: .\cookbook\templates\meal_plan.html:208 msgid "Weekday offset" msgstr "Wochentage verschieben" -#: cookbook/templates/meal_plan.html:205 +#: .\cookbook\templates\meal_plan.html:211 msgid "" "Number of days starting from the first day of the week to offset the default " "view." @@ -1243,45 +1179,80 @@ msgstr "" "Anzahl der Tage von ersten Tag der Woche die der Plan standardmäßig " "verschoben sein soll." -#: cookbook/templates/meal_plan.html:213 cookbook/templates/meal_plan.html:287 +#: .\cookbook\templates\meal_plan.html:219 +#: .\cookbook\templates\meal_plan.html:296 msgid "Edit plan types" msgstr "Plan Typen editieren" -#: cookbook/templates/meal_plan.html:215 +#: .\cookbook\templates\meal_plan.html:221 msgid "Show help" msgstr "Hilfe anzeigen" -#: cookbook/templates/meal_plan.html:216 +#: .\cookbook\templates\meal_plan.html:222 msgid "Week iCal export" msgstr "Woche als iCal exportieren" -#: cookbook/templates/meal_plan.html:257 -#: cookbook/templates/meal_plan_entry.html:18 +#: .\cookbook\templates\meal_plan.html:266 +#: .\cookbook\templates\meal_plan_entry.html:18 msgid "Created by" msgstr "Erstellt von" -#: cookbook/templates/meal_plan.html:263 -#: cookbook/templates/meal_plan_entry.html:20 +#: .\cookbook\templates\meal_plan.html:272 +#: .\cookbook\templates\meal_plan_entry.html:20 msgid "Shared with" msgstr "Geteilt mit" -#: cookbook/templates/meal_plan.html:273 cookbook/templates/recipe_view.html:43 +#: .\cookbook\templates\meal_plan.html:282 msgid "Add to Shopping" msgstr "Zur Einkaufsliste hinzufügen" -#: cookbook/templates/meal_plan.html:316 +#: .\cookbook\templates\meal_plan.html:325 msgid "New meal type" msgstr "Neue Mahlzeit" -#: cookbook/templates/meal_plan.html:331 +#: .\cookbook\templates\meal_plan.html:340 msgid "Meal Plan Help" msgstr "Plan Hilfe" -#: cookbook/templates/meal_plan.html:337 +#: .\cookbook\templates\meal_plan.html:346 +#, 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 or just notes.

\n" +"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 " @@ -1290,8 +1261,8 @@ msgid "" "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" +"

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 " @@ -1335,170 +1306,102 @@ msgstr "" "gleich benannt werden, dadurch kann das System sie zusammenfassen.

\n" " " -#: cookbook/templates/meal_plan.html:609 -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 ?" - -#: cookbook/templates/meal_plan_entry.html:6 +#: .\cookbook\templates\meal_plan_entry.html:6 msgid "Meal Plan View" msgstr "Plan Ansicht" -#: cookbook/templates/meal_plan_entry.html:50 +#: .\cookbook\templates\meal_plan_entry.html:50 msgid "Never cooked before." msgstr "Noch nie gekocht." -#: cookbook/templates/meal_plan_entry.html:76 +#: .\cookbook\templates\meal_plan_entry.html:76 msgid "Other meals on this day" msgstr "Andere Mahlzeiten an diesem Tag" -#: cookbook/templates/recipe_view.html:40 -msgid "Add to Book" -msgstr "Zu Buch hinzufügen" - -#: cookbook/templates/recipe_view.html:46 -msgid "Add to Plan" -msgstr "Zum Plan hinzufügen" - -#: cookbook/templates/recipe_view.html:48 -#: cookbook/templates/recipes_table.html:81 -msgid "Log Cooking" -msgstr "Kochen Protokollieren" - -#: cookbook/templates/recipe_view.html:50 -msgid "Print" -msgstr "Drucken" - -#: cookbook/templates/recipe_view.html:55 -msgid "Share" -msgstr "Teilen" - -#: cookbook/templates/recipe_view.html:64 -msgid "in" -msgstr "in" - -#: cookbook/templates/recipe_view.html:82 -msgid "Preparation time ~" -msgstr "Vorbereitungs Zeit ~" - -#: cookbook/templates/recipe_view.html:88 -msgid "Waiting time ~" -msgstr "Wartezeit ~" - -#: cookbook/templates/recipe_view.html:206 -#: cookbook/templates/recipes_table.html:19 -#: cookbook/templates/recipes_table.html:23 -#: cookbook/templates/url_import.html:50 -msgid "Recipe Image" -msgstr "Rezept Bild" - -#: cookbook/templates/recipe_view.html:290 -msgid "Minutes" -msgstr "Minuten" - -#: cookbook/templates/recipe_view.html:393 -#: cookbook/templates/recipe_view.html:430 -msgid "View external recipe" -msgstr "Externes Rezept ansehen" - -#: cookbook/templates/recipe_view.html:408 -msgid "External recipe image" -msgstr "Externes Rezeptbild" - -#: cookbook/templates/recipe_view.html:415 -msgid "External recipe" -msgstr "Externes Rezept" - -#: cookbook/templates/recipe_view.html:417 -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" -" " +#: .\cookbook\templates\offline.html:5 +msgid "Offline" 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" -" " -#: cookbook/templates/recipe_view.html:428 -msgid "Convert now!" -msgstr "Jetzt umwandeln!" +#: .\cookbook\templates\offline.html:18 +msgid "You are currently offline!" +msgstr "" -#: cookbook/templates/recipe_view.html:446 cookbook/templates/stats.html:47 +#: .\cookbook\templates\offline.html:19 +msgid "" +"This app does not (yet) support offline functionality. Please make sure to " +"re-establish a network connection." +msgstr "" + +#: .\cookbook\templates\recipe_view.html:21 .\cookbook\templates\stats.html:47 msgid "Comments" msgstr "Kommentare" -#: cookbook/templates/recipe_view.html:469 cookbook/views/delete.py:108 -#: cookbook/views/edit.py:143 +#: .\cookbook\templates\recipe_view.html:44 .\cookbook\views\delete.py:115 +#: .\cookbook\views\edit.py:161 msgid "Comment" msgstr "Kommentar" -#: cookbook/templates/recipes_table.html:46 -#: cookbook/templates/url_import.html:55 +#: .\cookbook\templates\recipes_table.html:19 +#: .\cookbook\templates\recipes_table.html:23 +#: .\cookbook\templates\url_import.html:50 +msgid "Recipe Image" +msgstr "Rezept Bild" + +#: .\cookbook\templates\recipes_table.html:46 +#: .\cookbook\templates\url_import.html:55 msgid "Preparation time ca." msgstr "Zubereitungszeit ca." -#: cookbook/templates/recipes_table.html:52 -#: cookbook/templates/url_import.html:60 +#: .\cookbook\templates\recipes_table.html:52 +#: .\cookbook\templates\url_import.html:60 msgid "Waiting time ca." msgstr "Wartezeit ca." -#: cookbook/templates/recipes_table.html:55 +#: .\cookbook\templates\recipes_table.html:55 msgid "External" msgstr "Extern" -#: cookbook/templates/registration/login.html:10 +#: .\cookbook\templates\recipes_table.html:81 +msgid "Log Cooking" +msgstr "Kochen Protokollieren" + +#: .\cookbook\templates\registration\login.html:10 msgid "Your username and password didn't match. Please try again." msgstr "Nutzername oder Passwort falsch. Bitte versuch es erneut." -#: cookbook/templates/registration/signup.html:5 +#: .\cookbook\templates\registration\signup.html:5 msgid "Register" msgstr "Registrieren" -#: cookbook/templates/registration/signup.html:9 +#: .\cookbook\templates\registration\signup.html:9 msgid "Create your Account" msgstr "Account erstellen" -#: cookbook/templates/registration/signup.html:14 +#: .\cookbook\templates\registration\signup.html:14 msgid "Create User" msgstr "Nutzer erstellen" -#: cookbook/templates/rest_framework/api.html:5 +#: .\cookbook\templates\rest_framework\api.html:5 msgid "Recipe Home" msgstr "Rezept Hauptseite" -#: cookbook/templates/settings.html:22 +#: .\cookbook\templates\settings.html:22 msgid "Account" msgstr "Account" -#: cookbook/templates/settings.html:41 +#: .\cookbook\templates\settings.html:41 msgid "Language" msgstr "Sprache" -#: cookbook/templates/settings.html:66 +#: .\cookbook\templates\settings.html:66 msgid "Style" msgstr "Stil" -#: cookbook/templates/settings.html:78 +#: .\cookbook\templates\settings.html:78 msgid "API Token" msgstr "API Token" -#: cookbook/templates/settings.html:79 +#: .\cookbook\templates\settings.html:79 msgid "" "You can use both basic authentication and token based authentication to " "access the REST API." @@ -1506,7 +1409,7 @@ msgstr "" "Sowohl basic auth als auch token basierte Authentifizierung können für die " "REST API verwendet werden." -#: cookbook/templates/settings.html:91 +#: .\cookbook\templates\settings.html:91 msgid "" "Use the token as an Authorization header prefixed by the word token as shown " "in the following examples:" @@ -1514,127 +1417,114 @@ msgstr "" "Benutzt das Token als Authorization header mit dem präfix token wie in " "folgendem Beispiel:" -#: cookbook/templates/settings.html:93 +#: .\cookbook\templates\settings.html:93 msgid "or" msgstr "oder" -#: cookbook/templates/setup.html:6 cookbook/templates/system.html:5 +#: .\cookbook\templates\setup.html:6 .\cookbook\templates\system.html:5 msgid "Cookbook Setup" msgstr "Kochbuch Setup" -#: cookbook/templates/setup.html:14 +#: .\cookbook\templates\setup.html:14 msgid "Setup" msgstr "Setup" -#: cookbook/templates/setup.html:15 -msgid "To start using this application you must first create a superuser account." +#: .\cookbook\templates\setup.html:15 +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." -#: cookbook/templates/setup.html:20 +#: .\cookbook\templates\setup.html:20 msgid "Create Superuser account" msgstr "Administrator Erstellen" -#: cookbook/templates/shopping_list.html:71 +#: .\cookbook\templates\shopping_list.html:71 msgid "Shopping Recipes" msgstr "Einkaufs Rezepte" -#: cookbook/templates/shopping_list.html:75 +#: .\cookbook\templates\shopping_list.html:75 msgid "No recipes selected" msgstr "Keine Rezepte ausgewählt" -#: cookbook/templates/shopping_list.html:135 +#: .\cookbook\templates\shopping_list.html:135 msgid "Amount" msgstr "Menge" -#: cookbook/templates/shopping_list.html:196 +#: .\cookbook\templates\shopping_list.html:196 msgid "Finished" msgstr "Erledigt" -#: cookbook/templates/shopping_list.html:213 +#: .\cookbook\templates\shopping_list.html:213 msgid "Select User" msgstr "Nutzer Auswählen" -#: cookbook/templates/shopping_list.html:232 +#: .\cookbook\templates\shopping_list.html:232 msgid "You are offline, shopping list might not syncronize." msgstr "Du bist offline, die Einkaufsliste aktualisiert möglicherweise nicht." -#: cookbook/templates/shopping_list.html:280 +#: .\cookbook\templates\shopping_list.html:280 msgid "Copy/Export" msgstr "Kopieren/Exportieren" -#: cookbook/templates/shopping_list.html:284 +#: .\cookbook\templates\shopping_list.html:284 msgid "List Prefix" msgstr "Listen Präfix" -#: cookbook/templates/shopping_list.html:516 -#: cookbook/templates/shopping_list.html:547 -#: cookbook/templates/shopping_list.html:570 -msgid "There was an error updating a resource!" -msgstr "Es gab einen Fehler beim aktualisieren der Ressource!" - -#: cookbook/templates/shopping_list.html:527 -msgid "Object created successfully!" -msgstr "Objekt erfolgreich erstellt!" - -#: cookbook/templates/shopping_list.html:536 +#: .\cookbook\templates\shopping_list.html:538 msgid "There was an error creating a resource!" msgstr "Es gab einen Fehler beim erstellen einer Ressource!" -#: cookbook/templates/shopping_list.html:596 -msgid "Please enter a valid food" -msgstr "Bitte ein gültiges Lebensmittel eingeben" - -#: cookbook/templates/stats.html:4 +#: .\cookbook\templates\stats.html:4 msgid "Stats" msgstr "Statistiken" -#: cookbook/templates/stats.html:19 +#: .\cookbook\templates\stats.html:19 msgid "Number of objects" msgstr "Anzahl der Objekte" -#: cookbook/templates/stats.html:30 +#: .\cookbook\templates\stats.html:30 msgid "Recipe Imports" msgstr "Rezept Importe" -#: cookbook/templates/stats.html:38 +#: .\cookbook\templates\stats.html:38 msgid "Objects stats" msgstr "Objekt Statistiken" -#: cookbook/templates/stats.html:41 +#: .\cookbook\templates\stats.html:41 msgid "Recipes without Keywords" msgstr "Rezepte ohne Schlagwort" -#: cookbook/templates/stats.html:43 +#: .\cookbook\templates\stats.html:43 msgid "External Recipes" msgstr "Externe Rezepte" -#: cookbook/templates/stats.html:45 +#: .\cookbook\templates\stats.html:45 msgid "Internal Recipes" msgstr "Interne Rezepte" -#: cookbook/templates/system.html:21 cookbook/views/lists.py:74 +#: .\cookbook\templates\system.html:21 .\cookbook\views\lists.py:128 msgid "Invite Links" msgstr "Einladungs Link" -#: cookbook/templates/system.html:22 +#: .\cookbook\templates\system.html:22 msgid "Show Links" msgstr "Links anzeigen" -#: cookbook/templates/system.html:26 +#: .\cookbook\templates\system.html:27 msgid "Backup & Restore" msgstr "Backup & Wiederherstellung" -#: cookbook/templates/system.html:27 +#: .\cookbook\templates\system.html:28 msgid "Download Backup" msgstr "Backup herunterladen" -#: cookbook/templates/system.html:37 +#: .\cookbook\templates\system.html:49 msgid "System Information" msgstr "System Information" -#: cookbook/templates/system.html:39 +#: .\cookbook\templates\system.html:51 msgid "" "\n" " Django Recipes is an open source free software application. It can " @@ -1652,21 +1542,21 @@ msgstr "" "github.com/vabene1111/recipes/releases\">hier.\n" " " -#: cookbook/templates/system.html:53 +#: .\cookbook\templates\system.html:65 msgid "Media Serving" msgstr "Media Serving" -#: cookbook/templates/system.html:54 cookbook/templates/system.html:69 -#: cookbook/templates/system.html:85 +#: .\cookbook\templates\system.html:66 .\cookbook\templates\system.html:81 +#: .\cookbook\templates\system.html:97 msgid "Warning" msgstr "Warnung" -#: cookbook/templates/system.html:54 cookbook/templates/system.html:69 -#: cookbook/templates/system.html:85 cookbook/templates/system.html:100 +#: .\cookbook\templates\system.html:66 .\cookbook\templates\system.html:81 +#: .\cookbook\templates\system.html:97 .\cookbook\templates\system.html:112 msgid "Ok" msgstr "Ok" -#: cookbook/templates/system.html:56 +#: .\cookbook\templates\system.html:68 msgid "" "Serving media files directly using gunicorn/python is not recommend!\n" " Please follow the steps described\n" @@ -1682,16 +1572,16 @@ msgstr "" " your installation.\n" " " -#: cookbook/templates/system.html:62 cookbook/templates/system.html:78 -#: cookbook/templates/system.html:93 cookbook/templates/system.html:107 +#: .\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!" -#: cookbook/templates/system.html:67 +#: .\cookbook\templates\system.html:79 msgid "Secret Key" msgstr "Secret Key" -#: cookbook/templates/system.html:71 +#: .\cookbook\templates\system.html:83 msgid "" "\n" " You do not have a SECRET_KEY configured in your " @@ -1713,11 +1603,11 @@ msgstr "" "file.\n" " " -#: cookbook/templates/system.html:83 +#: .\cookbook\templates\system.html:95 msgid "Debug Mode" msgstr "Debug Mode" -#: cookbook/templates/system.html:87 +#: .\cookbook\templates\system.html:99 msgid "" "\n" " This application is still running in debug mode. This is most " @@ -1735,15 +1625,15 @@ msgstr "" "file.\n" " " -#: cookbook/templates/system.html:98 +#: .\cookbook\templates\system.html:110 msgid "Database" msgstr "Datenbank" -#: cookbook/templates/system.html:100 +#: .\cookbook\templates\system.html:112 msgid "Info" msgstr "Information" -#: cookbook/templates/system.html:102 +#: .\cookbook\templates\system.html:114 msgid "" "\n" " This application is not running with a Postgres database " @@ -1757,36 +1647,37 @@ msgstr "" " features only work with postgres databases.\n" " " -#: cookbook/templates/url_import.html:5 +#: .\cookbook\templates\url_import.html:5 msgid "URL Import" msgstr "URL Import" -#: cookbook/templates/url_import.html:23 +#: .\cookbook\templates\url_import.html:23 msgid "Enter website URL" msgstr "Webseiten URL eingeben" -#: cookbook/templates/url_import.html:44 +#: .\cookbook\templates\url_import.html:44 msgid "Recipe Name" msgstr "Rezept Name" -#: cookbook/templates/url_import.html:99 cookbook/templates/url_import.html:131 -#: cookbook/templates/url_import.html:186 +#: .\cookbook\templates\url_import.html:99 +#: .\cookbook\templates\url_import.html:131 +#: .\cookbook\templates\url_import.html:187 msgid "Select one" msgstr "Auswählen" -#: cookbook/templates/url_import.html:197 +#: .\cookbook\templates\url_import.html:198 msgid "All Keywords" msgstr "Alle Schlagwörter" -#: cookbook/templates/url_import.html:199 +#: .\cookbook\templates\url_import.html:201 msgid "Import all keywords, not only the ones already existing." msgstr "Importiert alle Schlagwörter, nicht nur die die bereits existieren." -#: cookbook/templates/url_import.html:225 +#: .\cookbook\templates\url_import.html:228 msgid "Information" msgstr "Information" -#: cookbook/templates/url_import.html:227 +#: .\cookbook\templates\url_import.html:230 msgid "" " Only websites containing ld+json or microdata information can currently\n" " be imported. Most big recipe pages " @@ -1801,52 +1692,44 @@ msgstr "" "importiert werden kann sie aber strukturierte Daten aufweist kann ein GitHub " "Issue geöffnet werden." -#: cookbook/templates/url_import.html:235 +#: .\cookbook\templates\url_import.html:238 msgid "Google ld+json Info" msgstr "Google ld+json Informationen" -#: cookbook/templates/url_import.html:238 +#: .\cookbook\templates\url_import.html:241 msgid "GitHub Issues" msgstr "GitHub Issues" -#: cookbook/templates/url_import.html:240 +#: .\cookbook\templates\url_import.html:243 msgid "Recipe Markup Specification" msgstr "Recipe Markup Spezifikation" -#: cookbook/templates/url_import.html:313 -msgid "Already importing the selected recipe, please wait!" -msgstr "Das Rezept wird bereits importiert, bitte warten!" - -#: cookbook/templates/url_import.html:322 -msgid "An error occurred while trying to import this recipe!" -msgstr "Beim importieren der Webseite ist ein Fehler aufgetreten!" - -#: cookbook/views/api.py:58 +#: .\cookbook\views\api.py:75 msgid "Parameter filter_list incorrectly formatted" msgstr "Parameter filter_list incorrectly formatted" -#: cookbook/views/api.py:70 +#: .\cookbook\views\api.py:88 msgid "Preference for given user already exists" msgstr "Preference for given user already exists" -#: cookbook/views/api.py:349 +#: .\cookbook\views\api.py:395 msgid "Sync successful!" msgstr "Synchronisation erfolgreich!" -#: cookbook/views/api.py:352 +#: .\cookbook\views\api.py:400 msgid "Error synchronizing with Storage" msgstr "Fehler beim Synchronisieren" -#: cookbook/views/api.py:410 +#: .\cookbook\views\api.py:466 msgid "The requested page could not be found." msgstr "Die Angefragte Seite konnte nicht gefunden werden." -#: cookbook/views/api.py:413 +#: .\cookbook\views\api.py:475 msgid "" "The requested page refused to provide any information (Status Code 403)." msgstr "Die angefragte Seite hat die Anfrage abgelehnt (Status Code 403)." -#: cookbook/views/data.py:83 +#: .\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." @@ -1854,84 +1737,88 @@ msgstr[0] "Massenbearbeitung erfolgreich. %(count)d Rezept wurde aktualisiert." msgstr[1] "" "Massenbearbeitung erfolgreich. %(count)d Rezepte wurden aktualisiert." -#: cookbook/views/delete.py:66 +#: .\cookbook\views\delete.py:69 msgid "Monitor" msgstr "Monitor" -#: cookbook/views/delete.py:90 cookbook/views/lists.py:66 -#: cookbook/views/new.py:75 +#: .\cookbook\views\delete.py:93 .\cookbook\views\lists.py:109 +#: .\cookbook\views\new.py:83 msgid "Storage Backend" msgstr "Speicher Quelle" -#: cookbook/views/delete.py:97 +#: .\cookbook\views\delete.py:103 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 " "Monitor verwendet wird." -#: cookbook/views/delete.py:119 cookbook/views/edit.py:175 -#: cookbook/views/new.py:125 +#: .\cookbook\views\delete.py:126 .\cookbook\views\edit.py:195 +#: .\cookbook\views\new.py:144 msgid "Recipe Book" msgstr "Rezeptbuch" -#: cookbook/views/delete.py:138 +#: .\cookbook\views\delete.py:151 msgid "Bookmarks" msgstr "Lesezeichen" -#: cookbook/views/delete.py:160 cookbook/views/new.py:181 +#: .\cookbook\views\delete.py:173 .\cookbook\views\new.py:214 msgid "Invite Link" msgstr "Einladungslink" -#: cookbook/views/edit.py:93 +#: .\cookbook\views\edit.py:99 msgid "Food" msgstr "Lebensmittel" -#: cookbook/views/edit.py:102 +#: .\cookbook\views\edit.py:109 msgid "You cannot edit this storage!" msgstr "Du kannst diese Speicherquelle nicht bearbeiten!" -#: cookbook/views/edit.py:121 +#: .\cookbook\views\edit.py:130 msgid "Storage saved!" msgstr "Speicherquelle gespeichert!" -#: cookbook/views/edit.py:123 +#: .\cookbook\views\edit.py:136 msgid "There was an error updating this storage backend!" msgstr "Es gab einen Fehler beim aktualisierung dieser Speicher Quelle!" -#: cookbook/views/edit.py:130 +#: .\cookbook\views\edit.py:147 msgid "Storage" msgstr "Speicher" -#: cookbook/views/edit.py:215 +#: .\cookbook\views\edit.py:242 msgid "Changes saved!" msgstr "Änderungen gespeichert!" -#: cookbook/views/edit.py:219 +#: .\cookbook\views\edit.py:250 msgid "Error saving changes!" msgstr "Fehler beim Speichern der Daten!" -#: cookbook/views/edit.py:249 +#: .\cookbook\views\edit.py:286 msgid "Units merged!" msgstr "Einheiten zusammengeführt!" -#: cookbook/views/edit.py:262 +#: .\cookbook\views\edit.py:292 .\cookbook\views\edit.py:314 +msgid "Cannot merge with the same object!" +msgstr "" + +#: .\cookbook\views\edit.py:308 msgid "Foods merged!" msgstr "Lebensmittel vereint" -#: cookbook/views/import_export.py:42 +#: .\cookbook\views\import_export.py:52 msgid "Recipe imported successfully!" msgstr "Rezept erfolgreich importiert!" -#: cookbook/views/import_export.py:45 +#: .\cookbook\views\import_export.py:61 msgid "Something went wrong during the import!" msgstr "Beim Import ist etwas schief gegangen!" -#: cookbook/views/import_export.py:48 +#: .\cookbook\views\import_export.py:70 msgid "Could not parse the supplied JSON!" msgstr "Das JSON konnte nicht gelesen werden!" -#: cookbook/views/import_export.py:79 +#: .\cookbook\views\import_export.py:106 msgid "" "External recipes cannot be exported, please share the file directly or " "select an internal recipe." @@ -1939,40 +1826,44 @@ msgstr "" "Externe Rezepte können nicht exportiert werden, bitte Datei direkt teilen " "oder ein Internes Rezept auswählen." -#: cookbook/views/lists.py:29 +#: .\cookbook\views\lists.py:42 msgid "Import Log" msgstr "Import Log" -#: cookbook/views/lists.py:38 +#: .\cookbook\views\lists.py:55 msgid "Discovery" msgstr "Entdeckung" -#: cookbook/views/lists.py:58 +#: .\cookbook\views\lists.py:92 msgid "Shopping Lists" msgstr "Einkaufslisten" -#: cookbook/views/new.py:98 +#: .\cookbook\views\new.py:107 msgid "Imported new recipe!" msgstr "Importier neue Rezepte!" -#: cookbook/views/new.py:101 +#: .\cookbook\views\new.py:114 msgid "There was an error importing this recipe!" msgstr "Beim importieren des Rezeptes ist ein Fehler aufgetreten!" -#: cookbook/views/views.py:86 +#: .\cookbook\views\views.py:111 msgid "You do not have the required permissions to perform this action!" msgstr "" "Sie haben nicht die notwendigen Berechtigungen um diese Aktion durchzuführen!" -#: cookbook/views/views.py:98 +#: .\cookbook\views\views.py:130 msgid "Comment saved!" msgstr "Kommentar gespeichert!" -#: cookbook/views/views.py:108 +#: .\cookbook\views\views.py:146 +msgid "This recipe is already linked to the book!" +msgstr "" + +#: .\cookbook\views\views.py:152 msgid "Bookmark saved!" msgstr "Lesezeichen gespeichert!" -#: cookbook/views/views.py:255 +#: .\cookbook\views\views.py:378 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 " @@ -1981,22 +1872,132 @@ msgstr "" "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:262 cookbook/views/views.py:302 +#: .\cookbook\views\views.py:386 .\cookbook\views\views.py:434 msgid "Passwords dont match!" msgstr "Passwörter stimmen nicht überein!" -#: cookbook/views/views.py:273 cookbook/views/views.py:311 +#: .\cookbook\views\views.py:400 .\cookbook\views\views.py:448 msgid "User has been created, please login!" msgstr "Benutzer wurde erstellt, bitte einloggen!" -#: cookbook/views/views.py:288 +#: .\cookbook\views\views.py:417 msgid "Malformed Invite Link supplied!" msgstr "Fehlerhaften Einladungslink angegeben!" -#: cookbook/views/views.py:328 +#: .\cookbook\views\views.py:469 msgid "Invite Link not valid or already used!" msgstr "Einladungslink ungültig oder bereits genutzt!" +#~ 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 "Waiting time ~" +#~ msgstr "Wartezeit ~" + +#~ 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 " diff --git a/cookbook/locale/it/LC_MESSAGES/django.mo b/cookbook/locale/it/LC_MESSAGES/django.mo index 2a197d0e519f5492cd642ef08aaeca71a45485cc..12d1dd1fb3f2abb688b2026398f3559122517cdc 100644 GIT binary patch delta 2929 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 MI-@jH*z_>se<~BFO8@`> diff --git a/cookbook/static/vue/js/recipe_view.js b/cookbook/static/vue/js/recipe_view.js index c232e8005..909449a16 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,n,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",staticStyle:{"margin-top":"2vh"}},[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"}},[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)],2)},r=[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"})])}],n=s("b85c"),c=s("5f5b"),o=(s("2dd8"),s("bc3a")),l=s.n(o),d=(s("99af"),s("59e4"));function p(e,t,s){var i=Math.floor(e),a=1,r=i+1,n=1;if(e!==i)while(a<=t&&n<=t){var c=(i+r)/(a+n);if(e===c){a+n<=t?(a+=n,i+=r,n=t+1):a>n?n=t+1:a=t+1;break}et&&(a=n,i=r),!s)return[0,i,a];var o=Math.floor(i/a);return[o,i-o*a,a]}var f={methods:{makeToast:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return u(e,t,s)}}};function u(e,t){var s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=new d["a"];i.$bvToast.toast(t,{title:e,variant:s,toaster:"b-toaster-top-center",solid:!0})}var m={methods:{_:function(e){return _(e)}}};function _(e){return window.gettext(e)}var v={methods:{resolveDjangoUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return g(e,t)}}};function g(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return null!==t?window.Urls[e](t):window.Urls[e]()}function b(e){return window.USER_PREF[e]}function h(e,t){if(b("user_fractions")){var s="",i=p.cont(e*t,9,!0);return i[0]>0&&(s+=i[0]),i[1]>0&&(s+=" ".concat(i[1],"").concat(i[2],"")),s}return j(e*t)}function j(e){var t=b("user_fractions")?b("user_fractions"):2;return+(Math.round(e+"e+".concat(t))+"e-".concat(t))}function y(e){var t=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){w(e,"There was an error loading a resource!","danger")}))}function C(e){return l.a.post(g("api:cooklog-list"),e).then((function(e){console.log(e),u("Saved","Cook Log entry saved!","success")})).catch((function(e){w(e,"There was an error creating a resource!","danger")}))}function w(e,t){if("response"in e){console.log(e.response);var s="statusText"in e.response?e.response.statusText:_("Error");t+="\n\n"+JSON.stringify(e.response.data),u(s,t,"danger")}else u("Error",t,"danger"),console.log(e)}l.a.defaults.xsrfCookieName="csrftoken",l.a.defaults.xsrfHeaderName="X-CSRFTOKEN";var k=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-md4"},[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",[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-8",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-10 offset-1",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",{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-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)},x=[],S=(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)}}},[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?s("span",[e._v(e._s(e.ingredient.unit.name))]):e._e()]),s("td",[null!==e.ingredient.food?s("span",[e._v(e._s(e.ingredient.food.name))]):e._e()]),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()])])}),O=[],E={name:"Ingredient",props:{ingredient:Object,ingredient_factor:{type:Number,default:1}},data:function(){return{checked:!1}},methods:{calculateAmount:function(e){return h(e,this.ingredient_factor)}}},$=E,z=s("2877"),N=Object(z["a"])($,S,O,!1,null,null,null),P=N.exports,M=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)},T=[],D=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("span",[e._v(e._s(e.calculateAmount(e.number)))])},I=[],U={name:"ScalableNumber",props:{number:Number,factor:{type:Number,default:4}},methods:{calculateAmount:function(e){return h(e,this.factor)}}},R=U,A=Object(z["a"])(R,D,I,!1,null,null,null),H=A.exports,L={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:H},template:"
".concat(this.code,"
")})}},V=L,F=Object(z["a"])(V,M,T,!1,null,null,null),J=F.exports,K=s("c1df"),q=s.n(K);i["default"].prototype.moment=q.a;var G={name:"Step",mixins:[m],components:{Ingredient:P,CompileComponent:J},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=q()(this.start_time).add(this.step.time_offset,"minutes").format("yyyy-MM-DDTHH:mm")},methods:{calculateAmount:function(e){return h(e,this.ingredient_factor)},updateTime:function(){this.$emit("update-start-time",q()(this.set_time_input).add(-1*this.time_offset,"minutes").format("yyyy-MM-DDTHH:mm")),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")}}},X=G,B=Object(z["a"])(X,k,x,!1,null,null,null),W=B.exports,Q=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",attrs:{onclick:"$('#bookmarkModal').modal({'show':true})"}},[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)},Y=[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"})])}],Z=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)},ee=[];i["default"].prototype.moment=q.a,i["default"].use(c["a"]);var te={name:"CookLog",mixins:[m],props:{recipe:Object},data:function(){return{logObject:{recipe:this.recipe.id,servings:0,rating:0,created_at:q()().format("yyyy-MM-DDTHH:mm")}}},methods:{logCook:function(){C(this.logObject)}}},se=te,ie=Object(z["a"])(se,Z,ee,!1,null,null,null),ae=ie.exports,re={name:"RecipeContextMenu",mixins:[v,m],components:{CookLog:ae},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}},ne=re,ce=Object(z["a"])(ne,Q,Y,!1,null,null,null),oe=ce.exports,le=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"}})])},de=[],pe={name:"PdfViewer",mixins:[v],props:{recipe:Object},computed:{pdfUrl:function(){return"/static/pdfjs/viewer.html?file="+g("api_get_recipe_file",this.recipe.id)}}},fe=pe,ue=Object(z["a"])(fe,le,de,!1,null,null,null),me=ue.exports,_e=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")}})])},ve=[],ge={name:"ImageViewer",mixins:[m],props:{recipe:Object},computed:{pdfUrl:function(){return g("api_get_recipe_file",this.recipe.id)}}},be=ge,he=Object(z["a"])(be,_e,ve,!1,null,null,null),je=he.exports,ye=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()},Ce=[],we={name:"Nutrition",mixins:[m],props:{recipe:Object,ingredient_factor:Number},methods:{calculateAmount:function(e){return h(e,this.ingredient_factor)}}},ke=we,xe=Object(z["a"])(ke,ye,Ce,!1,null,null,null),Se=xe.exports,Oe=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()},Ee=[],$e={name:"Keywords",props:{recipe:Object}},ze=$e,Ne=Object(z["a"])(ze,Oe,Ee,!1,null,null,null),Pe=Ne.exports,Me=function(){var e=this,t=e.$createElement;e._self._c;return e._m(0)},Te=[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"})])])}],De={name:"LoadingSpinner",props:{recipe:Object}},Ie=De,Ue=Object(z["a"])(Ie,Me,Te,!1,null,null,null),Re=Ue.exports;i["default"].prototype.moment=q.a,i["default"].use(c["a"]);var Ae={name:"RecipeView",mixins:[m,v,f],components:{PdfViewer:me,ImageViewer:je,Ingredient:P,Step:W,RecipeContextMenu:oe,Nutrition:Se,Keywords:Pe,LoadingSpinner:Re},computed:{ingredient_factor:function(){return this.servings/this.recipe.servings}},data:function(){return{loading:!0,recipe_id:window.RECIPE_ID,recipe:void 0,ingredient_count:0,servings:1,start_time:""}},mounted:function(){this.loadRecipe(this.recipe_id)},methods:{loadRecipe:function(e){var t=this;y(e).then((function(e){0!==window.USER_SERVINGS&&(e.servings=window.USER_SERVINGS),t.servings=e.servings;var s,i=0,a=Object(n["a"])(e.steps);try{for(a.s();!(s=a.n()).done;){var r=s.value;t.ingredient_count+=r.ingredients.length;var c,o=Object(n["a"])(r.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()}r.time_offset=i,i+=r.time}}catch(d){a.e(d)}finally{a.f()}i>0&&(t.start_time=q()().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(n["a"])(this.recipe.steps);try{for(s.s();!(t=s.n()).done;){var i,a=t.value,r=Object(n["a"])(a.ingredients);try{for(r.s();!(i=r.n()).done;){var c=i.value;c.id===e.id&&this.$set(c,"checked",!c.checked)}}catch(o){r.e(o)}finally{r.f()}}}catch(o){s.e(o)}finally{s.f()}}}},He=Ae,Le=Object(z["a"])(He,a,r,!1,null,null,null),Ve=Le.exports;i["default"].config.productionTip=!1,new i["default"]({render:function(e){return e(Ve)}}).$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=r(e);return s(t)}function r(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=r,e.exports=a,a.id="4678"}}); \ No newline at end of file +(function(e){function t(t){for(var i,n,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",staticStyle:{"margin-top":"2vh"}},[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"}},[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)],2)},r=[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"})])}],n=s("b85c"),c=s("5f5b"),o=(s("2dd8"),s("bc3a")),l=s.n(o),d=(s("99af"),s("59e4"));function p(e,t,s){var i=Math.floor(e),a=1,r=i+1,n=1;if(e!==i)while(a<=t&&n<=t){var c=(i+r)/(a+n);if(e===c){a+n<=t?(a+=n,i+=r,n=t+1):a>n?n=t+1:a=t+1;break}et&&(a=n,i=r),!s)return[0,i,a];var o=Math.floor(i/a);return[o,i-o*a,a]}var f={methods:{makeToast:function(e,t){var s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return u(e,t,s)}}};function u(e,t){var s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,i=new d["a"];i.$bvToast.toast(t,{title:e,variant:s,toaster:"b-toaster-top-center",solid:!0})}var m={methods:{_:function(e){return _(e)}}};function _(e){return window.gettext(e)}var v={methods:{resolveDjangoUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return g(e,t)}}};function g(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return null!==t?window.Urls[e](t):window.Urls[e]()}function b(e){return window.USER_PREF[e]}function h(e,t){if(b("user_fractions")){var s="",i=p.cont(e*t,9,!0);return i[0]>0&&(s+=i[0]),i[1]>0&&(s+=" ".concat(i[1],"").concat(i[2],"")),s}return j(e*t)}function j(e){var t=b("user_fractions")?b("user_fractions"):2;return+(Math.round(e+"e+".concat(t))+"e-".concat(t))}function y(e){var t=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){w(e,"There was an error loading a resource!","danger")}))}function C(e){return l.a.post(g("api:cooklog-list"),e).then((function(e){console.log(e),u("Saved","Cook Log entry saved!","success")})).catch((function(e){w(e,"There was an error creating a resource!","danger")}))}function w(e,t){if("response"in e){console.log(e.response);var s="statusText"in e.response?e.response.statusText:_("Error");t+="\n\n"+JSON.stringify(e.response.data),u(s,t,"danger")}else u("Error",t,"danger"),console.log(e)}l.a.defaults.xsrfCookieName="csrftoken",l.a.defaults.xsrfHeaderName="X-CSRFTOKEN";var k=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-md4"},[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",[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-8",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-10 offset-1",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",{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-1",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)},x=[],S=(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)}}},[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?s("span",[e._v(e._s(e.ingredient.unit.name))]):e._e()]),s("td",[null!==e.ingredient.food?s("span",[e._v(e._s(e.ingredient.food.name))]):e._e()]),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()])])}),O=[],E={name:"Ingredient",props:{ingredient:Object,ingredient_factor:{type:Number,default:1}},data:function(){return{checked:!1}},methods:{calculateAmount:function(e){return h(e,this.ingredient_factor)}}},$=E,z=s("2877"),N=Object(z["a"])($,S,O,!1,null,null,null),P=N.exports,M=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)},T=[],D=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("span",[e._v(e._s(e.calculateAmount(e.number)))])},I=[],U={name:"ScalableNumber",props:{number:Number,factor:{type:Number,default:4}},methods:{calculateAmount:function(e){return h(e,this.factor)}}},R=U,A=Object(z["a"])(R,D,I,!1,null,null,null),H=A.exports,L={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:H},template:"
".concat(this.code,"
")})}},V=L,F=Object(z["a"])(V,M,T,!1,null,null,null),J=F.exports,K=s("c1df"),q=s.n(K);i["default"].prototype.moment=q.a;var G={name:"Step",mixins:[m],components:{Ingredient:P,CompileComponent:J},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=q()(this.start_time).add(this.step.time_offset,"minutes").format("yyyy-MM-DDTHH:mm")},methods:{calculateAmount:function(e){return h(e,this.ingredient_factor)},updateTime:function(){this.$emit("update-start-time",q()(this.set_time_input).add(-1*this.time_offset,"minutes").format("yyyy-MM-DDTHH:mm")),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")}}},X=G,B=Object(z["a"])(X,k,x,!1,null,null,null),W=B.exports,Q=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",attrs:{onclick:"$('#bookmarkModal').modal({'show':true})"}},[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)},Y=[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"})])}],Z=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)},ee=[];i["default"].prototype.moment=q.a,i["default"].use(c["a"]);var te={name:"CookLog",mixins:[m],props:{recipe:Object},data:function(){return{logObject:{recipe:this.recipe.id,servings:0,rating:0,created_at:q()().format("yyyy-MM-DDTHH:mm")}}},methods:{logCook:function(){C(this.logObject)}}},se=te,ie=Object(z["a"])(se,Z,ee,!1,null,null,null),ae=ie.exports,re={name:"RecipeContextMenu",mixins:[v,m],components:{CookLog:ae},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}},ne=re,ce=Object(z["a"])(ne,Q,Y,!1,null,null,null),oe=ce.exports,le=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"}})])},de=[],pe={name:"PdfViewer",mixins:[v],props:{recipe:Object},computed:{pdfUrl:function(){return"/static/pdfjs/viewer.html?file="+g("api_get_recipe_file",this.recipe.id)}}},fe=pe,ue=Object(z["a"])(fe,le,de,!1,null,null,null),me=ue.exports,_e=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")}})])},ve=[],ge={name:"ImageViewer",mixins:[m],props:{recipe:Object},computed:{pdfUrl:function(){return g("api_get_recipe_file",this.recipe.id)}}},be=ge,he=Object(z["a"])(be,_e,ve,!1,null,null,null),je=he.exports,ye=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()},Ce=[],we={name:"Nutrition",mixins:[m],props:{recipe:Object,ingredient_factor:Number},methods:{calculateAmount:function(e){return h(e,this.ingredient_factor)}}},ke=we,xe=Object(z["a"])(ke,ye,Ce,!1,null,null,null),Se=xe.exports,Oe=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()},Ee=[],$e={name:"Keywords",props:{recipe:Object}},ze=$e,Ne=Object(z["a"])(ze,Oe,Ee,!1,null,null,null),Pe=Ne.exports,Me=function(){var e=this,t=e.$createElement;e._self._c;return e._m(0)},Te=[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"})])])}],De={name:"LoadingSpinner",props:{recipe:Object}},Ie=De,Ue=Object(z["a"])(Ie,Me,Te,!1,null,null,null),Re=Ue.exports;i["default"].prototype.moment=q.a,i["default"].use(c["a"]);var Ae={name:"RecipeView",mixins:[m,v,f],components:{PdfViewer:me,ImageViewer:je,Ingredient:P,Step:W,RecipeContextMenu:oe,Nutrition:Se,Keywords:Pe,LoadingSpinner:Re},computed:{ingredient_factor:function(){return this.servings/this.recipe.servings}},data:function(){return{loading:!0,recipe_id:window.RECIPE_ID,recipe:void 0,ingredient_count:0,servings:1,start_time:""}},mounted:function(){this.loadRecipe(this.recipe_id)},methods:{loadRecipe:function(e){var t=this;y(e).then((function(e){0!==window.USER_SERVINGS&&(e.servings=window.USER_SERVINGS),t.servings=e.servings;var s,i=0,a=Object(n["a"])(e.steps);try{for(a.s();!(s=a.n()).done;){var r=s.value;t.ingredient_count+=r.ingredients.length;var c,o=Object(n["a"])(r.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()}r.time_offset=i,i+=r.time}}catch(d){a.e(d)}finally{a.f()}i>0&&(t.start_time=q()().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(n["a"])(this.recipe.steps);try{for(s.s();!(t=s.n()).done;){var i,a=t.value,r=Object(n["a"])(a.ingredients);try{for(r.s();!(i=r.n()).done;){var c=i.value;c.id===e.id&&this.$set(c,"checked",!c.checked)}}catch(o){r.e(o)}finally{r.f()}}}catch(o){s.e(o)}finally{s.f()}}}},He=Ae,Le=Object(z["a"])(He,a,r,!1,null,null,null),Ve=Le.exports;i["default"].config.productionTip=!1,new i["default"]({render:function(e){return e(Ve)}}).$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=r(e);return s(t)}function r(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=r,e.exports=a,a.id="4678"}}); \ No newline at end of file diff --git a/cookbook/tests/edits/test_edits_recipe.py b/cookbook/tests/edits/test_edits_recipe.py index da91ef3f8..0408d0015 100644 --- a/cookbook/tests/edits/test_edits_recipe.py +++ b/cookbook/tests/edits/test_edits_recipe.py @@ -149,7 +149,7 @@ class TestEditsRecipe(TestViews): r = self.user_client_1.post( url, - {'name': 'Test', 'working_time': 15, 'waiting_time': 15, } + {'name': 'Test', 'working_time': 15, 'waiting_time': 15, 'servings': 1, } ) recipe.refresh_from_db() self.assertEqual(recipe.working_time, 15) diff --git a/recipes/locale/de/LC_MESSAGES/django.mo b/recipes/locale/de/LC_MESSAGES/django.mo index f0015b3ba5a098b7bfe9b2982ba7dd928607b872..2211174eed5f03f205c571960a3b6a688c92f7a4 100644 GIT binary patch delta 24 fcmaFM{FZsbL0&^$14CUyV+A8)D`Ufr=j0gyWyl9n delta 24 fcmaFM{FZsbL0$u0LnB=yGX+CqD-(;2=j0gyW+4Y% diff --git a/recipes/locale/de/LC_MESSAGES/django.po b/recipes/locale/de/LC_MESSAGES/django.po index 9102d156e..f3161d54b 100644 --- a/recipes/locale/de/LC_MESSAGES/django.po +++ b/recipes/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-12-26 13:48+0100\n" +"POT-Creation-Date: 2021-01-13 23:31+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,30 +18,34 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: recipes/settings.py:175 +#: .\recipes\settings.py:196 msgid "English" msgstr "Englisch" -#: recipes/settings.py:176 +#: .\recipes\settings.py:197 msgid "German" msgstr "Deutsch" -#: recipes/settings.py:177 +#: .\recipes\settings.py:198 msgid "Dutch" msgstr "" -#: recipes/settings.py:178 +#: .\recipes\settings.py:199 msgid "French" msgstr "" -#: recipes/settings.py:179 +#: .\recipes\settings.py:200 msgid "Catalan" msgstr "" -#: recipes/settings.py:180 +#: .\recipes\settings.py:201 msgid "Spanish" msgstr "" -#: recipes/settings.py:181 +#: .\recipes\settings.py:202 msgid "Italian" msgstr "" + +#: .\recipes\settings.py:203 +msgid "Latvian" +msgstr "" diff --git a/requirements.txt b/requirements.txt index 35fb9e721..ad9401795 100644 --- a/requirements.txt +++ b/requirements.txt @@ -29,4 +29,5 @@ microdata==0.7.1 django-random-queryset==0.1.3 Jinja2==2.11.2 django-webpack-loader==0.7.0 -django-js-reverse==0.9.1 \ No newline at end of file +django-js-reverse==0.9.1 +pre-commit==2.9.3 \ No newline at end of file diff --git a/vue/src/components/Step.vue b/vue/src/components/Step.vue index 9cb5a836b..b2e438a06 100644 --- a/vue/src/components/Step.vue +++ b/vue/src/components/Step.vue @@ -60,7 +60,7 @@ -
+