diff --git a/.env.template b/.env.template index a7adf092ff..0b37c05c58 100644 --- a/.env.template +++ b/.env.template @@ -6,6 +6,9 @@ # random secret key, use for example `base64 /dev/urandom | head -c50` to generate one SECRET_KEY= +# allowed hosts (see documentation), should be set to your hostname(s) but might be * (default) for some proxies/providers +# ALLOWED_HOSTS=recipes.mydomain.com + # add only a database password if you want to run with the default postgres, otherwise change settings accordingly DB_ENGINE=django.db.backends.postgresql POSTGRES_HOST=db_recipes diff --git a/.flake8 b/.flake8 new file mode 100644 index 0000000000..f3353121e7 --- /dev/null +++ b/.flake8 @@ -0,0 +1,22 @@ +[flake8] +extend-ignore = + # Whitespace before ':' - Required for black compatibility + E203, + # Line break occurred before a binary operator - Required for black compatibility + W503, + # Comparison to False should be 'if cond is False:' or 'if not cond:' + E712 +exclude = + .git, + **/__pycache__, + **/.git, + **/.svn, + **/.hg, + **/CVS, + **/.DS_Store, + .vscode, + **/*.pyc +per-file-ignores= + cookbook/apps.py:F401 +max-line-length = 179 + diff --git a/.gitignore b/.gitignore index 143271c6c6..c4d38e4181 100644 --- a/.gitignore +++ b/.gitignore @@ -47,6 +47,11 @@ docs/reports/** # Django stuff: *.log +mediafiles/ +*.sqlite3* +staticfiles/ +postgresql/ +data/ # Sphinx documentation docs/_build/ @@ -59,32 +64,23 @@ target/ \.idea/dataSources\.local\.xml -venv/ - -mediafiles/ - -*.sqlite3* - \.idea/workspace\.xml \.idea/misc\.xml # Deployment - \.env -staticfiles/ -postgresql/ -data/ - +cookbook/static/vue +vue/webpack-stats.json /docker-compose.override.yml vue/node_modules plugins -vetur.config.js -cookbook/static/vue -vue/webpack-stats.json +vue3/node_modules cookbook/templates/sw.js -.prettierignore vue/.yarn vue3/.vite -vue3/node_modules + +# Configs +vetur.config.js +venv/ diff --git a/.idea/watcherTasks.xml b/.idea/watcherTasks.xml new file mode 100644 index 0000000000..546f6cfc0f --- /dev/null +++ b/.idea/watcherTasks.xml @@ -0,0 +1,31 @@ + + + + + + + + \ No newline at end of file diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000000..aea0c3a512 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,13 @@ +# generated files +api.ts +vue/src/apps/*.js +vue/node_modules +staticfiles/ +docs/reports/ +/vue3/src/openapi/ + +# ignored files - prettier interferes with django templates and github actions +*.html +*.yml +*.yaml + diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000000..956e17f3cc --- /dev/null +++ b/.prettierrc @@ -0,0 +1,7 @@ +{ + "printWidth": 179, + "trailingComma": "es5", + "tabWidth": 2, + "semi": false, + "experimentalTernaries": true +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 1f900399c9..c3e6602d36 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,5 +3,12 @@ "cookbook/tests" ], "python.testing.unittestEnabled": false, - "python.testing.pytestEnabled": true -} \ No newline at end of file + "python.testing.pytestEnabled": true, + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "[python]": { + "editor.defaultFormatter": "eeyore.yapf", + }, + "yapf.args": [], + "isort.args": [] +} diff --git a/Dockerfile b/Dockerfile index 3f17d0f118..4b52f246da 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,6 +6,8 @@ RUN apk add --no-cache postgresql-libs postgresql-client gettext zlib libjpeg li #Print all logs without buffering it. ENV PYTHONUNBUFFERED 1 +ENV DOCKER true + #This port will be used by gunicorn. EXPOSE 8080 diff --git a/boot.sh b/boot.sh index ae3dbb51d8..9f70a535c3 100644 --- a/boot.sh +++ b/boot.sh @@ -67,7 +67,7 @@ echo "Migrating database" python manage.py migrate -echo "Generating static files" +echo "Collecting static files, this may take a while..." python manage.py collectstatic_js_reverse python manage.py collectstatic --noinput diff --git a/cookbook/admin.py b/cookbook/admin.py index 402d6f3f42..32af3e5a2e 100644 --- a/cookbook/admin.py +++ b/cookbook/admin.py @@ -185,7 +185,7 @@ class StepAdmin(admin.ModelAdmin): @admin.display(description="Name") def recipe_and_name(obj): if not obj.recipe_set.exists(): - return f"Orphaned Step{'':s if not obj.name else f': {obj.name}'}" + return "Orphaned Step" + ('' if not obj.name else f': {obj.name}') return f"{obj.recipe_set.first().name}: {obj.name}" if obj.name else obj.recipe_set.first().name @@ -376,10 +376,17 @@ class ShareLinkAdmin(admin.ModelAdmin): admin.site.register(ShareLink, ShareLinkAdmin) +@admin.action(description='Delete all properties with type') +def delete_properties_with_type(modeladmin, request, queryset): + for pt in queryset: + Property.objects.filter(property_type=pt).delete() + + class PropertyTypeAdmin(admin.ModelAdmin): - search_fields = ('space',) + search_fields = ('name',) list_display = ('id', 'space', 'name', 'fdc_id') + actions = [delete_properties_with_type] admin.site.register(PropertyType, PropertyTypeAdmin) diff --git a/cookbook/helper/recipe_url_import.py b/cookbook/helper/recipe_url_import.py index aa0bb2d87d..a6d91f84c5 100644 --- a/cookbook/helper/recipe_url_import.py +++ b/cookbook/helper/recipe_url_import.py @@ -15,12 +15,9 @@ def get_from_scraper(scrape, request): - # converting the scrape_me object to the existing json format based on ld+json + # converting the scrape_html object to the existing json format based on ld+json - recipe_json = { - 'steps': [], - 'internal': True - } + recipe_json = {'steps': [], 'internal': True} keywords = [] # assign source URL @@ -157,11 +154,18 @@ def get_from_scraper(scrape, request): # assign steps try: for i in parse_instructions(scrape.instructions()): - recipe_json['steps'].append({'instruction': i, 'ingredients': [], 'show_ingredients_table': request.user.userpreference.show_step_ingredients, }) + recipe_json['steps'].append({ + 'instruction': i, + 'ingredients': [], + 'show_ingredients_table': request.user.userpreference.show_step_ingredients, + }) except Exception: pass if len(recipe_json['steps']) == 0: - recipe_json['steps'].append({'instruction': '', 'ingredients': [], }) + recipe_json['steps'].append({ + 'instruction': '', + 'ingredients': [], + }) recipe_json['description'] = recipe_json['description'][:512] if len(recipe_json['description']) > 256: # split at 256 as long descriptions don't look good on recipe cards @@ -182,20 +186,20 @@ def get_from_scraper(scrape, request): 'original_text': x } if unit: - ingredient['unit'] = {'name': unit, } + ingredient['unit'] = { + 'name': unit, + } recipe_json['steps'][0]['ingredients'].append(ingredient) except Exception: - recipe_json['steps'][0]['ingredients'].append( - { - 'amount': 0, - 'unit': None, - 'food': { - 'name': x, - }, - 'note': '', - 'original_text': x - } - ) + recipe_json['steps'][0]['ingredients'].append({ + 'amount': 0, + 'unit': None, + 'food': { + 'name': x, + }, + 'note': '', + 'original_text': x + }) except Exception: pass @@ -248,14 +252,16 @@ def get_from_youtube_scraper(url, request): 'working_time': 0, 'waiting_time': 0, 'image': "", - 'keywords': [{'name': kw.name, 'label': kw.name, 'id': kw.pk}], + 'keywords': [{ + 'name': kw.name, + 'label': kw.name, + 'id': kw.pk + }], 'source_url': url, - 'steps': [ - { - 'ingredients': [], - 'instruction': '' - } - ] + 'steps': [{ + 'ingredients': [], + 'instruction': '' + }] } try: @@ -367,8 +373,8 @@ def parse_servings(servings): servings = 1 elif isinstance(servings, list): try: - servings = int(re.findall(r'\b\d+\b', servings[0])[0]) - except KeyError: + servings = int(re.findall(r'\b\d+\b', str(servings[0]))[0]) + except (KeyError, IndexError): servings = 1 return servings @@ -452,10 +458,7 @@ def normalize_string(string): def iso_duration_to_minutes(string): - match = re.match( - r'P((?P\d+)Y)?((?P\d+)M)?((?P\d+)W)?((?P\d+)D)?T((?P\d+)H)?((?P\d+)M)?((?P\d+)S)?', - string - ).groupdict() + match = re.match(r'P((?P\d+)Y)?((?P\d+)M)?((?P\d+)W)?((?P\d+)D)?T((?P\d+)H)?((?P\d+)M)?((?P\d+)S)?', string).groupdict() return int(match['days'] or 0) * 24 * 60 + int(match['hours'] or 0) * 60 + int(match['minutes'] or 0) diff --git a/cookbook/helper/scrapers/scrapers.py b/cookbook/helper/scrapers/scrapers.py index 7d6c08b155..0cf01333b9 100644 --- a/cookbook/helper/scrapers/scrapers.py +++ b/cookbook/helper/scrapers/scrapers.py @@ -30,7 +30,7 @@ def __init__( html=None, url=None, ): - self.wild_mode = False + self.supported_only = False self.meta_http_equiv = False self.soup = BeautifulSoup(html, "html.parser") self.url = url diff --git a/cookbook/integration/nextcloud_cookbook.py b/cookbook/integration/nextcloud_cookbook.py index 4357c509b7..1520e9014a 100644 --- a/cookbook/integration/nextcloud_cookbook.py +++ b/cookbook/integration/nextcloud_cookbook.py @@ -60,20 +60,20 @@ def get_recipe_from_file(self, file): step = Step.objects.create( instruction=s, space=self.request.space, show_ingredients_table=self.request.user.userpreference.show_step_ingredients, ) - if not ingredients_added: - if len(recipe_json['description'].strip()) > 500: - step.instruction = recipe_json['description'].strip() + '\n\n' + step.instruction - ingredients_added = True - - ingredient_parser = IngredientParser(self.request, True) + ingredient_parser = IngredientParser(self.request, True) + if ingredients_added == False: for ingredient in recipe_json['recipeIngredient']: - amount, unit, food, note = ingredient_parser.parse(ingredient) - f = ingredient_parser.get_food(food) - u = ingredient_parser.get_unit(unit) - step.ingredients.add(Ingredient.objects.create( - food=f, unit=u, amount=amount, note=note, original_text=ingredient, space=self.request.space, - )) + ingredients_added = True + if ingredient.startswith('##'): + subheader = ingredient.replace('##', '', 1) + step.ingredients.add(Ingredient.objects.create(note=subheader, is_header=True, no_amount=True, space=self.request.space)) + else: + amount, unit, food, note = ingredient_parser.parse(ingredient) + f = ingredient_parser.get_food(food) + u = ingredient_parser.get_unit(unit) + step.ingredients.add(Ingredient.objects.create( + food=f, unit=u, amount=amount, note=note, original_text=ingredient, space=self.request.space,)) recipe.steps.add(step) if 'nutrition' in recipe_json: diff --git a/cookbook/integration/plantoeat.py b/cookbook/integration/plantoeat.py index c4cc0f135f..b69b632835 100644 --- a/cookbook/integration/plantoeat.py +++ b/cookbook/integration/plantoeat.py @@ -4,6 +4,7 @@ import validators from cookbook.helper.ingredient_parser import IngredientParser +from cookbook.helper.recipe_url_import import parse_servings, parse_servings_text, parse_time from cookbook.integration.integration import Integration from cookbook.models import Ingredient, Keyword, Recipe, Step @@ -18,32 +19,38 @@ def get_recipe_from_file(self, file): tags = None ingredients = [] directions = [] - description = '' + fields = {} for line in file.replace('\r', '').split('\n'): if line.strip() != '': if 'Title:' in line: - title = line.replace('Title:', '').replace('"', '').strip() + fields['name'] = line.replace('Title:', '').replace('"', '').strip() if 'Description:' in line: - description = line.replace('Description:', '').strip() - if 'Source:' in line or 'Serves:' in line or 'Prep Time:' in line or 'Cook Time:' in line: - directions.append(line.strip() + '\n') + fields['description'] = line.replace('Description:', '').strip() + if 'Serves:' in line: + fields['servings'] = parse_servings(line.replace('Serves:', '').strip()) + if 'Source:' in line: + fields['source_url'] = line.replace('Source:', '').strip() if 'Photo Url:' in line: image_url = line.replace('Photo Url:', '').strip() + if 'Prep Time:' in line: + fields['working_time'] = parse_time(line.replace('Prep Time:', '').strip()) + if 'Cook Time:' in line: + fields['waiting_time'] = parse_time(line.replace('Cook Time:', '').strip()) if 'Tags:' in line: tags = line.replace('Tags:', '').strip() - if ingredient_mode: - if len(line) > 2 and 'Instructions:' not in line: - ingredients.append(line.strip()) - if direction_mode: - if len(line) > 2: - directions.append(line.strip() + '\n') if 'Ingredients:' in line: ingredient_mode = True if 'Directions:' in line: ingredient_mode = False direction_mode = True + if ingredient_mode: + if len(line) > 2 and 'Ingredients:' not in line: + ingredients.append(line.strip()) + if direction_mode: + if len(line) > 2: + directions.append(line.strip() + '\n') - recipe = Recipe.objects.create(name=title, description=description, created_by=self.request.user, internal=True, space=self.request.space) + recipe = Recipe.objects.create(**fields, created_by=self.request.user, internal=True, space=self.request.space) step = Step.objects.create( instruction='\n'.join(directions) + '\n\n', space=self.request.space, show_ingredients_table=self.request.user.userpreference.show_step_ingredients, diff --git a/cookbook/locale/ar/LC_MESSAGES/django.po b/cookbook/locale/ar/LC_MESSAGES/django.po index 7045aae6e6..132c0df97a 100644 --- a/cookbook/locale/ar/LC_MESSAGES/django.po +++ b/cookbook/locale/ar/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: 2023-11-28 11:03+0000\n" "Last-Translator: Mahmoud Aljouhari \n" "Language-Team: Arabic \n" "Language-Team: Bulgarian \n" "Language-Team: Catalan DEBUG = 0 al fitxer de configuració .env." #: .\cookbook\templates\system.html:86 +msgid "Allowed Hosts" +msgstr "" + +#: .\cookbook\templates\system.html:90 +msgid "" +"\n" +" Your allowed hosts are configured to allow every host. This " +"might be ok in some setups but should be avoided. Please see the docs about " +"this.\n" +" " +msgstr "" + +#: .\cookbook\templates\system.html:97 msgid "Database" msgstr "Base de Dades" -#: .\cookbook\templates\system.html:89 +#: .\cookbook\templates\system.html:100 msgid "Info" msgstr "Info" -#: .\cookbook\templates\system.html:99 .\cookbook\templates\system.html:116 +#: .\cookbook\templates\system.html:110 .\cookbook\templates\system.html:127 #, fuzzy #| msgid "Use fractions" msgid "Migrations" msgstr "Utilitza fraccions" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -2087,19 +2101,19 @@ msgid "" " " msgstr "" -#: .\cookbook\templates\system.html:171 +#: .\cookbook\templates\system.html:182 msgid "False" msgstr "" -#: .\cookbook\templates\system.html:171 +#: .\cookbook\templates\system.html:182 msgid "True" msgstr "" -#: .\cookbook\templates\system.html:196 +#: .\cookbook\templates\system.html:207 msgid "Hide" msgstr "" -#: .\cookbook\templates\system.html:199 +#: .\cookbook\templates\system.html:210 #, fuzzy #| msgid "Show Log" msgid "Show" @@ -2542,7 +2556,7 @@ msgid "There was an error importing this recipe!" msgstr "S'ha produït un error en importar la recepta!" #: .\cookbook\views\views.py:69 .\cookbook\views\views.py:177 -#: .\cookbook\views\views.py:204 .\cookbook\views\views.py:418 +#: .\cookbook\views\views.py:204 .\cookbook\views\views.py:423 msgid "This feature is not available in the demo version!" msgstr "Funció no està disponible a la versió de demostració!" @@ -2585,17 +2599,21 @@ msgstr "" msgid "Fuzzy search is not compatible with this search method!" msgstr "Cerca difusa no és compatible amb aquest mètode de cerca!" -#: .\cookbook\views\views.py:305 +#: .\cookbook\views\views.py:306 #, python-format msgid "PostgreSQL %(v)s is deprecated. Upgrade to a fully supported version!" msgstr "" -#: .\cookbook\views\views.py:308 +#: .\cookbook\views\views.py:309 #, python-format msgid "You are running PostgreSQL %(v1)s. PostgreSQL %(v2)s is recommended" msgstr "" -#: .\cookbook\views\views.py:312 +#: .\cookbook\views\views.py:313 +msgid "Unable to determine PostgreSQL version." +msgstr "" + +#: .\cookbook\views\views.py:317 #, fuzzy #| msgid "" #| "\n" @@ -2612,7 +2630,7 @@ msgstr "" "Això està bé, però no es recomana com alguns\n" "les funcions només funcionen amb bases de dades postgres." -#: .\cookbook\views\views.py:355 +#: .\cookbook\views\views.py:360 #, fuzzy #| msgid "" #| "The setup page can only be used to create the first user! If you have " @@ -2627,27 +2645,27 @@ msgstr "" "Si heu oblidat les vostres credencials de superusuari, consulteu la " "documentació de django sobre com restablir les contrasenyes." -#: .\cookbook\views\views.py:364 +#: .\cookbook\views\views.py:369 msgid "Passwords dont match!" msgstr "Les contrasenyes no coincideixen!" -#: .\cookbook\views\views.py:372 +#: .\cookbook\views\views.py:377 msgid "User has been created, please login!" msgstr "L'usuari s'ha creat, si us plau inicieu la sessió!" -#: .\cookbook\views\views.py:388 +#: .\cookbook\views\views.py:393 msgid "Malformed Invite Link supplied!" msgstr "S'ha proporcionat un enllaç d'invitació mal format." -#: .\cookbook\views\views.py:405 +#: .\cookbook\views\views.py:410 msgid "Successfully joined space." msgstr "Unit correctament a l'espai." -#: .\cookbook\views\views.py:411 +#: .\cookbook\views\views.py:416 msgid "Invite Link not valid or already used!" msgstr "L'enllaç d'invitació no és vàlid o ja s'ha utilitzat." -#: .\cookbook\views\views.py:427 +#: .\cookbook\views\views.py:432 msgid "" "Reporting share links is not enabled for this instance. Please notify the " "page administrator to report problems." @@ -2655,7 +2673,7 @@ msgstr "" "Notificació d'enllaços compartits no activada en aquesta instància. Aviseu " "l'administrador per informar dels problemes." -#: .\cookbook\views\views.py:432 +#: .\cookbook\views\views.py:437 msgid "" "Recipe sharing link has been disabled! For additional information please " "contact the page administrator." @@ -2663,23 +2681,23 @@ msgstr "" "L'enllaç per compartir receptes s'ha desactivat! Per obtenir informació " "addicional, poseu-vos en contacte amb l'administrador." -#: .\cookbook\views\views.py:446 +#: .\cookbook\views\views.py:451 msgid "Manage recipes, shopping list, meal plans and more." msgstr "" -#: .\cookbook\views\views.py:453 +#: .\cookbook\views\views.py:458 msgid "Plan" msgstr "Pla" -#: .\cookbook\views\views.py:453 +#: .\cookbook\views\views.py:458 msgid "View your meal Plan" msgstr "" -#: .\cookbook\views\views.py:454 +#: .\cookbook\views\views.py:459 msgid "View your cookbooks" msgstr "" -#: .\cookbook\views\views.py:455 +#: .\cookbook\views\views.py:460 #, fuzzy #| msgid "New Shopping List" msgid "View your shopping lists" diff --git a/cookbook/locale/cs/LC_MESSAGES/django.po b/cookbook/locale/cs/LC_MESSAGES/django.po index 80feb6c5c8..42b80512c6 100644 --- a/cookbook/locale/cs/LC_MESSAGES/django.po +++ b/cookbook/locale/cs/LC_MESSAGES/django.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: 2024-01-09 12:07+0000\n" "Last-Translator: Jan Kubošek \n" "Language-Team: Czech \n" "Language-Team: Danish \n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" +"PO-Revision-Date: 2024-05-11 00:33+0000\n" +"Last-Translator: Jakob Priesner \n" "Language-Team: German \n" "Language: de\n" @@ -281,31 +281,31 @@ msgstr "Du hast die maximale Anzahl an Rezepten für Deinen Space erreicht." msgid "You have more users than allowed in your space." msgstr "Du hast mehr Benutzer in Deinem Space als erlaubt." -#: .\cookbook\helper\recipe_url_import.py:304 +#: .\cookbook\helper\recipe_url_import.py:310 msgid "reverse rotation" msgstr "Linkslauf" -#: .\cookbook\helper\recipe_url_import.py:305 +#: .\cookbook\helper\recipe_url_import.py:311 msgid "careful rotation" msgstr "Kochlöffel" -#: .\cookbook\helper\recipe_url_import.py:306 +#: .\cookbook\helper\recipe_url_import.py:312 msgid "knead" msgstr "Kneten" -#: .\cookbook\helper\recipe_url_import.py:307 +#: .\cookbook\helper\recipe_url_import.py:313 msgid "thicken" msgstr "Andicken" -#: .\cookbook\helper\recipe_url_import.py:308 +#: .\cookbook\helper\recipe_url_import.py:314 msgid "warm up" msgstr "Erwärmen" -#: .\cookbook\helper\recipe_url_import.py:309 +#: .\cookbook\helper\recipe_url_import.py:315 msgid "ferment" msgstr "Fermentieren" -#: .\cookbook\helper\recipe_url_import.py:310 +#: .\cookbook\helper\recipe_url_import.py:316 msgid "sous-vide" msgstr "Sous-vide" @@ -427,15 +427,13 @@ msgstr "Mittagessen" msgid "Dinner" msgstr "Abendessen" -#: .\cookbook\migrations\0047_auto_20200602_1133.py:29 .\cookbook\models.py:920 +#: .\cookbook\migrations\0047_auto_20200602_1133.py:29 .\cookbook\models.py:919 msgid "Other" msgstr "Andere" #: .\cookbook\migrations\0190_auto_20230525_1506.py:17 -#, fuzzy -#| msgid "Fats" msgid "Fat" -msgstr "Fette" +msgstr "Fett" #: .\cookbook\migrations\0190_auto_20230525_1506.py:17 #: .\cookbook\migrations\0190_auto_20230525_1506.py:18 @@ -467,45 +465,43 @@ msgstr "" "Maximale Datei-Speichergröße in MB. 0 für unbegrenzt, -1 um den Datei-Upload " "zu deaktivieren." -#: .\cookbook\models.py:455 .\cookbook\templates\search.html:7 +#: .\cookbook\models.py:454 .\cookbook\templates\search.html:7 #: .\cookbook\templates\settings.html:18 msgid "Search" msgstr "Suchen" -#: .\cookbook\models.py:456 .\cookbook\templates\base.html:114 +#: .\cookbook\models.py:455 .\cookbook\templates\base.html:114 #: .\cookbook\templates\meal_plan.html:7 msgid "Meal-Plan" msgstr "Essensplan" -#: .\cookbook\models.py:457 .\cookbook\templates\base.html:122 -#: .\cookbook\views\views.py:454 +#: .\cookbook\models.py:456 .\cookbook\templates\base.html:122 +#: .\cookbook\views\views.py:459 msgid "Books" msgstr "Bücher" -#: .\cookbook\models.py:458 .\cookbook\templates\base.html:118 -#: .\cookbook\views\views.py:455 +#: .\cookbook\models.py:457 .\cookbook\templates\base.html:118 +#: .\cookbook\views\views.py:460 msgid "Shopping" msgstr "Einkaufsliste" -#: .\cookbook\models.py:753 +#: .\cookbook\models.py:752 msgid " is part of a recipe step and cannot be deleted" msgstr " ist Teil eines Rezepts und kann nicht gelöscht werden" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 msgid "Nutrition" msgstr "Nährwerte" -#: .\cookbook\models.py:919 -#, fuzzy -#| msgid "Merge" +#: .\cookbook\models.py:918 msgid "Allergen" -msgstr "Zusammenführen" +msgstr "Allergen" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Price" msgstr "Preis" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Goal" msgstr "Ziel" @@ -553,19 +549,15 @@ msgstr "Neue Einheit" #: .\cookbook\models.py:1473 msgid "Transpose Words" -msgstr "" +msgstr "Wörter austauschen" #: .\cookbook\models.py:1474 -#, fuzzy -#| msgid "Food Alias" msgid "Food Replace" -msgstr "Lebensmittel Alias" +msgstr "Lebensmittelersatz" #: .\cookbook\models.py:1475 -#, fuzzy -#| msgid "Description Replace" msgid "Unit Replace" -msgstr "Beschreibung ersetzen" +msgstr "Einheit Ersetzen" #: .\cookbook\models.py:1476 msgid "Name Replace" @@ -1029,13 +1021,11 @@ msgstr "Exportieren" #: .\cookbook\templates\base.html:287 msgid "Properties" -msgstr "" +msgstr "Eigenschaften" #: .\cookbook\templates\base.html:301 .\cookbook\views\lists.py:255 -#, fuzzy -#| msgid "Account Connections" msgid "Unit Conversions" -msgstr "Account-Verbindungen" +msgstr "Einheitenumwandlungen" #: .\cookbook\templates\base.html:318 .\cookbook\templates\index.html:47 msgid "Import Recipe" @@ -1055,10 +1045,8 @@ msgid "Space Settings" msgstr "Space Einstellungen" #: .\cookbook\templates\base.html:340 -#, fuzzy -#| msgid "External Recipes" msgid "External Connectors" -msgstr "Externe Rezepte" +msgstr "Externe Konnektoren" #: .\cookbook\templates\base.html:345 .\cookbook\templates\system.html:13 msgid "System" @@ -1519,10 +1507,8 @@ msgid "Back" msgstr "Zurück" #: .\cookbook\templates\property_editor.html:7 -#, fuzzy -#| msgid "Ingredient Editor" msgid "Property Editor" -msgstr "Zutateneditor" +msgstr "Eigenschaften-Editor" #: .\cookbook\templates\recipe_view.html:36 msgid "Comments" @@ -1969,10 +1955,8 @@ msgid "Sign in using" msgstr "Einloggen mit" #: .\cookbook\templates\space_manage.html:7 -#, fuzzy -#| msgid "Space Membership" msgid "Space Management" -msgstr "Space-Mitgliedschaft" +msgstr "Space-Management" #: .\cookbook\templates\space_manage.html:26 msgid "Space:" @@ -2069,20 +2053,25 @@ msgid "" "script to generate version information (done automatically in docker).\n" " " msgstr "" +"\n" +" Führe version.py im update script durch, um " +"Informationen zur Version anzuzeigen (wird automatisch von docker " +"durchgeführt).\n" +" " #: .\cookbook\templates\system.html:46 msgid "Media Serving" msgstr "Medien ausliefern" #: .\cookbook\templates\system.html:47 .\cookbook\templates\system.html:61 -#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:91 -#: .\cookbook\templates\system.html:102 +#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:88 +#: .\cookbook\templates\system.html:102 .\cookbook\templates\system.html:113 msgid "Warning" msgstr "Warnung" #: .\cookbook\templates\system.html:47 .\cookbook\templates\system.html:61 -#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:93 -#: .\cookbook\templates\system.html:102 +#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:88 +#: .\cookbook\templates\system.html:104 .\cookbook\templates\system.html:113 msgid "Ok" msgstr "Ok" @@ -2102,7 +2091,8 @@ msgstr "" " " #: .\cookbook\templates\system.html:55 .\cookbook\templates\system.html:70 -#: .\cookbook\templates\system.html:83 .\cookbook\views\views.py:302 +#: .\cookbook\templates\system.html:83 .\cookbook\templates\system.html:94 +#: .\cookbook\views\views.py:303 msgid "Everything is fine!" msgstr "Alles in Ordnung!" @@ -2152,20 +2142,31 @@ msgstr "" " " #: .\cookbook\templates\system.html:86 +msgid "Allowed Hosts" +msgstr "" + +#: .\cookbook\templates\system.html:90 +msgid "" +"\n" +" Your allowed hosts are configured to allow every host. This " +"might be ok in some setups but should be avoided. Please see the docs about " +"this.\n" +" " +msgstr "" + +#: .\cookbook\templates\system.html:97 msgid "Database" msgstr "Datenbank" -#: .\cookbook\templates\system.html:89 +#: .\cookbook\templates\system.html:100 msgid "Info" msgstr "Info" -#: .\cookbook\templates\system.html:99 .\cookbook\templates\system.html:116 -#, fuzzy -#| msgid "Use fractions" +#: .\cookbook\templates\system.html:110 .\cookbook\templates\system.html:127 msgid "Migrations" -msgstr "Brüche verwenden" +msgstr "Migrationen" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -2176,24 +2177,30 @@ msgid "" "issue.\n" " " msgstr "" +"\n" +" Migrationen sollten niemals fehlschlagen!\n" +" Fehlgeschlagene Migrationen werden wahrscheinlich dazu führen, " +"dass wichtige Teile der App nicht mehr korrekt funktionieren.\n" +" Wenn eine Migration fehlschlägt, vergewissern Sie sich, dass Sie " +"die neueste Version verwenden. Wenn ja, posten Sie bitte das " +"Migrationsprotokoll und die Übersicht unten in einem GitHub-Problem.\n" +" " -#: .\cookbook\templates\system.html:171 +#: .\cookbook\templates\system.html:182 msgid "False" -msgstr "" +msgstr "Falsch" -#: .\cookbook\templates\system.html:171 +#: .\cookbook\templates\system.html:182 msgid "True" -msgstr "" +msgstr "Wahr" -#: .\cookbook\templates\system.html:196 +#: .\cookbook\templates\system.html:207 msgid "Hide" -msgstr "" +msgstr "Verbergen" -#: .\cookbook\templates\system.html:199 -#, fuzzy -#| msgid "Show Log" +#: .\cookbook\templates\system.html:210 msgid "Show" -msgstr "Log anzeigen" +msgstr "Anzeigen" #: .\cookbook\templates\url_import.html:8 msgid "URL Import" @@ -2271,17 +2278,18 @@ msgstr "{obj.name} wurde der Einkaufsliste hinzugefügt." #: .\cookbook\views\api.py:743 msgid "Filter meal plans from date (inclusive) in the format of YYYY-MM-DD." msgstr "" +"Filtern Sie Essenspläne ab Datum (einschließlich) im Format JJJJ-MM-TT." #: .\cookbook\views\api.py:744 msgid "Filter meal plans to date (inclusive) in the format of YYYY-MM-DD." msgstr "" +"Filtern Sie die Essenspläne nach Datum (einschließlich) im Format JJJJ-MM-TT." #: .\cookbook\views\api.py:745 -#, fuzzy -#| msgid "ID of recipe a step is part of. For multiple repeat parameter." msgid "Filter meal plans with MealType ID. For multiple repeat parameter." msgstr "" -"ID des Rezeptes zu dem ein Schritt gehört. Kann mehrfach angegeben werden." +"Filtern Sie Mahlzeitenpläne nach der MealType ID. Für mehrere " +"Wiederholungsparameter." #: .\cookbook\views\api.py:873 msgid "ID of recipe a step is part of. For multiple repeat parameter." @@ -2477,18 +2485,14 @@ msgstr "" "mehrfach angegeben werden." #: .\cookbook\views\api.py:1126 -#, fuzzy -#| msgid "" -#| "Filter shopping list entries on checked. [true, false, both, recent]
- recent includes unchecked items and recently completed items." msgid "" "Filter shopping list entries on checked. [true, false, both, recent]
- recent includes unchecked items and recently " "completed items." msgstr "" -"Einkaufslisteneinträge nach Häkchen filtern. [ja, nein, beides, " -"kürzlich]
- kürzlich enthält nicht abgehakte Einträge und " -"kürzlich abgeschlossene Einträge." +"Einkaufslisteneinträge nach Häkchen filtern. [ja, nein, beides, " +"kürzlich]
- kürzlich enthält nicht abgehakte " +"Einträge und kürzlich abgeschlossene Einträge." #: .\cookbook\views\api.py:1129 msgid "Returns the shopping list entries sorted by supermarket category order." @@ -2497,7 +2501,7 @@ msgstr "" #: .\cookbook\views\api.py:1211 msgid "Filter for entries with the given recipe" -msgstr "" +msgstr "Filter für Einträge mit dem angegebenen Rezept" #: .\cookbook\views\api.py:1293 #, fuzzy @@ -2533,7 +2537,7 @@ msgstr "Es konnten keine passenden Daten gefunden werden." #: .\cookbook\views\api.py:1547 msgid "File is above space limit" -msgstr "" +msgstr "Datei überschreitet das Speicherplatzlimit" #: .\cookbook\views\api.py:1564 .\cookbook\views\import_export.py:114 msgid "Importing is not implemented for this provider" @@ -2604,14 +2608,12 @@ msgid "There was an error updating this storage backend!" msgstr "Es gab einen Fehler beim Aktualisieren dieser Speicherquelle!" #: .\cookbook\views\edit.py:134 -#, fuzzy -#| msgid "Changes saved!" msgid "Config saved!" -msgstr "Änderungen gespeichert!" +msgstr "Einstellung gespeichert!" #: .\cookbook\views\edit.py:142 msgid "ConnectorConfig" -msgstr "" +msgstr "Konnektor-Config" #: .\cookbook\views\edit.py:198 msgid "Changes saved!" @@ -2669,13 +2671,11 @@ msgstr "Schritte" #: .\cookbook\views\lists.py:270 msgid "Property Types" -msgstr "" +msgstr "Eigenschaftstypen" #: .\cookbook\views\new.py:86 -#, fuzzy -#| msgid "This feature is not available in the demo version!" msgid "This feature is not enabled by the server admin!" -msgstr "Diese Funktion ist in der Demo-Version nicht verfügbar!" +msgstr "Diese Funktion wurde vom Administrator nicht freigeschaltet!" #: .\cookbook\views\new.py:123 msgid "Imported new recipe!" @@ -2686,16 +2686,15 @@ msgid "There was an error importing this recipe!" msgstr "Beim Importieren des Rezeptes ist ein Fehler aufgetreten!" #: .\cookbook\views\views.py:69 .\cookbook\views\views.py:177 -#: .\cookbook\views\views.py:204 .\cookbook\views\views.py:418 +#: .\cookbook\views\views.py:204 .\cookbook\views\views.py:423 msgid "This feature is not available in the demo version!" msgstr "Diese Funktion ist in der Demo-Version nicht verfügbar!" #: .\cookbook\views\views.py:74 -#, fuzzy -#| msgid "You have reached the maximum number of recipes for your space." msgid "" "You have the reached the maximum amount of spaces that can be owned by you." -msgstr "Du hast die maximale Anzahl an Rezepten für Deinen Space erreicht." +msgstr "" +"Du hast die maximale Anzahl an Rezepten erreicht, die Du besitzen kannst." #: .\cookbook\views\views.py:89 msgid "" @@ -2730,35 +2729,32 @@ msgstr "" msgid "Fuzzy search is not compatible with this search method!" msgstr "Die \"Ungenaue\" Suche ist mit diesem Suchtyp nicht kompatibel!" -#: .\cookbook\views\views.py:305 +#: .\cookbook\views\views.py:306 #, python-format msgid "PostgreSQL %(v)s is deprecated. Upgrade to a fully supported version!" msgstr "" +"PostgreSQL %(v)s ist veraltet. Aktualisieren Sie auf eine vollständig " +"unterstützte Version!" -#: .\cookbook\views\views.py:308 +#: .\cookbook\views\views.py:309 #, python-format msgid "You are running PostgreSQL %(v1)s. PostgreSQL %(v2)s is recommended" +msgstr "Sie verwenden PostgreSQL %(v1)s. PostgreSQL %(v2)s wird empfohlen" + +#: .\cookbook\views\views.py:313 +msgid "Unable to determine PostgreSQL version." msgstr "" -#: .\cookbook\views\views.py:312 -#, fuzzy -#| msgid "" -#| "\n" -#| " This application is not running with a Postgres database " -#| "backend. This is ok but not recommended as some\n" -#| " features only work with postgres databases.\n" -#| " " +#: .\cookbook\views\views.py:317 msgid "" "This application is not running with a Postgres database backend. This is ok " "but not recommended as some features only work with postgres databases." msgstr "" -"\n" -" Diese Anwendung läuft nicht mit einer PostgreSQL Datenbank. Dies " -"ist in Ordnung, wird aber nicht empfohlen, da einige\n" -"Funktionen nur mit einer PostgreSQL-Datenbanken funktionieren.\n" -" " +"Diese Anwendung läuft nicht mit einer PostgreSQL Datenbank. Dies ist in " +"Ordnung, wird aber nicht empfohlen, da einige Funktionen nur mit einer " +"PostgreSQL-Datenbanken funktionieren." -#: .\cookbook\views\views.py:355 +#: .\cookbook\views\views.py:360 #, fuzzy #| msgid "" #| "The setup page can only be used to create the first user! If you have " @@ -2772,27 +2768,27 @@ 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:364 +#: .\cookbook\views\views.py:369 msgid "Passwords dont match!" msgstr "Passwörter stimmen nicht überein!" -#: .\cookbook\views\views.py:372 +#: .\cookbook\views\views.py:377 msgid "User has been created, please login!" msgstr "Benutzer wurde erstellt, bitte einloggen!" -#: .\cookbook\views\views.py:388 +#: .\cookbook\views\views.py:393 msgid "Malformed Invite Link supplied!" msgstr "Fehlerhafter Einladungslink angegeben!" -#: .\cookbook\views\views.py:405 +#: .\cookbook\views\views.py:410 msgid "Successfully joined space." msgstr "Space erfolgreich beigetreten." -#: .\cookbook\views\views.py:411 +#: .\cookbook\views\views.py:416 msgid "Invite Link not valid or already used!" msgstr "Einladungslink ungültig oder bereits genutzt!" -#: .\cookbook\views\views.py:427 +#: .\cookbook\views\views.py:432 msgid "" "Reporting share links is not enabled for this instance. Please notify the " "page administrator to report problems." @@ -2800,7 +2796,7 @@ msgstr "" "Das melden von Links ist in dieser Instanz nicht aktiviert. Bitte " "kontaktieren sie den Seitenadministrator um Probleme zu melden." -#: .\cookbook\views\views.py:432 +#: .\cookbook\views\views.py:437 msgid "" "Recipe sharing link has been disabled! For additional information please " "contact the page administrator." @@ -2808,27 +2804,25 @@ msgstr "" "Dieser Link wurde deaktiviert! Bitte kontaktieren sie den " "Seitenadministrator für weitere Informationen." -#: .\cookbook\views\views.py:446 +#: .\cookbook\views\views.py:451 msgid "Manage recipes, shopping list, meal plans and more." -msgstr "" +msgstr "Manage Rezepte, Einkaufslisten Essenspläne und mehr." -#: .\cookbook\views\views.py:453 +#: .\cookbook\views\views.py:458 msgid "Plan" msgstr "Plan" -#: .\cookbook\views\views.py:453 +#: .\cookbook\views\views.py:458 msgid "View your meal Plan" -msgstr "" +msgstr "Betrachte deinen Essensplan" -#: .\cookbook\views\views.py:454 +#: .\cookbook\views\views.py:459 msgid "View your cookbooks" -msgstr "" +msgstr "Betrachte deine Kochbücher" -#: .\cookbook\views\views.py:455 -#, fuzzy -#| msgid "New Shopping List" +#: .\cookbook\views\views.py:460 msgid "View your shopping lists" -msgstr "Neue Einkaufsliste" +msgstr "Zeige deine Einkaufslisten" #~ msgid "Default unit" #~ msgstr "Standardeinheit" diff --git a/cookbook/locale/el/LC_MESSAGES/django.po b/cookbook/locale/el/LC_MESSAGES/django.po index 76e1c80619..9cb6aeaae1 100644 --- a/cookbook/locale/el/LC_MESSAGES/django.po +++ b/cookbook/locale/el/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: 2023-08-21 09:19+0000\n" "Last-Translator: Theodoros Grammenos \n" "Language-Team: Greek \n" "Language-Team: LANGUAGE \n" @@ -243,31 +243,31 @@ msgstr "" msgid "You have more users than allowed in your space." msgstr "" -#: .\cookbook\helper\recipe_url_import.py:304 +#: .\cookbook\helper\recipe_url_import.py:310 msgid "reverse rotation" msgstr "" -#: .\cookbook\helper\recipe_url_import.py:305 +#: .\cookbook\helper\recipe_url_import.py:311 msgid "careful rotation" msgstr "" -#: .\cookbook\helper\recipe_url_import.py:306 +#: .\cookbook\helper\recipe_url_import.py:312 msgid "knead" msgstr "" -#: .\cookbook\helper\recipe_url_import.py:307 +#: .\cookbook\helper\recipe_url_import.py:313 msgid "thicken" msgstr "" -#: .\cookbook\helper\recipe_url_import.py:308 +#: .\cookbook\helper\recipe_url_import.py:314 msgid "warm up" msgstr "" -#: .\cookbook\helper\recipe_url_import.py:309 +#: .\cookbook\helper\recipe_url_import.py:315 msgid "ferment" msgstr "" -#: .\cookbook\helper\recipe_url_import.py:310 +#: .\cookbook\helper\recipe_url_import.py:316 msgid "sous-vide" msgstr "" @@ -383,7 +383,7 @@ msgstr "" msgid "Dinner" msgstr "" -#: .\cookbook\migrations\0047_auto_20200602_1133.py:29 .\cookbook\models.py:920 +#: .\cookbook\migrations\0047_auto_20200602_1133.py:29 .\cookbook\models.py:919 msgid "Other" msgstr "" @@ -419,43 +419,43 @@ msgid "" "upload." msgstr "" -#: .\cookbook\models.py:455 .\cookbook\templates\search.html:7 +#: .\cookbook\models.py:454 .\cookbook\templates\search.html:7 #: .\cookbook\templates\settings.html:18 msgid "Search" msgstr "" -#: .\cookbook\models.py:456 .\cookbook\templates\base.html:114 +#: .\cookbook\models.py:455 .\cookbook\templates\base.html:114 #: .\cookbook\templates\meal_plan.html:7 msgid "Meal-Plan" msgstr "" -#: .\cookbook\models.py:457 .\cookbook\templates\base.html:122 -#: .\cookbook\views\views.py:454 +#: .\cookbook\models.py:456 .\cookbook\templates\base.html:122 +#: .\cookbook\views\views.py:459 msgid "Books" msgstr "" -#: .\cookbook\models.py:458 .\cookbook\templates\base.html:118 -#: .\cookbook\views\views.py:455 +#: .\cookbook\models.py:457 .\cookbook\templates\base.html:118 +#: .\cookbook\views\views.py:460 msgid "Shopping" msgstr "" -#: .\cookbook\models.py:753 +#: .\cookbook\models.py:752 msgid " is part of a recipe step and cannot be deleted" msgstr "" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 msgid "Nutrition" msgstr "" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 msgid "Allergen" msgstr "" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Price" msgstr "" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Goal" msgstr "" @@ -1818,14 +1818,14 @@ msgid "Media Serving" msgstr "" #: .\cookbook\templates\system.html:47 .\cookbook\templates\system.html:61 -#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:91 -#: .\cookbook\templates\system.html:102 +#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:88 +#: .\cookbook\templates\system.html:102 .\cookbook\templates\system.html:113 msgid "Warning" msgstr "" #: .\cookbook\templates\system.html:47 .\cookbook\templates\system.html:61 -#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:93 -#: .\cookbook\templates\system.html:102 +#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:88 +#: .\cookbook\templates\system.html:104 .\cookbook\templates\system.html:113 msgid "Ok" msgstr "" @@ -1840,7 +1840,8 @@ msgid "" msgstr "" #: .\cookbook\templates\system.html:55 .\cookbook\templates\system.html:70 -#: .\cookbook\templates\system.html:83 .\cookbook\views\views.py:302 +#: .\cookbook\templates\system.html:83 .\cookbook\templates\system.html:94 +#: .\cookbook\views\views.py:303 msgid "Everything is fine!" msgstr "" @@ -1877,18 +1878,31 @@ msgid "" msgstr "" #: .\cookbook\templates\system.html:86 +msgid "Allowed Hosts" +msgstr "" + +#: .\cookbook\templates\system.html:90 +msgid "" +"\n" +" Your allowed hosts are configured to allow every host. This " +"might be ok in some setups but should be avoided. Please see the docs about " +"this.\n" +" " +msgstr "" + +#: .\cookbook\templates\system.html:97 msgid "Database" msgstr "" -#: .\cookbook\templates\system.html:89 +#: .\cookbook\templates\system.html:100 msgid "Info" msgstr "" -#: .\cookbook\templates\system.html:99 .\cookbook\templates\system.html:116 +#: .\cookbook\templates\system.html:110 .\cookbook\templates\system.html:127 msgid "Migrations" msgstr "" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -1900,19 +1914,19 @@ msgid "" " " msgstr "" -#: .\cookbook\templates\system.html:171 +#: .\cookbook\templates\system.html:182 msgid "False" msgstr "" -#: .\cookbook\templates\system.html:171 +#: .\cookbook\templates\system.html:182 msgid "True" msgstr "" -#: .\cookbook\templates\system.html:196 +#: .\cookbook\templates\system.html:207 msgid "Hide" msgstr "" -#: .\cookbook\templates\system.html:199 +#: .\cookbook\templates\system.html:210 msgid "Show" msgstr "" @@ -2323,7 +2337,7 @@ msgid "There was an error importing this recipe!" msgstr "" #: .\cookbook\views\views.py:69 .\cookbook\views\views.py:177 -#: .\cookbook\views\views.py:204 .\cookbook\views\views.py:418 +#: .\cookbook\views\views.py:204 .\cookbook\views\views.py:423 msgid "This feature is not available in the demo version!" msgstr "" @@ -2360,77 +2374,81 @@ msgstr "" msgid "Fuzzy search is not compatible with this search method!" msgstr "" -#: .\cookbook\views\views.py:305 +#: .\cookbook\views\views.py:306 #, python-format msgid "PostgreSQL %(v)s is deprecated. Upgrade to a fully supported version!" msgstr "" -#: .\cookbook\views\views.py:308 +#: .\cookbook\views\views.py:309 #, python-format msgid "You are running PostgreSQL %(v1)s. PostgreSQL %(v2)s is recommended" msgstr "" -#: .\cookbook\views\views.py:312 +#: .\cookbook\views\views.py:313 +msgid "Unable to determine PostgreSQL version." +msgstr "" + +#: .\cookbook\views\views.py:317 msgid "" "This application is not running with a Postgres database backend. This is ok " "but not recommended as some features only work with postgres databases." msgstr "" -#: .\cookbook\views\views.py:355 +#: .\cookbook\views\views.py:360 msgid "" "The setup page can only be used to create the first " "user! If you have forgotten your superuser credentials " "please consult the django documentation on how to reset passwords." msgstr "" -#: .\cookbook\views\views.py:364 +#: .\cookbook\views\views.py:369 msgid "Passwords dont match!" msgstr "" -#: .\cookbook\views\views.py:372 +#: .\cookbook\views\views.py:377 msgid "User has been created, please login!" msgstr "" -#: .\cookbook\views\views.py:388 +#: .\cookbook\views\views.py:393 msgid "Malformed Invite Link supplied!" msgstr "" -#: .\cookbook\views\views.py:405 +#: .\cookbook\views\views.py:410 msgid "Successfully joined space." msgstr "" -#: .\cookbook\views\views.py:411 +#: .\cookbook\views\views.py:416 msgid "Invite Link not valid or already used!" msgstr "" -#: .\cookbook\views\views.py:427 +#: .\cookbook\views\views.py:432 msgid "" "Reporting share links is not enabled for this instance. Please notify the " "page administrator to report problems." msgstr "" -#: .\cookbook\views\views.py:432 +#: .\cookbook\views\views.py:437 msgid "" "Recipe sharing link has been disabled! For additional information please " "contact the page administrator." msgstr "" -#: .\cookbook\views\views.py:446 +#: .\cookbook\views\views.py:451 msgid "Manage recipes, shopping list, meal plans and more." msgstr "" -#: .\cookbook\views\views.py:453 +#: .\cookbook\views\views.py:458 msgid "Plan" msgstr "" -#: .\cookbook\views\views.py:453 +#: .\cookbook\views\views.py:458 msgid "View your meal Plan" msgstr "" -#: .\cookbook\views\views.py:454 +#: .\cookbook\views\views.py:459 msgid "View your cookbooks" msgstr "" -#: .\cookbook\views\views.py:455 +#: .\cookbook\views\views.py:460 msgid "View your shopping lists" msgstr "" diff --git a/cookbook/locale/es/LC_MESSAGES/django.mo b/cookbook/locale/es/LC_MESSAGES/django.mo index 999127a952..a73f64e251 100644 Binary files a/cookbook/locale/es/LC_MESSAGES/django.mo and b/cookbook/locale/es/LC_MESSAGES/django.mo differ diff --git a/cookbook/locale/es/LC_MESSAGES/django.po b/cookbook/locale/es/LC_MESSAGES/django.po index 408afd2ddf..0c68bdfb51 100644 --- a/cookbook/locale/es/LC_MESSAGES/django.po +++ b/cookbook/locale/es/LC_MESSAGES/django.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: 2024-03-27 19:02+0000\n" "Last-Translator: Axel Breiterman \n" "Language-Team: Spanish \n" "Language-Team: Finnish \n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" +"PO-Revision-Date: 2024-05-28 00:57+0000\n" +"Last-Translator: tarek EL SOL \n" "Language-Team: French \n" "Language: fr\n" @@ -76,8 +76,7 @@ msgstr "Ajoutez votre commentaire : " #: .\cookbook\forms.py:151 msgid "Leave empty for dropbox and enter app password for nextcloud." msgstr "" -"Laissez vide pour Dropbox et renseignez votre mot de passe d’application " -"pour Nextcloud." +"Laissez vide pour Dropbox et renseignez votre mot de passe pour Nextcloud." #: .\cookbook\forms.py:154 msgid "Leave empty for nextcloud and enter api token for dropbox." @@ -137,7 +136,7 @@ msgid "" "An email address is not required but if present the invite link will be sent " "to the user." msgstr "" -"Une adresse mail n’est pas requise mais si elle est renseignée, le lien " +"Une adresse mail n’est pas requise, mais si elle est renseignée, le lien " "d’invitation sera envoyé à l’utilisateur." #: .\cookbook\forms.py:287 @@ -170,16 +169,16 @@ msgid "" "Use fuzzy matching on units, keywords and ingredients when editing and " "importing recipes." msgstr "" -"Utilisez la correspondance floue sur les unités, les mots-clés et les " -"ingrédients lors de l’édition et de l’importation de recettes." +"Employez la correspondance approximative pour les unités, les mots-clés et " +"les ingrédients pendant l'édition et l'importation des recettes." #: .\cookbook\forms.py:342 msgid "" "Fields to search ignoring accents. Selecting this option can improve or " "degrade search quality depending on language" msgstr "" -"Champs à rechercher en ignorant les accents. La sélection de cette option " -"peut améliorer ou dégrader la qualité de la recherche en fonction de la " +"La recherche de champs sans tenir compte des accents peut soit améliorer " +"soit détériorer la qualité des résultats de recherche, cela dépend de la " "langue" #: .\cookbook\forms.py:343 @@ -187,17 +186,18 @@ msgid "" "Fields to search for partial matches. (e.g. searching for 'Pie' will return " "'pie' and 'piece' and 'soapie')" msgstr "" -"Champs à rechercher pour les correspondances partielles. (par exemple, la " -"recherche de « Tarte » renverra « tarte », « tartelette » et « tartes »)" +"Cherchez des champs pour des correspondances partielles. Par exemple : " +"rechercher \"Tarte\" pourrait retourner \"tarte\", \"tartelette\", et " +"\"tartes\"" #: .\cookbook\forms.py:344 msgid "" "Fields to search for beginning of word matches. (e.g. searching for 'sa' " "will return 'salad' and 'sandwich')" msgstr "" -"Champs permettant de rechercher les correspondances de début de mot (par " -"exemple, si vous recherchez « sa », vous obtiendrez « salade » et " -"« sandwich»)" +"Les champs de recherche conçus pour trouver des correspondances en début de " +"mot vous permettront, par exemple, de saisir « sa » et d'obtenir des " +"résultats tels que « salade » et « sandwich »" #: .\cookbook\forms.py:345 msgid "" @@ -291,31 +291,31 @@ msgstr "" "Le nombre d’utilisateurs dans votre groupe dépasse le nombre d’utilisateurs " "autorisé." -#: .\cookbook\helper\recipe_url_import.py:304 +#: .\cookbook\helper\recipe_url_import.py:310 msgid "reverse rotation" msgstr "sens inverse" -#: .\cookbook\helper\recipe_url_import.py:305 +#: .\cookbook\helper\recipe_url_import.py:311 msgid "careful rotation" msgstr "sens horloger" -#: .\cookbook\helper\recipe_url_import.py:306 +#: .\cookbook\helper\recipe_url_import.py:312 msgid "knead" msgstr "pétrir" -#: .\cookbook\helper\recipe_url_import.py:307 +#: .\cookbook\helper\recipe_url_import.py:313 msgid "thicken" msgstr "épaissir" -#: .\cookbook\helper\recipe_url_import.py:308 +#: .\cookbook\helper\recipe_url_import.py:314 msgid "warm up" msgstr "réchauffer" -#: .\cookbook\helper\recipe_url_import.py:309 +#: .\cookbook\helper\recipe_url_import.py:315 msgid "ferment" msgstr "fermenter" -#: .\cookbook\helper\recipe_url_import.py:310 +#: .\cookbook\helper\recipe_url_import.py:316 msgid "sous-vide" msgstr "sous-vide" @@ -437,7 +437,7 @@ msgstr "Déjeuner" msgid "Dinner" msgstr "Dîner" -#: .\cookbook\migrations\0047_auto_20200602_1133.py:29 .\cookbook\models.py:920 +#: .\cookbook\migrations\0047_auto_20200602_1133.py:29 .\cookbook\models.py:919 msgid "Other" msgstr "Autre" @@ -477,45 +477,45 @@ msgstr "" "Le stockage maximal de fichiers pour ce groupe en Mo. Mettre 0 pour ne pas " "avoir de limite et -1 pour empêcher le téléversement de fichiers." -#: .\cookbook\models.py:455 .\cookbook\templates\search.html:7 +#: .\cookbook\models.py:454 .\cookbook\templates\search.html:7 #: .\cookbook\templates\settings.html:18 msgid "Search" msgstr "Rechercher" -#: .\cookbook\models.py:456 .\cookbook\templates\base.html:114 +#: .\cookbook\models.py:455 .\cookbook\templates\base.html:114 #: .\cookbook\templates\meal_plan.html:7 msgid "Meal-Plan" msgstr "Menu de la semaine" -#: .\cookbook\models.py:457 .\cookbook\templates\base.html:122 -#: .\cookbook\views\views.py:454 +#: .\cookbook\models.py:456 .\cookbook\templates\base.html:122 +#: .\cookbook\views\views.py:459 msgid "Books" msgstr "Livres" -#: .\cookbook\models.py:458 .\cookbook\templates\base.html:118 -#: .\cookbook\views\views.py:455 +#: .\cookbook\models.py:457 .\cookbook\templates\base.html:118 +#: .\cookbook\views\views.py:460 msgid "Shopping" msgstr "Courses" -#: .\cookbook\models.py:753 +#: .\cookbook\models.py:752 msgid " is part of a recipe step and cannot be deleted" msgstr " fait partie d’une étape de la recette et ne peut être supprimé(e)" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 msgid "Nutrition" msgstr "Informations nutritionnelles" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 #, fuzzy #| msgid "Merge" msgid "Allergen" msgstr "Fusionner" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Price" msgstr "" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Goal" msgstr "" @@ -2118,14 +2118,14 @@ msgid "Media Serving" msgstr "Publication des médias" #: .\cookbook\templates\system.html:47 .\cookbook\templates\system.html:61 -#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:91 -#: .\cookbook\templates\system.html:102 +#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:88 +#: .\cookbook\templates\system.html:102 .\cookbook\templates\system.html:113 msgid "Warning" msgstr "Avertissement" #: .\cookbook\templates\system.html:47 .\cookbook\templates\system.html:61 -#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:93 -#: .\cookbook\templates\system.html:102 +#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:88 +#: .\cookbook\templates\system.html:104 .\cookbook\templates\system.html:113 msgid "Ok" msgstr "OK" @@ -2146,7 +2146,8 @@ msgstr "" " " #: .\cookbook\templates\system.html:55 .\cookbook\templates\system.html:70 -#: .\cookbook\templates\system.html:83 .\cookbook\views\views.py:302 +#: .\cookbook\templates\system.html:83 .\cookbook\templates\system.html:94 +#: .\cookbook\views\views.py:303 msgid "Everything is fine!" msgstr "Tout est en ordre !" @@ -2197,20 +2198,33 @@ msgstr "" " " #: .\cookbook\templates\system.html:86 +msgid "Allowed Hosts" +msgstr "" + +#: .\cookbook\templates\system.html:90 +msgid "" +"\n" +" Your allowed hosts are configured to allow every host. This " +"might be ok in some setups but should be avoided. Please see the docs about " +"this.\n" +" " +msgstr "" + +#: .\cookbook\templates\system.html:97 msgid "Database" msgstr "Base de données" -#: .\cookbook\templates\system.html:89 +#: .\cookbook\templates\system.html:100 msgid "Info" msgstr "Info" -#: .\cookbook\templates\system.html:99 .\cookbook\templates\system.html:116 +#: .\cookbook\templates\system.html:110 .\cookbook\templates\system.html:127 #, fuzzy #| msgid "Use fractions" msgid "Migrations" msgstr "Utiliser les fractions" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -2222,19 +2236,19 @@ msgid "" " " msgstr "" -#: .\cookbook\templates\system.html:171 +#: .\cookbook\templates\system.html:182 msgid "False" msgstr "" -#: .\cookbook\templates\system.html:171 +#: .\cookbook\templates\system.html:182 msgid "True" msgstr "" -#: .\cookbook\templates\system.html:196 +#: .\cookbook\templates\system.html:207 msgid "Hide" msgstr "" -#: .\cookbook\templates\system.html:199 +#: .\cookbook\templates\system.html:210 #, fuzzy #| msgid "Show Log" msgid "Show" @@ -2695,7 +2709,7 @@ msgid "There was an error importing this recipe!" msgstr "Une erreur est survenue lors de l’importation de cette recette !" #: .\cookbook\views\views.py:69 .\cookbook\views\views.py:177 -#: .\cookbook\views\views.py:204 .\cookbook\views\views.py:418 +#: .\cookbook\views\views.py:204 .\cookbook\views\views.py:423 msgid "This feature is not available in the demo version!" msgstr "Cette fonctionnalité n’est pas disponible dans la version d’essai !" @@ -2741,17 +2755,21 @@ msgid "Fuzzy search is not compatible with this search method!" msgstr "" "La recherche floue n’est pas compatible avec cette méthode de recherche !" -#: .\cookbook\views\views.py:305 +#: .\cookbook\views\views.py:306 #, python-format msgid "PostgreSQL %(v)s is deprecated. Upgrade to a fully supported version!" msgstr "" -#: .\cookbook\views\views.py:308 +#: .\cookbook\views\views.py:309 #, python-format msgid "You are running PostgreSQL %(v1)s. PostgreSQL %(v2)s is recommended" msgstr "" -#: .\cookbook\views\views.py:312 +#: .\cookbook\views\views.py:313 +msgid "Unable to determine PostgreSQL version." +msgstr "" + +#: .\cookbook\views\views.py:317 #, fuzzy #| msgid "" #| "\n" @@ -2770,7 +2788,7 @@ msgstr "" "de données Postgres.\n" " " -#: .\cookbook\views\views.py:355 +#: .\cookbook\views\views.py:360 #, fuzzy #| msgid "" #| "The setup page can only be used to create the first user! If you have " @@ -2786,27 +2804,27 @@ msgstr "" "utilisateur, counsultez la documentation Django pour savoir comment " "réinitialiser le mot de passe." -#: .\cookbook\views\views.py:364 +#: .\cookbook\views\views.py:369 msgid "Passwords dont match!" msgstr "Les mots de passe ne correspondent pas !" -#: .\cookbook\views\views.py:372 +#: .\cookbook\views\views.py:377 msgid "User has been created, please login!" msgstr "L’utilisateur a été créé, veuillez vous connecter !" -#: .\cookbook\views\views.py:388 +#: .\cookbook\views\views.py:393 msgid "Malformed Invite Link supplied!" msgstr "Le lien d’invitation fourni est mal formé !" -#: .\cookbook\views\views.py:405 +#: .\cookbook\views\views.py:410 msgid "Successfully joined space." msgstr "Vous avez bien rejoint le groupe." -#: .\cookbook\views\views.py:411 +#: .\cookbook\views\views.py:416 msgid "Invite Link not valid or already used!" msgstr "Le lien d’invitation est invalide ou déjà utilisé !" -#: .\cookbook\views\views.py:427 +#: .\cookbook\views\views.py:432 msgid "" "Reporting share links is not enabled for this instance. Please notify the " "page administrator to report problems." @@ -2814,7 +2832,7 @@ msgstr "" "Le signalement de liens partagés n’est pas autorisé pour cette installation. " "Veuillez contacter l’administrateur de la page pour signaler le problème." -#: .\cookbook\views\views.py:432 +#: .\cookbook\views\views.py:437 msgid "" "Recipe sharing link has been disabled! For additional information please " "contact the page administrator." @@ -2822,23 +2840,23 @@ msgstr "" "Le lien de partage de la recette a été désactivé ! Pour plus d’informations, " "veuillez contacter l’administrateur de la page." -#: .\cookbook\views\views.py:446 +#: .\cookbook\views\views.py:451 msgid "Manage recipes, shopping list, meal plans and more." msgstr "" -#: .\cookbook\views\views.py:453 +#: .\cookbook\views\views.py:458 msgid "Plan" msgstr "Menu" -#: .\cookbook\views\views.py:453 +#: .\cookbook\views\views.py:458 msgid "View your meal Plan" msgstr "" -#: .\cookbook\views\views.py:454 +#: .\cookbook\views\views.py:459 msgid "View your cookbooks" msgstr "" -#: .\cookbook\views\views.py:455 +#: .\cookbook\views\views.py:460 #, fuzzy #| msgid "New Shopping List" msgid "View your shopping lists" diff --git a/cookbook/locale/he/LC_MESSAGES/django.po b/cookbook/locale/he/LC_MESSAGES/django.po index ff1901bae6..b79b6a4575 100644 --- a/cookbook/locale/he/LC_MESSAGES/django.po +++ b/cookbook/locale/he/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: 2023-11-15 08:20+0000\n" "Last-Translator: avi meyer \n" "Language-Team: Hebrew \n" "Language-Team: Hungarian \n" "Language-Team: Armenian \n" "Language-Team: Indonesian \n" "Language-Team: Italian \n" "Language-Team: Latvian \n" "Language-Team: Norwegian Bokmål \n" "Language-Team: Dutch \n" "Language-Team: Polish \n" "Language-Team: Portuguese \n" "Language-Team: Portuguese (Brazil) \n" "Language-Team: LANGUAGE \n" @@ -243,31 +243,31 @@ msgstr "" msgid "You have more users than allowed in your space." msgstr "" -#: .\cookbook\helper\recipe_url_import.py:304 +#: .\cookbook\helper\recipe_url_import.py:310 msgid "reverse rotation" msgstr "" -#: .\cookbook\helper\recipe_url_import.py:305 +#: .\cookbook\helper\recipe_url_import.py:311 msgid "careful rotation" msgstr "" -#: .\cookbook\helper\recipe_url_import.py:306 +#: .\cookbook\helper\recipe_url_import.py:312 msgid "knead" msgstr "" -#: .\cookbook\helper\recipe_url_import.py:307 +#: .\cookbook\helper\recipe_url_import.py:313 msgid "thicken" msgstr "" -#: .\cookbook\helper\recipe_url_import.py:308 +#: .\cookbook\helper\recipe_url_import.py:314 msgid "warm up" msgstr "" -#: .\cookbook\helper\recipe_url_import.py:309 +#: .\cookbook\helper\recipe_url_import.py:315 msgid "ferment" msgstr "" -#: .\cookbook\helper\recipe_url_import.py:310 +#: .\cookbook\helper\recipe_url_import.py:316 msgid "sous-vide" msgstr "" @@ -383,7 +383,7 @@ msgstr "" msgid "Dinner" msgstr "" -#: .\cookbook\migrations\0047_auto_20200602_1133.py:29 .\cookbook\models.py:920 +#: .\cookbook\migrations\0047_auto_20200602_1133.py:29 .\cookbook\models.py:919 msgid "Other" msgstr "" @@ -419,43 +419,43 @@ msgid "" "upload." msgstr "" -#: .\cookbook\models.py:455 .\cookbook\templates\search.html:7 +#: .\cookbook\models.py:454 .\cookbook\templates\search.html:7 #: .\cookbook\templates\settings.html:18 msgid "Search" msgstr "" -#: .\cookbook\models.py:456 .\cookbook\templates\base.html:114 +#: .\cookbook\models.py:455 .\cookbook\templates\base.html:114 #: .\cookbook\templates\meal_plan.html:7 msgid "Meal-Plan" msgstr "" -#: .\cookbook\models.py:457 .\cookbook\templates\base.html:122 -#: .\cookbook\views\views.py:454 +#: .\cookbook\models.py:456 .\cookbook\templates\base.html:122 +#: .\cookbook\views\views.py:459 msgid "Books" msgstr "" -#: .\cookbook\models.py:458 .\cookbook\templates\base.html:118 -#: .\cookbook\views\views.py:455 +#: .\cookbook\models.py:457 .\cookbook\templates\base.html:118 +#: .\cookbook\views\views.py:460 msgid "Shopping" msgstr "" -#: .\cookbook\models.py:753 +#: .\cookbook\models.py:752 msgid " is part of a recipe step and cannot be deleted" msgstr "" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 msgid "Nutrition" msgstr "" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 msgid "Allergen" msgstr "" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Price" msgstr "" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Goal" msgstr "" @@ -1818,14 +1818,14 @@ msgid "Media Serving" msgstr "" #: .\cookbook\templates\system.html:47 .\cookbook\templates\system.html:61 -#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:91 -#: .\cookbook\templates\system.html:102 +#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:88 +#: .\cookbook\templates\system.html:102 .\cookbook\templates\system.html:113 msgid "Warning" msgstr "" #: .\cookbook\templates\system.html:47 .\cookbook\templates\system.html:61 -#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:93 -#: .\cookbook\templates\system.html:102 +#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:88 +#: .\cookbook\templates\system.html:104 .\cookbook\templates\system.html:113 msgid "Ok" msgstr "" @@ -1840,7 +1840,8 @@ msgid "" msgstr "" #: .\cookbook\templates\system.html:55 .\cookbook\templates\system.html:70 -#: .\cookbook\templates\system.html:83 .\cookbook\views\views.py:302 +#: .\cookbook\templates\system.html:83 .\cookbook\templates\system.html:94 +#: .\cookbook\views\views.py:303 msgid "Everything is fine!" msgstr "" @@ -1877,18 +1878,31 @@ msgid "" msgstr "" #: .\cookbook\templates\system.html:86 +msgid "Allowed Hosts" +msgstr "" + +#: .\cookbook\templates\system.html:90 +msgid "" +"\n" +" Your allowed hosts are configured to allow every host. This " +"might be ok in some setups but should be avoided. Please see the docs about " +"this.\n" +" " +msgstr "" + +#: .\cookbook\templates\system.html:97 msgid "Database" msgstr "" -#: .\cookbook\templates\system.html:89 +#: .\cookbook\templates\system.html:100 msgid "Info" msgstr "" -#: .\cookbook\templates\system.html:99 .\cookbook\templates\system.html:116 +#: .\cookbook\templates\system.html:110 .\cookbook\templates\system.html:127 msgid "Migrations" msgstr "" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -1900,19 +1914,19 @@ msgid "" " " msgstr "" -#: .\cookbook\templates\system.html:171 +#: .\cookbook\templates\system.html:182 msgid "False" msgstr "" -#: .\cookbook\templates\system.html:171 +#: .\cookbook\templates\system.html:182 msgid "True" msgstr "" -#: .\cookbook\templates\system.html:196 +#: .\cookbook\templates\system.html:207 msgid "Hide" msgstr "" -#: .\cookbook\templates\system.html:199 +#: .\cookbook\templates\system.html:210 msgid "Show" msgstr "" @@ -2323,7 +2337,7 @@ msgid "There was an error importing this recipe!" msgstr "" #: .\cookbook\views\views.py:69 .\cookbook\views\views.py:177 -#: .\cookbook\views\views.py:204 .\cookbook\views\views.py:418 +#: .\cookbook\views\views.py:204 .\cookbook\views\views.py:423 msgid "This feature is not available in the demo version!" msgstr "" @@ -2360,77 +2374,81 @@ msgstr "" msgid "Fuzzy search is not compatible with this search method!" msgstr "" -#: .\cookbook\views\views.py:305 +#: .\cookbook\views\views.py:306 #, python-format msgid "PostgreSQL %(v)s is deprecated. Upgrade to a fully supported version!" msgstr "" -#: .\cookbook\views\views.py:308 +#: .\cookbook\views\views.py:309 #, python-format msgid "You are running PostgreSQL %(v1)s. PostgreSQL %(v2)s is recommended" msgstr "" -#: .\cookbook\views\views.py:312 +#: .\cookbook\views\views.py:313 +msgid "Unable to determine PostgreSQL version." +msgstr "" + +#: .\cookbook\views\views.py:317 msgid "" "This application is not running with a Postgres database backend. This is ok " "but not recommended as some features only work with postgres databases." msgstr "" -#: .\cookbook\views\views.py:355 +#: .\cookbook\views\views.py:360 msgid "" "The setup page can only be used to create the first " "user! If you have forgotten your superuser credentials " "please consult the django documentation on how to reset passwords." msgstr "" -#: .\cookbook\views\views.py:364 +#: .\cookbook\views\views.py:369 msgid "Passwords dont match!" msgstr "" -#: .\cookbook\views\views.py:372 +#: .\cookbook\views\views.py:377 msgid "User has been created, please login!" msgstr "" -#: .\cookbook\views\views.py:388 +#: .\cookbook\views\views.py:393 msgid "Malformed Invite Link supplied!" msgstr "" -#: .\cookbook\views\views.py:405 +#: .\cookbook\views\views.py:410 msgid "Successfully joined space." msgstr "" -#: .\cookbook\views\views.py:411 +#: .\cookbook\views\views.py:416 msgid "Invite Link not valid or already used!" msgstr "" -#: .\cookbook\views\views.py:427 +#: .\cookbook\views\views.py:432 msgid "" "Reporting share links is not enabled for this instance. Please notify the " "page administrator to report problems." msgstr "" -#: .\cookbook\views\views.py:432 +#: .\cookbook\views\views.py:437 msgid "" "Recipe sharing link has been disabled! For additional information please " "contact the page administrator." msgstr "" -#: .\cookbook\views\views.py:446 +#: .\cookbook\views\views.py:451 msgid "Manage recipes, shopping list, meal plans and more." msgstr "" -#: .\cookbook\views\views.py:453 +#: .\cookbook\views\views.py:458 msgid "Plan" msgstr "" -#: .\cookbook\views\views.py:453 +#: .\cookbook\views\views.py:458 msgid "View your meal Plan" msgstr "" -#: .\cookbook\views\views.py:454 +#: .\cookbook\views\views.py:459 msgid "View your cookbooks" msgstr "" -#: .\cookbook\views\views.py:455 +#: .\cookbook\views\views.py:460 msgid "View your shopping lists" msgstr "" diff --git a/cookbook/locale/ro/LC_MESSAGES/django.po b/cookbook/locale/ro/LC_MESSAGES/django.po index 3a67e67b46..22dfedaa8b 100644 --- a/cookbook/locale/ro/LC_MESSAGES/django.po +++ b/cookbook/locale/ro/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: 2023-04-27 08:55+0000\n" "Last-Translator: noxonad \n" "Language-Team: Romanian \n" "Language-Team: Russian \n" "Language-Team: Slovenian \n" "Language-Team: Swedish \n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" +"PO-Revision-Date: 2024-07-03 16:38+0000\n" +"Last-Translator: Taylan TATLI \n" "Language-Team: Turkish \n" "Language: tr\n" @@ -83,8 +83,8 @@ msgid "" "Leave empty for dropbox and enter only base url for nextcloud (/remote." "php/webdav/ is added automatically)" msgstr "" -"Dropbox için boş bırakın ve Nextcloud için yalnızca ana URL'yi " -"girin(/remote.php/webdav/ otomatik olarak eklenir)" +"Dropbox için boş bırakın ve Nextcloud için yalnızca ana URL'yi girin(/" +"remote.php/webdav/ otomatik olarak eklenir)" #: .\cookbook\forms.py:188 msgid "" @@ -264,31 +264,31 @@ msgstr "" msgid "You have more users than allowed in your space." msgstr "" -#: .\cookbook\helper\recipe_url_import.py:304 +#: .\cookbook\helper\recipe_url_import.py:310 msgid "reverse rotation" msgstr "" -#: .\cookbook\helper\recipe_url_import.py:305 +#: .\cookbook\helper\recipe_url_import.py:311 msgid "careful rotation" msgstr "" -#: .\cookbook\helper\recipe_url_import.py:306 +#: .\cookbook\helper\recipe_url_import.py:312 msgid "knead" msgstr "" -#: .\cookbook\helper\recipe_url_import.py:307 +#: .\cookbook\helper\recipe_url_import.py:313 msgid "thicken" msgstr "" -#: .\cookbook\helper\recipe_url_import.py:308 +#: .\cookbook\helper\recipe_url_import.py:314 msgid "warm up" msgstr "" -#: .\cookbook\helper\recipe_url_import.py:309 +#: .\cookbook\helper\recipe_url_import.py:315 msgid "ferment" msgstr "" -#: .\cookbook\helper\recipe_url_import.py:310 +#: .\cookbook\helper\recipe_url_import.py:316 msgid "sous-vide" msgstr "" @@ -404,7 +404,7 @@ msgstr "" msgid "Dinner" msgstr "" -#: .\cookbook\migrations\0047_auto_20200602_1133.py:29 .\cookbook\models.py:920 +#: .\cookbook\migrations\0047_auto_20200602_1133.py:29 .\cookbook\models.py:919 msgid "Other" msgstr "" @@ -440,43 +440,43 @@ msgid "" "upload." msgstr "" -#: .\cookbook\models.py:455 .\cookbook\templates\search.html:7 +#: .\cookbook\models.py:454 .\cookbook\templates\search.html:7 #: .\cookbook\templates\settings.html:18 msgid "Search" msgstr "" -#: .\cookbook\models.py:456 .\cookbook\templates\base.html:114 +#: .\cookbook\models.py:455 .\cookbook\templates\base.html:114 #: .\cookbook\templates\meal_plan.html:7 msgid "Meal-Plan" msgstr "" -#: .\cookbook\models.py:457 .\cookbook\templates\base.html:122 -#: .\cookbook\views\views.py:454 +#: .\cookbook\models.py:456 .\cookbook\templates\base.html:122 +#: .\cookbook\views\views.py:459 msgid "Books" msgstr "" -#: .\cookbook\models.py:458 .\cookbook\templates\base.html:118 -#: .\cookbook\views\views.py:455 +#: .\cookbook\models.py:457 .\cookbook\templates\base.html:118 +#: .\cookbook\views\views.py:460 msgid "Shopping" msgstr "" -#: .\cookbook\models.py:753 +#: .\cookbook\models.py:752 msgid " is part of a recipe step and cannot be deleted" msgstr "" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 msgid "Nutrition" msgstr "" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 msgid "Allergen" msgstr "" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Price" msgstr "" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Goal" msgstr "" @@ -955,10 +955,8 @@ msgstr "" #: .\cookbook\templates\base.html:263 #: .\cookbook\templates\ingredient_editor.html:7 #: .\cookbook\templates\ingredient_editor.html:13 -#, fuzzy -#| msgid "Ingredients" msgid "Ingredient Editor" -msgstr "Malzemeler" +msgstr "Malzeme Editörü" #: .\cookbook\templates\base.html:275 #: .\cookbook\templates\export_response.html:7 @@ -1417,10 +1415,8 @@ msgid "Back" msgstr "" #: .\cookbook\templates\property_editor.html:7 -#, fuzzy -#| msgid "Ingredients" msgid "Property Editor" -msgstr "Malzemeler" +msgstr "Özellik Editörü" #: .\cookbook\templates\recipe_view.html:36 msgid "Comments" @@ -1843,14 +1839,14 @@ msgid "Media Serving" msgstr "" #: .\cookbook\templates\system.html:47 .\cookbook\templates\system.html:61 -#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:91 -#: .\cookbook\templates\system.html:102 +#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:88 +#: .\cookbook\templates\system.html:102 .\cookbook\templates\system.html:113 msgid "Warning" msgstr "" #: .\cookbook\templates\system.html:47 .\cookbook\templates\system.html:61 -#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:93 -#: .\cookbook\templates\system.html:102 +#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:88 +#: .\cookbook\templates\system.html:104 .\cookbook\templates\system.html:113 msgid "Ok" msgstr "" @@ -1865,7 +1861,8 @@ msgid "" msgstr "" #: .\cookbook\templates\system.html:55 .\cookbook\templates\system.html:70 -#: .\cookbook\templates\system.html:83 .\cookbook\views\views.py:302 +#: .\cookbook\templates\system.html:83 .\cookbook\templates\system.html:94 +#: .\cookbook\views\views.py:303 msgid "Everything is fine!" msgstr "" @@ -1902,20 +1899,31 @@ msgid "" msgstr "" #: .\cookbook\templates\system.html:86 +msgid "Allowed Hosts" +msgstr "" + +#: .\cookbook\templates\system.html:90 +msgid "" +"\n" +" Your allowed hosts are configured to allow every host. This " +"might be ok in some setups but should be avoided. Please see the docs about " +"this.\n" +" " +msgstr "" + +#: .\cookbook\templates\system.html:97 msgid "Database" msgstr "" -#: .\cookbook\templates\system.html:89 +#: .\cookbook\templates\system.html:100 msgid "Info" msgstr "" -#: .\cookbook\templates\system.html:99 .\cookbook\templates\system.html:116 -#, fuzzy -#| msgid "Use fractions" +#: .\cookbook\templates\system.html:110 .\cookbook\templates\system.html:127 msgid "Migrations" -msgstr "Kesirleri kullan" +msgstr "Göçler" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -1927,19 +1935,19 @@ msgid "" " " msgstr "" -#: .\cookbook\templates\system.html:171 +#: .\cookbook\templates\system.html:182 msgid "False" msgstr "" -#: .\cookbook\templates\system.html:171 +#: .\cookbook\templates\system.html:182 msgid "True" msgstr "" -#: .\cookbook\templates\system.html:196 +#: .\cookbook\templates\system.html:207 msgid "Hide" msgstr "" -#: .\cookbook\templates\system.html:199 +#: .\cookbook\templates\system.html:210 msgid "Show" msgstr "" @@ -2350,7 +2358,7 @@ msgid "There was an error importing this recipe!" msgstr "" #: .\cookbook\views\views.py:69 .\cookbook\views\views.py:177 -#: .\cookbook\views\views.py:204 .\cookbook\views\views.py:418 +#: .\cookbook\views\views.py:204 .\cookbook\views\views.py:423 msgid "This feature is not available in the demo version!" msgstr "" @@ -2387,82 +2395,84 @@ msgstr "" msgid "Fuzzy search is not compatible with this search method!" msgstr "" -#: .\cookbook\views\views.py:305 +#: .\cookbook\views\views.py:306 #, python-format msgid "PostgreSQL %(v)s is deprecated. Upgrade to a fully supported version!" msgstr "" -#: .\cookbook\views\views.py:308 +#: .\cookbook\views\views.py:309 #, python-format msgid "You are running PostgreSQL %(v1)s. PostgreSQL %(v2)s is recommended" msgstr "" -#: .\cookbook\views\views.py:312 +#: .\cookbook\views\views.py:313 +msgid "Unable to determine PostgreSQL version." +msgstr "" + +#: .\cookbook\views\views.py:317 msgid "" "This application is not running with a Postgres database backend. This is ok " "but not recommended as some features only work with postgres databases." msgstr "" -#: .\cookbook\views\views.py:355 +#: .\cookbook\views\views.py:360 msgid "" "The setup page can only be used to create the first " "user! If you have forgotten your superuser credentials " "please consult the django documentation on how to reset passwords." msgstr "" -#: .\cookbook\views\views.py:364 +#: .\cookbook\views\views.py:369 msgid "Passwords dont match!" msgstr "" -#: .\cookbook\views\views.py:372 +#: .\cookbook\views\views.py:377 msgid "User has been created, please login!" msgstr "" -#: .\cookbook\views\views.py:388 +#: .\cookbook\views\views.py:393 msgid "Malformed Invite Link supplied!" msgstr "" -#: .\cookbook\views\views.py:405 +#: .\cookbook\views\views.py:410 msgid "Successfully joined space." msgstr "" -#: .\cookbook\views\views.py:411 +#: .\cookbook\views\views.py:416 msgid "Invite Link not valid or already used!" msgstr "" -#: .\cookbook\views\views.py:427 +#: .\cookbook\views\views.py:432 msgid "" "Reporting share links is not enabled for this instance. Please notify the " "page administrator to report problems." msgstr "" -#: .\cookbook\views\views.py:432 +#: .\cookbook\views\views.py:437 msgid "" "Recipe sharing link has been disabled! For additional information please " "contact the page administrator." msgstr "" -#: .\cookbook\views\views.py:446 +#: .\cookbook\views\views.py:451 msgid "Manage recipes, shopping list, meal plans and more." msgstr "" -#: .\cookbook\views\views.py:453 +#: .\cookbook\views\views.py:458 msgid "Plan" msgstr "" -#: .\cookbook\views\views.py:453 +#: .\cookbook\views\views.py:458 msgid "View your meal Plan" msgstr "" -#: .\cookbook\views\views.py:454 +#: .\cookbook\views\views.py:459 msgid "View your cookbooks" msgstr "" -#: .\cookbook\views\views.py:455 -#, fuzzy -#| msgid "Users with whom to share shopping lists." +#: .\cookbook\views\views.py:460 msgid "View your shopping lists" -msgstr "Alışveriş listesinin paylaşılacağı kullanıcılar." +msgstr "Alışveriş listelerinizi görüntüleyin" #~ msgid "Default unit" #~ msgstr "Varsayılan birim" diff --git a/cookbook/locale/uk/LC_MESSAGES/django.po b/cookbook/locale/uk/LC_MESSAGES/django.po index 6104a91a0b..eefdc7e70c 100644 --- a/cookbook/locale/uk/LC_MESSAGES/django.po +++ b/cookbook/locale/uk/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: 2023-04-12 11:55+0000\n" "Last-Translator: noxonad \n" "Language-Team: Ukrainian \n" "Language-Team: Chinese (Simplified) \n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" +"PO-Revision-Date: 2024-05-19 13:38+0000\n" +"Last-Translator: only \n" "Language-Team: Chinese (Traditional) \n" "Language: zh_Hant\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: Weblate 4.15\n" +"X-Generator: Weblate 5.4.2\n" #: .\cookbook\forms.py:45 msgid "" @@ -31,7 +31,7 @@ msgstr "名字" #: .\cookbook\forms.py:62 .\cookbook\forms.py:246 .\cookbook\views\lists.py:103 msgid "Keywords" -msgstr "關鍵詞" +msgstr "關鍵字" #: .\cookbook\forms.py:62 msgid "Preparation time in minutes" @@ -257,31 +257,31 @@ msgstr "" msgid "You have more users than allowed in your space." msgstr "" -#: .\cookbook\helper\recipe_url_import.py:304 +#: .\cookbook\helper\recipe_url_import.py:310 msgid "reverse rotation" msgstr "" -#: .\cookbook\helper\recipe_url_import.py:305 +#: .\cookbook\helper\recipe_url_import.py:311 msgid "careful rotation" msgstr "" -#: .\cookbook\helper\recipe_url_import.py:306 +#: .\cookbook\helper\recipe_url_import.py:312 msgid "knead" msgstr "" -#: .\cookbook\helper\recipe_url_import.py:307 +#: .\cookbook\helper\recipe_url_import.py:313 msgid "thicken" msgstr "" -#: .\cookbook\helper\recipe_url_import.py:308 +#: .\cookbook\helper\recipe_url_import.py:314 msgid "warm up" msgstr "" -#: .\cookbook\helper\recipe_url_import.py:309 +#: .\cookbook\helper\recipe_url_import.py:315 msgid "ferment" msgstr "" -#: .\cookbook\helper\recipe_url_import.py:310 +#: .\cookbook\helper\recipe_url_import.py:316 msgid "sous-vide" msgstr "" @@ -399,7 +399,7 @@ msgstr "午餐" msgid "Dinner" msgstr "晚餐" -#: .\cookbook\migrations\0047_auto_20200602_1133.py:29 .\cookbook\models.py:920 +#: .\cookbook\migrations\0047_auto_20200602_1133.py:29 .\cookbook\models.py:919 msgid "Other" msgstr "其他" @@ -435,43 +435,43 @@ msgid "" "upload." msgstr "空間的最大文件存儲量,單位為 MB。0表示無限製,-1表示禁止上傳文件。" -#: .\cookbook\models.py:455 .\cookbook\templates\search.html:7 +#: .\cookbook\models.py:454 .\cookbook\templates\search.html:7 #: .\cookbook\templates\settings.html:18 msgid "Search" msgstr "搜索" -#: .\cookbook\models.py:456 .\cookbook\templates\base.html:114 +#: .\cookbook\models.py:455 .\cookbook\templates\base.html:114 #: .\cookbook\templates\meal_plan.html:7 msgid "Meal-Plan" msgstr "膳食計劃" -#: .\cookbook\models.py:457 .\cookbook\templates\base.html:122 -#: .\cookbook\views\views.py:454 +#: .\cookbook\models.py:456 .\cookbook\templates\base.html:122 +#: .\cookbook\views\views.py:459 msgid "Books" msgstr "書籍" -#: .\cookbook\models.py:458 .\cookbook\templates\base.html:118 -#: .\cookbook\views\views.py:455 +#: .\cookbook\models.py:457 .\cookbook\templates\base.html:118 +#: .\cookbook\views\views.py:460 msgid "Shopping" msgstr "" -#: .\cookbook\models.py:753 +#: .\cookbook\models.py:752 msgid " is part of a recipe step and cannot be deleted" msgstr "" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 msgid "Nutrition" msgstr "" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 msgid "Allergen" msgstr "" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Price" msgstr "" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Goal" msgstr "" @@ -1850,14 +1850,14 @@ msgid "Media Serving" msgstr "" #: .\cookbook\templates\system.html:47 .\cookbook\templates\system.html:61 -#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:91 -#: .\cookbook\templates\system.html:102 +#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:88 +#: .\cookbook\templates\system.html:102 .\cookbook\templates\system.html:113 msgid "Warning" msgstr "" #: .\cookbook\templates\system.html:47 .\cookbook\templates\system.html:61 -#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:93 -#: .\cookbook\templates\system.html:102 +#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:88 +#: .\cookbook\templates\system.html:104 .\cookbook\templates\system.html:113 msgid "Ok" msgstr "" @@ -1872,7 +1872,8 @@ msgid "" msgstr "" #: .\cookbook\templates\system.html:55 .\cookbook\templates\system.html:70 -#: .\cookbook\templates\system.html:83 .\cookbook\views\views.py:302 +#: .\cookbook\templates\system.html:83 .\cookbook\templates\system.html:94 +#: .\cookbook\views\views.py:303 msgid "Everything is fine!" msgstr "" @@ -1909,18 +1910,31 @@ msgid "" msgstr "" #: .\cookbook\templates\system.html:86 +msgid "Allowed Hosts" +msgstr "" + +#: .\cookbook\templates\system.html:90 +msgid "" +"\n" +" Your allowed hosts are configured to allow every host. This " +"might be ok in some setups but should be avoided. Please see the docs about " +"this.\n" +" " +msgstr "" + +#: .\cookbook\templates\system.html:97 msgid "Database" msgstr "" -#: .\cookbook\templates\system.html:89 +#: .\cookbook\templates\system.html:100 msgid "Info" msgstr "" -#: .\cookbook\templates\system.html:99 .\cookbook\templates\system.html:116 +#: .\cookbook\templates\system.html:110 .\cookbook\templates\system.html:127 msgid "Migrations" msgstr "" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -1932,19 +1946,19 @@ msgid "" " " msgstr "" -#: .\cookbook\templates\system.html:171 +#: .\cookbook\templates\system.html:182 msgid "False" msgstr "" -#: .\cookbook\templates\system.html:171 +#: .\cookbook\templates\system.html:182 msgid "True" msgstr "" -#: .\cookbook\templates\system.html:196 +#: .\cookbook\templates\system.html:207 msgid "Hide" msgstr "" -#: .\cookbook\templates\system.html:199 +#: .\cookbook\templates\system.html:210 msgid "Show" msgstr "" @@ -2354,7 +2368,7 @@ msgid "There was an error importing this recipe!" msgstr "" #: .\cookbook\views\views.py:69 .\cookbook\views\views.py:177 -#: .\cookbook\views\views.py:204 .\cookbook\views\views.py:418 +#: .\cookbook\views\views.py:204 .\cookbook\views\views.py:423 msgid "This feature is not available in the demo version!" msgstr "" @@ -2391,78 +2405,82 @@ msgstr "" msgid "Fuzzy search is not compatible with this search method!" msgstr "" -#: .\cookbook\views\views.py:305 +#: .\cookbook\views\views.py:306 #, python-format msgid "PostgreSQL %(v)s is deprecated. Upgrade to a fully supported version!" msgstr "" -#: .\cookbook\views\views.py:308 +#: .\cookbook\views\views.py:309 #, python-format msgid "You are running PostgreSQL %(v1)s. PostgreSQL %(v2)s is recommended" msgstr "" -#: .\cookbook\views\views.py:312 +#: .\cookbook\views\views.py:313 +msgid "Unable to determine PostgreSQL version." +msgstr "" + +#: .\cookbook\views\views.py:317 msgid "" "This application is not running with a Postgres database backend. This is ok " "but not recommended as some features only work with postgres databases." msgstr "" -#: .\cookbook\views\views.py:355 +#: .\cookbook\views\views.py:360 msgid "" "The setup page can only be used to create the first " "user! If you have forgotten your superuser credentials " "please consult the django documentation on how to reset passwords." msgstr "" -#: .\cookbook\views\views.py:364 +#: .\cookbook\views\views.py:369 msgid "Passwords dont match!" msgstr "" -#: .\cookbook\views\views.py:372 +#: .\cookbook\views\views.py:377 msgid "User has been created, please login!" msgstr "" -#: .\cookbook\views\views.py:388 +#: .\cookbook\views\views.py:393 msgid "Malformed Invite Link supplied!" msgstr "" -#: .\cookbook\views\views.py:405 +#: .\cookbook\views\views.py:410 msgid "Successfully joined space." msgstr "" -#: .\cookbook\views\views.py:411 +#: .\cookbook\views\views.py:416 msgid "Invite Link not valid or already used!" msgstr "" -#: .\cookbook\views\views.py:427 +#: .\cookbook\views\views.py:432 msgid "" "Reporting share links is not enabled for this instance. Please notify the " "page administrator to report problems." msgstr "" -#: .\cookbook\views\views.py:432 +#: .\cookbook\views\views.py:437 msgid "" "Recipe sharing link has been disabled! For additional information please " "contact the page administrator." msgstr "" -#: .\cookbook\views\views.py:446 +#: .\cookbook\views\views.py:451 msgid "Manage recipes, shopping list, meal plans and more." msgstr "" -#: .\cookbook\views\views.py:453 +#: .\cookbook\views\views.py:458 msgid "Plan" msgstr "" -#: .\cookbook\views\views.py:453 +#: .\cookbook\views\views.py:458 msgid "View your meal Plan" msgstr "" -#: .\cookbook\views\views.py:454 +#: .\cookbook\views\views.py:459 msgid "View your cookbooks" msgstr "" -#: .\cookbook\views\views.py:455 +#: .\cookbook\views\views.py:460 msgid "View your shopping lists" msgstr "" diff --git a/cookbook/migrations/0218_alter_mealplan_from_date_alter_mealplan_to_date.py b/cookbook/migrations/0218_alter_mealplan_from_date_alter_mealplan_to_date.py new file mode 100644 index 0000000000..0ab3655252 --- /dev/null +++ b/cookbook/migrations/0218_alter_mealplan_from_date_alter_mealplan_to_date.py @@ -0,0 +1,46 @@ +# Generated by Django 4.2.11 on 2024-05-01 10:56 +from datetime import timedelta + +from django.db import migrations, models +from django_scopes import scopes_disabled + + +def timezone_correction(apps, schema_editor): + # when converting from date to datetime the field becomes timezone aware and defaults to 00:00:00 UTC + # this will be converted to a local datetime on the client which, for all negative offset timezones, + # would mean that the plan item shows one day prior to the previous planning date + # by setting the time on the old entries to 11:00 this issue will be limited to a very small number of people (see https://en.wikipedia.org/wiki/Time_zone#/media/File:World_Time_Zones_Map.svg) + # the server timezone could be used to guess zone of most of the clients but that would also not be perfect so this much simpler alternative is chosen + with scopes_disabled(): + MealPlan = apps.get_model('cookbook', 'MealPlan') + meal_plans = MealPlan.objects.all() + for mp in meal_plans: + mp.from_date += timedelta(hours=12) + mp.to_date += timedelta(hours=12) + + MealPlan.objects.bulk_update(meal_plans, ['from_date', 'to_date'], batch_size=1000) + + +class Migration(migrations.Migration): + dependencies = [ + ('cookbook', '0217_alter_userpreference_default_page'), + ] + + operations = [ + migrations.AddField( + model_name='mealtype', + name='time', + field=models.TimeField(blank=True, null=True), + ), + migrations.AlterField( + model_name='mealplan', + name='from_date', + field=models.DateTimeField(), + ), + migrations.AlterField( + model_name='mealplan', + name='to_date', + field=models.DateTimeField(), + ), + migrations.RunPython(timezone_correction) + ] diff --git a/cookbook/models.py b/cookbook/models.py index d2e160b8da..6c34d81839 100644 --- a/cookbook/models.py +++ b/cookbook/models.py @@ -417,7 +417,6 @@ class ConnectorConfig(models.Model, PermissionModelMixin): objects = ScopedManager(space='space') - class UserPreference(models.Model, PermissionModelMixin): # Themes BOOTSTRAP = 'BOOTSTRAP' @@ -1135,6 +1134,7 @@ class MealType(models.Model, PermissionModelMixin): name = models.CharField(max_length=128) order = models.IntegerField(default=0) color = models.CharField(max_length=7, blank=True, null=True) + time = models.TimeField(null=True, blank=True) default = models.BooleanField(default=False, blank=True) created_by = models.ForeignKey(User, on_delete=models.CASCADE) @@ -1158,8 +1158,8 @@ class MealPlan(ExportModelOperationsMixin('meal_plan'), models.Model, Permission shared = models.ManyToManyField(User, blank=True, related_name='plan_share') meal_type = models.ForeignKey(MealType, on_delete=models.CASCADE) note = models.TextField(blank=True) - from_date = models.DateField() - to_date = models.DateField() + from_date = models.DateTimeField() + to_date = models.DateTimeField() space = models.ForeignKey(Space, on_delete=models.CASCADE) objects = ScopedManager(space='space') diff --git a/cookbook/serializer.py b/cookbook/serializer.py index 816180ba78..8a7114c465 100644 --- a/cookbook/serializer.py +++ b/cookbook/serializer.py @@ -355,7 +355,7 @@ def create(self, validated_data): class Meta: list_serializer_class = SpaceFilterSerializer model = MealType - fields = ('id', 'name', 'order', 'color', 'default', 'created_by') + fields = ('id', 'name', 'order', 'time', 'color', 'default', 'created_by') read_only_fields = ('created_by',) @@ -1030,7 +1030,7 @@ class MealPlanSerializer(SpacedModelSerializer, WritableNestedModelSerializer): shared = UserSerializer(many=True, required=False, allow_null=True) shopping = serializers.SerializerMethodField('in_shopping') - to_date = serializers.DateField(required=False) + to_date = serializers.DateTimeField(required=False) def get_note_markdown(self, obj): return markdown(obj.note) diff --git a/cookbook/templates/base.html b/cookbook/templates/base.html index 5a7e1650a1..ca310f0af6 100644 --- a/cookbook/templates/base.html +++ b/cookbook/templates/base.html @@ -4,7 +4,7 @@ {% load custom_tags %} {% theme_values request as theme_values %} - + {% block title %} diff --git a/cookbook/templates/system.html b/cookbook/templates/system.html index 873d466535..e6995578bb 100644 --- a/cookbook/templates/system.html +++ b/cookbook/templates/system.html @@ -82,6 +82,17 @@ <h4 class="mt-3">{% trans 'Debug Mode' %} <span {% else %} {% trans 'Everything is fine!' %} {% endif %} + + <h4 class="mt-3">{% trans 'Allowed Hosts' %} <span + class="badge badge-{% if '*' in allowed_hosts %}warning{% else %}success{% endif %}">{% if '*' in allowed_hosts %} + {% trans 'Warning' %}{% else %}{% trans 'Ok' %}{% endif %}</span></h4> + {% if debug %} + {% blocktrans %} + Your allowed hosts are configured to allow every host. This might be ok in some setups but should be avoided. Please see the docs about this. + {% endblocktrans %} + {% else %} + {% trans 'Everything is fine!' %} + {% endif %} <h4 class="mt-3">{% trans 'Database' %} <span class="badge badge-{{ postgres_status }}"> diff --git a/cookbook/tests/api/test_api_recipe_book_entry.py b/cookbook/tests/api/test_api_recipe_book_entry.py index 11d1523eab..38b8c5e79b 100644 --- a/cookbook/tests/api/test_api_recipe_book_entry.py +++ b/cookbook/tests/api/test_api_recipe_book_entry.py @@ -100,7 +100,7 @@ def test_add_duplicate(u1_s1, obj_1): {'book': obj_1.book.pk, 'recipe': obj_1.recipe.pk}, content_type='application/json' ) - assert r.status_code == 201 + assert r.status_code == 400 def test_delete(u1_s1, u1_s2, obj_1): diff --git a/cookbook/tests/other/test_automations.py b/cookbook/tests/other/test_automations.py index 8b7b5568f7..810a73f744 100644 --- a/cookbook/tests/other/test_automations.py +++ b/cookbook/tests/other/test_automations.py @@ -4,10 +4,10 @@ from django.contrib import auth from django.test import RequestFactory from django_scopes import scope +from recipe_scrapers import scrape_html from cookbook.helper.automation_helper import AutomationEngine from cookbook.helper.recipe_url_import import get_from_scraper -from cookbook.helper.scrapers.scrapers import text_scraper from cookbook.models import Automation DATA_DIR = "cookbook/tests/other/test_data/" @@ -73,12 +73,14 @@ def test_unit_automation(u1_s1, arg): assert (automation.apply_unit_automation(arg[0]) == target_name) is True -@pytest.mark.parametrize("arg", [ - [[1, 'egg', 'white'], '', [1, '', 'egg', 'white']], - [[1, 'Egg', 'white'], '', [1, '', 'Egg', 'white']], - [[1, 'êgg', 'white'], '', [1, 'êgg', 'white']], - [[1, 'egg', 'white'], 'whole', [1, 'whole', 'egg', 'white']], -]) +@pytest.mark.parametrize( + "arg", [ + [[1, 'egg', 'white'], '', [1, '', 'egg', 'white']], + [[1, 'Egg', 'white'], '', [1, '', 'Egg', 'white']], + [[1, 'êgg', 'white'], '', [1, 'êgg', 'white']], + [[1, 'egg', 'white'], 'whole', [1, 'whole', 'egg', 'white']], + ] +) def test_never_unit_automation(u1_s1, arg): user = auth.get_user(u1_s1) space = user.userspace_set.first().space @@ -97,13 +99,15 @@ def test_never_unit_automation(u1_s1, arg): ['.*allrecipes.*', True], ['.*google.*', False], ]) -@pytest.mark.parametrize("arg", [ - [Automation.DESCRIPTION_REPLACE], - [Automation.INSTRUCTION_REPLACE], - [Automation.NAME_REPLACE], - [Automation.FOOD_REPLACE], - [Automation.UNIT_REPLACE], -]) +@pytest.mark.parametrize( + "arg", [ + [Automation.DESCRIPTION_REPLACE], + [Automation.INSTRUCTION_REPLACE], + [Automation.NAME_REPLACE], + [Automation.FOOD_REPLACE], + [Automation.UNIT_REPLACE], + ] +) def test_regex_automation(u1_s1, arg, source): user = auth.get_user(u1_s1) space = user.userspace_set.first().space @@ -124,11 +128,13 @@ def test_regex_automation(u1_s1, arg, source): assert (automation.apply_regex_replace_automation(fail, arg[0]) == target) == False -@pytest.mark.parametrize("arg", [ - ['second first', 'first second'], - ['longer string second first longer string', 'longer string first second longer string'], - ['second fails first', 'second fails first'], -]) +@pytest.mark.parametrize( + "arg", [ + ['second first', 'first second'], + ['longer string second first longer string', 'longer string first second longer string'], + ['second fails first', 'second fails first'], + ] +) def test_transpose_automation(u1_s1, arg): user = auth.get_user(u1_s1) space = user.userspace_set.first().space @@ -160,7 +166,7 @@ def test_url_import_regex_replace(u1_s1): else: test_file = os.path.join(os.getcwd(), 'cookbook', 'tests', 'other', 'test_data', recipe) with open(test_file, 'r', encoding='UTF-8') as d: - scrape = text_scraper(text=d.read(), url="https://www.allrecipes.com") + scrape = scrape_html(html=d.read(), org_url="https://testrecipe.test", supported_only=False) with scope(space=space): for t in types: Automation.objects.get_or_create(name=t, type=t, param_1='.*', param_2=find_text, param_3='', created_by=user, space=space) diff --git a/cookbook/views/api.py b/cookbook/views/api.py index a0ceada127..3c2d596b21 100644 --- a/cookbook/views/api.py +++ b/cookbook/views/api.py @@ -35,7 +35,7 @@ from django_scopes import scopes_disabled from icalendar import Calendar, Event from oauth2_provider.models import AccessToken -from recipe_scrapers import scrape_me +from recipe_scrapers import scrape_html from recipe_scrapers._exceptions import NoSchemaFoundInWildMode from requests.exceptions import MissingSchema from rest_framework import decorators, status, viewsets @@ -861,7 +861,7 @@ def get_queryset(self): if unit and re.match(r'^(\d)+$', unit): queryset = queryset.filter(unit_id=unit) - return queryset + return queryset.select_related('food') class StepViewSet(viewsets.ModelViewSet): @@ -1437,8 +1437,8 @@ def post(self, request, *args, **kwargs): else: try: if validators.url(url, public=True): - scrape = scrape_me(url_path=url, wild_mode=True) - + html = requests.get(url).content + scrape = scrape_html(org_url=url, html=html, supported_only=False) else: return Response({'error': True, 'msg': _('Invalid Url')}, status=status.HTTP_400_BAD_REQUEST) except NoSchemaFoundInWildMode: diff --git a/cookbook/views/views.py b/cookbook/views/views.py index 58ffdf736c..c0592edbd9 100644 --- a/cookbook/views/views.py +++ b/cookbook/views/views.py @@ -348,7 +348,7 @@ def system(request): request, 'system.html', { 'gunicorn_media': settings.GUNICORN_MEDIA, 'debug': settings.DEBUG, 'postgres': postgres, 'postgres_version': postgres_ver, 'postgres_status': database_status, 'postgres_message': database_message, 'version_info': VERSION_INFO, 'plugins': PLUGINS, 'secret_key': secret_key, 'orphans': orphans, 'migration_info': migration_info, - 'missing_migration': missing_migration, + 'missing_migration': missing_migration, 'allowed_hosts': settings.ALLOWED_HOSTS, }) diff --git a/docs/contribute.md b/docs/contribute.md deleted file mode 100644 index 545ded7557..0000000000 --- a/docs/contribute.md +++ /dev/null @@ -1,117 +0,0 @@ -If you like this application and want it to improve, feel free to contribute to its development. - -!!! success "Contribution List" - If you help bring this project forward you deserve to be credited for it. - Feel free to add yourself to `CONTRIBUTERS.md` or message me to add you if you have contributed anything. - -## Issues -The most basic but also very important way of contributing is reporting issues and commenting on ideas and feature requests -over at [GitHub issues](https://github.com/vabene1111/recipes/issues). - -Without feedback improvement can't happen, so don't hesitate to say what you want to say. - -## Contributing Code -If you want to contribute bug fixes or small tweaks then your pull requests are always welcome! - -!!! danger "Discuss First!" - If you want to contribute larger features that introduce more complexity to the project please - make sure to **first submit a technical description** outlining what and how you want to do it. - This allows me and the community to give feedback and manage the complexity of the overall - application. If you don't do this please don't be mad if I reject your PR - -!!! info - The dev setup is a little messy as this application combines the best (at least in my opinion) of both Django and Vue.js. - -### Devcontainer Setup -There is a [devcontainer](https://containers.dev) set up to ease development. It is optimized for VSCode, but should be able to -be used by other editors as well. Once the container is running, you can do things like start a Django dev server, start a Vue.js -dev server, run python tests, etc. by either using the VSCode tasks below, or manually running commands described in the individual -technology sections below. - -In VSCode, simply check out the git repository, and then via the command palette, choose `Dev Containers: Reopen in container`. - -If you need to change python dependencies (requierments.txt) or OS packages, you will need to rebuild the container. If you are -changing OS package requirements, you will need to update both the main `Dockerfile` and the `.devcontainer/Dockerfile`. - -### VSCode Tasks -If you use VSCode, there are a number of tasks that are available. Here are a few of the key ones: - -* `Setup Dev Server` - Runs all the prerequisite steps so that the dev server can be run inside VSCode. -* `Setup Tests` - Runs all prerequisites so tests can be run inside VSCode. - -Once these are run, you should be able to run/debug a django server in VSCode as well as run/debug tests directly through VSCode. -There are also a few other tasks specified in case you have specific development needs: - -* `Run Dev Server` - Runs a django development server not connected to VSCode. -* `Run all pytests` - Runs all the pytests outside of VSCode. -* `Yarn Serve` - Runs development Vue.js server not connected to VSCode. Useful if you want to make Vue changes and see them in realtime. -* `Serve Documentation` - Runs a documentation server. Useful if you want to see how changes to documentation show up. - -### Django -This application is developed using the Django framework for Python. They have excellent -[documentation](https://www.djangoproject.com/start/) on how to get started, so I will only give you the basics here. - -1. Clone this repository wherever you like and install the Python language for your OS (I recommend using version 3.10 or above). -2. Open it in your favorite editor/IDE (e.g. PyCharm). - a. If you want, create a virtual environment for all your packages. -3. Install all required packages: `pip install -r requirements.txt`. -4. Run the migrations: `python manage.py migrate`. -5. Start the development server: `python manage.py runserver`. - -There is **no** need to set any environment variables. By default, a simple SQLite database is used and all settings are -populated from default values. - -### Vue.js -Most new frontend pages are build using [Vue.js](https://vuejs.org/). - -In order to work on these pages, you will have to install a Javascript package manager of your choice. The following examples use yarn. - -In the `vue` folder run `yarn install` to install the dependencies. After that you can use `yarn serve` to start the development server, -and proceed to test your changes. If you do not wish to work on those pages, but instead want the application to work properly during -development, run `yarn build` to build the frontend pages once. - -#### API Client -The API Client is generated automatically from the OpenAPI interface provided by the Django REST framework. -For this [openapi-generator](https://github.com/OpenAPITools/openapi-generator) is used. - -Install it using your desired setup method. (For example, using `npm install @openapitools/openapi-generator-cli -g`.) - -Navigate to `vue/src/utils/openapi`. - -Generate the schema using `openapi-generator-cli generate -g typescript-axios -i http://127.0.0.1:8000/openapi/`. (Replace your dev server url if required.) - -## Contribute Documentation -The documentation is built from the markdown files in the [docs](https://github.com/vabene1111/recipes/tree/develop/docs) -folder of the GitHub repository. - -In order to contribute to the documentation, you can fork the repository and edit the markdown files in the browser. - -Now install mkdocs and dependencies: `pip install mkdocs-material mkdocs-include-markdown-plugin`. - -If you want to test the documentation, locally run `mkdocs serve` from the project root. - -## Contribute Translations - -If you know any foreign languages that the project has not been completely translated to yet, feel free to contribute translations. - -Translations are managed on [translate.tandoor.dev](https://translate.tandoor.dev/), a self hosted instance of [Weblate](https://weblate.org/de/). - -You can simply register an account and then follow these steps to add translations: - -1. After registering, you are asked to select your languages. This is optional but allows weblate to only show you relevant translations. -2. In the navigation click on `Projects` and then `Browse all projects`. -3. Select Tandoor and on the top-right hand corner, select `Watch project Tandoor` (click on `Not watching`). -4. Go back to the dashboard. It now shows you the relevant translations for your languages. Click on the pencil icon to get started. - -!!! info "Creating a new language" - To create a new language you must first select Tandoor (the project) and then a component. - Here you will have the option to add the language. Afterwards you can also simply add it to the other components as well. - Once a new language is (partially) finished let me know on GitHub so I can add it to the language-switcher in Tandoor itself. - -There is also [a lot of documentation](https://docs.weblate.org/en/latest/user/translating.html) available from Weblate directly. - -![2021-04-11_16-03](https://user-images.githubusercontent.com/6819595/114307359-926e0380-9adf-11eb-9a2b-febba56e4d8c.gif) - -It is also possible to provide the translations directly by creating a new language -using `manage.py makemessages -l <language_code> -i venv`. Once finished, simply open a PR with the changed files. This sometimes causes issues merging -with weblate, so I would prefer the use of weblate. diff --git a/docs/contribute/assets/flake8_watcher.png b/docs/contribute/assets/flake8_watcher.png new file mode 100644 index 0000000000..f5bf77be09 Binary files /dev/null and b/docs/contribute/assets/flake8_watcher.png differ diff --git a/docs/contribute/assets/isort_watcher.png b/docs/contribute/assets/isort_watcher.png new file mode 100644 index 0000000000..eb9c1d7872 Binary files /dev/null and b/docs/contribute/assets/isort_watcher.png differ diff --git a/docs/contribute/assets/linting_error.png b/docs/contribute/assets/linting_error.png new file mode 100644 index 0000000000..0acf97f3f3 Binary files /dev/null and b/docs/contribute/assets/linting_error.png differ diff --git a/docs/contribute/assets/prettier_watcher.png b/docs/contribute/assets/prettier_watcher.png new file mode 100644 index 0000000000..893732d9f2 Binary files /dev/null and b/docs/contribute/assets/prettier_watcher.png differ diff --git a/docs/contribute/assets/yapf_watcher.png b/docs/contribute/assets/yapf_watcher.png new file mode 100644 index 0000000000..9ddd968cde Binary files /dev/null and b/docs/contribute/assets/yapf_watcher.png differ diff --git a/docs/contribute/contribute.md b/docs/contribute/contribute.md new file mode 100644 index 0000000000..26e6db4bc7 --- /dev/null +++ b/docs/contribute/contribute.md @@ -0,0 +1,55 @@ +If you like this application and want it to give back, there are many ways to contribute. + +!!! success "Contribution List" +If you help bring this project forward you deserve to be credited for it. +Feel free to add yourself to `CONTRIBUTERS.md` or message me to add you if you have contributed anything. + +## Translations + +If you know any foreign languages you can: +Improve the translations for any of the existing languages. + +Add a new language to the long list of existing translations. + +- Armenian +- Bulgarian +- Catalan +- Czech +- Danish +- Dutch +- English +- French +- German +- Hungarian +- Italian +- Latvian +- Norwegian +- Polish +- Russian +- Spanish +- Swedish + +See [here](/contribute/translations) for further information on how to contribute translation to Tandoor. + +## Issues and Feature Requests + +The most basic but also very important way of contributing is reporting issues and commenting on ideas and feature requests +over at [GitHub issues](https://github.com/vabene1111/recipes/issues). + +Without feedback improvement can't happen, so don't hesitate to say what you want to say. + +## Documentation + +Helping improve the documentation for Tandoor is one of the easiest ways to give back and doesn't even require deep technical knowledge. +You can write guides on how to install and configure Tandoor expanding our repository of non-standard configuations. +Or you can write how-to guides using some of Tandoor's advanced features such as authentication or automation. + +See [here](/contribute/documentation) for more information on how to add documentation to Tandoor. + +## Contributing Code + +For the truly ambitious, you can help write code to fix issues, add additional features, or write your own scripts using +Tandoor's extensive API and share your work with the community. + +Before writing any code, please make sure that you review [contribution guidelines](/contribute/guidelines) and +[VSCode](/contribute/vscode) or [PyCharm](/contribute/pycharm) specific configurations. diff --git a/docs/contribute/documentation.md b/docs/contribute/documentation.md new file mode 100644 index 0000000000..3587f9bc0b --- /dev/null +++ b/docs/contribute/documentation.md @@ -0,0 +1,26 @@ +The documentation is built from the markdown files in the [docs](https://github.com/vabene1111/recipes/tree/develop/docs) +folder of the GitHub repository. + +In order to contribute to the documentation, there are a couple of methods that you can use. + +## Directly on GitHub + +You can fork the develop repository and edit the markdown files directly on the GitHub website. + +## With an IDE + +You can fork the develop repository and edit the markdown files from your favorite IDE such as VSCode or PyCharm. +One advantage of using as IDE is that you can preview your changes by: + +### Installing mkdocs + +Now install mkdocs and dependencies: `pip install mkdocs-material mkdocs-include-markdown-plugin`. + +### Serving Documetation + +If you want to test the documentation, locally run `mkdocs serve` from the project root. + +## Super Low Tech + +Create your documentation in any work processor (or even create a video!) and [open a feature request](https://github.com/vabene1111/recipes/issues) +attaching your document and requesting that someone add the documentation to Tandoor. diff --git a/docs/contribute/guidelines.md b/docs/contribute/guidelines.md new file mode 100644 index 0000000000..f1b3eea9e4 --- /dev/null +++ b/docs/contribute/guidelines.md @@ -0,0 +1,63 @@ +If you want to contribute bug fixes or small tweaks then your pull requests are always welcome! + +!!! danger "Discuss First!" +If you want to contribute larger features that introduce more complexity to the project please +make sure to **first submit a technical description** outlining what and how you want to do it. +This allows me and the community to give feedback and manage the complexity of the overall +application. If you don't do this please don't be mad if I reject your PR. + +## License + +Contributing to Tandoor requires signing a Contributor License Agreement. You can review the CLA [here](https://cla-assistant.io/TandoorRecipes/recipes). + +## Linting & Formatting + +Tandoor uses a number of libraries to maintain style and formatting consistency. +To contribute to the project you are required to use the following packages with the project defined configurations: + +- flake8 +- yapf +- isort +- prettier + +!!! tip "Manual Formatting" + It is possible to run formatting manually, but it is recommended to setup your IDE to format on save. + ``` bash + flake8 file.py --ignore=E501 | isort -q file.py | yapf -i file.py + prettier --write file.vue + ``` + +## Testing +Django uses pytest-django to implement a full suite of testing. If you make any functional changes, please implment the appropriate +tests. + +Tandoor is also actively soliciting contribors willing to setup vue3 testing. If you have knowledge in this area it would be greatly appreciated. + +## API Client + +Tandoor uses [django-rest-framework](https://www.django-rest-framework.org/) for API implementation. Making contributions that impact the API requires an understanding of +Viewsets and Serializers. + +Also double check that your changes are actively reflected in the schema so that client apis are generated accurately. + +The API Client is generated automatically from the OpenAPI interface provided by the Django REST framework. +For this [openapi-generator](https://github.com/OpenAPITools/openapi-generator) is used. + +Install it using your desired setup method. (For example, using `npm install @openapitools/openapi-generator-cli -g`.) + +### Vue + +Navigate to `vue/src/utils/openapi`. + +Generate the schema using `openapi-generator-cli generate -g typescript-axios -i http://127.0.0.1:8000/openapi/`. (Replace your dev server url if required.) + +### Vue3 + +Navigate to `vue3/src/openapi`. + +Generate the schema using `openapi-generator-cli generate -g typescript-fetch -i http://127.0.0.1:8000/openapi/`. (Replace your dev server url if required.) + +## Install and Configuration + +Instructions for [VSCode](/contribute/vscode) +Instructions for [PyCharm](/contribute/pycharm) diff --git a/docs/contribute/installation.md b/docs/contribute/installation.md new file mode 100644 index 0000000000..39eaba5a87 --- /dev/null +++ b/docs/contribute/installation.md @@ -0,0 +1,39 @@ +!!! info +The dev setup is a little messy as this application combines the best (at least in my opinion) of both Django and Vue.js. + +### Devcontainer Setup + +There is a [devcontainer](https://containers.dev) set up to ease development. It is optimized for VSCode, but should be able to +be used by other editors as well. Once the container is running, you can do things like start a Django dev server, start a Vue.js +dev server, run python tests, etc. by either using the VSCode tasks below, or manually running commands described in the individual +technology sections below. + +In VSCode, simply check out the git repository, and then via the command palette, choose `Dev Containers: Reopen in container`. + +If you need to change python dependencies (requierments.txt) or OS packages, you will need to rebuild the container. If you are +changing OS package requirements, you will need to update both the main `Dockerfile` and the `.devcontainer/Dockerfile`. + +### Django + +This application is developed using the Django framework for Python. They have excellent +[documentation](https://www.djangoproject.com/start/) on how to get started, so I will only give you the basics here. + +1. Clone this repository wherever you like and install the Python language for your OS (I recommend using version 3.10 or above). +2. Open it in your favorite editor/IDE (e.g. PyCharm). + a. If you want, create a virtual environment for all your packages. +3. Install all required packages: `pip install -r requirements.txt`. +4. Run the migrations: `python manage.py migrate`. +5. Start the development server: `python manage.py runserver`. + +There is **no** need to set any environment variables. By default, a simple SQLite database is used and all settings are +populated from default values. + +### Vue.js + +Most new frontend pages are build using [Vue.js](https://vuejs.org/). + +In order to work on these pages, you will have to install a Javascript package manager of your choice. The following examples use yarn. + +In the `vue` folder run `yarn install` to install the dependencies. After that you can use `yarn serve` to start the development server, +and proceed to test your changes. If you do not wish to work on those pages, but instead want the application to work properly during +development, run `yarn build` to build the frontend pages once. diff --git a/docs/contribute/pycharm.md b/docs/contribute/pycharm.md new file mode 100644 index 0000000000..927e2ecbc0 --- /dev/null +++ b/docs/contribute/pycharm.md @@ -0,0 +1,62 @@ +PyCharm can be configured to format and lint on save. Doing so requires some manual configuration as outlined below. + +## Setup File Watchers + +1. Navigate to File -> Settings -> Plugins +2. Download and install [File Watchers](https://plugins.jetbrains.com/plugin/7177-file-watchers) +3. Navigate to File -> Settings -> Tools -> Black +4. Confirm 'Use Black Formatter' is unchecked for both 'On code reformat' and 'On save' + +## Setup flake8 Watcher + +1. Navigate to File -> Settings -> Tools -> File Watchers +2. Click the '+' to add a new watcher. +3. Configure the watcher as below. + + ![flake8_watcher](assets/flake8_watcher.png) + +4. Navigate to File -> Settings -> Editor -> Inspections -> File watcher problems +5. Under Severity select 'Edit Severities' +6. Click the '+' to add a severity calling it 'Linting Error' +7. Configure a background and effect as below. + + ![linting error](assets/linting_error.png) + +## Setup isort + +1. Navigate to File -> Settings -> Tools -> File Watchers +2. Click the '+' to add a new watcher. +3. Configure the watcher as below. + + ![yapf_watcher](assets/isort_watcher.png) + +## Setup yapf + +1. Navigate to File -> Settings -> Tools -> File Watchers +2. Click the '+' to add a new watcher. +3. Configure the watcher as below. + + ![yapf_watcher](assets/yapf_watcher.png) + +<!-- prettier-ignore --> +!!! hint + Adding a comma at the end of a list will trigger yapf to put each element of the list on a new line + +## Setup prettier + +1. Navigate to File -> Settings -> Tools -> File Watchers +2. Click the '+' to add a new watcher. +3. Change 'File Type' to 'Any'. +4. Click the three dots next to 'Scope' to create a custom scope. +5. Click '+' to add a new scope + +- Name: prettier +- Pattern: `file:vue/src//*||file:vue3/src//*||file:docs//*` + +6. Configure the watcher as below. + + ![perttier_watcher](assets/prettier_watcher.png) + +- Arguments: `--cwd $ProjectFileDir$\vue prettier -w --config $ProjectFileDir$\.prettierrc $FilePath$` + +## Setup Volar?? diff --git a/docs/contribute/related.md b/docs/contribute/related.md new file mode 100644 index 0000000000..ad2cce45a1 --- /dev/null +++ b/docs/contribute/related.md @@ -0,0 +1,25 @@ +## Recipe Scraper + +While not directly related to Tandoor, we make extensive use of the brilliant [recipe-scrapers](https://github.com/hhursev/recipe-scrapers) +package by hhursev. + +If you have the skills to add new sites or help resolve issues you are indirectly helping Tandoor. + +## Unofficial mobile app + +Maintained by [phantomate](https://github.com/phantomate/Untare) + +[iPhone](https://apps.apple.com/nl/app/untare/id6448643329?l=en&platform=iphone) +[Android](https://play.google.com/store/apps/details?id=unofficial.tandoor.recipes) + +## GPT Recipe + +Maintained by [John Pedrie](https://github.com/jdpedrie/gpt-recipe) + +Convert pictures of recipes to a structure that can be imported to Tandoor with ChatGPT. + +## Tandoor Menu Generator + +Maintained by [smilerz](https://github.com/smilerz/tandoor-menu-generator) + +Generate a mealplan tbased on complex criteria and optionally insert it into an SVG menu template. diff --git a/docs/contribute/translations.md b/docs/contribute/translations.md new file mode 100644 index 0000000000..cd8d451c2e --- /dev/null +++ b/docs/contribute/translations.md @@ -0,0 +1,21 @@ +Translations are managed on [translate.tandoor.dev](https://translate.tandoor.dev/), a self hosted instance of [Weblate](https://weblate.org/de/). + +You can simply register an account and then follow these steps to add translations: + +1. After registering, you are asked to select your languages. This is optional but allows weblate to only show you relevant translations. +2. In the navigation click on `Projects` and then `Browse all projects`. +3. Select Tandoor and on the top-right hand corner, select `Watch project Tandoor` (click on `Not watching`). +4. Go back to the dashboard. It now shows you the relevant translations for your languages. Click on the pencil icon to get started. + +!!! info "Creating a new language" +To create a new language you must first select Tandoor (the project) and then a component. +Here you will have the option to add the language. Afterwards you can also simply add it to the other components as well. +Once a new language is (partially) finished let me know on GitHub so I can add it to the language-switcher in Tandoor itself. + +There is also [a lot of documentation](https://docs.weblate.org/en/latest/user/translating.html) available from Weblate directly. + +![2021-04-11_16-03](https://user-images.githubusercontent.com/6819595/114307359-926e0380-9adf-11eb-9a2b-febba56e4d8c.gif) + +It is also possible to provide the translations directly by creating a new language +using `manage.py makemessages -l <language_code> -i venv`. Once finished, simply open a PR with the changed files. This sometimes causes issues merging +with weblate, so I would prefer the use of weblate. diff --git a/docs/contribute/vscode.md b/docs/contribute/vscode.md new file mode 100644 index 0000000000..ab938d0ed6 --- /dev/null +++ b/docs/contribute/vscode.md @@ -0,0 +1,45 @@ +Configurations for debugging django, volar, testing, linting and formatting are all include in the project files. + +## Extensions + +VSCode can be configured to format and lint on save instead of manually formatting files before submitting a pull request. +To enable auto-formatting and linting install the following extensions in VSCode: + +Name: Flake8 +Publisher: Microsoft +VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=ms-python.flake8 + +Name: yapf +Publisher: EeyoreLee +VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=eeyore.yapf + +Name: isort +Publisher: Microsoft +VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=ms-python.isort + +Name: Vue - Official +Publisher: Vue +VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=Vue.volar + +Name: Prettier - Code formatter +Publisher: Prettier +VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode + +<!-- prettier-ignore --> +!!! hint + Adding a comma at the end of a list will trigger yapf to put each element of the list on a new line + +## VSCode Tasks + +There are a number of built in tasks that are available. Here are a few of the key ones: + +- `Setup Dev Server` - Runs all the prerequisite steps so that the dev server can be run inside VSCode. +- `Setup Tests` - Runs all prerequisites so tests can be run inside VSCode. + +Once these are run, you should be able to run/debug a django server in VSCode as well as run/debug tests directly through VSCode. +There are also a few other tasks specified in case you have specific development needs: + +- `Run Dev Server` - Runs a django development server not connected to VSCode. +- `Run all pytests` - Runs all the pytests outside of VSCode. +- `Yarn Serve` - Runs development Vue.js server not connected to VSCode. Useful if you want to make Vue changes and see them in realtime. +- `Serve Documentation` - Runs a documentation server. Useful if you want to see how changes to documentation show up. diff --git a/docs/install/docker/ipv6_plain/docker-compose.yml b/docs/install/docker/ipv6_plain/docker-compose.yml index e989fc09c3..971518a0fb 100644 --- a/docs/install/docker/ipv6_plain/docker-compose.yml +++ b/docs/install/docker/ipv6_plain/docker-compose.yml @@ -1,4 +1,3 @@ -version: "2.4" services: db_recipes: restart: always @@ -61,4 +60,4 @@ networks: ipam: driver: default config: - - subnet: ${IPV6_PREFIX:?NO_IPV6_PREFIX}::/${IPV6_PREFIX_LENGTH:?NO_IPV6_PREFIX_LENGTH} \ No newline at end of file + - subnet: ${IPV6_PREFIX:?NO_IPV6_PREFIX}::/${IPV6_PREFIX_LENGTH:?NO_IPV6_PREFIX_LENGTH} diff --git a/docs/install/docker/nginx-proxy/docker-compose.yml b/docs/install/docker/nginx-proxy/docker-compose.yml index 2e408646d0..dd43cbaeb2 100644 --- a/docs/install/docker/nginx-proxy/docker-compose.yml +++ b/docs/install/docker/nginx-proxy/docker-compose.yml @@ -1,4 +1,3 @@ -version: "3" services: db_recipes: restart: always diff --git a/docs/install/docker/plain/docker-compose.yml b/docs/install/docker/plain/docker-compose.yml index 089e72c56e..05d827067c 100644 --- a/docs/install/docker/plain/docker-compose.yml +++ b/docs/install/docker/plain/docker-compose.yml @@ -1,4 +1,3 @@ -version: "3" services: db_recipes: restart: always diff --git a/docs/install/docker/traefik-nginx/docker-compose.yml b/docs/install/docker/traefik-nginx/docker-compose.yml index afe2fbfb7e..fd94e67afb 100644 --- a/docs/install/docker/traefik-nginx/docker-compose.yml +++ b/docs/install/docker/traefik-nginx/docker-compose.yml @@ -1,4 +1,3 @@ -version: "3" services: db_recipes: restart: always diff --git a/docs/system/configuration.md b/docs/system/configuration.md index 90f75963c4..af5d398497 100644 --- a/docs/system/configuration.md +++ b/docs/system/configuration.md @@ -27,6 +27,18 @@ SECRET_KEY_FILE=/path/to/file.txt #$tp%v6*(*ba01wcz(ip(i5vfz8z$f%qdio&q@anr1#$=%(m4c ``` +#### Allowed Hosts + +> default `*` - options: `recipes.mydomain.com,cooking.mydomain.com,...` (comma seperated domain/ip list) + +Security setting to prevent HTTP Host Header Attacks, +see [Django docs](https://docs.djangoproject.com/en/5.0/ref/settings/#allowed-hosts). +Some proxies require `*` (default) but it should be set to the actual host(s). + +``` +ALLOWED_HOSTS=recipes.mydomain.com +``` + ### Database Multiple parameters are required to configure the database. @@ -92,17 +104,6 @@ Port for gunicorn to bind to. Should not be changed if using docker stack with r TANDOOR_PORT=8080 ``` -#### Allowed Hosts - -> default `*` - options: `recipes.mydomain.com,cooking.mydomain.com,...` (comma seperated domain/ip list) - -Security setting to prevent HTTP Host Header Attacks, -see [Django docs](https://docs.djangoproject.com/en/5.0/ref/settings/#allowed-hosts). -Many reverse proxies handle this and require the setting to be `*` (default). - -``` -ALLOWED_HOSTS=recipes.mydomain.com -``` #### URL Path diff --git a/docs/system/settings.md b/docs/system/settings.md deleted file mode 100644 index 990090fd8d..0000000000 --- a/docs/system/settings.md +++ /dev/null @@ -1,27 +0,0 @@ -Following is a description of the different settings for a space - -!!! WARNING WIP - Some settings and especially this page is work in Progress and the settings may - behave differently the described here. - -## Use Plural form - -Default Value: `off` - -This setting enables tandoor to display a plural form of a food or unit, if the -plural version is entered for the food or unit. The plural version is displayed if the -amount needed for a recipe is greater than 1 and will be adjusted to the current amount. - -In addition, this setting enables two new settings for an ingredient: - -- Always show the plural version of the food: This will always display the plural version for -a food, even if the amount is below or equal to 1. Requirement for this setting to activate -is a plural version available in the database. -- Always show the plural version of the unit: This will always display the plural version for -a unit, even if the amount is below or equal to 1. Requirement for this setting to activate -is a plural version available in the database. - -!!! WARNING Note - This setting is only meant to be a very simple version to enable some kind of pluralization - for food and units. This feature may not meet your needs, but pluralization is a difficult - topic and was discussed [here](https://github.com/TandoorRecipes/recipes/pull/1860). diff --git a/mkdocs.yml b/mkdocs.yml index 68d2b70a93..f51e364715 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -36,6 +36,7 @@ nav: - TrueNAS Portainer: install/truenas_portainer.md - WSL: install/wsl.md - ArchLinux: install/archlinux.md + - HomeAssistant: install/homeassistant.md - Manual: install/manual.md - Other setups: install/other.md - Features: @@ -46,10 +47,21 @@ nav: - Connectors: features/connectors.md - Storages and Sync: features/external_recipes.md - Import/Export: features/import_export.md + - Telegram bot: features/telegram_bot.md - System: - Configuration: system/configuration.md - Updating: system/updating.md + - Migrate sqlite to postgres: system/migration_sqlite-postgres.md - Permission System: system/permissions.md - Backup: system/backup.md - - Contributing: contribute.md + - Contributing: + - Overview: contribute/contribute.md + - Translations: contribute/translations.md + - Documentation: contribute/documentation.md + - Code: contribute/guidelines.md + - Installation: contribute/installation.md + - IDE Setup: + - VSCode: contribute/vscode.md + - PyCharm: contribute/pycharm.md + - Related Projects: contribute/related.md - FAQ: faq.md diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000000..33bc62172b --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,12 @@ +[tool.yapf] +column_limit = 179 +based_on_style = "pep8" +DISABLE_ENDING_COMMA_HEURISTIC = false +COALESCE_BRACKETS = true +DEDENT_CLOSING_BRACKETS = true +FORCE_MULTILINE_DICT = false + +[tool.isort] +multi_line_output = 5 +skip = [".gitignore", ".dockerignore"] +line_length = 179 diff --git a/recipes/locale/ar/LC_MESSAGES/django.po b/recipes/locale/ar/LC_MESSAGES/django.po index bee4aa037c..b4c702c8f5 100644 --- a/recipes/locale/ar/LC_MESSAGES/django.po +++ b/recipes/locale/ar/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -37,102 +37,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/bg/LC_MESSAGES/django.po b/recipes/locale/bg/LC_MESSAGES/django.po index da938eae4c..2334ecdd7b 100644 --- a/recipes/locale/bg/LC_MESSAGES/django.po +++ b/recipes/locale/bg/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -36,102 +36,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/ca/LC_MESSAGES/django.po b/recipes/locale/ca/LC_MESSAGES/django.po index da938eae4c..2334ecdd7b 100644 --- a/recipes/locale/ca/LC_MESSAGES/django.po +++ b/recipes/locale/ca/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -36,102 +36,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/cs/LC_MESSAGES/django.po b/recipes/locale/cs/LC_MESSAGES/django.po index 2e6b938d41..84e7cf1d5f 100644 --- a/recipes/locale/cs/LC_MESSAGES/django.po +++ b/recipes/locale/cs/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -37,102 +37,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/da/LC_MESSAGES/django.po b/recipes/locale/da/LC_MESSAGES/django.po index da938eae4c..2334ecdd7b 100644 --- a/recipes/locale/da/LC_MESSAGES/django.po +++ b/recipes/locale/da/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -36,102 +36,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/de/LC_MESSAGES/django.po b/recipes/locale/de/LC_MESSAGES/django.po index 4f6aec9954..22f290a568 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: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -36,104 +36,92 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "Englisch" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "Deutsch" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 #, fuzzy #| msgid "English" msgid "Polish" msgstr "Englisch" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/el/LC_MESSAGES/django.po b/recipes/locale/el/LC_MESSAGES/django.po index da938eae4c..2334ecdd7b 100644 --- a/recipes/locale/el/LC_MESSAGES/django.po +++ b/recipes/locale/el/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -36,102 +36,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/en/LC_MESSAGES/django.po b/recipes/locale/en/LC_MESSAGES/django.po index da938eae4c..2334ecdd7b 100644 --- a/recipes/locale/en/LC_MESSAGES/django.po +++ b/recipes/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -36,102 +36,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/es/LC_MESSAGES/django.po b/recipes/locale/es/LC_MESSAGES/django.po index da938eae4c..2334ecdd7b 100644 --- a/recipes/locale/es/LC_MESSAGES/django.po +++ b/recipes/locale/es/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -36,102 +36,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/fi/LC_MESSAGES/django.po b/recipes/locale/fi/LC_MESSAGES/django.po index da938eae4c..2334ecdd7b 100644 --- a/recipes/locale/fi/LC_MESSAGES/django.po +++ b/recipes/locale/fi/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -36,102 +36,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/fr/LC_MESSAGES/django.po b/recipes/locale/fr/LC_MESSAGES/django.po index 1549229438..815ce568ed 100644 --- a/recipes/locale/fr/LC_MESSAGES/django.po +++ b/recipes/locale/fr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -36,102 +36,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/he/LC_MESSAGES/django.po b/recipes/locale/he/LC_MESSAGES/django.po index 581ee69bcb..f8206039bf 100644 --- a/recipes/locale/he/LC_MESSAGES/django.po +++ b/recipes/locale/he/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -37,102 +37,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/hu_HU/LC_MESSAGES/django.po b/recipes/locale/hu_HU/LC_MESSAGES/django.po index 8911a5230a..826c7f0ab1 100644 --- a/recipes/locale/hu_HU/LC_MESSAGES/django.po +++ b/recipes/locale/hu_HU/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -35,102 +35,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/hy/LC_MESSAGES/django.po b/recipes/locale/hy/LC_MESSAGES/django.po index da938eae4c..2334ecdd7b 100644 --- a/recipes/locale/hy/LC_MESSAGES/django.po +++ b/recipes/locale/hy/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -36,102 +36,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/id/LC_MESSAGES/django.po b/recipes/locale/id/LC_MESSAGES/django.po index c601a733be..ec3e69fb56 100644 --- a/recipes/locale/id/LC_MESSAGES/django.po +++ b/recipes/locale/id/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -36,102 +36,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/it/LC_MESSAGES/django.po b/recipes/locale/it/LC_MESSAGES/django.po index da938eae4c..2334ecdd7b 100644 --- a/recipes/locale/it/LC_MESSAGES/django.po +++ b/recipes/locale/it/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -36,102 +36,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/lv/LC_MESSAGES/django.po b/recipes/locale/lv/LC_MESSAGES/django.po index 25f2187b8c..241dbaa3bc 100644 --- a/recipes/locale/lv/LC_MESSAGES/django.po +++ b/recipes/locale/lv/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -37,102 +37,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/nb_NO/LC_MESSAGES/django.po b/recipes/locale/nb_NO/LC_MESSAGES/django.po index 8911a5230a..826c7f0ab1 100644 --- a/recipes/locale/nb_NO/LC_MESSAGES/django.po +++ b/recipes/locale/nb_NO/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -35,102 +35,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/nl/LC_MESSAGES/django.po b/recipes/locale/nl/LC_MESSAGES/django.po index da938eae4c..2334ecdd7b 100644 --- a/recipes/locale/nl/LC_MESSAGES/django.po +++ b/recipes/locale/nl/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -36,102 +36,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/pl/LC_MESSAGES/django.po b/recipes/locale/pl/LC_MESSAGES/django.po index 8bb81e3140..ffcdfb1f03 100644 --- a/recipes/locale/pl/LC_MESSAGES/django.po +++ b/recipes/locale/pl/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -38,102 +38,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/pt/LC_MESSAGES/django.po b/recipes/locale/pt/LC_MESSAGES/django.po index da938eae4c..2334ecdd7b 100644 --- a/recipes/locale/pt/LC_MESSAGES/django.po +++ b/recipes/locale/pt/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -36,102 +36,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/pt_BR/LC_MESSAGES/django.po b/recipes/locale/pt_BR/LC_MESSAGES/django.po index 1549229438..815ce568ed 100644 --- a/recipes/locale/pt_BR/LC_MESSAGES/django.po +++ b/recipes/locale/pt_BR/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -36,102 +36,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/rn/LC_MESSAGES/django.po b/recipes/locale/rn/LC_MESSAGES/django.po index 8911a5230a..826c7f0ab1 100644 --- a/recipes/locale/rn/LC_MESSAGES/django.po +++ b/recipes/locale/rn/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -35,102 +35,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/ro/LC_MESSAGES/django.po b/recipes/locale/ro/LC_MESSAGES/django.po index bc93746d59..a35ed39ef8 100644 --- a/recipes/locale/ro/LC_MESSAGES/django.po +++ b/recipes/locale/ro/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -37,102 +37,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/ru/LC_MESSAGES/django.po b/recipes/locale/ru/LC_MESSAGES/django.po index 27abea4f25..682b2796c2 100644 --- a/recipes/locale/ru/LC_MESSAGES/django.po +++ b/recipes/locale/ru/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -38,102 +38,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/sl/LC_MESSAGES/django.po b/recipes/locale/sl/LC_MESSAGES/django.po index 3f07d33c52..93b445a96a 100644 --- a/recipes/locale/sl/LC_MESSAGES/django.po +++ b/recipes/locale/sl/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -37,102 +37,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/sv/LC_MESSAGES/django.po b/recipes/locale/sv/LC_MESSAGES/django.po index da938eae4c..2334ecdd7b 100644 --- a/recipes/locale/sv/LC_MESSAGES/django.po +++ b/recipes/locale/sv/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -36,102 +36,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/tr/LC_MESSAGES/django.po b/recipes/locale/tr/LC_MESSAGES/django.po index 1549229438..815ce568ed 100644 --- a/recipes/locale/tr/LC_MESSAGES/django.po +++ b/recipes/locale/tr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -36,102 +36,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/uk/LC_MESSAGES/django.po b/recipes/locale/uk/LC_MESSAGES/django.po index 5d02f2a472..3c98972287 100644 --- a/recipes/locale/uk/LC_MESSAGES/django.po +++ b/recipes/locale/uk/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -39,102 +39,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/vi/LC_MESSAGES/django.po b/recipes/locale/vi/LC_MESSAGES/django.po index c601a733be..ec3e69fb56 100644 --- a/recipes/locale/vi/LC_MESSAGES/django.po +++ b/recipes/locale/vi/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -36,102 +36,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/zh_CN/LC_MESSAGES/django.po b/recipes/locale/zh_CN/LC_MESSAGES/django.po index 8911a5230a..826c7f0ab1 100644 --- a/recipes/locale/zh_CN/LC_MESSAGES/django.po +++ b/recipes/locale/zh_CN/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -35,102 +35,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/locale/zh_Hant/LC_MESSAGES/django.po b/recipes/locale/zh_Hant/LC_MESSAGES/django.po index c601a733be..ec3e69fb56 100644 --- a/recipes/locale/zh_Hant/LC_MESSAGES/django.po +++ b/recipes/locale/zh_Hant/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-03-21 14:39+0100\n" +"POT-Creation-Date: 2024-07-08 17:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -36,102 +36,90 @@ msgstr "" msgid "You do not have the required module to view this page!" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Recipe Keyword" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Meal Plan" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Shopping" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:32 +#: .\recipes\plugins\enterprise_plugin\models.py:35 msgid "Book" msgstr "" -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "start" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "center" -msgstr "" - -#: .\recipes\plugins\enterprise_plugin\models.py:37 -msgid "end" -msgstr "" - -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:461 msgid "Armenian " msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:462 msgid "Bulgarian" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:463 msgid "Catalan" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:464 msgid "Czech" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:465 msgid "Danish" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:466 msgid "Dutch" msgstr "" -#: .\recipes\settings.py:402 +#: .\recipes\settings.py:467 msgid "English" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:468 msgid "French" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:469 msgid "German" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:470 msgid "Hungarian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:471 msgid "Italian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:472 msgid "Latvian" msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:473 msgid "Norwegian " msgstr "" -#: .\recipes\settings.py:403 +#: .\recipes\settings.py:474 msgid "Polish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:475 msgid "Russian" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:476 msgid "Spanish" msgstr "" -#: .\recipes\settings.py:404 +#: .\recipes\settings.py:477 msgid "Swedish" msgstr "" diff --git a/recipes/settings.py b/recipes/settings.py index 27185455e9..2dbc90b934 100644 --- a/recipes/settings.py +++ b/recipes/settings.py @@ -104,10 +104,30 @@ # Application definition INSTALLED_APPS = [ - 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', - 'django.contrib.sites', 'django.contrib.staticfiles', 'django.contrib.postgres', 'oauth2_provider', 'django_tables2', 'corsheaders', 'crispy_forms', - 'crispy_bootstrap4', 'rest_framework', 'rest_framework.authtoken', 'django_cleanup.apps.CleanupConfig', 'webpack_loader', 'django_js_reverse', 'hcaptcha', 'allauth', - 'allauth.account', 'allauth.socialaccount', 'cookbook.apps.CookbookConfig', 'treebeard', + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.sites', + 'django.contrib.staticfiles', + 'django.contrib.postgres', + 'oauth2_provider', + 'django_tables2', + 'corsheaders', + 'crispy_forms', + 'crispy_bootstrap4', + 'rest_framework', + 'rest_framework.authtoken', + 'django_cleanup.apps.CleanupConfig', + 'webpack_loader', + 'django_js_reverse', + 'hcaptcha', + 'allauth', + 'allauth.account', + 'allauth.socialaccount', + 'cookbook.apps.CookbookConfig', + 'treebeard', ] PLUGINS_DIRECTORY = os.path.join(BASE_DIR, 'recipes', 'plugins') @@ -177,10 +197,18 @@ EXPORT_FILE_CACHE_DURATION = int(os.getenv('EXPORT_FILE_CACHE_DURATION', 600)) MIDDLEWARE = [ - 'corsheaders.middleware.CorsMiddleware', 'django.middleware.security.SecurityMiddleware', 'whitenoise.middleware.WhiteNoiseMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.locale.LocaleMiddleware', - 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'cookbook.helper.scope_middleware.ScopeMiddleware', 'allauth.account.middleware.AccountMiddleware', + 'corsheaders.middleware.CorsMiddleware', + 'django.middleware.security.SecurityMiddleware', + 'whitenoise.middleware.WhiteNoiseMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.locale.LocaleMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', + 'cookbook.helper.scope_middleware.ScopeMiddleware', + 'allauth.account.middleware.AccountMiddleware', ] if DEBUG_TOOLBAR: @@ -211,7 +239,11 @@ AUTH_LDAP_START_TLS = bool(int(os.getenv('AUTH_LDAP_START_TLS', False))) AUTH_LDAP_BIND_DN = os.getenv('AUTH_LDAP_BIND_DN') AUTH_LDAP_BIND_PASSWORD = os.getenv('AUTH_LDAP_BIND_PASSWORD') - AUTH_LDAP_USER_SEARCH = LDAPSearch(os.getenv('AUTH_LDAP_USER_SEARCH_BASE_DN'), ldap.SCOPE_SUBTREE, os.getenv('AUTH_LDAP_USER_SEARCH_FILTER_STR', '(uid=%(user)s)'), ) + AUTH_LDAP_USER_SEARCH = LDAPSearch( + os.getenv('AUTH_LDAP_USER_SEARCH_BASE_DN'), + ldap.SCOPE_SUBTREE, + os.getenv('AUTH_LDAP_USER_SEARCH_FILTER_STR', '(uid=%(user)s)'), + ) AUTH_LDAP_USER_ATTR_MAP = ast.literal_eval(os.getenv('AUTH_LDAP_USER_ATTR_MAP')) if os.getenv('AUTH_LDAP_USER_ATTR_MAP') else { 'first_name': 'givenName', 'last_name': 'sn', @@ -238,7 +270,10 @@ }, } -AUTHENTICATION_BACKENDS += ['django.contrib.auth.backends.ModelBackend', 'allauth.account.auth_backends.AuthenticationBackend', ] +AUTHENTICATION_BACKENDS += [ + 'django.contrib.auth.backends.ModelBackend', + 'allauth.account.auth_backends.AuthenticationBackend', +] # django allauth site id SITE_ID = int(os.getenv('ALLAUTH_SITE_ID', 1)) @@ -252,15 +287,20 @@ # Password validation # https://docs.djangoproject.com/en/2.0/ref/settings/#auth-password-validators -AUTH_PASSWORD_VALIDATORS = [{ - 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', -}, { - 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', -}, { - 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', -}, { - 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', -}, ] +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') @@ -269,25 +309,35 @@ WRITE_SCOPE = 'write' REST_FRAMEWORK = { - 'DEFAULT_AUTHENTICATION_CLASSES': - ('rest_framework.authentication.SessionAuthentication', 'oauth2_provider.contrib.rest_framework.OAuth2Authentication', 'rest_framework.authentication.BasicAuthentication', - ), - 'DEFAULT_PERMISSION_CLASSES': ['rest_framework.permissions.IsAuthenticated', ], + 'DEFAULT_AUTHENTICATION_CLASSES': ( + 'rest_framework.authentication.SessionAuthentication', + 'oauth2_provider.contrib.rest_framework.OAuth2Authentication', + 'rest_framework.authentication.BasicAuthentication', + ), + 'DEFAULT_PERMISSION_CLASSES': [ + 'rest_framework.permissions.IsAuthenticated', + ], } ROOT_URLCONF = 'recipes.urls' -TEMPLATES = [{ - 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [os.path.join(BASE_DIR, 'templates'), os.path.join(BASE_DIR, 'cookbook', 'templates')], - 'APP_DIRS': True, - 'OPTIONS': { - 'context_processors': [ - 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', - 'django.contrib.messages.context_processors.messages', 'django.template.context_processors.media', 'cookbook.helper.context_processors.context_settings', - ], +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [os.path.join(BASE_DIR, 'templates'), os.path.join(BASE_DIR, 'cookbook', 'templates')], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + 'django.template.context_processors.media', + 'cookbook.helper.context_processors.context_settings', + ], + }, }, -}, ] +] WSGI_APPLICATION = 'recipes.wsgi.application' @@ -358,7 +408,12 @@ def setup_database(db_url=None, db_options=None, db_engine=None, pg_host=None, p DATABASES = setup_database() -CACHES = {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'LOCATION': 'default', }} +CACHES = { + 'default': { + 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', + 'LOCATION': 'default', + } +} # Vue webpack settings VUE_DIR = os.path.join(BASE_DIR, 'vue') @@ -402,9 +457,25 @@ def setup_database(db_url=None, db_options=None, db_engine=None, pg_host=None, p USE_TZ = True -LANGUAGES = [('hy', _('Armenian ')), ('bg', _('Bulgarian')), ('ca', _('Catalan')), ('cs', _('Czech')), ('da', _('Danish')), ('nl', _('Dutch')), ('en', _('English')), - ('fr', _('French')), ('de', _('German')), ('hu', _('Hungarian')), ('it', _('Italian')), ('lv', _('Latvian')), ('nb', _('Norwegian ')), ('pl', _('Polish')), - ('ru', _('Russian')), ('es', _('Spanish')), ('sv', _('Swedish')), ] +LANGUAGES = [ + ('hy', _('Armenian ')), + ('bg', _('Bulgarian')), + ('ca', _('Catalan')), + ('cs', _('Czech')), + ('da', _('Danish')), + ('nl', _('Dutch')), + ('en', _('English')), + ('fr', _('French')), + ('de', _('German')), + ('hu', _('Hungarian')), + ('it', _('Italian')), + ('lv', _('Latvian')), + ('nb', _('Norwegian ')), + ('pl', _('Polish')), + ('ru', _('Russian')), + ('es', _('Spanish')), + ('sv', _('Swedish')), +] # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/2.0/howto/static-files/ @@ -470,7 +541,13 @@ def setup_database(db_url=None, db_options=None, db_engine=None, pg_host=None, p ACCOUNT_FORMS = {'signup': 'cookbook.forms.AllAuthSignupForm', 'reset_password': 'cookbook.forms.CustomPasswordResetForm'} ACCOUNT_EMAIL_UNKNOWN_ACCOUNTS = False -ACCOUNT_RATE_LIMITS = {"change_password": "1/m/user", "reset_password": "1/m/ip,1/m/key", "reset_password_from_key": "1/m/ip", "signup": "5/m/ip", "login": "5/m/ip", } +ACCOUNT_RATE_LIMITS = { + "change_password": "1/m/user", + "reset_password": "1/m/ip,1/m/key", + "reset_password_from_key": "1/m/ip", + "signup": "5/m/ip", + "login": "5/m/ip", +} DISABLE_EXTERNAL_CONNECTORS = bool(int(os.getenv('DISABLE_EXTERNAL_CONNECTORS', False))) EXTERNAL_CONNECTORS_QUEUE_SIZE = int(os.getenv('EXTERNAL_CONNECTORS_QUEUE_SIZE', 100)) diff --git a/requirements.txt b/requirements.txt index b457d2c464..0e4924d3c0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,18 +5,18 @@ django-cleanup==8.0.0 django-crispy-forms==2.1 crispy-bootstrap4==2022.1 django-tables2==2.7.0 -djangorestframework==3.14.0 +djangorestframework==3.15.2 drf-writable-nested==0.7.0 django-oauth-toolkit==2.3.0 django-debug-toolbar==4.3.0 bleach==6.0.0 -gunicorn==21.2.0 +gunicorn==22.0.0 lxml==5.1.0 Markdown==3.5.1 Pillow==10.3.0 psycopg2-binary==2.9.9 python-dotenv==1.0.0 -requests==2.31.0 +requests==2.32.0 six==1.16.0 webdavclient3==3.14.6 whitenoise==6.6.0 @@ -26,11 +26,11 @@ uritemplate==4.1.1 beautifulsoup4==4.12.3 microdata==0.8.0 mock==5.1.0 -Jinja2==3.1.3 +Jinja2==3.1.4 django-webpack-loader==3.0.1 git+https://github.com/BITSOLVER/django-js-reverse@071e304fd600107bc64bbde6f2491f1fe049ec82 django-allauth==0.61.1 -recipe-scrapers==14.53.0 +recipe-scrapers==15.0.0-rc3 django-scopes==2.0.0 django-treebeard==4.7 django-cors-headers==4.3.1 @@ -43,7 +43,7 @@ django-auth-ldap==4.6.0 pyppeteer==2.0.0 validators==0.20.0 pytube==15.0.0 -aiohttp==3.9.3 +aiohttp==3.9.4 # Development pytest==8.0.0 @@ -53,3 +53,6 @@ pytest-factoryboy==2.6.0 pytest-html==4.1.1 pytest-asyncio==0.23.5 pytest-xdist==3.5.0 +autopep8==2.0.4 +flake8==6.1.0 +yapf==0.40.2 diff --git a/vue/package.json b/vue/package.json index 02c8fe1fc1..98d8f337b7 100644 --- a/vue/package.json +++ b/vue/package.json @@ -61,6 +61,7 @@ "babel-eslint": "^10.1.0", "eslint": "^8.46.0", "eslint-plugin-vue": "^8.7.1", + "prettier": "^3.2.5", "typescript": "~5.3.3", "vue-cli-plugin-i18n": "^2.3.2", "webpack-bundle-tracker": "3.0.1", diff --git a/vue/src/components/PropertyViewComponent.vue b/vue/src/components/PropertyViewComponent.vue index 6cceeccd79..b7c1a871a2 100644 --- a/vue/src/components/PropertyViewComponent.vue +++ b/vue/src/components/PropertyViewComponent.vue @@ -67,7 +67,7 @@ <i class="text-warning fas fa-exclamation-triangle"></i> </template> <template v-else> - {{ f.value }} {{ selected_property.unit }} + {{ roundDecimals(f.value) }} {{ selected_property.unit }} </template> </td> </tr> diff --git a/vue/src/locales/fr.json b/vue/src/locales/fr.json index 90370360c7..9ed69c3a60 100644 --- a/vue/src/locales/fr.json +++ b/vue/src/locales/fr.json @@ -422,7 +422,7 @@ "plan_share_desc": "Les nouvelles entrées de menu de la semaine seront partagées automatiquement avec des utilisateurs sélectionnés.", "Use_Kj": "Utiliser kJ au lieu de kcal", "Manage_Emails": "Gérer les e-mails", - "select_food": "Séletionner l’aliment", + "select_food": "Sélectionner l’aliment", "Toggle": "Basculer", "Theme": "Thème", "Import_Supported": "Importation prise en charge", @@ -544,5 +544,13 @@ "Logo": "Logo", "Show_Logo": "Montrer le logo", "Shopping_input_placeholder": "par ex. Pommes de terre/100 Pommes de terre/100 gr Pomme de terre", - "Sticky_Nav": "Barre de navigation collante" + "Sticky_Nav": "Barre de navigation collante", + "tbsp": "", + "DefaultPage": "Page par défaut", + "InheritFields_help": "Les valeurs de ces champs seront héritées du parent (Exception : les listes de course vide ne sont pas héritées)", + "Show_Logo_Help": "Afficher le logo Tandoor ou de groupe dans la barre de navigation.", + "Space_Cosmetic_Settings": "Certains paramètres cosmétiques peuvent être modifiés par un administrateur de l'espace et seront prioritaires sur les paramètres des utilisateurs pour cet espace.", + "Nav_Text_Mode": "Mode de navigation texte", + "Nav_Text_Mode_Help": "Se comporte différemment pour chaque thème.", + "Enable": "Activer" } diff --git a/vue/src/locales/pt_BR.json b/vue/src/locales/pt_BR.json index bd34a7e87e..e5fe9088bd 100644 --- a/vue/src/locales/pt_BR.json +++ b/vue/src/locales/pt_BR.json @@ -247,8 +247,8 @@ "shopping_share_desc": "Usuários poderão ver todos os itens que adicionar à sua lista de compras. Eles devem adicioná-lo para ver os itens na lista deles.", "shopping_auto_sync_desc": "Definir a 0 irá desativar a sincronização automática. Quando se visualiza uma lista de compras a lista é atualizada após um número determinado de segundos para sincronizar com possíveis alterações feitas por outros. Útil quando se compartilha a lista de compras porém irá consumir dados móveis.", "mealplan_autoadd_shopping_desc": "Automaticamente inclui ingredientes do plano de refeição para a lista de compras.", - "mealplan_autoexclude_onhand_desc": "", - "mealplan_autoinclude_related_desc": "", + "mealplan_autoexclude_onhand_desc": "Ao adicionar um plano de refeições à lista de compras (manualmente ou automaticamente), exclua os ingredientes que já estão disponíveis.", + "mealplan_autoinclude_related_desc": "Ao adicionar um plano de refeições à lista de compras (manualmente ou automaticamente), inclua todas as receitas relacionadas.", "default_delay_desc": "", "filter_to_supermarket": "Filtro para Supermercado", "Coming_Soon": "Em breve", @@ -502,5 +502,30 @@ "Auto_Sort_Help": "Mover todos os ingredientes para o passo mais indicado.", "Ingredient Overview": "Ingredientes - Visão Geral", "Cosmetic": "Aparência", - "err_importing_recipe": "Não existem erros ao importar a receita!" + "err_importing_recipe": "Não existem erros ao importar a receita!", + "FDC_ID_help": "ID do banco de dados FDC", + "Calculator": "Calculadora", + "created_by": "Criado por", + "FDC_ID": "FDC ID", + "property_type_fdc_hint": "Apenas tipos de propriedade com um ID FDC podem puxar dados automaticamente do banco de dados FDC", + "Data_Import_Info": "Enriqueça seu espaço importando uma lista comunitariamente curada de alimentos, unidades e mais para melhorar sua coleção de receitas.", + "CustomThemeHelp": "Substituir estilos do tema selecionado fazendo upload de um arquivo CSS personalizado.", + "CustomImageHelp": "Faça upload de uma imagem para mostrar na visão geral do espaço.", + "CustomLogoHelp": "Faça o upload de imagens quadradas em diferentes tamanhos para alterar o logotipo na aba do navegador e no aplicativo web instalado.", + "CustomTheme": "Tema Personalizado", + "ShowRecentlyCompleted": "Mostrar itens recentemente concluídos", + "Input": "Entrada", + "Undo": "Desfazer", + "NoMoreUndo": "Nenhuma alteração para desfazer.", + "Delete_All": "Excluir tudo", + "Property_Editor": "Editor de Propriedades", + "CustomNavLogoHelp": "Faça upload de uma imagem para usar como logotipo na barra de navegação.", + "CustomLogos": "Logotipos Personalizados", + "ShoppingBackgroundSyncWarning": "Rede ruim, aguardando sincronização...", + "open_data_help_text": "O projeto Tandoor Open Data fornece dados contribuídos pela comunidade para o Tandoor. Este campo é preenchido automaticamente ao importá-lo e permite atualizações no futuro.", + "Open_Data_Slug": "Identificador de Dados Abertos", + "Properties_Food_Amount": "Quantidade de Alimento das Propriedades", + "Properties_Food_Unit": "Unidade de Alimento das Propriedades", + "Shopping_input_placeholder": "ex. Batata/100 Batatas/100 g Batatas", + "FDC_Search": "Busca FDC" } diff --git a/vue/src/locales/tr.json b/vue/src/locales/tr.json index 4da139004c..38b8fc4076 100644 --- a/vue/src/locales/tr.json +++ b/vue/src/locales/tr.json @@ -1,5 +1,5 @@ { - "warning_feature_beta": "", + "warning_feature_beta": "Bu özellik şu anda BETA (test) durumundadır. Lütfen bu özelliği kullanırken hatalara ve muhtemelen gelecekte değişikliklere (muhtemelen özellikle ilgili verilerin kaybolmasına) hazırlıklı olun.", "err_fetching_resource": "Kaynak alınırken bir hata oluştu!", "err_creating_resource": "Kaynak oluşturulurken bir hata oluştu!", "err_updating_resource": "Kaynak güncellenirken bir hata oluştu!", @@ -133,324 +133,324 @@ "Copy Link": "Bağlantıyı Kopyala", "Copy Token": "Anahtarı Kopyala", "delete_confirmation": "{source}'ı silmek istediğinizden emin misiniz?", - "move_confirmation": "", - "merge_confirmation": "", - "create_rule": "", - "move_selection": "", - "merge_selection": "", - "Root": "", - "Ignore_Shopping": "", - "Shopping_Category": "", - "Shopping_Categories": "", - "Edit_Food": "", - "Move_Food": "", - "New_Food": "", - "Hide_Food": "", - "Food_Alias": "", - "Unit_Alias": "", - "Keyword_Alias": "", - "Delete_Food": "", - "No_ID": "", - "Meal_Plan_Days": "", - "merge_title": "", - "move_title": "", - "Food": "", - "Recipe_Book": "", - "del_confirmation_tree": "", - "delete_title": "", - "create_title": "", - "edit_title": "", - "Name": "", - "Type": "", - "Description": "", - "Recipe": "", - "tree_root": "", - "Icon": "", - "Unit": "", - "Decimals": "", - "Default_Unit": "", - "No_Results": "", - "New_Unit": "", - "Create_New_Shopping Category": "", - "Create_New_Food": "", - "Create_New_Keyword": "", - "Create_New_Unit": "", - "Create_New_Meal_Type": "", - "Create_New_Shopping_Category": "", - "and_up": "", - "and_down": "", - "Instructions": "", - "Unrated": "", - "Automate": "", - "Empty": "", - "Key_Ctrl": "", - "Key_Shift": "", - "Time": "", - "Text": "", - "Shopping_list": "", - "Added_by": "", - "Added_on": "", - "AddToShopping": "", - "IngredientInShopping": "", - "NotInShopping": "", - "OnHand": "", - "FoodOnHand": "", - "FoodNotOnHand": "", - "Undefined": "", - "Create_Meal_Plan_Entry": "", - "Edit_Meal_Plan_Entry": "", - "Title": "", - "Week": "", - "Month": "", - "Year": "", - "Planner": "", - "Planner_Settings": "", - "Period": "", - "Plan_Period_To_Show": "", - "Periods": "", - "Plan_Show_How_Many_Periods": "", - "Starting_Day": "", - "Meal_Types": "", - "Meal_Type": "", - "New_Entry": "", - "Clone": "", - "Drag_Here_To_Delete": "", - "Meal_Type_Required": "", - "Title_or_Recipe_Required": "", - "Color": "", - "New_Meal_Type": "", - "Use_Fractions": "", - "Use_Fractions_Help": "", - "AddFoodToShopping": "", - "RemoveFoodFromShopping": "", - "DeleteShoppingConfirm": "", - "IgnoredFood": "", - "Add_Servings_to_Shopping": "", - "Week_Numbers": "", - "Show_Week_Numbers": "", - "Export_As_ICal": "", - "Export_To_ICal": "", - "Cannot_Add_Notes_To_Shopping": "", - "Added_To_Shopping_List": "", - "Shopping_List_Empty": "", - "Next_Period": "", - "Previous_Period": "", - "Current_Period": "", - "Next_Day": "", - "Previous_Day": "", - "Inherit": "", - "InheritFields": "", - "FoodInherit": "", - "ShowUncategorizedFood": "", - "GroupBy": "", - "Language": "", - "Theme": "", - "SupermarketCategoriesOnly": "", - "MoveCategory": "", - "CountMore": "", - "IgnoreThis": "", - "DelayFor": "", - "Warning": "", - "NoCategory": "", - "InheritWarning": "", - "ShowDelayed": "", - "Completed": "", - "OfflineAlert": "", - "shopping_share": "", - "shopping_auto_sync": "", - "one_url_per_line": "", - "mealplan_autoadd_shopping": "", - "mealplan_autoexclude_onhand": "", - "mealplan_autoinclude_related": "", - "default_delay": "", - "plan_share_desc": "", - "shopping_share_desc": "", - "shopping_auto_sync_desc": "", - "mealplan_autoadd_shopping_desc": "", - "mealplan_autoexclude_onhand_desc": "", - "mealplan_autoinclude_related_desc": "", - "default_delay_desc": "", - "filter_to_supermarket": "", - "Coming_Soon": "", - "Auto_Planner": "", - "New_Cookbook": "", - "Hide_Keyword": "", - "Hour": "", - "Hours": "", - "Day": "", - "Days": "", - "Second": "", - "Seconds": "", - "Clear": "", - "Users": "", - "Invites": "", - "err_move_self": "", - "nothing": "", - "err_merge_self": "", - "show_sql": "", - "filter_to_supermarket_desc": "", - "CategoryName": "", - "SupermarketName": "", - "CategoryInstruction": "", - "shopping_recent_days_desc": "", - "shopping_recent_days": "", - "download_pdf": "", - "download_csv": "", - "csv_delim_help": "", - "csv_delim_label": "", - "SuccessClipboard": "", - "copy_to_clipboard": "", - "csv_prefix_help": "", - "csv_prefix_label": "", - "copy_markdown_table": "", - "in_shopping": "", - "DelayUntil": "", - "Pin": "", - "mark_complete": "", - "QuickEntry": "", - "shopping_add_onhand_desc": "", - "shopping_add_onhand": "", - "related_recipes": "", - "today_recipes": "", - "sql_debug": "", - "remember_search": "", - "remember_hours": "", - "tree_select": "", - "OnHand_help": "", - "ignore_shopping_help": "", - "shopping_category_help": "", - "food_recipe_help": "", - "Foods": "", - "Account": "", - "Cosmetic": "", - "API": "", - "enable_expert": "", - "expert_mode": "", - "simple_mode": "", - "advanced": "", - "fields": "", - "show_keywords": "", - "show_foods": "", - "show_books": "", - "show_rating": "", - "show_units": "", - "show_filters": "", - "not": "", - "save_filter": "", - "filter_name": "", - "left_handed": "", - "left_handed_help": "", - "Custom Filter": "", - "shared_with": "", - "sort_by": "", - "asc": "", - "desc": "", - "date_viewed": "", - "last_cooked": "", - "times_cooked": "", - "date_created": "", - "show_sortby": "", - "search_rank": "", - "make_now": "", + "move_confirmation": "<i>{child}</i>'ı ebeveyn <i>{parent}</i>'a taşı", + "merge_confirmation": "<i>{source}</i> kaynağını <i>{target}</i> hedefiyle değiştir", + "create_rule": "ve otomasyon oluştur", + "move_selection": "{source}'un taşınacağı bir üst {type} seçin.", + "merge_selection": "{source} ifadesinin tüm tekrarlarını seçilen {type} ile değiştirin.", + "Root": "Kök", + "Ignore_Shopping": "Alışverişi Yoksay", + "Shopping_Category": "Alışveriş Kategorisi", + "Shopping_Categories": "Alışveriş Kategorileri", + "Edit_Food": "Yiyeceği Düzenle", + "Move_Food": "Yiyeceği Taşı", + "New_Food": "Yeni Yiyecek", + "Hide_Food": "Yiyeceği Gizle", + "Food_Alias": "Yiyecek Takma Adı", + "Unit_Alias": "Birim Takma Adı", + "Keyword_Alias": "Anahtar Kelime Takma Adı", + "Delete_Food": "Yiyeceği Sil", + "No_ID": "ID bulunamadı, silinemez.", + "Meal_Plan_Days": "Gelecek yemek planları", + "merge_title": "{type} birleştir", + "move_title": "{type} taşı", + "Food": "Yiyecek", + "Recipe_Book": "Yemek Tarifi Kitabı", + "del_confirmation_tree": "{source} ve tüm alt öğelerini silmek istediğinizden emin misiniz?", + "delete_title": "{type}'ı sil", + "create_title": "Yeni {type}", + "edit_title": "{type} düzenle", + "Name": "İsim", + "Type": "Tür", + "Description": "Açıklama", + "Recipe": "Tarif", + "tree_root": "Ağaç Kökü", + "Icon": "Simge", + "Unit": "Birim", + "Decimals": "Ondalık Sayılar", + "Default_Unit": "Varsayılan Birim", + "No_Results": "Sonuç Yok", + "New_Unit": "Yeni Birim", + "Create_New_Shopping Category": "Yeni Alışveriş Kategorisi Oluştur", + "Create_New_Food": "Yeni Yiyecek Ekle", + "Create_New_Keyword": "Yeni Anahtar Kelime Ekle", + "Create_New_Unit": "Yeni Birim Ekle", + "Create_New_Meal_Type": "Yeni Yemek Türü Ekle", + "Create_New_Shopping_Category": "Yeni Alışveriş Kategorisi Ekle", + "and_up": "& Yukarı", + "and_down": "& Aşağı", + "Instructions": "Talimatlar", + "Unrated": "Derecelendirilmemiş", + "Automate": "Otomatikleştir", + "Empty": "Boş", + "Key_Ctrl": "Ctrl", + "Key_Shift": "Shift", + "Time": "Zaman", + "Text": "Metin", + "Shopping_list": "Alışveriş Listesi", + "Added_by": "Ekleyen", + "Added_on": "Eklenme Zamanı", + "AddToShopping": "Alışveriş listesine ekle", + "IngredientInShopping": "Bu malzeme alışveriş listenizde.", + "NotInShopping": "{food} alışveriş listenizde yok.", + "OnHand": "Şu anda Elinizde", + "FoodOnHand": "Elinizde {food} var.", + "FoodNotOnHand": "Elinizde {food} yok.", + "Undefined": "Tanımlanmamış", + "Create_Meal_Plan_Entry": "Yemek planı girişi oluştur", + "Edit_Meal_Plan_Entry": "Yemek planı girişini düzenle", + "Title": "Başlık", + "Week": "Hafta", + "Month": "Ay", + "Year": "Yıl", + "Planner": "Planlayıcı", + "Planner_Settings": "Planlayıcı ayarları", + "Period": "Dönem", + "Plan_Period_To_Show": "Haftaları, ayları veya yılları göster", + "Periods": "Dönemler", + "Plan_Show_How_Many_Periods": "Kaç dönem gösterilecek", + "Starting_Day": "Haftanın başlangıç günü", + "Meal_Types": "Yemek türleri", + "Meal_Type": "Yemek türü", + "New_Entry": "Yeni Giriş", + "Clone": "Klonla", + "Drag_Here_To_Delete": "Silmek için buraya sürükleyin", + "Meal_Type_Required": "Yemek türü gereklidir", + "Title_or_Recipe_Required": "Başlık veya tarif seçimi gereklidir", + "Color": "Renk", + "New_Meal_Type": "Yeni Yemek türü", + "Use_Fractions": "Kesirleri Kullan", + "Use_Fractions_Help": "Bir tarifi görüntülerken ondalık sayıları otomatik olarak kesirlere dönüştürün.", + "AddFoodToShopping": "{food}'ı alışveriş listenize ekleyin", + "RemoveFoodFromShopping": "{food}'ı alışveriş listenizden çıkarın", + "DeleteShoppingConfirm": "Tüm {food} alışveriş listesinden kaldırmak istediğinizden emin misiniz?", + "IgnoredFood": "{food}, alışverişte yok sayılacak şekilde ayarlandı.", + "Add_Servings_to_Shopping": "Alışverişe {servings} Porsiyon Ekle", + "Week_Numbers": "Hafta numaraları", + "Show_Week_Numbers": "Hafta numaralarını göster?", + "Export_As_ICal": "Mevcut dönemi iCal formatında dışa aktar", + "Export_To_ICal": ".ics olarak dışa aktar", + "Cannot_Add_Notes_To_Shopping": "Alışveriş listesine notlar eklenemez", + "Added_To_Shopping_List": "Alışveriş listesine eklendi", + "Shopping_List_Empty": "Alışveriş listeniz şu anda boş, yemek planı girişinin içerik menüsü aracılığıyla öğeler ekleyebilirsiniz (karta sağ tıklayın veya menü simgesine sol tıklayın)", + "Next_Period": "Sonraki Dönem", + "Previous_Period": "Önceki Dönem", + "Current_Period": "Mevcut Dönem", + "Next_Day": "Sonraki Gün", + "Previous_Day": "Önceki Gün", + "Inherit": "Devral", + "InheritFields": "Alan Değerlerini Devral", + "FoodInherit": "Yiyeceğin Devralınabileceği Alanlar", + "ShowUncategorizedFood": "Tanımlanmamışları Göster", + "GroupBy": "Gruplandırma Ölçütü", + "Language": "Dil", + "Theme": "Tema", + "SupermarketCategoriesOnly": "Yalnızca Süpermarket Kategorileri", + "MoveCategory": "Taşı: ", + "CountMore": "...+{count} fazlası", + "IgnoreThis": "{food}'ı hiçbir zaman alışverişe otomatik olarak ekleme", + "DelayFor": "{hours} saat geciktir", + "Warning": "Uyarı", + "NoCategory": "Hiçbir kategori seçilmedi.", + "InheritWarning": "{food} devralacak şekilde ayarlandı; değişiklikler kalıcı olmayabilir.", + "ShowDelayed": "Geciken öğeleri göster", + "Completed": "Tamamlandı", + "OfflineAlert": "Çevrimdışısınız, alışveriş listesi senkronize edilemeyebilir.", + "shopping_share": "Alışveriş Listesini Paylaş", + "shopping_auto_sync": "Otomatik Senkronizasyon", + "one_url_per_line": "Satır başına bir URL", + "mealplan_autoadd_shopping": "Otomatik Yemek Planı Ekle", + "mealplan_autoexclude_onhand": "Eldeki Yiyecekleri Hariç Tut", + "mealplan_autoinclude_related": "İlgili Tarifleri Ekle", + "default_delay": "Varsayılan Gecikme Saatleri", + "plan_share_desc": "Yeni Yemek Planı girişleri seçilen kullanıcılarla otomatik olarak paylaşılacaktır.", + "shopping_share_desc": "Kullanıcılar alışveriş listenize eklediğiniz tüm ürünleri görecektir. Listelerindeki öğeleri görebilmeniz için sizi eklemeleri gerekir.", + "shopping_auto_sync_desc": "0'a ayarlamak otomatik senkronizasyonu devre dışı bırakacaktır. Bir alışveriş listesini görüntülerken liste, başka birinin yapmış olabileceği değişiklikleri senkronize etmek için belirlenen her saniyede bir güncellenir. Birden fazla kişiyle alışveriş yaparken kullanışlıdır ancak mobil veriyi kullanır.", + "mealplan_autoadd_shopping_desc": "Yemek planı malzemelerini otomatik olarak alışveriş listesine ekleyin.", + "mealplan_autoexclude_onhand_desc": "Alışveriş listesine bir yemek planı eklerken (manuel veya otomatik olarak), elinizde bulunan malzemeleri hariç tutun.", + "mealplan_autoinclude_related_desc": "Alışveriş listesine bir yemek planı eklerken (manuel veya otomatik olarak), ilgili tüm tarifleri dahil edin.", + "default_delay_desc": "Bir alışveriş listesi girişini geciktirmek için varsayılan saat sayısı.", + "filter_to_supermarket": "Süpermarkete Filtrele", + "Coming_Soon": "Yakında Gelecek", + "Auto_Planner": "Otomatik Planlayıcı", + "New_Cookbook": "Yeni yemek kitabı", + "Hide_Keyword": "Anahtar kelimeleri gizle", + "Hour": "Saat", + "Hours": "Saatler", + "Day": "Gün", + "Days": "Günler", + "Second": "Saniye", + "Seconds": "Saniyeler", + "Clear": "Temizle", + "Users": "Kullanıcılar", + "Invites": "Davetler", + "err_move_self": "Öğe kendisine taşınamaz", + "nothing": "Yapacak bir şey yok", + "err_merge_self": "Öğe kendisiyle birleştirilemez", + "show_sql": "SQL göster", + "filter_to_supermarket_desc": "Varsayılan olarak, alışveriş listesini yalnızca seçilen süpermarkete ait kategorileri içerecek şekilde filtreleyin.", + "CategoryName": "Kategori Adı", + "SupermarketName": "Süpermarket Adı", + "CategoryInstruction": "Alışveriş listesinde görünen sipariş kategorilerini değiştirmek için kategorileri sürükleyin.", + "shopping_recent_days_desc": "Görüntülenecek son alışveriş listesi girişlerinin günleri.", + "shopping_recent_days": "Son Günler", + "download_pdf": "PDF'i İndir", + "download_csv": "CSV İndir", + "csv_delim_help": "CSV dışa aktarmaları için kullanılacak ayırıcı.", + "csv_delim_label": "CSV Ayırıcı", + "SuccessClipboard": "Alışveriş listesi panoya kopyalandı", + "copy_to_clipboard": "Panoya Kopyala", + "csv_prefix_help": "Listeyi panoya kopyalarken eklenecek önek.", + "csv_prefix_label": "Liste Ön Eki", + "copy_markdown_table": "Markdown Tablosu Olarak Kopyala", + "in_shopping": "Alışveriş Listesinde", + "DelayUntil": "Şu Zamana Kadar Geciktir", + "Pin": "Sabitle", + "mark_complete": "Tamamlandı Olarak İşaretle", + "QuickEntry": "Hızlı Giriş", + "shopping_add_onhand_desc": "Alışveriş listesinde işaretlendiğinde yiyeceği 'Elde' olarak işaretleyin.", + "shopping_add_onhand": "Otomatik Elde", + "related_recipes": "İlgili Tarifler", + "today_recipes": "Günün Tarifleri", + "sql_debug": "SQL Hata Ayıklama", + "remember_search": "Aramayı Hatırla", + "remember_hours": "Hatırlanacak Süre", + "tree_select": "Ağaç Seçimini Kullan", + "OnHand_help": "Yiyecekler envanterdedir ve otomatik olarak alışveriş listesine eklenmez. Eldeki durum alışveriş kullanıcılarıyla paylaşılır.", + "ignore_shopping_help": "Alışveriş listesine asla eklenmeyecek yiyecek (örn. su)", + "shopping_category_help": "Süpermarketler, reyonların düzenine göre Alışveriş Kategorisine göre sipariş edilebilir ve filtrelenebilir.", + "food_recipe_help": "Bir tarifi buraya bağlamak, bağlantılı tarifi bu yiyeceği kullanan diğer tariflere dahil edecektir", + "Foods": "Yiyecekler", + "Account": "Hesap", + "Cosmetic": "Kozmetik", + "API": "API", + "enable_expert": "Uzman Modunu Etkinleştir", + "expert_mode": "Uzman Modu", + "simple_mode": "Basit Mod", + "advanced": "Gelişmiş", + "fields": "Alanlar", + "show_keywords": "Anahtar Kelimeleri Göster", + "show_foods": "Yiyecekleri Göster", + "show_books": "Kitapları Göster", + "show_rating": "Derecelendirmeyi Göster", + "show_units": "Birimleri Göster", + "show_filters": "Filtreleri Göster", + "not": "değil", + "save_filter": "Filtreyi Kaydet", + "filter_name": "Fitre Adı", + "left_handed": "Sol El modu", + "left_handed_help": "Kullanıcı arayüzünü sol elinizle kullanım için optimize edecektir.", + "Custom Filter": "Özel Filtre", + "shared_with": "Paylaşılan", + "sort_by": "Sıralama Ölçütü", + "asc": "Artan", + "desc": "Azalan", + "date_viewed": "Son Görüntülenen", + "last_cooked": "Son Pişirilen", + "times_cooked": "Pişirilme Sayısı", + "date_created": "Oluşturma Zamanı", + "show_sortby": "Sıralamayı Göster", + "search_rank": "Arama Sıralaması", + "make_now": "Şimdi Yap", "recipe_filter": "Tarif Filtresi", - "book_filter_help": "", - "review_shopping": "", + "book_filter_help": "Manuel olarak atananlara ek olarak tarif filtresindeki tarifleri de ekleyin.", + "review_shopping": "Kaydetmeden önce alışveriş girişlerini inceleyin", "view_recipe": "Tarif Görüntüle", "copy_to_new": "Yeni Tarif'e Kopyala", "recipe_name": "Tarif Adı", - "paste_ingredients_placeholder": "", - "paste_ingredients": "", - "ingredient_list": "", - "explain": "", - "filter": "", - "Website": "", - "App": "", - "Message": "", - "Bookmarklet": "", - "Sticky_Nav": "", - "Sticky_Nav_Help": "", - "Nav_Color": "", - "Nav_Color_Help": "", - "Use_Kj": "", - "Comments_setting": "", - "click_image_import": "", - "no_more_images_found": "", - "import_duplicates": "", - "paste_json": "", - "Click_To_Edit": "", - "search_no_recipes": "", - "search_import_help_text": "", - "search_create_help_text": "", - "warning_duplicate_filter": "", - "reset_children": "", - "reset_children_help": "", - "reset_food_inheritance": "", - "reset_food_inheritance_info": "", - "substitute_help": "", - "substitute_siblings_help": "", - "substitute_children_help": "", - "substitute_siblings": "", - "substitute_children": "", - "SubstituteOnHand": "", - "ChildInheritFields": "", - "ChildInheritFields_help": "", - "InheritFields_help": "", - "show_ingredient_overview": "", - "Ingredient Overview": "", - "last_viewed": "", - "created_on": "", - "updatedon": "", - "Imported_From": "", - "advanced_search_settings": "", - "nothing_planned_today": "", - "no_pinned_recipes": "", + "paste_ingredients_placeholder": "Malzeme listesini buraya yapıştırın...", + "paste_ingredients": "Malzemeleri Yapıştır", + "ingredient_list": "Malzeme Listesi", + "explain": "Açıkla", + "filter": "Filtre", + "Website": "Website", + "App": "Uygulama", + "Message": "Mesaj", + "Bookmarklet": "Yer İmi", + "Sticky_Nav": "Yapışkan Gezinme Çubuğu", + "Sticky_Nav_Help": "Gezinme menüsünü her zaman ekranın üst kısmında gösterin.", + "Nav_Color": "Gezinme Çubuğu Rengi", + "Nav_Color_Help": "Gezinme çubuğu rengini değiştir.", + "Use_Kj": "Kcal yerine kJ kullanın", + "Comments_setting": "Yorumları Göster", + "click_image_import": "Bu tarif için içe aktarmak istediğiniz görsele tıklayın", + "no_more_images_found": "Web sitesinde ek resim bulunamadı.", + "import_duplicates": "Mevcut tariflerle aynı adı taşıyan tariflerin tekrarlanmasını önlemek için göz ardı edilir. Her şeyi içe aktarmak için bu kutuyu işaretleyin.", + "paste_json": "Tarifi yüklemek için json veya html kaynağını buraya yapıştırın.", + "Click_To_Edit": "Düzenlemek için tıklayın", + "search_no_recipes": "Herhangi bir tarif bulunamadı!", + "search_import_help_text": "Harici bir web sitesinden veya uygulamadan bir tarifi içe aktarın.", + "search_create_help_text": "Doğrudan Tandoor'da yeni bir tarif oluşturun.", + "warning_duplicate_filter": "Uyarı: Teknik sınırlamalar nedeniyle aynı kombinasyona sahip (ve/veya/değil) birden fazla filtreye sahip olmak beklenmedik sonuçlara yol açabilir.", + "reset_children": "Alt Devralmayı Sıfırla", + "reset_children_help": "Devralınan alanlardaki değerleri tüm alt öğelerin üzerine yazın. Alt Devralınan Alanlar ayarlanmadıysa alttan devralınan alanlar Alanları Devral olarak ayarlanacaktır.", + "reset_food_inheritance": "Devralmayı Sıfırla", + "reset_food_inheritance_info": "Tüm yiyecekleri varsayılan devralınan alanlara ve bunların üst değerlerine sıfırlayın.", + "substitute_help": "Eldeki malzemelerle yapılabilecek tarifler ararken alternatifler dikkate alınır.", + "substitute_siblings_help": "Bu yiyeceğin bir üstünü paylaşan tüm yiyecekler ikame olarak kabul edilir.", + "substitute_children_help": "Bu yiyeceğin altı olan tüm yiyecekler ikame olarak kabul edilir.", + "substitute_siblings": "Yedek Kardeşler", + "substitute_children": "Yedek Çocuklar", + "SubstituteOnHand": "Elinizde bir yedek var.", + "ChildInheritFields": "Alt Öğeler Alanları Devralır", + "ChildInheritFields_help": "Alt öğeler varsayılan olarak bu alanları devralır.", + "InheritFields_help": "Bu alanların değerleri üst öğeden devralınacaktır (İstisna: boş alışveriş kategorileri devralınmaz)", + "show_ingredient_overview": "Tarifin başlangıcında tüm malzemelerin bir listesini görüntüleyin.", + "Ingredient Overview": "Malzeme Genel Bakış", + "last_viewed": "Son Bakılan", + "created_on": "Oluşturma Zamanı", + "updatedon": "Güncelleme Zamanı", + "Imported_From": "İçe Aktarıldığı Yer", + "advanced_search_settings": "Gelişmiş Arama Ayarları", + "nothing_planned_today": "Bugün için planınız yok!", + "no_pinned_recipes": "Sabitlenmiş tarifiniz yok!", "Planned": "Planlanan", - "Pinned": "", - "Imported": "", + "Pinned": "Sabitlenmiş", + "Imported": "İçe Aktarılmış", "Quick actions": "Hızlı işlemler", - "Ratings": "", - "Internal": "", + "Ratings": "Derecelendirmeler", + "Internal": "Dahili", "Units": "Birimler", - "Manage_Emails": "", - "Change_Password": "", - "Social_Authentication": "", + "Manage_Emails": "E-postaları Yönet", + "Change_Password": "Parolayı Değiştir", + "Social_Authentication": "Sosyal Kimlik Doğrulama", "Random Recipes": "Rasgele Tarifler", - "parameter_count": "", - "select_keyword": "", - "add_keyword": "", + "parameter_count": "Parametre {count}", + "select_keyword": "Anahtar Kelimeyi Seç", + "add_keyword": "Anahtar Kelime Ekle", "select_file": "Dosya Seç", "select_recipe": "Tarif Seç", "select_unit": "Birim Seç", - "select_food": "", - "remove_selection": "", - "empty_list": "", + "select_food": "Yiyecek Seç", + "remove_selection": "Seçimi Kaldır", + "empty_list": "Liste boş.", "Select": "Seç", "Supermarkets": "Marketler", - "User": "", - "Username": "", + "User": "Kullanıcı", + "Username": "Kullanıcı Adı", "First_name": "İsim", "Last_name": "Soyisim", - "Keyword": "", - "Advanced": "", + "Keyword": "Anahtar Kelime", + "Advanced": "Gelişmiş", "Page": "Sayfa", - "Single": "", - "Multiple": "", - "Reset": "", - "Disabled": "", - "Disable": "", - "Options": "", - "Create Food": "", - "create_food_desc": "", - "additional_options": "", - "Importer_Help": "", - "Documentation": "", - "Select_App_To_Import": "", - "Import_Supported": "", - "Export_Supported": "", - "Import_Not_Yet_Supported": "", - "Export_Not_Yet_Supported": "", - "Import_Result_Info": "", - "Recipes_In_Import": "", + "Single": "Tek", + "Multiple": "Çoklu", + "Reset": "Sıfırla", + "Disabled": "Devre Dışı", + "Disable": "Devre dışı bırak", + "Options": "Seçenekler", + "Create Food": "Yiyecek Oluştur", + "create_food_desc": "Bir yiyecek oluşturun ve onu bu tarife bağlayın.", + "additional_options": "Ek Seçenekler", + "Importer_Help": "Bu içe aktarıcı hakkında daha fazla bilgi ve yardım:", + "Documentation": "Dokümantasyon", + "Select_App_To_Import": "Lütfen İçe Aktarılacak Uygulamayı seçin", + "Import_Supported": "Desteklenen İçe Aktarma", + "Export_Supported": "Desteklenen Dışa Aktarma", + "Import_Not_Yet_Supported": "İçe aktarma henüz desteklenmiyor", + "Export_Not_Yet_Supported": "Dışa aktarma henüz desteklenmiyor", + "Import_Result_Info": "{total} tariften {imported} tanesi içe aktarıldı", + "Recipes_In_Import": "İçe aktarma dosyanızdaki tarifler", "Toggle": "Değiştir", "Import_Error": "İçeri aktarma sırasında bir hata oluştu. Görüntülemek için lütfen sayfanın altındaki Ayrıntıları genişletin.", "Warning_Delete_Supermarket_Category": "Bir market kategorisinin silinmesi, gıdalarla olan tüm ilişkileri de silecektir. Emin misiniz?", @@ -493,5 +493,79 @@ "base_amount": "Temel Miktar", "Calculator": "Hesap Makinesi", "property_type_fdc_hint": "Yalnızca FDC kimliği olan özellik tipleri FDC veritabanından veri çekebilir", - "Alignment": "Hizalama" + "Alignment": "Hizalama", + "Create Recipe": "Tarif Oluştur", + "kg": "kilogram [kg] (metrik, ağırlık)", + "Use_Plural_Food_Always": "Yiyecek için her zaman çoğul biçimi kullanın", + "created_by": "Oluşturan", + "CustomThemeHelp": "Özel bir CSS dosyası yükleyerek seçilen temanın stillerini geçersiz kılın.", + "CustomLogoHelp": "Tarayıcı sekmesinde ve yüklü web uygulamasında logoyu değiştirmek için farklı boyutlarda kare görseller yükleyin.", + "UnpinnedConfirmation": "{recipe} sabitlemesi kaldırıldı.", + "show_step_ingredients_setting_help": "Tarif adımlarının yanına malzemeler tablosunu ekleyin. Oluşturulma zamanında geçerlidir. Tarif düzenleme görünümünde geçersiz kılınabilir.", + "Split_All_Steps": "Tüm satırları ayrı adımlara bölün.", + "show_step_ingredients_setting": "Tarif Adımlarının Yanında Malzemeleri Göster", + "Space_Cosmetic_Settings": "Bazı kozmetik ayarlar alan yöneticileri tarafından değiştirilebilir ve o alanın istemci ayarlarını geçersiz kılar.", + "plural_short": "çoğul", + "g": "gram [g] (metrik, ağırlık)", + "ml": "mililitre [ml] (metrik, hacim)", + "tsp": "çay kaşığı [tsp] (ABD, hacim)", + "imperial_quart": "imperial quart [imp qt] (Birleşik Krallık, hacim)", + "Choose_Category": "Kategori Seç", + "Use_Plural_Food_Simple": "Yiyecek için çoğul biçimi dinamik olarak kullanın", + "Import Recipe": "Tarif İçe Aktar", + "Use_Plural_Unit_Always": "Birimler için her zaman çoğul biçimi seç", + "plural_usage_info": "Bu alandaki birimler ve yiyecekler için çoğul biçimini kullanın.", + "Transpose_Words": "Devrik Kelimeler", + "Never_Unit": "Asla Birim", + "Property": "Özellik", + "Conversion": "Dönüşüm", + "Original_Text": "Orijinal Metin", + "make_now_count": "En çok eksik malzemeler", + "CustomTheme": "Özel Tema", + "CustomLogos": "Özel Logolar", + "Unpin": "Sabitlemeyi Kaldır", + "Unit_Replace": "Birim Değiştir", + "Property_Editor": "Özellik Editörü", + "pint": "pint [pt] (ABD, hacim)", + "quart": "quart [qt] (ABD, hacim)", + "gallon": "galon [gal] (ABD, hacim)", + "Logo": "Logo", + "Show_Logo": "Logoyu Göster", + "Show_Logo_Help": "Gezinti çubuğunda Tandoor veya alan logosu gösterin.", + "Shopping_input_placeholder": "örn. Patates/100 Patatesler/100 g Patatesler", + "Properties": "Özellikler", + "CustomNavLogoHelp": "Gezinme çubuğu logosu olarak kullanılacak bir resim yükleyin.", + "ShowRecentlyCompleted": "Yakın zamanda tamamlanan öğeleri göster", + "ShoppingBackgroundSyncWarning": "Kötü bağlantı, senkronizasyon bekleniyor...", + "CustomImageHelp": "Alan genel bakışında gösterilecek bir resim yükleyin.", + "OrderInformation": "Nesneler küçükten büyüğe doğru sıralanır.", + "PinnedConfirmation": "{recipe} sabitlendi.", + "show_step_ingredients": "Adımdaki Malzemeleri Göster", + "hide_step_ingredients": "Adımdaki Malzemeleri Gizle", + "Created": "Oluşturuldu", + "Updated": "Güncellendi", + "Unchanged": "Değiştirilmemiş", + "Error": "Hata", + "Nav_Text_Mode": "Gezinme Çubuğu Metin Modu", + "Nav_Text_Mode_Help": "Her tema için farklı davranır.", + "Enable": "Etkinleştir", + "show_ingredients_table": "Adım metninin yanında malzemeler tablosunu görüntüleyin", + "total": "toplam", + "Name_Replace": "İsim Değiştir", + "Food_Replace": "Yiyecek Değiştir", + "DefaultPage": "Varsayılan Sayfa", + "Combine_All_Steps": "Tüm adımları tek bir alanda birleştirin.", + "Plural": "Çoğul", + "ounce": "ons [oz] (ağırlık)", + "pound": "pound (ağırlık)", + "l": "litre [l] (metrik, hacim)", + "fluid_ounce": "sıvı onsu [fl oz] (ABD, hacim)", + "tbsp": "yemek kaşığı [tbsp] (ABD, hacim)", + "imperial_fluid_ounce": "imperial fluid ounce [imp fl oz] (Birleşik Krallık, hacim)", + "imperial_pint": "imperial pint [imp pt] (Birleşik Krallık, hacim)", + "imperial_gallon": "imperial gal [imp gal] (Birleşik Krallık, hacim)", + "imperial_tbsp": "imperial tablespoon [imp tbsp] (Birleşik Krallık, hacim)", + "imperial_tsp": "imperial teaspoon [imp tsp] (Birleşik Krallık, hacim)", + "Back": "Geri", + "Use_Plural_Unit_Simple": "Birim için dinamik olarak çoğul biçimi kullanın" } diff --git a/vue/src/locales/zh_Hant.json b/vue/src/locales/zh_Hant.json index cda8efe3ba..acedc0382b 100644 --- a/vue/src/locales/zh_Hant.json +++ b/vue/src/locales/zh_Hant.json @@ -1,28 +1,28 @@ { - "err_fetching_resource": "", - "err_creating_resource": "", - "err_updating_resource": "", - "err_deleting_resource": "", - "success_fetching_resource": "", - "success_creating_resource": "", - "success_updating_resource": "", - "success_deleting_resource": "", - "import_running": "", - "all_fields_optional": "", - "convert_internal": "", - "show_only_internal": "", - "Log_Recipe_Cooking": "", - "External_Recipe_Image": "", - "Add_to_Shopping": "", - "Add_to_Plan": "", - "Step_start_time": "", - "Sort_by_new": "", - "Recipes_per_page": "", - "Manage_Books": "", - "Meal_Plan": "", - "Select_Book": "", - "Recipe_Image": "", - "Import_finished": "", + "err_fetching_resource": "獲取資源時發生錯誤!", + "err_creating_resource": "創建資源時發生錯誤!", + "err_updating_resource": "更新資源時發生錯誤!", + "err_deleting_resource": "刪除資源時發生錯誤!", + "success_fetching_resource": "成功獲取資源!", + "success_creating_resource": "成功創建資源!", + "success_updating_resource": "成功更新資源!", + "success_deleting_resource": "成功刪除資源!", + "import_running": "正在進行匯入,請稍候!", + "all_fields_optional": "所有欄位都是可選的,可以留空。", + "convert_internal": "轉換為內部食譜", + "show_only_internal": "僅顯示內部食譜", + "Log_Recipe_Cooking": "記錄食譜烹飪", + "External_Recipe_Image": "外部食譜圖片", + "Add_to_Shopping": "加入購物清單", + "Add_to_Plan": "加入計劃", + "Step_start_time": "步驟開始時間", + "Sort_by_new": "按最新排序", + "Recipes_per_page": "每頁食譜", + "Manage_Books": "管理書籍", + "Meal_Plan": "膳食計劃", + "Select_Book": "選擇書籍", + "Recipe_Image": "食譜圖片", + "Import_finished": "匯入完成", "View_Recipes": "", "Log_Cooking": "", "New_Recipe": "", @@ -84,5 +84,28 @@ "Use_Plural_Unit_Simple": "", "Use_Plural_Food_Always": "", "Use_Plural_Food_Simple": "", - "plural_usage_info": "" + "plural_usage_info": "", + "Table_of_Contents": "目錄", + "Select_File": "選擇檔案", + "file_upload_disabled": "您的空間未啟用檔案上傳功能。", + "step_time_minutes": "步驟時間(以分鐘為單位)", + "per_serving": "每份", + "warning_feature_beta": "此功能目前處於測試階段 (BETA)。使用此功能時,請預期可能會有漏洞和破壞性變更,未來可能會丟失與功能相關的數據。", + "err_deleting_protected_resource": "您嘗試刪除的對象仍在使用中,無法刪除。", + "err_moving_resource": "移動資源時發生錯誤!", + "err_merging_resource": "合併資源時發生錯誤!", + "success_moving_resource": "成功移動資源!", + "success_merging_resource": "成功合併資源!", + "show_split_screen": "分割視圖", + "Copy_template_reference": "複製參考模板", + "confirm_delete": "您確定要刪除這個{object}嗎?", + "Save_and_View": "儲存並查看", + "Add_nutrition_recipe": "為食譜添加營養資訊", + "Remove_nutrition_recipe": "從食譜中刪除營養資訊", + "warning_space_delete": "您可以刪除您的空間,包括所有食譜、購物清單、餐飲計畫以及其他您創建的內容。此操作無法撤銷!您確定要這樣做嗎?", + "food_inherit_info": "食物上應該預設繼承的欄位。", + "Hide_as_header": "隱藏為標題", + "err_importing_recipe": "匯入食譜時發生錯誤!", + "recipe_property_info": "您也可以為食材添加屬性,以便根據您的食譜自動計算它們!", + "Show_as_header": "顯示為標題" } diff --git a/vue/src/utils/utils.js b/vue/src/utils/utils.js index 6316d45fe5..b0ed1e9794 100644 --- a/vue/src/utils/utils.js +++ b/vue/src/utils/utils.js @@ -242,17 +242,22 @@ export const ResolveUrlMixin = { } export function resolveDjangoUrl(url, params = null) { + let fun = window.Urls[url]; + if (typeof fun !== 'function') { + console.error(`window.Urls[${url}] is not a function: ${fun}`); + return + } if (params == null) { - return window.Urls[url]() + return fun() } else if (typeof params != "object") { - return window.Urls[url](params) + return fun(params) } else if (typeof params == "object") { if (params.length === 1) { - return window.Urls[url](params) + return fun(params) } else if (params.length === 2) { - return window.Urls[url](params[0], params[1]) + return fun(params[0], params[1]) } else if (params.length === 3) { - return window.Urls[url](params[0], params[1], params[2]) + return fun(params[0], params[1], params[2]) } } } @@ -774,4 +779,4 @@ export const formFunctions = { } return form }, -} \ No newline at end of file +} diff --git a/vue/yarn.lock b/vue/yarn.lock index 663c77a06a..9216792c92 100644 --- a/vue/yarn.lock +++ b/vue/yarn.lock @@ -9136,6 +9136,11 @@ prepend-http@^2.0.0: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== +prettier@^3.2.5: + version "3.2.5" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" + integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== + pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: version "5.6.0" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" @@ -12072,14 +12077,14 @@ write-file-atomic@^2.3.0: signal-exit "^3.0.2" "ws@^5.2.0 || ^6.0.0 || ^7.0.0", ws@^7.3.1: - version "7.5.9" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + version "7.5.10" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== ws@^8.13.0: - version "8.14.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.1.tgz#4b9586b4f70f9e6534c7bb1d3dc0baa8b8cf01e0" - integrity sha512-4OOseMUq8AzRBI/7SLMUwO+FEDnguetSk7KMb1sHwvF2w2Wv5Hoj0nlifx8vtGsftE/jWHojPy8sMMzYLJ2G/A== + version "8.17.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" + integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== xml2js@^0.5.0: version "0.5.0"