From 78686faad35a1b70ee3a0a2115dcb4f450906819 Mon Sep 17 00:00:00 2001 From: Manon Brun Date: Fri, 5 Apr 2024 15:57:09 +0100 Subject: [PATCH 01/49] fix: rounding units --- vue/src/components/PropertyViewComponent.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 @@ From 38b22f3a561c6e947a4844cf244a55c09cdab21c Mon Sep 17 00:00:00 2001 From: smilerz Date: Fri, 5 Apr 2024 08:36:32 -0500 Subject: [PATCH 02/49] setup project level linting with flake8 project level formatting with prettier project level formatting with yapf --- .flake8 | 22 +++++++++++ .vscode/settings.json | 9 ++++- docs/contribute.md | 86 +++++++++++++++++++++++++++++-------------- pyproject.toml | 14 +++++++ requirements.txt | 3 ++ vue/package.json | 6 +++ 6 files changed, 111 insertions(+), 29 deletions(-) create mode 100644 .flake8 create mode 100644 pyproject.toml 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/.vscode/settings.json b/.vscode/settings.json index 1f900399c9..b7c5c054bc 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,5 +3,10 @@ "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", + } +} diff --git a/docs/contribute.md b/docs/contribute.md index 545ded7557..7e5c4eece6 100644 --- a/docs/contribute.md +++ b/docs/contribute.md @@ -1,59 +1,88 @@ 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. +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 +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. +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 + +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 +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. +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. +- `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. + +!!! info linting and formating +This project uses black, flake8, isort, prettier, and ESLint to lint and format the code. In order to submit a PR you must use the +project standard configurations. + + ##### VSCode: + Install the official plugins: black-formatter, flake8, isort + Add the following line to your settings.json: + ``` json + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "[python]": { + "editor.defaultFormatter": "ms-python.black-formatter", + } + ``` + + ##### PyCharm + Add the following line to your settings.json: + ``` json + "[python]": { + "editor.defaultFormatter": "ms-python.flake8", + "editor.formatOnSave": true + }, + ``` ### Django -This application is developed using the Django framework for Python. They have excellent + +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. + 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`. @@ -62,15 +91,17 @@ There is **no** need to set any environment variables. By default, a simple SQLi populated from default values. ### Vue.js -Most new frontend pages are build using [Vue.js](https://vuejs.org/). + +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. +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. @@ -81,6 +112,7 @@ 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. @@ -104,14 +136,14 @@ You can simply register an account and then follow these steps to add translatio 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. +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 -i venv`. Once finished, simply open a PR with the changed files. This sometimes causes issues merging +It is also possible to provide the translations directly by creating a new language +using `manage.py makemessages -l -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/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000000..974b61d901 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,14 @@ +[tool.yapf] +column_limit = 179 +based_on_style = "pep8" +# each_dict_entry_on_separate_line = true +DISABLE_ENDING_COMMA_HEURISTIC = false +COALESCE_BRACKETS = true +DEDENT_CLOSING_BRACKETS = true +FORCE_MULTILINE_DICT = false + +[tool.isort] +multi_line_output = 3 +include_trailing_comma = true +skip = [".gitignore", ".dockerignore"] +line_length = 179 diff --git a/requirements.txt b/requirements.txt index b457d2c464..03574e2118 100644 --- a/requirements.txt +++ b/requirements.txt @@ -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..5615b558d6 100644 --- a/vue/package.json +++ b/vue/package.json @@ -97,5 +97,11 @@ "resolutions": { "@vue/cli-plugin-pwa/workbox-webpack-plugin": "^5.1.3", "coa": "2.0.2" + }, + "prettier": { + "printWidth": 179, + "trailingComma": "es5", + "tabWidth": 2, + "semi": false } } From 99868e4e805db11085f6a0cc7030b616b501bbe3 Mon Sep 17 00:00:00 2001 From: tooboredtocode Date: Mon, 8 Apr 2024 23:56:49 +0200 Subject: [PATCH 03/49] Reapply "Merge pull request #3055 from tooboredtocode/develop" This reverts commit f14acc371d7cf7ac7bcd6c1bd102f7d3c6a6b2b8. --- Dockerfile | 8 ++++++++ boot.sh | 17 +++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3f17d0f118..c5856bcfa5 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 @@ -33,6 +35,12 @@ RUN apk add --no-cache --virtual .build-deps gcc musl-dev postgresql-dev zlib-de #Copy project and execute it. COPY . ./ +# collect the static files +RUN /opt/recipes/venv/bin/python manage.py collectstatic_js_reverse +RUN /opt/recipes/venv/bin/python manage.py collectstatic --noinput +# copy the collected static files to a different location, so they can be moved into a potentially mounted volume +RUN mv /opt/recipes/staticfiles /opt/recipes/staticfiles-collect + # collect information from git repositories RUN /opt/recipes/venv/bin/python version.py # delete git repositories to reduce image size diff --git a/boot.sh b/boot.sh index ae3dbb51d8..ab5d7fdddd 100644 --- a/boot.sh +++ b/boot.sh @@ -67,12 +67,21 @@ echo "Migrating database" python manage.py migrate -echo "Generating static files" +if [[ "${DOCKER}" == "true" ]]; then + echo "Copying cached static files from docker build" -python manage.py collectstatic_js_reverse -python manage.py collectstatic --noinput + mkdir -p /opt/recipes/staticfiles + rm -rf /opt/recipes/staticfiles/* + mv /opt/recipes/staticfiles-collect/* /opt/recipes/staticfiles + rm -rf /opt/recipes/staticfiles-collect +else + echo "Collecting static files, this may take a while..." + + python manage.py collectstatic_js_reverse + python manage.py collectstatic --noinput -echo "Done" + echo "Done" +fi chmod -R 755 /opt/recipes/mediafiles From 42b7d1afcb880e65338370ffce9737302456e08e Mon Sep 17 00:00:00 2001 From: tooboredtocode Date: Mon, 8 Apr 2024 23:58:10 +0200 Subject: [PATCH 04/49] fix: image not working in docker compose environments --- boot.sh | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/boot.sh b/boot.sh index ab5d7fdddd..c14d66aab2 100644 --- a/boot.sh +++ b/boot.sh @@ -68,12 +68,16 @@ echo "Migrating database" python manage.py migrate if [[ "${DOCKER}" == "true" ]]; then - echo "Copying cached static files from docker build" - - mkdir -p /opt/recipes/staticfiles - rm -rf /opt/recipes/staticfiles/* - mv /opt/recipes/staticfiles-collect/* /opt/recipes/staticfiles - rm -rf /opt/recipes/staticfiles-collect + if [[ -d "/opt/recipes/staticfiles-collect" ]]; then + echo "Copying cached static files from docker build" + + mkdir -p /opt/recipes/staticfiles + rm -rf /opt/recipes/staticfiles/* + mv /opt/recipes/staticfiles-collect/* /opt/recipes/staticfiles + rm -rf /opt/recipes/staticfiles-collect + else + echo "Static files are already up to date" + fi else echo "Collecting static files, this may take a while..." From 2e6cc3e58e9d1e107eeda962bf7ea792c8859b23 Mon Sep 17 00:00:00 2001 From: smilerz Date: Mon, 8 Apr 2024 19:16:18 -0500 Subject: [PATCH 05/49] document configurations required for formatting and linting --- .vscode/settings.json | 4 +- docs/contribute.md | 149 ------------------- docs/contribute/assets/flake8_watcher.png | Bin 0 -> 45703 bytes docs/contribute/assets/isort_watcher.png | Bin 0 -> 41279 bytes docs/contribute/assets/linting_error.png | Bin 0 -> 14811 bytes docs/contribute/assets/prettier_watcher.png | Bin 0 -> 41813 bytes docs/contribute/assets/yapf_watcher.png | Bin 0 -> 41470 bytes docs/contribute/contribute.md | 55 +++++++ docs/contribute/documentation.md | 26 ++++ docs/contribute/guidelines.md | 63 ++++++++ docs/contribute/installation.md | 39 +++++ docs/contribute/pycharm.md | 62 ++++++++ docs/contribute/related.md | 25 ++++ docs/contribute/translations.md | 21 +++ docs/contribute/vscode.md | 45 ++++++ docs/system/settings.md | 27 ---- mkdocs.yml | 14 +- pyproject.toml | 4 +- recipes/settings.py | 153 +++++++++++++++----- vue/package.json | 4 +- vue/yarn.lock | 5 + 21 files changed, 476 insertions(+), 220 deletions(-) delete mode 100644 docs/contribute.md create mode 100644 docs/contribute/assets/flake8_watcher.png create mode 100644 docs/contribute/assets/isort_watcher.png create mode 100644 docs/contribute/assets/linting_error.png create mode 100644 docs/contribute/assets/prettier_watcher.png create mode 100644 docs/contribute/assets/yapf_watcher.png create mode 100644 docs/contribute/contribute.md create mode 100644 docs/contribute/documentation.md create mode 100644 docs/contribute/guidelines.md create mode 100644 docs/contribute/installation.md create mode 100644 docs/contribute/pycharm.md create mode 100644 docs/contribute/related.md create mode 100644 docs/contribute/translations.md create mode 100644 docs/contribute/vscode.md delete mode 100644 docs/system/settings.md diff --git a/.vscode/settings.json b/.vscode/settings.json index b7c5c054bc..c3e6602d36 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -8,5 +8,7 @@ "editor.defaultFormatter": "esbenp.prettier-vscode", "[python]": { "editor.defaultFormatter": "eeyore.yapf", - } + }, + "yapf.args": [], + "isort.args": [] } diff --git a/docs/contribute.md b/docs/contribute.md deleted file mode 100644 index 7e5c4eece6..0000000000 --- a/docs/contribute.md +++ /dev/null @@ -1,149 +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. - -!!! info linting and formating -This project uses black, flake8, isort, prettier, and ESLint to lint and format the code. In order to submit a PR you must use the -project standard configurations. - - ##### VSCode: - Install the official plugins: black-formatter, flake8, isort - Add the following line to your settings.json: - ``` json - "editor.formatOnSave": true, - "editor.defaultFormatter": "esbenp.prettier-vscode", - "[python]": { - "editor.defaultFormatter": "ms-python.black-formatter", - } - ``` - - ##### PyCharm - Add the following line to your settings.json: - ``` json - "[python]": { - "editor.defaultFormatter": "ms-python.flake8", - "editor.formatOnSave": true - }, - ``` - -### 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 -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 0000000000000000000000000000000000000000..f5bf77be098c61d05d339d7d7fe9e0775955e6f6 GIT binary patch literal 45703 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 literal 0 HcmV?d00001 diff --git a/docs/contribute/assets/isort_watcher.png b/docs/contribute/assets/isort_watcher.png new file mode 100644 index 0000000000000000000000000000000000000000..eb9c1d787215005091a6eaca906dfef1c1f3d2f7 GIT binary patch literal 41279 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

ohTG9A~v#%_i~z0P+T*G&O;T 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�MOe)!yV?)HnqXqco4 zhz&_pHTNIwK&+^Y9uA4cA3ISpY3H+)q+jn-EKp-qoad($brdF^5NTY}f%k}hJhq!5 zhgu*DQEOs_?IwCh!cfD<tRhd^WMXmY56fWMFpwSCSmNZnoG0wYT>Sf zgT>a;iQNnlx(uUVQe(qkr7vuFjk!oQdo|DcW9MD$$5Xq2cU??7^OfA4%MSj#LNEWB z&<~6_qwsF5ByFa2_Q*m<-_JeAWZ^#X#s<%277NW@DI?2gOm2!<7meD6uSaMU3I)}d z0kC8^KV2e=5r6v6{597_?&9p$5WLr&tTOS=nz9Nam*x^;;jc`s6USw*-!@5GN{5N} zc27h)5x&R;vAncI`I5?95p!CSJ#iJkXn8lwis(Ek4odKko|8SzY_|-UU>%~cBonJ@$iia+WKh%TjTT0cjh1H=1vH@Z8owl zalPsL=~o5+B^BWmcBJju9aDs&uPgo`b}0Lj~VE#aBE@b*OE!e&KZo6o>tv%Hv zU0N#!LXtq2RQP$F`5FQMU`o2u0zd$7r`%OYubQlYZmd25u;4He_`SbB$0;Chs(Oi! zr33=oZtY09Tig58G3Nvl$bqhv{sI153$rC>r~4ptj+O&H8dzp&L@RvRF$M80`|bJd z8{iF*yDK+r#GkO;r-2E-nr`)8^1)RSKrN-2+l|F7_Z#3&;)0*T>~8EqtdOBn;+pn^ z{FX?qCYF9V1(p(hz6qB&C!h=h+(2W){PI!j4S0%&fS4PxDB>x(eJG!ShED%a8Fo{J zZIfmBLoHy|yl|s&KbiXUKcq5wS_B-@-s5eA}a{Pdsd7+FM*=g7L4IB+LyW^vJvqpHHS~7a!@jObC%quVZbsK*`B%H1 z$KyI~Pse=GJe(%O;;fy|p1J)3v6Ob)2lh@(>hPDlrcM%}hk_T=bQV67f5z= z?w*ZFuK_z#lZoNmgkr-_#Hwu9k`VW(R#fj%wTZ`dX77Khga?#|q+#5Ue5IB+0rs*y z0W#}U;WYR-OIx)}a{(Lr0vxD15cT*s3A9hj>*_OI&2=OfvNmmTzCHF4XWa`*j6>ps z5XWR9l-Rp!(M3He^7hkZ+fYSHP1pDQjDHfH*W^S=pyUG1Q<639`gS4bt1R{Rp$zo& zC(3U29@;bRM=p%ff3j(coiPv_NpxnR46CuYu?D2WSto$;aGhIMWW@18n2$vgex&ynbFNO7LPn3M)|)A?4aVr_ zUIg=SvZHrSa+1z3Hyk_rKLL}<+UIc2cMOM1h4>z%GiRj~0?@-R+HB#*k^$3Pz58pV zSb?%LP>t8$Wc%|S+nSb(U|irL_qoFAZKIZa%O*dQ^OK2I+Q8(&W`>qxpBdz#TT@@M zBK7>%*Ak=tzyj>&`nBa>unAIxW!+gHSg6tCct>O`a`*BE+Pf2ZI2ySYkm=^=daP2@ z!fLU+x0tm0eZSf@5+0!ac539Utq^wOR=m9{LVd>jaE3WGzUs|tUb5wgAwJlbHk@-n zvOgwUeFt8g5OJYs3@J2h?!Mg?k2~V9Ia-zalHF-G|ECfHE}fs~)E1ZPZ&6_*YrTLqYC4Ga`IE1Z^);d?r}o^uY6 zVXyg7t77BUeVc~#NKBCTh?A!q1QZ68czA~ATre#Jj)X$xR`$(w5(^5|7M}TCnFfjZ zPWVZ1EwbnJ*!U|B0ey5Ifw*U@IeWF4U<=oX^?SALN;AYTm^n5*_T$ZaLBmF#z;h0z zP9a#F1;g2g9>-jR-toLz>03OF>QJ4CNCoxU=4LX37IUx`b1nHe4`_nPrkc<#&67Fi z?5)$mP789m54=D{%5(62rc_9{?y3QTXo>?EJx^l;u;0iV-;Vd7S5cS zCtXHPD_aHp9XuPj6-R}B_HvMO%~k^4zSp=28jGYzLRUj2%!woGjM&Yib2ouD zR6sdupnU_pxh1I+Ci;2%#rHX~o;&bXdxgyLF0ZvBpBtOBV?ea=c?wV24b~aL`FJ2e zLgeys%ii-vGn>kveO3T`7P0c{K5h|d`CeYXBJnwdE3F|Q0W^8do;CU5;{dTt{XDA1 zIR_~^#bb(!4|fkw7t?AK3;_CQJvy`~&H4nkFf~DdfGu&=%&3DcljDkaiZzSJTE5Bx zb7KrlzrwsGB(~$cey)B{{PugZ%N_L_7y*rhAmxNjvx;OHt#Ri0g^fbRP|y|E-HUM> z4Ls?k|5V6mJ9pR0A0Luh@%C#OH^35^^SZb4*ohSJKy4^-+lIBwAt{YGqST)13cnWF zV<00y0`83*0dt32uW1t{W~=Dz`d?4M_ssuLWf5n-@YByF10iS@96WbCJFcBJi5Gs}4rtbk-{=b5v z!fp`bI0Ew9jGEZ7Ye0P**h*nx=Y#6yQM-OCxvt3?%$=No!PmqM>TDD7K=c4U9Eo2b z#AqvgwwTn!%h6-bOS?rYZa^_K(i*p9l~`E>5h8$)L5nL^z@Cw_`89-;fY}?=xL4d3 zA#4j1+Q(Ptgx0GCw18fZhfG�vzRRq((G3#GYpj*&dUk3mE7IfK``C+crjkgtl0S ztnL4`U&%SL3O|>z1AYnz5dtaU5v5GdKLqr#3d~*6Jl#r`oEPD4c#d*THXstXu>nMN zh=vC$g6XH|G*~jY*c5gm}2?Vq)K%@FK;bbBvmY^1siyQ z_cFo$!TGT#@j*lYPRX>RWY`i;jZoL|qw|ijjDXg&wZ^~9(7K;Z7Bc|^S>RBPN1*Jl zrOiKSMJ#w~JS{$UKq}VEsUa_Yuv)OB_xmP!aU*s!InZLlA{6gfH(Pcv>+uy=Iq;Vj z{^kYSuS!RQc&ylaw{AP8QM(k4x8bLQ&4otExj6^LgXhM_%b&UG56`nmmi_7;n#z$S zY~I|OZ$0^`6F)g%PN23ll>*j$(?sZYG1)B!B- zwi3%s{G=2aJdpjV@+0k(`FCK)D2zliWZ($vY#)TMW~z9u`w^4`Ph%gXI?p1{x_h7J z$jSYLX!2JYfA0iVcfyvktKkI60|qN{j3@?-Di2Ub{8~ zfHMb|v7kuHhKb8KF7(-&W&=_8un9vwKEJ4!F<5eu{KJ~f(=AEN&i+FuAna5&@aA=w zGOw>dbWXSl0M%S#*fz?iId~8a=)N8CGu!6HSK0=L6f(?fcH|-Zk{aiWwc%>v_?Wv= zA=UZ=73oWyb%eZe^DH!^zhXh`9yrP`ZaYF#;T!Y_)g|tS_9_Hrhjer#a2q2*MY8J|DF`e|(``pF*cqgKz-l(>?A z2opy`f{k9_Y*&9C)CVE7z-+CTU8_ADk1?J;MhTYQ8bmrQgEjQ%?>n=qKt0~ARp{53 z{ub{J+d_Fq6|>HhM>#BXim9wkZ$YQ8b<4Ti3qctmy=$x>*#zgp$5L7zK=6>EtV8cE zWOZ`I*m~>)J}6RNU@%ziHFe1r25QSlBFopzFiXNfWlMMG{pzfIv6F`TlYd^{f#T&X zbmG%)fiqAi_V%PB{Estabe7d7?eo_h7@&8JzXQ1EroQ*0&laosDJz^oTPnLY%)%gTe8wny<8FfNZI z7HCXW6EL&2uhFPCGW*wI>64_HFVP^QT4?e?^f5TE!a=~^NnD!#FA>6ECsepH;1+i4 zP6f=EtxOGPF8pd2e?D2uwp!?X@tKU@5nrE04TSaIo-$HD;nN%0AMbFx5~ENBneaj9 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 SyLK#Amd8_ literal 0 HcmV?d00001 diff --git a/docs/contribute/assets/yapf_watcher.png b/docs/contribute/assets/yapf_watcher.png new file mode 100644 index 0000000000000000000000000000000000000000..9ddd968cdea376e2e36e216c98e8b889c193618b GIT binary patch literal 41470 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℘Xe--L?C_Pn5*)Wp$ss*|b~70;qJj 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 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) + + +!!! 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 -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 + + +!!! 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/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 index 974b61d901..33bc62172b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,14 +1,12 @@ [tool.yapf] column_limit = 179 based_on_style = "pep8" -# each_dict_entry_on_separate_line = true DISABLE_ENDING_COMMA_HEURISTIC = false COALESCE_BRACKETS = true DEDENT_CLOSING_BRACKETS = true FORCE_MULTILINE_DICT = false [tool.isort] -multi_line_output = 3 -include_trailing_comma = true +multi_line_output = 5 skip = [".gitignore", ".dockerignore"] line_length = 179 diff --git a/recipes/settings.py b/recipes/settings.py index 268c8f68b3..d9b2b6b249 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/vue/package.json b/vue/package.json index 5615b558d6..10a8e23c89 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", @@ -102,6 +103,7 @@ "printWidth": 179, "trailingComma": "es5", "tabWidth": 2, - "semi": false + "semi": false, + "experimentalTernaries": true } } diff --git a/vue/yarn.lock b/vue/yarn.lock index 663c77a06a..eed173f13c 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" From ca5fda7927ff2d71b07043790c194345fde99a8e Mon Sep 17 00:00:00 2001 From: vabene1111 Date: Wed, 10 Apr 2024 20:04:17 +0200 Subject: [PATCH 06/49] added property type delete admin --- cookbook/admin.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/cookbook/admin.py b/cookbook/admin.py index 402d6f3f42..88a1cd79ae 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 f"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) From c33c4ed79b47d5fe65cf5438bbf1d028ebdbeecc Mon Sep 17 00:00:00 2001 From: smilerz Date: Thu, 11 Apr 2024 07:27:22 -0500 Subject: [PATCH 07/49] moved prettier configuration to .prettierrc --- .gitignore | 28 ++++++++++++---------------- .prettierignore | 13 +++++++++++++ .prettierrc | 7 +++++++ vue/package.json | 7 ------- 4 files changed, 32 insertions(+), 23 deletions(-) create mode 100644 .prettierignore create mode 100644 .prettierrc 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/.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/vue/package.json b/vue/package.json index 10a8e23c89..98d8f337b7 100644 --- a/vue/package.json +++ b/vue/package.json @@ -98,12 +98,5 @@ "resolutions": { "@vue/cli-plugin-pwa/workbox-webpack-plugin": "^5.1.3", "coa": "2.0.2" - }, - "prettier": { - "printWidth": 179, - "trailingComma": "es5", - "tabWidth": 2, - "semi": false, - "experimentalTernaries": true } } From 714242b6dfbe4cb2c659e5904344913d77534121 Mon Sep 17 00:00:00 2001 From: smilerz Date: Thu, 11 Apr 2024 17:36:24 -0500 Subject: [PATCH 08/49] tests for pk only nested serializer --- .../tests/other/test_nested_serializer.py | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 cookbook/tests/other/test_nested_serializer.py diff --git a/cookbook/tests/other/test_nested_serializer.py b/cookbook/tests/other/test_nested_serializer.py new file mode 100644 index 0000000000..9623551cc5 --- /dev/null +++ b/cookbook/tests/other/test_nested_serializer.py @@ -0,0 +1,69 @@ +import json + +import pytest +from django.urls import reverse +from django_scopes import scopes_disabled +from pytest_factoryboy import LazyFixture, register + +from cookbook.tests.factories import FoodFactory, KeywordFactory, UnitFactory + +RECIPE_URL = 'api:recipe-detail' +FOOD_URL = 'api:food-detail' + +register(FoodFactory, 'food_1', space=LazyFixture('space_1')) +register(FoodFactory, 'food_2', space=LazyFixture('space_1')) +register(KeywordFactory, 'keyword_1', space=LazyFixture('space_1')) +register(KeywordFactory, 'keyword_2', space=LazyFixture('space_1')) +register(UnitFactory, 'unit_1', space=LazyFixture('space_1')) + + +@pytest.mark.parametrize("arg", ['dict', 'pk']) +def test_unnested_serializer__single(arg, recipe_1_s1, food_1, u1_s1): + if arg == 'dict': + recipe = {'id': recipe_1_s1.id, 'name': recipe_1_s1.name, } + elif arg == 'pk': + recipe = recipe_1_s1.id + r = u1_s1.patch(reverse(FOOD_URL, args={food_1.id}), {'name': food_1.name, 'recipe': recipe}, content_type='application/json') + assert r.status_code == 200 + assert json.loads(r.content)['recipe']['id'] == recipe_1_s1.id + + +def test_nested_serializer_many(recipe_1_s1, food_1, food_2, keyword_1, keyword_2, unit_1, u1_s1): + with scopes_disabled(): + assert food_1 not in [i.food for i in recipe_1_s1.steps.all()[0].ingredients.all()] + assert food_2 not in [i.food for i in recipe_1_s1.steps.all()[0].ingredients.all()] + assert keyword_1 not in recipe_1_s1.keywords.all() + assert keyword_2 not in recipe_1_s1.keywords.all() + r = u1_s1.patch(reverse(RECIPE_URL, args={recipe_1_s1.id}), { + 'name': + recipe_1_s1.name, + 'steps': [{ + 'ingredients': [{ + 'amount': 1, + 'unit': { + 'id': unit_1.id, + 'name': unit_1.name + }, + 'food': { + 'id': food_1.id, + 'name': food_1.name + } + }, { + 'amount': 1, + 'unit': unit_1.id, + 'food': food_2.id + }] + }], + 'keywords': [{ + 'id': keyword_1.id, + 'name': keyword_1.name + }, keyword_2.id] + }, + content_type='application/json') + assert r.status_code == 200 + with scopes_disabled(): + # recipe_1_s1 = Recipe.objects.get(id=recipe_1_s1.id) + assert food_1 in [i.food for i in recipe_1_s1.steps.all()[0].ingredients.all()] + assert food_2 in [i.food for i in recipe_1_s1.steps.all()[0].ingredients.all()] + assert keyword_1 in recipe_1_s1.keywords.all() + assert keyword_2 in recipe_1_s1.keywords.all() From cc24964368ff2401e5b04218fed560172876da3b Mon Sep 17 00:00:00 2001 From: smilerz Date: Thu, 11 Apr 2024 18:24:44 -0500 Subject: [PATCH 09/49] Revert "moved prettier configuration to .prettierrc" This reverts commit c33c4ed79b47d5fe65cf5438bbf1d028ebdbeecc. --- .gitignore | 28 ++++++++++++++++------------ .prettierignore | 13 ------------- .prettierrc | 7 ------- vue/package.json | 7 +++++++ 4 files changed, 23 insertions(+), 32 deletions(-) delete mode 100644 .prettierignore delete mode 100644 .prettierrc diff --git a/.gitignore b/.gitignore index c4d38e4181..143271c6c6 100644 --- a/.gitignore +++ b/.gitignore @@ -47,11 +47,6 @@ docs/reports/** # Django stuff: *.log -mediafiles/ -*.sqlite3* -staticfiles/ -postgresql/ -data/ # Sphinx documentation docs/_build/ @@ -64,23 +59,32 @@ 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 -vue3/node_modules +vetur.config.js +cookbook/static/vue +vue/webpack-stats.json cookbook/templates/sw.js +.prettierignore vue/.yarn vue3/.vite - -# Configs -vetur.config.js -venv/ +vue3/node_modules diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index aea0c3a512..0000000000 --- a/.prettierignore +++ /dev/null @@ -1,13 +0,0 @@ -# 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 deleted file mode 100644 index 956e17f3cc..0000000000 --- a/.prettierrc +++ /dev/null @@ -1,7 +0,0 @@ -{ - "printWidth": 179, - "trailingComma": "es5", - "tabWidth": 2, - "semi": false, - "experimentalTernaries": true -} diff --git a/vue/package.json b/vue/package.json index 98d8f337b7..10a8e23c89 100644 --- a/vue/package.json +++ b/vue/package.json @@ -98,5 +98,12 @@ "resolutions": { "@vue/cli-plugin-pwa/workbox-webpack-plugin": "^5.1.3", "coa": "2.0.2" + }, + "prettier": { + "printWidth": 179, + "trailingComma": "es5", + "tabWidth": 2, + "semi": false, + "experimentalTernaries": true } } From 6cb68612288a778b753841b647719d30947af8fd Mon Sep 17 00:00:00 2001 From: smilerz Date: Fri, 12 Apr 2024 07:02:42 -0500 Subject: [PATCH 10/49] Revert "Revert "moved prettier configuration to .prettierrc"" This reverts commit cc24964368ff2401e5b04218fed560172876da3b. --- .gitignore | 28 ++++++++++++---------------- .prettierignore | 13 +++++++++++++ .prettierrc | 7 +++++++ vue/package.json | 7 ------- 4 files changed, 32 insertions(+), 23 deletions(-) create mode 100644 .prettierignore create mode 100644 .prettierrc 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/.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/vue/package.json b/vue/package.json index 10a8e23c89..98d8f337b7 100644 --- a/vue/package.json +++ b/vue/package.json @@ -98,12 +98,5 @@ "resolutions": { "@vue/cli-plugin-pwa/workbox-webpack-plugin": "^5.1.3", "coa": "2.0.2" - }, - "prettier": { - "printWidth": 179, - "trailingComma": "es5", - "tabWidth": 2, - "semi": false, - "experimentalTernaries": true } } From 975ad34672fe6c9fa84c9e67a0b95dcf8abe09cc Mon Sep 17 00:00:00 2001 From: smilerz Date: Fri, 12 Apr 2024 07:02:57 -0500 Subject: [PATCH 11/49] Revert "tests for pk only nested serializer" This reverts commit 714242b6dfbe4cb2c659e5904344913d77534121. --- .../tests/other/test_nested_serializer.py | 69 ------------------- 1 file changed, 69 deletions(-) delete mode 100644 cookbook/tests/other/test_nested_serializer.py diff --git a/cookbook/tests/other/test_nested_serializer.py b/cookbook/tests/other/test_nested_serializer.py deleted file mode 100644 index 9623551cc5..0000000000 --- a/cookbook/tests/other/test_nested_serializer.py +++ /dev/null @@ -1,69 +0,0 @@ -import json - -import pytest -from django.urls import reverse -from django_scopes import scopes_disabled -from pytest_factoryboy import LazyFixture, register - -from cookbook.tests.factories import FoodFactory, KeywordFactory, UnitFactory - -RECIPE_URL = 'api:recipe-detail' -FOOD_URL = 'api:food-detail' - -register(FoodFactory, 'food_1', space=LazyFixture('space_1')) -register(FoodFactory, 'food_2', space=LazyFixture('space_1')) -register(KeywordFactory, 'keyword_1', space=LazyFixture('space_1')) -register(KeywordFactory, 'keyword_2', space=LazyFixture('space_1')) -register(UnitFactory, 'unit_1', space=LazyFixture('space_1')) - - -@pytest.mark.parametrize("arg", ['dict', 'pk']) -def test_unnested_serializer__single(arg, recipe_1_s1, food_1, u1_s1): - if arg == 'dict': - recipe = {'id': recipe_1_s1.id, 'name': recipe_1_s1.name, } - elif arg == 'pk': - recipe = recipe_1_s1.id - r = u1_s1.patch(reverse(FOOD_URL, args={food_1.id}), {'name': food_1.name, 'recipe': recipe}, content_type='application/json') - assert r.status_code == 200 - assert json.loads(r.content)['recipe']['id'] == recipe_1_s1.id - - -def test_nested_serializer_many(recipe_1_s1, food_1, food_2, keyword_1, keyword_2, unit_1, u1_s1): - with scopes_disabled(): - assert food_1 not in [i.food for i in recipe_1_s1.steps.all()[0].ingredients.all()] - assert food_2 not in [i.food for i in recipe_1_s1.steps.all()[0].ingredients.all()] - assert keyword_1 not in recipe_1_s1.keywords.all() - assert keyword_2 not in recipe_1_s1.keywords.all() - r = u1_s1.patch(reverse(RECIPE_URL, args={recipe_1_s1.id}), { - 'name': - recipe_1_s1.name, - 'steps': [{ - 'ingredients': [{ - 'amount': 1, - 'unit': { - 'id': unit_1.id, - 'name': unit_1.name - }, - 'food': { - 'id': food_1.id, - 'name': food_1.name - } - }, { - 'amount': 1, - 'unit': unit_1.id, - 'food': food_2.id - }] - }], - 'keywords': [{ - 'id': keyword_1.id, - 'name': keyword_1.name - }, keyword_2.id] - }, - content_type='application/json') - assert r.status_code == 200 - with scopes_disabled(): - # recipe_1_s1 = Recipe.objects.get(id=recipe_1_s1.id) - assert food_1 in [i.food for i in recipe_1_s1.steps.all()[0].ingredients.all()] - assert food_2 in [i.food for i in recipe_1_s1.steps.all()[0].ingredients.all()] - assert keyword_1 in recipe_1_s1.keywords.all() - assert keyword_2 in recipe_1_s1.keywords.all() From ab9ea87549cede11d6adb284ca01aa721ef9f10a Mon Sep 17 00:00:00 2001 From: smilerz Date: Thu, 11 Apr 2024 18:38:51 -0500 Subject: [PATCH 12/49] upgrade recipe-scrapers --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 03574e2118..a22048a424 100644 --- a/requirements.txt +++ b/requirements.txt @@ -30,7 +30,7 @@ Jinja2==3.1.3 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-rc2 django-scopes==2.0.0 django-treebeard==4.7 django-cors-headers==4.3.1 From 7133249f4b5a7934c6ccf35e2510f8e263a88086 Mon Sep 17 00:00:00 2001 From: smilerz Date: Fri, 12 Apr 2024 08:11:02 -0500 Subject: [PATCH 13/49] update recipe_scrapers to use scrape_html scrape_me has been deprecated --- cookbook/helper/scrapers/scrapers.py | 2 +- cookbook/views/api.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) 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/views/api.py b/cookbook/views/api.py index a0ceada127..f890caeaa9 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 @@ -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: From 1700b9c5313df4f9b53cd11a8396cba00d8cc1de Mon Sep 17 00:00:00 2001 From: smilerz Date: Fri, 12 Apr 2024 09:20:56 -0500 Subject: [PATCH 14/49] change test_automations to use scrape_html remove reliance on custom text_scraper class changed url on test case to generic wildmode vs specific site --- cookbook/helper/recipe_url_import.py | 63 +++++++++++++----------- cookbook/tests/other/test_automations.py | 46 +++++++++-------- 2 files changed, 59 insertions(+), 50 deletions(-) diff --git a/cookbook/helper/recipe_url_import.py b/cookbook/helper/recipe_url_import.py index aa0bb2d87d..eca6813aaf 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: @@ -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/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) From 371d8a76b8e8d0c1618ebc70a9f7786e284507f0 Mon Sep 17 00:00:00 2001 From: vabene1111 Date: Sun, 14 Apr 2024 18:58:52 +0200 Subject: [PATCH 15/49] added flake8 watcher --- .idea/watcherTasks.xml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .idea/watcherTasks.xml diff --git a/.idea/watcherTasks.xml b/.idea/watcherTasks.xml new file mode 100644 index 0000000000..0976eb2bc9 --- /dev/null +++ b/.idea/watcherTasks.xml @@ -0,0 +1,31 @@ + + + + + + + + \ No newline at end of file From 7ce2c042c3196259fa69396f042c31412ceddf10 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 Apr 2024 02:51:06 +0000 Subject: [PATCH 16/49] Bump gunicorn from 21.2.0 to 22.0.0 Bumps [gunicorn](https://github.com/benoitc/gunicorn) from 21.2.0 to 22.0.0. - [Release notes](https://github.com/benoitc/gunicorn/releases) - [Commits](https://github.com/benoitc/gunicorn/compare/21.2.0...22.0.0) --- updated-dependencies: - dependency-name: gunicorn dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index a22048a424..44b6689194 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,7 +10,7 @@ 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 From fce57f7f0315adf64c6db97bec0c291846fca131 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Apr 2024 16:18:46 +0000 Subject: [PATCH 17/49] Bump aiohttp from 3.9.3 to 3.9.4 Bumps [aiohttp](https://github.com/aio-libs/aiohttp) from 3.9.3 to 3.9.4. - [Release notes](https://github.com/aio-libs/aiohttp/releases) - [Changelog](https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst) - [Commits](https://github.com/aio-libs/aiohttp/compare/v3.9.3...v3.9.4) --- updated-dependencies: - dependency-name: aiohttp dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 44b6689194..51189602f6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -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 From 52d8e8d9ba43e6b53ceea291c04a14ad79bdd536 Mon Sep 17 00:00:00 2001 From: ellezhu1 Date: Sun, 21 Apr 2024 06:09:55 +0000 Subject: [PATCH 18/49] issue2982 - plantToEat --- .gitignore | 18 ++++++++++++++++++ cookbook/integration/plantoeat.py | 31 +++++++++++++++++++------------ 2 files changed, 37 insertions(+), 12 deletions(-) diff --git a/.gitignore b/.gitignore index 143271c6c6..f4aba1c5b8 100644 --- a/.gitignore +++ b/.gitignore @@ -88,3 +88,21 @@ cookbook/templates/sw.js vue/.yarn vue3/.vite vue3/node_modules +cookbook/integration/plantoeat_test.txt +cookbook/integration/crouton-sampl.zip +cookbook/integration/crouton-sampl/Chocolate Caramel Tart.crumb +cookbook/integration/crouton-sampl/Japanese Strawberry Shortcake.crumb +cookbook/integration/crouton-sampl/Mango Pudding.crumb +cookbook/integration/crouton-sampl/Matcha Lava Cake.crumb +cookbook/integration/crouton-sampl/Peppermint Hot Chocolate Recipe.crumb +cookbook/integration/crouton-sampl/Purin (Japanese Creme Caramel).crumb +cookbook/integration/crouton-sampl/Strawberry Bingsu Recipe.crumb +cookbook/integration/crouton-sampl/Ube Basque Cheesecake.crumb +cookbook/integration/crouton-sampl/__MACOSX/._Chocolate Caramel Tart.crumb +cookbook/integration/crouton-sampl/__MACOSX/._Japanese Strawberry Shortcake.crumb +cookbook/integration/crouton-sampl/__MACOSX/._Mango Pudding.crumb +cookbook/integration/crouton-sampl/__MACOSX/._Matcha Lava Cake.crumb +cookbook/integration/crouton-sampl/__MACOSX/._Peppermint Hot Chocolate Recipe.crumb +cookbook/integration/crouton-sampl/__MACOSX/._Purin (Japanese Creme Caramel).crumb +cookbook/integration/crouton-sampl/__MACOSX/._Strawberry Bingsu Recipe.crumb +cookbook/integration/crouton-sampl/__MACOSX/._Ube Basque Cheesecake.crumb 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, From 7ea95923984d1e2f15a5e520ea60d5902e056e81 Mon Sep 17 00:00:00 2001 From: ellezhu1 Date: Sun, 21 Apr 2024 06:25:02 +0000 Subject: [PATCH 19/49] tested --- .gitignore | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/.gitignore b/.gitignore index f4aba1c5b8..143271c6c6 100644 --- a/.gitignore +++ b/.gitignore @@ -88,21 +88,3 @@ cookbook/templates/sw.js vue/.yarn vue3/.vite vue3/node_modules -cookbook/integration/plantoeat_test.txt -cookbook/integration/crouton-sampl.zip -cookbook/integration/crouton-sampl/Chocolate Caramel Tart.crumb -cookbook/integration/crouton-sampl/Japanese Strawberry Shortcake.crumb -cookbook/integration/crouton-sampl/Mango Pudding.crumb -cookbook/integration/crouton-sampl/Matcha Lava Cake.crumb -cookbook/integration/crouton-sampl/Peppermint Hot Chocolate Recipe.crumb -cookbook/integration/crouton-sampl/Purin (Japanese Creme Caramel).crumb -cookbook/integration/crouton-sampl/Strawberry Bingsu Recipe.crumb -cookbook/integration/crouton-sampl/Ube Basque Cheesecake.crumb -cookbook/integration/crouton-sampl/__MACOSX/._Chocolate Caramel Tart.crumb -cookbook/integration/crouton-sampl/__MACOSX/._Japanese Strawberry Shortcake.crumb -cookbook/integration/crouton-sampl/__MACOSX/._Mango Pudding.crumb -cookbook/integration/crouton-sampl/__MACOSX/._Matcha Lava Cake.crumb -cookbook/integration/crouton-sampl/__MACOSX/._Peppermint Hot Chocolate Recipe.crumb -cookbook/integration/crouton-sampl/__MACOSX/._Purin (Japanese Creme Caramel).crumb -cookbook/integration/crouton-sampl/__MACOSX/._Strawberry Bingsu Recipe.crumb -cookbook/integration/crouton-sampl/__MACOSX/._Ube Basque Cheesecake.crumb From 68e6ab4be5f7992de6438a6f0693228e23e20cb7 Mon Sep 17 00:00:00 2001 From: ellezhu1 Date: Sun, 21 Apr 2024 08:31:29 +0000 Subject: [PATCH 20/49] get step name --- cookbook/integration/nextcloud_cookbook.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cookbook/integration/nextcloud_cookbook.py b/cookbook/integration/nextcloud_cookbook.py index 4357c509b7..303e408550 100644 --- a/cookbook/integration/nextcloud_cookbook.py +++ b/cookbook/integration/nextcloud_cookbook.py @@ -60,6 +60,11 @@ 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, ) + step.name = re.search(r'(\w+):\\n', s) + + + + if not ingredients_added: if len(recipe_json['description'].strip()) > 500: step.instruction = recipe_json['description'].strip() + '\n\n' + step.instruction From d81e7f6c2b8bf5694ba75bb5b5b1023df4c7cc1d Mon Sep 17 00:00:00 2001 From: ellezhu1 Date: Sun, 21 Apr 2024 11:28:51 +0000 Subject: [PATCH 21/49] remove ##ingredients --- cookbook/integration/nextcloud_cookbook.py | 26 ++++++++-------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/cookbook/integration/nextcloud_cookbook.py b/cookbook/integration/nextcloud_cookbook.py index 303e408550..c065ed7c31 100644 --- a/cookbook/integration/nextcloud_cookbook.py +++ b/cookbook/integration/nextcloud_cookbook.py @@ -60,25 +60,17 @@ 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, ) - step.name = re.search(r'(\w+):\\n', s) - - - - 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.find('##') == -1: + 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: From 4933726b79395c415fd7c71af5bcc7bd4d24eb1b Mon Sep 17 00:00:00 2001 From: ellezhu1 Date: Sun, 21 Apr 2024 21:23:40 +0000 Subject: [PATCH 22/49] made some changes --- cookbook/integration/nextcloud_cookbook.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cookbook/integration/nextcloud_cookbook.py b/cookbook/integration/nextcloud_cookbook.py index c065ed7c31..1520e9014a 100644 --- a/cookbook/integration/nextcloud_cookbook.py +++ b/cookbook/integration/nextcloud_cookbook.py @@ -65,7 +65,10 @@ def get_recipe_from_file(self, file): if ingredients_added == False: for ingredient in recipe_json['recipeIngredient']: ingredients_added = True - if ingredient.find('##') == -1: + 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) From 771375b40b39e3aac6217548e52842c44bcabee2 Mon Sep 17 00:00:00 2001 From: vabene1111 Date: Sat, 27 Apr 2024 09:28:19 +0200 Subject: [PATCH 23/49] added missing doctype attribute --- cookbook/templates/base.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 %} From 1d58f318caac06fab06d3290d507a3b2e06e3cb2 Mon Sep 17 00:00:00 2001 From: smilerz <smilerz@gmail.com> Date: Tue, 30 Apr 2024 07:21:30 -0500 Subject: [PATCH 24/49] removing pre-cached staticfiles from Docker & boot.sh --- Dockerfile | 6 ------ boot.sh | 21 ++++----------------- 2 files changed, 4 insertions(+), 23 deletions(-) diff --git a/Dockerfile b/Dockerfile index c5856bcfa5..4b52f246da 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,12 +35,6 @@ RUN apk add --no-cache --virtual .build-deps gcc musl-dev postgresql-dev zlib-de #Copy project and execute it. COPY . ./ -# collect the static files -RUN /opt/recipes/venv/bin/python manage.py collectstatic_js_reverse -RUN /opt/recipes/venv/bin/python manage.py collectstatic --noinput -# copy the collected static files to a different location, so they can be moved into a potentially mounted volume -RUN mv /opt/recipes/staticfiles /opt/recipes/staticfiles-collect - # collect information from git repositories RUN /opt/recipes/venv/bin/python version.py # delete git repositories to reduce image size diff --git a/boot.sh b/boot.sh index c14d66aab2..9f70a535c3 100644 --- a/boot.sh +++ b/boot.sh @@ -67,25 +67,12 @@ echo "Migrating database" python manage.py migrate -if [[ "${DOCKER}" == "true" ]]; then - if [[ -d "/opt/recipes/staticfiles-collect" ]]; then - echo "Copying cached static files from docker build" - - mkdir -p /opt/recipes/staticfiles - rm -rf /opt/recipes/staticfiles/* - mv /opt/recipes/staticfiles-collect/* /opt/recipes/staticfiles - rm -rf /opt/recipes/staticfiles-collect - else - echo "Static files are already up to date" - fi -else - echo "Collecting static files, this may take a while..." +echo "Collecting static files, this may take a while..." - python manage.py collectstatic_js_reverse - python manage.py collectstatic --noinput +python manage.py collectstatic_js_reverse +python manage.py collectstatic --noinput - echo "Done" -fi +echo "Done" chmod -R 755 /opt/recipes/mediafiles From 353b2d6d21eacf704b25b56c829addf549399f44 Mon Sep 17 00:00:00 2001 From: Fymyte <pierguill+translate.tandoor.dev@gmail.com> Date: Tue, 30 Apr 2024 13:31:27 +0000 Subject: [PATCH 25/49] Translated using Weblate (French) Currently translated at 96.8% (551 of 569 strings) Translation: Tandoor/Recipes Frontend Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fr/ --- vue/src/locales/fr.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/vue/src/locales/fr.json b/vue/src/locales/fr.json index 90370360c7..da3e528df1 100644 --- a/vue/src/locales/fr.json +++ b/vue/src/locales/fr.json @@ -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" } From 4b551c595a6de3f433f598bda72bfe11b495d268 Mon Sep 17 00:00:00 2001 From: vabene1111 <vabene1234@googlemail.com> Date: Wed, 1 May 2024 13:45:12 +0200 Subject: [PATCH 26/49] MealPlan from/to date to datetime, added time to MealType --- ...alplan_from_date_alter_mealplan_to_date.py | 46 +++++++++++++++++++ cookbook/models.py | 6 +-- cookbook/serializer.py | 4 +- 3 files changed, 51 insertions(+), 5 deletions(-) create mode 100644 cookbook/migrations/0218_alter_mealplan_from_date_alter_mealplan_to_date.py 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) From 7e7657e444a94fe43d48c9cf842eda39ba770424 Mon Sep 17 00:00:00 2001 From: Brian Hagerty <b_hagerty@yahoo.com> Date: Sat, 4 May 2024 11:00:08 -0500 Subject: [PATCH 27/49] Remove obsolete "version: 3" to eliminate warning message The "version: 3" entry is obsolete and throws a warning: 'version' is obsolete. AFAIK, there's no reason to keep it. There's a lengthy discussion of this issue in a different repo: https://github.com/jasonacox/Powerwall-Dashboard/issues/453 They got rid of "version" in that project. It seems like it should be removed here too. --- docs/install/docker/plain/docker-compose.yml | 1 - 1 file changed, 1 deletion(-) 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 From d976fafd4514e25f409c0301cb40c629bd958f62 Mon Sep 17 00:00:00 2001 From: Carsten Docktor <carsten.docktor@gmail.com> Date: Sat, 4 May 2024 10:03:34 +0000 Subject: [PATCH 28/49] Translated using Weblate (German) Currently translated at 95.6% (464 of 485 strings) Translation: Tandoor/Recipes Backend Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/de/ --- cookbook/locale/de/LC_MESSAGES/django.po | 71 ++++++++++-------------- 1 file changed, 28 insertions(+), 43 deletions(-) diff --git a/cookbook/locale/de/LC_MESSAGES/django.po b/cookbook/locale/de/LC_MESSAGES/django.po index 24b567ce11..5b88498ee1 100644 --- a/cookbook/locale/de/LC_MESSAGES/django.po +++ b/cookbook/locale/de/LC_MESSAGES/django.po @@ -15,10 +15,10 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-21 14:39+0100\n" -"PO-Revision-Date: 2024-03-19 23:47+0000\n" -"Last-Translator: Johannes Jandke <johannesjandke@gmail.com>\n" -"Language-Team: German <http://translate.tandoor.dev/projects/tandoor/recipes-" -"backend/de/>\n" +"PO-Revision-Date: 2024-05-04 19:10+0000\n" +"Last-Translator: Carsten Docktor <carsten.docktor@gmail.com>\n" +"Language-Team: German <http://translate.tandoor.dev/projects/tandoor/" +"recipes-backend/de/>\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -432,10 +432,8 @@ 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 @@ -556,10 +554,8 @@ msgid "Transpose Words" msgstr "" #: .\cookbook\models.py:1474 -#, fuzzy -#| msgid "Food Alias" msgid "Food Replace" -msgstr "Lebensmittel Alias" +msgstr "Lebensmittelersatz" #: .\cookbook\models.py:1475 #, fuzzy @@ -1029,13 +1025,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 +1049,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 +1511,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 +1959,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,6 +2057,11 @@ msgid "" "script to generate version information (done automatically in docker).\n" " " msgstr "" +"\n" +" Führe <code>version.py</code> im update script durch, um " +"Informationen zur Version anzuzeigen (wird automatisch von docker " +"durchgeführt).\n" +" " #: .\cookbook\templates\system.html:46 msgid "Media Serving" @@ -2179,21 +2172,19 @@ msgstr "" #: .\cookbook\templates\system.html:171 msgid "False" -msgstr "" +msgstr "Falsch" #: .\cookbook\templates\system.html:171 msgid "True" -msgstr "" +msgstr "Wahr" #: .\cookbook\templates\system.html:196 msgid "Hide" -msgstr "" +msgstr "Verbergen" #: .\cookbook\templates\system.html:199 -#, fuzzy -#| msgid "Show Log" msgid "Show" -msgstr "Log anzeigen" +msgstr "Anzeigen" #: .\cookbook\templates\url_import.html:8 msgid "URL Import" @@ -2604,14 +2595,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 +2658,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!" @@ -2810,7 +2797,7 @@ msgstr "" #: .\cookbook\views\views.py:446 msgid "Manage recipes, shopping list, meal plans and more." -msgstr "" +msgstr "Manage Rezepte, Einkaufslisten Essenspläne und mehr." #: .\cookbook\views\views.py:453 msgid "Plan" @@ -2818,17 +2805,15 @@ msgstr "Plan" #: .\cookbook\views\views.py:453 msgid "View your meal Plan" -msgstr "" +msgstr "Betrachte deinen Essensplan" #: .\cookbook\views\views.py:454 msgid "View your cookbooks" -msgstr "" +msgstr "Betrachte deine Kochbücher" #: .\cookbook\views\views.py:455 -#, fuzzy -#| msgid "New Shopping List" msgid "View your shopping lists" -msgstr "Neue Einkaufsliste" +msgstr "Zeige deine Einkaufslisten" #~ msgid "Default unit" #~ msgstr "Standardeinheit" From b32a7a9134082a2c3fc2f3263f38e7eafb604a04 Mon Sep 17 00:00:00 2001 From: Brian Hagerty <b_hagerty@yahoo.com> Date: Mon, 6 May 2024 12:31:35 -0500 Subject: [PATCH 29/49] Remove obsolete "version:" entry Per my other PR, "version" is obsolete and throws a warning. --- docs/install/docker/ipv6_plain/docker-compose.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) 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} From e475115b6a1b4dd32f1b131ad0dc60a517feaef3 Mon Sep 17 00:00:00 2001 From: Brian Hagerty <b_hagerty@yahoo.com> Date: Mon, 6 May 2024 12:36:53 -0500 Subject: [PATCH 30/49] Delete obsolete "version" entry Per my first PR, "version" is obsolete and throws a warning. --- docs/install/docker/nginx-proxy/docker-compose.yml | 1 - 1 file changed, 1 deletion(-) 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 From 44832f7c117035d7db1905cdc4103ceb3466fcfc Mon Sep 17 00:00:00 2001 From: Brian Hagerty <b_hagerty@yahoo.com> Date: Mon, 6 May 2024 12:38:13 -0500 Subject: [PATCH 31/49] Delete obsolete "version" entry from compose.yml Per my other PR, "version" is obsolete --- docs/install/docker/traefik-nginx/docker-compose.yml | 1 - 1 file changed, 1 deletion(-) 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 From f92f18ecb203380d231565e368e6220069fd6f9d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 20:55:38 +0000 Subject: [PATCH 32/49] Bump jinja2 from 3.1.3 to 3.1.4 Bumps [jinja2](https://github.com/pallets/jinja) from 3.1.3 to 3.1.4. - [Release notes](https://github.com/pallets/jinja/releases) - [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/jinja/compare/3.1.3...3.1.4) --- updated-dependencies: - dependency-name: jinja2 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 51189602f6..670f9a158d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -26,7 +26,7 @@ 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 From 3f258fbd877ebba80f186f533e87c3b88c41d60f Mon Sep 17 00:00:00 2001 From: Jakob Priesner <jakob.priesner@outlook.de> Date: Fri, 10 May 2024 09:41:10 +0000 Subject: [PATCH 33/49] Translated using Weblate (German) Currently translated at 98.7% (479 of 485 strings) Translation: Tandoor/Recipes Backend Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/de/ --- cookbook/locale/de/LC_MESSAGES/django.po | 72 ++++++++++-------------- 1 file changed, 31 insertions(+), 41 deletions(-) diff --git a/cookbook/locale/de/LC_MESSAGES/django.po b/cookbook/locale/de/LC_MESSAGES/django.po index 5b88498ee1..ffe494c34c 100644 --- a/cookbook/locale/de/LC_MESSAGES/django.po +++ b/cookbook/locale/de/LC_MESSAGES/django.po @@ -15,8 +15,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-21 14:39+0100\n" -"PO-Revision-Date: 2024-05-04 19:10+0000\n" -"Last-Translator: Carsten Docktor <carsten.docktor@gmail.com>\n" +"PO-Revision-Date: 2024-05-11 00:33+0000\n" +"Last-Translator: Jakob Priesner <jakob.priesner@outlook.de>\n" "Language-Team: German <http://translate.tandoor.dev/projects/tandoor/" "recipes-backend/de/>\n" "Language: de\n" @@ -494,10 +494,8 @@ msgid "Nutrition" msgstr "Nährwerte" #: .\cookbook\models.py:919 -#, fuzzy -#| msgid "Merge" msgid "Allergen" -msgstr "Zusammenführen" +msgstr "Allergen" #: .\cookbook\models.py:920 msgid "Price" @@ -551,17 +549,15 @@ msgstr "Neue Einheit" #: .\cookbook\models.py:1473 msgid "Transpose Words" -msgstr "" +msgstr "Wörter austauschen" #: .\cookbook\models.py:1474 msgid "Food Replace" 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" @@ -2153,10 +2149,8 @@ msgid "Info" msgstr "Info" #: .\cookbook\templates\system.html:99 .\cookbook\templates\system.html:116 -#, fuzzy -#| msgid "Use fractions" msgid "Migrations" -msgstr "Brüche verwenden" +msgstr "Migrationen" #: .\cookbook\templates\system.html:105 msgid "" @@ -2169,6 +2163,14 @@ 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 msgid "False" @@ -2261,18 +2263,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 "" +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." @@ -2468,18 +2470,14 @@ msgstr "" "mehrfach angegeben werden." #: .\cookbook\views\api.py:1126 -#, fuzzy -#| msgid "" -#| "Filter shopping list entries on checked. [true, false, both, <b>recent</" -#| "b>]<br> - recent includes unchecked items and recently completed items." msgid "" "Filter shopping list entries on checked. [true, false, both, <b>recent</" "b>]<br> - recent includes unchecked items and recently " "completed items." msgstr "" -"Einkaufslisteneinträge nach Häkchen filtern. [ja, nein, beides, " -"<b>kürzlich</b>]<br> - kürzlich enthält nicht abgehakte Einträge und " -"kürzlich abgeschlossene Einträge." +"Einkaufslisteneinträge nach Häkchen filtern. [ja, nein, beides, " +"<b>kürzlich</b>]<br> - 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." @@ -2488,7 +2486,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 @@ -2524,7 +2522,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" @@ -2678,11 +2676,10 @@ 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 "" @@ -2721,29 +2718,22 @@ msgstr "Die \"Ungenaue\" Suche ist mit diesem Suchtyp nicht kompatibel!" #, 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 #, python-format msgid "You are running PostgreSQL %(v1)s. PostgreSQL %(v2)s is recommended" -msgstr "" +msgstr "Sie verwenden PostgreSQL %(v1)s. PostgreSQL %(v2)s wird empfohlen" #: .\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" -#| " " 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 #, fuzzy From 9254a36636c2f9da86a564f53b6a25e7b215bfc9 Mon Sep 17 00:00:00 2001 From: only <jeter.nice@gmail.com> Date: Sat, 18 May 2024 14:58:57 +0000 Subject: [PATCH 34/49] Translated using Weblate (Chinese (Traditional)) Currently translated at 11.3% (55 of 485 strings) Translation: Tandoor/Recipes Backend Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/zh_Hant/ --- cookbook/locale/zh_Hant/LC_MESSAGES/django.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cookbook/locale/zh_Hant/LC_MESSAGES/django.po b/cookbook/locale/zh_Hant/LC_MESSAGES/django.po index 223c029975..276b1cecfb 100644 --- a/cookbook/locale/zh_Hant/LC_MESSAGES/django.po +++ b/cookbook/locale/zh_Hant/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-21 14:39+0100\n" -"PO-Revision-Date: 2023-03-12 02:55+0000\n" -"Last-Translator: Feng Zhong <fewoodse@gmail.com>\n" +"PO-Revision-Date: 2024-05-19 13:38+0000\n" +"Last-Translator: only <jeter.nice@gmail.com>\n" "Language-Team: Chinese (Traditional) <http://translate.tandoor.dev/projects/" "tandoor/recipes-backend/zh_Hant/>\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" From 2cf9c288be758d7de46a75cf56aaccd714fa834d Mon Sep 17 00:00:00 2001 From: only <jeter.nice@gmail.com> Date: Sat, 18 May 2024 14:44:30 +0000 Subject: [PATCH 35/49] Translated using Weblate (Chinese (Traditional)) Currently translated at 8.2% (47 of 569 strings) Translation: Tandoor/Recipes Frontend Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/zh_Hant/ --- vue/src/locales/zh_Hant.json | 73 ++++++++++++++++++++++++------------ 1 file changed, 48 insertions(+), 25 deletions(-) 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": "顯示為標題" } From 98d4ce5ff897e401f7f070104ba26223b2f67554 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 May 2024 05:30:33 +0000 Subject: [PATCH 36/49] --- updated-dependencies: - dependency-name: requests dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 670f9a158d..b68e26195c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -16,7 +16,7 @@ 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 From 6d4dbc26a4aaa977d0764f6d4679fc4b48bb171d Mon Sep 17 00:00:00 2001 From: tarek EL SOL <tarek.elsol@gmail.com> Date: Mon, 27 May 2024 20:37:20 +0000 Subject: [PATCH 37/49] Translated using Weblate (French) Currently translated at 87.2% (423 of 485 strings) Translation: Tandoor/Recipes Backend Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/fr/ --- cookbook/locale/fr/LC_MESSAGES/django.po | 34 ++++++++++++------------ 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/cookbook/locale/fr/LC_MESSAGES/django.po b/cookbook/locale/fr/LC_MESSAGES/django.po index 87b0b6565f..48475bddcb 100644 --- a/cookbook/locale/fr/LC_MESSAGES/django.po +++ b/cookbook/locale/fr/LC_MESSAGES/django.po @@ -14,10 +14,10 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-21 14:39+0100\n" -"PO-Revision-Date: 2024-03-19 13:59+0000\n" -"Last-Translator: Anthony BARRIER <barrier.anthony@gmail.com>\n" -"Language-Team: French <http://translate.tandoor.dev/projects/tandoor/recipes-" -"backend/fr/>\n" +"PO-Revision-Date: 2024-05-28 00:57+0000\n" +"Last-Translator: tarek EL SOL <tarek.elsol@gmail.com>\n" +"Language-Team: French <http://translate.tandoor.dev/projects/tandoor/" +"recipes-backend/fr/>\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\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,8 +136,8 @@ 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 " -"d’invitation sera envoyé à l’utilisateur." +"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 msgid "Name already taken." @@ -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 "" From 0cb415f70de08f12cd61f1dc1a2771d1aaa9df62 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 17:23:52 +0000 Subject: [PATCH 38/49] Bump ws from 7.5.9 to 7.5.10 in /vue Bumps [ws](https://github.com/websockets/ws) from 7.5.9 to 7.5.10. - [Release notes](https://github.com/websockets/ws/releases) - [Commits](https://github.com/websockets/ws/compare/7.5.9...7.5.10) --- updated-dependencies: - dependency-name: ws dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> --- vue/yarn.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/vue/yarn.lock b/vue/yarn.lock index eed173f13c..9216792c92 100644 --- a/vue/yarn.lock +++ b/vue/yarn.lock @@ -12077,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" From 769561349f220671a7790ad67378fb96cb09f24c Mon Sep 17 00:00:00 2001 From: Renato <rgissoni.sistemas@gmail.com> Date: Thu, 20 Jun 2024 14:35:59 +0000 Subject: [PATCH 39/49] Translated using Weblate (Portuguese (Brazil)) Currently translated at 89.2% (508 of 569 strings) Translation: Tandoor/Recipes Frontend Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pt_BR/ --- vue/src/locales/pt_BR.json | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) 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" } From 202d8afa1036615264875bc79c5e10baf1ec172c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Jun 2024 19:05:46 +0000 Subject: [PATCH 40/49] Bump djangorestframework from 3.14.0 to 3.15.2 Bumps [djangorestframework](https://github.com/encode/django-rest-framework) from 3.14.0 to 3.15.2. - [Release notes](https://github.com/encode/django-rest-framework/releases) - [Commits](https://github.com/encode/django-rest-framework/compare/3.14.0...3.15.2) --- updated-dependencies: - dependency-name: djangorestframework dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index b68e26195c..56788a7052 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,7 +5,7 @@ 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 From 17d34c5ca704f483c0240b40f1b65fcae972b697 Mon Sep 17 00:00:00 2001 From: vabene1111 <vabene1234@googlemail.com> Date: Thu, 27 Jun 2024 13:48:11 +0200 Subject: [PATCH 41/49] improved allowed hosts docs, default config and added a system warning --- .env.template | 3 +++ cookbook/templates/system.html | 11 +++++++++++ cookbook/views/views.py | 2 +- docs/system/configuration.md | 23 ++++++++++++----------- 4 files changed, 27 insertions(+), 12 deletions(-) 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/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/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/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 From 818ca0b2e4117ca2cd4f4ab94ce84e6eebad5a71 Mon Sep 17 00:00:00 2001 From: Daniel Albers <daniel@lbe.rs> Date: Wed, 3 Jul 2024 13:45:33 +0200 Subject: [PATCH 42/49] Gracefully handle lookup errors in resolveDjangoUrl --- vue/src/utils/utils.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) 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 +} From 93613c9781c2365acb861a661b8389a6a6871da8 Mon Sep 17 00:00:00 2001 From: Taylan TATLI <uyelik-tandoor@tatli.me> Date: Tue, 2 Jul 2024 17:55:31 +0000 Subject: [PATCH 43/49] Translated using Weblate (Turkish) Currently translated at 6.8% (33 of 485 strings) Translation: Tandoor/Recipes Backend Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/tr/ --- cookbook/locale/tr/LC_MESSAGES/django.po | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/cookbook/locale/tr/LC_MESSAGES/django.po b/cookbook/locale/tr/LC_MESSAGES/django.po index 5fdea7ddc8..e36adfa460 100644 --- a/cookbook/locale/tr/LC_MESSAGES/django.po +++ b/cookbook/locale/tr/LC_MESSAGES/django.po @@ -11,8 +11,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2024-03-21 14:39+0100\n" -"PO-Revision-Date: 2024-04-01 22:04+0000\n" -"Last-Translator: atom karinca <atomkarinca@tutanota.com>\n" +"PO-Revision-Date: 2024-07-03 16:38+0000\n" +"Last-Translator: Taylan TATLI <uyelik-tandoor@tatli.me>\n" "Language-Team: Turkish <http://translate.tandoor.dev/projects/tandoor/" "recipes-backend/tr/>\n" "Language: tr\n" @@ -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" @@ -1910,10 +1906,8 @@ msgid "Info" msgstr "" #: .\cookbook\templates\system.html:99 .\cookbook\templates\system.html:116 -#, fuzzy -#| msgid "Use fractions" msgid "Migrations" -msgstr "Kesirleri kullan" +msgstr "Göçler" #: .\cookbook\templates\system.html:105 msgid "" @@ -2459,10 +2453,8 @@ msgid "View your cookbooks" msgstr "" #: .\cookbook\views\views.py:455 -#, fuzzy -#| msgid "Users with whom to share shopping lists." 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" From 826ddddd5d80fa6f5dbe89cd3e0bd2c4d3090bc0 Mon Sep 17 00:00:00 2001 From: Taylan TATLI <uyelik-tandoor@tatli.me> Date: Tue, 2 Jul 2024 17:05:36 +0000 Subject: [PATCH 44/49] Translated using Weblate (Turkish) Currently translated at 100.0% (569 of 569 strings) Translation: Tandoor/Recipes Frontend Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/tr/ --- vue/src/locales/tr.json | 682 ++++++++++++++++++++++------------------ 1 file changed, 378 insertions(+), 304 deletions(-) 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" } From fd3760198bb12d4d08cc76fb15711a1bd28952d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-F=C3=A9lix=20ALLARD?= <jean-felix.allard@protonmail.com> Date: Thu, 4 Jul 2024 15:46:22 +0000 Subject: [PATCH 45/49] Translated using Weblate (French) Currently translated at 96.8% (551 of 569 strings) Translation: Tandoor/Recipes Frontend Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fr/ --- vue/src/locales/fr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vue/src/locales/fr.json b/vue/src/locales/fr.json index da3e528df1..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", From c2176305db4fff55c132b4b4a9a02992372a085c Mon Sep 17 00:00:00 2001 From: smilerz <smilerz@gmail.com> Date: Mon, 8 Jul 2024 08:28:49 -0500 Subject: [PATCH 46/49] fix invalid syntax in admin/step --- cookbook/admin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cookbook/admin.py b/cookbook/admin.py index 88a1cd79ae..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{'' 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 From 6385866e98df4c95398d183cefcd7efb1a06a6c5 Mon Sep 17 00:00:00 2001 From: smilerz <smilerz@gmail.com> Date: Mon, 8 Jul 2024 08:35:59 -0500 Subject: [PATCH 47/49] url import fixes --- cookbook/helper/recipe_url_import.py | 4 ++-- cookbook/views/api.py | 2 +- requirements.txt | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cookbook/helper/recipe_url_import.py b/cookbook/helper/recipe_url_import.py index eca6813aaf..a6d91f84c5 100644 --- a/cookbook/helper/recipe_url_import.py +++ b/cookbook/helper/recipe_url_import.py @@ -373,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 diff --git a/cookbook/views/api.py b/cookbook/views/api.py index f890caeaa9..3c2d596b21 100644 --- a/cookbook/views/api.py +++ b/cookbook/views/api.py @@ -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): diff --git a/requirements.txt b/requirements.txt index 56788a7052..0e4924d3c0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -30,7 +30,7 @@ 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==15.0.0-rc2 +recipe-scrapers==15.0.0-rc3 django-scopes==2.0.0 django-treebeard==4.7 django-cors-headers==4.3.1 From 0ac3c55180d26fed7109c3cd9686c6aa6511a559 Mon Sep 17 00:00:00 2001 From: vabene1111 <vabene1234@googlemail.com> Date: Mon, 8 Jul 2024 18:02:44 +0200 Subject: [PATCH 48/49] update translations --- .idea/watcherTasks.xml | 2 +- cookbook/locale/ar/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/bg/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/ca/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/cs/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/da/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/de/LC_MESSAGES/django.mo | Bin 56294 -> 60666 bytes cookbook/locale/de/LC_MESSAGES/django.po | 123 +++++++++-------- cookbook/locale/el/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/en/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/es/LC_MESSAGES/django.mo | Bin 25025 -> 26089 bytes cookbook/locale/es/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/fi/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/fr/LC_MESSAGES/django.mo | Bin 56552 -> 56548 bytes cookbook/locale/fr/LC_MESSAGES/django.po | 124 ++++++++++-------- cookbook/locale/he/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/hu_HU/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/hy/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/id/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/it/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/lv/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/nb_NO/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/nl/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/pl/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/pt/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/pt_BR/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/rn/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/ro/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/ru/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/sl/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/sv/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/tr/LC_MESSAGES/django.mo | Bin 1177 -> 4396 bytes cookbook/locale/tr/LC_MESSAGES/django.po | 120 ++++++++++------- cookbook/locale/uk/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/vi/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/zh_CN/LC_MESSAGES/django.po | 116 +++++++++------- cookbook/locale/zh_Hant/LC_MESSAGES/django.mo | Bin 5036 -> 5033 bytes cookbook/locale/zh_Hant/LC_MESSAGES/django.po | 116 +++++++++------- recipes/locale/ar/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/bg/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/ca/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/cs/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/da/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/de/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/el/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/en/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/es/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/fi/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/fr/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/he/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/hu_HU/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/hy/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/id/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/it/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/lv/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/nb_NO/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/nl/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/pl/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/pt/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/pt_BR/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/rn/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/ro/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/ru/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/sl/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/sv/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/tr/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/uk/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/vi/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/zh_CN/LC_MESSAGES/django.po | 58 ++++---- recipes/locale/zh_Hant/LC_MESSAGES/django.po | 58 ++++---- 70 files changed, 2891 insertions(+), 2698 deletions(-) diff --git a/.idea/watcherTasks.xml b/.idea/watcherTasks.xml index 0976eb2bc9..546f6cfc0f 100644 --- a/.idea/watcherTasks.xml +++ b/.idea/watcherTasks.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="ProjectTasksOptions"> - <TaskOptions isEnabled="true"> + <TaskOptions isEnabled="false"> <option name="arguments" value="-m flake8 $FilePath$ --config $ContentRoot$\.flake8" /> <option name="checkSyntaxErrors" value="true" /> <option name="description" /> 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 <mapgohary@gmail.com>\n" "Language-Team: Arabic <http://translate.tandoor.dev/projects/tandoor/recipes-" @@ -247,33 +247,33 @@ 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 #, fuzzy #| msgid "Use fractions" 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 "" @@ -391,7 +391,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 "اخرى" @@ -427,45 +427,45 @@ 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 #, fuzzy #| msgid "Automations" 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 "" @@ -1828,14 +1828,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 "" @@ -1850,7 +1850,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 "" @@ -1887,20 +1888,33 @@ 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 #, fuzzy #| msgid "Use fractions" msgid "Migrations" msgstr "إستخدم الكسور" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -1912,19 +1926,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 "" @@ -2341,7 +2355,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 "هذه الميزة غير موجودة في النسخة التجريبية!" @@ -2378,78 +2392,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 #, fuzzy #| msgid "Users with whom to share shopping lists." msgid "View your shopping lists" diff --git a/cookbook/locale/bg/LC_MESSAGES/django.po b/cookbook/locale/bg/LC_MESSAGES/django.po index 263b3f209b..c03d132ae1 100644 --- a/cookbook/locale/bg/LC_MESSAGES/django.po +++ b/cookbook/locale/bg/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 <noxonad@proton.me>\n" "Language-Team: Bulgarian <http://translate.tandoor.dev/projects/tandoor/" @@ -277,33 +277,33 @@ 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 #, fuzzy #| msgid "Use fractions" 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 "" @@ -427,7 +427,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 "Друго" @@ -465,47 +465,47 @@ 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 #, fuzzy #| msgid "Automations" msgid "Nutrition" msgstr "Автоматики" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 #, fuzzy #| msgid "Merge" 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 "" @@ -2092,14 +2092,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 "ОК" @@ -2121,7 +2121,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 "Всичко е наред!" @@ -2175,20 +2176,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 "База данни" -#: .\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 #, fuzzy #| msgid "Use fractions" msgid "Migrations" msgstr "Използвайте дроби" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -2200,19 +2214,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" @@ -2709,7 +2723,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 "Тази функция не е налична в демо версията!" @@ -2752,17 +2766,21 @@ 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 #, fuzzy #| msgid "" #| "\n" @@ -2780,7 +2798,7 @@ msgstr "" " функциите работят само с бази данни 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 " @@ -2796,27 +2814,27 @@ msgstr "" "потребител, моля, вижте документацията на django за това как да нулирате " "пароли." -#: .\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 "Malformed връзка за покана е предоставена!" -#: .\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." @@ -2824,7 +2842,7 @@ 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." @@ -2832,25 +2850,25 @@ 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 #, fuzzy #| msgid "Meal-Plan" 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 #, fuzzy #| msgid "Users with whom to share shopping lists." msgid "View your shopping lists" diff --git a/cookbook/locale/ca/LC_MESSAGES/django.po b/cookbook/locale/ca/LC_MESSAGES/django.po index df1e5ea84e..0a3b87d11d 100644 --- a/cookbook/locale/ca/LC_MESSAGES/django.po +++ b/cookbook/locale/ca/LC_MESSAGES/django.po @@ -12,7 +12,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-08 23:19+0000\n" "Last-Translator: Enric Bergadà <enric@bergada.cat>\n" "Language-Team: Catalan <http://translate.tandoor.dev/projects/tandoor/" @@ -280,33 +280,33 @@ msgstr "Has arribat al nombre màxim de receptes per al vostre espai." msgid "You have more users than allowed in your space." msgstr "Tens més usuaris dels permesos al teu espai." -#: .\cookbook\helper\recipe_url_import.py:304 +#: .\cookbook\helper\recipe_url_import.py:310 #, fuzzy #| msgid "Use fractions" msgid "reverse rotation" msgstr "Utilitza fraccions" -#: .\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 "" @@ -430,7 +430,7 @@ msgstr "Dinar" msgid "Dinner" msgstr "Sopar" -#: .\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 "Un altre" @@ -470,45 +470,45 @@ msgstr "" "Emmagatzematge màxim de fitxers per espai en MB. 0 per il·limitat, -1 per " "desactivar la càrrega de fitxers." -#: .\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 "Cerca" -#: .\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 "Plans de Menjar" -#: .\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 "Receptes" -#: .\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 "Compres" -#: .\cookbook\models.py:753 +#: .\cookbook\models.py:752 msgid " is part of a recipe step and cannot be deleted" msgstr " forma part d'un pas de recepta i no es pot suprimir" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 msgid "Nutrition" msgstr "Nutrició" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 #, fuzzy #| msgid "Merge" msgid "Allergen" msgstr "Combina" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Price" msgstr "" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Goal" msgstr "" @@ -1985,14 +1985,14 @@ msgid "Media Serving" msgstr "Servei Mitjans" #: .\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 "Advertència" #: .\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" @@ -2013,7 +2013,8 @@ msgstr "" "la vostra instal·lació." #: .\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 "Tot està bé!" @@ -2062,20 +2063,33 @@ msgstr "" "<code>DEBUG = 0</code> al fitxer de configuració<code> .env.</code>" #: .\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 <kuboja@outlook.cz>\n" "Language-Team: Czech <http://translate.tandoor.dev/projects/tandoor/recipes-" @@ -258,31 +258,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 "" @@ -407,7 +407,7 @@ msgstr "Oběd" msgid "Dinner" msgstr "Večeře" -#: .\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 "Ostatní" @@ -445,45 +445,45 @@ 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 "Vyhledat" -#: .\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 "Jídelníček" -#: .\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 "Kuchařky" -#: .\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 "Nákupy" -#: .\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 "Výživové hodnoty" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 #, fuzzy #| msgid "Merge" msgid "Allergen" msgstr "Sloučit" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Price" msgstr "" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Goal" msgstr "" @@ -1974,14 +1974,14 @@ msgid "Media Serving" msgstr "Mediální služby" #: .\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 "Varování" #: .\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" @@ -2003,7 +2003,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 "Vše je v pořádku!" @@ -2055,18 +2056,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 "Databáze" -#: .\cookbook\templates\system.html:89 +#: .\cookbook\templates\system.html:100 msgid "Info" msgstr "Informace" -#: .\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" @@ -2078,19 +2092,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 help" msgid "Show" @@ -2528,7 +2542,7 @@ msgid "There was an error importing this recipe!" msgstr "Nastala chyba při importu tohoto receptu!" #: .\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 "Tato funkce není dostupná v demo verzi!" @@ -2565,17 +2579,21 @@ 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 #, fuzzy #| msgid "" #| "\n" @@ -2593,7 +2611,7 @@ msgstr "" " funkce pracují pouze s Postgree databází.\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 " @@ -2608,55 +2626,55 @@ msgstr "" "Pokud jste zapoměl(a) heslo superuživatele, prozkoumejte django dokumentaci " "a postupujte podle návodu pro reset hesla." -#: .\cookbook\views\views.py:364 +#: .\cookbook\views\views.py:369 msgid "Passwords dont match!" msgstr "Hesla nesouhlasí!" -#: .\cookbook\views\views.py:372 +#: .\cookbook\views\views.py:377 msgid "User has been created, please login!" msgstr "Uživatel byl vytvořen, prosím přihlaste se!" -#: .\cookbook\views\views.py:388 +#: .\cookbook\views\views.py:393 msgid "Malformed Invite Link supplied!" msgstr "Vložena neplatná URL pozvánky!" -#: .\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 "Neplatná URL pozvánky, nebo se již používá!" -#: .\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 "Plán" -#: .\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 "Shopping Lists" msgid "View your shopping lists" diff --git a/cookbook/locale/da/LC_MESSAGES/django.po b/cookbook/locale/da/LC_MESSAGES/django.po index 9572c94454..0ff7f08361 100644 --- a/cookbook/locale/da/LC_MESSAGES/django.po +++ b/cookbook/locale/da/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 <noxonad@proton.me>\n" "Language-Team: Danish <http://translate.tandoor.dev/projects/tandoor/recipes-" @@ -275,33 +275,33 @@ msgstr "Du har nået det maksimale antal opskrifter for dit rum." msgid "You have more users than allowed in your space." msgstr "Du har flere brugere end tilladt i dit rum." -#: .\cookbook\helper\recipe_url_import.py:304 +#: .\cookbook\helper\recipe_url_import.py:310 #, fuzzy #| msgid "Use fractions" msgid "reverse rotation" msgstr "Benyt brøker" -#: .\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 "" @@ -425,7 +425,7 @@ msgstr "Frokost" msgid "Dinner" msgstr "Aftensmad" -#: .\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 "Andet" @@ -463,47 +463,47 @@ msgstr "" "Maksimal fil lager for rum i MB. 0 for ubegrænset, -1 for at slå upload af " "filer fra." -#: .\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 "Søg" -#: .\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 "Madplan" -#: .\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øger" -#: .\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 "Indkøb" -#: .\cookbook\models.py:753 +#: .\cookbook\models.py:752 msgid " is part of a recipe step and cannot be deleted" msgstr " er del af et opskriftstrin og kan ikke slettes" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 #, fuzzy #| msgid "Automations" msgid "Nutrition" msgstr "Automationer" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 #, fuzzy #| msgid "Merge" msgid "Allergen" msgstr "Sammenflet" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Price" msgstr "" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Goal" msgstr "" @@ -2084,14 +2084,14 @@ msgid "Media Serving" msgstr "Medie servering" #: .\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 "Advarsel" #: .\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" @@ -2112,7 +2112,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 "Alt er fint!" @@ -2163,20 +2164,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 "Database" -#: .\cookbook\templates\system.html:89 +#: .\cookbook\templates\system.html:100 msgid "Info" msgstr "Information" -#: .\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 "Benyt brøker" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -2188,19 +2202,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" @@ -2679,7 +2693,7 @@ msgid "There was an error importing this recipe!" msgstr "Der opstod en fejl under importeringen af denne opskrift!" #: .\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 "Denne funktion er ikke tilgængelig i demoversionen!" @@ -2721,17 +2735,21 @@ msgstr "" msgid "Fuzzy search is not compatible with this search method!" msgstr "Fuzzy søgning er ikke kompatibelt med denne søgemetode!" -#: .\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" @@ -2749,7 +2767,7 @@ msgstr "" " nogle funktioner kun virker med en postgres database.\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 " @@ -2764,27 +2782,27 @@ msgstr "" "du har gemt dine superbruger oplysninger, konsulter venligst Django " "dokumentationen for at lære at nulstille dit kodeord." -#: .\cookbook\views\views.py:364 +#: .\cookbook\views\views.py:369 msgid "Passwords dont match!" msgstr "Kodeorderne er ikke ens!" -#: .\cookbook\views\views.py:372 +#: .\cookbook\views\views.py:377 msgid "User has been created, please login!" msgstr "Brugeren blev oprettet, log venligst ind!" -#: .\cookbook\views\views.py:388 +#: .\cookbook\views\views.py:393 msgid "Malformed Invite Link supplied!" msgstr "Ugyldigt invitationslink angivet!" -#: .\cookbook\views\views.py:405 +#: .\cookbook\views\views.py:410 msgid "Successfully joined space." msgstr "Du er nu medlem af rummet." -#: .\cookbook\views\views.py:411 +#: .\cookbook\views\views.py:416 msgid "Invite Link not valid or already used!" msgstr "Invitationslink er ugyldigt eller allerede brugt!" -#: .\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." @@ -2792,7 +2810,7 @@ msgstr "" "Rapportering af delingslinks er ikke slået til for denne instans. Oplys " "venligst din sideadministrator om at rapportere problemer." -#: .\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." @@ -2800,25 +2818,25 @@ msgstr "" "Opskriftsdelingslinks er blevet slået fra! For mere information kontakt " "venligst din sideadministrator." -#: .\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 #, fuzzy #| msgid "Meal-Plan" msgid "Plan" msgstr "Madplan" -#: .\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 "Users with whom to share shopping lists." msgid "View your shopping lists" diff --git a/cookbook/locale/de/LC_MESSAGES/django.mo b/cookbook/locale/de/LC_MESSAGES/django.mo index 6f91be663b087e08ffd68b3ce39f8b8f2a99c72a..791a28971f193cd5e02f361fdc704e22d65b14a1 100644 GIT binary patch delta 13979 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 delta 9932 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 L`Fq>{w8i&-J|~zJ diff --git a/cookbook/locale/de/LC_MESSAGES/django.po b/cookbook/locale/de/LC_MESSAGES/django.po index ffe494c34c..0e72f01436 100644 --- a/cookbook/locale/de/LC_MESSAGES/django.po +++ b/cookbook/locale/de/LC_MESSAGES/django.po @@ -14,11 +14,11 @@ 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-05-11 00:33+0000\n" "Last-Translator: Jakob Priesner <jakob.priesner@outlook.de>\n" -"Language-Team: German <http://translate.tandoor.dev/projects/tandoor/" -"recipes-backend/de/>\n" +"Language-Team: German <http://translate.tandoor.dev/projects/tandoor/recipes-" +"backend/de/>\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\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,7 +427,7 @@ 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" @@ -465,43 +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 +#: .\cookbook\models.py:918 msgid "Allergen" 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" @@ -2064,14 +2064,14 @@ 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" @@ -2091,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!" @@ -2141,18 +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 +#: .\cookbook\templates\system.html:110 .\cookbook\templates\system.html:127 msgid "Migrations" msgstr "Migrationen" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -2172,19 +2186,19 @@ msgstr "" "Migrationsprotokoll und die Übersicht unten in einem GitHub-Problem.\n" " " -#: .\cookbook\templates\system.html:171 +#: .\cookbook\templates\system.html:182 msgid "False" msgstr "Falsch" -#: .\cookbook\templates\system.html:171 +#: .\cookbook\templates\system.html:182 msgid "True" msgstr "Wahr" -#: .\cookbook\templates\system.html:196 +#: .\cookbook\templates\system.html:207 msgid "Hide" msgstr "Verbergen" -#: .\cookbook\templates\system.html:199 +#: .\cookbook\templates\system.html:210 msgid "Show" msgstr "Anzeigen" @@ -2263,7 +2277,8 @@ 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." +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." @@ -2671,7 +2686,7 @@ 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!" @@ -2714,19 +2729,23 @@ 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: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." @@ -2735,7 +2754,7 @@ msgstr "" "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 " @@ -2749,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." @@ -2777,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." @@ -2785,23 +2804,23 @@ 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 "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 "Betrachte deinen Essensplan" -#: .\cookbook\views\views.py:454 +#: .\cookbook\views\views.py:459 msgid "View your cookbooks" msgstr "Betrachte deine Kochbücher" -#: .\cookbook\views\views.py:455 +#: .\cookbook\views\views.py:460 msgid "View your shopping lists" msgstr "Zeige deine Einkaufslisten" 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 <teogramm@outlook.com>\n" "Language-Team: Greek <http://translate.tandoor.dev/projects/tandoor/recipes-" @@ -271,33 +271,33 @@ 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 #, fuzzy #| msgid "Use fractions" 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 "" @@ -421,7 +421,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 "Άλλο" @@ -459,47 +459,47 @@ 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 #, fuzzy #| msgid "Automations" msgid "Nutrition" msgstr "Αυτοματισμοί" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 #, fuzzy #| msgid "Merge" 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 "" @@ -1910,14 +1910,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 "" @@ -1932,7 +1932,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 "" @@ -1969,20 +1970,33 @@ 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 #, fuzzy #| msgid "Use fractions" msgid "Migrations" msgstr "Χρήση κλασμάτων" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -1994,19 +2008,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" @@ -2419,7 +2433,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 "" @@ -2458,56 +2472,60 @@ 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." @@ -2515,25 +2533,25 @@ 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 #, fuzzy #| msgid "Meal-Plan" 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 #, fuzzy #| msgid "Users with whom to share shopping lists." msgid "View your shopping lists" diff --git a/cookbook/locale/en/LC_MESSAGES/django.po b/cookbook/locale/en/LC_MESSAGES/django.po index 582627d7dd..bd80ed4c91 100644 --- a/cookbook/locale/en/LC_MESSAGES/django.po +++ b/cookbook/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" @@ -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 999127a952d8e0620ca008895848f982d4e4f3f7..a73f64e251ca77520996c4aec99a62efe27b0372 100644 GIT binary patch delta 6611 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 delta 5578 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 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 <axelbreiterman@gmail.com>\n" "Language-Team: Spanish <http://translate.tandoor.dev/projects/tandoor/" @@ -283,33 +283,33 @@ msgstr "Ha alcanzado el número máximo de recetas para su espacio." msgid "You have more users than allowed in your space." msgstr "Tenés mas usuarios que los permitidos en tu espacio" -#: .\cookbook\helper\recipe_url_import.py:304 +#: .\cookbook\helper\recipe_url_import.py:310 #, fuzzy #| msgid "Use fractions" msgid "reverse rotation" msgstr "Usar fracciones" -#: .\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 "amasar" -#: .\cookbook\helper\recipe_url_import.py:307 +#: .\cookbook\helper\recipe_url_import.py:313 msgid "thicken" msgstr "espesar" -#: .\cookbook\helper\recipe_url_import.py:308 +#: .\cookbook\helper\recipe_url_import.py:314 msgid "warm up" msgstr "precalentar" -#: .\cookbook\helper\recipe_url_import.py:309 +#: .\cookbook\helper\recipe_url_import.py:315 msgid "ferment" msgstr "fermentar" -#: .\cookbook\helper\recipe_url_import.py:310 +#: .\cookbook\helper\recipe_url_import.py:316 msgid "sous-vide" msgstr "sous-vide" @@ -431,7 +431,7 @@ msgstr "Almuerzo" msgid "Dinner" msgstr "Cena" -#: .\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 "Otro" @@ -469,45 +469,45 @@ 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 "Buscar" -#: .\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 "Régimen de comidas" -#: .\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 "Libros" -#: .\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 "Compras" -#: .\cookbook\models.py:753 +#: .\cookbook\models.py:752 msgid " is part of a recipe step and cannot be deleted" msgstr " es parte del paso de una receta y no puede ser eliminado" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 msgid "Nutrition" msgstr "Información Nutricional" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 #, fuzzy #| msgid "Merge" msgid "Allergen" msgstr "Combinar" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Price" msgstr "" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Goal" msgstr "" @@ -2010,14 +2010,14 @@ msgid "Media Serving" msgstr "Servidor multimedia" #: .\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 "Advertencia" #: .\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" @@ -2039,7 +2039,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 "¡Todo va bien!" @@ -2092,20 +2093,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 Datos" -#: .\cookbook\templates\system.html:89 +#: .\cookbook\templates\system.html:100 msgid "Info" msgstr "Información" -#: .\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 "Usar fracciones" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -2117,19 +2131,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 Links" msgid "Show" @@ -2566,7 +2580,7 @@ msgid "There was an error importing this recipe!" msgstr "¡Hubo un error al importar esta receta!" #: .\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 "¡Esta funcionalidad no está disponible en la versión demo!" @@ -2605,17 +2619,21 @@ 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 #, fuzzy #| msgid "" #| "\n" @@ -2633,7 +2651,7 @@ msgstr "" " características sólo funcionan con bases de datos 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 " @@ -2648,55 +2666,55 @@ msgstr "" "usuario. Si has olvidado tus credenciales de superusuario, por favor " "consulta la documentación de django sobre cómo restablecer las contraseñas." -#: .\cookbook\views\views.py:364 +#: .\cookbook\views\views.py:369 msgid "Passwords dont match!" msgstr "¡Las contraseñas no coinciden!" -#: .\cookbook\views\views.py:372 +#: .\cookbook\views\views.py:377 msgid "User has been created, please login!" msgstr "El usuario ha sido creado, ¡inicie sesión!" -#: .\cookbook\views\views.py:388 +#: .\cookbook\views\views.py:393 msgid "Malformed Invite Link supplied!" msgstr "¡Se proporcionó un enlace de invitación con formato incorrecto!" -#: .\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 "¡El enlace de invitación no es válido o ya se ha utilizado!" -#: .\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 "Menú" -#: .\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 "Shopping List" msgid "View your shopping lists" diff --git a/cookbook/locale/fi/LC_MESSAGES/django.po b/cookbook/locale/fi/LC_MESSAGES/django.po index feafc7bad4..b230d07bbf 100644 --- a/cookbook/locale/fi/LC_MESSAGES/django.po +++ b/cookbook/locale/fi/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: 2024-03-10 06:12+0000\n" "Last-Translator: Kn <kn@users.noreply.translate.tandoor.dev>\n" "Language-Team: Finnish <http://translate.tandoor.dev/projects/tandoor/" @@ -246,31 +246,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 "" @@ -386,7 +386,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 "" @@ -422,43 +422,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 "Kirjat" -#: .\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 "" @@ -1823,14 +1823,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 "" @@ -1845,7 +1845,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 "" @@ -1882,18 +1883,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" @@ -1905,19 +1919,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 "" @@ -2328,7 +2342,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 "" @@ -2365,78 +2379,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/locale/fr/LC_MESSAGES/django.mo b/cookbook/locale/fr/LC_MESSAGES/django.mo index c7c8fd86af6f5539863e19d2de2e006ad6c3e439..05cb32d91df92957e11500a9c512fd725b5c0200 100644 GIT binary patch delta 4032 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 delta 4002 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 Yg3^+hcKJ#|K_?QMmaf{QcN^pX4fp9p!vFvP diff --git a/cookbook/locale/fr/LC_MESSAGES/django.po b/cookbook/locale/fr/LC_MESSAGES/django.po index 48475bddcb..439b354bf7 100644 --- a/cookbook/locale/fr/LC_MESSAGES/django.po +++ b/cookbook/locale/fr/LC_MESSAGES/django.po @@ -13,11 +13,11 @@ 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-05-28 00:57+0000\n" "Last-Translator: tarek EL SOL <tarek.elsol@gmail.com>\n" -"Language-Team: French <http://translate.tandoor.dev/projects/tandoor/" -"recipes-backend/fr/>\n" +"Language-Team: French <http://translate.tandoor.dev/projects/tandoor/recipes-" +"backend/fr/>\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -136,8 +136,8 @@ 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 d’" -"invitation sera envoyé à l’utilisateur." +"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 msgid "Name already taken." @@ -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 <avmeyer@gmail.com>\n" "Language-Team: Hebrew <http://translate.tandoor.dev/projects/tandoor/recipes-" @@ -245,31 +245,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 "" @@ -385,7 +385,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 "" @@ -421,43 +421,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 "" @@ -1820,14 +1820,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 "" @@ -1842,7 +1842,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 "" @@ -1879,20 +1880,33 @@ 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 #, fuzzy #| msgid "Use fractions" msgid "Migrations" msgstr "שימוש בשברים" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -1904,19 +1918,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 "" @@ -2327,7 +2341,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 "" @@ -2364,78 +2378,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/locale/hu_HU/LC_MESSAGES/django.po b/cookbook/locale/hu_HU/LC_MESSAGES/django.po index e015d3c122..b4ae641d7a 100644 --- a/cookbook/locale/hu_HU/LC_MESSAGES/django.po +++ b/cookbook/locale/hu_HU/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: 2023-12-05 09:15+0000\n" "Last-Translator: Ferenc <ugyes@freemail.hu>\n" "Language-Team: Hungarian <http://translate.tandoor.dev/projects/tandoor/" @@ -281,31 +281,31 @@ msgstr "Elérte a maximális számú receptet a helyén." msgid "You have more users than allowed in your space." msgstr "Több felhasználója van, mint amennyit engedélyeztek a térben." -#: .\cookbook\helper\recipe_url_import.py:304 +#: .\cookbook\helper\recipe_url_import.py:310 msgid "reverse rotation" msgstr "Ellentétes irány" -#: .\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 "dagasztás" -#: .\cookbook\helper\recipe_url_import.py:307 +#: .\cookbook\helper\recipe_url_import.py:313 msgid "thicken" msgstr "sűrítés" -#: .\cookbook\helper\recipe_url_import.py:308 +#: .\cookbook\helper\recipe_url_import.py:314 msgid "warm up" msgstr "melegítés" -#: .\cookbook\helper\recipe_url_import.py:309 +#: .\cookbook\helper\recipe_url_import.py:315 msgid "ferment" msgstr "fermentálás" -#: .\cookbook\helper\recipe_url_import.py:310 +#: .\cookbook\helper\recipe_url_import.py:316 msgid "sous-vide" msgstr "sous-vide" @@ -427,7 +427,7 @@ msgstr "Ebéd" msgid "Dinner" msgstr "Vacsora" -#: .\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 "Egyéb" @@ -465,47 +465,47 @@ msgstr "" "Maximális tárhely a fájloknak MB-ban. 0 a korlátlan, -1 a fájlfeltöltés " "letiltásához." -#: .\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 "Keresés" -#: .\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 "Menüterv" -#: .\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 "Könyvek" -#: .\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 "Bevásárlás" -#: .\cookbook\models.py:753 +#: .\cookbook\models.py:752 msgid " is part of a recipe step and cannot be deleted" msgstr " egy recept része, ezért nem törölhető" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 #, fuzzy #| msgid "Automations" msgid "Nutrition" msgstr "Automatizációk" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 #, fuzzy #| msgid "Merge" msgid "Allergen" msgstr "Egyesítés" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Price" msgstr "" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Goal" msgstr "" @@ -2125,14 +2125,14 @@ msgid "Media Serving" msgstr "Média kiszolgáló" #: .\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 "Figyelmeztetés" #: .\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 "Rendben" @@ -2154,7 +2154,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 "Minden rendben van!" @@ -2207,20 +2208,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 "Adatbázis" -#: .\cookbook\templates\system.html:89 +#: .\cookbook\templates\system.html:100 msgid "Info" msgstr "Információ" -#: .\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 "Törtek használata" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -2232,19 +2246,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" @@ -2746,7 +2760,7 @@ msgid "There was an error importing this recipe!" msgstr "Hiba történt a recept importálásakor!" #: .\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 "Ez a funkció nem érhető el a demó verzióban!" @@ -2789,17 +2803,21 @@ msgstr "" msgid "Fuzzy search is not compatible with this search method!" msgstr "A bizonytalan keresés nem kompatibilis ezzel a keresési módszerrel!" -#: .\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" @@ -2817,7 +2835,7 @@ msgstr "" " funkciók csak Postgres adatbázisokkal működnek.\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 " @@ -2832,27 +2850,27 @@ msgstr "" "elfelejtette a szuperfelhasználói hitelesítő adatait, kérjük, olvassa el a " "django dokumentációját a jelszavak visszaállításáról." -#: .\cookbook\views\views.py:364 +#: .\cookbook\views\views.py:369 msgid "Passwords dont match!" msgstr "A jelszavak nem egyeznek!" -#: .\cookbook\views\views.py:372 +#: .\cookbook\views\views.py:377 msgid "User has been created, please login!" msgstr "A felhasználó létre lett hozva, kérjük, jelentkezzen be!" -#: .\cookbook\views\views.py:388 +#: .\cookbook\views\views.py:393 msgid "Malformed Invite Link supplied!" msgstr "Hibás meghívó linket küldtek!" -#: .\cookbook\views\views.py:405 +#: .\cookbook\views\views.py:410 msgid "Successfully joined space." msgstr "Sikeresen csatlakozott az térhez." -#: .\cookbook\views\views.py:411 +#: .\cookbook\views\views.py:416 msgid "Invite Link not valid or already used!" msgstr "A meghívó link nem érvényes vagy már felhasználásra került!" -#: .\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." @@ -2860,7 +2878,7 @@ msgstr "" "A megosztási hivatkozások jelentése nem engedélyezett ezen a példányon. " "Kérjük, a problémák jelentéséhez értesítse az oldal adminisztrátorát." -#: .\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." @@ -2868,25 +2886,25 @@ msgstr "" "A receptmegosztó linket letiltották! További információkért kérjük, " "forduljon az oldal adminisztrátorához." -#: .\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 #, fuzzy #| msgid "Meal-Plan" msgid "Plan" msgstr "Menüterv" -#: .\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/hy/LC_MESSAGES/django.po b/cookbook/locale/hy/LC_MESSAGES/django.po index f796cf9ad2..f7a166e257 100644 --- a/cookbook/locale/hy/LC_MESSAGES/django.po +++ b/cookbook/locale/hy/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: 2023-01-08 17:55+0000\n" "Last-Translator: Joachim Weber <joachim.weber@gmx.de>\n" "Language-Team: Armenian <http://translate.tandoor.dev/projects/tandoor/" @@ -260,31 +260,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 "" @@ -409,7 +409,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 "Այլ" @@ -447,45 +447,45 @@ 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 #, fuzzy #| msgid "Merge" 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 "" @@ -1982,14 +1982,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 "Լավ է" @@ -2011,7 +2011,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 "Ամեն բան նորմալ է։" @@ -2062,18 +2063,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 "Շտեմարան" -#: .\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" @@ -2085,19 +2099,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 help" msgid "Show" @@ -2533,7 +2547,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 "Այս հատկությունը հասանելի չէ փորձնական տարբերակում։" @@ -2570,17 +2584,21 @@ 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 #, fuzzy #| msgid "" #| "\n" @@ -2598,7 +2616,7 @@ msgstr "" " հատկություններ աշխատում են միայն 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 " @@ -2613,55 +2631,55 @@ msgstr "" "համար։ Եթե մոռացել եք ձեր սուպեր-օգտատերի գաղտնաբառը, խնդրում ենք ստուգել " "django-ի փաստաթղթերը գաղտնաբառը վերականգնելու ցուցումների համար։" -#: .\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 #, fuzzy #| msgid "Shopping Lists" msgid "View your shopping lists" diff --git a/cookbook/locale/id/LC_MESSAGES/django.po b/cookbook/locale/id/LC_MESSAGES/django.po index 86597cf1fc..9ae436625d 100644 --- a/cookbook/locale/id/LC_MESSAGES/django.po +++ b/cookbook/locale/id/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: 2022-10-12 08:33+0000\n" "Last-Translator: wella <wella.design@gmail.com>\n" "Language-Team: Indonesian <http://translate.tandoor.dev/projects/tandoor/" @@ -267,33 +267,33 @@ 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 #, fuzzy #| msgid "Use fractions" msgid "reverse rotation" msgstr "Gunakan pecahan" -#: .\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 "" @@ -409,7 +409,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 "" @@ -445,43 +445,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 "" @@ -1844,14 +1844,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 "" @@ -1866,7 +1866,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 "" @@ -1903,20 +1904,33 @@ 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 #, fuzzy #| msgid "Use fractions" msgid "Migrations" msgstr "Gunakan pecahan" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -1928,19 +1942,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 +2364,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,78 +2401,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 #, fuzzy #| msgid "Users with whom to share shopping lists." msgid "View your shopping lists" diff --git a/cookbook/locale/it/LC_MESSAGES/django.po b/cookbook/locale/it/LC_MESSAGES/django.po index 0f66361b4d..28e3752d1d 100644 --- a/cookbook/locale/it/LC_MESSAGES/django.po +++ b/cookbook/locale/it/LC_MESSAGES/django.po @@ -11,7 +11,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-02-17 19:16+0000\n" "Last-Translator: Andrea <giovannibecco@mailo.com>\n" "Language-Team: Italian <http://translate.tandoor.dev/projects/tandoor/" @@ -277,31 +277,31 @@ msgstr "Hai raggiunto il numero massimo di ricette nella tua istanza." msgid "You have more users than allowed in your space." msgstr "Hai più utenti di quanti permessi nella tua istanza." -#: .\cookbook\helper\recipe_url_import.py:304 +#: .\cookbook\helper\recipe_url_import.py:310 msgid "reverse rotation" msgstr "rotazione inversa" -#: .\cookbook\helper\recipe_url_import.py:305 +#: .\cookbook\helper\recipe_url_import.py:311 msgid "careful rotation" msgstr "rotazione con cura" -#: .\cookbook\helper\recipe_url_import.py:306 +#: .\cookbook\helper\recipe_url_import.py:312 msgid "knead" msgstr "impastare" -#: .\cookbook\helper\recipe_url_import.py:307 +#: .\cookbook\helper\recipe_url_import.py:313 msgid "thicken" msgstr "addensare" -#: .\cookbook\helper\recipe_url_import.py:308 +#: .\cookbook\helper\recipe_url_import.py:314 msgid "warm up" msgstr "riscaldare" -#: .\cookbook\helper\recipe_url_import.py:309 +#: .\cookbook\helper\recipe_url_import.py:315 msgid "ferment" msgstr "fermentare" -#: .\cookbook\helper\recipe_url_import.py:310 +#: .\cookbook\helper\recipe_url_import.py:316 msgid "sous-vide" msgstr "sottovuoto" @@ -423,7 +423,7 @@ msgstr "Pranzo" msgid "Dinner" msgstr "Cena" -#: .\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 "Altro" @@ -463,45 +463,45 @@ msgstr "" "Archiviazione massima in MB. 0 per illimitata, -1 per disabilitare il " "caricamento dei file." -#: .\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 "Cerca" -#: .\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 "Piano alimentare" -#: .\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 "Libri" -#: .\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 "Spesa" -#: .\cookbook\models.py:753 +#: .\cookbook\models.py:752 msgid " is part of a recipe step and cannot be deleted" msgstr " è parte dello step di una ricetta e non può essere eliminato" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 msgid "Nutrition" msgstr "Nutrienti" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 #, fuzzy #| msgid "Merge" msgid "Allergen" msgstr "Unisci" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Price" msgstr "" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Goal" msgstr "" @@ -2016,14 +2016,14 @@ msgid "Media Serving" msgstr "File multimediali" #: .\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 "Attenzione" #: .\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" @@ -2044,7 +2044,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 "È tutto ok!" @@ -2096,20 +2097,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 "Database" -#: .\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 "Usa frazioni" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -2121,19 +2135,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" @@ -2573,7 +2587,7 @@ msgid "There was an error importing this recipe!" msgstr "Si è verificato un errore durante l'importazione di questa ricetta!" #: .\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 "Questa funzione non è disponibile nella versione demo!" @@ -2616,17 +2630,21 @@ msgstr "" msgid "Fuzzy search is not compatible with this search method!" msgstr "La ricerca vaga non è compatibile con questo metodo di ricerca!" -#: .\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" @@ -2644,7 +2662,7 @@ msgstr "" " funzionalità sono disponibili solo con un database Posgres.\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 " @@ -2659,27 +2677,27 @@ msgstr "" "utente! Se hai dimenticato le credenziali del tuo super utente controlla la " "documentazione di Django per resettare le password." -#: .\cookbook\views\views.py:364 +#: .\cookbook\views\views.py:369 msgid "Passwords dont match!" msgstr "Le password non combaciano!" -#: .\cookbook\views\views.py:372 +#: .\cookbook\views\views.py:377 msgid "User has been created, please login!" msgstr "L'utente è stato creato e ora può essere usato per il login!" -#: .\cookbook\views\views.py:388 +#: .\cookbook\views\views.py:393 msgid "Malformed Invite Link supplied!" msgstr "È stato fornito un link di invito non valido!" -#: .\cookbook\views\views.py:405 +#: .\cookbook\views\views.py:410 msgid "Successfully joined space." msgstr "Sei entrato a far parte di questa istanza." -#: .\cookbook\views\views.py:411 +#: .\cookbook\views\views.py:416 msgid "Invite Link not valid or already used!" msgstr "Il link di invito non è valido o è stato già usato!" -#: .\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." @@ -2687,7 +2705,7 @@ msgstr "" "La segnalazione dei link di condivisione non è abilitata per questa istanza. " "Notifica l'amministratore per segnalare i problemi." -#: .\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." @@ -2695,23 +2713,23 @@ msgstr "" "Il link per la condivisione delle ricette è stato disabilitato! Per maggiori " "informazioni contatta l'amministratore." -#: .\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 "Piano" -#: .\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/lv/LC_MESSAGES/django.po b/cookbook/locale/lv/LC_MESSAGES/django.po index 3c85ba9ac4..84b80b1954 100644 --- a/cookbook/locale/lv/LC_MESSAGES/django.po +++ b/cookbook/locale/lv/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: 2023-01-08 17:55+0000\n" "Last-Translator: Joachim Weber <joachim.weber@gmx.de>\n" "Language-Team: Latvian <http://translate.tandoor.dev/projects/tandoor/" @@ -257,33 +257,33 @@ 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 #, fuzzy #| msgid "System Information" msgid "reverse rotation" msgstr "Sistēmas informācija" -#: .\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 "" @@ -407,7 +407,7 @@ msgstr "Pusdienas" msgid "Dinner" msgstr "Vakariņas" -#: .\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 "Cits" @@ -445,45 +445,45 @@ 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 "Meklēt" -#: .\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 "Maltīšu plāns" -#: .\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 "Grāmatas" -#: .\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 "Iepirkšanās" -#: .\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 "Uzturs" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 #, fuzzy #| msgid "Merge" msgid "Allergen" msgstr "Apvienot" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Price" msgstr "" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Goal" msgstr "" @@ -1961,14 +1961,14 @@ msgid "Media Serving" msgstr "Multivides rādīšana" #: .\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 "Brīdinājums" #: .\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" @@ -1990,7 +1990,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 "Viss ir kārtībā!" @@ -2042,20 +2043,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 "Datubāze" -#: .\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 "System Information" msgid "Migrations" msgstr "Sistēmas informācija" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -2067,19 +2081,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 Links" msgid "Show" @@ -2509,7 +2523,7 @@ msgid "There was an error importing this recipe!" msgstr "Importējot šo recepti, radās kļūda!" #: .\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 "" @@ -2546,17 +2560,21 @@ 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 #, fuzzy #| msgid "" #| "\n" @@ -2574,7 +2592,7 @@ msgstr "" " funkcijas darbojas tikai ar Postgres datu bāzēm.\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 " @@ -2589,55 +2607,55 @@ msgstr "" "aizmirsis sava superlietotāja informāciju, lūdzu, skatiet Django " "dokumentāciju par paroļu atiestatīšanu." -#: .\cookbook\views\views.py:364 +#: .\cookbook\views\views.py:369 msgid "Passwords dont match!" msgstr "Paroles nesakrīt!" -#: .\cookbook\views\views.py:372 +#: .\cookbook\views\views.py:377 msgid "User has been created, please login!" msgstr "Lietotājs ir izveidots, lūdzu, piesakieties!" -#: .\cookbook\views\views.py:388 +#: .\cookbook\views\views.py:393 msgid "Malformed Invite Link supplied!" msgstr "Nepareiza uzaicinājuma saite!" -#: .\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 "Uzaicinājuma saite nav derīga vai jau izmantota!" -#: .\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 "Plāns" -#: .\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 "Shopping List" msgid "View your shopping lists" diff --git a/cookbook/locale/nb_NO/LC_MESSAGES/django.po b/cookbook/locale/nb_NO/LC_MESSAGES/django.po index 4d4f337224..445bc575aa 100644 --- a/cookbook/locale/nb_NO/LC_MESSAGES/django.po +++ b/cookbook/locale/nb_NO/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-19 21:36+0000\n" "Last-Translator: NeoID <neoid@animenord.com>\n" "Language-Team: Norwegian Bokmål <http://translate.tandoor.dev/projects/" @@ -256,31 +256,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 "" @@ -400,7 +400,7 @@ msgstr "Lunsj" msgid "Dinner" msgstr "Middag" -#: .\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 "Annet" @@ -438,45 +438,45 @@ 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 "Søk" -#: .\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 "Måltidsplan" -#: .\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øker" -#: .\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 "Handle" -#: .\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 "Næringsinnhold" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 #, fuzzy #| msgid "Merge" msgid "Allergen" msgstr "Slå sammen" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Price" msgstr "" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Goal" msgstr "" @@ -1935,14 +1935,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 "OK" @@ -1957,7 +1957,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 "" @@ -1994,18 +1995,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 "Database" -#: .\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 msgid "Migrations" msgstr "" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -2017,19 +2031,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 help" msgid "Show" @@ -2450,7 +2464,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 "" @@ -2487,78 +2501,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 "Plan" -#: .\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 "Open Shopping List" msgid "View your shopping lists" diff --git a/cookbook/locale/nl/LC_MESSAGES/django.po b/cookbook/locale/nl/LC_MESSAGES/django.po index c210c9dd9b..9d13a8e63f 100644 --- a/cookbook/locale/nl/LC_MESSAGES/django.po +++ b/cookbook/locale/nl/LC_MESSAGES/django.po @@ -12,7 +12,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-02-10 12:20+0000\n" "Last-Translator: Jonan B <jonanb@pm.me>\n" "Language-Team: Dutch <http://translate.tandoor.dev/projects/tandoor/recipes-" @@ -277,31 +277,31 @@ msgstr "Je hebt het maximaal aantal recepten voor jouw ruimte bereikt." msgid "You have more users than allowed in your space." msgstr "Je hebt meer gebruikers dan toegestaan in jouw ruimte." -#: .\cookbook\helper\recipe_url_import.py:304 +#: .\cookbook\helper\recipe_url_import.py:310 msgid "reverse rotation" msgstr "omgekeerde rotatie" -#: .\cookbook\helper\recipe_url_import.py:305 +#: .\cookbook\helper\recipe_url_import.py:311 msgid "careful rotation" msgstr "voorzichtige rotatie" -#: .\cookbook\helper\recipe_url_import.py:306 +#: .\cookbook\helper\recipe_url_import.py:312 msgid "knead" msgstr "kneden" -#: .\cookbook\helper\recipe_url_import.py:307 +#: .\cookbook\helper\recipe_url_import.py:313 msgid "thicken" msgstr "verdikken" -#: .\cookbook\helper\recipe_url_import.py:308 +#: .\cookbook\helper\recipe_url_import.py:314 msgid "warm up" msgstr "opwarmen" -#: .\cookbook\helper\recipe_url_import.py:309 +#: .\cookbook\helper\recipe_url_import.py:315 msgid "ferment" msgstr "gisten" -#: .\cookbook\helper\recipe_url_import.py:310 +#: .\cookbook\helper\recipe_url_import.py:316 msgid "sous-vide" msgstr "sous-vide" @@ -422,7 +422,7 @@ msgstr "Lunch" msgid "Dinner" msgstr "Avondeten" -#: .\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 "Overige" @@ -462,45 +462,45 @@ msgstr "" "Maximale bestandsopslag voor ruimte in MB. 0 voor onbeperkt, -1 om uploaden " "van bestanden uit te schakelen." -#: .\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 "Zoeken" -#: .\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 "Maaltijdplan" -#: .\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 "Boeken" -#: .\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 "Winkelen" -#: .\cookbook\models.py:753 +#: .\cookbook\models.py:752 msgid " is part of a recipe step and cannot be deleted" msgstr " is deel van een receptstap en kan niet verwijderd worden" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 msgid "Nutrition" msgstr "Voedingswaarde" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 #, fuzzy #| msgid "Merge" msgid "Allergen" msgstr "Samenvoegen" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Price" msgstr "" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Goal" msgstr "" @@ -2078,14 +2078,14 @@ msgid "Media Serving" msgstr "Media aanbieder" #: .\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 "Waarschuwing" #: .\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é" @@ -2105,7 +2105,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 is in orde!" @@ -2156,20 +2157,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 "Database" -#: .\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 "Gebruik fracties" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -2181,19 +2195,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" @@ -2677,7 +2691,7 @@ msgid "There was an error importing this recipe!" msgstr "Er is een fout opgetreden bij het importeren van dit recept!" #: .\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 "Deze optie is niet beschikbaar in de demo versie!" @@ -2720,17 +2734,21 @@ msgstr "" msgid "Fuzzy search is not compatible with this search method!" msgstr "'Fuzzy' zoeken is niet te gebruiken met deze zoekmethode!" -#: .\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" @@ -2748,7 +2766,7 @@ msgstr "" " alleen werken met Postgres databases.\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 " @@ -2764,27 +2782,27 @@ msgstr "" "documentatie raad moeten plegen voor een methode om je wachtwoord te " "resetten." -#: .\cookbook\views\views.py:364 +#: .\cookbook\views\views.py:369 msgid "Passwords dont match!" msgstr "Wachtwoorden komen niet overeen!" -#: .\cookbook\views\views.py:372 +#: .\cookbook\views\views.py:377 msgid "User has been created, please login!" msgstr "Gebruiker is gecreëerd, Log in alstublieft!" -#: .\cookbook\views\views.py:388 +#: .\cookbook\views\views.py:393 msgid "Malformed Invite Link supplied!" msgstr "Onjuiste uitnodigingslink opgegeven!" -#: .\cookbook\views\views.py:405 +#: .\cookbook\views\views.py:410 msgid "Successfully joined space." msgstr "Succesvol toegetreden tot ruimte." -#: .\cookbook\views\views.py:411 +#: .\cookbook\views\views.py:416 msgid "Invite Link not valid or already used!" msgstr "De uitnodigingslink is niet valide of al gebruikt!" -#: .\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." @@ -2792,7 +2810,7 @@ msgstr "" "Het rapporteren van gedeelde links is niet geactiveerd voor deze instantie. " "Rapporteer problemen bij de beheerder van de pagina." -#: .\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." @@ -2800,23 +2818,23 @@ msgstr "" "Links voor het delen van recepten zijn gedeactiveerd. Neem contact op met de " "paginabeheerder voor aanvullende informatie." -#: .\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 "Plan" -#: .\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/pl/LC_MESSAGES/django.po b/cookbook/locale/pl/LC_MESSAGES/django.po index 0b49043bca..a589d3bf0d 100644 --- a/cookbook/locale/pl/LC_MESSAGES/django.po +++ b/cookbook/locale/pl/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-03-19 23:47+0000\n" "Last-Translator: Tomasz Klimczak <klemensble@gmail.com>\n" "Language-Team: Polish <http://translate.tandoor.dev/projects/tandoor/recipes-" @@ -261,31 +261,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 "" @@ -407,7 +407,7 @@ msgstr "Lunch" msgid "Dinner" msgstr "Obiad" -#: .\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 "Inne" @@ -445,45 +445,45 @@ 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 "Szukaj" -#: .\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 "Plan posiłków" -#: .\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 "Książki" -#: .\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 "Zakupy" -#: .\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 "Wartość odżywcza" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 #, fuzzy #| msgid "Merge" msgid "Allergen" msgstr "Połącz" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Price" msgstr "" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Goal" msgstr "" @@ -1968,14 +1968,14 @@ msgid "Media Serving" msgstr "Obsługa multimediów" #: .\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 "Uwaga" #: .\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" @@ -1997,7 +1997,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 "Wszystko w porządku!" @@ -2049,18 +2050,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 "Baza danych" -#: .\cookbook\templates\system.html:89 +#: .\cookbook\templates\system.html:100 msgid "Info" msgstr "Informacje" -#: .\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" @@ -2072,19 +2086,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 help" msgid "Show" @@ -2507,7 +2521,7 @@ msgid "There was an error importing this recipe!" msgstr "Wystąpił błąd podczas importu tego przepisu!" #: .\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 "Ta funkcja nie jest dostępna w wersji demo!" @@ -2548,19 +2562,23 @@ msgstr "" msgid "Fuzzy search is not compatible with this search method!" msgstr "Wyszukiwanie rozmyte nie jest kompatybilne z tą metodą wyszukiwania!" -#: .\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 jest przestarzały. Uaktualnij do w pełni obsługiwanej " "wersji!!" -#: .\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 "Używasz PostgreSQL %(v1)s. Zalecany jest PostgreSQL %(v2)s" -#: .\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." @@ -2569,7 +2587,7 @@ msgstr "" "możliwe, ale nie zalecane, ponieważ niektóre funkcje działają tylko z bazami " "danych Postgres." -#: .\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 " @@ -2580,55 +2598,55 @@ msgstr "" "superużytkownika, proszę skonsultuj się z dokumentacją django w celu resetu " "hasła." -#: .\cookbook\views\views.py:364 +#: .\cookbook\views\views.py:369 msgid "Passwords dont match!" msgstr "Hasła się nie zgadzają!" -#: .\cookbook\views\views.py:372 +#: .\cookbook\views\views.py:377 msgid "User has been created, please login!" msgstr "Użytkownik został utworzony, proszę się zalogować!" -#: .\cookbook\views\views.py:388 +#: .\cookbook\views\views.py:393 msgid "Malformed Invite Link supplied!" msgstr "Użyty został nieprawidłowy odnośnik zaproszenia!" -#: .\cookbook\views\views.py:405 +#: .\cookbook\views\views.py:410 msgid "Successfully joined space." msgstr "Pomyślnie dołączono do przestrzeni." -#: .\cookbook\views\views.py:411 +#: .\cookbook\views\views.py:416 msgid "Invite Link not valid or already used!" msgstr "Odnośnik zaproszenia jest nieprawidłowy bądź został już użyty!" -#: .\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 "Planowanie" -#: .\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 "Shopping Lists" msgid "View your shopping lists" diff --git a/cookbook/locale/pt/LC_MESSAGES/django.po b/cookbook/locale/pt/LC_MESSAGES/django.po index 557bfa338e..1b41db17f7 100644 --- a/cookbook/locale/pt/LC_MESSAGES/django.po +++ b/cookbook/locale/pt/LC_MESSAGES/django.po @@ -11,7 +11,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-10-07 18:02+0000\n" "Last-Translator: Guilherme Roda <glealroda@gmail.com>\n" "Language-Team: Portuguese <http://translate.tandoor.dev/projects/tandoor/" @@ -267,31 +267,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 "rotação reversa" -#: .\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 "" @@ -407,7 +407,7 @@ msgstr "Almoço" msgid "Dinner" msgstr "Jantar" -#: .\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 "Outro" @@ -443,45 +443,45 @@ 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 "Procurar" -#: .\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 "Plano de refeição" -#: .\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 "Livros" -#: .\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 "Compras" -#: .\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 #, fuzzy #| msgid "Merge" msgid "Allergen" msgstr "Juntar" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Price" msgstr "" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Goal" msgstr "" @@ -1869,14 +1869,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 "" @@ -1891,7 +1891,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 "" @@ -1928,20 +1929,33 @@ 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 #, fuzzy #| msgid "Use fractions" msgid "Migrations" msgstr "Usar frações" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -1953,19 +1967,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" @@ -2378,7 +2392,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 "" @@ -2415,80 +2429,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 #, fuzzy #| msgid "Meal-Plan" msgid "Plan" msgstr "Plano de refeição" -#: .\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 "Shopping" msgid "View your shopping lists" diff --git a/cookbook/locale/pt_BR/LC_MESSAGES/django.po b/cookbook/locale/pt_BR/LC_MESSAGES/django.po index 747daab772..9893de9738 100644 --- a/cookbook/locale/pt_BR/LC_MESSAGES/django.po +++ b/cookbook/locale/pt_BR/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-10-09 01:54+0000\n" "Last-Translator: Guilherme Roda <glealroda@gmail.com>\n" "Language-Team: Portuguese (Brazil) <http://translate.tandoor.dev/projects/" @@ -258,33 +258,33 @@ 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 #, fuzzy #| msgid "Use fractions" msgid "reverse rotation" msgstr "Usar frações" -#: .\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 "Almoço" msgid "Dinner" msgstr "Jantar" -#: .\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 "Outro" @@ -440,47 +440,47 @@ 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 "Pesquisa" -#: .\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 "Plano de Refeição" -#: .\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 "Livros" -#: .\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 "Compras" -#: .\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 #, fuzzy #| msgid "Automations" msgid "Nutrition" msgstr "Automações" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 #, fuzzy #| msgid "Merge" msgid "Allergen" msgstr "Mesclar" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Price" msgstr "" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Goal" msgstr "" @@ -1874,14 +1874,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 "Alerta" #: .\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" @@ -1896,7 +1896,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 "Tudo está bem!" @@ -1933,20 +1934,33 @@ 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 "Banco de Dados" -#: .\cookbook\templates\system.html:89 +#: .\cookbook\templates\system.html:100 msgid "Info" msgstr "Informação" -#: .\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 "Usar frações" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -1958,19 +1972,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" @@ -2389,7 +2403,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 "" @@ -2426,80 +2440,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 #, fuzzy #| msgid "Meal-Plan" msgid "Plan" msgstr "Plano de Refeição" -#: .\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/rn/LC_MESSAGES/django.po b/cookbook/locale/rn/LC_MESSAGES/django.po index 20c0495ca8..1c68c7ab0c 100644 --- a/cookbook/locale/rn/LC_MESSAGES/django.po +++ b/cookbook/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" @@ -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 <noxonad@proton.me>\n" "Language-Team: Romanian <http://translate.tandoor.dev/projects/tandoor/" @@ -283,33 +283,33 @@ msgstr "Ai ajuns la numărul maxim de rețete pentru spațiul dvs." msgid "You have more users than allowed in your space." msgstr "Aveți mai mulți utilizatori decât este permis în spațiul dvs." -#: .\cookbook\helper\recipe_url_import.py:304 +#: .\cookbook\helper\recipe_url_import.py:310 #, fuzzy #| msgid "Use fractions" msgid "reverse rotation" msgstr "Utilizare fracții" -#: .\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 "" @@ -437,7 +437,7 @@ msgstr "Prânz" msgid "Dinner" msgstr "Cină" -#: .\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 "Altele" @@ -475,47 +475,47 @@ msgstr "" "Spațiu maxim de stocare a fișierelor pentru spațiu în MB. 0 pentru " "nelimitat, -1 pentru a dezactiva încărcarea fișierelor." -#: .\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 "Căutare" -#: .\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 "Plan de alimentare" -#: .\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 "Cărți" -#: .\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 "Cumpărături" -#: .\cookbook\models.py:753 +#: .\cookbook\models.py:752 msgid " is part of a recipe step and cannot be deleted" msgstr " face parte dintr-un pas de rețetă și nu poate fi șters" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 #, fuzzy #| msgid "Automations" msgid "Nutrition" msgstr "Automatizări" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 #, fuzzy #| msgid "Merge" msgid "Allergen" msgstr "Unire" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Price" msgstr "" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Goal" msgstr "" @@ -2153,14 +2153,14 @@ msgid "Media Serving" msgstr "Livrare conținut media" #: .\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 "Atenționare" #: .\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" @@ -2182,7 +2182,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 "Totul este bine!" @@ -2235,20 +2236,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 "Bază de date" -#: .\cookbook\templates\system.html:89 +#: .\cookbook\templates\system.html:100 msgid "Info" msgstr "Informație" -#: .\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 "Utilizare fracții" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -2260,19 +2274,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" @@ -2707,7 +2721,7 @@ msgid "There was an error importing this recipe!" msgstr "A existat o eroare la importul acestei rețete!" #: .\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 "Această funcție nu este disponibilă în versiunea demo!" @@ -2750,17 +2764,21 @@ msgstr "" msgid "Fuzzy search is not compatible with this search method!" msgstr "Căutarea vagă nu este compatibilă cu această metodă de căutare!" -#: .\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" @@ -2778,7 +2796,7 @@ msgstr "" " caracteristicile funcționează numai cu baze de date 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 " @@ -2793,27 +2811,27 @@ msgstr "" "utilizator! Dacă ați uitat datele superutilizatorului, vă rugăm să " "consultați documentația Django despre cum să resetați parolele." -#: .\cookbook\views\views.py:364 +#: .\cookbook\views\views.py:369 msgid "Passwords dont match!" msgstr "Parolele nu se potrivesc!" -#: .\cookbook\views\views.py:372 +#: .\cookbook\views\views.py:377 msgid "User has been created, please login!" msgstr "Utilizatorul a fost creat, vă rugăm să vă autentificați!" -#: .\cookbook\views\views.py:388 +#: .\cookbook\views\views.py:393 msgid "Malformed Invite Link supplied!" msgstr "Link-ul de invitație este furnizat malformat!" -#: .\cookbook\views\views.py:405 +#: .\cookbook\views\views.py:410 msgid "Successfully joined space." msgstr "Spațiu alăturat cu succes." -#: .\cookbook\views\views.py:411 +#: .\cookbook\views\views.py:416 msgid "Invite Link not valid or already used!" msgstr "Link-ul de invitație nu este valid sau deja utilizat!" -#: .\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." @@ -2821,7 +2839,7 @@ msgstr "" "Raportarea linkurilor de partajare nu este activată pentru această instanță. " "Vă rugăm să anunțați administratorul paginii pentru a raporta probleme." -#: .\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." @@ -2829,25 +2847,25 @@ msgstr "" "Partajare link-urilor de rețete a fost dezactivată! Pentru informații " "suplimentare, vă rugăm să contactați administratorul paginii." -#: .\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 #, fuzzy #| msgid "Meal-Plan" msgid "Plan" msgstr "Plan de alimentare" -#: .\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/ru/LC_MESSAGES/django.po b/cookbook/locale/ru/LC_MESSAGES/django.po index e682dad8b7..2e943b4dfd 100644 --- a/cookbook/locale/ru/LC_MESSAGES/django.po +++ b/cookbook/locale/ru/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-05-01 07:55+0000\n" "Last-Translator: axeron2036 <admin@axeron2036.ru>\n" "Language-Team: Russian <http://translate.tandoor.dev/projects/tandoor/" @@ -269,31 +269,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 "" @@ -410,7 +410,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 "" @@ -446,43 +446,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 "" @@ -1853,14 +1853,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 "" @@ -1875,7 +1875,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 "" @@ -1912,18 +1913,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" @@ -1935,19 +1949,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 "" @@ -2359,7 +2373,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 "" @@ -2396,78 +2410,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/locale/sl/LC_MESSAGES/django.po b/cookbook/locale/sl/LC_MESSAGES/django.po index d8e2046c9d..4a4f1d5aa4 100644 --- a/cookbook/locale/sl/LC_MESSAGES/django.po +++ b/cookbook/locale/sl/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-13 08:19+0000\n" "Last-Translator: Miha Perpar <miha.perpar2@gmail.com>\n" "Language-Team: Slovenian <http://translate.tandoor.dev/projects/tandoor/" @@ -270,33 +270,33 @@ 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 #, fuzzy #| msgid "Use fractions" msgid "reverse rotation" msgstr "Uporabi ulomke/frakcije" -#: .\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 "" @@ -416,7 +416,7 @@ msgstr "Kosilo" msgid "Dinner" msgstr "Večerja" -#: .\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 "Ostalo" @@ -452,43 +452,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 "Knjige" -#: .\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 "" @@ -1853,14 +1853,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 "" @@ -1875,7 +1875,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 "" @@ -1912,20 +1913,33 @@ 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 #, fuzzy #| msgid "Use fractions" msgid "Migrations" msgstr "Uporabi ulomke/frakcije" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -1937,19 +1951,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 "" @@ -2362,7 +2376,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 "" @@ -2399,78 +2413,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/locale/sv/LC_MESSAGES/django.po b/cookbook/locale/sv/LC_MESSAGES/django.po index 2c48b9d837..8e9bc61943 100644 --- a/cookbook/locale/sv/LC_MESSAGES/django.po +++ b/cookbook/locale/sv/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: 2024-03-11 13:02+0000\n" "Last-Translator: Kn <kn@users.noreply.translate.tandoor.dev>\n" "Language-Team: Swedish <http://translate.tandoor.dev/projects/tandoor/" @@ -261,31 +261,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 "knåda" -#: .\cookbook\helper\recipe_url_import.py:307 +#: .\cookbook\helper\recipe_url_import.py:313 msgid "thicken" msgstr "förtjocka" -#: .\cookbook\helper\recipe_url_import.py:308 +#: .\cookbook\helper\recipe_url_import.py:314 msgid "warm up" msgstr "Uppvärm" -#: .\cookbook\helper\recipe_url_import.py:309 +#: .\cookbook\helper\recipe_url_import.py:315 msgid "ferment" msgstr "fermentera" -#: .\cookbook\helper\recipe_url_import.py:310 +#: .\cookbook\helper\recipe_url_import.py:316 msgid "sous-vide" msgstr "sous-vide" @@ -404,7 +404,7 @@ msgstr "Lunch" msgid "Dinner" msgstr "Kvällsmat" -#: .\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 "Annat" @@ -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 "Sök" -#: .\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 "Matsedel" -#: .\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öcker" -#: .\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 "Handla" -#: .\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 "Näringsinnehåll" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 msgid "Allergen" msgstr "Allergen" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Price" msgstr "Pris" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Goal" msgstr "Mål" @@ -1966,14 +1966,14 @@ msgid "Media Serving" msgstr "Mediaservering" #: .\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 "Varning" #: .\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" @@ -1994,7 +1994,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 "Allting är bra!" @@ -2046,18 +2047,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 "Databas" -#: .\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 msgid "Migrations" msgstr "migrationer" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -2069,19 +2083,19 @@ msgid "" " " msgstr "" -#: .\cookbook\templates\system.html:171 +#: .\cookbook\templates\system.html:182 msgid "False" msgstr "Falsk" -#: .\cookbook\templates\system.html:171 +#: .\cookbook\templates\system.html:182 msgid "True" msgstr "Sann" -#: .\cookbook\templates\system.html:196 +#: .\cookbook\templates\system.html:207 msgid "Hide" msgstr "Göm" -#: .\cookbook\templates\system.html:199 +#: .\cookbook\templates\system.html:210 #, fuzzy #| msgid "Show help" msgid "Show" @@ -2514,7 +2528,7 @@ msgid "There was an error importing this recipe!" msgstr "Det uppstod ett fel när det här receptet skulle importeras!" #: .\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 "Denna funktion är inte tillgänglig i demoversionen!" @@ -2552,17 +2566,21 @@ 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 #, fuzzy #| msgid "" #| "\n" @@ -2580,7 +2598,7 @@ msgstr "" " funktioner bara fungerar med postgres-databaser.\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 " @@ -2595,55 +2613,55 @@ msgstr "" "Om du har glömt dina superanvändaruppgifter, vänligen läs django-" "dokumentationen om hur du återställer lösenord." -#: .\cookbook\views\views.py:364 +#: .\cookbook\views\views.py:369 msgid "Passwords dont match!" msgstr "Lösenord matchar inte!" -#: .\cookbook\views\views.py:372 +#: .\cookbook\views\views.py:377 msgid "User has been created, please login!" msgstr "Användaren har skapats, vänligen logga in!" -#: .\cookbook\views\views.py:388 +#: .\cookbook\views\views.py:393 msgid "Malformed Invite Link supplied!" msgstr "Felaktig inbjudningslänk!" -#: .\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 "Inbjudningslänken är inte giltig eller redan använd!" -#: .\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 "Planen" -#: .\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 "Shopping Lists" msgid "View your shopping lists" diff --git a/cookbook/locale/tr/LC_MESSAGES/django.mo b/cookbook/locale/tr/LC_MESSAGES/django.mo index 9c29b751d5959f2aa10b9fb3bfb561581c017558..50f00ce7ebae3998de54b3db306ac0f5f51fc990 100644 GIT binary patch literal 4396 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 delta 425 zcmXZXze>YU6bA59TWi|*r>#RPI)thqip3g5EgdWfBBFz(4{%AZZAfAvNflA3i;IiH z)xptO2f@J?5GS8OTwHws2k|>K2R?qBo7|I=$KqY8_mNB75=uv=kPyit?+8~WMwEnE zcmNAfgAN>mVbq_)1p3R!D>#Y%8uIK1I0s+g4f2T$67{GXC$jP24D#SF$QQmLFY*KN zA`N3Yn}gG^0B2wou0a7YvtQ{*p2v3vkW_TW@DK6wahmwwnh*J-{i<1^eJs^@LXPap z)02+h3}|0?QU%GPUJpCIXi1~7v!%ARd3CSV)8^umX)K$S@`n1=@`XL4(dzm})$4-h zX3G<{Te3Rdb0rmz=_{r3YMN?JXdkLTzsT2)L^~9|;Yio^q$_=TeF|((S)&We8k<#b Gne{)#f<d7G diff --git a/cookbook/locale/tr/LC_MESSAGES/django.po b/cookbook/locale/tr/LC_MESSAGES/django.po index e36adfa460..2d59804ea0 100644 --- a/cookbook/locale/tr/LC_MESSAGES/django.po +++ b/cookbook/locale/tr/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-07-03 16:38+0000\n" "Last-Translator: Taylan TATLI <uyelik-tandoor@tatli.me>\n" "Language-Team: Turkish <http://translate.tandoor.dev/projects/tandoor/" @@ -83,8 +83,8 @@ msgid "" "Leave empty for dropbox and enter only base url for nextcloud (<code>/remote." "php/webdav/</code> is added automatically)" msgstr "" -"Dropbox için boş bırakın ve Nextcloud için yalnızca ana URL'yi " -"girin(<code>/remote.php/webdav/</code> otomatik olarak eklenir)" +"Dropbox için boş bırakın ve Nextcloud için yalnızca ana URL'yi girin(<code>/" +"remote.php/webdav/</code> 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 "" @@ -1839,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 "" @@ -1861,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 "" @@ -1898,18 +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 +#: .\cookbook\templates\system.html:110 .\cookbook\templates\system.html:127 msgid "Migrations" msgstr "Göçler" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -1921,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 "" @@ -2344,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 "" @@ -2381,78 +2395,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 "Alışveriş listelerinizi görüntüleyin" 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 <noxonad@proton.me>\n" "Language-Team: Ukrainian <http://translate.tandoor.dev/projects/tandoor/" @@ -245,31 +245,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 "" @@ -385,7 +385,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 "" @@ -421,43 +421,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 "" @@ -1820,14 +1820,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 "" @@ -1842,7 +1842,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 "" @@ -1879,18 +1880,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" @@ -1902,19 +1916,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 "" @@ -2326,7 +2340,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 "" @@ -2363,78 +2377,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/locale/vi/LC_MESSAGES/django.po b/cookbook/locale/vi/LC_MESSAGES/django.po index 185b4c134f..951a61b933 100644 --- a/cookbook/locale/vi/LC_MESSAGES/django.po +++ b/cookbook/locale/vi/LC_MESSAGES/django.po @@ -11,7 +11,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: 2020-06-02 19:28+0000\n" "Last-Translator: Hieu, 2021\n" "Language-Team: Vietnamese (https://www.transifex.com/django-recipes/" @@ -255,31 +255,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 "" @@ -402,7 +402,7 @@ msgstr "Bữa trưa" msgid "Dinner" msgstr "Bữa tối" -#: .\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 "Khác" @@ -438,45 +438,45 @@ 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 "Tìm kiếm" -#: .\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 "Kế hoạch Khẩu phần ăn" -#: .\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 "Sách" -#: .\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 #, fuzzy #| msgid "Merge" msgid "Allergen" msgstr "Gộp" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Price" msgstr "" -#: .\cookbook\models.py:920 +#: .\cookbook\models.py:919 msgid "Goal" msgstr "" @@ -1901,14 +1901,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 "Cảnh báo" #: .\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" @@ -1923,7 +1923,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 "Mọi thứ đều ổn!" @@ -1968,18 +1969,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 "Cơ sở dữ liệu" -#: .\cookbook\templates\system.html:89 +#: .\cookbook\templates\system.html:100 msgid "Info" msgstr "Thông tin" -#: .\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" @@ -1991,19 +2005,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 "" @@ -2421,7 +2435,7 @@ msgid "There was an error importing this recipe!" msgstr "Đã có lỗi xảy ra khi nhập công thức này!" #: .\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 "" @@ -2458,23 +2472,27 @@ 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 #, fuzzy #| msgid "" #| "The setup page can only be used to create the first user! If you have " @@ -2489,55 +2507,55 @@ msgstr "" "định danh của tài khoản quản trị của bạn, xin hãy tham khảo tài liệu django " "để xem cách đặt lại mật khẩu." -#: .\cookbook\views\views.py:364 +#: .\cookbook\views\views.py:369 msgid "Passwords dont match!" msgstr "Mật khẩu không trùng khớp!" -#: .\cookbook\views\views.py:372 +#: .\cookbook\views\views.py:377 msgid "User has been created, please login!" msgstr "Người dùng đã được tạo, xin hãy đăng nhập!" -#: .\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 "Liên kết mời không hợp lệ hoặc đã được sử dụng!" -#: .\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 "Kế hoạch" -#: .\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 "Shopping Lists" msgid "View your shopping lists" diff --git a/cookbook/locale/zh_CN/LC_MESSAGES/django.po b/cookbook/locale/zh_CN/LC_MESSAGES/django.po index d3d4aad03a..261a4ebdcc 100644 --- a/cookbook/locale/zh_CN/LC_MESSAGES/django.po +++ b/cookbook/locale/zh_CN/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: 2024-02-15 03:19+0000\n" "Last-Translator: dalan <xzdlj@outlook.com>\n" "Language-Team: Chinese (Simplified) <http://translate.tandoor.dev/projects/" @@ -254,31 +254,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 "真空烹调法" @@ -394,7 +394,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 "其他" @@ -430,47 +430,47 @@ 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 #, fuzzy #| msgid "Automations" msgid "Nutrition" msgstr "自动化" -#: .\cookbook\models.py:919 +#: .\cookbook\models.py:918 #, fuzzy #| msgid "Merge" 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 "" @@ -1980,14 +1980,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 "好的" @@ -2006,7 +2006,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 "一切都好!" @@ -2055,20 +2056,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 "数据库" -#: .\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 #, fuzzy #| msgid "Use fractions" msgid "Migrations" msgstr "使用分数" -#: .\cookbook\templates\system.html:105 +#: .\cookbook\templates\system.html:116 msgid "" "\n" " Migrations should never fail!\n" @@ -2080,19 +2094,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" @@ -2526,7 +2540,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 "此功能在演示版本中不可用!" @@ -2565,17 +2579,21 @@ 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 #, fuzzy #| msgid "" #| "\n" @@ -2593,7 +2611,7 @@ msgstr "" " 因为有些功能仅适用于 PostgreSQL 数据库。\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 " @@ -2607,57 +2625,57 @@ msgstr "" "设置页面只能用于创建第一个用户!如果您忘记了超级用户凭据,请参阅 Django 文" "档,了解如何重置密码。" -#: .\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 #, fuzzy #| msgid "Meal-Plan" 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 #, fuzzy #| msgid "New Shopping List" msgid "View your shopping lists" diff --git a/cookbook/locale/zh_Hant/LC_MESSAGES/django.mo b/cookbook/locale/zh_Hant/LC_MESSAGES/django.mo index 9be5feb7f2d31505ed0475a2be715f678dc8d996..5d5906795c124fdeb7a9b330291fced74d7333b9 100644 GIT binary patch delta 524 zcmXZYPbh<N9LMqBJkhj2j~Q8!9;KesX0r|Rr?^Oz%V-y*W(Qi^l8e)mNO9dk%0W4> zqU7Ns7dKaz9VBv?i;|O@@_u^0r`PxM{r;Zc^L?I6vu0kudaRm9sZ*a)txBocfKuJK zfNfa8W!%9Qe8*}0lpGDZ{S-RSjY-alD`ElLnHMEn*hk(EDogn(E@<@Qog8?<4)O=) z@E7wque*!hV1oRBYxs==m}P5c(Oq1{Lp1RVo%e)8?%cpmvKg|J(kLcmFon*+8Oe*{ zlJxT!VO~M!iw<Odg6yEqB-`S>_=sNSPw3qLj2V2Jr0AuHa9bIN(K&FAalFMLY=}K! zx1UAlkL}sVTFx6tMdRscB4Z?yqsfu#pRY?Vmx|lQ_(ox?uo)|@=WWw(c$(9(RBX_m T3sjo4#??{vM~~Qby{`QOi%>x} delta 527 zcmXZYKS)AR6vy#vFQV{YW`6{s3<Dvs{F6lz(GU_uLyLwG6{$J(0*6K+q6lhoYN@8c zatNe9OSH5#7ELu24K@@sHUxby?=0_gf9KqH?|H8ps)a6IY~`9wsS~?WZAz&*r&4~* zU^|v@5x21g-!X-sk|QpwK8E_eNy%ApMJ!?meN*xl_LKKqs;nF=&M6Gwjcj<uPVxt4 z@E2Ec-fazfiBa+$=I{rHG0oI^&>dXH0}SCe>U+99RzHYc<UvnaDTBq7G^SB+oRz#F zE=j$BKKdopU$ig%V`K((D)~yh74NZ?{sZdspKu)C^u@g_{G4WD67_~NjNmnnVngin zTJ<#QKek&xG%~HucsLRdM`M9VESX4D{_H*8RDOLekS&@#CkpvZ)6A9XK}W#WJTeqb V)MuO<O-7@7RQYoI>W}Vc;~x(mLiYdw diff --git a/cookbook/locale/zh_Hant/LC_MESSAGES/django.po b/cookbook/locale/zh_Hant/LC_MESSAGES/django.po index 276b1cecfb..96a71c6d95 100644 --- a/cookbook/locale/zh_Hant/LC_MESSAGES/django.po +++ b/cookbook/locale/zh_Hant/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: 2024-05-19 13:38+0000\n" "Last-Translator: only <jeter.nice@gmail.com>\n" "Language-Team: Chinese (Traditional) <http://translate.tandoor.dev/projects/" @@ -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/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 "" From af9a95651dc65af5d19aa26d3d7a5b1765a9ca99 Mon Sep 17 00:00:00 2001 From: vabene1111 <vabene1234@googlemail.com> Date: Mon, 8 Jul 2024 18:13:49 +0200 Subject: [PATCH 49/49] test respect new validation logic --- cookbook/tests/api/test_api_recipe_book_entry.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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):