mirror of
https://github.com/mealie-recipes/mealie.git
synced 2026-06-23 01:10:15 -04:00
Compare commits
45 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
583bd742fb | ||
|
|
af86ed2028 | ||
|
|
80dc1dcaad | ||
|
|
90e184c0fc | ||
|
|
393103662f | ||
|
|
6e2957fb1e | ||
|
|
e7a668e64e | ||
|
|
88577b696b | ||
|
|
289038ba17 | ||
|
|
4aec294c26 | ||
|
|
99a13bd0c4 | ||
|
|
3bd4353685 | ||
|
|
109ec651cc | ||
|
|
166582acf4 | ||
|
|
4bc88e653f | ||
|
|
94e91d3602 | ||
|
|
d6ce607a4e | ||
|
|
9e8822fabe | ||
|
|
0734ec9ce8 | ||
|
|
f4f2b863e0 | ||
|
|
a7fcb6c84d | ||
|
|
abcee51d0c | ||
|
|
8b61f95c8c | ||
|
|
e01bb60aab | ||
|
|
bf5340b902 | ||
|
|
985041e61f | ||
|
|
70edf36073 | ||
|
|
15a0d25caa | ||
|
|
445754c5d8 | ||
|
|
831cd9c543 | ||
|
|
abaf6062c6 | ||
|
|
125c3914b3 | ||
|
|
93cb6bf341 | ||
|
|
46fb2b2c5a | ||
|
|
ac2a77b3b0 | ||
|
|
66a6426d15 | ||
|
|
508ae30133 | ||
|
|
e3c642debf | ||
|
|
af9e0f27a3 | ||
|
|
e07467df57 | ||
|
|
55b91bf847 | ||
|
|
58fc46af9f | ||
|
|
8e4fe55df1 | ||
|
|
f150c3f41e | ||
|
|
36c7ae5b4b |
12
.github/pull_request_template.md
vendored
12
.github/pull_request_template.md
vendored
@@ -1,6 +1,12 @@
|
|||||||
<!--
|
<!--
|
||||||
This template provides some ideas of things to include in your PR description.
|
This template provides some ideas of things to include in your PR description.
|
||||||
To start, try providing a short summary of your changes in the Title above.
|
|
||||||
|
To start, try providing a short summary of your changes in the Title above. We follow Conventional Commits syntax, please ensure your title is prefixed with one of:
|
||||||
|
- `feat: `
|
||||||
|
- `fix: `
|
||||||
|
- `docs: `
|
||||||
|
- `chore: `
|
||||||
|
|
||||||
If a section of the PR template does not apply to this PR, then delete that section.
|
If a section of the PR template does not apply to this PR, then delete that section.
|
||||||
|
|
||||||
PLEASE READ:
|
PLEASE READ:
|
||||||
@@ -36,6 +42,8 @@ _(REQUIRED)_
|
|||||||
Briefly explain any decisions you made with respect to the changes.
|
Briefly explain any decisions you made with respect to the changes.
|
||||||
Include anything here that you didn't include in *Release Notes*
|
Include anything here that you didn't include in *Release Notes*
|
||||||
above, such as changes to CI or changes to internal methods.
|
above, such as changes to CI or changes to internal methods.
|
||||||
|
|
||||||
|
If there is a UI component to the change, please include before/after images.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
## Which issue(s) this PR fixes:
|
## Which issue(s) this PR fixes:
|
||||||
@@ -44,7 +52,7 @@ _(REQUIRED)_
|
|||||||
|
|
||||||
<!--
|
<!--
|
||||||
If this PR fixes one of more issues, list them here.
|
If this PR fixes one of more issues, list them here.
|
||||||
One line each, like so:
|
One per line, like so:
|
||||||
Fixes #123
|
Fixes #123
|
||||||
Fixes #39
|
Fixes #39
|
||||||
-->
|
-->
|
||||||
|
|||||||
41
.github/workflows/pull-request-lint.yml
vendored
Normal file
41
.github/workflows/pull-request-lint.yml
vendored
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
name: Pull Request Linter
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
pull_request:
|
||||||
|
types: [edited] # This captures the PR title changing
|
||||||
|
branches:
|
||||||
|
- mealie-next
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
validate-title:
|
||||||
|
name: Validate PR title
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
# https://github.com/amannn/action-semantic-pull-request
|
||||||
|
- uses: amannn/action-semantic-pull-request@v5
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
with:
|
||||||
|
# Configure which types are allowed (newline-delimited).
|
||||||
|
# Default: https://github.com/commitizen/conventional-commit-types
|
||||||
|
types: |
|
||||||
|
fix
|
||||||
|
feat
|
||||||
|
docs
|
||||||
|
chore
|
||||||
|
# Configure which scopes are allowed (newline-delimited).
|
||||||
|
# These are regex patterns auto-wrapped in `^ $`.
|
||||||
|
scopes: |
|
||||||
|
deps
|
||||||
|
auto
|
||||||
|
l10n
|
||||||
|
# Configure that a scope must always be provided.
|
||||||
|
requireScope: false
|
||||||
|
# If the PR contains one of these newline-delimited labels, the
|
||||||
|
# validation is skipped. If you want to rerun the validation when
|
||||||
|
# labels change, you might want to use the `labeled` and `unlabeled`
|
||||||
|
# event triggers in your workflow.
|
||||||
|
ignoreLabels: |
|
||||||
|
bot
|
||||||
|
ignore-semantic-pull-request
|
||||||
4
.github/workflows/pull-requests.yml
vendored
4
.github/workflows/pull-requests.yml
vendored
@@ -6,6 +6,10 @@ on:
|
|||||||
- mealie-next
|
- mealie-next
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
pull-request-lint:
|
||||||
|
name: "Lint PR"
|
||||||
|
uses: ./.github/workflows/pull-request-lint.yml
|
||||||
|
|
||||||
backend-tests:
|
backend-tests:
|
||||||
name: "Backend Server Tests"
|
name: "Backend Server Tests"
|
||||||
uses: ./.github/workflows/partial-backend.yml
|
uses: ./.github/workflows/partial-backend.yml
|
||||||
|
|||||||
18
README.md
18
README.md
@@ -18,9 +18,9 @@
|
|||||||
<h3 align="center">Mealie</h3>
|
<h3 align="center">Mealie</h3>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
A Place for All Your Recipes
|
A Place For All Your Recipes
|
||||||
<br />
|
<br />
|
||||||
<a href="https://nightly.mealie.io"><strong>Explore the docs »</strong></a>
|
<a href="https://docs.mealie.io/"><strong>Explore the docs »</strong></a>
|
||||||
<a href="https://github.com/mealie-recipes/mealie">
|
<a href="https://github.com/mealie-recipes/mealie">
|
||||||
</a>
|
</a>
|
||||||
<br />
|
<br />
|
||||||
@@ -38,12 +38,20 @@
|
|||||||
|
|
||||||
# About The Project
|
# About The Project
|
||||||
|
|
||||||
Mealie is a self hosted recipe manager and meal planner with a RestAPI backend and a reactive frontend application built in Vue for a pleasant user experience for the whole family. Easily add recipes into your database by providing the URL and Mealie will automatically import the relevant data, or add a family recipe with the UI editor. Mealie also provides an API for interactions from 3rd party applications.
|
Mealie is a self hosted recipe manager, meal planner and shopping list with a RestAPI backend and a reactive frontend built in Vue for a pleasant user experience for the whole family. Easily add recipes into your database by providing the URL and Mealie will automatically import the relevant data, or add a family recipe with the UI editor. Mealie also provides an API for interactions from 3rd party applications.
|
||||||
|
|
||||||
- [Remember to join the Discord](https://discord.gg/QuStdQGSGK)!
|
- [Remember to join the Discord](https://discord.gg/QuStdQGSGK)!
|
||||||
- [Documentation](https://nightly.mealie.io)
|
- [Documentation](https://docs.mealie.io/)
|
||||||
|
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
- Recipe imports: Create recipes, by **importing from a URL** or entering data manually
|
||||||
|
- Meal Planner: Use the **Meal Planner** to plan your what you'll cook for the next week
|
||||||
|
- Shopping List: Put the necessary ingredients on your **Shopping List**, organised into sections of your local supermarket
|
||||||
|
- Cookbooks: Group recipes into **Cookbooks** based on your own criteria
|
||||||
|
- Docker: Easy **Docker** deployment
|
||||||
|
- Localisation: **Translations** for 35+ languages
|
||||||
|
|
||||||
<!-- CONTRIBUTING -->
|
<!-- CONTRIBUTING -->
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
@@ -58,7 +66,7 @@ If you are not a coder, you can still contribute financially. Financial contribu
|
|||||||
|
|
||||||
### Translations
|
### Translations
|
||||||
|
|
||||||
Translations can be a great way for **non-coders** to contribute to project. We use [Crowdin](https://crowdin.com/project/mealie) to allow several contributors to work on translating Mealie. You can simply help by voting for your preferred translations, or even by completely translating Mealie into a new language.
|
Translations can be a great way for **non-coders** to contribute to the project. We use [Crowdin](https://crowdin.com/project/mealie) to allow several contributors to work on translating Mealie. You can simply help by voting for your preferred translations, or even by completely translating Mealie into a new language.
|
||||||
|
|
||||||
For more information, check out the translation page on the [contributor's guide](https://nightly.mealie.io/contributors/translating/).
|
For more information, check out the translation page on the [contributor's guide](https://nightly.mealie.io/contributors/translating/).
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,8 @@
|
|||||||
preserve_hierarchy: false
|
preserve_hierarchy: false
|
||||||
|
pull_request_title: "chore(l10n): New Crowdin updates"
|
||||||
|
pull_request_labels: [
|
||||||
|
"l10n"
|
||||||
|
]
|
||||||
files:
|
files:
|
||||||
- source: /frontend/lang/messages/en-US.json
|
- source: /frontend/lang/messages/en-US.json
|
||||||
translation: /frontend/lang/messages/%locale%.json
|
translation: /frontend/lang/messages/%locale%.json
|
||||||
|
|||||||
@@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
[Please Join the Discord](https://discord.gg/QuStdQGSGK). We are building a community of developers working on the project.
|
[Please Join the Discord](https://discord.gg/QuStdQGSGK). We are building a community of developers working on the project.
|
||||||
|
|
||||||
## We Develop with Github
|
## We Develop with GitHub
|
||||||
We use github to host code, to track issues and feature requests, as well as accept pull requests.
|
We use GitHub to host code, to track issues and feature requests, as well as accept pull requests.
|
||||||
|
|
||||||
## We Use [Github Flow](https://docs.github.com/en/get-started/using-github/github-flow), So All Code Changes Happen Through Pull Requests
|
## We Use [GitHub Flow](https://docs.github.com/en/get-started/using-github/github-flow), So All Code Changes Happen Through Pull Requests
|
||||||
Pull requests are the best way to propose changes to the codebase (we use [Github Flow](https://docs.github.com/en/get-started/using-github/github-flow)). We actively welcome your pull requests:
|
Pull requests are the best way to propose changes to the codebase (we use [GitHub Flow](https://docs.github.com/en/get-started/using-github/github-flow)). We actively welcome your pull requests:
|
||||||
|
|
||||||
1. Fork the repo and create your branch from `mealie-next`.
|
1. Fork the repo and create your branch from `mealie-next`.
|
||||||
2. Checkout the Discord, the PRs page, or the Projects page to get an idea of what's already being worked on.
|
2. Checkout the Discord, the PRs page, or the Projects page to get an idea of what's already being worked on.
|
||||||
@@ -14,13 +14,13 @@ Pull requests are the best way to propose changes to the codebase (we use [Githu
|
|||||||
4. Once you've got an idea of what changes you want to make, create a draft PR as soon as you can to let us know what you're working on and how we can help!
|
4. Once you've got an idea of what changes you want to make, create a draft PR as soon as you can to let us know what you're working on and how we can help!
|
||||||
5. If you've changed APIs, update the documentation.
|
5. If you've changed APIs, update the documentation.
|
||||||
6. Run tests, including `task py:check`.
|
6. Run tests, including `task py:check`.
|
||||||
6. Issue that pull request! First make a draft PR, make sure that the automated github tests all pass, then mark as ready for review.
|
7. Issue that pull request! First make a draft PR, make sure that the automated GitHub tests all pass, then mark as ready for review. We follow Conventional Commits syntax; please title your PR as described in the PR template.
|
||||||
7. Be sure to add release notes to the pull request.
|
8. Be sure to add release notes to the pull request.
|
||||||
|
|
||||||
## Any contributions you make will be under the AGPL Software License
|
## Any contributions you make will be under the AGPL Software License
|
||||||
In short, when you submit code changes, your submissions are understood to be under the same [AGPL License](https://choosealicense.com/licenses/agpl-3.0/) that covers the project. Feel free to contact the maintainers if that's a concern.
|
In short, when you submit code changes, your submissions are understood to be under the same [AGPL License](https://choosealicense.com/licenses/agpl-3.0/) that covers the project. Feel free to contact the maintainers if that's a concern.
|
||||||
|
|
||||||
## Report bugs using Github's [issues](https://github.com/mealie-recipes/mealie/issues)
|
## Report bugs using GitHub's [issues](https://github.com/mealie-recipes/mealie/issues)
|
||||||
We use GitHub issues to track public bugs. Report a bug by [opening a new issue](https://github.com/mealie-recipes/mealie/issues/new); it's that easy!
|
We use GitHub issues to track public bugs. Report a bug by [opening a new issue](https://github.com/mealie-recipes/mealie/issues/new); it's that easy!
|
||||||
|
|
||||||
## Write bug reports with detail, background, and sample code
|
## Write bug reports with detail, background, and sample code
|
||||||
|
|||||||
@@ -14,10 +14,14 @@ Mealie offers two main ways to create recipes. You can use the integrated recipe
|
|||||||
|
|
||||||
Mealie supports importing recipes from a few other sources besides websites. Currently the following sources are supported:
|
Mealie supports importing recipes from a few other sources besides websites. Currently the following sources are supported:
|
||||||
|
|
||||||
- Mealie Pre v1
|
- Tandoor
|
||||||
- Nextcloud Cookbooks
|
- Nextcloud Cookbooks
|
||||||
- Paprika
|
- Paprika
|
||||||
- Chowdown
|
- Chowdown
|
||||||
|
- Plan to Eat
|
||||||
|
- Recipe Keeper
|
||||||
|
- Copy Me That
|
||||||
|
- My Recipe Box
|
||||||
|
|
||||||
You can access these options on your installation at the `/group/migrations` page on your installation. If you'd like to see another source added, feel free to request so on Github.
|
You can access these options on your installation at the `/group/migrations` page on your installation. If you'd like to see another source added, feel free to request so on Github.
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,8 @@
|
|||||||
| TZ | UTC | Must be set to get correct date/time on the server |
|
| TZ | UTC | Must be set to get correct date/time on the server |
|
||||||
| ALLOW_SIGNUP<super>\*</super> | false | Allow user sign-up without token |
|
| ALLOW_SIGNUP<super>\*</super> | false | Allow user sign-up without token |
|
||||||
| LOG_CONFIG_OVERRIDE | | Override the config for logging with a custom path |
|
| LOG_CONFIG_OVERRIDE | | Override the config for logging with a custom path |
|
||||||
| LOG_LEVEL | info | logging level configured |
|
| LOG_LEVEL | info | Logging level (e.g. critical, error, warning, info, debug, trace) |
|
||||||
|
| DAILY_SCHEDULE_TIME | 23:45 | The time of day to run the daily tasks. |
|
||||||
|
|
||||||
<super>\*</super> Starting in v1.4.0 this was changed to default to `false` as apart of a security review of the application.
|
<super>\*</super> Starting in v1.4.0 this was changed to default to `false` as apart of a security review of the application.
|
||||||
|
|
||||||
@@ -137,6 +138,28 @@ Setting the following environmental variables will change the theme of the front
|
|||||||
| THEME_DARK_WARNING | #FF6D00 | Dark Theme Config Variable |
|
| THEME_DARK_WARNING | #FF6D00 | Dark Theme Config Variable |
|
||||||
| THEME_DARK_ERROR | #EF5350 | Dark Theme Config Variable |
|
| THEME_DARK_ERROR | #EF5350 | Dark Theme Config Variable |
|
||||||
|
|
||||||
|
### Docker Secrets
|
||||||
|
|
||||||
|
Setting a credential can be done using secrets when running in a Docker container.
|
||||||
|
This can be used to avoid leaking passwords through compose files, environment variables, or command-line history.
|
||||||
|
For example, to configure the Postgres database password in Docker compose, create a file on the host that contains only the password, and expose that file to the Mealie service as a secret with the correct name.
|
||||||
|
Note that environment variables take priority over secrets, so any previously defined environment variables should be removed when migrating to secrets.
|
||||||
|
|
||||||
|
```
|
||||||
|
services:
|
||||||
|
mealie:
|
||||||
|
...
|
||||||
|
environment:
|
||||||
|
...
|
||||||
|
POSTGRES_USER: postgres
|
||||||
|
secrets:
|
||||||
|
- POSTGRES_PASSWORD
|
||||||
|
|
||||||
|
secrets:
|
||||||
|
POSTGRES_PASSWORD:
|
||||||
|
file: postgrespassword.txt
|
||||||
|
```
|
||||||
|
|
||||||
[workers_per_core]: https://github.com/tiangolo/uvicorn-gunicorn-docker/blob/2daa3e3873c837d5781feb4ff6a40a89f791f81b/README.md#workers_per_core
|
[workers_per_core]: https://github.com/tiangolo/uvicorn-gunicorn-docker/blob/2daa3e3873c837d5781feb4ff6a40a89f791f81b/README.md#workers_per_core
|
||||||
[max_workers]: https://github.com/tiangolo/uvicorn-gunicorn-docker/blob/2daa3e3873c837d5781feb4ff6a40a89f791f81b/README.md#max_workers
|
[max_workers]: https://github.com/tiangolo/uvicorn-gunicorn-docker/blob/2daa3e3873c837d5781feb4ff6a40a89f791f81b/README.md#max_workers
|
||||||
[web_concurrency]: https://github.com/tiangolo/uvicorn-gunicorn-docker/blob/2daa3e3873c837d5781feb4ff6a40a89f791f81b/README.md#web_concurrency
|
[web_concurrency]: https://github.com/tiangolo/uvicorn-gunicorn-docker/blob/2daa3e3873c837d5781feb4ff6a40a89f791f81b/README.md#web_concurrency
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ PostgreSQL might be considered if you need to support many concurrent users. In
|
|||||||
```yaml
|
```yaml
|
||||||
services:
|
services:
|
||||||
mealie:
|
mealie:
|
||||||
image: ghcr.io/mealie-recipes/mealie:v1.6.0 # (3)
|
image: ghcr.io/mealie-recipes/mealie:v1.7.0 # (3)
|
||||||
container_name: mealie
|
container_name: mealie
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ SQLite is a popular, open source, self-contained, zero-configuration database th
|
|||||||
```yaml
|
```yaml
|
||||||
services:
|
services:
|
||||||
mealie:
|
mealie:
|
||||||
image: ghcr.io/mealie-recipes/mealie:v1.6.0 # (3)
|
image: ghcr.io/mealie-recipes/mealie:v1.7.0 # (3)
|
||||||
container_name: mealie
|
container_name: mealie
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
</v-list-item-icon>
|
</v-list-item-icon>
|
||||||
<v-list-item-title>{{ item.text }}</v-list-item-title>
|
<v-list-item-title>{{ item.text }}</v-list-item-title>
|
||||||
</v-list-item>
|
</v-list-item>
|
||||||
<v-divider v-if="item.divider" :key="`divider-${index}`" class="my-1" ></v-divider>\
|
<v-divider v-if="item.divider" :key="`divider-${index}`" class="my-1" ></v-divider>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</v-list-item-group>
|
</v-list-item-group>
|
||||||
@@ -80,7 +80,7 @@ export interface MenuItem {
|
|||||||
value?: string;
|
value?: string;
|
||||||
event?: string;
|
event?: string;
|
||||||
divider?: boolean;
|
divider?: boolean;
|
||||||
hide?:boolean;
|
hide?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
|
|||||||
@@ -18,6 +18,10 @@ export enum ImagePosition {
|
|||||||
right = "right",
|
right = "right",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface UserMealPlanPreferences {
|
||||||
|
numberOfDays: number;
|
||||||
|
}
|
||||||
|
|
||||||
export interface UserRecipePreferences {
|
export interface UserRecipePreferences {
|
||||||
orderBy: string;
|
orderBy: string;
|
||||||
orderDirection: string;
|
orderDirection: string;
|
||||||
@@ -40,6 +44,20 @@ export interface UserParsingPreferences {
|
|||||||
parser: RegisteredParser;
|
parser: RegisteredParser;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function useUserMealPlanPreferences(): Ref<UserMealPlanPreferences> {
|
||||||
|
const fromStorage = useLocalStorage(
|
||||||
|
"meal-planner-preferences",
|
||||||
|
{
|
||||||
|
numberOfDays: 7,
|
||||||
|
},
|
||||||
|
{ mergeDefaults: true }
|
||||||
|
// we cast to a Ref because by default it will return an optional type ref
|
||||||
|
// but since we pass defaults we know all properties are set.
|
||||||
|
) as unknown as Ref<UserMealPlanPreferences>;
|
||||||
|
|
||||||
|
return fromStorage;
|
||||||
|
}
|
||||||
|
|
||||||
export function useUserPrintPreferences(): Ref<UserPrintPreferences> {
|
export function useUserPrintPreferences(): Ref<UserPrintPreferences> {
|
||||||
const fromStorage = useLocalStorage(
|
const fromStorage = useLocalStorage(
|
||||||
"recipe-print-preferences",
|
"recipe-print-preferences",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Maaltydplan opgedateer",
|
"mealplan-updated": "Maaltydplan opgedateer",
|
||||||
"no-meal-plan-defined-yet": "Nog geen maaltydplan opgestel nie",
|
"no-meal-plan-defined-yet": "Nog geen maaltydplan opgestel nie",
|
||||||
"no-meal-planned-for-today": "Geen maaltyd beplan vir vandag nie",
|
"no-meal-planned-for-today": "Geen maaltyd beplan vir vandag nie",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Slegs resepte met hierdie kategorieë sal in maaltydplanne gebruik word",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Slegs resepte met hierdie kategorieë sal in maaltydplanne gebruik word",
|
||||||
"planner": "Beplanner",
|
"planner": "Beplanner",
|
||||||
"quick-week": "Vinnige week",
|
"quick-week": "Vinnige week",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Back-up gemaak op {path}",
|
"backup-created-at-response-export_path": "Back-up gemaak op {path}",
|
||||||
"backup-deleted": "Back-up verwyder",
|
"backup-deleted": "Back-up verwyder",
|
||||||
"restore-success": "Restore successful",
|
"restore-success": "Restore successful",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Back-up merker",
|
"backup-tag": "Back-up merker",
|
||||||
"create-heading": "Maak 'n back-up",
|
"create-heading": "Maak 'n back-up",
|
||||||
"delete-backup": "Verwyder back-up",
|
"delete-backup": "Verwyder back-up",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "تم تحديث خطة الوجبات",
|
"mealplan-updated": "تم تحديث خطة الوجبات",
|
||||||
"no-meal-plan-defined-yet": "لم يتم تحديد خطة بعد",
|
"no-meal-plan-defined-yet": "لم يتم تحديد خطة بعد",
|
||||||
"no-meal-planned-for-today": "لم يتم تخطيط وجبة لهذا اليوم",
|
"no-meal-planned-for-today": "لم يتم تخطيط وجبة لهذا اليوم",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "فقط الوجبات التي تحتوي على التصنيفات التالية سوف تستخدم لإنشاء خطتك",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "فقط الوجبات التي تحتوي على التصنيفات التالية سوف تستخدم لإنشاء خطتك",
|
||||||
"planner": "المخطط",
|
"planner": "المخطط",
|
||||||
"quick-week": "Quick Week",
|
"quick-week": "Quick Week",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Backup Created at {path}",
|
"backup-created-at-response-export_path": "Backup Created at {path}",
|
||||||
"backup-deleted": "Backup deleted",
|
"backup-deleted": "Backup deleted",
|
||||||
"restore-success": "Restore successful",
|
"restore-success": "Restore successful",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Backup Tag",
|
"backup-tag": "Backup Tag",
|
||||||
"create-heading": "Create a Backup",
|
"create-heading": "Create a Backup",
|
||||||
"delete-backup": "Delete Backup",
|
"delete-backup": "Delete Backup",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Седмичното меню бе обновено",
|
"mealplan-updated": "Седмичното меню бе обновено",
|
||||||
"no-meal-plan-defined-yet": "Все още няма създадено седмично меню",
|
"no-meal-plan-defined-yet": "Все още няма създадено седмично меню",
|
||||||
"no-meal-planned-for-today": "За днес няма планирано меню",
|
"no-meal-planned-for-today": "За днес няма планирано меню",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Само рецептите от тези категории ще бъдат използвани в хранителните планове",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Само рецептите от тези категории ще бъдат използвани в хранителните планове",
|
||||||
"planner": "Планьор",
|
"planner": "Планьор",
|
||||||
"quick-week": "Бърза седмица",
|
"quick-week": "Бърза седмица",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "Моята кутия с рецепти",
|
"title": "Моята кутия с рецепти",
|
||||||
"description-long": "Mealie може да импортира рецепти от Моята кутия за рецепти. Експортирайте рецептите си в CSV формат, после качете .csv файлът по-долу."
|
"description-long": "Mealie може да импортира рецепти от Моята кутия за рецепти. Експортирайте рецептите си в CSV формат, после качете .csv файлът по-долу."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Резервно копие е създадено на {path}",
|
"backup-created-at-response-export_path": "Резервно копие е създадено на {path}",
|
||||||
"backup-deleted": "Резервното копие е изтрито",
|
"backup-deleted": "Резервното копие е изтрито",
|
||||||
"restore-success": "Успешно възстановяване",
|
"restore-success": "Успешно възстановяване",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Етикет на резервното копие",
|
"backup-tag": "Етикет на резервното копие",
|
||||||
"create-heading": "Създай резервно копие",
|
"create-heading": "Създай резервно копие",
|
||||||
"delete-backup": "Изтрий резервно копие",
|
"delete-backup": "Изтрий резервно копие",
|
||||||
|
|||||||
@@ -64,7 +64,7 @@
|
|||||||
"something-went-wrong": "Alguna cosa ha anat malament!",
|
"something-went-wrong": "Alguna cosa ha anat malament!",
|
||||||
"subscribed-events": "Esdeveniments subscrits",
|
"subscribed-events": "Esdeveniments subscrits",
|
||||||
"test-message-sent": "S'ha enviat el missatge",
|
"test-message-sent": "S'ha enviat el missatge",
|
||||||
"message-sent": "Message Sent",
|
"message-sent": "Missatge enviat",
|
||||||
"new-notification": "Nova notificació",
|
"new-notification": "Nova notificació",
|
||||||
"event-notifiers": "Notificacions d'esdeveniments",
|
"event-notifiers": "Notificacions d'esdeveniments",
|
||||||
"apprise-url-skipped-if-blank": "Apprise URL (si es deixa buit, s'ignorarà)",
|
"apprise-url-skipped-if-blank": "Apprise URL (si es deixa buit, s'ignorarà)",
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
"recipe-events": "Esdeveniments de receptes"
|
"recipe-events": "Esdeveniments de receptes"
|
||||||
},
|
},
|
||||||
"general": {
|
"general": {
|
||||||
"add": "Add",
|
"add": "Afegeix",
|
||||||
"cancel": "Anuŀla",
|
"cancel": "Anuŀla",
|
||||||
"clear": "Neteja",
|
"clear": "Neteja",
|
||||||
"close": "Tanca",
|
"close": "Tanca",
|
||||||
@@ -145,23 +145,23 @@
|
|||||||
"save": "Desa",
|
"save": "Desa",
|
||||||
"settings": "Configuració",
|
"settings": "Configuració",
|
||||||
"share": "Compartiu",
|
"share": "Compartiu",
|
||||||
"show-all": "Show All",
|
"show-all": "Mostra-ho tot",
|
||||||
"shuffle": "Barreja",
|
"shuffle": "Barreja",
|
||||||
"sort": "Ordena",
|
"sort": "Ordena",
|
||||||
"sort-ascending": "Sort Ascending",
|
"sort-ascending": "Ordre ascendent",
|
||||||
"sort-descending": "Sort Descending",
|
"sort-descending": "Ordre descendent",
|
||||||
"sort-alphabetically": "Alfabèticament",
|
"sort-alphabetically": "Alfabèticament",
|
||||||
"status": "Estat",
|
"status": "Estat",
|
||||||
"subject": "Assumpte",
|
"subject": "Assumpte",
|
||||||
"submit": "Envia",
|
"submit": "Envia",
|
||||||
"success-count": "Amb èxit: {count}",
|
"success-count": "Amb èxit: {count}",
|
||||||
"sunday": "Diumenge",
|
"sunday": "Diumenge",
|
||||||
"system": "System",
|
"system": "Sistema",
|
||||||
"templates": "Plantilles:",
|
"templates": "Plantilles:",
|
||||||
"test": "Prova",
|
"test": "Prova",
|
||||||
"themes": "Temes",
|
"themes": "Temes",
|
||||||
"thursday": "Dijous",
|
"thursday": "Dijous",
|
||||||
"title": "Title",
|
"title": "Títol",
|
||||||
"token": "Token",
|
"token": "Token",
|
||||||
"tuesday": "Dimarts",
|
"tuesday": "Dimarts",
|
||||||
"type": "Tipus",
|
"type": "Tipus",
|
||||||
@@ -176,7 +176,7 @@
|
|||||||
"units": "Unitats",
|
"units": "Unitats",
|
||||||
"back": "Torna",
|
"back": "Torna",
|
||||||
"next": "Següent",
|
"next": "Següent",
|
||||||
"start": "Start",
|
"start": "Comença",
|
||||||
"toggle-view": "Commuta la visualització",
|
"toggle-view": "Commuta la visualització",
|
||||||
"date": "Data",
|
"date": "Data",
|
||||||
"id": "Id",
|
"id": "Id",
|
||||||
@@ -210,7 +210,7 @@
|
|||||||
"unsaved-changes": "Tens canvis que no estan guardats. Vols guardar-los abans de sortir? Clica d'acord per guardar-los o cancel·lar per descartar els canvis.",
|
"unsaved-changes": "Tens canvis que no estan guardats. Vols guardar-los abans de sortir? Clica d'acord per guardar-los o cancel·lar per descartar els canvis.",
|
||||||
"clipboard-copy-failure": "No s'ha pogut copiar al porta-retalls.",
|
"clipboard-copy-failure": "No s'ha pogut copiar al porta-retalls.",
|
||||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?",
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?",
|
||||||
"organizers": "Organizers"
|
"organizers": "Organitzadors"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Esteu segur de voler suprimir el grup <b>{groupName}<b/>?",
|
"are-you-sure-you-want-to-delete-the-group": "Esteu segur de voler suprimir el grup <b>{groupName}<b/>?",
|
||||||
@@ -246,7 +246,7 @@
|
|||||||
"group-preferences": "Preferències per grup",
|
"group-preferences": "Preferències per grup",
|
||||||
"private-group": "Grup privat",
|
"private-group": "Grup privat",
|
||||||
"private-group-description": "Marcar el grup com a privat afectarà a totes les opcions de visualització pública per defecte. Podeu canviar-les individualment en les opcions de visualització de cada recepta.",
|
"private-group-description": "Marcar el grup com a privat afectarà a totes les opcions de visualització pública per defecte. Podeu canviar-les individualment en les opcions de visualització de cada recepta.",
|
||||||
"enable-public-access": "Enable Public Access",
|
"enable-public-access": "Permetre l'accés públic",
|
||||||
"enable-public-access-description": "Make group recipes public by default, and allow visitors to view recipes without logging-in",
|
"enable-public-access-description": "Make group recipes public by default, and allow visitors to view recipes without logging-in",
|
||||||
"allow-users-outside-of-your-group-to-see-your-recipes": "Permeteu als usuaris d'altres grups, visualitzar les vostres receptes",
|
"allow-users-outside-of-your-group-to-see-your-recipes": "Permeteu als usuaris d'altres grups, visualitzar les vostres receptes",
|
||||||
"allow-users-outside-of-your-group-to-see-your-recipes-description": "Si ho habiliteu, podreu compartir enllaços públics de receptes específiques sense autoritzar l'usuari. Si està deshabilitat, només podreu compartir amb usuaris del vostre grup o generant enllaços privats",
|
"allow-users-outside-of-your-group-to-see-your-recipes-description": "Si ho habiliteu, podreu compartir enllaços públics de receptes específiques sense autoritzar l'usuari. Si està deshabilitat, només podreu compartir amb usuaris del vostre grup o generant enllaços privats",
|
||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "S'ha actualitzat el menú",
|
"mealplan-updated": "S'ha actualitzat el menú",
|
||||||
"no-meal-plan-defined-yet": "No hi ha cap menú planificat",
|
"no-meal-plan-defined-yet": "No hi ha cap menú planificat",
|
||||||
"no-meal-planned-for-today": "No hi han cap menú per a hui",
|
"no-meal-planned-for-today": "No hi han cap menú per a hui",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Dies per defecte",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Només s'utilitzaran aquestes categories per als menús",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Només s'utilitzaran aquestes categories per als menús",
|
||||||
"planner": "Planificador",
|
"planner": "Planificador",
|
||||||
"quick-week": "Pla ràpid",
|
"quick-week": "Pla ràpid",
|
||||||
@@ -375,8 +377,12 @@
|
|||||||
"description-long": "Mealie pot importar receptes de Plan to Eat."
|
"description-long": "Mealie pot importar receptes de Plan to Eat."
|
||||||
},
|
},
|
||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "La Meva Caixa de Receptes",
|
||||||
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -511,8 +517,8 @@
|
|||||||
"cook-mode": "Mode \"cuinant\"",
|
"cook-mode": "Mode \"cuinant\"",
|
||||||
"link-ingredients": "Enllaça amb els ingredients",
|
"link-ingredients": "Enllaça amb els ingredients",
|
||||||
"merge-above": "Fusiona amb el de dalt",
|
"merge-above": "Fusiona amb el de dalt",
|
||||||
"move-to-bottom": "Move To Bottom",
|
"move-to-bottom": "Moure al Final",
|
||||||
"move-to-top": "Move To Top",
|
"move-to-top": "Moure al Principi",
|
||||||
"reset-scale": "Reinicialitza",
|
"reset-scale": "Reinicialitza",
|
||||||
"decrease-scale-label": "Divideix",
|
"decrease-scale-label": "Divideix",
|
||||||
"increase-scale-label": "Multiplica",
|
"increase-scale-label": "Multiplica",
|
||||||
@@ -549,8 +555,8 @@
|
|||||||
"looking-for-migrations": "Estàs buscant migracions?",
|
"looking-for-migrations": "Estàs buscant migracions?",
|
||||||
"import-with-url": "Importar amb l'URL",
|
"import-with-url": "Importar amb l'URL",
|
||||||
"create-recipe": "Crea la recepta",
|
"create-recipe": "Crea la recepta",
|
||||||
"create-recipe-description": "Create a new recipe from scratch.",
|
"create-recipe-description": "Crea una nova recepta des de zero.",
|
||||||
"create-recipes": "Create Recipes",
|
"create-recipes": "Crea Receptes",
|
||||||
"import-with-zip": "Importar amb un .zip",
|
"import-with-zip": "Importar amb un .zip",
|
||||||
"create-recipe-from-an-image": "Crea la recepta a partir d'una imatge",
|
"create-recipe-from-an-image": "Crea la recepta a partir d'una imatge",
|
||||||
"bulk-url-import": "Importació d'URL en massa",
|
"bulk-url-import": "Importació d'URL en massa",
|
||||||
@@ -584,8 +590,8 @@
|
|||||||
"upload-image": "Puja una imatge",
|
"upload-image": "Puja una imatge",
|
||||||
"screen-awake": "Mantenir la pantalla encesa",
|
"screen-awake": "Mantenir la pantalla encesa",
|
||||||
"remove-image": "Esborrar la imatge",
|
"remove-image": "Esborrar la imatge",
|
||||||
"nextStep": "Next step",
|
"nextStep": "Següent pas",
|
||||||
"recipe-actions": "Recipe Actions",
|
"recipe-actions": "Accions de la Recepta",
|
||||||
"parser": {
|
"parser": {
|
||||||
"experimental-alert-text": "Mealie uses natural language processing to parse and create units and food items for your recipe ingredients. This feature is experimental and may not always work as expected. If you prefer not to use the parsed results, you can select 'Cancel' and your changes will not be saved.",
|
"experimental-alert-text": "Mealie uses natural language processing to parse and create units and food items for your recipe ingredients. This feature is experimental and may not always work as expected. If you prefer not to use the parsed results, you can select 'Cancel' and your changes will not be saved.",
|
||||||
"ingredient-parser": "Ingredient Parser",
|
"ingredient-parser": "Ingredient Parser",
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "S'ha creat una còpia de seguretat a {path}",
|
"backup-created-at-response-export_path": "S'ha creat una còpia de seguretat a {path}",
|
||||||
"backup-deleted": "Còpia de seguretat suprimida",
|
"backup-deleted": "Còpia de seguretat suprimida",
|
||||||
"restore-success": "La restauració s'ha dut a terme correctament",
|
"restore-success": "La restauració s'ha dut a terme correctament",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Etiqueta de la còpia de seguretat",
|
"backup-tag": "Etiqueta de la còpia de seguretat",
|
||||||
"create-heading": "Crea una còpia de seguretat",
|
"create-heading": "Crea una còpia de seguretat",
|
||||||
"delete-backup": "Esborra la còpia de seguretat",
|
"delete-backup": "Esborra la còpia de seguretat",
|
||||||
@@ -731,11 +738,11 @@
|
|||||||
"webhook-name": "Nom del Webhook",
|
"webhook-name": "Nom del Webhook",
|
||||||
"description": "Els webhooks definits a sota s'executaran quan es defineixi un menú pel dia. En un temps estipulat, els webhooks s'enviaran amb les dades de la recepta que estigui programada pel dia. L'execució dels webhooks no és exacta. Els webhooks s'executen en un interval de 5 minuts, és a dir, que s'executaran en un interval de +/- 5 minuts del temps estipulat."
|
"description": "Els webhooks definits a sota s'executaran quan es defineixi un menú pel dia. En un temps estipulat, els webhooks s'enviaran amb les dades de la recepta que estigui programada pel dia. L'execució dels webhooks no és exacta. Els webhooks s'executen en un interval de 5 minuts, és a dir, que s'executaran en un interval de +/- 5 minuts del temps estipulat."
|
||||||
},
|
},
|
||||||
"bug-report": "Bug Report",
|
"bug-report": "Informe d'errors",
|
||||||
"bug-report-information": "Use this information to report a bug. Providing details of your instance to developers is the best way to get your issues resolved quickly.",
|
"bug-report-information": "Use this information to report a bug. Providing details of your instance to developers is the best way to get your issues resolved quickly.",
|
||||||
"tracker": "Tracker",
|
"tracker": "Tracker",
|
||||||
"configuration": "Configuration",
|
"configuration": "Configuració",
|
||||||
"docker-volume": "Docker Volume",
|
"docker-volume": "Volum de Docker",
|
||||||
"docker-volume-help": "Mealie requires that the frontend container and the backend share the same docker volume or storage. This ensures that the frontend container can properly access the images and assets stored on disk.",
|
"docker-volume-help": "Mealie requires that the frontend container and the backend share the same docker volume or storage. This ensures that the frontend container can properly access the images and assets stored on disk.",
|
||||||
"volumes-are-misconfigured": "Volumes are misconfigured.",
|
"volumes-are-misconfigured": "Volumes are misconfigured.",
|
||||||
"volumes-are-configured-correctly": "Volumes are configured correctly.",
|
"volumes-are-configured-correctly": "Volumes are configured correctly.",
|
||||||
@@ -744,7 +751,7 @@
|
|||||||
"email-configuration-status": "Estat de la configuració del correu electrònic",
|
"email-configuration-status": "Estat de la configuració del correu electrònic",
|
||||||
"email-configured": "Correu electrònic configurat",
|
"email-configured": "Correu electrònic configurat",
|
||||||
"email-test-results": "Email Test Results",
|
"email-test-results": "Email Test Results",
|
||||||
"ready": "Ready",
|
"ready": "Llest",
|
||||||
"not-ready": "Not Ready - Check Environmental Variables",
|
"not-ready": "Not Ready - Check Environmental Variables",
|
||||||
"succeeded": "Va tenir èxit",
|
"succeeded": "Va tenir èxit",
|
||||||
"failed": "Ha fallat",
|
"failed": "Ha fallat",
|
||||||
@@ -782,7 +789,7 @@
|
|||||||
"food": "Aliments",
|
"food": "Aliments",
|
||||||
"note": "Nota",
|
"note": "Nota",
|
||||||
"label": "Etiqueta",
|
"label": "Etiqueta",
|
||||||
"save-label": "Save Label",
|
"save-label": "Guarda l'etiqueta",
|
||||||
"linked-item-warning": "Aquest element està enllaçat amb una o més receptes. Modificar les unitats o els aliments pot provocar resultats inesperats en afegir o elimina la recepta del llistat.",
|
"linked-item-warning": "Aquest element està enllaçat amb una o més receptes. Modificar les unitats o els aliments pot provocar resultats inesperats en afegir o elimina la recepta del llistat.",
|
||||||
"toggle-food": "Mostra el nom de l'aliment",
|
"toggle-food": "Mostra el nom de l'aliment",
|
||||||
"manage-labels": "Gestiona etiquetes",
|
"manage-labels": "Gestiona etiquetes",
|
||||||
@@ -842,7 +849,7 @@
|
|||||||
"untagged-count": "{count} sense etiquetar",
|
"untagged-count": "{count} sense etiquetar",
|
||||||
"create-a-tag": "Crea una etiqueta",
|
"create-a-tag": "Crea una etiqueta",
|
||||||
"tag-name": "Nom de l'etiqueta",
|
"tag-name": "Nom de l'etiqueta",
|
||||||
"tag": "Tag"
|
"tag": "Etiqueta"
|
||||||
},
|
},
|
||||||
"tool": {
|
"tool": {
|
||||||
"tools": "Estris",
|
"tools": "Estris",
|
||||||
@@ -852,7 +859,7 @@
|
|||||||
"create-new-tool": "Crea un nou estri",
|
"create-new-tool": "Crea un nou estri",
|
||||||
"on-hand-checkbox-label": "Mostra com a disponible (marcat)",
|
"on-hand-checkbox-label": "Mostra com a disponible (marcat)",
|
||||||
"required-tools": "Eines necessàries",
|
"required-tools": "Eines necessàries",
|
||||||
"tool": "Tool"
|
"tool": "Eina"
|
||||||
},
|
},
|
||||||
"user": {
|
"user": {
|
||||||
"admin": "Administrador/a",
|
"admin": "Administrador/a",
|
||||||
@@ -877,8 +884,8 @@
|
|||||||
"link-id": "Id de l'enllaç",
|
"link-id": "Id de l'enllaç",
|
||||||
"link-name": "Nom de l'enllaç",
|
"link-name": "Nom de l'enllaç",
|
||||||
"login": "Inicieu sessió",
|
"login": "Inicieu sessió",
|
||||||
"login-oidc": "Login with",
|
"login-oidc": "Inicia sessió amb",
|
||||||
"or": "or",
|
"or": "o",
|
||||||
"logout": "Tanca la sessió",
|
"logout": "Tanca la sessió",
|
||||||
"manage-users": "Gestionar usuaris",
|
"manage-users": "Gestionar usuaris",
|
||||||
"manage-users-description": "Create and manage users.",
|
"manage-users-description": "Create and manage users.",
|
||||||
@@ -939,8 +946,8 @@
|
|||||||
"user-name": "Nom de l'usuari",
|
"user-name": "Nom de l'usuari",
|
||||||
"authentication-method": "Authentication Method",
|
"authentication-method": "Authentication Method",
|
||||||
"authentication-method-hint": "This specifies how a user will authenticate with Mealie. If you're not sure, choose 'Mealie",
|
"authentication-method-hint": "This specifies how a user will authenticate with Mealie. If you're not sure, choose 'Mealie",
|
||||||
"permissions": "Permissions",
|
"permissions": "Permisos",
|
||||||
"administrator": "Administrator",
|
"administrator": "Administrador",
|
||||||
"user-can-invite-other-to-group": "User can invite other to group",
|
"user-can-invite-other-to-group": "User can invite other to group",
|
||||||
"user-can-manage-group": "User can manage group",
|
"user-can-manage-group": "User can manage group",
|
||||||
"user-can-organize-group-data": "User can organize group data",
|
"user-can-organize-group-data": "User can organize group data",
|
||||||
@@ -949,7 +956,7 @@
|
|||||||
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!",
|
"dont-want-to-see-this-anymore-be-sure-to-change-your-email": "Don't want to see this anymore? Be sure to change your email in your user settings!",
|
||||||
"forgot-password": "Contrasenya oblidada",
|
"forgot-password": "Contrasenya oblidada",
|
||||||
"forgot-password-text": "Please enter your email address and we will send you a link to reset your password.",
|
"forgot-password-text": "Please enter your email address and we will send you a link to reset your password.",
|
||||||
"changes-reflected-immediately": "Changes to this user will be reflected immediately."
|
"changes-reflected-immediately": "Els canvis en aquest usuari s'actualitzaran immediatament."
|
||||||
},
|
},
|
||||||
"language-dialog": {
|
"language-dialog": {
|
||||||
"translated": "traduït",
|
"translated": "traduït",
|
||||||
@@ -964,30 +971,30 @@
|
|||||||
"merge-food-example": "Combinant {food1} i {food2}",
|
"merge-food-example": "Combinant {food1} i {food2}",
|
||||||
"seed-dialog-text": "Afegeix a la base de dades els noms dels aliments en el vostre idioma. Açò crearà més de 200 aliments comuns per a què pugueu organitzar la vostra base de dades. Els noms dels aliments han estat traduïts gràcies a l'esforç de la comunitat.",
|
"seed-dialog-text": "Afegeix a la base de dades els noms dels aliments en el vostre idioma. Açò crearà més de 200 aliments comuns per a què pugueu organitzar la vostra base de dades. Els noms dels aliments han estat traduïts gràcies a l'esforç de la comunitat.",
|
||||||
"seed-dialog-warning": "Ja teniu algunes dades a la vostra base. Aquesta acció no tindrà en compte duplicats i haureu d'eliminar-los manualment.",
|
"seed-dialog-warning": "Ja teniu algunes dades a la vostra base. Aquesta acció no tindrà en compte duplicats i haureu d'eliminar-los manualment.",
|
||||||
"combine-food": "Combine Food",
|
"combine-food": "Combinar Aliment",
|
||||||
"source-food": "Source Food",
|
"source-food": "Aliment d'Origen",
|
||||||
"target-food": "Target Food",
|
"target-food": "Aliment de Destí",
|
||||||
"create-food": "Create Food",
|
"create-food": "Crear Aliment",
|
||||||
"food-label": "Food Label",
|
"food-label": "Food Label",
|
||||||
"edit-food": "Edit Food",
|
"edit-food": "Editar Aliment",
|
||||||
"food-data": "Food Data",
|
"food-data": "Food Data",
|
||||||
"example-food-singular": "ex: Onion",
|
"example-food-singular": "p. ex.: Ceba",
|
||||||
"example-food-plural": "ex: Onions"
|
"example-food-plural": "p. ex.: Cebes"
|
||||||
},
|
},
|
||||||
"units": {
|
"units": {
|
||||||
"seed-dialog-text": "Afegeix a la base de dades les unitats més comunes en el vostre idioma.",
|
"seed-dialog-text": "Afegeix a la base de dades les unitats més comunes en el vostre idioma.",
|
||||||
"combine-unit-description": "Combining the selected units will merge the Source Unit and Target Unit into a single unit. The {source-unit-will-be-deleted} and all of the references to the Source Unit will be updated to point to the Target Unit.",
|
"combine-unit-description": "Combining the selected units will merge the Source Unit and Target Unit into a single unit. The {source-unit-will-be-deleted} and all of the references to the Source Unit will be updated to point to the Target Unit.",
|
||||||
"combine-unit": "Combine Unit",
|
"combine-unit": "Combina Unitats",
|
||||||
"source-unit": "Source Unit",
|
"source-unit": "Unitat Origen",
|
||||||
"target-unit": "Target Unit",
|
"target-unit": "Unitat Destí",
|
||||||
"merging-unit-into-unit": "Merging {0} into {1}",
|
"merging-unit-into-unit": "Merging {0} into {1}",
|
||||||
"create-unit": "Crea la unitat",
|
"create-unit": "Crea la unitat",
|
||||||
"abbreviation": "Abbreviation",
|
"abbreviation": "Abreviatura",
|
||||||
"plural-abbreviation": "Plural Abbreviation",
|
"plural-abbreviation": "Abreviatura del Plural",
|
||||||
"description": "Description",
|
"description": "Descripció",
|
||||||
"display-as-fraction": "Display as Fraction",
|
"display-as-fraction": "Mostra com una Fracció",
|
||||||
"use-abbreviation": "Use Abbreviation",
|
"use-abbreviation": "Utilitza Abreviatura",
|
||||||
"edit-unit": "Edit Unit",
|
"edit-unit": "Editar Unitat",
|
||||||
"unit-data": "Unit Data",
|
"unit-data": "Unit Data",
|
||||||
"use-abbv": "Use Abbv.",
|
"use-abbv": "Use Abbv.",
|
||||||
"fraction": "Fraction",
|
"fraction": "Fraction",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Jídelníček byl aktualizován",
|
"mealplan-updated": "Jídelníček byl aktualizován",
|
||||||
"no-meal-plan-defined-yet": "Dosud nebyl definován žádný jídelníček",
|
"no-meal-plan-defined-yet": "Dosud nebyl definován žádný jídelníček",
|
||||||
"no-meal-planned-for-today": "Pro dnešek není naplánováno žádné jídlo",
|
"no-meal-planned-for-today": "Pro dnešek není naplánováno žádné jídlo",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Pouze recepty z těchto kategorií budou použity v jídelníčku",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Pouze recepty z těchto kategorií budou použity v jídelníčku",
|
||||||
"planner": "Plánovač",
|
"planner": "Plánovač",
|
||||||
"quick-week": "Rychlý plán týdne",
|
"quick-week": "Rychlý plán týdne",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Záloha vytvořena v {path}",
|
"backup-created-at-response-export_path": "Záloha vytvořena v {path}",
|
||||||
"backup-deleted": "Záloha smazána",
|
"backup-deleted": "Záloha smazána",
|
||||||
"restore-success": "Restore successful",
|
"restore-success": "Restore successful",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Štítek zálohy",
|
"backup-tag": "Štítek zálohy",
|
||||||
"create-heading": "Create a Backup",
|
"create-heading": "Create a Backup",
|
||||||
"delete-backup": "Smazat zálohu",
|
"delete-backup": "Smazat zálohu",
|
||||||
|
|||||||
@@ -64,7 +64,7 @@
|
|||||||
"something-went-wrong": "Noget gik galt!",
|
"something-went-wrong": "Noget gik galt!",
|
||||||
"subscribed-events": "Abonnerede begivenheder",
|
"subscribed-events": "Abonnerede begivenheder",
|
||||||
"test-message-sent": "Testbesked sendt",
|
"test-message-sent": "Testbesked sendt",
|
||||||
"message-sent": "Message Sent",
|
"message-sent": "Besked afsendt",
|
||||||
"new-notification": "Ny notifikation",
|
"new-notification": "Ny notifikation",
|
||||||
"event-notifiers": "Notifikation om begivenheder",
|
"event-notifiers": "Notifikation om begivenheder",
|
||||||
"apprise-url-skipped-if-blank": "Informations link (sprunget over hvis ladet være tomt)",
|
"apprise-url-skipped-if-blank": "Informations link (sprunget over hvis ladet være tomt)",
|
||||||
@@ -86,7 +86,7 @@
|
|||||||
"clear": "Ryd",
|
"clear": "Ryd",
|
||||||
"close": "Luk",
|
"close": "Luk",
|
||||||
"confirm": "Bekræft",
|
"confirm": "Bekræft",
|
||||||
"confirm-how-does-everything-look": "How does everything look?",
|
"confirm-how-does-everything-look": "Hvordan ser alting ud?",
|
||||||
"confirm-delete-generic": "Er du sikker på, du vil slette dette?",
|
"confirm-delete-generic": "Er du sikker på, du vil slette dette?",
|
||||||
"copied_message": "Kopieret!",
|
"copied_message": "Kopieret!",
|
||||||
"create": "Opret",
|
"create": "Opret",
|
||||||
@@ -161,7 +161,7 @@
|
|||||||
"test": "Afprøv",
|
"test": "Afprøv",
|
||||||
"themes": "Temaer",
|
"themes": "Temaer",
|
||||||
"thursday": "Torsdag",
|
"thursday": "Torsdag",
|
||||||
"title": "Title",
|
"title": "Titel",
|
||||||
"token": "Token",
|
"token": "Token",
|
||||||
"tuesday": "Tirsdag",
|
"tuesday": "Tirsdag",
|
||||||
"type": "Type",
|
"type": "Type",
|
||||||
@@ -210,7 +210,7 @@
|
|||||||
"unsaved-changes": "Du har ændringer som ikke er gemt. Vil du gemme før du forlader? Vælg \"Okay\" for at gemme, eller \"Annullér\" for at kassere ændringer.",
|
"unsaved-changes": "Du har ændringer som ikke er gemt. Vil du gemme før du forlader? Vælg \"Okay\" for at gemme, eller \"Annullér\" for at kassere ændringer.",
|
||||||
"clipboard-copy-failure": "Kopiering til udklipsholderen mislykkedes.",
|
"clipboard-copy-failure": "Kopiering til udklipsholderen mislykkedes.",
|
||||||
"confirm-delete-generic-items": "Er du sikker på at du ønsker at slette de valgte emner?",
|
"confirm-delete-generic-items": "Er du sikker på at du ønsker at slette de valgte emner?",
|
||||||
"organizers": "Organizers"
|
"organizers": "Organisatorer"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Er du sikker på, du vil slette <b>{groupName}<b/>?",
|
"are-you-sure-you-want-to-delete-the-group": "Er du sikker på, du vil slette <b>{groupName}<b/>?",
|
||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Madplanen blev ændret",
|
"mealplan-updated": "Madplanen blev ændret",
|
||||||
"no-meal-plan-defined-yet": "Ingen madplan er defineret",
|
"no-meal-plan-defined-yet": "Ingen madplan er defineret",
|
||||||
"no-meal-planned-for-today": "Ingen ret er planlagt til i dag",
|
"no-meal-planned-for-today": "Ingen ret er planlagt til i dag",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Kun opskrifter med disse kategorier vil blive brugt i madplaner",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Kun opskrifter med disse kategorier vil blive brugt i madplaner",
|
||||||
"planner": "Planlæg madplan",
|
"planner": "Planlæg madplan",
|
||||||
"quick-week": "Hurtig uge",
|
"quick-week": "Hurtig uge",
|
||||||
@@ -365,7 +367,7 @@
|
|||||||
"choose-migration-type": "Vælg Migreringstype",
|
"choose-migration-type": "Vælg Migreringstype",
|
||||||
"tag-all-recipes": "Tag alle opskrifter med {tag-name} tag",
|
"tag-all-recipes": "Tag alle opskrifter med {tag-name} tag",
|
||||||
"nextcloud-text": "Nextcloud opskrifter kan importeres fra en zip-fil, der indeholder data lagret i Nextcloud. Se eksempelmappestrukturen nedenfor for at sikre, at dine opskrifter kan importeres.",
|
"nextcloud-text": "Nextcloud opskrifter kan importeres fra en zip-fil, der indeholder data lagret i Nextcloud. Se eksempelmappestrukturen nedenfor for at sikre, at dine opskrifter kan importeres.",
|
||||||
"chowdown-text": "Mealie natively supports the chowdown repository format. Download the code repository as a .zip file and upload it below.",
|
"chowdown-text": "Mealie understøtter chowdown repository fil formater. Download repositoriet som en .zip-fil og upload den nedenfor.",
|
||||||
"recipe-1": "Opskrift 1",
|
"recipe-1": "Opskrift 1",
|
||||||
"recipe-2": "Opskrift 2",
|
"recipe-2": "Opskrift 2",
|
||||||
"paprika-text": "Mealie kan importere opskrifter fra Paprika applikationen. Eksporter dine opskrifter fra paprika, omdøbe eksportudvidelsen til .zip og uploade den nedenfor.",
|
"paprika-text": "Mealie kan importere opskrifter fra Paprika applikationen. Eksporter dine opskrifter fra paprika, omdøbe eksportudvidelsen til .zip og uploade den nedenfor.",
|
||||||
@@ -375,8 +377,12 @@
|
|||||||
"description-long": "Mealie kan importere opskrifter, der er markeret som \"Planlæg at spise\"."
|
"description-long": "Mealie kan importere opskrifter, der er markeret som \"Planlæg at spise\"."
|
||||||
},
|
},
|
||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "Mine opskrifter",
|
||||||
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
"description-long": "Mealie kan importere opskrifter fra My Recipe Box. Eksporter dine opskrifter i CSV-format, og upload derefter .csv-filen nedenfor."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -528,7 +534,7 @@
|
|||||||
"edit-timeline-event": "Rediger tidslinjebegivenhed",
|
"edit-timeline-event": "Rediger tidslinjebegivenhed",
|
||||||
"timeline": "Tidslinje",
|
"timeline": "Tidslinje",
|
||||||
"timeline-is-empty": "Intet på tidslinjen endnu. Prøv at lave denne opskrift!",
|
"timeline-is-empty": "Intet på tidslinjen endnu. Prøv at lave denne opskrift!",
|
||||||
"timeline-no-events-found-try-adjusting-filters": "No events found. Try adjusting your search filters.",
|
"timeline-no-events-found-try-adjusting-filters": "Ingen begivenheder fundet. Prøv at justere dine søgefiltre.",
|
||||||
"group-global-timeline": "{groupName} Global Tidslinje",
|
"group-global-timeline": "{groupName} Global Tidslinje",
|
||||||
"open-timeline": "Åbn tidslinje",
|
"open-timeline": "Åbn tidslinje",
|
||||||
"made-this": "Jeg har lavet denne",
|
"made-this": "Jeg har lavet denne",
|
||||||
@@ -585,21 +591,21 @@
|
|||||||
"screen-awake": "Hold skærmen tændt",
|
"screen-awake": "Hold skærmen tændt",
|
||||||
"remove-image": "Fjern billede",
|
"remove-image": "Fjern billede",
|
||||||
"nextStep": "Næste trin",
|
"nextStep": "Næste trin",
|
||||||
"recipe-actions": "Recipe Actions",
|
"recipe-actions": "Opskriftshandlinger",
|
||||||
"parser": {
|
"parser": {
|
||||||
"experimental-alert-text": "Mealie uses natural language processing to parse and create units and food items for your recipe ingredients. This feature is experimental and may not always work as expected. If you prefer not to use the parsed results, you can select 'Cancel' and your changes will not be saved.",
|
"experimental-alert-text": "Mealie bruger natural language processing til at behandle og oprette relevante måleenheder og fødrerevarer som ingredienser i dine opskrifter. Denne funktion er eksperimentel og fungerer måske ikke altid som forventet. Hvis du foretrækker ikke at bruge de fortolkede resultater, kan du vælge 'Annullér' og dine ændringer vil ikke blive gemt.",
|
||||||
"ingredient-parser": "Ingredient Parser",
|
"ingredient-parser": "Ingrediens- Parser",
|
||||||
"explanation": "To use the ingredient parser, click the 'Parse All' button to start the process. Once the processed ingredients are available, you can review the items and verify that they were parsed correctly. The model's confidence score is displayed on the right of the item title. This score is an average of all the individual scores and may not always be completely accurate.",
|
"explanation": "For at bruge ingrediensparseren, skal du klikke på knappen 'Parse Alle' for at starte behandlingen. Når relevante ingredienser er identificeret, kan du gennemgå sem og kontrollere, at de blev korrekt identificeret. Modellens konfidensscore vises til højre for ingrediensens titel. Denne score er et gennemsnit af alle de enkelte scorer og er måske ikke altid helt præcis.",
|
||||||
"alerts-explainer": "Alerts will be displayed if a matching foods or unit is found but does not exists in the database.",
|
"alerts-explainer": "En advarsel vil blive vist, hvis en identificeret fødevare eller måleenhed ikke findes i databasen.",
|
||||||
"select-parser": "Select Parser",
|
"select-parser": "Vælg Parser",
|
||||||
"natural-language-processor": "Natural Language Processor",
|
"natural-language-processor": "Natural Language Processor",
|
||||||
"brute-parser": "Brute Parser",
|
"brute-parser": "Brute Parser",
|
||||||
"openai-parser": "OpenAI Parser",
|
"openai-parser": "OpenAI Parser",
|
||||||
"parse-all": "Parse All",
|
"parse-all": "Fortolk alt",
|
||||||
"no-unit": "No unit",
|
"no-unit": "Ingen enhed",
|
||||||
"missing-unit": "Create missing unit: {unit}",
|
"missing-unit": "Opret manglende måleenhed: {unit}",
|
||||||
"missing-food": "Create missing food: {food}",
|
"missing-food": "Opret manglende fødevare: {food}",
|
||||||
"no-food": "No Food"
|
"no-food": "Ingen fødevarer"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Backup oprettet ved {path}",
|
"backup-created-at-response-export_path": "Backup oprettet ved {path}",
|
||||||
"backup-deleted": "Backup slettet",
|
"backup-deleted": "Backup slettet",
|
||||||
"restore-success": "Gendannelse lykkedes",
|
"restore-success": "Gendannelse lykkedes",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Backupnavn",
|
"backup-tag": "Backupnavn",
|
||||||
"create-heading": "Opret en backup",
|
"create-heading": "Opret en backup",
|
||||||
"delete-backup": "Slet backup",
|
"delete-backup": "Slet backup",
|
||||||
@@ -766,9 +773,9 @@
|
|||||||
"oidc-ready": "OIDC er Klar",
|
"oidc-ready": "OIDC er Klar",
|
||||||
"oidc-ready-error-text": "Ikke alle OIDC værdier er konfigureret. Dette kan ignoreres, hvis du ikke bruger OIDC godkendelse.",
|
"oidc-ready-error-text": "Ikke alle OIDC værdier er konfigureret. Dette kan ignoreres, hvis du ikke bruger OIDC godkendelse.",
|
||||||
"oidc-ready-success-text": "Alle påkrævede OIDC værdier er angivet.",
|
"oidc-ready-success-text": "Alle påkrævede OIDC værdier er angivet.",
|
||||||
"openai-ready": "OpenAI Ready",
|
"openai-ready": "OpenAI Klar",
|
||||||
"openai-ready-error-text": "Not all OpenAI Values are configured. This can be ignored if you are not using OpenAI features.",
|
"openai-ready-error-text": "Ikke alle OpenAI værdier er konfigureret. Dette kan ignoreres, hvis du ikke bruger OpenAI funktioner.",
|
||||||
"openai-ready-success-text": "Required OpenAI variables are all set."
|
"openai-ready-success-text": "Påkrævede OpenAI variabler er alle indstillet."
|
||||||
},
|
},
|
||||||
"shopping-list": {
|
"shopping-list": {
|
||||||
"all-lists": "Alle lister",
|
"all-lists": "Alle lister",
|
||||||
@@ -782,7 +789,7 @@
|
|||||||
"food": "Fødevarer",
|
"food": "Fødevarer",
|
||||||
"note": "Note",
|
"note": "Note",
|
||||||
"label": "Etiket",
|
"label": "Etiket",
|
||||||
"save-label": "Save Label",
|
"save-label": "Gem etiket",
|
||||||
"linked-item-warning": "Dette element er tilknyttet en eller flere opskrifter. Justering af enheder eller fødevarer vil give uventede resultater, når du tilføjer eller fjerner opskriften fra denne liste.",
|
"linked-item-warning": "Dette element er tilknyttet en eller flere opskrifter. Justering af enheder eller fødevarer vil give uventede resultater, når du tilføjer eller fjerner opskriften fra denne liste.",
|
||||||
"toggle-food": "Slå fødevarer til/fra",
|
"toggle-food": "Slå fødevarer til/fra",
|
||||||
"manage-labels": "Håndter etiketter",
|
"manage-labels": "Håndter etiketter",
|
||||||
@@ -842,7 +849,7 @@
|
|||||||
"untagged-count": "Ikke-tagget: {count}",
|
"untagged-count": "Ikke-tagget: {count}",
|
||||||
"create-a-tag": "Opret tag",
|
"create-a-tag": "Opret tag",
|
||||||
"tag-name": "Tag navn",
|
"tag-name": "Tag navn",
|
||||||
"tag": "Tag"
|
"tag": "Mærker"
|
||||||
},
|
},
|
||||||
"tool": {
|
"tool": {
|
||||||
"tools": "Værktøjer",
|
"tools": "Værktøjer",
|
||||||
@@ -1024,10 +1031,10 @@
|
|||||||
"source-unit-will-be-deleted": "Kildeenhed vil blive slettet"
|
"source-unit-will-be-deleted": "Kildeenhed vil blive slettet"
|
||||||
},
|
},
|
||||||
"recipe-actions": {
|
"recipe-actions": {
|
||||||
"recipe-actions-data": "Recipe Actions Data",
|
"recipe-actions-data": "Data for Opskriftshandlinger",
|
||||||
"new-recipe-action": "New Recipe Action",
|
"new-recipe-action": "Ny Opskriftshandling",
|
||||||
"edit-recipe-action": "Edit Recipe Action",
|
"edit-recipe-action": "Rediger Opskriftshandling",
|
||||||
"action-type": "Action Type"
|
"action-type": "Handlingstype"
|
||||||
},
|
},
|
||||||
"create-alias": "Opret alias",
|
"create-alias": "Opret alias",
|
||||||
"manage-aliases": "Administrer Aliaser",
|
"manage-aliases": "Administrer Aliaser",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Essensplan aktualisiert",
|
"mealplan-updated": "Essensplan aktualisiert",
|
||||||
"no-meal-plan-defined-yet": "Noch kein Essensplan definiert",
|
"no-meal-plan-defined-yet": "Noch kein Essensplan definiert",
|
||||||
"no-meal-planned-for-today": "Kein Essen für heute geplant",
|
"no-meal-planned-for-today": "Kein Essen für heute geplant",
|
||||||
|
"numberOfDays-hint": "Anzahl der Tage beim Laden der Seite",
|
||||||
|
"numberOfDays-label": "Anzuzeigende Tage",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Nur Rezepte dieser Kategorien werden in Essensplänen verwendet",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Nur Rezepte dieser Kategorien werden in Essensplänen verwendet",
|
||||||
"planner": "Planer",
|
"planner": "Planer",
|
||||||
"quick-week": "Schnelle Woche",
|
"quick-week": "Schnelle Woche",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie kann Rezepte von My Recipe Box importieren. Exportiere deine Rezepte im CSV-Format und lade dann unten die .csv Datei hoch."
|
"description-long": "Mealie kann Rezepte von My Recipe Box importieren. Exportiere deine Rezepte im CSV-Format und lade dann unten die .csv Datei hoch."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie kann Rezepte von Recipe Keeper importieren. Exportiere deine Rezepte im ZIP-Format und lade dann unten die .zip Datei hoch.\n"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Sicherung erstellt unter {path}",
|
"backup-created-at-response-export_path": "Sicherung erstellt unter {path}",
|
||||||
"backup-deleted": "Sicherung gelöscht",
|
"backup-deleted": "Sicherung gelöscht",
|
||||||
"restore-success": "Wiederherstellung erfolgreich",
|
"restore-success": "Wiederherstellung erfolgreich",
|
||||||
|
"restore-fail": "Wiederherstellung fehlgeschlagen. Überprüfe deine Serverprotokolle für weitere Informationen",
|
||||||
"backup-tag": "Sicherungsbeschreibung",
|
"backup-tag": "Sicherungsbeschreibung",
|
||||||
"create-heading": "Sicherung erstellen",
|
"create-heading": "Sicherung erstellen",
|
||||||
"delete-backup": "Sicherung löschen",
|
"delete-backup": "Sicherung löschen",
|
||||||
@@ -782,7 +789,7 @@
|
|||||||
"food": "Lebensmittel",
|
"food": "Lebensmittel",
|
||||||
"note": "Notiz",
|
"note": "Notiz",
|
||||||
"label": "Etikett",
|
"label": "Etikett",
|
||||||
"save-label": "Save Label",
|
"save-label": "Etikett speichern",
|
||||||
"linked-item-warning": "Dieser Eintrag ist mit einem oder mehreren Rezepten verknüpft. Das Ändern der Einheiten oder Lebensmittel führt zu unerwarteten Ergebnissen, wenn das Rezept von dieser Einkaufsliste entfernt oder hinzugefügt wird.",
|
"linked-item-warning": "Dieser Eintrag ist mit einem oder mehreren Rezepten verknüpft. Das Ändern der Einheiten oder Lebensmittel führt zu unerwarteten Ergebnissen, wenn das Rezept von dieser Einkaufsliste entfernt oder hinzugefügt wird.",
|
||||||
"toggle-food": "Lebensmittel-Eingabe umschalten",
|
"toggle-food": "Lebensmittel-Eingabe umschalten",
|
||||||
"manage-labels": "Etiketten verwalten",
|
"manage-labels": "Etiketten verwalten",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Το Γεύμα Ενημερώθηκε",
|
"mealplan-updated": "Το Γεύμα Ενημερώθηκε",
|
||||||
"no-meal-plan-defined-yet": "Δεν έχει οριστεί ακόμα σχέδιο γεύματος",
|
"no-meal-plan-defined-yet": "Δεν έχει οριστεί ακόμα σχέδιο γεύματος",
|
||||||
"no-meal-planned-for-today": "Δεν έχει προγραμματιστεί γεύμα για σήμερα",
|
"no-meal-planned-for-today": "Δεν έχει προγραμματιστεί γεύμα για σήμερα",
|
||||||
|
"numberOfDays-hint": "Αριθμός ημερών κατά την φόρτωση της σελίδας",
|
||||||
|
"numberOfDays-label": "Προεπιλεγμένες Ημέρες",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Μόνο συνταγές με αυτές τις κατηγορίες θα χρησιμοποιηθούν στα σχέδια γεύματος",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Μόνο συνταγές με αυτές τις κατηγορίες θα χρησιμοποιηθούν στα σχέδια γεύματος",
|
||||||
"planner": "Προγραμματισμός",
|
"planner": "Προγραμματισμός",
|
||||||
"quick-week": "Γρήγορη προβολή",
|
"quick-week": "Γρήγορη προβολή",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "Κιβώτιο Συνταγών",
|
"title": "Κιβώτιο Συνταγών",
|
||||||
"description-long": "Το Mealie μπορεί να εισάγει συνταγές από το Κουτί Συνταγών. Εξάγετε τις συνταγές σας σε μορφή CSV, στη συνέχεια, ανεβάστε το αρχείο .csv παρακάτω."
|
"description-long": "Το Mealie μπορεί να εισάγει συνταγές από το Κουτί Συνταγών. Εξάγετε τις συνταγές σας σε μορφή CSV, στη συνέχεια, ανεβάστε το αρχείο .csv παρακάτω."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Το Mealie μπορεί να εισάγει συνταγές από το Recipe Keeper. Εξάγετε τις συνταγές σας σε μορφή zip, στη συνέχεια, ανεβάστε το αρχείο .zip παρακάτω."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Δημιουργήθηκε αντίγραφο ασφαλείας στο: {path}",
|
"backup-created-at-response-export_path": "Δημιουργήθηκε αντίγραφο ασφαλείας στο: {path}",
|
||||||
"backup-deleted": "Το αντίγραφο ασφαλείας διαγράφηκε",
|
"backup-deleted": "Το αντίγραφο ασφαλείας διαγράφηκε",
|
||||||
"restore-success": "Restore successful",
|
"restore-success": "Restore successful",
|
||||||
|
"restore-fail": "Η επαναφορά απέτυχε. Ελέγξτε τα αρχεία καταγραφής του διακομιστή σας για περισσότερες λεπτομέρειες",
|
||||||
"backup-tag": "Ετικέτα Αντιγράφου Ασφαλείας",
|
"backup-tag": "Ετικέτα Αντιγράφου Ασφαλείας",
|
||||||
"create-heading": "Δημιουργία αντιγράφου ασφαλείας",
|
"create-heading": "Δημιουργία αντιγράφου ασφαλείας",
|
||||||
"delete-backup": "Διαγραφή Αντιγράφου Ασφαλείας",
|
"delete-backup": "Διαγραφή Αντιγράφου Ασφαλείας",
|
||||||
|
|||||||
@@ -189,10 +189,10 @@
|
|||||||
"delete-with-name": "Delete {name}",
|
"delete-with-name": "Delete {name}",
|
||||||
"confirm-delete-generic-with-name": "Are you sure you want to delete this {name}?",
|
"confirm-delete-generic-with-name": "Are you sure you want to delete this {name}?",
|
||||||
"confirm-delete-own-admin-account": "Please note that you are trying to delete your own admin account! This action cannot be undone and will permanently delete your account?",
|
"confirm-delete-own-admin-account": "Please note that you are trying to delete your own admin account! This action cannot be undone and will permanently delete your account?",
|
||||||
"organizer": "Organizer",
|
"organizer": "Organiser",
|
||||||
"transfer": "Transfer",
|
"transfer": "Transfer",
|
||||||
"copy": "Copy",
|
"copy": "Copy",
|
||||||
"color": "Color",
|
"color": "Colour",
|
||||||
"timestamp": "Timestamp",
|
"timestamp": "Timestamp",
|
||||||
"last-made": "Last Made",
|
"last-made": "Last Made",
|
||||||
"learn-more": "Learn More",
|
"learn-more": "Learn More",
|
||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Mealplan Updated",
|
"mealplan-updated": "Mealplan Updated",
|
||||||
"no-meal-plan-defined-yet": "No meal plan defined yet",
|
"no-meal-plan-defined-yet": "No meal plan defined yet",
|
||||||
"no-meal-planned-for-today": "No meal planned for today",
|
"no-meal-planned-for-today": "No meal planned for today",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans",
|
||||||
"planner": "Planner",
|
"planner": "Planner",
|
||||||
"quick-week": "Quick Week",
|
"quick-week": "Quick Week",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Backup Created at {path}",
|
"backup-created-at-response-export_path": "Backup Created at {path}",
|
||||||
"backup-deleted": "Backup deleted",
|
"backup-deleted": "Backup deleted",
|
||||||
"restore-success": "Restore successful",
|
"restore-success": "Restore successful",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Backup Tag",
|
"backup-tag": "Backup Tag",
|
||||||
"create-heading": "Create a Backup",
|
"create-heading": "Create a Backup",
|
||||||
"delete-backup": "Delete Backup",
|
"delete-backup": "Delete Backup",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Mealplan Updated",
|
"mealplan-updated": "Mealplan Updated",
|
||||||
"no-meal-plan-defined-yet": "No meal plan defined yet",
|
"no-meal-plan-defined-yet": "No meal plan defined yet",
|
||||||
"no-meal-planned-for-today": "No meal planned for today",
|
"no-meal-planned-for-today": "No meal planned for today",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans",
|
||||||
"planner": "Planner",
|
"planner": "Planner",
|
||||||
"quick-week": "Quick Week",
|
"quick-week": "Quick Week",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Backup Created at {path}",
|
"backup-created-at-response-export_path": "Backup Created at {path}",
|
||||||
"backup-deleted": "Backup deleted",
|
"backup-deleted": "Backup deleted",
|
||||||
"restore-success": "Restore successful",
|
"restore-success": "Restore successful",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Backup Tag",
|
"backup-tag": "Backup Tag",
|
||||||
"create-heading": "Create A Backup",
|
"create-heading": "Create A Backup",
|
||||||
"delete-backup": "Delete Backup",
|
"delete-backup": "Delete Backup",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Menú actualizado",
|
"mealplan-updated": "Menú actualizado",
|
||||||
"no-meal-plan-defined-yet": "Todavía no hay ningún menú",
|
"no-meal-plan-defined-yet": "Todavía no hay ningún menú",
|
||||||
"no-meal-planned-for-today": "No hay ningún menú para hoy",
|
"no-meal-planned-for-today": "No hay ningún menú para hoy",
|
||||||
|
"numberOfDays-hint": "Número de días al cargar la página",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Sólo las recetas con estas categorías se utilizarán en los menús",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Sólo las recetas con estas categorías se utilizarán en los menús",
|
||||||
"planner": "Planificador",
|
"planner": "Planificador",
|
||||||
"quick-week": "Plan rápido",
|
"quick-week": "Plan rápido",
|
||||||
@@ -372,11 +374,15 @@
|
|||||||
"mealie-text": "Mealie puede importar recetas de la aplicación Mealie desde una versión anterior a v1.0. Exporta tus recetas de tu antigua instancia y sube el archivo zip a continuación. Ten en cuenta que solo se pueden importar recetas de la exportación.",
|
"mealie-text": "Mealie puede importar recetas de la aplicación Mealie desde una versión anterior a v1.0. Exporta tus recetas de tu antigua instancia y sube el archivo zip a continuación. Ten en cuenta que solo se pueden importar recetas de la exportación.",
|
||||||
"plantoeat": {
|
"plantoeat": {
|
||||||
"title": "Plan to Eat",
|
"title": "Plan to Eat",
|
||||||
"description-long": "Mealie puede importar recetas de Plan a Comer."
|
"description-long": "Mealie puede importar recetas de Plan to Eat."
|
||||||
},
|
},
|
||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie puede importar recetas de My Recipe Box. Exporta tus recetas en formato CSV y sube el archivo a continuación."
|
"description-long": "Mealie puede importar recetas de My Recipe Box. Exporta tus recetas en formato CSV y sube el archivo a continuación."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Copia de seguridad creada en {path}",
|
"backup-created-at-response-export_path": "Copia de seguridad creada en {path}",
|
||||||
"backup-deleted": "Copia de seguridad eliminada",
|
"backup-deleted": "Copia de seguridad eliminada",
|
||||||
"restore-success": "Restauración exitosa",
|
"restore-success": "Restauración exitosa",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Etiqueta de la copia de seguridad",
|
"backup-tag": "Etiqueta de la copia de seguridad",
|
||||||
"create-heading": "Crear una copia de seguridad",
|
"create-heading": "Crear una copia de seguridad",
|
||||||
"delete-backup": "Eliminar copia de seguridad",
|
"delete-backup": "Eliminar copia de seguridad",
|
||||||
@@ -748,7 +755,7 @@
|
|||||||
"not-ready": "No Listo - Comprobar variables de ambiente",
|
"not-ready": "No Listo - Comprobar variables de ambiente",
|
||||||
"succeeded": "Logrado",
|
"succeeded": "Logrado",
|
||||||
"failed": "Error",
|
"failed": "Error",
|
||||||
"general-about": "General Acerca de",
|
"general-about": "Información General",
|
||||||
"application-version": "Versión de la aplicación",
|
"application-version": "Versión de la aplicación",
|
||||||
"application-version-error-text": "Su versión actual ({0}) no coincide con la última versión. Considere actualizar a la última versión ({1}).",
|
"application-version-error-text": "Su versión actual ({0}) no coincide con la última versión. Considere actualizar a la última versión ({1}).",
|
||||||
"mealie-is-up-to-date": "Mealie está actualizada",
|
"mealie-is-up-to-date": "Mealie está actualizada",
|
||||||
@@ -1137,14 +1144,14 @@
|
|||||||
"admin": {
|
"admin": {
|
||||||
"maintenance": {
|
"maintenance": {
|
||||||
"storage-details": "Detalle del almacenamiento",
|
"storage-details": "Detalle del almacenamiento",
|
||||||
"page-title": "Mantenimiento del sitio",
|
"page-title": "Mantenimiento del Sitio",
|
||||||
"summary-title": "Índice",
|
"summary-title": "Índice",
|
||||||
"button-label-get-summary": "Obtener Resumen",
|
"button-label-get-summary": "Obtener Resumen",
|
||||||
"button-label-open-details": "Detalles",
|
"button-label-open-details": "Detalles",
|
||||||
"info-description-data-dir-size": "Tamaño del directorio de datos",
|
"info-description-data-dir-size": "Tamaño del Directorio de Datos",
|
||||||
"info-description-log-file-size": "Tamaño del archivo de registro",
|
"info-description-log-file-size": "Tamaño del archivo de registro",
|
||||||
"info-description-cleanable-directories": "Directorios eliminables",
|
"info-description-cleanable-directories": "Directorios Eliminables",
|
||||||
"info-description-cleanable-images": "Imágenes eliminables",
|
"info-description-cleanable-images": "Imágenes Eliminables",
|
||||||
"storage": {
|
"storage": {
|
||||||
"title-temporary-directory": "Directorio temporal (.temp)",
|
"title-temporary-directory": "Directorio temporal (.temp)",
|
||||||
"title-backups-directory": "Directorio de Copias de Seguridad (respaldos)",
|
"title-backups-directory": "Directorio de Copias de Seguridad (respaldos)",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Ateriasuunnitelma päivitetty",
|
"mealplan-updated": "Ateriasuunnitelma päivitetty",
|
||||||
"no-meal-plan-defined-yet": "Ateriasuunnitelmaa ei ole vielä määritelty",
|
"no-meal-plan-defined-yet": "Ateriasuunnitelmaa ei ole vielä määritelty",
|
||||||
"no-meal-planned-for-today": "Ei ateriasuunnitelmaa tälle päivälle",
|
"no-meal-planned-for-today": "Ei ateriasuunnitelmaa tälle päivälle",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Vain näiden luokkien reseptejä käytetään ateriasuunnitelmissa",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Vain näiden luokkien reseptejä käytetään ateriasuunnitelmissa",
|
||||||
"planner": "Suunnittelija",
|
"planner": "Suunnittelija",
|
||||||
"quick-week": "Pikaviikkosuunnitelma",
|
"quick-week": "Pikaviikkosuunnitelma",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "Reseptilaatikkoni",
|
"title": "Reseptilaatikkoni",
|
||||||
"description-long": "Voit tuoda Mealieen reseptejä reseptilaatikosta. Tuo reseptisi csv-muodossa ja lataa sitten csv-tiedosto alempaa."
|
"description-long": "Voit tuoda Mealieen reseptejä reseptilaatikosta. Tuo reseptisi csv-muodossa ja lataa sitten csv-tiedosto alempaa."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Varmuuskopio luotu sijaintiin {path}",
|
"backup-created-at-response-export_path": "Varmuuskopio luotu sijaintiin {path}",
|
||||||
"backup-deleted": "Varmuuskopio poistettu",
|
"backup-deleted": "Varmuuskopio poistettu",
|
||||||
"restore-success": "Palautus onnistui",
|
"restore-success": "Palautus onnistui",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Varmuuskopion tunniste",
|
"backup-tag": "Varmuuskopion tunniste",
|
||||||
"create-heading": "Create a Backup",
|
"create-heading": "Create a Backup",
|
||||||
"delete-backup": "Poista varmuuskopio",
|
"delete-backup": "Poista varmuuskopio",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Menu mis à jour",
|
"mealplan-updated": "Menu mis à jour",
|
||||||
"no-meal-plan-defined-yet": "Aucun menu planifié",
|
"no-meal-plan-defined-yet": "Aucun menu planifié",
|
||||||
"no-meal-planned-for-today": "Aucun repas prévu pour aujourd'hui",
|
"no-meal-planned-for-today": "Aucun repas prévu pour aujourd'hui",
|
||||||
|
"numberOfDays-hint": "Nombre de jours lors du chargement de la page",
|
||||||
|
"numberOfDays-label": "Jours par défaut",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Seules les recettes appartenant à ces catégories seront utilisées dans les menus",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Seules les recettes appartenant à ces catégories seront utilisées dans les menus",
|
||||||
"planner": "Planificateur",
|
"planner": "Planificateur",
|
||||||
"quick-week": "Semaine rapide",
|
"quick-week": "Semaine rapide",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie peut importer des recettes depuis My Recipe Box. Exportez vos recettes au format CSV, puis téléchargez le fichier CSV ci-dessous."
|
"description-long": "Mealie peut importer des recettes depuis My Recipe Box. Exportez vos recettes au format CSV, puis téléchargez le fichier CSV ci-dessous."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie peut importer des recettes depuis Recipe Keeper. Exportez vos recettes au format Zip, puis téléversez le fichier .zip ci-dessous."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -594,7 +600,7 @@
|
|||||||
"select-parser": "Sélectionner l'analyseur",
|
"select-parser": "Sélectionner l'analyseur",
|
||||||
"natural-language-processor": "Traitement du Langage Naturel",
|
"natural-language-processor": "Traitement du Langage Naturel",
|
||||||
"brute-parser": "Analyseur brut",
|
"brute-parser": "Analyseur brut",
|
||||||
"openai-parser": "OpenAI Parser",
|
"openai-parser": "Parseur OpenAI",
|
||||||
"parse-all": "Tout analyser",
|
"parse-all": "Tout analyser",
|
||||||
"no-unit": "Pas d'unité",
|
"no-unit": "Pas d'unité",
|
||||||
"missing-unit": "Créer une unité manquante : {unit}",
|
"missing-unit": "Créer une unité manquante : {unit}",
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Sauvegarde créée dans {path}",
|
"backup-created-at-response-export_path": "Sauvegarde créée dans {path}",
|
||||||
"backup-deleted": "Sauvegarde supprimée",
|
"backup-deleted": "Sauvegarde supprimée",
|
||||||
"restore-success": "Restauration réussie",
|
"restore-success": "Restauration réussie",
|
||||||
|
"restore-fail": "Échec de la restauration. Vérifiez les journaux de votre serveur pour plus de détails",
|
||||||
"backup-tag": "Tag de la sauvegarde",
|
"backup-tag": "Tag de la sauvegarde",
|
||||||
"create-heading": "Créer une sauvegarde",
|
"create-heading": "Créer une sauvegarde",
|
||||||
"delete-backup": "Supprimer la sauvegarde",
|
"delete-backup": "Supprimer la sauvegarde",
|
||||||
@@ -766,9 +773,9 @@
|
|||||||
"oidc-ready": "Prêt pour OIDC",
|
"oidc-ready": "Prêt pour OIDC",
|
||||||
"oidc-ready-error-text": "Toutes les valeurs OIDC ne sont pas configurées. Vous pouvez ignorer cet avertissement si vous n’utilisez pas l’authentification OIDC.",
|
"oidc-ready-error-text": "Toutes les valeurs OIDC ne sont pas configurées. Vous pouvez ignorer cet avertissement si vous n’utilisez pas l’authentification OIDC.",
|
||||||
"oidc-ready-success-text": "Les variables OIDC obligatoires sont toutes définies.",
|
"oidc-ready-success-text": "Les variables OIDC obligatoires sont toutes définies.",
|
||||||
"openai-ready": "OpenAI Ready",
|
"openai-ready": "Prêt pour OpenAI",
|
||||||
"openai-ready-error-text": "Not all OpenAI Values are configured. This can be ignored if you are not using OpenAI features.",
|
"openai-ready-error-text": "Toutes les valeurs OpenAI ne sont pas configurées. Vous pouvez ignorer cet avertissement si vous n'utilisez pas les fonctionnalités OpenAI.",
|
||||||
"openai-ready-success-text": "Required OpenAI variables are all set."
|
"openai-ready-success-text": "Les variables OpenAI obligatoires sont toutes définies."
|
||||||
},
|
},
|
||||||
"shopping-list": {
|
"shopping-list": {
|
||||||
"all-lists": "Toutes les listes",
|
"all-lists": "Toutes les listes",
|
||||||
@@ -782,7 +789,7 @@
|
|||||||
"food": "Aliments",
|
"food": "Aliments",
|
||||||
"note": "Note",
|
"note": "Note",
|
||||||
"label": "Étiquette",
|
"label": "Étiquette",
|
||||||
"save-label": "Save Label",
|
"save-label": "Sauvegarder le libellé",
|
||||||
"linked-item-warning": "Cet article est lié à une ou plusieurs recettes. Ajuster les unités ou les aliments donnera des résultats inattendus lors de l’ajout ou de la suppression de la recette de cette liste.",
|
"linked-item-warning": "Cet article est lié à une ou plusieurs recettes. Ajuster les unités ou les aliments donnera des résultats inattendus lors de l’ajout ou de la suppression de la recette de cette liste.",
|
||||||
"toggle-food": "Activer/Désactiver aliment",
|
"toggle-food": "Activer/Désactiver aliment",
|
||||||
"manage-labels": "Gérer les libellés",
|
"manage-labels": "Gérer les libellés",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Menu mis à jour",
|
"mealplan-updated": "Menu mis à jour",
|
||||||
"no-meal-plan-defined-yet": "Aucun menu planifié",
|
"no-meal-plan-defined-yet": "Aucun menu planifié",
|
||||||
"no-meal-planned-for-today": "Aucun repas prévu pour aujourd’hui",
|
"no-meal-planned-for-today": "Aucun repas prévu pour aujourd’hui",
|
||||||
|
"numberOfDays-hint": "Nombre de jours lors du chargement de la page",
|
||||||
|
"numberOfDays-label": "Jours par défaut",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Seules les recettes appartenant à ces catégories seront utilisées dans les menus",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Seules les recettes appartenant à ces catégories seront utilisées dans les menus",
|
||||||
"planner": "Menu",
|
"planner": "Menu",
|
||||||
"quick-week": "Semaine rapide",
|
"quick-week": "Semaine rapide",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie peut importer des recettes depuis My Recipe Box. Exportez vos recettes au format CSV, puis téléchargez le fichier CSV ci-dessous."
|
"description-long": "Mealie peut importer des recettes depuis My Recipe Box. Exportez vos recettes au format CSV, puis téléchargez le fichier CSV ci-dessous."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie peut importer des recettes depuis Recipe Keeper. Exportez vos recettes au format Zip, puis téléversez le fichier .zip ci-dessous."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -594,7 +600,7 @@
|
|||||||
"select-parser": "Sélectionner l'analyseur",
|
"select-parser": "Sélectionner l'analyseur",
|
||||||
"natural-language-processor": "Traitement du Langage Naturel",
|
"natural-language-processor": "Traitement du Langage Naturel",
|
||||||
"brute-parser": "Analyseur brut",
|
"brute-parser": "Analyseur brut",
|
||||||
"openai-parser": "OpenAI Parser",
|
"openai-parser": "Parseur OpenAI",
|
||||||
"parse-all": "Tout analyser",
|
"parse-all": "Tout analyser",
|
||||||
"no-unit": "Pas d'unité",
|
"no-unit": "Pas d'unité",
|
||||||
"missing-unit": "Créer une unité manquante : {unit}",
|
"missing-unit": "Créer une unité manquante : {unit}",
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Sauvegarde créée dans {path}",
|
"backup-created-at-response-export_path": "Sauvegarde créée dans {path}",
|
||||||
"backup-deleted": "Sauvegarde supprimée",
|
"backup-deleted": "Sauvegarde supprimée",
|
||||||
"restore-success": "Restauration réussie",
|
"restore-success": "Restauration réussie",
|
||||||
|
"restore-fail": "Échec de la restauration. Vérifiez les journaux de votre serveur pour plus de détails",
|
||||||
"backup-tag": "Tag de la sauvegarde",
|
"backup-tag": "Tag de la sauvegarde",
|
||||||
"create-heading": "Créer une sauvegarde",
|
"create-heading": "Créer une sauvegarde",
|
||||||
"delete-backup": "Supprimer la sauvegarde",
|
"delete-backup": "Supprimer la sauvegarde",
|
||||||
@@ -766,9 +773,9 @@
|
|||||||
"oidc-ready": "Prêt pour OIDC",
|
"oidc-ready": "Prêt pour OIDC",
|
||||||
"oidc-ready-error-text": "Toutes les valeurs OIDC ne sont pas configurées. Vous pouvez ignorer cet avertissement si vous n’utilisez pas l’authentification OIDC.",
|
"oidc-ready-error-text": "Toutes les valeurs OIDC ne sont pas configurées. Vous pouvez ignorer cet avertissement si vous n’utilisez pas l’authentification OIDC.",
|
||||||
"oidc-ready-success-text": "Les variables OIDC obligatoires sont toutes définies.",
|
"oidc-ready-success-text": "Les variables OIDC obligatoires sont toutes définies.",
|
||||||
"openai-ready": "OpenAI Ready",
|
"openai-ready": "Prêt pour OpenAI",
|
||||||
"openai-ready-error-text": "Not all OpenAI Values are configured. This can be ignored if you are not using OpenAI features.",
|
"openai-ready-error-text": "Toutes les valeurs OpenAI ne sont pas configurées. Vous pouvez ignorer cet avertissement si vous n'utilisez pas les fonctionnalités OpenAI.",
|
||||||
"openai-ready-success-text": "Required OpenAI variables are all set."
|
"openai-ready-success-text": "Les variables OpenAI obligatoires sont toutes définies."
|
||||||
},
|
},
|
||||||
"shopping-list": {
|
"shopping-list": {
|
||||||
"all-lists": "Toutes les listes",
|
"all-lists": "Toutes les listes",
|
||||||
@@ -782,7 +789,7 @@
|
|||||||
"food": "Aliment",
|
"food": "Aliment",
|
||||||
"note": "Note",
|
"note": "Note",
|
||||||
"label": "Étiquette",
|
"label": "Étiquette",
|
||||||
"save-label": "Save Label",
|
"save-label": "Sauvegarder le libellé",
|
||||||
"linked-item-warning": "Cet article est lié à une ou plusieurs recettes. Ajuster les unités ou les aliments donnera des résultats inattendus lors de l’ajout ou de la suppression de la recette de cette liste.",
|
"linked-item-warning": "Cet article est lié à une ou plusieurs recettes. Ajuster les unités ou les aliments donnera des résultats inattendus lors de l’ajout ou de la suppression de la recette de cette liste.",
|
||||||
"toggle-food": "Activer/Désactiver aliment",
|
"toggle-food": "Activer/Désactiver aliment",
|
||||||
"manage-labels": "Gérer les libellés",
|
"manage-labels": "Gérer les libellés",
|
||||||
|
|||||||
@@ -25,14 +25,14 @@
|
|||||||
"sponsor": "Patrocinador"
|
"sponsor": "Patrocinador"
|
||||||
},
|
},
|
||||||
"asset": {
|
"asset": {
|
||||||
"assets": "Activos",
|
"assets": "Recursos",
|
||||||
"code": "Código",
|
"code": "Código",
|
||||||
"file": "Ficheiro",
|
"file": "Ficheiro",
|
||||||
"image": "Imaxe",
|
"image": "Imaxe",
|
||||||
"new-asset": "Novo documento",
|
"new-asset": "Novo Recurso",
|
||||||
"pdf": "PDF",
|
"pdf": "PDF",
|
||||||
"recipe": "Receita",
|
"recipe": "Receita",
|
||||||
"show-assets": "Amosar documentos",
|
"show-assets": "Amosar Recursos",
|
||||||
"error-submitting-form": "Erro ao enviar formulario"
|
"error-submitting-form": "Erro ao enviar formulario"
|
||||||
},
|
},
|
||||||
"category": {
|
"category": {
|
||||||
@@ -56,61 +56,61 @@
|
|||||||
"event-delete-confirmation": "Estás seguro de que queres eliminar este evento?",
|
"event-delete-confirmation": "Estás seguro de que queres eliminar este evento?",
|
||||||
"event-deleted": "Evento eliminado",
|
"event-deleted": "Evento eliminado",
|
||||||
"event-updated": "Evento actualizado",
|
"event-updated": "Evento actualizado",
|
||||||
"new-notification-form-description": "Mealie uses the Apprise library to generate notifications. They offer many options for services to use for notifications. Refer to their wiki for a comprehensive guide on how to create the URL for your service. If available, selecting the type of your notification may include extra features.",
|
"new-notification-form-description": "Mealie usa a biblioteca de Appprise para xerar notificacións. Ofrecen moitas opcións para que os servizos usen as notificacións. Consulte a súa wiki para obter unha guía completa sobre como crear o URL para o seu servizo. Se está dispoñible, a selección do tipo de notificación pode incluír funcións adicionais.",
|
||||||
"new-version": "New version available!",
|
"new-version": "Nova versión dispoñible!",
|
||||||
"notification": "Notification",
|
"notification": "Notificación",
|
||||||
"refresh": "Refresh",
|
"refresh": "Actualizar",
|
||||||
"scheduled": "Scheduled",
|
"scheduled": "Programación",
|
||||||
"something-went-wrong": "Something Went Wrong!",
|
"something-went-wrong": "Algo Fallou!",
|
||||||
"subscribed-events": "Subscribed Events",
|
"subscribed-events": "Eventos Subscritos",
|
||||||
"test-message-sent": "Test Message Sent",
|
"test-message-sent": "Mensaxe de Proba Enviada",
|
||||||
"message-sent": "Message Sent",
|
"message-sent": "Mensaxe Enviada",
|
||||||
"new-notification": "New Notification",
|
"new-notification": "Nova notificación",
|
||||||
"event-notifiers": "Event Notifiers",
|
"event-notifiers": "Notificadores de Eventos",
|
||||||
"apprise-url-skipped-if-blank": "Apprise URL (skipped if blank)",
|
"apprise-url-skipped-if-blank": "URL de Apprise (omitido se está en branco)",
|
||||||
"enable-notifier": "Enable Notifier",
|
"enable-notifier": "Activar o Notificador",
|
||||||
"what-events": "What events should this notifier subscribe to?",
|
"what-events": "A que eventos debería subscribirse este notificador?",
|
||||||
"user-events": "User Events",
|
"user-events": "Eventos de Usuario",
|
||||||
"mealplan-events": "Mealplan Events",
|
"mealplan-events": "Eventos do Menú",
|
||||||
"when-a-user-in-your-group-creates-a-new-mealplan": "When a user in your group creates a new mealplan",
|
"when-a-user-in-your-group-creates-a-new-mealplan": "Cando un usuario do teu grupo crea un novo plan de comidas",
|
||||||
"shopping-list-events": "Shopping List Events",
|
"shopping-list-events": "Eventos da Lista da Compra",
|
||||||
"cookbook-events": "Cookbook Events",
|
"cookbook-events": "Eventos de Libros de Cociña",
|
||||||
"tag-events": "Tag Events",
|
"tag-events": "Eventos de Etiquetas",
|
||||||
"category-events": "Category Events",
|
"category-events": "Eventos de Categorías",
|
||||||
"when-a-new-user-joins-your-group": "When a new user joins your group",
|
"when-a-new-user-joins-your-group": "Cando un novo usuario se une ao teu grupo",
|
||||||
"recipe-events": "Recipe Events"
|
"recipe-events": "Eventos de Receitas"
|
||||||
},
|
},
|
||||||
"general": {
|
"general": {
|
||||||
"add": "Add",
|
"add": "Engadir",
|
||||||
"cancel": "Cancel",
|
"cancel": "Cancelar",
|
||||||
"clear": "Clear",
|
"clear": "Borrar",
|
||||||
"close": "Close",
|
"close": "Pechar",
|
||||||
"confirm": "Confirm",
|
"confirm": "Confirmar",
|
||||||
"confirm-how-does-everything-look": "How does everything look?",
|
"confirm-how-does-everything-look": "Como se ve todo?",
|
||||||
"confirm-delete-generic": "Are you sure you want to delete this?",
|
"confirm-delete-generic": "Estás seguro de que queres eliminar isto?",
|
||||||
"copied_message": "Copied!",
|
"copied_message": "Copiado!",
|
||||||
"create": "Create",
|
"create": "Crear",
|
||||||
"created": "Created",
|
"created": "Creado",
|
||||||
"custom": "Custom",
|
"custom": "Personalizado",
|
||||||
"dashboard": "Dashboard",
|
"dashboard": "Panel",
|
||||||
"delete": "Delete",
|
"delete": "Eliminar",
|
||||||
"disabled": "Disabled",
|
"disabled": "Desactivado",
|
||||||
"download": "Download",
|
"download": "Descargar",
|
||||||
"duplicate": "Duplicate",
|
"duplicate": "Duplicar",
|
||||||
"edit": "Edit",
|
"edit": "Editar",
|
||||||
"enabled": "Enabled",
|
"enabled": "Activado",
|
||||||
"exception": "Exception",
|
"exception": "Excepción",
|
||||||
"failed-count": "Failed: {count}",
|
"failed-count": "Produciuse un erro: {count}",
|
||||||
"failure-uploading-file": "Failure uploading file",
|
"failure-uploading-file": "Produciuse un erro ao cargar o ficheiro",
|
||||||
"favorites": "Favorites",
|
"favorites": "Favoritos",
|
||||||
"field-required": "Field Required",
|
"field-required": "Campo Obrigatorio",
|
||||||
"file-folder-not-found": "File/folder not found",
|
"file-folder-not-found": "Non se atopou o ficheiro/cartafol",
|
||||||
"file-uploaded": "File uploaded",
|
"file-uploaded": "Ficheiro cargado",
|
||||||
"filter": "Filter",
|
"filter": "Filtro",
|
||||||
"friday": "Friday",
|
"friday": "Venres",
|
||||||
"general": "General",
|
"general": "Xeral",
|
||||||
"get": "Get",
|
"get": "Obter",
|
||||||
"home": "Home",
|
"home": "Inicio",
|
||||||
"image": "Imaxe",
|
"image": "Imaxe",
|
||||||
"image-upload-failed": "Fallou a subida da imaxe",
|
"image-upload-failed": "Fallou a subida da imaxe",
|
||||||
"import": "Importar",
|
"import": "Importar",
|
||||||
@@ -145,197 +145,199 @@
|
|||||||
"save": "Gardar",
|
"save": "Gardar",
|
||||||
"settings": "Axustes",
|
"settings": "Axustes",
|
||||||
"share": "Compartir",
|
"share": "Compartir",
|
||||||
"show-all": "Show All",
|
"show-all": "Amosar todo",
|
||||||
"shuffle": "Barallar",
|
"shuffle": "Barallar",
|
||||||
"sort": "Ordenar",
|
"sort": "Ordenar",
|
||||||
"sort-ascending": "Sort Ascending",
|
"sort-ascending": "Orde Ascendente",
|
||||||
"sort-descending": "Sort Descending",
|
"sort-descending": "Orde Descendente",
|
||||||
"sort-alphabetically": "Alfabético",
|
"sort-alphabetically": "Alfabético",
|
||||||
"status": "Estado",
|
"status": "Estado",
|
||||||
"subject": "Asunto",
|
"subject": "Asunto",
|
||||||
"submit": "Enviar",
|
"submit": "Enviar",
|
||||||
"success-count": "Éxito: {count}",
|
"success-count": "Éxito: {count}",
|
||||||
"sunday": "Domingo",
|
"sunday": "Domingo",
|
||||||
"system": "System",
|
"system": "Sistema",
|
||||||
"templates": "Modelos:",
|
"templates": "Modelos:",
|
||||||
"test": "Probar",
|
"test": "Probar",
|
||||||
"themes": "Temas",
|
"themes": "Temas",
|
||||||
"thursday": "Xoves",
|
"thursday": "Xoves",
|
||||||
"title": "Title",
|
"title": "Titulo",
|
||||||
"token": "Identificador",
|
"token": "Identificador",
|
||||||
"tuesday": "Martes",
|
"tuesday": "Martes",
|
||||||
"type": "Tipo",
|
"type": "Tipo",
|
||||||
"update": "Actualizar",
|
"update": "Actualizar",
|
||||||
"updated": "Updated",
|
"updated": "Actualizado",
|
||||||
"upload": "Upload",
|
"upload": "Subir",
|
||||||
"url": "URL",
|
"url": "URL",
|
||||||
"view": "View",
|
"view": "Ver",
|
||||||
"wednesday": "Wednesday",
|
"wednesday": "Mércores",
|
||||||
"yes": "Yes",
|
"yes": "Si",
|
||||||
"foods": "Foods",
|
"foods": "Comidas",
|
||||||
"units": "Units",
|
"units": "Unidades",
|
||||||
"back": "Back",
|
"back": "Atrás",
|
||||||
"next": "Next",
|
"next": "Seguinte",
|
||||||
"start": "Start",
|
"start": "Comezo",
|
||||||
"toggle-view": "Toggle View",
|
"toggle-view": "Cambiar a Vista",
|
||||||
"date": "Date",
|
"date": "Data",
|
||||||
"id": "Id",
|
"id": "Id",
|
||||||
"owner": "Owner",
|
"owner": "Dono",
|
||||||
"date-added": "Date Added",
|
"date-added": "Engadida o",
|
||||||
"none": "None",
|
"none": "Nada",
|
||||||
"run": "Run",
|
"run": "Executar",
|
||||||
"menu": "Menu",
|
"menu": "Menú",
|
||||||
"a-name-is-required": "A Name is Required",
|
"a-name-is-required": "Requírese un Nome",
|
||||||
"delete-with-name": "Delete {name}",
|
"delete-with-name": "Delete {name}",
|
||||||
"confirm-delete-generic-with-name": "Are you sure you want to delete this {name}?",
|
"confirm-delete-generic-with-name": "Estás seguro de que queres eliminar este {name}?",
|
||||||
"confirm-delete-own-admin-account": "Please note that you are trying to delete your own admin account! This action cannot be undone and will permanently delete your account?",
|
"confirm-delete-own-admin-account": "Ten en conta que estás tentando eliminar a túa propia conta de administrador. Esta acción non se pode desfacer e eliminarase permanentemente a túa conta?",
|
||||||
"organizer": "Organizer",
|
"organizer": "Organizador",
|
||||||
"transfer": "Transfer",
|
"transfer": "Transferir",
|
||||||
"copy": "Copy",
|
"copy": "Copiar",
|
||||||
"color": "Color",
|
"color": "Cor",
|
||||||
"timestamp": "Timestamp",
|
"timestamp": "Data e hora",
|
||||||
"last-made": "Last Made",
|
"last-made": "Feito por Última Vez",
|
||||||
"learn-more": "Learn More",
|
"learn-more": "Saber máis",
|
||||||
"this-feature-is-currently-inactive": "This feature is currently inactive",
|
"this-feature-is-currently-inactive": "Esta función está actualmente inactiva",
|
||||||
"clipboard-not-supported": "Clipboard not supported",
|
"clipboard-not-supported": "Portapapeis non compatible",
|
||||||
"copied-to-clipboard": "Copied to clipboard",
|
"copied-to-clipboard": "Copiado ao portapapeis",
|
||||||
"your-browser-does-not-support-clipboard": "Your browser does not support clipboard",
|
"your-browser-does-not-support-clipboard": "O teu navegador non soporta o portapapeis",
|
||||||
"copied-items-to-clipboard": "No item copied to clipboard|One item copied to clipboard|Copied {count} items to clipboard",
|
"copied-items-to-clipboard": "Non se copiou ningún elemento no portapapeis|Copiouse un elemento no portapapeis|Copiáronse {count} elementos no portapapeis",
|
||||||
"actions": "Actions",
|
"actions": "Accións",
|
||||||
"selected-count": "Selected: {count}",
|
"selected-count": "Seleccionado: {count}",
|
||||||
"export-all": "Export All",
|
"export-all": "Exportar Todo",
|
||||||
"refresh": "Refresh",
|
"refresh": "Recargar",
|
||||||
"upload-file": "Upload File",
|
"upload-file": "Subir Arquivo",
|
||||||
"created-on-date": "Created on: {0}",
|
"created-on-date": "Creado o: {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "Tes cambios sen gardar. Queres gardar antes de saír? OK para gardar, Cancelar para descartar cambios.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
"clipboard-copy-failure": "Produciuse un erro ao copiar contido no portapapeis.",
|
||||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?",
|
"confirm-delete-generic-items": "Estás seguro de que queres eliminar os seguintes elementos?",
|
||||||
"organizers": "Organizers"
|
"organizers": "Organizadores"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Are you sure you want to delete <b>{groupName}<b/>?",
|
"are-you-sure-you-want-to-delete-the-group": "Estás seguro de que queres eliminar <b>{groupName}<b/>?",
|
||||||
"cannot-delete-default-group": "Cannot delete default group",
|
"cannot-delete-default-group": "Non se pode eliminar o grupo predeterminado",
|
||||||
"cannot-delete-group-with-users": "Cannot delete group with users",
|
"cannot-delete-group-with-users": "Non se pode eliminar un grupo con usuarios",
|
||||||
"confirm-group-deletion": "Confirm Group Deletion",
|
"confirm-group-deletion": "Confirme a Eliminación do Grupo",
|
||||||
"create-group": "Create Group",
|
"create-group": "Crear Grupo",
|
||||||
"error-updating-group": "Error updating group",
|
"error-updating-group": "Produciuse un erro ao actualizar o grupo",
|
||||||
"group": "Group",
|
"group": "Grupo",
|
||||||
"group-deleted": "Group deleted",
|
"group-deleted": "Grupo eliminado",
|
||||||
"group-deletion-failed": "Group deletion failed",
|
"group-deletion-failed": "Produciuse un erro ao eliminar o grupo",
|
||||||
"group-id-with-value": "Group ID: {groupID}",
|
"group-id-with-value": "ID do grupo: {groupID}",
|
||||||
"group-name": "Group Name",
|
"group-name": "Nome do Grupo",
|
||||||
"group-not-found": "Group not found",
|
"group-not-found": "Non se atopou o grupo",
|
||||||
"group-token": "Group Token",
|
"group-token": "Token de Grupo",
|
||||||
"group-with-value": "Group: {groupID}",
|
"group-with-value": "Grupo: {groupID}",
|
||||||
"groups": "Groups",
|
"groups": "Grupos",
|
||||||
"manage-groups": "Manage Groups",
|
"manage-groups": "Xestionar Grupos",
|
||||||
"user-group": "User Group",
|
"user-group": "Grupo de Usuarios",
|
||||||
"user-group-created": "User Group Created",
|
"user-group-created": "Grupo de Usuarios Creado",
|
||||||
"user-group-creation-failed": "User Group Creation Failed",
|
"user-group-creation-failed": "Produciuse un Erro na Creación do Grupo de Usuarios",
|
||||||
"settings": {
|
"settings": {
|
||||||
"keep-my-recipes-private": "Keep My Recipes Private",
|
"keep-my-recipes-private": "Mantén as Miñas Receitas Privadas",
|
||||||
"keep-my-recipes-private-description": "Sets your group and all recipes defaults to private. You can always change this later."
|
"keep-my-recipes-private-description": "Establece o teu grupo e todas as receitas como privados por defecto. Sempre podes cambiar isto máis tarde."
|
||||||
},
|
},
|
||||||
"manage-members": "Manage Members",
|
"manage-members": "Xestionar Membros",
|
||||||
"manage-members-description": "Manage the permissions of the members in your groups. {manage} allows the user to access the data-management page {invite} allows the user to generate invitation links for other users. Group owners cannot change their own permissions.",
|
"manage-members-description": "Xestiona os permisos dos membros dos teus grupos. {manage} permítelle ao usuario acceder á páxina de xestión de datos {invite} permítelle xerar ligazóns de invitación para outros usuarios. Os propietarios do grupo non poden cambiar os seus propios permisos.",
|
||||||
"manage": "Manage",
|
"manage": "Xestionar",
|
||||||
"invite": "Invite",
|
"invite": "Convidar",
|
||||||
"looking-to-update-your-profile": "Looking to Update Your Profile?",
|
"looking-to-update-your-profile": "Buscas Actualizar o Teu Perfil?",
|
||||||
"default-recipe-preferences-description": "These are the default settings when a new recipe is created in your group. These can be changed for individual recipes in the recipe settings menu.",
|
"default-recipe-preferences-description": "Estas son as opcións predeterminadas cando se crea unha nova receita no teu grupo. Pódense cambiar para receitas individuais no menú de configuración de receitas.",
|
||||||
"default-recipe-preferences": "Default Recipe Preferences",
|
"default-recipe-preferences": "Preferencias de Receitas Predeterminadas",
|
||||||
"group-preferences": "Group Preferences",
|
"group-preferences": "Preferencias do Grupo",
|
||||||
"private-group": "Private Group",
|
"private-group": "Grupo Privado",
|
||||||
"private-group-description": "Setting your group to private will default all public view options to default. This overrides an individual recipes public view settings.",
|
"private-group-description": "Ao configurar o teu grupo como privado, todas as opcións de visualización pública serán predeterminadas. Isto anula a configuración de vista pública dunha receita individual.",
|
||||||
"enable-public-access": "Enable Public Access",
|
"enable-public-access": "Habilitar o Acceso Público",
|
||||||
"enable-public-access-description": "Make group recipes public by default, and allow visitors to view recipes without logging-in",
|
"enable-public-access-description": "Fai que as receitas do grupo sexan públicas de forma predeterminada e permita que os visitantes vexan receitas sen iniciar sesión",
|
||||||
"allow-users-outside-of-your-group-to-see-your-recipes": "Allow users outside of your group to see your recipes",
|
"allow-users-outside-of-your-group-to-see-your-recipes": "Permite que os usuarios alleos ao teu grupo vexan as túas receitas",
|
||||||
"allow-users-outside-of-your-group-to-see-your-recipes-description": "When enabled you can use a public share link to share specific recipes without authorizing the user. When disabled, you can only share recipes with users who are in your group or with a pre-generated private link",
|
"allow-users-outside-of-your-group-to-see-your-recipes-description": "Cando estea activado, podes usar unha ligazón pública para compartir receitas específicas sen autorizar o usuario. Cando estea desactivado, só podes compartir receitas con usuarios que estean no teu grupo ou cunha ligazón privada xerada previamente",
|
||||||
"show-nutrition-information": "Show nutrition information",
|
"show-nutrition-information": "Mostrar información nutricional",
|
||||||
"show-nutrition-information-description": "When enabled the nutrition information will be shown on the recipe if available. If there is no nutrition information available, the nutrition information will not be shown",
|
"show-nutrition-information-description": "Cando estea activado, a información nutricional mostrarase na receita se está dispoñible. Se non hai información nutricional dispoñible, a información nutricional non se mostrará",
|
||||||
"show-recipe-assets": "Show recipe assets",
|
"show-recipe-assets": "Mostrar recursos da receita",
|
||||||
"show-recipe-assets-description": "When enabled the recipe assets will be shown on the recipe if available",
|
"show-recipe-assets-description": "Cando estea activado, os recursos da receita mostraranse na receita se están dispoñibles",
|
||||||
"default-to-landscape-view": "Default to landscape view",
|
"default-to-landscape-view": "Vista predeterminada en horizontal",
|
||||||
"default-to-landscape-view-description": "When enabled the recipe header section will be shown in landscape view",
|
"default-to-landscape-view-description": "Cando estea activado, a sección de cabeceira da receita mostrarase en horizontal",
|
||||||
"disable-users-from-commenting-on-recipes": "Disable users from commenting on recipes",
|
"disable-users-from-commenting-on-recipes": "Deshabilitar aos usuarios para comentar receitas",
|
||||||
"disable-users-from-commenting-on-recipes-description": "Hides the comment section on the recipe page and disables commenting",
|
"disable-users-from-commenting-on-recipes-description": "Oculta a sección de comentarios na páxina de receitas e desactiva os comentarios",
|
||||||
"disable-organizing-recipe-ingredients-by-units-and-food": "Disable organizing recipe ingredients by units and food",
|
"disable-organizing-recipe-ingredients-by-units-and-food": "Desactivar a organización dos ingredientes da receita por unidades e alimentos",
|
||||||
"disable-organizing-recipe-ingredients-by-units-and-food-description": "Hides the Food, Unit, and Amount fields for ingredients and treats ingredients as plain text fields.",
|
"disable-organizing-recipe-ingredients-by-units-and-food-description": "Oculta os campos Comida, Unidade e Cantidade dos ingredientes e trata os ingredientes como campos de texto simple.",
|
||||||
"general-preferences": "General Preferences",
|
"general-preferences": "Preferencias Xerais",
|
||||||
"group-recipe-preferences": "Group Recipe Preferences",
|
"group-recipe-preferences": "Preferencias de Receitas de Grupo",
|
||||||
"report": "Report",
|
"report": "Informar",
|
||||||
"report-with-id": "Report ID: {id}",
|
"report-with-id": "ID do informe: {id}",
|
||||||
"group-management": "Group Management",
|
"group-management": "Xestión de Grupos",
|
||||||
"admin-group-management": "Admin Group Management",
|
"admin-group-management": "Xestión do Grupo de Administración",
|
||||||
"admin-group-management-text": "Changes to this group will be reflected immediately.",
|
"admin-group-management-text": "Os cambios neste grupo reflectiranse inmediatamente.",
|
||||||
"group-id-value": "Group Id: {0}"
|
"group-id-value": "Id do grupo: {0}"
|
||||||
},
|
},
|
||||||
"meal-plan": {
|
"meal-plan": {
|
||||||
"create-a-new-meal-plan": "Create a New Meal Plan",
|
"create-a-new-meal-plan": "Crea un Novo Menú",
|
||||||
"update-this-meal-plan": "Update this Meal Plan",
|
"update-this-meal-plan": "Actualiza este Menú",
|
||||||
"dinner-this-week": "Dinner This Week",
|
"dinner-this-week": "Cea Desta Semana",
|
||||||
"dinner-today": "Dinner Today",
|
"dinner-today": "Cea de Hoxe",
|
||||||
"dinner-tonight": "DINNER TONIGHT",
|
"dinner-tonight": "CEA DESTA NOITE",
|
||||||
"edit-meal-plan": "Edit Meal Plan",
|
"edit-meal-plan": "Editar o Menú",
|
||||||
"end-date": "End Date",
|
"end-date": "Data de Finalización",
|
||||||
"group": "Group (Beta)",
|
"group": "Grupo (Beta)",
|
||||||
"main": "Main",
|
"main": "Principal",
|
||||||
"meal-planner": "Meal Planner",
|
"meal-planner": "Planificador de Menús",
|
||||||
"meal-plans": "Meal Plans",
|
"meal-plans": "Menús",
|
||||||
"mealplan-categories": "MEALPLAN CATEGORIES",
|
"mealplan-categories": "CATEGORÍAS DE COMIDAS",
|
||||||
"mealplan-created": "Mealplan created",
|
"mealplan-created": "Menú creado",
|
||||||
"mealplan-creation-failed": "Mealplan creation failed",
|
"mealplan-creation-failed": "Produciuse un erro ao crear o menú",
|
||||||
"mealplan-deleted": "Mealplan Deleted",
|
"mealplan-deleted": "Menú Eliminado",
|
||||||
"mealplan-deletion-failed": "Mealplan deletion failed",
|
"mealplan-deletion-failed": "Produciuse un erro ao eliminar o menú",
|
||||||
"mealplan-settings": "Mealplan Settings",
|
"mealplan-settings": "Axustes do Menú",
|
||||||
"mealplan-update-failed": "Mealplan update failed",
|
"mealplan-update-failed": "Produciuse un erro na actualización do menú",
|
||||||
"mealplan-updated": "Mealplan Updated",
|
"mealplan-updated": "Menú Actualizado",
|
||||||
"no-meal-plan-defined-yet": "No meal plan defined yet",
|
"no-meal-plan-defined-yet": "Aínda non se definiu ningún menú",
|
||||||
"no-meal-planned-for-today": "No meal planned for today",
|
"no-meal-planned-for-today": "Non hai ningunha comida prevista para hoxe",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans",
|
"numberOfDays-hint": "Número de días ao cargar a páxina",
|
||||||
"planner": "Planner",
|
"numberOfDays-label": "Días Predeterminados",
|
||||||
"quick-week": "Quick Week",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Só se utilizarán receitas con estas categorías nos Menús",
|
||||||
"side": "Side",
|
"planner": "Planificador",
|
||||||
"sides": "Sides",
|
"quick-week": "Plan Rápido",
|
||||||
"start-date": "Start Date",
|
"side": "Guarnición",
|
||||||
"rule-day": "Rule Day",
|
"sides": "Guarnicións",
|
||||||
"meal-type": "Meal Type",
|
"start-date": "Data de inicio",
|
||||||
"breakfast": "Breakfast",
|
"rule-day": "Regra para o Día",
|
||||||
"lunch": "Lunch",
|
"meal-type": "Tipo de Comida",
|
||||||
"dinner": "Dinner",
|
"breakfast": "Almorzo",
|
||||||
"type-any": "Any",
|
"lunch": "Xantar",
|
||||||
"day-any": "Any",
|
"dinner": "Cea",
|
||||||
|
"type-any": "Calquera",
|
||||||
|
"day-any": "Calquera",
|
||||||
"editor": "Editor",
|
"editor": "Editor",
|
||||||
"meal-recipe": "Meal Recipe",
|
"meal-recipe": "Receita de Comida",
|
||||||
"meal-title": "Meal Title",
|
"meal-title": "Título de Comida",
|
||||||
"meal-note": "Meal Note",
|
"meal-note": "Nota da Comida",
|
||||||
"note-only": "Note Only",
|
"note-only": "Só Nota",
|
||||||
"random-meal": "Random Meal",
|
"random-meal": "Comida Aleatoria",
|
||||||
"random-dinner": "Random Dinner",
|
"random-dinner": "Cea Aleatoria",
|
||||||
"random-side": "Random Side",
|
"random-side": "Guarnición Aleatoria",
|
||||||
"this-rule-will-apply": "This rule will apply {dayCriteria} {mealTypeCriteria}.",
|
"this-rule-will-apply": "Esta regra aplicarase {dayCriteria} {mealTypeCriteria}.",
|
||||||
"to-all-days": "to all days",
|
"to-all-days": "a todos os días",
|
||||||
"on-days": "on {0}s",
|
"on-days": "en {0}s",
|
||||||
"for-all-meal-types": "for all meal types",
|
"for-all-meal-types": "para todo tipo de comidas",
|
||||||
"for-type-meal-types": "for {0} meal types",
|
"for-type-meal-types": "para {0} tipos de comidas",
|
||||||
"meal-plan-rules": "Meal Plan Rules",
|
"meal-plan-rules": "Regras do Menú",
|
||||||
"new-rule": "New Rule",
|
"new-rule": "Nova Regra",
|
||||||
"meal-plan-rules-description": "You can create rules for auto selecting recipes for your meal plans. These rules are used by the server to determine the random pool of recipes to select from when creating meal plans. Note that if rules have the same day/type constraints then the categories of the rules will be merged. In practice, it's unnecessary to create duplicate rules, but it's possible to do so.",
|
"meal-plan-rules-description": "Podes crear regras para a selección automática de receitas para os teus menús. Estas regras son usadas polo servidor para determinar o grupo aleatorio de receitas para seleccionar ao crear menús. Teña en conta que se as regras teñen as mesmas restricións de día/tipo, fusionaranse as categorías das regras. Na práctica, é innecesario crear regras duplicadas, pero é posible facelo.",
|
||||||
"new-rule-description": "When creating a new rule for a meal plan you can restrict the rule to be applicable for a specific day of the week and/or a specific type of meal. To apply a rule to all days or all meal types you can set the rule to \"Any\" which will apply it to all the possible values for the day and/or meal type.",
|
"new-rule-description": "Ao crear unha nova regra para un menú, pode restrinxir a regra para que se aplique a un día específico da semana e/ou a un tipo específico de comida. Para aplicar unha regra a todos os días ou a todos os tipos de comidas, pode establecer a regra en \"Calquera\" que a aplicará a todos os valores posibles para o día e/ou o tipo de comida.",
|
||||||
"recipe-rules": "Recipe Rules",
|
"recipe-rules": "Regras da Receita",
|
||||||
"applies-to-all-days": "Applies to all days",
|
"applies-to-all-days": "Aplícase a todos os días",
|
||||||
"applies-on-days": "Applies on {0}s",
|
"applies-on-days": "Aplícase en {0}s",
|
||||||
"meal-plan-settings": "Meal Plan Settings"
|
"meal-plan-settings": "Axustes do Menú"
|
||||||
},
|
},
|
||||||
"migration": {
|
"migration": {
|
||||||
"migration-data-removed": "Migration data removed",
|
"migration-data-removed": "Elimináronse os datos de migración",
|
||||||
"new-migration": "New Migration",
|
"new-migration": "Nova Migración",
|
||||||
"no-file-selected": "No File Selected",
|
"no-file-selected": "Non se Seleccionou Ningún Ficheiro",
|
||||||
"no-migration-data-available": "No Migration Data Available",
|
"no-migration-data-available": "Non Hai Datos de Migración Dispoñibles",
|
||||||
"previous-migrations": "Previous Migrations",
|
"previous-migrations": "Migracións Anteriores",
|
||||||
"recipe-migration": "Recipe Migration",
|
"recipe-migration": "Migración de Receitas",
|
||||||
"chowdown": {
|
"chowdown": {
|
||||||
"description": "Migrate data from Chowdown",
|
"description": "Migra os datos dende Chowdown",
|
||||||
"description-long": "Mealie natively supports the chowdown repository format. Download the code repository as a .zip file and upload it below.",
|
"description-long": "Mealie admite de forma nativa o formato do repositorio de chowdown. Descarga o repositorio de códigos como ficheiro .zip e cárgao a continuación.",
|
||||||
"title": "Chowdown"
|
"title": "Chowdown"
|
||||||
},
|
},
|
||||||
"nextcloud": {
|
"nextcloud": {
|
||||||
@@ -365,18 +367,22 @@
|
|||||||
"choose-migration-type": "Choose Migration Type",
|
"choose-migration-type": "Choose Migration Type",
|
||||||
"tag-all-recipes": "Tag all recipes with {tag-name} tag",
|
"tag-all-recipes": "Tag all recipes with {tag-name} tag",
|
||||||
"nextcloud-text": "Nextcloud recipes can be imported from a zip file that contains the data stored in Nextcloud. See the example folder structure below to ensure your recipes are able to be imported.",
|
"nextcloud-text": "Nextcloud recipes can be imported from a zip file that contains the data stored in Nextcloud. See the example folder structure below to ensure your recipes are able to be imported.",
|
||||||
"chowdown-text": "Mealie natively supports the chowdown repository format. Download the code repository as a .zip file and upload it below.",
|
"chowdown-text": "Mealie admite de forma nativa o formato do repositorio de chowdown. Descarga o repositorio de códigos como ficheiro .zip e cárgao a continuación.",
|
||||||
"recipe-1": "Recipe 1",
|
"recipe-1": "Recipe 1",
|
||||||
"recipe-2": "Recipe 2",
|
"recipe-2": "Recipe 2",
|
||||||
"paprika-text": "Mealie can import recipes from the Paprika application. Export your recipes from paprika, rename the export extension to .zip and upload it below.",
|
"paprika-text": "Mealie can import recipes from the Paprika application. Export your recipes from paprika, rename the export extension to .zip and upload it below.",
|
||||||
"mealie-text": "Mealie can import recipes from the Mealie application from a pre v1.0 release. Export your recipes from your old instance, and upload the zip file below. Note that only recipes can be imported from the export.",
|
"mealie-text": "Mealie can import recipes from the Mealie application from a pre v1.0 release. Export your recipes from your old instance, and upload the zip file below. Note that only recipes can be imported from the export.",
|
||||||
"plantoeat": {
|
"plantoeat": {
|
||||||
"title": "Plan to Eat",
|
"title": "Plan to Eat",
|
||||||
"description-long": "Mealie can import recipies from Plan to Eat."
|
"description-long": "Mealie pode importar receitas de Plan to Eat."
|
||||||
},
|
},
|
||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Garda Receitas",
|
||||||
|
"description-long": "Mealie pode importar receitas do Garda Receitas. Exporta as túas receitas en formato zip e, a continuación, carga o ficheiro .zip abaixo."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -407,81 +413,81 @@
|
|||||||
"new-page-created": "New page created",
|
"new-page-created": "New page created",
|
||||||
"page": "Page",
|
"page": "Page",
|
||||||
"page-creation-failed": "Page creation failed",
|
"page-creation-failed": "Page creation failed",
|
||||||
"page-deleted": "Page deleted",
|
"page-deleted": "Páxina eliminada",
|
||||||
"page-deletion-failed": "Page deletion failed",
|
"page-deletion-failed": "Produciuse un erro ao eliminar a páxina",
|
||||||
"page-update-failed": "Page update failed",
|
"page-update-failed": "Produciuse un erro na actualización da páxina",
|
||||||
"page-updated": "Page updated",
|
"page-updated": "Páxina actualizada",
|
||||||
"pages-update-failed": "Pages update failed",
|
"pages-update-failed": "Produciuse un erro na actualización das páxinas",
|
||||||
"pages-updated": "Pages updated",
|
"pages-updated": "Páxinas actualizadas",
|
||||||
"404-not-found": "404 Not Found",
|
"404-not-found": "404 non atopado",
|
||||||
"an-error-occurred": "An error occurred"
|
"an-error-occurred": "Houbo un erro"
|
||||||
},
|
},
|
||||||
"recipe": {
|
"recipe": {
|
||||||
"add-key": "Add Key",
|
"add-key": "Engadir Chave",
|
||||||
"add-to-favorites": "Add to Favorites",
|
"add-to-favorites": "Engadir a Favoritos",
|
||||||
"api-extras": "API Extras",
|
"api-extras": "Extras da API",
|
||||||
"calories": "Calories",
|
"calories": "Calorías",
|
||||||
"calories-suffix": "calories",
|
"calories-suffix": "calorías",
|
||||||
"carbohydrate-content": "Carbohydrate",
|
"carbohydrate-content": "Carbohidratos",
|
||||||
"categories": "Categories",
|
"categories": "Categorías",
|
||||||
"comment-action": "Comment",
|
"comment-action": "Comentar",
|
||||||
"comment": "Comment",
|
"comment": "Comentario",
|
||||||
"comments": "Comments",
|
"comments": "Comentarios",
|
||||||
"delete-confirmation": "Are you sure you want to delete this recipe?",
|
"delete-confirmation": "Estás seguro de que queres eliminar esta receita?",
|
||||||
"delete-recipe": "Delete Recipe",
|
"delete-recipe": "Eliminar Receita",
|
||||||
"description": "Description",
|
"description": "Descrición",
|
||||||
"disable-amount": "Disable Ingredient Amounts",
|
"disable-amount": "Desactivar as Cantidades de Ingredientes",
|
||||||
"disable-comments": "Disable Comments",
|
"disable-comments": "Disable Comments",
|
||||||
"duplicate": "Duplicate recipe",
|
"duplicate": "Duplicar a receita",
|
||||||
"duplicate-name": "Name of the new recipe",
|
"duplicate-name": "Nome da nova receita",
|
||||||
"edit-scale": "Edit Scale",
|
"edit-scale": "Edit Scale",
|
||||||
"fat-content": "Fat",
|
"fat-content": "Graxa",
|
||||||
"fiber-content": "Fiber",
|
"fiber-content": "Fibra",
|
||||||
"grams": "grams",
|
"grams": "gramos",
|
||||||
"ingredient": "Ingredient",
|
"ingredient": "Ingrediente",
|
||||||
"ingredients": "Ingredients",
|
"ingredients": "Ingredientes",
|
||||||
"insert-ingredient": "Insert Ingredient",
|
"insert-ingredient": "Inserir Ingrediente",
|
||||||
"insert-section": "Insert Section",
|
"insert-section": "Inserir Sección",
|
||||||
"instructions": "Instructions",
|
"instructions": "Instrucións",
|
||||||
"key-name-required": "Key Name Required",
|
"key-name-required": "Nome da Chave Obrigatorio",
|
||||||
"landscape-view-coming-soon": "Landscape View",
|
"landscape-view-coming-soon": "Vista Horizontal",
|
||||||
"milligrams": "milligrams",
|
"milligrams": "miligramos",
|
||||||
"new-key-name": "New Key Name",
|
"new-key-name": "Novo Nome da Chave",
|
||||||
"no-white-space-allowed": "No White Space Allowed",
|
"no-white-space-allowed": "Non se Permiten Espazos en Branco",
|
||||||
"note": "Note",
|
"note": "Nota",
|
||||||
"nutrition": "Nutrition",
|
"nutrition": "Nutrición",
|
||||||
"object-key": "Object Key",
|
"object-key": "Chave do Obxecto",
|
||||||
"object-value": "Object Value",
|
"object-value": "Valor do Obxecto",
|
||||||
"original-url": "Original URL",
|
"original-url": "URL orixinal",
|
||||||
"perform-time": "Cook Time",
|
"perform-time": "Tempo de Cocción",
|
||||||
"prep-time": "Prep Time",
|
"prep-time": "Tempo de Preparación",
|
||||||
"protein-content": "Protein",
|
"protein-content": "Proteína",
|
||||||
"public-recipe": "Public Recipe",
|
"public-recipe": "Receita Pública",
|
||||||
"recipe-created": "Recipe created",
|
"recipe-created": "Receita creada",
|
||||||
"recipe-creation-failed": "Recipe creation failed",
|
"recipe-creation-failed": "Produciuse un erro na creación da receita",
|
||||||
"recipe-deleted": "Recipe deleted",
|
"recipe-deleted": "Eliminouse a receita",
|
||||||
"recipe-image": "Recipe Image",
|
"recipe-image": "Imaxe da Receita",
|
||||||
"recipe-image-updated": "Recipe image updated",
|
"recipe-image-updated": "Actualizouse a imaxe da receita",
|
||||||
"recipe-name": "Recipe Name",
|
"recipe-name": "Nome da Receita",
|
||||||
"recipe-settings": "Recipe Settings",
|
"recipe-settings": "Configuración da Receita",
|
||||||
"recipe-update-failed": "Recipe update failed",
|
"recipe-update-failed": "Produciuse un erro na actualización da receita",
|
||||||
"recipe-updated": "Recipe updated",
|
"recipe-updated": "Receita actualizada",
|
||||||
"remove-from-favorites": "Remove from Favorites",
|
"remove-from-favorites": "Eliminar de Favoritos",
|
||||||
"remove-section": "Remove Section",
|
"remove-section": "Eliminar Sección",
|
||||||
"save-recipe-before-use": "Save recipe before use",
|
"save-recipe-before-use": "Garda a receita antes de usala",
|
||||||
"section-title": "Section Title",
|
"section-title": "Título da Sección",
|
||||||
"servings": "Servings",
|
"servings": "Porcións",
|
||||||
"share-recipe-message": "I wanted to share my {0} recipe with you.",
|
"share-recipe-message": "Quería compartir a miña receita de {0} contigo.",
|
||||||
"show-nutrition-values": "Show Nutrition Values",
|
"show-nutrition-values": "Mostrar Valores Nutricionais",
|
||||||
"sodium-content": "Sodium",
|
"sodium-content": "Sodio",
|
||||||
"step-index": "Step: {step}",
|
"step-index": "Paso: {step}",
|
||||||
"sugar-content": "Sugar",
|
"sugar-content": "Azucre",
|
||||||
"title": "Title",
|
"title": "Titulo",
|
||||||
"total-time": "Total Time",
|
"total-time": "Tempo Total",
|
||||||
"unable-to-delete-recipe": "Unable to Delete Recipe",
|
"unable-to-delete-recipe": "Non se Puido Eliminar a Receita",
|
||||||
"no-recipe": "No Recipe",
|
"no-recipe": "Sen Receita",
|
||||||
"locked-by-owner": "Locked by Owner",
|
"locked-by-owner": "Bloqueado polo Propietario",
|
||||||
"join-the-conversation": "Join the Conversation",
|
"join-the-conversation": "Únete á Conversa",
|
||||||
"add-recipe-to-mealplan": "Add Recipe to Mealplan",
|
"add-recipe-to-mealplan": "Add Recipe to Mealplan",
|
||||||
"entry-type": "Entry Type",
|
"entry-type": "Entry Type",
|
||||||
"date-format-hint": "MM/DD/YYYY format",
|
"date-format-hint": "MM/DD/YYYY format",
|
||||||
@@ -533,9 +539,9 @@
|
|||||||
"open-timeline": "Open Timeline",
|
"open-timeline": "Open Timeline",
|
||||||
"made-this": "I Made This",
|
"made-this": "I Made This",
|
||||||
"how-did-it-turn-out": "How did it turn out?",
|
"how-did-it-turn-out": "How did it turn out?",
|
||||||
"user-made-this": "{user} made this",
|
"user-made-this": "{user} fixo isto",
|
||||||
"last-made-date": "Last Made {date}",
|
"last-made-date": "Feito por Última Vez {date}",
|
||||||
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
"api-extras-description": "Os extras de receitas son unha característica clave da API de Mealie. Permítenche crear pares de clave/valor JSON personalizados dentro dunha receita, para facer referencia desde aplicacións de terceiros. Podes usar estas teclas para proporcionar información, por exemplo, para activar automatizacións ou mensaxes personalizadas para transmitir ao dispositivo que desexes.",
|
||||||
"message-key": "Message Key",
|
"message-key": "Message Key",
|
||||||
"parse": "Parse",
|
"parse": "Parse",
|
||||||
"attach-images-hint": "Attach images by dragging & dropping them into the editor",
|
"attach-images-hint": "Attach images by dragging & dropping them into the editor",
|
||||||
@@ -546,7 +552,7 @@
|
|||||||
"edit-markdown": "Edit Markdown",
|
"edit-markdown": "Edit Markdown",
|
||||||
"recipe-creation": "Recipe Creation",
|
"recipe-creation": "Recipe Creation",
|
||||||
"select-one-of-the-various-ways-to-create-a-recipe": "Select one of the various ways to create a recipe",
|
"select-one-of-the-various-ways-to-create-a-recipe": "Select one of the various ways to create a recipe",
|
||||||
"looking-for-migrations": "Looking For Migrations?",
|
"looking-for-migrations": "Buscando As Migracións?",
|
||||||
"import-with-url": "Import with URL",
|
"import-with-url": "Import with URL",
|
||||||
"create-recipe": "Create Recipe",
|
"create-recipe": "Create Recipe",
|
||||||
"create-recipe-description": "Create a new recipe from scratch.",
|
"create-recipe-description": "Create a new recipe from scratch.",
|
||||||
@@ -588,13 +594,13 @@
|
|||||||
"recipe-actions": "Recipe Actions",
|
"recipe-actions": "Recipe Actions",
|
||||||
"parser": {
|
"parser": {
|
||||||
"experimental-alert-text": "Mealie uses natural language processing to parse and create units and food items for your recipe ingredients. This feature is experimental and may not always work as expected. If you prefer not to use the parsed results, you can select 'Cancel' and your changes will not be saved.",
|
"experimental-alert-text": "Mealie uses natural language processing to parse and create units and food items for your recipe ingredients. This feature is experimental and may not always work as expected. If you prefer not to use the parsed results, you can select 'Cancel' and your changes will not be saved.",
|
||||||
"ingredient-parser": "Ingredient Parser",
|
"ingredient-parser": "Analizador de Ingredientes",
|
||||||
"explanation": "To use the ingredient parser, click the 'Parse All' button to start the process. Once the processed ingredients are available, you can review the items and verify that they were parsed correctly. The model's confidence score is displayed on the right of the item title. This score is an average of all the individual scores and may not always be completely accurate.",
|
"explanation": "To use the ingredient parser, click the 'Parse All' button to start the process. Once the processed ingredients are available, you can review the items and verify that they were parsed correctly. The model's confidence score is displayed on the right of the item title. This score is an average of all the individual scores and may not always be completely accurate.",
|
||||||
"alerts-explainer": "Alerts will be displayed if a matching foods or unit is found but does not exists in the database.",
|
"alerts-explainer": "Alerts will be displayed if a matching foods or unit is found but does not exists in the database.",
|
||||||
"select-parser": "Select Parser",
|
"select-parser": "Seleccione Analizador",
|
||||||
"natural-language-processor": "Natural Language Processor",
|
"natural-language-processor": "Natural Language Processor",
|
||||||
"brute-parser": "Brute Parser",
|
"brute-parser": "Analizador Bruto",
|
||||||
"openai-parser": "OpenAI Parser",
|
"openai-parser": "Analizador OpenAI",
|
||||||
"parse-all": "Parse All",
|
"parse-all": "Parse All",
|
||||||
"no-unit": "No unit",
|
"no-unit": "No unit",
|
||||||
"missing-unit": "Create missing unit: {unit}",
|
"missing-unit": "Create missing unit: {unit}",
|
||||||
@@ -626,27 +632,28 @@
|
|||||||
"admin-settings": "Admin Settings",
|
"admin-settings": "Admin Settings",
|
||||||
"backup": {
|
"backup": {
|
||||||
"backup-created": "Backup created successfully",
|
"backup-created": "Backup created successfully",
|
||||||
"backup-created-at-response-export_path": "Backup Created at {path}",
|
"backup-created-at-response-export_path": "Copia de Seguridade Creada en {path}",
|
||||||
"backup-deleted": "Backup deleted",
|
"backup-deleted": "Backup deleted",
|
||||||
"restore-success": "Restore successful",
|
"restore-success": "Restore successful",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Backup Tag",
|
"backup-tag": "Backup Tag",
|
||||||
"create-heading": "Create A Backup",
|
"create-heading": "Crea Unha Copia de Seguridade",
|
||||||
"delete-backup": "Delete Backup",
|
"delete-backup": "Delete Backup",
|
||||||
"error-creating-backup-see-log-file": "Error Creating Backup. See Log File",
|
"error-creating-backup-see-log-file": "Error Creating Backup. See Log File",
|
||||||
"full-backup": "Full Backup",
|
"full-backup": "Full Backup",
|
||||||
"import-summary": "Import Summary",
|
"import-summary": "Import Summary",
|
||||||
"partial-backup": "Partial Backup",
|
"partial-backup": "Partial Backup",
|
||||||
"unable-to-delete-backup": "Unable to Delete Backup.",
|
"unable-to-delete-backup": "Unable to Delete Backup.",
|
||||||
"experimental-description": "Backups are total snapshots of the database and data directory of the site. This includes all data and cannot be set to exclude subsets of data. You can think of this as a snapshot of Mealie at a specific time. These serve as a database agnostic way to export and import data, or back up the site to an external location.",
|
"experimental-description": "As copias de seguridade son instantáneas totais da base de datos e do directorio de datos do sitio. Isto inclúe todos os datos e non se pode configurar para excluír subconxuntos de datos. Podes pensar nisto como unha instantánea de Mealie nun momento específico. Estas serven como unha forma independente da base de datos para exportar e importar datos ou facer unha copia de seguridade do sitio nunha localización externa.",
|
||||||
"backup-restore": "Backup Restore",
|
"backup-restore": "Restaurar Copia de Seguridade",
|
||||||
"back-restore-description": "Restoring this backup will overwrite all the current data in your database and in the data directory and replace them with the contents of this backup. {cannot-be-undone} If the restoration is successful, you will be logged out.",
|
"back-restore-description": "Restoring this backup will overwrite all the current data in your database and in the data directory and replace them with the contents of this backup. {cannot-be-undone} If the restoration is successful, you will be logged out.",
|
||||||
"cannot-be-undone": "This action cannot be undone - use with caution.",
|
"cannot-be-undone": "This action cannot be undone - use with caution.",
|
||||||
"postgresql-note": "If you are using PostGreSQL, please review the {backup-restore-process} prior to restoring.",
|
"postgresql-note": "If you are using PostGreSQL, please review the {backup-restore-process} prior to restoring.",
|
||||||
"backup-restore-process-in-the-documentation": "backup/restore process in the documentation",
|
"backup-restore-process-in-the-documentation": "backup/restore process in the documentation",
|
||||||
"irreversible-acknowledgment": "I understand that this action is irreversible, destructive and may cause data loss",
|
"irreversible-acknowledgment": "Entendo que esta acción é irreversible, destrutiva e pode provocar a perda de datos",
|
||||||
"restore-backup": "Restore Backup"
|
"restore-backup": "Restaurar Copia de Seguridad"
|
||||||
},
|
},
|
||||||
"backup-and-exports": "Backups",
|
"backup-and-exports": "Copias de seguridade",
|
||||||
"change-password": "Change Password",
|
"change-password": "Change Password",
|
||||||
"current": "Version:",
|
"current": "Version:",
|
||||||
"custom-pages": "Custom Pages",
|
"custom-pages": "Custom Pages",
|
||||||
@@ -676,7 +683,7 @@
|
|||||||
"set-new-time": "Set New Time",
|
"set-new-time": "Set New Time",
|
||||||
"settings-update-failed": "Settings update failed",
|
"settings-update-failed": "Settings update failed",
|
||||||
"settings-updated": "Settings updated",
|
"settings-updated": "Settings updated",
|
||||||
"site-settings": "Site Settings",
|
"site-settings": "Configuración do sitio",
|
||||||
"theme": {
|
"theme": {
|
||||||
"accent": "Accent",
|
"accent": "Accent",
|
||||||
"dark": "Dark",
|
"dark": "Dark",
|
||||||
@@ -731,43 +738,43 @@
|
|||||||
"webhook-name": "Webhook Name",
|
"webhook-name": "Webhook Name",
|
||||||
"description": "The webhooks defined below will be executed when a meal is defined for the day. At the scheduled time the webhooks will be sent with the data from the recipe that is scheduled for the day. Note that webhook execution is not exact. The webhooks are executed on a 5 minutes interval so the webhooks will be executed within 5 +/- minutes of the scheduled."
|
"description": "The webhooks defined below will be executed when a meal is defined for the day. At the scheduled time the webhooks will be sent with the data from the recipe that is scheduled for the day. Note that webhook execution is not exact. The webhooks are executed on a 5 minutes interval so the webhooks will be executed within 5 +/- minutes of the scheduled."
|
||||||
},
|
},
|
||||||
"bug-report": "Bug Report",
|
"bug-report": "Informe de Erros",
|
||||||
"bug-report-information": "Use this information to report a bug. Providing details of your instance to developers is the best way to get your issues resolved quickly.",
|
"bug-report-information": "Use this information to report a bug. Providing details of your instance to developers is the best way to get your issues resolved quickly.",
|
||||||
"tracker": "Tracker",
|
"tracker": "Tracker",
|
||||||
"configuration": "Configuration",
|
"configuration": "Configuración",
|
||||||
"docker-volume": "Docker Volume",
|
"docker-volume": "Docker Volume",
|
||||||
"docker-volume-help": "Mealie requires that the frontend container and the backend share the same docker volume or storage. This ensures that the frontend container can properly access the images and assets stored on disk.",
|
"docker-volume-help": "Mealie requires that the frontend container and the backend share the same docker volume or storage. This ensures that the frontend container can properly access the images and assets stored on disk.",
|
||||||
"volumes-are-misconfigured": "Volumes are misconfigured.",
|
"volumes-are-misconfigured": "Volumes are misconfigured.",
|
||||||
"volumes-are-configured-correctly": "Volumes are configured correctly.",
|
"volumes-are-configured-correctly": "Volumes are configured correctly.",
|
||||||
"status-unknown-try-running-a-validation": "Status Unknown. Try running a validation.",
|
"status-unknown-try-running-a-validation": "Status Unknown. Try running a validation.",
|
||||||
"validate": "Validate",
|
"validate": "Validate",
|
||||||
"email-configuration-status": "Email Configuration Status",
|
"email-configuration-status": "Estado da Configuración do Correo-e",
|
||||||
"email-configured": "Email Configured",
|
"email-configured": "Correo-e Configurado",
|
||||||
"email-test-results": "Email Test Results",
|
"email-test-results": "Resultados da Proba de Correo-e",
|
||||||
"ready": "Ready",
|
"ready": "Ready",
|
||||||
"not-ready": "Not Ready - Check Environmental Variables",
|
"not-ready": "Not Ready - Check Environmental Variables",
|
||||||
"succeeded": "Succeeded",
|
"succeeded": "Succeeded",
|
||||||
"failed": "Failed",
|
"failed": "Failed",
|
||||||
"general-about": "General About",
|
"general-about": "Información Xeral",
|
||||||
"application-version": "Application Version",
|
"application-version": "Versión da Aplicación",
|
||||||
"application-version-error-text": "Your current version ({0}) does not match the latest release. Considering updating to the latest version ({1}).",
|
"application-version-error-text": "A túa versión actual ({0}) non coincide coa última versión. Considera actualizar á última versión ({1}).",
|
||||||
"mealie-is-up-to-date": "Mealie is up to date",
|
"mealie-is-up-to-date": "Mealie is up to date",
|
||||||
"secure-site": "Secure Site",
|
"secure-site": "Sitio Seguro",
|
||||||
"secure-site-error-text": "Serve via localhost or secure with https. Clipboard and additional browser APIs may not work.",
|
"secure-site-error-text": "Serve via localhost or secure with https. Clipboard and additional browser APIs may not work.",
|
||||||
"secure-site-success-text": "Site is accessed by localhost or https",
|
"secure-site-success-text": "Accédese ao sitio por localhost ou https",
|
||||||
"server-side-base-url": "Server Side Base URL",
|
"server-side-base-url": "URL Base do Servidor",
|
||||||
"server-side-base-url-error-text": "`BASE_URL` is still the default value on API Server. This will cause issues with notifications links generated on the server for emails, etc.",
|
"server-side-base-url-error-text": "`BASE_URL` is still the default value on API Server. This will cause issues with notifications links generated on the server for emails, etc.",
|
||||||
"server-side-base-url-success-text": "Server Side URL does not match the default",
|
"server-side-base-url-success-text": "O URL do servidor non coincide co predeterminado",
|
||||||
"ldap-ready": "LDAP Ready",
|
"ldap-ready": "LDAP Listo",
|
||||||
"ldap-ready-error-text": "Not all LDAP Values are configured. This can be ignored if you are not using LDAP Authentication.",
|
"ldap-ready-error-text": "Non todos os valores LDAP están configurados. Isto pódese ignorar se non está a usar a Autenticación LDAP.",
|
||||||
"ldap-ready-success-text": "Required LDAP variables are all set.",
|
"ldap-ready-success-text": "Required LDAP variables are all set.",
|
||||||
"build": "Build",
|
"build": "Build",
|
||||||
"recipe-scraper-version": "Recipe Scraper Version",
|
"recipe-scraper-version": "Versión do Analizador de Receitas",
|
||||||
"oidc-ready": "OIDC Ready",
|
"oidc-ready": "OIDC Listo",
|
||||||
"oidc-ready-error-text": "Not all OIDC Values are configured. This can be ignored if you are not using OIDC Authentication.",
|
"oidc-ready-error-text": "Non todos os valores OIDC están configurados. Isto pódese ignorar se non está a usar a Autenticación OIDC.",
|
||||||
"oidc-ready-success-text": "Required OIDC variables are all set.",
|
"oidc-ready-success-text": "Required OIDC variables are all set.",
|
||||||
"openai-ready": "OpenAI Ready",
|
"openai-ready": "OpenAI Ready",
|
||||||
"openai-ready-error-text": "Not all OpenAI Values are configured. This can be ignored if you are not using OpenAI features.",
|
"openai-ready-error-text": "Non todos os valores de OpenAI están configurados. Isto pódese ignorar se non está a usar as funcións de OpenAI.",
|
||||||
"openai-ready-success-text": "Required OpenAI variables are all set."
|
"openai-ready-success-text": "Required OpenAI variables are all set."
|
||||||
},
|
},
|
||||||
"shopping-list": {
|
"shopping-list": {
|
||||||
@@ -801,7 +808,7 @@
|
|||||||
},
|
},
|
||||||
"sidebar": {
|
"sidebar": {
|
||||||
"all-recipes": "All Recipes",
|
"all-recipes": "All Recipes",
|
||||||
"backups": "Backups",
|
"backups": "Copias de seguridade",
|
||||||
"categories": "Categories",
|
"categories": "Categories",
|
||||||
"cookbooks": "Cookbooks",
|
"cookbooks": "Cookbooks",
|
||||||
"dashboard": "Dashboard",
|
"dashboard": "Dashboard",
|
||||||
@@ -810,13 +817,13 @@
|
|||||||
"migrations": "Migrations",
|
"migrations": "Migrations",
|
||||||
"profile": "Profile",
|
"profile": "Profile",
|
||||||
"search": "Search",
|
"search": "Search",
|
||||||
"site-settings": "Site Settings",
|
"site-settings": "Configuración do sitio",
|
||||||
"tags": "Tags",
|
"tags": "Tags",
|
||||||
"toolbox": "Toolbox",
|
"toolbox": "Toolbox",
|
||||||
"language": "Language",
|
"language": "Language",
|
||||||
"maintenance": "Maintenance",
|
"maintenance": "Maintenance",
|
||||||
"background-tasks": "Background Tasks",
|
"background-tasks": "Background Tasks",
|
||||||
"parser": "Parser",
|
"parser": "Analizador",
|
||||||
"developer": "Developer",
|
"developer": "Developer",
|
||||||
"cookbook": "Cookbook",
|
"cookbook": "Cookbook",
|
||||||
"create-cookbook": "Create a new cookbook"
|
"create-cookbook": "Create a new cookbook"
|
||||||
@@ -868,7 +875,7 @@
|
|||||||
"current-password": "Current Password",
|
"current-password": "Current Password",
|
||||||
"e-mail-must-be-valid": "E-mail must be valid",
|
"e-mail-must-be-valid": "E-mail must be valid",
|
||||||
"edit-user": "Edit User",
|
"edit-user": "Edit User",
|
||||||
"email": "Email",
|
"email": "Correo-e",
|
||||||
"error-cannot-delete-super-user": "Error! Cannot Delete Super User",
|
"error-cannot-delete-super-user": "Error! Cannot Delete Super User",
|
||||||
"existing-password-does-not-match": "Existing password does not match",
|
"existing-password-does-not-match": "Existing password does not match",
|
||||||
"full-name": "Full Name",
|
"full-name": "Full Name",
|
||||||
@@ -894,7 +901,7 @@
|
|||||||
"register": "Register",
|
"register": "Register",
|
||||||
"reset-password": "Reset Password",
|
"reset-password": "Reset Password",
|
||||||
"sign-in": "Sign in",
|
"sign-in": "Sign in",
|
||||||
"total-mealplans": "Total MealPlans",
|
"total-mealplans": "Menús Totais",
|
||||||
"total-users": "Total Users",
|
"total-users": "Total Users",
|
||||||
"upload-photo": "Upload Photo",
|
"upload-photo": "Upload Photo",
|
||||||
"use-8-characters-or-more-for-your-password": "Use 8 characters or more for your password",
|
"use-8-characters-or-more-for-your-password": "Use 8 characters or more for your password",
|
||||||
@@ -919,7 +926,7 @@
|
|||||||
"enable-advanced-content": "Enable Advanced Content",
|
"enable-advanced-content": "Enable Advanced Content",
|
||||||
"enable-advanced-content-description": "Enables advanced features like Recipe Scaling, API keys, Webhooks, and Data Management. Don't worry, you can always change this later",
|
"enable-advanced-content-description": "Enables advanced features like Recipe Scaling, API keys, Webhooks, and Data Management. Don't worry, you can always change this later",
|
||||||
"favorite-recipes": "Favorite Recipes",
|
"favorite-recipes": "Favorite Recipes",
|
||||||
"email-or-username": "Email or Username",
|
"email-or-username": "Correo-e ou Nome de Usuario",
|
||||||
"remember-me": "Remember Me",
|
"remember-me": "Remember Me",
|
||||||
"please-enter-your-email-and-password": "Please enter your email and password",
|
"please-enter-your-email-and-password": "Please enter your email and password",
|
||||||
"invalid-credentials": "Invalid Credentials",
|
"invalid-credentials": "Invalid Credentials",
|
||||||
@@ -1070,7 +1077,7 @@
|
|||||||
"validation": {
|
"validation": {
|
||||||
"group-name-is-taken": "Group name is taken",
|
"group-name-is-taken": "Group name is taken",
|
||||||
"username-is-taken": "Username is taken",
|
"username-is-taken": "Username is taken",
|
||||||
"email-is-taken": "Email is taken",
|
"email-is-taken": "O correo-e está collido",
|
||||||
"this-field-is-required": "This Field is Required"
|
"this-field-is-required": "This Field is Required"
|
||||||
},
|
},
|
||||||
"export": {
|
"export": {
|
||||||
@@ -1137,50 +1144,50 @@
|
|||||||
"admin": {
|
"admin": {
|
||||||
"maintenance": {
|
"maintenance": {
|
||||||
"storage-details": "Storage Details",
|
"storage-details": "Storage Details",
|
||||||
"page-title": "Site Maintenance",
|
"page-title": "Mantemento do Sitio",
|
||||||
"summary-title": "Summary",
|
"summary-title": "Summary",
|
||||||
"button-label-get-summary": "Get Summary",
|
"button-label-get-summary": "Obter un Resumo",
|
||||||
"button-label-open-details": "Details",
|
"button-label-open-details": "Details",
|
||||||
"info-description-data-dir-size": "Data Directory Size",
|
"info-description-data-dir-size": "Tamaño do Directorio de Datos",
|
||||||
"info-description-log-file-size": "Log File Size",
|
"info-description-log-file-size": "Log File Size",
|
||||||
"info-description-cleanable-directories": "Cleanable Directories",
|
"info-description-cleanable-directories": "Directorios Eliminables",
|
||||||
"info-description-cleanable-images": "Cleanable Images",
|
"info-description-cleanable-images": "Imaxes Eliminables",
|
||||||
"storage": {
|
"storage": {
|
||||||
"title-temporary-directory": "Temporary Directory (.temp)",
|
"title-temporary-directory": "Temporary Directory (.temp)",
|
||||||
"title-backups-directory": "Backups Directory (backups)",
|
"title-backups-directory": "Directorio de Copias de Seguridade (copias de seguridade)",
|
||||||
"title-groups-directory": "Groups Directory (groups)",
|
"title-groups-directory": "Groups Directory (groups)",
|
||||||
"title-recipes-directory": "Recipes Directory (recipes)",
|
"title-recipes-directory": "Recipes Directory (recipes)",
|
||||||
"title-user-directory": "User Directory (user)"
|
"title-user-directory": "User Directory (user)"
|
||||||
},
|
},
|
||||||
"action-delete-log-files-name": "Delete Log Files",
|
"action-delete-log-files-name": "Delete Log Files",
|
||||||
"action-delete-log-files-description": "Deletes all the log files",
|
"action-delete-log-files-description": "Deletes all the log files",
|
||||||
"action-clean-directories-name": "Clean Directories",
|
"action-clean-directories-name": "Limpar Directorios",
|
||||||
"action-clean-directories-description": "Removes all the recipe folders that are not valid UUIDs",
|
"action-clean-directories-description": "Elimina todos os cartafoles de receitas sin UUIDs válidos",
|
||||||
"action-clean-temporary-files-name": "Clean Temporary Files",
|
"action-clean-temporary-files-name": "Limpar Ficheiros Temporais",
|
||||||
"action-clean-temporary-files-description": "Removes all files and folders in the .temp directory",
|
"action-clean-temporary-files-description": "Elimina todos os ficheiros e cartafoles do directorio .temp",
|
||||||
"action-clean-images-name": "Clean Images",
|
"action-clean-images-name": "Eliminar Imaxes",
|
||||||
"action-clean-images-description": "Removes all the images that don't end with .webp",
|
"action-clean-images-description": "Elimina todas as imaxes que non rematan en .webp",
|
||||||
"actions-description": "Maintenance actions are {destructive_in_bold} and should be used with caution. Performing any of these actions is {irreversible_in_bold}.",
|
"actions-description": "As accións de mantemento son {destructive_in_bold} e deben usarse con precaución. Realizar calquera destas accións é {irreversible_in_bold}.",
|
||||||
"actions-description-destructive": "destructive",
|
"actions-description-destructive": "destrutivas",
|
||||||
"actions-description-irreversible": "irreversible",
|
"actions-description-irreversible": "irreversible",
|
||||||
"logs-action-refresh": "Refresh Logs",
|
"logs-action-refresh": "Refresh Logs",
|
||||||
"logs-page-title": "Mealie Logs",
|
"logs-page-title": "Mealie Logs",
|
||||||
"logs-tail-lines-label": "Tail Lines"
|
"logs-tail-lines-label": "Tail Lines"
|
||||||
},
|
},
|
||||||
"mainentance": {
|
"mainentance": {
|
||||||
"actions-title": "Actions"
|
"actions-title": "Accións"
|
||||||
},
|
},
|
||||||
"ingredients-natural-language-processor": "Ingredients Natural Language Processor",
|
"ingredients-natural-language-processor": "Procesador de Linguaxe Natural de Ingredientes",
|
||||||
"ingredients-natural-language-processor-explanation": "Mealie uses Conditional Random Fields (CRFs) for parsing and processing ingredients. The model used for ingredients is based off a data set of over 100,000 ingredients from a dataset compiled by the New York Times. Note that as the model is trained in English only, you may have varied results when using the model in other languages. This page is a playground for testing the model.",
|
"ingredients-natural-language-processor-explanation": "Mealie usa Campos Aleatorios Condicionais (CACs) para analizar e procesar ingredientes. O modelo utilizado para os ingredientes baséase nun conxunto de datos de máis de 100.000 ingredientes dun conxunto de datos compilado polo New York Times. Teña en conta que, como o modelo está adestrado só en inglés, pode ter resultados variados ao usar o modelo noutros idiomas. Esta páxina é unha zona de xogos para probar o modelo.",
|
||||||
"ingredients-natural-language-processor-explanation-2": "It's not perfect, but it yields great results in general and is a good starting point for manually parsing ingredients into individual fields. Alternatively, you can also use the \"Brute\" processor that uses a pattern matching technique to identify ingredients.",
|
"ingredients-natural-language-processor-explanation-2": "Non é perfecto, pero dá excelentes resultados en xeral e é un bo punto de partida para analizar manualmente os ingredientes en campos individuais. Alternativamente, tamén pode usar o procesador \"Bruto\" que usa unha técnica de coincidencia de patróns para identificar ingredientes.",
|
||||||
"nlp": "NLP",
|
"nlp": "PLN",
|
||||||
"brute": "Brute",
|
"brute": "Bruto",
|
||||||
"openai": "OpenAI",
|
"openai": "OpenAI",
|
||||||
"show-individual-confidence": "Show individual confidence",
|
"show-individual-confidence": "Amosar confianza individual",
|
||||||
"ingredient-text": "Ingredient Text",
|
"ingredient-text": "Ingredient Text",
|
||||||
"average-confident": "{0} Confident",
|
"average-confident": "{0} Confident",
|
||||||
"try-an-example": "Try an example",
|
"try-an-example": "Proba un exemplo",
|
||||||
"parser": "Parser",
|
"parser": "Analizador",
|
||||||
"background-tasks": "Background Tasks",
|
"background-tasks": "Background Tasks",
|
||||||
"background-tasks-description": "Here you can view all the running background tasks and their status",
|
"background-tasks-description": "Here you can view all the running background tasks and their status",
|
||||||
"no-logs-found": "No Logs Found",
|
"no-logs-found": "No Logs Found",
|
||||||
@@ -1225,8 +1232,8 @@
|
|||||||
"manage-data-description": "Manage your Mealie data; Foods, Units, Categories, Tags and more.",
|
"manage-data-description": "Manage your Mealie data; Foods, Units, Categories, Tags and more.",
|
||||||
"data-migrations": "Data Migrations",
|
"data-migrations": "Data Migrations",
|
||||||
"data-migrations-description": "Migrate your existing data from other applications like Nextcloud Recipes and Chowdown.",
|
"data-migrations-description": "Migrate your existing data from other applications like Nextcloud Recipes and Chowdown.",
|
||||||
"email-sent": "Email Sent",
|
"email-sent": "Correo-e Enviado",
|
||||||
"error-sending-email": "Error Sending Email",
|
"error-sending-email": "Erro ao Enviar o Correo-e",
|
||||||
"personal-information": "Personal Information",
|
"personal-information": "Personal Information",
|
||||||
"preferences": "Preferences",
|
"preferences": "Preferences",
|
||||||
"show-advanced-description": "Show advanced features (API Keys, Webhooks, and Data Management)",
|
"show-advanced-description": "Show advanced features (API Keys, Webhooks, and Data Management)",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "תכנית ארוחה עודכנה",
|
"mealplan-updated": "תכנית ארוחה עודכנה",
|
||||||
"no-meal-plan-defined-yet": "עדיין לא הוגדרה תכנית ארוחה",
|
"no-meal-plan-defined-yet": "עדיין לא הוגדרה תכנית ארוחה",
|
||||||
"no-meal-planned-for-today": "לא מתוכננת ארוחה להיום",
|
"no-meal-planned-for-today": "לא מתוכננת ארוחה להיום",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "רק מתכונים שהוגדרו עם הקטגוריות הללו ישומשו בתכנוני ארוחות",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "רק מתכונים שהוגדרו עם הקטגוריות הללו ישומשו בתכנוני ארוחות",
|
||||||
"planner": "תכנון",
|
"planner": "תכנון",
|
||||||
"quick-week": "תכנון שבועי מהיר",
|
"quick-week": "תכנון שבועי מהיר",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "גיבוי נוצר ב {path}",
|
"backup-created-at-response-export_path": "גיבוי נוצר ב {path}",
|
||||||
"backup-deleted": "גיבוי נמחק",
|
"backup-deleted": "גיבוי נמחק",
|
||||||
"restore-success": "השחזור הצליח",
|
"restore-success": "השחזור הצליח",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "תגית גיבוי",
|
"backup-tag": "תגית גיבוי",
|
||||||
"create-heading": "Create a Backup",
|
"create-heading": "Create a Backup",
|
||||||
"delete-backup": "מחיקת גיבוי",
|
"delete-backup": "מחיקת גיבוי",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Plan obroka je Ažuriran",
|
"mealplan-updated": "Plan obroka je Ažuriran",
|
||||||
"no-meal-plan-defined-yet": "Plan obroka još nije definiran",
|
"no-meal-plan-defined-yet": "Plan obroka još nije definiran",
|
||||||
"no-meal-planned-for-today": "Nema Plan obroka za današnji dan",
|
"no-meal-planned-for-today": "Nema Plan obroka za današnji dan",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Samo recepti s ovim kategorijama bit će korišteni u planovima obroka",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Samo recepti s ovim kategorijama bit će korišteni u planovima obroka",
|
||||||
"planner": "Planer",
|
"planner": "Planer",
|
||||||
"quick-week": "Brzi Tjedan",
|
"quick-week": "Brzi Tjedan",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Sigurnosna Kopija Kreirana na lokaciji {path}",
|
"backup-created-at-response-export_path": "Sigurnosna Kopija Kreirana na lokaciji {path}",
|
||||||
"backup-deleted": "Sigurnosna kopija izbrisana",
|
"backup-deleted": "Sigurnosna kopija izbrisana",
|
||||||
"restore-success": "Restore successful",
|
"restore-success": "Restore successful",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Sigurnosna kopija Oznake",
|
"backup-tag": "Sigurnosna kopija Oznake",
|
||||||
"create-heading": "Kreiraj sigurnosnu kopiju",
|
"create-heading": "Kreiraj sigurnosnu kopiju",
|
||||||
"delete-backup": "Izbriši sigurnosnu kopiju",
|
"delete-backup": "Izbriši sigurnosnu kopiju",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Menüterv módosítva",
|
"mealplan-updated": "Menüterv módosítva",
|
||||||
"no-meal-plan-defined-yet": "Nincs még menüterv létrehozva",
|
"no-meal-plan-defined-yet": "Nincs még menüterv létrehozva",
|
||||||
"no-meal-planned-for-today": "Nincs mára menüterv",
|
"no-meal-planned-for-today": "Nincs mára menüterv",
|
||||||
|
"numberOfDays-hint": "Napok száma az oldal betöltésekor",
|
||||||
|
"numberOfDays-label": "Alapértelmezett napok",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "A menütervekben csak a következő kategóriához tartozó receptek kerülnek felhasználásra",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "A menütervekben csak a következő kategóriához tartozó receptek kerülnek felhasználásra",
|
||||||
"planner": "Tervező",
|
"planner": "Tervező",
|
||||||
"quick-week": "Gyors hét",
|
"quick-week": "Gyors hét",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "Az én receptes dobozom",
|
"title": "Az én receptes dobozom",
|
||||||
"description-long": "A Mealie képest recepteket importálni az Én Receptes Dobozomból. Exportáld a receptjeidet CSV formátúmba, aztán töltsd fel a .csv fájlt lentebb."
|
"description-long": "A Mealie képest recepteket importálni az Én Receptes Dobozomból. Exportáld a receptjeidet CSV formátúmba, aztán töltsd fel a .csv fájlt lentebb."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "A Mealie képes recepteket importálni a Recipe Keeperből. Exportálja a receptjeit zip formátumban, majd töltse fel a .zip fájlt az oldal alján."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Mentés a következő helyre: {path}",
|
"backup-created-at-response-export_path": "Mentés a következő helyre: {path}",
|
||||||
"backup-deleted": "Biztonsági mentés törölve",
|
"backup-deleted": "Biztonsági mentés törölve",
|
||||||
"restore-success": "Sikeres visszaállítás",
|
"restore-success": "Sikeres visszaállítás",
|
||||||
|
"restore-fail": "A visszaállítás sikertelen. További részletekért ellenőrizze a szervernaplókat",
|
||||||
"backup-tag": "Biztonsági mentés leírás",
|
"backup-tag": "Biztonsági mentés leírás",
|
||||||
"create-heading": "Biztonsági mentés létrehozása",
|
"create-heading": "Biztonsági mentés létrehozása",
|
||||||
"delete-backup": "Biztonsági mentés törlése",
|
"delete-backup": "Biztonsági mentés törlése",
|
||||||
@@ -782,7 +789,7 @@
|
|||||||
"food": "Étel",
|
"food": "Étel",
|
||||||
"note": "Megjegyzés",
|
"note": "Megjegyzés",
|
||||||
"label": "Címke",
|
"label": "Címke",
|
||||||
"save-label": "Save Label",
|
"save-label": "Címke mentése",
|
||||||
"linked-item-warning": "Ez a tétel egy vagy több recepthez kapcsolódik. A mennyiségi egységek vagy az alapanyagok átállítása nem várt eredményeket fog eredményezni, amikor hozzáadja vagy eltávolítja a receptet ebből a listából.",
|
"linked-item-warning": "Ez a tétel egy vagy több recepthez kapcsolódik. A mennyiségi egységek vagy az alapanyagok átállítása nem várt eredményeket fog eredményezni, amikor hozzáadja vagy eltávolítja a receptet ebből a listából.",
|
||||||
"toggle-food": "Váltás alapanyagokra",
|
"toggle-food": "Váltás alapanyagokra",
|
||||||
"manage-labels": "Címkék kezelése",
|
"manage-labels": "Címkék kezelése",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Mealplan Updated",
|
"mealplan-updated": "Mealplan Updated",
|
||||||
"no-meal-plan-defined-yet": "No meal plan defined yet",
|
"no-meal-plan-defined-yet": "No meal plan defined yet",
|
||||||
"no-meal-planned-for-today": "No meal planned for today",
|
"no-meal-planned-for-today": "No meal planned for today",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans",
|
||||||
"planner": "Planner",
|
"planner": "Planner",
|
||||||
"quick-week": "Quick Week",
|
"quick-week": "Quick Week",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Backup Created at {path}",
|
"backup-created-at-response-export_path": "Backup Created at {path}",
|
||||||
"backup-deleted": "Backup deleted",
|
"backup-deleted": "Backup deleted",
|
||||||
"restore-success": "Restore successful",
|
"restore-success": "Restore successful",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Backup Tag",
|
"backup-tag": "Backup Tag",
|
||||||
"create-heading": "Create A Backup",
|
"create-heading": "Create A Backup",
|
||||||
"delete-backup": "Delete Backup",
|
"delete-backup": "Delete Backup",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Piano Alimentare Aggiornato",
|
"mealplan-updated": "Piano Alimentare Aggiornato",
|
||||||
"no-meal-plan-defined-yet": "Ancora nessun piano alimentare definito",
|
"no-meal-plan-defined-yet": "Ancora nessun piano alimentare definito",
|
||||||
"no-meal-planned-for-today": "Nessun piano alimentare per oggi",
|
"no-meal-planned-for-today": "Nessun piano alimentare per oggi",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Solo ricette con queste categorie possono essere utilizzate un un Piano Alimentare",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Solo ricette con queste categorie possono essere utilizzate un un Piano Alimentare",
|
||||||
"planner": "Pianificatore",
|
"planner": "Pianificatore",
|
||||||
"quick-week": "Settimana Veloce",
|
"quick-week": "Settimana Veloce",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "Il mio ricettario",
|
"title": "Il mio ricettario",
|
||||||
"description-long": "Mealie può importare ricette da My Recipe Box. Esporta le tue ricette in formato HTML, quindi carica il .zip qui sotto."
|
"description-long": "Mealie può importare ricette da My Recipe Box. Esporta le tue ricette in formato HTML, quindi carica il .zip qui sotto."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Backup Creato in {path}",
|
"backup-created-at-response-export_path": "Backup Creato in {path}",
|
||||||
"backup-deleted": "Backup eliminato",
|
"backup-deleted": "Backup eliminato",
|
||||||
"restore-success": "Ripristino riuscito",
|
"restore-success": "Ripristino riuscito",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Tag Backup",
|
"backup-tag": "Tag Backup",
|
||||||
"create-heading": "Crea un Backup",
|
"create-heading": "Crea un Backup",
|
||||||
"delete-backup": "Elimina Backup",
|
"delete-backup": "Elimina Backup",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "献立を更新しました",
|
"mealplan-updated": "献立を更新しました",
|
||||||
"no-meal-plan-defined-yet": "食事プランはまだ定義されていません",
|
"no-meal-plan-defined-yet": "食事プランはまだ定義されていません",
|
||||||
"no-meal-planned-for-today": "今日の食事プランはありません",
|
"no-meal-planned-for-today": "今日の食事プランはありません",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "食事プランでは、これらのカテゴリを持つレシピのみが使用されます",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "食事プランでは、これらのカテゴリを持つレシピのみが使用されます",
|
||||||
"planner": "プランナー",
|
"planner": "プランナー",
|
||||||
"quick-week": "クイックウィーク",
|
"quick-week": "クイックウィーク",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "MealieはMy Recipe Boxからレシピをインポートできます。レシピをCSV形式でエクスポートし、以下に.csvをアップロードしてください。"
|
"description-long": "MealieはMy Recipe Boxからレシピをインポートできます。レシピをCSV形式でエクスポートし、以下に.csvをアップロードしてください。"
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "{path} にバックアップを作成しました",
|
"backup-created-at-response-export_path": "{path} にバックアップを作成しました",
|
||||||
"backup-deleted": "バックアップを削除しました",
|
"backup-deleted": "バックアップを削除しました",
|
||||||
"restore-success": "復元に成功しました",
|
"restore-success": "復元に成功しました",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "バックアップ タグ",
|
"backup-tag": "バックアップ タグ",
|
||||||
"create-heading": "Create a Backup",
|
"create-heading": "Create a Backup",
|
||||||
"delete-backup": "バックアップを削除",
|
"delete-backup": "バックアップを削除",
|
||||||
|
|||||||
@@ -42,9 +42,9 @@
|
|||||||
"category-deleted": "카테고리 삭제됨",
|
"category-deleted": "카테고리 삭제됨",
|
||||||
"category-deletion-failed": "카테고리 삭제 실패",
|
"category-deletion-failed": "카테고리 삭제 실패",
|
||||||
"category-filter": "카테고리 필터",
|
"category-filter": "카테고리 필터",
|
||||||
"category-update-failed": "Category update failed",
|
"category-update-failed": "Category 업데이트 실패",
|
||||||
"category-updated": "카테고리 업데이트",
|
"category-updated": "카테고리 업데이트",
|
||||||
"uncategorized-count": "Uncategorized {count}",
|
"uncategorized-count": "카테고리 없음 {count}",
|
||||||
"create-a-category": "카테고리 생성",
|
"create-a-category": "카테고리 생성",
|
||||||
"category-name": "카테고리 이름",
|
"category-name": "카테고리 이름",
|
||||||
"category": "카테고리"
|
"category": "카테고리"
|
||||||
@@ -56,22 +56,22 @@
|
|||||||
"event-delete-confirmation": "정말로 이 이벤트를 삭제하시겠어요?",
|
"event-delete-confirmation": "정말로 이 이벤트를 삭제하시겠어요?",
|
||||||
"event-deleted": "이벤트 삭제됨",
|
"event-deleted": "이벤트 삭제됨",
|
||||||
"event-updated": "이벤트 업데이트됨",
|
"event-updated": "이벤트 업데이트됨",
|
||||||
"new-notification-form-description": "Mealie uses the Apprise library to generate notifications. They offer many options for services to use for notifications. Refer to their wiki for a comprehensive guide on how to create the URL for your service. If available, selecting the type of your notification may include extra features.",
|
"new-notification-form-description": "Mealie는 Apprise 라이브러리를 사용하여 알림을 생성합니다. 알림에 사용할 서비스에 대한 다양한 옵션을 제공합니다. 서비스의 URL을 만드는 방법에 대한 종합적인 가이드는 해당 Wiki 문서를 참조하세요. 알림 유형에 따라 추가 기능이 포함될 수 있습니다.",
|
||||||
"new-version": "새로운 버전 사용 가능",
|
"new-version": "새로운 버전 사용 가능",
|
||||||
"notification": "알림",
|
"notification": "알림",
|
||||||
"refresh": "새로고침",
|
"refresh": "새로고침",
|
||||||
"scheduled": "Scheduled",
|
"scheduled": "Scheduled",
|
||||||
"something-went-wrong": "Something Went Wrong!",
|
"something-went-wrong": "문제가 발생했습니다!",
|
||||||
"subscribed-events": "구독한 이벤트",
|
"subscribed-events": "구독한 이벤트",
|
||||||
"test-message-sent": "Test Message Sent",
|
"test-message-sent": "테스트 메시지가 전송됐습니다.",
|
||||||
"message-sent": "Message Sent",
|
"message-sent": "메세지가 전송됨",
|
||||||
"new-notification": "새 알림",
|
"new-notification": "새 알림",
|
||||||
"event-notifiers": "Event Notifiers",
|
"event-notifiers": "Event Notifiers",
|
||||||
"apprise-url-skipped-if-blank": "Apprise URL (skipped if blank)",
|
"apprise-url-skipped-if-blank": "Apprise URL (비워두면 생략합니다)",
|
||||||
"enable-notifier": "Enable Notifier",
|
"enable-notifier": "Enable Notifier",
|
||||||
"what-events": "What events should this notifier subscribe to?",
|
"what-events": "What events should this notifier subscribe to?",
|
||||||
"user-events": "User Events",
|
"user-events": "사용자 이벤트",
|
||||||
"mealplan-events": "Mealplan Events",
|
"mealplan-events": "Mealplan 이벤트",
|
||||||
"when-a-user-in-your-group-creates-a-new-mealplan": "When a user in your group creates a new mealplan",
|
"when-a-user-in-your-group-creates-a-new-mealplan": "When a user in your group creates a new mealplan",
|
||||||
"shopping-list-events": "Shopping List Events",
|
"shopping-list-events": "Shopping List Events",
|
||||||
"cookbook-events": "Cookbook Events",
|
"cookbook-events": "Cookbook Events",
|
||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Mealplan Updated",
|
"mealplan-updated": "Mealplan Updated",
|
||||||
"no-meal-plan-defined-yet": "No meal plan defined yet",
|
"no-meal-plan-defined-yet": "No meal plan defined yet",
|
||||||
"no-meal-planned-for-today": "No meal planned for today",
|
"no-meal-planned-for-today": "No meal planned for today",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans",
|
||||||
"planner": "Planner",
|
"planner": "Planner",
|
||||||
"quick-week": "Quick Week",
|
"quick-week": "Quick Week",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Backup Created at {path}",
|
"backup-created-at-response-export_path": "Backup Created at {path}",
|
||||||
"backup-deleted": "백업 삭제됨",
|
"backup-deleted": "백업 삭제됨",
|
||||||
"restore-success": "복원 성공!",
|
"restore-success": "복원 성공!",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Backup Tag",
|
"backup-tag": "Backup Tag",
|
||||||
"create-heading": "Create a Backup",
|
"create-heading": "Create a Backup",
|
||||||
"delete-backup": "백업 삭제",
|
"delete-backup": "백업 삭제",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Mitybos planas atnaujintas",
|
"mealplan-updated": "Mitybos planas atnaujintas",
|
||||||
"no-meal-plan-defined-yet": "Nėra nustatytų mitybos planų",
|
"no-meal-plan-defined-yet": "Nėra nustatytų mitybos planų",
|
||||||
"no-meal-planned-for-today": "Nėra šios dienos mitybos plano",
|
"no-meal-planned-for-today": "Nėra šios dienos mitybos plano",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Mitybos planuose bus naudojami tik šių kategorijų receptai",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Mitybos planuose bus naudojami tik šių kategorijų receptai",
|
||||||
"planner": "Planuoklis",
|
"planner": "Planuoklis",
|
||||||
"quick-week": "Greitas savaitės planas",
|
"quick-week": "Greitas savaitės planas",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Atsarginė kopija sukurta {path}",
|
"backup-created-at-response-export_path": "Atsarginė kopija sukurta {path}",
|
||||||
"backup-deleted": "Atsarginė kopija ištrinta",
|
"backup-deleted": "Atsarginė kopija ištrinta",
|
||||||
"restore-success": "Restore successful",
|
"restore-success": "Restore successful",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Atsarginės kopijos žyma",
|
"backup-tag": "Atsarginės kopijos žyma",
|
||||||
"create-heading": "Sukurti atsarginę kopiją",
|
"create-heading": "Sukurti atsarginę kopiją",
|
||||||
"delete-backup": "Ištrinti atsarginę kopiją",
|
"delete-backup": "Ištrinti atsarginę kopiją",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Mealplan Updated",
|
"mealplan-updated": "Mealplan Updated",
|
||||||
"no-meal-plan-defined-yet": "No meal plan defined yet",
|
"no-meal-plan-defined-yet": "No meal plan defined yet",
|
||||||
"no-meal-planned-for-today": "No meal planned for today",
|
"no-meal-planned-for-today": "No meal planned for today",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans",
|
||||||
"planner": "Planner",
|
"planner": "Planner",
|
||||||
"quick-week": "Quick Week",
|
"quick-week": "Quick Week",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Backup Created at {path}",
|
"backup-created-at-response-export_path": "Backup Created at {path}",
|
||||||
"backup-deleted": "Backup deleted",
|
"backup-deleted": "Backup deleted",
|
||||||
"restore-success": "Restore successful",
|
"restore-success": "Restore successful",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Backup Tag",
|
"backup-tag": "Backup Tag",
|
||||||
"create-heading": "Create A Backup",
|
"create-heading": "Create A Backup",
|
||||||
"delete-backup": "Delete Backup",
|
"delete-backup": "Delete Backup",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Maaltijdplan bijgewerkt",
|
"mealplan-updated": "Maaltijdplan bijgewerkt",
|
||||||
"no-meal-plan-defined-yet": "Nog geen maaltijdplan opgesteld",
|
"no-meal-plan-defined-yet": "Nog geen maaltijdplan opgesteld",
|
||||||
"no-meal-planned-for-today": "Geen maaltijd gepland voor vandaag",
|
"no-meal-planned-for-today": "Geen maaltijd gepland voor vandaag",
|
||||||
|
"numberOfDays-hint": "Aantal dagen bij laden van de pagina",
|
||||||
|
"numberOfDays-label": "Standaard aantal dagen",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Alleen recepten met deze categorieën zullen worden gebruikt in maaltijdplannen",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Alleen recepten met deze categorieën zullen worden gebruikt in maaltijdplannen",
|
||||||
"planner": "Planner",
|
"planner": "Planner",
|
||||||
"quick-week": "Snelle week",
|
"quick-week": "Snelle week",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "Mijn Receptenbox",
|
"title": "Mijn Receptenbox",
|
||||||
"description-long": "Mealie kan recepten importeren uit My Recipe Box. Exporteer je recepten in CSV formaat, upload daarna het .csv bestand hieronder."
|
"description-long": "Mealie kan recepten importeren uit My Recipe Box. Exporteer je recepten in CSV formaat, upload daarna het .csv bestand hieronder."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie kan recepten importeren van Recipe Keeper. Exporteer de recepten als .zip. Dat bestand kunt u hier dan uploaden."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -588,18 +594,18 @@
|
|||||||
"recipe-actions": "Acties met recepten ",
|
"recipe-actions": "Acties met recepten ",
|
||||||
"parser": {
|
"parser": {
|
||||||
"experimental-alert-text": "Mealie gebruikt natuurlijke taalverwerking om te ontleden en maakt eenheden en levensmiddelen voor de ingrediënten van je recept. Deze functie is experimenteel en werkt misschien niet altijd zoals verwacht. Als u liever niet de bewerkte resultaten gebruikt, kunt u 'Annuleren' selecteren en de wijzigingen worden niet opgeslagen.",
|
"experimental-alert-text": "Mealie gebruikt natuurlijke taalverwerking om te ontleden en maakt eenheden en levensmiddelen voor de ingrediënten van je recept. Deze functie is experimenteel en werkt misschien niet altijd zoals verwacht. Als u liever niet de bewerkte resultaten gebruikt, kunt u 'Annuleren' selecteren en de wijzigingen worden niet opgeslagen.",
|
||||||
"ingredient-parser": "",
|
"ingredient-parser": "Ingrediënt Parser",
|
||||||
"explanation": "To use the ingredient parser, click the 'Parse All' button to start the process. Once the processed ingredients are available, you can review the items and verify that they were parsed correctly. The model's confidence score is displayed on the right of the item title. This score is an average of all the individual scores and may not always be completely accurate.",
|
"explanation": "To use the ingredient parser, click the 'Parse All' button to start the process. Once the processed ingredients are available, you can review the items and verify that they were parsed correctly. The model's confidence score is displayed on the right of the item title. This score is an average of all the individual scores and may not always be completely accurate.",
|
||||||
"alerts-explainer": "Alerts will be displayed if a matching foods or unit is found but does not exists in the database.",
|
"alerts-explainer": "Alerts will be displayed if a matching foods or unit is found but does not exists in the database.",
|
||||||
"select-parser": "Select Parser",
|
"select-parser": "Selecteer parser",
|
||||||
"natural-language-processor": "Natural Language Processor",
|
"natural-language-processor": "Natural Language Processor",
|
||||||
"brute-parser": "Brute Parser",
|
"brute-parser": "Brute Parser",
|
||||||
"openai-parser": "OpenAI verwerker",
|
"openai-parser": "OpenAI parser",
|
||||||
"parse-all": "Parse All",
|
"parse-all": "Alles verwerken",
|
||||||
"no-unit": "No unit",
|
"no-unit": "Geen eenheid",
|
||||||
"missing-unit": "Create missing unit: {unit}",
|
"missing-unit": "Create missing unit: {unit}",
|
||||||
"missing-food": "Create missing food: {food}",
|
"missing-food": "Create missing food: {food}",
|
||||||
"no-food": "No Food"
|
"no-food": "Geen voedsel"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Back-up gemaakt op {path}",
|
"backup-created-at-response-export_path": "Back-up gemaakt op {path}",
|
||||||
"backup-deleted": "Back-up verwijderd",
|
"backup-deleted": "Back-up verwijderd",
|
||||||
"restore-success": "Herstellen gelukt",
|
"restore-success": "Herstellen gelukt",
|
||||||
|
"restore-fail": "Herstel mislukt. Controleer de logbestanden van uw server voor meer informatie",
|
||||||
"backup-tag": "Back-uplabel",
|
"backup-tag": "Back-uplabel",
|
||||||
"create-heading": "Back-up maken",
|
"create-heading": "Back-up maken",
|
||||||
"delete-backup": "Back-up verwijderen",
|
"delete-backup": "Back-up verwijderen",
|
||||||
@@ -763,7 +770,7 @@
|
|||||||
"ldap-ready-success-text": "Vereiste LDAP variabelen zijn helemaal ingesteld.",
|
"ldap-ready-success-text": "Vereiste LDAP variabelen zijn helemaal ingesteld.",
|
||||||
"build": "Bouw",
|
"build": "Bouw",
|
||||||
"recipe-scraper-version": "Versie van de receptenscraper",
|
"recipe-scraper-version": "Versie van de receptenscraper",
|
||||||
"oidc-ready": "OIDC Ready",
|
"oidc-ready": "OIDC klaar",
|
||||||
"oidc-ready-error-text": "Not all OIDC Values are configured. This can be ignored if you are not using OIDC Authentication.",
|
"oidc-ready-error-text": "Not all OIDC Values are configured. This can be ignored if you are not using OIDC Authentication.",
|
||||||
"oidc-ready-success-text": "Required OIDC variables are all set.",
|
"oidc-ready-success-text": "Required OIDC variables are all set.",
|
||||||
"openai-ready": "OpenAI staat klaar",
|
"openai-ready": "OpenAI staat klaar",
|
||||||
@@ -782,7 +789,7 @@
|
|||||||
"food": "Voedsel",
|
"food": "Voedsel",
|
||||||
"note": "Notitie",
|
"note": "Notitie",
|
||||||
"label": "Label",
|
"label": "Label",
|
||||||
"save-label": "Save Label",
|
"save-label": "Label opslaan",
|
||||||
"linked-item-warning": "Dit element is gekoppeld aan een of meer recepten. Het aanpassen van de eenheden of ingrediënten zal onverwachte resultaten opleveren bij het toevoegen of verwijderen van het recept uit deze lijst.",
|
"linked-item-warning": "Dit element is gekoppeld aan een of meer recepten. Het aanpassen van de eenheden of ingrediënten zal onverwachte resultaten opleveren bij het toevoegen of verwijderen van het recept uit deze lijst.",
|
||||||
"toggle-food": "Voedsel schakelen",
|
"toggle-food": "Voedsel schakelen",
|
||||||
"manage-labels": "Labels beheren",
|
"manage-labels": "Labels beheren",
|
||||||
@@ -877,8 +884,8 @@
|
|||||||
"link-id": "Koppeling ID",
|
"link-id": "Koppeling ID",
|
||||||
"link-name": "Koppeling Naam",
|
"link-name": "Koppeling Naam",
|
||||||
"login": "Inloggen",
|
"login": "Inloggen",
|
||||||
"login-oidc": "Login with",
|
"login-oidc": "Login met",
|
||||||
"or": "or",
|
"or": "of",
|
||||||
"logout": "Uitloggen",
|
"logout": "Uitloggen",
|
||||||
"manage-users": "Beheer Gebruikers",
|
"manage-users": "Beheer Gebruikers",
|
||||||
"manage-users-description": "Aanmaken en beheren van gebruikers.",
|
"manage-users-description": "Aanmaken en beheren van gebruikers.",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Måltidsplan oppdatert",
|
"mealplan-updated": "Måltidsplan oppdatert",
|
||||||
"no-meal-plan-defined-yet": "Ingen måltidsplan er definert ennå",
|
"no-meal-plan-defined-yet": "Ingen måltidsplan er definert ennå",
|
||||||
"no-meal-planned-for-today": "Ingen måltid planlagt i dag",
|
"no-meal-planned-for-today": "Ingen måltid planlagt i dag",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Kun oppskrifter med disse kategoriene vil bli brukt i måltidsplaner",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Kun oppskrifter med disse kategoriene vil bli brukt i måltidsplaner",
|
||||||
"planner": "Planlegger",
|
"planner": "Planlegger",
|
||||||
"quick-week": "Hurtigplan",
|
"quick-week": "Hurtigplan",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie kan importere oppskrifter fra My Recipe Box. Eksporter oppskrifter i CSV-format, og last deretter opp .csv-filen nedenfor."
|
"description-long": "Mealie kan importere oppskrifter fra My Recipe Box. Eksporter oppskrifter i CSV-format, og last deretter opp .csv-filen nedenfor."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Sikkerhetskopi opprettet i {path}",
|
"backup-created-at-response-export_path": "Sikkerhetskopi opprettet i {path}",
|
||||||
"backup-deleted": "Sikkerhetskopi slettet",
|
"backup-deleted": "Sikkerhetskopi slettet",
|
||||||
"restore-success": "Gjenopprettingen var vellykket",
|
"restore-success": "Gjenopprettingen var vellykket",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Emneord for sikkerhetskopi",
|
"backup-tag": "Emneord for sikkerhetskopi",
|
||||||
"create-heading": "Opprett en sikkerhetskopi",
|
"create-heading": "Opprett en sikkerhetskopi",
|
||||||
"delete-backup": "Slett sikkerhetskopi",
|
"delete-backup": "Slett sikkerhetskopi",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Plan posiłków został zaktualizowany",
|
"mealplan-updated": "Plan posiłków został zaktualizowany",
|
||||||
"no-meal-plan-defined-yet": "Brak zdefiniowanego planu posiłków",
|
"no-meal-plan-defined-yet": "Brak zdefiniowanego planu posiłków",
|
||||||
"no-meal-planned-for-today": "Brak zaplanowane posiłku na dziś",
|
"no-meal-planned-for-today": "Brak zaplanowane posiłku na dziś",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Tylko przepisy z tych kategorii będą używane w planach posiłków",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Tylko przepisy z tych kategorii będą używane w planach posiłków",
|
||||||
"planner": "Planer",
|
"planner": "Planer",
|
||||||
"quick-week": "Szybki plan na tydzień",
|
"quick-week": "Szybki plan na tydzień",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Kopia zapasowa została utworzona w {path}",
|
"backup-created-at-response-export_path": "Kopia zapasowa została utworzona w {path}",
|
||||||
"backup-deleted": "Kopia zapasowa została usunięta",
|
"backup-deleted": "Kopia zapasowa została usunięta",
|
||||||
"restore-success": "Przywracanie zakończone sukcesem",
|
"restore-success": "Przywracanie zakończone sukcesem",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Etykieta kopii zapasowej",
|
"backup-tag": "Etykieta kopii zapasowej",
|
||||||
"create-heading": "Utwórz kopię zapasową",
|
"create-heading": "Utwórz kopię zapasową",
|
||||||
"delete-backup": "Usuń kopię zapasową",
|
"delete-backup": "Usuń kopię zapasową",
|
||||||
|
|||||||
@@ -5,9 +5,9 @@
|
|||||||
"api-docs": "Documentação da API",
|
"api-docs": "Documentação da API",
|
||||||
"api-port": "Porta da API",
|
"api-port": "Porta da API",
|
||||||
"application-mode": "Modo do Aplicativo",
|
"application-mode": "Modo do Aplicativo",
|
||||||
"database-type": "Tipo do banco de dados",
|
"database-type": "Tipo do Banco de Dados",
|
||||||
"database-url": "URL do servidor de banco de dados",
|
"database-url": "URL do banco de dados",
|
||||||
"default-group": "Grupo padrão",
|
"default-group": "Grupo Padrão",
|
||||||
"demo": "Demonstração",
|
"demo": "Demonstração",
|
||||||
"demo-status": "Status da Demonstração",
|
"demo-status": "Status da Demonstração",
|
||||||
"development": "Desenvolvimento",
|
"development": "Desenvolvimento",
|
||||||
@@ -25,20 +25,20 @@
|
|||||||
"sponsor": "Patrocinar"
|
"sponsor": "Patrocinar"
|
||||||
},
|
},
|
||||||
"asset": {
|
"asset": {
|
||||||
"assets": "Arquivos",
|
"assets": "Ativos",
|
||||||
"code": "Código",
|
"code": "Código",
|
||||||
"file": "Arquivo",
|
"file": "Arquivo",
|
||||||
"image": "Imagem",
|
"image": "Imagem",
|
||||||
"new-asset": "Novo Arquivo",
|
"new-asset": "Novo Arquivo",
|
||||||
"pdf": "PDF",
|
"pdf": "PDF",
|
||||||
"recipe": "Receita",
|
"recipe": "Receita",
|
||||||
"show-assets": "Exibir Arquivos",
|
"show-assets": "Exibir Ativos",
|
||||||
"error-submitting-form": "Erro ao enviar o formulário"
|
"error-submitting-form": "Erro ao enviar o formulário"
|
||||||
},
|
},
|
||||||
"category": {
|
"category": {
|
||||||
"categories": "Categorias",
|
"categories": "Categorias",
|
||||||
"category-created": "Categoria criada",
|
"category-created": "Categoria criada",
|
||||||
"category-creation-failed": "Falha ao criar categoria",
|
"category-creation-failed": "Falha ao criar Categoria",
|
||||||
"category-deleted": "Categoria Excluída",
|
"category-deleted": "Categoria Excluída",
|
||||||
"category-deletion-failed": "Falha ao excluir a categoria",
|
"category-deletion-failed": "Falha ao excluir a categoria",
|
||||||
"category-filter": "Filtro de categoria",
|
"category-filter": "Filtro de categoria",
|
||||||
@@ -52,24 +52,24 @@
|
|||||||
"events": {
|
"events": {
|
||||||
"apprise-url": "URL do Apprise",
|
"apprise-url": "URL do Apprise",
|
||||||
"database": "Banco de dados",
|
"database": "Banco de dados",
|
||||||
"delete-event": "Apagar evento",
|
"delete-event": "Excluir Evento",
|
||||||
"event-delete-confirmation": "Tem certeza de que quer excluir este evento?",
|
"event-delete-confirmation": "Tem certeza de que quer excluir este evento?",
|
||||||
"event-deleted": "Evento Excluído",
|
"event-deleted": "Evento Excluído",
|
||||||
"event-updated": "Evento Atualizado",
|
"event-updated": "Evento Atualizado",
|
||||||
"new-notification-form-description": "Mealie usa a biblioteca Apprise para gerar notificações. Eles oferecem várias opções de serviços para serem usados para notificações. Consulte a wiki para um guia completo sobre como criar a URL para o seu serviço. Se disponível, selecionar o tipo de notificação pode incluir recursos extras.",
|
"new-notification-form-description": "Mealie usa a biblioteca Apprise para gerar notificações. Eles oferecem várias opções de serviços para usar em notificações. Consulte sua wiki para um guia completo sobre como criar a URL para o seu serviço. Se disponível, selecionar o tipo da sua notificação pode incluir recursos extras.",
|
||||||
"new-version": "Nova versão disponível!",
|
"new-version": "Nova versão disponível!",
|
||||||
"notification": "Notificação",
|
"notification": "Notificação",
|
||||||
"refresh": "Atualizar",
|
"refresh": "Recarregar",
|
||||||
"scheduled": "Agendado",
|
"scheduled": "Agendado",
|
||||||
"something-went-wrong": "Algo deu errado!",
|
"something-went-wrong": "Algo deu errado!",
|
||||||
"subscribed-events": "Eventos Inscritos",
|
"subscribed-events": "Eventos Inscritos",
|
||||||
"test-message-sent": "Mensagem de teste enviada",
|
"test-message-sent": "Mensagem de teste enviada",
|
||||||
"message-sent": "Message Sent",
|
"message-sent": "Mensagem enviada",
|
||||||
"new-notification": "Nova Notificação",
|
"new-notification": "Nova Notificação",
|
||||||
"event-notifiers": "Notificações de Eventos",
|
"event-notifiers": "Notificações de Eventos",
|
||||||
"apprise-url-skipped-if-blank": "URL Apprise (ignorado se estiver em branco)",
|
"apprise-url-skipped-if-blank": "URL Apprise (ignorado se estiver em branco)",
|
||||||
"enable-notifier": "Habilitar Notificações",
|
"enable-notifier": "Habilitar Notificador",
|
||||||
"what-events": "Quais eventos esse notificador deve subscrever?",
|
"what-events": "A quais eventos este notificador deve subscrever?",
|
||||||
"user-events": "Eventos do usuário",
|
"user-events": "Eventos do usuário",
|
||||||
"mealplan-events": "Eventos do Plano Refeições",
|
"mealplan-events": "Eventos do Plano Refeições",
|
||||||
"when-a-user-in-your-group-creates-a-new-mealplan": "Quando um usuário do seu grupo criar um plano de refeição",
|
"when-a-user-in-your-group-creates-a-new-mealplan": "Quando um usuário do seu grupo criar um plano de refeição",
|
||||||
@@ -81,12 +81,12 @@
|
|||||||
"recipe-events": "Eventos da Receita"
|
"recipe-events": "Eventos da Receita"
|
||||||
},
|
},
|
||||||
"general": {
|
"general": {
|
||||||
"add": "Add",
|
"add": "Adicionar",
|
||||||
"cancel": "Cancelar",
|
"cancel": "Cancelar",
|
||||||
"clear": "Limpar",
|
"clear": "Limpar",
|
||||||
"close": "Fechar",
|
"close": "Fechar",
|
||||||
"confirm": "Confirmar",
|
"confirm": "Confirmar",
|
||||||
"confirm-how-does-everything-look": "How does everything look?",
|
"confirm-how-does-everything-look": "Como está tudo?",
|
||||||
"confirm-delete-generic": "Você tem certeza de que deseja apagar isto?",
|
"confirm-delete-generic": "Você tem certeza de que deseja apagar isto?",
|
||||||
"copied_message": "Copiado!",
|
"copied_message": "Copiado!",
|
||||||
"create": "Criar",
|
"create": "Criar",
|
||||||
@@ -145,23 +145,23 @@
|
|||||||
"save": "Salvar",
|
"save": "Salvar",
|
||||||
"settings": "Configurações",
|
"settings": "Configurações",
|
||||||
"share": "Compartilhar",
|
"share": "Compartilhar",
|
||||||
"show-all": "Show All",
|
"show-all": "Exibir Tudo",
|
||||||
"shuffle": "Aleatório",
|
"shuffle": "Aleatório",
|
||||||
"sort": "Ordenar",
|
"sort": "Ordenar",
|
||||||
"sort-ascending": "Sort Ascending",
|
"sort-ascending": "Ordenação Crescente",
|
||||||
"sort-descending": "Sort Descending",
|
"sort-descending": "Ordenação Decrescente",
|
||||||
"sort-alphabetically": "Alfabética",
|
"sort-alphabetically": "Alfabética",
|
||||||
"status": "Estado",
|
"status": "Estado",
|
||||||
"subject": "Assunto",
|
"subject": "Assunto",
|
||||||
"submit": "Submeter",
|
"submit": "Submeter",
|
||||||
"success-count": "Sucesso: {count}",
|
"success-count": "Sucesso: {count}",
|
||||||
"sunday": "Domingo",
|
"sunday": "Domingo",
|
||||||
"system": "System",
|
"system": "Sistema",
|
||||||
"templates": "Modelos:",
|
"templates": "Modelos:",
|
||||||
"test": "Teste",
|
"test": "Teste",
|
||||||
"themes": "Temas",
|
"themes": "Temas",
|
||||||
"thursday": "Quinta-feira",
|
"thursday": "Quinta-feira",
|
||||||
"title": "Title",
|
"title": "Título",
|
||||||
"token": "Token",
|
"token": "Token",
|
||||||
"tuesday": "Terça-feira",
|
"tuesday": "Terça-feira",
|
||||||
"type": "Tipo",
|
"type": "Tipo",
|
||||||
@@ -176,7 +176,7 @@
|
|||||||
"units": "Unidades",
|
"units": "Unidades",
|
||||||
"back": "Voltar",
|
"back": "Voltar",
|
||||||
"next": "Avançar",
|
"next": "Avançar",
|
||||||
"start": "Start",
|
"start": "Iniciar",
|
||||||
"toggle-view": "Alternar Visualização",
|
"toggle-view": "Alternar Visualização",
|
||||||
"date": "Data",
|
"date": "Data",
|
||||||
"id": "Id",
|
"id": "Id",
|
||||||
@@ -208,9 +208,9 @@
|
|||||||
"upload-file": "Enviar arquivo",
|
"upload-file": "Enviar arquivo",
|
||||||
"created-on-date": "Criado em {0}",
|
"created-on-date": "Criado em {0}",
|
||||||
"unsaved-changes": "Você possui alterações não salvas. Deseja salvar antes de sair? Ok para salvar, Cancelar para descartar alterações.",
|
"unsaved-changes": "Você possui alterações não salvas. Deseja salvar antes de sair? Ok para salvar, Cancelar para descartar alterações.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
"clipboard-copy-failure": "Falha ao copiar para a área de transferência.",
|
||||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?",
|
"confirm-delete-generic-items": "Tem certeza que quer excluir os itens seguintes?",
|
||||||
"organizers": "Organizers"
|
"organizers": "Organizadores"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Tem certeza que deseja excluir o grupo <b>{groupName}<b/>?",
|
"are-you-sure-you-want-to-delete-the-group": "Tem certeza que deseja excluir o grupo <b>{groupName}<b/>?",
|
||||||
@@ -246,8 +246,8 @@
|
|||||||
"group-preferences": "Preferências de Grupo",
|
"group-preferences": "Preferências de Grupo",
|
||||||
"private-group": "Grupo Privado",
|
"private-group": "Grupo Privado",
|
||||||
"private-group-description": "Definir seu grupo para privado irá padronizar todas as opções de visualização para padrão. Isso substitui as configurações de visualização pública individuais.",
|
"private-group-description": "Definir seu grupo para privado irá padronizar todas as opções de visualização para padrão. Isso substitui as configurações de visualização pública individuais.",
|
||||||
"enable-public-access": "Enable Public Access",
|
"enable-public-access": "Ativar Acesso Público",
|
||||||
"enable-public-access-description": "Make group recipes public by default, and allow visitors to view recipes without logging-in",
|
"enable-public-access-description": "Tornar receitas do grupo públicas por padrão, e permitir a sua visualização por visitantes não logados",
|
||||||
"allow-users-outside-of-your-group-to-see-your-recipes": "Permitir que usuários fora do seu grupo vejam suas receitas",
|
"allow-users-outside-of-your-group-to-see-your-recipes": "Permitir que usuários fora do seu grupo vejam suas receitas",
|
||||||
"allow-users-outside-of-your-group-to-see-your-recipes-description": "Quando habilitado, você pode usar um link de compartilhamento público para compartilhar receitas específicas sem autorizar o usuário. Quando desativado, você pode apenas compartilhar receitas com usuários que estão em seu grupo ou com um link privado pré-gerado",
|
"allow-users-outside-of-your-group-to-see-your-recipes-description": "Quando habilitado, você pode usar um link de compartilhamento público para compartilhar receitas específicas sem autorizar o usuário. Quando desativado, você pode apenas compartilhar receitas com usuários que estão em seu grupo ou com um link privado pré-gerado",
|
||||||
"show-nutrition-information": "Mostrar informações nutricionais",
|
"show-nutrition-information": "Mostrar informações nutricionais",
|
||||||
@@ -271,7 +271,7 @@
|
|||||||
},
|
},
|
||||||
"meal-plan": {
|
"meal-plan": {
|
||||||
"create-a-new-meal-plan": "Criar um novo plano de refeições",
|
"create-a-new-meal-plan": "Criar um novo plano de refeições",
|
||||||
"update-this-meal-plan": "Update this Meal Plan",
|
"update-this-meal-plan": "Atualizar este Plano de Refeição",
|
||||||
"dinner-this-week": "Jantar desta semana",
|
"dinner-this-week": "Jantar desta semana",
|
||||||
"dinner-today": "Jantar de hoje",
|
"dinner-today": "Jantar de hoje",
|
||||||
"dinner-tonight": "JANTAR DE HOJE À NOITE",
|
"dinner-tonight": "JANTAR DE HOJE À NOITE",
|
||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Plano de Refeições atualizado",
|
"mealplan-updated": "Plano de Refeições atualizado",
|
||||||
"no-meal-plan-defined-yet": "Nenhum Plano de Refeições definido ainda",
|
"no-meal-plan-defined-yet": "Nenhum Plano de Refeições definido ainda",
|
||||||
"no-meal-planned-for-today": "Nenhuma refeição planejada para hoje",
|
"no-meal-planned-for-today": "Nenhuma refeição planejada para hoje",
|
||||||
|
"numberOfDays-hint": "Número de dias ao carregar a página",
|
||||||
|
"numberOfDays-label": "Dias Padrões",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Apenas receitas com essas categorias serão usadas nos Planos de Refeições",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Apenas receitas com essas categorias serão usadas nos Planos de Refeições",
|
||||||
"planner": "Planejamento",
|
"planner": "Planejamento",
|
||||||
"quick-week": "Semana Rápida",
|
"quick-week": "Semana Rápida",
|
||||||
@@ -361,11 +363,11 @@
|
|||||||
},
|
},
|
||||||
"recipe-data-migrations": "Migrações de Dados de Receita",
|
"recipe-data-migrations": "Migrações de Dados de Receita",
|
||||||
"recipe-data-migrations-explanation": "Receitas podem ser migradas de outro aplicativo suportado para o Mealie. Esta é uma ótima maneira de começar com Mealie.",
|
"recipe-data-migrations-explanation": "Receitas podem ser migradas de outro aplicativo suportado para o Mealie. Esta é uma ótima maneira de começar com Mealie.",
|
||||||
"coming-from-another-application-or-an-even-older-version-of-mealie": "Coming from another application or an even older version of Mealie? Check out migrations and see if your data can be imported.",
|
"coming-from-another-application-or-an-even-older-version-of-mealie": "Vindo de outra aplicação ou de uma versão mais antiga do Mealie? Confira as migrações e veja se seus dados podem ser importados.",
|
||||||
"choose-migration-type": "Escolher Tipo de Migração",
|
"choose-migration-type": "Escolher Tipo de Migração",
|
||||||
"tag-all-recipes": "Marcar todas as receitas com o marcador {tag-name}",
|
"tag-all-recipes": "Marcar todas as receitas com o marcador {tag-name}",
|
||||||
"nextcloud-text": "As receitas da Nextcloud podem ser importadas a partir de um arquivo .zip que contém os dados armazenados na Nextcloud. Veja abaixo o exemplo da estrutura da pasta para garantir que suas receitas possam ser importadas.",
|
"nextcloud-text": "As receitas da Nextcloud podem ser importadas a partir de um arquivo .zip que contém os dados armazenados na Nextcloud. Veja abaixo o exemplo da estrutura da pasta para garantir que suas receitas possam ser importadas.",
|
||||||
"chowdown-text": "Mealie natively supports the chowdown repository format. Download the code repository as a .zip file and upload it below.",
|
"chowdown-text": "Mealie suporta nativamente o formato de repositório chowdown. Baixe o repositório de códigos como um arquivo ZIP e envie-o abaixo.",
|
||||||
"recipe-1": "Receita 1",
|
"recipe-1": "Receita 1",
|
||||||
"recipe-2": "Receita 2",
|
"recipe-2": "Receita 2",
|
||||||
"paprika-text": "Mealie pode importar receitas do aplicativo Paprika. Exporte suas receitas do Paprika, renomeie a extensão do arquivo para .zip e carregue-o abaixo.",
|
"paprika-text": "Mealie pode importar receitas do aplicativo Paprika. Exporte suas receitas do Paprika, renomeie a extensão do arquivo para .zip e carregue-o abaixo.",
|
||||||
@@ -376,7 +378,11 @@
|
|||||||
},
|
},
|
||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
"description-long": "Mealie pode importar receitas do My Recipe Box. Exporte suas receitas em formato CSV e envie o arquivo abaixo."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie pode importar receitas do Recipe Keeper. Exporte suas receitas no formato ZIP, então envie o arquivo abaixo."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -491,11 +497,11 @@
|
|||||||
"add-to-timeline": "Adicionar à linha do tempo",
|
"add-to-timeline": "Adicionar à linha do tempo",
|
||||||
"recipe-added-to-list": "Receita adicionada à lista",
|
"recipe-added-to-list": "Receita adicionada à lista",
|
||||||
"recipes-added-to-list": "Receitas adicionadas à lista",
|
"recipes-added-to-list": "Receitas adicionadas à lista",
|
||||||
"successfully-added-to-list": "Successfully added to list",
|
"successfully-added-to-list": "Sucesso ao adicionar à lista",
|
||||||
"recipe-added-to-mealplan": "Receita adicionada ao plano de refeições",
|
"recipe-added-to-mealplan": "Receita adicionada ao plano de refeições",
|
||||||
"failed-to-add-recipes-to-list": "Falha ao adicionar receita à lista",
|
"failed-to-add-recipes-to-list": "Falha ao adicionar receita à lista",
|
||||||
"failed-to-add-recipe-to-mealplan": "Falha ao adicionar a receita ao plano de refeições",
|
"failed-to-add-recipe-to-mealplan": "Falha ao adicionar a receita ao plano de refeições",
|
||||||
"failed-to-add-to-list": "Failed to add to list",
|
"failed-to-add-to-list": "Falha ao adicionar à lista",
|
||||||
"yield": "Rendimento",
|
"yield": "Rendimento",
|
||||||
"quantity": "Quantidade",
|
"quantity": "Quantidade",
|
||||||
"choose-unit": "Escolher unidades",
|
"choose-unit": "Escolher unidades",
|
||||||
@@ -511,8 +517,8 @@
|
|||||||
"cook-mode": "Modo Cozinheiro",
|
"cook-mode": "Modo Cozinheiro",
|
||||||
"link-ingredients": "Vincular ingredientes",
|
"link-ingredients": "Vincular ingredientes",
|
||||||
"merge-above": "Mesclar acima",
|
"merge-above": "Mesclar acima",
|
||||||
"move-to-bottom": "Move To Bottom",
|
"move-to-bottom": "Mover para o Final",
|
||||||
"move-to-top": "Move To Top",
|
"move-to-top": "Mover para o Topo",
|
||||||
"reset-scale": "Redefinir escala",
|
"reset-scale": "Redefinir escala",
|
||||||
"decrease-scale-label": "Diminuir Escala por 1",
|
"decrease-scale-label": "Diminuir Escala por 1",
|
||||||
"increase-scale-label": "Aumentar Escala por 1",
|
"increase-scale-label": "Aumentar Escala por 1",
|
||||||
@@ -528,14 +534,14 @@
|
|||||||
"edit-timeline-event": "Editar Linha do Tempo do Evento",
|
"edit-timeline-event": "Editar Linha do Tempo do Evento",
|
||||||
"timeline": "Linha do Tempo",
|
"timeline": "Linha do Tempo",
|
||||||
"timeline-is-empty": "Nada na linha do tempo ainda. Tente fazer esta receita!",
|
"timeline-is-empty": "Nada na linha do tempo ainda. Tente fazer esta receita!",
|
||||||
"timeline-no-events-found-try-adjusting-filters": "No events found. Try adjusting your search filters.",
|
"timeline-no-events-found-try-adjusting-filters": "Eventos não encontrados. Tente ajustar seus filtros de busca.",
|
||||||
"group-global-timeline": "{groupName} Linha do Tempo Global",
|
"group-global-timeline": "{groupName} Linha do Tempo Global",
|
||||||
"open-timeline": "Abrir a Linha do Tempo",
|
"open-timeline": "Abrir a Linha do Tempo",
|
||||||
"made-this": "Eu Fiz Isso",
|
"made-this": "Eu Fiz Isso",
|
||||||
"how-did-it-turn-out": "Como que ficou?",
|
"how-did-it-turn-out": "Como que ficou?",
|
||||||
"user-made-this": "{user} fez isso",
|
"user-made-this": "{user} fez isso",
|
||||||
"last-made-date": "Feito pela última vez em {date}",
|
"last-made-date": "Feito pela última vez em {date}",
|
||||||
"api-extras-description": "Recipes extras are a key feature of the Mealie API. They allow you to create custom JSON key/value pairs within a recipe, to reference from 3rd party applications. You can use these keys to provide information, for example to trigger automations or custom messages to relay to your desired device.",
|
"api-extras-description": "Extras de receitas são atributos-chave da API do Mealie. Assim, você pode criar pares chave/valor JSON personalizados dentro de uma receita, referenciando aplicações de terceiros. Você pode usar as chaves para fornecer informações, como por ex. ativar automações ou mensagens que serão enviadas a seus dispositivos.",
|
||||||
"message-key": "Chave de mensagem",
|
"message-key": "Chave de mensagem",
|
||||||
"parse": "Analisar",
|
"parse": "Analisar",
|
||||||
"attach-images-hint": "Anexe imagens arrastando e soltando-as no editor",
|
"attach-images-hint": "Anexe imagens arrastando e soltando-as no editor",
|
||||||
@@ -549,8 +555,8 @@
|
|||||||
"looking-for-migrations": "Procurando por migrações?",
|
"looking-for-migrations": "Procurando por migrações?",
|
||||||
"import-with-url": "Importar a partir da URL",
|
"import-with-url": "Importar a partir da URL",
|
||||||
"create-recipe": "Criar Receita",
|
"create-recipe": "Criar Receita",
|
||||||
"create-recipe-description": "Create a new recipe from scratch.",
|
"create-recipe-description": "Criar uma receita do zero.",
|
||||||
"create-recipes": "Create Recipes",
|
"create-recipes": "Criar Receitas",
|
||||||
"import-with-zip": "Importar a partir de .zip",
|
"import-with-zip": "Importar a partir de .zip",
|
||||||
"create-recipe-from-an-image": "Criar Receita a partir de uma imagem",
|
"create-recipe-from-an-image": "Criar Receita a partir de uma imagem",
|
||||||
"bulk-url-import": "Importação de URL em massa",
|
"bulk-url-import": "Importação de URL em massa",
|
||||||
@@ -559,8 +565,8 @@
|
|||||||
"new-recipe-names-must-be-unique": "Novos nomes de receitas devem ser únicos",
|
"new-recipe-names-must-be-unique": "Novos nomes de receitas devem ser únicos",
|
||||||
"scrape-recipe": "Extrair receita do site",
|
"scrape-recipe": "Extrair receita do site",
|
||||||
"scrape-recipe-description": "Scrape uma receita por url. Forneça o Url para o site que você deseja scrape, e Mealie tentará raspar a receita desse site e adicioná-la à sua coleção.",
|
"scrape-recipe-description": "Scrape uma receita por url. Forneça o Url para o site que você deseja scrape, e Mealie tentará raspar a receita desse site e adicioná-la à sua coleção.",
|
||||||
"scrape-recipe-have-a-lot-of-recipes": "Have a lot of recipes you want to scrape at once?",
|
"scrape-recipe-have-a-lot-of-recipes": "Tem muitas receitas a extrair de uma vez?",
|
||||||
"scrape-recipe-suggest-bulk-importer": "Try out the bulk importer",
|
"scrape-recipe-suggest-bulk-importer": "Tente o importador em massa",
|
||||||
"import-original-keywords-as-tags": "Importar palavras-chave originais como marcadores",
|
"import-original-keywords-as-tags": "Importar palavras-chave originais como marcadores",
|
||||||
"stay-in-edit-mode": "Permanecer no modo de edição",
|
"stay-in-edit-mode": "Permanecer no modo de edição",
|
||||||
"import-from-zip": "Importar do .zip",
|
"import-from-zip": "Importar do .zip",
|
||||||
@@ -584,22 +590,22 @@
|
|||||||
"upload-image": "Enviar imagem",
|
"upload-image": "Enviar imagem",
|
||||||
"screen-awake": "Manter a tela ligada",
|
"screen-awake": "Manter a tela ligada",
|
||||||
"remove-image": "Remover imagem",
|
"remove-image": "Remover imagem",
|
||||||
"nextStep": "Next step",
|
"nextStep": "Próximo passo",
|
||||||
"recipe-actions": "Recipe Actions",
|
"recipe-actions": "Ações de Receita",
|
||||||
"parser": {
|
"parser": {
|
||||||
"experimental-alert-text": "Mealie uses natural language processing to parse and create units and food items for your recipe ingredients. This feature is experimental and may not always work as expected. If you prefer not to use the parsed results, you can select 'Cancel' and your changes will not be saved.",
|
"experimental-alert-text": "Mealie usa processamento de linguagem natural para analisar e criar unidades e itens de comida para seus ingredientes. Esse recurso é experimental e pode não funcionar como esperado. Se preferir não usar os resultados analisados, selecione \"Cancelar\" e suas mudanças não serão salvas.",
|
||||||
"ingredient-parser": "Ingredient Parser",
|
"ingredient-parser": "Analisador de Ingredientes",
|
||||||
"explanation": "To use the ingredient parser, click the 'Parse All' button to start the process. Once the processed ingredients are available, you can review the items and verify that they were parsed correctly. The model's confidence score is displayed on the right of the item title. This score is an average of all the individual scores and may not always be completely accurate.",
|
"explanation": "Para usar o analisador de ingredientes, clique no botão \"Analisar Tudo\" para iniciar o processo. Assim que os ingredientes processados estiverem disponíveis, você pode revisá-los e verificar se foram analisados corretamente. A pontuação de confiança do modelo estará à direita do título do item. Essa pontuação é uma média de todas as pontuações individuais e podem não ser precisas.",
|
||||||
"alerts-explainer": "Alerts will be displayed if a matching foods or unit is found but does not exists in the database.",
|
"alerts-explainer": "Avisos serão exibidos se uma comida, ou unidade, for encontrada, mas não existir no banco de dados.",
|
||||||
"select-parser": "Select Parser",
|
"select-parser": "Selecione um Analisador",
|
||||||
"natural-language-processor": "Natural Language Processor",
|
"natural-language-processor": "Processador de Linguagem Natural",
|
||||||
"brute-parser": "Brute Parser",
|
"brute-parser": "Analisador Bruto",
|
||||||
"openai-parser": "OpenAI Parser",
|
"openai-parser": "Analisador OpenAI",
|
||||||
"parse-all": "Parse All",
|
"parse-all": "Analisar Tudo",
|
||||||
"no-unit": "No unit",
|
"no-unit": "Sem unidades",
|
||||||
"missing-unit": "Create missing unit: {unit}",
|
"missing-unit": "Criar unidade ausente: {unit}",
|
||||||
"missing-food": "Create missing food: {food}",
|
"missing-food": "Criar comida ausente: {food}",
|
||||||
"no-food": "No Food"
|
"no-food": "Sem Comida"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Backup criado em {path}",
|
"backup-created-at-response-export_path": "Backup criado em {path}",
|
||||||
"backup-deleted": "Backup excluído",
|
"backup-deleted": "Backup excluído",
|
||||||
"restore-success": "Restauração bem-sucedida",
|
"restore-success": "Restauração bem-sucedida",
|
||||||
|
"restore-fail": "Restauração falhou. Mais detalhes nos registros do servidor",
|
||||||
"backup-tag": "Etiqueta de Backup",
|
"backup-tag": "Etiqueta de Backup",
|
||||||
"create-heading": "Criar um Backup",
|
"create-heading": "Criar um Backup",
|
||||||
"delete-backup": "Excluir Backup",
|
"delete-backup": "Excluir Backup",
|
||||||
@@ -637,7 +644,7 @@
|
|||||||
"import-summary": "Resumo da importação",
|
"import-summary": "Resumo da importação",
|
||||||
"partial-backup": "Backup parcial",
|
"partial-backup": "Backup parcial",
|
||||||
"unable-to-delete-backup": "Não foi possível apagar o backup.",
|
"unable-to-delete-backup": "Não foi possível apagar o backup.",
|
||||||
"experimental-description": "Backups are total snapshots of the database and data directory of the site. This includes all data and cannot be set to exclude subsets of data. You can think of this as a snapshot of Mealie at a specific time. These serve as a database agnostic way to export and import data, or back up the site to an external location.",
|
"experimental-description": "Cópias de segurança são \"retratos\" do banco de dados e diretórios de dados do site. Isso inclui todos os dados e não pode segregar subconjuntos de dados. Pense como um retrato do Mealie num momento específico. Elas servem como uma forma agnóstica de exportar e importar dados, ou copiar o site para um local externo.",
|
||||||
"backup-restore": "Restauração de Backup",
|
"backup-restore": "Restauração de Backup",
|
||||||
"back-restore-description": "Restaurar este backup substituirá todos os dados atuais no seu banco de dados e no diretório de dados e os substituirá pelo conteúdo deste backup. {cannot-be-undone} Se a restauração for bem-sucedida, você será desconectado.",
|
"back-restore-description": "Restaurar este backup substituirá todos os dados atuais no seu banco de dados e no diretório de dados e os substituirá pelo conteúdo deste backup. {cannot-be-undone} Se a restauração for bem-sucedida, você será desconectado.",
|
||||||
"cannot-be-undone": "Esta ação não pode ser desfeita - use com cautela.",
|
"cannot-be-undone": "Esta ação não pode ser desfeita - use com cautela.",
|
||||||
@@ -763,12 +770,12 @@
|
|||||||
"ldap-ready-success-text": "As variáveis LDAP necessárias estão todas definidas.",
|
"ldap-ready-success-text": "As variáveis LDAP necessárias estão todas definidas.",
|
||||||
"build": "Compilaçāo",
|
"build": "Compilaçāo",
|
||||||
"recipe-scraper-version": "Versão do receptor de receita",
|
"recipe-scraper-version": "Versão do receptor de receita",
|
||||||
"oidc-ready": "OIDC Ready",
|
"oidc-ready": "OIDC Pronto",
|
||||||
"oidc-ready-error-text": "Not all OIDC Values are configured. This can be ignored if you are not using OIDC Authentication.",
|
"oidc-ready-error-text": "Nem todos os valores OIDC estão configurados. Pode ser ignorado se não estiver usando Autenticação OIDC.",
|
||||||
"oidc-ready-success-text": "Required OIDC variables are all set.",
|
"oidc-ready-success-text": "Variáveis OIDC necessárias estão todas definidas.",
|
||||||
"openai-ready": "OpenAI Ready",
|
"openai-ready": "OpenAI Pronta",
|
||||||
"openai-ready-error-text": "Not all OpenAI Values are configured. This can be ignored if you are not using OpenAI features.",
|
"openai-ready-error-text": "Nem todos os valores da OpenAI estão configurados. Pode ser ignorado se não estiver usando recursos OpenAI.",
|
||||||
"openai-ready-success-text": "Required OpenAI variables are all set."
|
"openai-ready-success-text": "Variáveis OpenAI necessárias estão todas definidas."
|
||||||
},
|
},
|
||||||
"shopping-list": {
|
"shopping-list": {
|
||||||
"all-lists": "Todas as Listas",
|
"all-lists": "Todas as Listas",
|
||||||
@@ -782,7 +789,7 @@
|
|||||||
"food": "Comida",
|
"food": "Comida",
|
||||||
"note": "Nota",
|
"note": "Nota",
|
||||||
"label": "Marcador",
|
"label": "Marcador",
|
||||||
"save-label": "Save Label",
|
"save-label": "Salvar Rótulo",
|
||||||
"linked-item-warning": "Este item está vinculado a uma ou mais receitas. Ajustar as unidades ou alimentos produzirá resultados inesperados ao adicionar ou remover a receita desta lista.",
|
"linked-item-warning": "Este item está vinculado a uma ou mais receitas. Ajustar as unidades ou alimentos produzirá resultados inesperados ao adicionar ou remover a receita desta lista.",
|
||||||
"toggle-food": "Mostrar nome da Comida",
|
"toggle-food": "Mostrar nome da Comida",
|
||||||
"manage-labels": "Gerenciar marcadores",
|
"manage-labels": "Gerenciar marcadores",
|
||||||
@@ -842,7 +849,7 @@
|
|||||||
"untagged-count": "{count} sem marcador",
|
"untagged-count": "{count} sem marcador",
|
||||||
"create-a-tag": "Criar um marcador",
|
"create-a-tag": "Criar um marcador",
|
||||||
"tag-name": "Nome do Marcador",
|
"tag-name": "Nome do Marcador",
|
||||||
"tag": "Tag"
|
"tag": "Etiqueta"
|
||||||
},
|
},
|
||||||
"tool": {
|
"tool": {
|
||||||
"tools": "Ferramentas",
|
"tools": "Ferramentas",
|
||||||
@@ -852,7 +859,7 @@
|
|||||||
"create-new-tool": "Criar Ferramenta",
|
"create-new-tool": "Criar Ferramenta",
|
||||||
"on-hand-checkbox-label": "Mostrar como disponível (checado)",
|
"on-hand-checkbox-label": "Mostrar como disponível (checado)",
|
||||||
"required-tools": "Ferramentas necessárias",
|
"required-tools": "Ferramentas necessárias",
|
||||||
"tool": "Tool"
|
"tool": "Utensílio"
|
||||||
},
|
},
|
||||||
"user": {
|
"user": {
|
||||||
"admin": "Administrador",
|
"admin": "Administrador",
|
||||||
@@ -877,11 +884,11 @@
|
|||||||
"link-id": "ID do Link",
|
"link-id": "ID do Link",
|
||||||
"link-name": "Nome do link",
|
"link-name": "Nome do link",
|
||||||
"login": "Entrar",
|
"login": "Entrar",
|
||||||
"login-oidc": "Login with",
|
"login-oidc": "Entrar com",
|
||||||
"or": "or",
|
"or": "ou",
|
||||||
"logout": "Sair",
|
"logout": "Sair",
|
||||||
"manage-users": "Gerenciar Usuários",
|
"manage-users": "Gerenciar Usuários",
|
||||||
"manage-users-description": "Create and manage users.",
|
"manage-users-description": "Criar e gerir usuários.",
|
||||||
"new-password": "Nova senha",
|
"new-password": "Nova senha",
|
||||||
"new-user": "Novo Usuário",
|
"new-user": "Novo Usuário",
|
||||||
"password-has-been-reset-to-the-default-password": "A senha foi redefinida para a senha padrão",
|
"password-has-been-reset-to-the-default-password": "A senha foi redefinida para a senha padrão",
|
||||||
@@ -1024,10 +1031,10 @@
|
|||||||
"source-unit-will-be-deleted": "Unidade de origem será excluída"
|
"source-unit-will-be-deleted": "Unidade de origem será excluída"
|
||||||
},
|
},
|
||||||
"recipe-actions": {
|
"recipe-actions": {
|
||||||
"recipe-actions-data": "Recipe Actions Data",
|
"recipe-actions-data": "Dados de Ações de Receita",
|
||||||
"new-recipe-action": "New Recipe Action",
|
"new-recipe-action": "Nova Ação de Receita",
|
||||||
"edit-recipe-action": "Edit Recipe Action",
|
"edit-recipe-action": "Alterar Ação de Receita",
|
||||||
"action-type": "Action Type"
|
"action-type": "Tipo de Ação"
|
||||||
},
|
},
|
||||||
"create-alias": "Criar Apelido",
|
"create-alias": "Criar Apelido",
|
||||||
"manage-aliases": "Gerenciar apelidos",
|
"manage-aliases": "Gerenciar apelidos",
|
||||||
@@ -1186,32 +1193,32 @@
|
|||||||
"no-logs-found": "Nenhum log encontrado",
|
"no-logs-found": "Nenhum log encontrado",
|
||||||
"tasks": "Tarefas",
|
"tasks": "Tarefas",
|
||||||
"setup": {
|
"setup": {
|
||||||
"first-time-setup": "First Time Setup",
|
"first-time-setup": "Primeira Configuração",
|
||||||
"welcome-to-mealie-get-started": "Welcome to Mealie! Let's get started",
|
"welcome-to-mealie-get-started": "Bem-vindo(a) ao Mealie! Vamos começar",
|
||||||
"already-set-up-bring-to-homepage": "I'm already set up, just bring me to the homepage",
|
"already-set-up-bring-to-homepage": "Já estou pronto, apenas me leve à página inicial",
|
||||||
"common-settings-for-new-sites": "Here are some common settings for new sites",
|
"common-settings-for-new-sites": "Estas são algumas configurações comuns para novos sites",
|
||||||
"setup-complete": "Setup Complete!",
|
"setup-complete": "Configuração Concluída!",
|
||||||
"here-are-a-few-things-to-help-you-get-started": "Here are a few things to help you get started with Mealie",
|
"here-are-a-few-things-to-help-you-get-started": "Aqui há algumas coisas para ajudá-lo a começar com o Mealie",
|
||||||
"restore-from-v1-backup": "Have a backup from a previous instance of Mealie v1? You can restore it here.",
|
"restore-from-v1-backup": "Tem uma cópia de segurança de uma instância anterior do Mealie v1? Você pode restaurá-la aqui.",
|
||||||
"manage-profile-or-get-invite-link": "Manage your own profile, or grab an invite link to share with others."
|
"manage-profile-or-get-invite-link": "Gerencie seu próprio perfil, ou pegue um link de convite para compartilhar."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
"welcome-user": "👋 Welcome, {0}!",
|
"welcome-user": "👋 Bem-vindo(a), {0}!",
|
||||||
"description": "Gerencie seu perfil, receitas e configurações de grupo.",
|
"description": "Gerencie seu perfil, receitas e configurações de grupo.",
|
||||||
"get-invite-link": "Obter link de convite",
|
"get-invite-link": "Obter link de convite",
|
||||||
"get-public-link": "Obter link público",
|
"get-public-link": "Obter link público",
|
||||||
"account-summary": "Resumo da conta",
|
"account-summary": "Resumo da conta",
|
||||||
"account-summary-description": "Here's a summary of your group's information.",
|
"account-summary-description": "Aqui está um resumo das informações do seu grupo.",
|
||||||
"group-statistics": "Estatísticas do Grupo",
|
"group-statistics": "Estatísticas do Grupo",
|
||||||
"group-statistics-description": "Suas Estatísticas em Grupo fornecem algumas informações sobre como você está usando o Mealie.",
|
"group-statistics-description": "Suas Estatísticas em Grupo fornecem algumas informações sobre como você está usando o Mealie.",
|
||||||
"storage-capacity": "Capacidade de armazenamento",
|
"storage-capacity": "Capacidade de armazenamento",
|
||||||
"storage-capacity-description": "Sua capacidade de armazenamento é um cálculo das imagens e arquivos que você carregou.",
|
"storage-capacity-description": "Sua capacidade de armazenamento é um cálculo das imagens e arquivos que você carregou.",
|
||||||
"personal": "Pessoal",
|
"personal": "Pessoal",
|
||||||
"personal-description": "These are settings that are personal to you. Changes here won't affect other users.",
|
"personal-description": "Estas configurações são pessoais. Mudanças aqui não afetarão outros usuários.",
|
||||||
"user-settings": "Configurações de Usuário",
|
"user-settings": "Configurações de Usuário",
|
||||||
"user-settings-description": "Manage your preferences, change your password, and update your email.",
|
"user-settings-description": "Gerencie suas preferências, altere sua senha, e atualize seu e-mail.",
|
||||||
"api-tokens-description": "Manage your API Tokens for access from external applications.",
|
"api-tokens-description": "Gerencie seus Tokens de API para acessar de aplicações externas.",
|
||||||
"group-description": "Esses itens são compartilhados dentro do seu grupo. Ao editar um deles vai mudá-lo para todo o grupo!",
|
"group-description": "Esses itens são compartilhados dentro do seu grupo. Ao editar um deles vai mudá-lo para todo o grupo!",
|
||||||
"group-settings": "Configurações do Grupo",
|
"group-settings": "Configurações do Grupo",
|
||||||
"group-settings-description": "Gerencie suas configurações comuns de grupo como a refeição e as configurações de privacidade.",
|
"group-settings-description": "Gerencie suas configurações comuns de grupo como a refeição e as configurações de privacidade.",
|
||||||
@@ -1222,9 +1229,9 @@
|
|||||||
"notifiers": "Notificadores",
|
"notifiers": "Notificadores",
|
||||||
"notifiers-description": "Configure e-mails e notificações push que desencadeiam eventos específicos.",
|
"notifiers-description": "Configure e-mails e notificações push que desencadeiam eventos específicos.",
|
||||||
"manage-data": "Gerenciar dados",
|
"manage-data": "Gerenciar dados",
|
||||||
"manage-data-description": "Manage your Mealie data; Foods, Units, Categories, Tags and more.",
|
"manage-data-description": "Gerencie seus dados do Mealie; Comidas, Unidades, Categorias, Tags e mais.",
|
||||||
"data-migrations": "Migrações de dados",
|
"data-migrations": "Migrações de dados",
|
||||||
"data-migrations-description": "Migrate your existing data from other applications like Nextcloud Recipes and Chowdown.",
|
"data-migrations-description": "Migre seus dados existentes de outras aplicações, como Nextcloud Recipes e Chowdown.",
|
||||||
"email-sent": "E-mail enviado",
|
"email-sent": "E-mail enviado",
|
||||||
"error-sending-email": "Erro enviando email",
|
"error-sending-email": "Erro enviando email",
|
||||||
"personal-information": "Informações pessoais",
|
"personal-information": "Informações pessoais",
|
||||||
@@ -1252,7 +1259,7 @@
|
|||||||
"require-all-tools": "Exigir todas as ferramentas",
|
"require-all-tools": "Exigir todas as ferramentas",
|
||||||
"cookbook-name": "Nome do Livro de Receitas",
|
"cookbook-name": "Nome do Livro de Receitas",
|
||||||
"cookbook-with-name": "Livro de Receitas {0}",
|
"cookbook-with-name": "Livro de Receitas {0}",
|
||||||
"create-a-cookbook": "Create a Cookbook",
|
"create-a-cookbook": "Criar um Livro de Receitas",
|
||||||
"cookbook": "Cookbook"
|
"cookbook": "Livro de Receitas"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Plano de Refeições atualizado",
|
"mealplan-updated": "Plano de Refeições atualizado",
|
||||||
"no-meal-plan-defined-yet": "Nenhum plano de refeições definido",
|
"no-meal-plan-defined-yet": "Nenhum plano de refeições definido",
|
||||||
"no-meal-planned-for-today": "Nenhum plano de refeições definido para hoje",
|
"no-meal-planned-for-today": "Nenhum plano de refeições definido para hoje",
|
||||||
|
"numberOfDays-hint": "Número de dias no carregamento da página",
|
||||||
|
"numberOfDays-label": "Dias predefinidos",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Só serão usadas receitas com estas categorias nos Planos de Refeições",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Só serão usadas receitas com estas categorias nos Planos de Refeições",
|
||||||
"planner": "Planeador",
|
"planner": "Planeador",
|
||||||
"quick-week": "Semana Rápida",
|
"quick-week": "Semana Rápida",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "O Mealie pode importar receitas do My Recipe Box. Exporte as suas receitas em formato CSV e, em seguida, carregue o ficheiro .csv abaixo."
|
"description-long": "O Mealie pode importar receitas do My Recipe Box. Exporte as suas receitas em formato CSV e, em seguida, carregue o ficheiro .csv abaixo."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "O Mealie pode importar receitas do Recipe Keeper. Exporte as suas receitas em formato zip e, em seguida, carregue o ficheiro .zip abaixo."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -587,19 +593,19 @@
|
|||||||
"nextStep": "Próximo passo",
|
"nextStep": "Próximo passo",
|
||||||
"recipe-actions": "Ações da Receita",
|
"recipe-actions": "Ações da Receita",
|
||||||
"parser": {
|
"parser": {
|
||||||
"experimental-alert-text": "Mealie uses natural language processing to parse and create units and food items for your recipe ingredients. This feature is experimental and may not always work as expected. If you prefer not to use the parsed results, you can select 'Cancel' and your changes will not be saved.",
|
"experimental-alert-text": "O Mealie utiliza o processamento de linguagem natural para analisar e criar unidades e itens alimentares para os ingredientes da sua receita. Esta funcionalidade é experimental e pode nem sempre funcionar como esperado. Se preferir não utilizar os resultados analisados, pode selecionar “Cancelar” e as suas alterações não serão guardadas.",
|
||||||
"ingredient-parser": "Ingredient Parser",
|
"ingredient-parser": "Analisador de ingredientes",
|
||||||
"explanation": "To use the ingredient parser, click the 'Parse All' button to start the process. Once the processed ingredients are available, you can review the items and verify that they were parsed correctly. The model's confidence score is displayed on the right of the item title. This score is an average of all the individual scores and may not always be completely accurate.",
|
"explanation": "Para utilizar o analisador de ingredientes, clique no botão “Analisar tudo” para iniciar o processo. Quando os ingredientes processados estiverem disponíveis, pode rever os itens e verificar se foram analisados corretamente. A pontuação de confiança do modelo é apresentada à direita do título do item. Esta pontuação é uma média de todas as pontuações individuais e pode nem sempre ser completamente exata.",
|
||||||
"alerts-explainer": "Alerts will be displayed if a matching foods or unit is found but does not exists in the database.",
|
"alerts-explainer": "Serão apresentados alertas se for encontrado um alimento ou unidade correspondente, mas que não exista na base de dados.",
|
||||||
"select-parser": "Select Parser",
|
"select-parser": "Selecionar Analisador",
|
||||||
"natural-language-processor": "Natural Language Processor",
|
"natural-language-processor": "Processador de Linguagem Natural",
|
||||||
"brute-parser": "Brute Parser",
|
"brute-parser": "Analisador Bruto",
|
||||||
"openai-parser": "OpenAI Parser",
|
"openai-parser": "Analisador OpenAI",
|
||||||
"parse-all": "Parse All",
|
"parse-all": "Analisar tudo",
|
||||||
"no-unit": "No unit",
|
"no-unit": "Nenhuma unidade",
|
||||||
"missing-unit": "Create missing unit: {unit}",
|
"missing-unit": "Criar unidade em falta: {unit}",
|
||||||
"missing-food": "Create missing food: {food}",
|
"missing-food": "Criar ingrediente em falta: {food}",
|
||||||
"no-food": "No Food"
|
"no-food": "Nenhum Ingrediente"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Backup criado em {path}",
|
"backup-created-at-response-export_path": "Backup criado em {path}",
|
||||||
"backup-deleted": "Backup eliminado",
|
"backup-deleted": "Backup eliminado",
|
||||||
"restore-success": "Restauro bem-sucedido",
|
"restore-success": "Restauro bem-sucedido",
|
||||||
|
"restore-fail": "O restauro falhou. Verifique os registos do servidor para obter mais detalhes",
|
||||||
"backup-tag": "Cópia de segurança de Etiqueta",
|
"backup-tag": "Cópia de segurança de Etiqueta",
|
||||||
"create-heading": "Criar um Backup",
|
"create-heading": "Criar um Backup",
|
||||||
"delete-backup": "Eliminar Backup",
|
"delete-backup": "Eliminar Backup",
|
||||||
@@ -766,9 +773,9 @@
|
|||||||
"oidc-ready": "Suporta OICD",
|
"oidc-ready": "Suporta OICD",
|
||||||
"oidc-ready-error-text": "Nem todos os valores OICD estão configurados. Pode ignorar isto se não estiver a utilizar autenticação OICD.",
|
"oidc-ready-error-text": "Nem todos os valores OICD estão configurados. Pode ignorar isto se não estiver a utilizar autenticação OICD.",
|
||||||
"oidc-ready-success-text": "As variáveis OICD necessárias estão definidas.",
|
"oidc-ready-success-text": "As variáveis OICD necessárias estão definidas.",
|
||||||
"openai-ready": "OpenAI Ready",
|
"openai-ready": "Preparado para OpenAI",
|
||||||
"openai-ready-error-text": "Not all OpenAI Values are configured. This can be ignored if you are not using OpenAI features.",
|
"openai-ready-error-text": "Nem todos os valores OpenAI estão configurados. Isto pode ser ignorado se não estiver a utilizar as funcionalidades OpenAI.",
|
||||||
"openai-ready-success-text": "Required OpenAI variables are all set."
|
"openai-ready-success-text": "As variáveis OpenAI necessárias estão todas definidas."
|
||||||
},
|
},
|
||||||
"shopping-list": {
|
"shopping-list": {
|
||||||
"all-lists": "Todas as Listas",
|
"all-lists": "Todas as Listas",
|
||||||
@@ -782,7 +789,7 @@
|
|||||||
"food": "Alimentos",
|
"food": "Alimentos",
|
||||||
"note": "Nota",
|
"note": "Nota",
|
||||||
"label": "Rótulo",
|
"label": "Rótulo",
|
||||||
"save-label": "Save Label",
|
"save-label": "Guardar Rótulo",
|
||||||
"linked-item-warning": "Este item tem ligação a uma ou mais receitas. Ajustar as unidades ou alimentos irá produzir resultados inesperados quando adicionar ou remover a receita desta lista.",
|
"linked-item-warning": "Este item tem ligação a uma ou mais receitas. Ajustar as unidades ou alimentos irá produzir resultados inesperados quando adicionar ou remover a receita desta lista.",
|
||||||
"toggle-food": "Alternar Alimento",
|
"toggle-food": "Alternar Alimento",
|
||||||
"manage-labels": "Gerir Rótulos",
|
"manage-labels": "Gerir Rótulos",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Plan de mese actualizat",
|
"mealplan-updated": "Plan de mese actualizat",
|
||||||
"no-meal-plan-defined-yet": "Nici un plan de mese definit încă",
|
"no-meal-plan-defined-yet": "Nici un plan de mese definit încă",
|
||||||
"no-meal-planned-for-today": "Nicio masă planificată pentru astăzi",
|
"no-meal-planned-for-today": "Nicio masă planificată pentru astăzi",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Numai rețetele cu aceste categorii vor fi utilizate în Planurile de mese",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Numai rețetele cu aceste categorii vor fi utilizate în Planurile de mese",
|
||||||
"planner": "Planificator",
|
"planner": "Planificator",
|
||||||
"quick-week": "Săptămână rapidă",
|
"quick-week": "Săptămână rapidă",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "Cutia mea de rețete",
|
"title": "Cutia mea de rețete",
|
||||||
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Backup creat la {path}",
|
"backup-created-at-response-export_path": "Backup creat la {path}",
|
||||||
"backup-deleted": "Backup şters",
|
"backup-deleted": "Backup şters",
|
||||||
"restore-success": "Restaurare efectuată",
|
"restore-success": "Restaurare efectuată",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Backup la Tag-uri",
|
"backup-tag": "Backup la Tag-uri",
|
||||||
"create-heading": "Create a Backup",
|
"create-heading": "Create a Backup",
|
||||||
"delete-backup": "Șterge Backup",
|
"delete-backup": "Șterge Backup",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "План питания обновлен",
|
"mealplan-updated": "План питания обновлен",
|
||||||
"no-meal-plan-defined-yet": "План питания еще не определен",
|
"no-meal-plan-defined-yet": "План питания еще не определен",
|
||||||
"no-meal-planned-for-today": "На сегодня нет запланированных блюд",
|
"no-meal-planned-for-today": "На сегодня нет запланированных блюд",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Только рецепты с этими категориями будут использоваться в планах питания",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Только рецепты с этими категориями будут использоваться в планах питания",
|
||||||
"planner": "Планировщик",
|
"planner": "Планировщик",
|
||||||
"quick-week": "Быстрый план",
|
"quick-week": "Быстрый план",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Резервная копия создана в {path}",
|
"backup-created-at-response-export_path": "Резервная копия создана в {path}",
|
||||||
"backup-deleted": "Резервная копия удалена",
|
"backup-deleted": "Резервная копия удалена",
|
||||||
"restore-success": "Восстановление прошло успешно",
|
"restore-success": "Восстановление прошло успешно",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Тег резервной копии",
|
"backup-tag": "Тег резервной копии",
|
||||||
"create-heading": "Создать резервную копию",
|
"create-heading": "Создать резервную копию",
|
||||||
"delete-backup": "Удалить резервную копию",
|
"delete-backup": "Удалить резервную копию",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Jedálniček aktualizovaný",
|
"mealplan-updated": "Jedálniček aktualizovaný",
|
||||||
"no-meal-plan-defined-yet": "Nebol vytvorený žiadny jedálniček",
|
"no-meal-plan-defined-yet": "Nebol vytvorený žiadny jedálniček",
|
||||||
"no-meal-planned-for-today": "Pre dnešok žiadne jedlo v jedálničku",
|
"no-meal-planned-for-today": "Pre dnešok žiadne jedlo v jedálničku",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "V jedálničkoch budú použité iba recepty z nasledovných kategórií",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "V jedálničkoch budú použité iba recepty z nasledovných kategórií",
|
||||||
"planner": "Plánovač",
|
"planner": "Plánovač",
|
||||||
"quick-week": "Rýchly návrh týždňa",
|
"quick-week": "Rýchly návrh týždňa",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Záloha vytvorená v {path}",
|
"backup-created-at-response-export_path": "Záloha vytvorená v {path}",
|
||||||
"backup-deleted": "Záloha bola odstránená",
|
"backup-deleted": "Záloha bola odstránená",
|
||||||
"restore-success": "Obnovenie bolo úspešné",
|
"restore-success": "Obnovenie bolo úspešné",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Označenie zálohy",
|
"backup-tag": "Označenie zálohy",
|
||||||
"create-heading": "Vytvoriť zálohu",
|
"create-heading": "Vytvoriť zálohu",
|
||||||
"delete-backup": "Odstrániť zálohu",
|
"delete-backup": "Odstrániť zálohu",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Jedilnik je posodobljen",
|
"mealplan-updated": "Jedilnik je posodobljen",
|
||||||
"no-meal-plan-defined-yet": "Za danes ni definiranjega načrta obroka",
|
"no-meal-plan-defined-yet": "Za danes ni definiranjega načrta obroka",
|
||||||
"no-meal-planned-for-today": "Za danes ni planiranega načrta obroka",
|
"no-meal-planned-for-today": "Za danes ni planiranega načrta obroka",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Samo recepti v teh kategorija bodo uporabljeni v načrtu obroka",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Samo recepti v teh kategorija bodo uporabljeni v načrtu obroka",
|
||||||
"planner": "Načrtovalec",
|
"planner": "Načrtovalec",
|
||||||
"quick-week": "Hiter pogled tedna",
|
"quick-week": "Hiter pogled tedna",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie lahko uvozi recepte iz aplikacije My Recipe Box. Izvozi recepte v CSV formatu, nato pa .csv datoteko naloži spodaj."
|
"description-long": "Mealie lahko uvozi recepte iz aplikacije My Recipe Box. Izvozi recepte v CSV formatu, nato pa .csv datoteko naloži spodaj."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Varnostna kopija ustvarjena v {path}",
|
"backup-created-at-response-export_path": "Varnostna kopija ustvarjena v {path}",
|
||||||
"backup-deleted": "Varnostna kopija je izbrisana",
|
"backup-deleted": "Varnostna kopija je izbrisana",
|
||||||
"restore-success": "Obnovitev uspešna",
|
"restore-success": "Obnovitev uspešna",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Oznaka varnostne kopije",
|
"backup-tag": "Oznaka varnostne kopije",
|
||||||
"create-heading": "Izdelaj varnostno kopijo",
|
"create-heading": "Izdelaj varnostno kopijo",
|
||||||
"delete-backup": "Izbriši varnostno kopijo",
|
"delete-backup": "Izbriši varnostno kopijo",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Јеловник је ажуриран",
|
"mealplan-updated": "Јеловник је ажуриран",
|
||||||
"no-meal-plan-defined-yet": "No meal plan defined yet",
|
"no-meal-plan-defined-yet": "No meal plan defined yet",
|
||||||
"no-meal-planned-for-today": "No meal planned for today",
|
"no-meal-planned-for-today": "No meal planned for today",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Само рецепти са овим категоријама ће бити коришћени у јеловницима",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Само рецепти са овим категоријама ће бити коришћени у јеловницима",
|
||||||
"planner": "Планер",
|
"planner": "Планер",
|
||||||
"quick-week": "Quick Week",
|
"quick-week": "Quick Week",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Резервна копија је креирана на {path}",
|
"backup-created-at-response-export_path": "Резервна копија је креирана на {path}",
|
||||||
"backup-deleted": "Backup deleted",
|
"backup-deleted": "Backup deleted",
|
||||||
"restore-success": "Restore successful",
|
"restore-success": "Restore successful",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Backup Tag",
|
"backup-tag": "Backup Tag",
|
||||||
"create-heading": "Create a Backup",
|
"create-heading": "Create a Backup",
|
||||||
"delete-backup": "Delete Backup",
|
"delete-backup": "Delete Backup",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Måltidsplan uppdaterad",
|
"mealplan-updated": "Måltidsplan uppdaterad",
|
||||||
"no-meal-plan-defined-yet": "Ingen måltidsplan definierad ännu",
|
"no-meal-plan-defined-yet": "Ingen måltidsplan definierad ännu",
|
||||||
"no-meal-planned-for-today": "Ingen måltidsplan för idag",
|
"no-meal-planned-for-today": "Ingen måltidsplan för idag",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Endast recept med dessa kategorier kommer att användas i måltidsplaner",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Endast recept med dessa kategorier kommer att användas i måltidsplaner",
|
||||||
"planner": "Planeringkalender",
|
"planner": "Planeringkalender",
|
||||||
"quick-week": "Snabb vecka",
|
"quick-week": "Snabb vecka",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "Min receptlåda",
|
"title": "Min receptlåda",
|
||||||
"description-long": "Mealie kan importera recept från appen 'My Recipe Box'. Exportera dina recept i CSV format, och sen ladda upp .csv filen nedan."
|
"description-long": "Mealie kan importera recept från appen 'My Recipe Box'. Exportera dina recept i CSV format, och sen ladda upp .csv filen nedan."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Backup skapad {path}",
|
"backup-created-at-response-export_path": "Backup skapad {path}",
|
||||||
"backup-deleted": "Backup raderad",
|
"backup-deleted": "Backup raderad",
|
||||||
"restore-success": "Återställning slutförd",
|
"restore-success": "Återställning slutförd",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Backup tagg",
|
"backup-tag": "Backup tagg",
|
||||||
"create-heading": "Skapa en säkerhetskopia",
|
"create-heading": "Skapa en säkerhetskopia",
|
||||||
"delete-backup": "Ta bort säkerhetskopian",
|
"delete-backup": "Ta bort säkerhetskopian",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Öğün planı güncellendi",
|
"mealplan-updated": "Öğün planı güncellendi",
|
||||||
"no-meal-plan-defined-yet": "Henüz bir öğün planı tanımlanmadı",
|
"no-meal-plan-defined-yet": "Henüz bir öğün planı tanımlanmadı",
|
||||||
"no-meal-planned-for-today": "Bugün için öğün planı tanımlanmadı",
|
"no-meal-planned-for-today": "Bugün için öğün planı tanımlanmadı",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Sadece bu kategorilerdeki tarifler öğün planlarında kullanılacak",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Sadece bu kategorilerdeki tarifler öğün planlarında kullanılacak",
|
||||||
"planner": "Planlayıcı",
|
"planner": "Planlayıcı",
|
||||||
"quick-week": "Hızlı Hafta",
|
"quick-week": "Hızlı Hafta",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "Tarife Kutum",
|
"title": "Tarife Kutum",
|
||||||
"description-long": "Mealie Tarife Kutum'dan tarifleri içe aktarabilir. Tariflerinizi CSV formatında dışa aktarın, ardından .csv dosyasını aşağıya yükleyin."
|
"description-long": "Mealie Tarife Kutum'dan tarifleri içe aktarabilir. Tariflerinizi CSV formatında dışa aktarın, ardından .csv dosyasını aşağıya yükleyin."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Backup Created at {path}",
|
"backup-created-at-response-export_path": "Backup Created at {path}",
|
||||||
"backup-deleted": "Yedekleme silindi",
|
"backup-deleted": "Yedekleme silindi",
|
||||||
"restore-success": "Geri yükleme başarılı",
|
"restore-success": "Geri yükleme başarılı",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Yedek Etiketi",
|
"backup-tag": "Yedek Etiketi",
|
||||||
"create-heading": "Create a Backup",
|
"create-heading": "Create a Backup",
|
||||||
"delete-backup": "Yedeği Sil",
|
"delete-backup": "Yedeği Sil",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "План харчування оновлено",
|
"mealplan-updated": "План харчування оновлено",
|
||||||
"no-meal-plan-defined-yet": "Не створено жодного плану харчування",
|
"no-meal-plan-defined-yet": "Не створено жодного плану харчування",
|
||||||
"no-meal-planned-for-today": "Не заплановано харчування на сьогодні",
|
"no-meal-planned-for-today": "Не заплановано харчування на сьогодні",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Лише рецепти з цими категоріями будуть використані в планах харчування",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Лише рецепти з цими категоріями будуть використані в планах харчування",
|
||||||
"planner": "Планувальник",
|
"planner": "Планувальник",
|
||||||
"quick-week": "Швидкий тиждень",
|
"quick-week": "Швидкий тиждень",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie може імпортувати рецепти з My Recipe Box. Експортуйте ваші рецепти в форматі CSV, а потім відвантажте .csv файл нижче."
|
"description-long": "Mealie може імпортувати рецепти з My Recipe Box. Експортуйте ваші рецепти в форматі CSV, а потім відвантажте .csv файл нижче."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -594,7 +600,7 @@
|
|||||||
"select-parser": "Вибрати аналізатор",
|
"select-parser": "Вибрати аналізатор",
|
||||||
"natural-language-processor": "Аналізатор природної мови",
|
"natural-language-processor": "Аналізатор природної мови",
|
||||||
"brute-parser": "Простий аналізатор",
|
"brute-parser": "Простий аналізатор",
|
||||||
"openai-parser": "OpenAI Parser",
|
"openai-parser": "OpenAI аналізатор",
|
||||||
"parse-all": "Аналізувати все",
|
"parse-all": "Аналізувати все",
|
||||||
"no-unit": "Без одиниці",
|
"no-unit": "Без одиниці",
|
||||||
"missing-unit": "Створити відсутню одиниці: {unit}",
|
"missing-unit": "Створити відсутню одиниці: {unit}",
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Резервна копія створена {path}",
|
"backup-created-at-response-export_path": "Резервна копія створена {path}",
|
||||||
"backup-deleted": "Резервна копія видалена",
|
"backup-deleted": "Резервна копія видалена",
|
||||||
"restore-success": "Відновлення успішне",
|
"restore-success": "Відновлення успішне",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Мітка резервної копії",
|
"backup-tag": "Мітка резервної копії",
|
||||||
"create-heading": "Створити резервну копію",
|
"create-heading": "Створити резервну копію",
|
||||||
"delete-backup": "Видалити резервну копію",
|
"delete-backup": "Видалити резервну копію",
|
||||||
@@ -766,9 +773,9 @@
|
|||||||
"oidc-ready": "OIDC готово",
|
"oidc-ready": "OIDC готово",
|
||||||
"oidc-ready-error-text": "Не всі значення OIDC налаштовано. Це можна ігнорувати, якщо ви не використовуєте авторизацію OIDC.",
|
"oidc-ready-error-text": "Не всі значення OIDC налаштовано. Це можна ігнорувати, якщо ви не використовуєте авторизацію OIDC.",
|
||||||
"oidc-ready-success-text": "Всі необхідні змінні OIDC встановлені.",
|
"oidc-ready-success-text": "Всі необхідні змінні OIDC встановлені.",
|
||||||
"openai-ready": "OpenAI Ready",
|
"openai-ready": "OpenAI готовий",
|
||||||
"openai-ready-error-text": "Not all OpenAI Values are configured. This can be ignored if you are not using OpenAI features.",
|
"openai-ready-error-text": "Не всі значення OpenAI налаштовано. Це можна ігнорувати, якщо ви не використовуєте функції OpenAI.",
|
||||||
"openai-ready-success-text": "Required OpenAI variables are all set."
|
"openai-ready-success-text": "Всі необхідні змінні OpenAI встановлені."
|
||||||
},
|
},
|
||||||
"shopping-list": {
|
"shopping-list": {
|
||||||
"all-lists": "Всі списки",
|
"all-lists": "Всі списки",
|
||||||
@@ -782,7 +789,7 @@
|
|||||||
"food": "Продукт",
|
"food": "Продукт",
|
||||||
"note": "Нотатка",
|
"note": "Нотатка",
|
||||||
"label": "Етикетка",
|
"label": "Етикетка",
|
||||||
"save-label": "Save Label",
|
"save-label": "Зберегти мітку",
|
||||||
"linked-item-warning": "Цей предмет зв'язано з одним або більше рецептами. Зміна одиниць виміру або продуктів дасть неочікувані результати при додаванні або видаленні рецепту з цього списку.",
|
"linked-item-warning": "Цей предмет зв'язано з одним або більше рецептами. Зміна одиниць виміру або продуктів дасть неочікувані результати при додаванні або видаленні рецепту з цього списку.",
|
||||||
"toggle-food": "Перемкнути продукт",
|
"toggle-food": "Перемкнути продукт",
|
||||||
"manage-labels": "Керування етикетками",
|
"manage-labels": "Керування етикетками",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "Mealplan Updated",
|
"mealplan-updated": "Mealplan Updated",
|
||||||
"no-meal-plan-defined-yet": "No meal plan defined yet",
|
"no-meal-plan-defined-yet": "No meal plan defined yet",
|
||||||
"no-meal-planned-for-today": "No meal planned for today",
|
"no-meal-planned-for-today": "No meal planned for today",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "Only recipes with these categories will be used in Meal Plans",
|
||||||
"planner": "Planner",
|
"planner": "Planner",
|
||||||
"quick-week": "Quick Week",
|
"quick-week": "Quick Week",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "Backup Created at {path}",
|
"backup-created-at-response-export_path": "Backup Created at {path}",
|
||||||
"backup-deleted": "Backup deleted",
|
"backup-deleted": "Backup deleted",
|
||||||
"restore-success": "Restore successful",
|
"restore-success": "Restore successful",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "Backup Tag",
|
"backup-tag": "Backup Tag",
|
||||||
"create-heading": "Create a Backup",
|
"create-heading": "Create a Backup",
|
||||||
"delete-backup": "Delete Backup",
|
"delete-backup": "Delete Backup",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "已更新饮食计划",
|
"mealplan-updated": "已更新饮食计划",
|
||||||
"no-meal-plan-defined-yet": "还没有制定饮食计划",
|
"no-meal-plan-defined-yet": "还没有制定饮食计划",
|
||||||
"no-meal-planned-for-today": "今日没有饮食计划",
|
"no-meal-planned-for-today": "今日没有饮食计划",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "只有属于这些分类的食谱才会被用于饮食计划",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "只有属于这些分类的食谱才会被用于饮食计划",
|
||||||
"planner": "计划人",
|
"planner": "计划人",
|
||||||
"quick-week": "快速创建周食谱计划",
|
"quick-week": "快速创建周食谱计划",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie可以从“My Recipe Box\"导入食谱。把你的食谱导出为CSV模式,然后在下面上传.csv文件。"
|
"description-long": "Mealie可以从“My Recipe Box\"导入食谱。把你的食谱导出为CSV模式,然后在下面上传.csv文件。"
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "备份创建于 {path}",
|
"backup-created-at-response-export_path": "备份创建于 {path}",
|
||||||
"backup-deleted": "备份已删除",
|
"backup-deleted": "备份已删除",
|
||||||
"restore-success": "还原成功",
|
"restore-success": "还原成功",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "标签备份",
|
"backup-tag": "标签备份",
|
||||||
"create-heading": "创建备份",
|
"create-heading": "创建备份",
|
||||||
"delete-backup": "删除备份",
|
"delete-backup": "删除备份",
|
||||||
|
|||||||
@@ -291,6 +291,8 @@
|
|||||||
"mealplan-updated": "用餐計劃已更新",
|
"mealplan-updated": "用餐計劃已更新",
|
||||||
"no-meal-plan-defined-yet": "目前無用餐計畫",
|
"no-meal-plan-defined-yet": "目前無用餐計畫",
|
||||||
"no-meal-planned-for-today": "本日無用餐計畫",
|
"no-meal-planned-for-today": "本日無用餐計畫",
|
||||||
|
"numberOfDays-hint": "Number of days on page load",
|
||||||
|
"numberOfDays-label": "Default Days",
|
||||||
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "只有屬於這些類別的食譜會被用於用餐計畫",
|
"only-recipes-with-these-categories-will-be-used-in-meal-plans": "只有屬於這些類別的食譜會被用於用餐計畫",
|
||||||
"planner": "規劃師",
|
"planner": "規劃師",
|
||||||
"quick-week": "快速規劃",
|
"quick-week": "快速規劃",
|
||||||
@@ -377,6 +379,10 @@
|
|||||||
"myrecipebox": {
|
"myrecipebox": {
|
||||||
"title": "My Recipe Box",
|
"title": "My Recipe Box",
|
||||||
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
"description-long": "Mealie can import recipes from My Recipe Box. Export your recipes in CSV format, then upload the .csv file below."
|
||||||
|
},
|
||||||
|
"recipekeeper": {
|
||||||
|
"title": "Recipe Keeper",
|
||||||
|
"description-long": "Mealie can import recipes from Recipe Keeper. Export your recipes in zip format, then upload the .zip file below."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"new-recipe": {
|
"new-recipe": {
|
||||||
@@ -629,6 +635,7 @@
|
|||||||
"backup-created-at-response-export_path": "已備份於:{path}",
|
"backup-created-at-response-export_path": "已備份於:{path}",
|
||||||
"backup-deleted": "備份已刪除",
|
"backup-deleted": "備份已刪除",
|
||||||
"restore-success": "Restore successful",
|
"restore-success": "Restore successful",
|
||||||
|
"restore-fail": "Restore failed. Check your server logs for more details",
|
||||||
"backup-tag": "備份標籤",
|
"backup-tag": "備份標籤",
|
||||||
"create-heading": "創建備份",
|
"create-heading": "創建備份",
|
||||||
"delete-backup": "刪除備份",
|
"delete-backup": "刪除備份",
|
||||||
|
|||||||
@@ -16,7 +16,8 @@ export type SupportedMigrations =
|
|||||||
| "paprika"
|
| "paprika"
|
||||||
| "mealie_alpha"
|
| "mealie_alpha"
|
||||||
| "tandoor"
|
| "tandoor"
|
||||||
| "plantoeat";
|
| "plantoeat"
|
||||||
|
| "recipekeeper";
|
||||||
|
|
||||||
export interface CreateGroupPreferences {
|
export interface CreateGroupPreferences {
|
||||||
privateGroup?: boolean;
|
privateGroup?: boolean;
|
||||||
|
|||||||
@@ -162,6 +162,8 @@ export default defineComponent({
|
|||||||
if (error) {
|
if (error) {
|
||||||
console.log(error);
|
console.log(error);
|
||||||
state.importDialog = false;
|
state.importDialog = false;
|
||||||
|
state.runningRestore = false;
|
||||||
|
alert.error(i18n.tc("settings.backup.restore-fail"));
|
||||||
} else {
|
} else {
|
||||||
alert.success(i18n.tc("settings.backup.restore-success"));
|
alert.success(i18n.tc("settings.backup.restore-success"));
|
||||||
$auth.logout();
|
$auth.logout();
|
||||||
|
|||||||
@@ -54,44 +54,44 @@ export default defineComponent({
|
|||||||
|
|
||||||
const DATA_TYPE_OPTIONS = computed(() => [
|
const DATA_TYPE_OPTIONS = computed(() => [
|
||||||
{
|
{
|
||||||
text: i18n.t("general.recipes"),
|
text: i18n.tc("general.recipes"),
|
||||||
value: "new",
|
value: "new",
|
||||||
to: "/group/data/recipes",
|
to: "/group/data/recipes",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: i18n.t("recipe.recipe-actions"),
|
text: i18n.tc("recipe.recipe-actions"),
|
||||||
value: "new",
|
value: "new",
|
||||||
to: "/group/data/recipe-actions",
|
to: "/group/data/recipe-actions",
|
||||||
divider: true,
|
divider: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: i18n.t("general.foods"),
|
text: i18n.tc("general.foods"),
|
||||||
value: "url",
|
value: "url",
|
||||||
to: "/group/data/foods",
|
to: "/group/data/foods",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: i18n.t("general.units"),
|
text: i18n.tc("general.units"),
|
||||||
value: "new",
|
value: "new",
|
||||||
to: "/group/data/units",
|
to: "/group/data/units",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: i18n.t("data-pages.labels.labels"),
|
text: i18n.tc("data-pages.labels.labels"),
|
||||||
value: "new",
|
value: "new",
|
||||||
to: "/group/data/labels",
|
to: "/group/data/labels",
|
||||||
divider: true,
|
divider: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: i18n.t("category.categories"),
|
text: i18n.tc("category.categories"),
|
||||||
value: "new",
|
value: "new",
|
||||||
to: "/group/data/categories",
|
to: "/group/data/categories",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: i18n.t("tag.tags"),
|
text: i18n.tc("tag.tags"),
|
||||||
value: "new",
|
value: "new",
|
||||||
to: "/group/data/tags",
|
to: "/group/data/tags",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: i18n.t("tool.tools"),
|
text: i18n.tc("tool.tools"),
|
||||||
value: "new",
|
value: "new",
|
||||||
to: "/group/data/tools",
|
to: "/group/data/tools",
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,13 @@
|
|||||||
:first-day-of-week="firstDayOfWeek"
|
:first-day-of-week="firstDayOfWeek"
|
||||||
:local="$i18n.locale"
|
:local="$i18n.locale"
|
||||||
>
|
>
|
||||||
|
<v-text-field
|
||||||
|
v-model="numberOfDays"
|
||||||
|
type="number"
|
||||||
|
:label="$t('meal-plan.numberOfDays-label')"
|
||||||
|
:hint="$t('meal-plan.numberOfDays-hint')"
|
||||||
|
persistent-hint
|
||||||
|
/>
|
||||||
<v-spacer></v-spacer>
|
<v-spacer></v-spacer>
|
||||||
<v-btn text color="primary" @click="state.picker = false">
|
<v-btn text color="primary" @click="state.picker = false">
|
||||||
{{ $t("general.ok") }}
|
{{ $t("general.ok") }}
|
||||||
@@ -47,10 +54,11 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { computed, defineComponent, ref, useRoute, useRouter } from "@nuxtjs/composition-api";
|
import { computed, defineComponent, ref, useRoute, useRouter, watch } from "@nuxtjs/composition-api";
|
||||||
import { isSameDay, addDays, parseISO } from "date-fns";
|
import { isSameDay, addDays, parseISO } from "date-fns";
|
||||||
import { useGroupSelf } from "~/composables/use-groups";
|
import { useGroupSelf } from "~/composables/use-groups";
|
||||||
import { useMealplans } from "~/composables/use-group-mealplan";
|
import { useMealplans } from "~/composables/use-group-mealplan";
|
||||||
|
import { useUserMealPlanPreferences } from "~/composables/use-users/preferences";
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
middleware: ["auth"],
|
middleware: ["auth"],
|
||||||
@@ -59,6 +67,12 @@ export default defineComponent({
|
|||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { group } = useGroupSelf();
|
const { group } = useGroupSelf();
|
||||||
|
|
||||||
|
const mealPlanPreferences = useUserMealPlanPreferences();
|
||||||
|
const numberOfDays = ref<number>(mealPlanPreferences.value.numberOfDays || 7);
|
||||||
|
watch(numberOfDays, (val) => {
|
||||||
|
mealPlanPreferences.value.numberOfDays = Number(val);
|
||||||
|
});
|
||||||
|
|
||||||
// Force to /view if current route is /planner
|
// Force to /view if current route is /planner
|
||||||
if (route.value.path === "/group/mealplan/planner") {
|
if (route.value.path === "/group/mealplan/planner") {
|
||||||
router.push("/group/mealplan/planner/view");
|
router.push("/group/mealplan/planner/view");
|
||||||
@@ -74,18 +88,16 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
|
|
||||||
const state = ref({
|
const state = ref({
|
||||||
range: [fmtYYYYMMDD(new Date()), fmtYYYYMMDD(addDays(new Date(), 6))] as [string, string],
|
range: [fmtYYYYMMDD(new Date()), fmtYYYYMMDD(addDays(new Date(), adjustForToday(numberOfDays.value)))] as [string, string],
|
||||||
start: new Date(),
|
start: new Date(),
|
||||||
picker: false,
|
picker: false,
|
||||||
end: addDays(new Date(), 6),
|
end: addDays(new Date(), adjustForToday(numberOfDays.value)),
|
||||||
});
|
});
|
||||||
|
|
||||||
const firstDayOfWeek = computed(() => {
|
const firstDayOfWeek = computed(() => {
|
||||||
return group.value?.preferences?.firstDayOfWeek || 0;
|
return group.value?.preferences?.firstDayOfWeek || 0;
|
||||||
});
|
});
|
||||||
|
|
||||||
const recipeSearchTerm = ref("");
|
|
||||||
|
|
||||||
const weekRange = computed(() => {
|
const weekRange = computed(() => {
|
||||||
const sorted = state.value.range.sort((a, b) => {
|
const sorted = state.value.range.sort((a, b) => {
|
||||||
return parseYYYYMMDD(a).getTime() - parseYYYYMMDD(b).getTime();
|
return parseYYYYMMDD(a).getTime() - parseYYYYMMDD(b).getTime();
|
||||||
@@ -99,7 +111,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
start: new Date(),
|
start: new Date(),
|
||||||
end: addDays(new Date(), 6),
|
end: addDays(new Date(), adjustForToday(numberOfDays.value)),
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -113,6 +125,12 @@ export default defineComponent({
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function adjustForToday(days: number) {
|
||||||
|
// The use case for this function is "how many days are we adding to 'today'?"
|
||||||
|
// e.g. If the user wants 7 days, we substract one to do "today + 6"
|
||||||
|
return days > 0 ? days - 1 : days + 1
|
||||||
|
}
|
||||||
|
|
||||||
const days = computed(() => {
|
const days = computed(() => {
|
||||||
const numDays =
|
const numDays =
|
||||||
Math.floor((weekRange.value.end.getTime() - weekRange.value.start.getTime()) / (1000 * 60 * 60 * 24)) + 1;
|
Math.floor((weekRange.value.end.getTime() - weekRange.value.start.getTime()) / (1000 * 60 * 60 * 24)) + 1;
|
||||||
@@ -141,7 +159,7 @@ export default defineComponent({
|
|||||||
mealsByDate,
|
mealsByDate,
|
||||||
weekRange,
|
weekRange,
|
||||||
firstDayOfWeek,
|
firstDayOfWeek,
|
||||||
recipeSearchTerm,
|
numberOfDays,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
head() {
|
head() {
|
||||||
|
|||||||
@@ -82,6 +82,7 @@ const MIGRATIONS = {
|
|||||||
nextcloud: "nextcloud",
|
nextcloud: "nextcloud",
|
||||||
paprika: "paprika",
|
paprika: "paprika",
|
||||||
plantoeat: "plantoeat",
|
plantoeat: "plantoeat",
|
||||||
|
recipekeeper: "recipekeeper",
|
||||||
tandoor: "tandoor",
|
tandoor: "tandoor",
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -135,6 +136,10 @@ export default defineComponent({
|
|||||||
text: i18n.tc("migration.tandoor.title"),
|
text: i18n.tc("migration.tandoor.title"),
|
||||||
value: MIGRATIONS.tandoor,
|
value: MIGRATIONS.tandoor,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
text: i18n.tc("migration.recipekeeper.title"),
|
||||||
|
value: MIGRATIONS.recipekeeper,
|
||||||
|
},
|
||||||
];
|
];
|
||||||
const _content = {
|
const _content = {
|
||||||
[MIGRATIONS.mealie]: {
|
[MIGRATIONS.mealie]: {
|
||||||
@@ -347,6 +352,26 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
[MIGRATIONS.recipekeeper]: {
|
||||||
|
text: i18n.tc("migration.recipekeeper.description-long"),
|
||||||
|
acceptedFileType: ".zip",
|
||||||
|
tree: [
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
icon: $globals.icons.zip,
|
||||||
|
name: "recipekeeperhtml.zip",
|
||||||
|
children: [
|
||||||
|
{ id: 2, name: "recipes.html", icon: $globals.icons.codeJson },
|
||||||
|
{ id: 3, name: "images", icon: $globals.icons.folderOutline,
|
||||||
|
children: [
|
||||||
|
{ id: 4, name: "image1.jpeg", icon: $globals.icons.fileImage },
|
||||||
|
{ id: 5, name: "image2.jpeg", icon: $globals.icons.fileImage },
|
||||||
|
]
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
function setFileObject(fileObject: File) {
|
function setFileObject(fileObject: File) {
|
||||||
|
|||||||
@@ -57,6 +57,8 @@ class AppSettings(BaseSettings):
|
|||||||
|
|
||||||
ALLOW_SIGNUP: bool = False
|
ALLOW_SIGNUP: bool = False
|
||||||
|
|
||||||
|
DAILY_SCHEDULE_TIME: str = "23:45"
|
||||||
|
|
||||||
# ===============================================
|
# ===============================================
|
||||||
# Security Configuration
|
# Security Configuration
|
||||||
|
|
||||||
@@ -199,7 +201,11 @@ class AppSettings(BaseSettings):
|
|||||||
def OIDC_READY(self) -> bool:
|
def OIDC_READY(self) -> bool:
|
||||||
"""Validates OIDC settings are all set"""
|
"""Validates OIDC settings are all set"""
|
||||||
|
|
||||||
required = {self.OIDC_CLIENT_ID, self.OIDC_CONFIGURATION_URL, self.OIDC_USER_CLAIM}
|
required = {
|
||||||
|
self.OIDC_CLIENT_ID,
|
||||||
|
self.OIDC_CONFIGURATION_URL,
|
||||||
|
self.OIDC_USER_CLAIM,
|
||||||
|
}
|
||||||
not_none = None not in required
|
not_none = None not in required
|
||||||
valid_group_claim = True
|
valid_group_claim = True
|
||||||
if (not self.OIDC_USER_GROUP or not self.OIDC_ADMIN_GROUP) and not self.OIDC_GROUPS_CLAIM:
|
if (not self.OIDC_USER_GROUP or not self.OIDC_ADMIN_GROUP) and not self.OIDC_GROUPS_CLAIM:
|
||||||
@@ -236,7 +242,7 @@ class AppSettings(BaseSettings):
|
|||||||
# Testing Config
|
# Testing Config
|
||||||
|
|
||||||
TESTING: bool = False
|
TESTING: bool = False
|
||||||
model_config = SettingsConfigDict(arbitrary_types_allowed=True, extra="allow")
|
model_config = SettingsConfigDict(arbitrary_types_allowed=True, extra="allow", secrets_dir="/run/secrets")
|
||||||
|
|
||||||
|
|
||||||
def app_settings_constructor(data_dir: Path, production: bool, env_file: Path, env_encoding="utf-8") -> AppSettings:
|
def app_settings_constructor(data_dir: Path, production: bool, env_file: Path, env_encoding="utf-8") -> AppSettings:
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
|
from contextvars import ContextVar
|
||||||
|
from datetime import datetime
|
||||||
from typing import TYPE_CHECKING, Optional
|
from typing import TYPE_CHECKING, Optional
|
||||||
|
|
||||||
from pydantic import ConfigDict
|
from pydantic import ConfigDict
|
||||||
from sqlalchemy import Boolean, Float, ForeignKey, Integer, String, UniqueConstraint, orm
|
from sqlalchemy import Boolean, Float, ForeignKey, Integer, String, UniqueConstraint, event, orm
|
||||||
from sqlalchemy.ext.orderinglist import ordering_list
|
from sqlalchemy.ext.orderinglist import ordering_list
|
||||||
from sqlalchemy.orm import Mapped, mapped_column
|
from sqlalchemy.orm import Mapped, mapped_column
|
||||||
|
|
||||||
@@ -150,3 +152,60 @@ class ShoppingList(SqlAlchemyBase, BaseMixins):
|
|||||||
@auto_init()
|
@auto_init()
|
||||||
def __init__(self, **_) -> None:
|
def __init__(self, **_) -> None:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class SessionBuffer:
|
||||||
|
def __init__(self) -> None:
|
||||||
|
self.shopping_list_ids: set[GUID] = set()
|
||||||
|
|
||||||
|
def add(self, shopping_list_id: GUID) -> None:
|
||||||
|
self.shopping_list_ids.add(shopping_list_id)
|
||||||
|
|
||||||
|
def pop(self) -> GUID | None:
|
||||||
|
try:
|
||||||
|
return self.shopping_list_ids.pop()
|
||||||
|
except KeyError:
|
||||||
|
return None
|
||||||
|
|
||||||
|
def clear(self) -> None:
|
||||||
|
self.shopping_list_ids.clear()
|
||||||
|
|
||||||
|
|
||||||
|
session_buffer_context = ContextVar("session_buffer", default=SessionBuffer())
|
||||||
|
|
||||||
|
|
||||||
|
@event.listens_for(ShoppingListItem, "after_insert")
|
||||||
|
@event.listens_for(ShoppingListItem, "after_update")
|
||||||
|
@event.listens_for(ShoppingListItem, "after_delete")
|
||||||
|
def buffer_shopping_list_updates(_, connection, target: ShoppingListItem):
|
||||||
|
"""Adds the shopping list id to the session buffer so its `update_at` property can be updated later"""
|
||||||
|
|
||||||
|
session_buffer = session_buffer_context.get()
|
||||||
|
session_buffer.add(target.shopping_list_id)
|
||||||
|
|
||||||
|
|
||||||
|
@event.listens_for(orm.Session, "after_flush")
|
||||||
|
def update_shopping_lists(session: orm.Session, _):
|
||||||
|
"""Pulls all pending shopping list updates from the buffer and updates their `update_at` property"""
|
||||||
|
|
||||||
|
session_buffer = session_buffer_context.get()
|
||||||
|
if not session_buffer.shopping_list_ids:
|
||||||
|
return
|
||||||
|
|
||||||
|
local_session = orm.Session(bind=session.connection())
|
||||||
|
try:
|
||||||
|
local_session.begin()
|
||||||
|
while True:
|
||||||
|
shopping_list_id = session_buffer.pop()
|
||||||
|
if not shopping_list_id:
|
||||||
|
break
|
||||||
|
|
||||||
|
shopping_list = local_session.query(ShoppingList).filter(ShoppingList.id == shopping_list_id).first()
|
||||||
|
if not shopping_list:
|
||||||
|
continue
|
||||||
|
|
||||||
|
shopping_list.update_at = datetime.now()
|
||||||
|
local_session.commit()
|
||||||
|
except Exception:
|
||||||
|
local_session.rollback()
|
||||||
|
raise
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
"recipe": {
|
"recipe": {
|
||||||
"unique-name-error": "Opskriftsnavnet er allerede i brug",
|
"unique-name-error": "Opskriftsnavnet er allerede i brug",
|
||||||
"recipe-defaults": {
|
"recipe-defaults": {
|
||||||
"ingredient-note": "1 Cup Flour",
|
"ingredient-note": "1 Kop Mel",
|
||||||
"step-text": "Recipe steps as well as other fields in the recipe page support markdown syntax.\n\n**Add a link**\n\n[My Link](https://demo.mealie.io)\n"
|
"step-text": "Du kan bruge markdown kode i beskrivelser og andre felter i opskrifter.\n\n**Tilføj et link**\n\n[Mit link](https://demo.mealie.io)\n"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mealplan": {
|
"mealplan": {
|
||||||
|
|||||||
@@ -1,25 +1,25 @@
|
|||||||
{
|
{
|
||||||
"generic": {
|
"generic": {
|
||||||
"server-error": "An unexpected error occurred"
|
"server-error": "예상하지 못한 에러가 발생했습니다."
|
||||||
},
|
},
|
||||||
"recipe": {
|
"recipe": {
|
||||||
"unique-name-error": "Recipe names must be unique",
|
"unique-name-error": "Recipe 이름은 고유해야 합니다",
|
||||||
"recipe-defaults": {
|
"recipe-defaults": {
|
||||||
"ingredient-note": "1 Cup Flour",
|
"ingredient-note": "밀가루 1컵",
|
||||||
"step-text": "Recipe steps as well as other fields in the recipe page support markdown syntax.\n\n**Add a link**\n\n[My Link](https://demo.mealie.io)\n"
|
"step-text": "Recipe 단계는 물론 recipe 페이지의 다른 필드도 Markdown 문법을 지원합니다.\n\n**Add a link**\n\n[\b나의 링크](https://demo.mealie.io)"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mealplan": {
|
"mealplan": {
|
||||||
"no-recipes-match-your-rules": "No recipes match your rules"
|
"no-recipes-match-your-rules": "규칙과 일치하는 Recipe가 없습니다"
|
||||||
},
|
},
|
||||||
"user": {
|
"user": {
|
||||||
"user-updated": "User updated",
|
"user-updated": "User updated",
|
||||||
"password-updated": "Password updated",
|
"password-updated": "비밀번호가 변경되었습니다",
|
||||||
"invalid-current-password": "Invalid current password",
|
"invalid-current-password": "현재 비밀번호가 잘못되었습니다",
|
||||||
"ldap-update-password-unavailable": "Unable to update password, user is controlled by LDAP"
|
"ldap-update-password-unavailable": "사용자가 LDAP으로 제어되기 때문에 비밀번호를 변경할 수 없습니다"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"report-deleted": "Report deleted."
|
"report-deleted": "Report가 삭제됐습니다"
|
||||||
},
|
},
|
||||||
"exceptions": {
|
"exceptions": {
|
||||||
"permission_denied": "You do not have permission to perform this action",
|
"permission_denied": "You do not have permission to perform this action",
|
||||||
|
|||||||
@@ -3,10 +3,10 @@
|
|||||||
"server-error": "Ocorreu um erro inesperado"
|
"server-error": "Ocorreu um erro inesperado"
|
||||||
},
|
},
|
||||||
"recipe": {
|
"recipe": {
|
||||||
"unique-name-error": "O nome das receitas precisar ser único",
|
"unique-name-error": "Nomes de receitas devem ser únicos",
|
||||||
"recipe-defaults": {
|
"recipe-defaults": {
|
||||||
"ingredient-note": "1 Cup Flour",
|
"ingredient-note": "1 Xícara de Farinha",
|
||||||
"step-text": "Recipe steps as well as other fields in the recipe page support markdown syntax.\n\n**Add a link**\n\n[My Link](https://demo.mealie.io)\n"
|
"step-text": "Passos das receitas, assim como outros campos na página da receita, suportam sintaxe \"markdown\".\n\n**Adicione um link**\n\n[Meu Link](https://demo.mealie.io)\n"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mealplan": {
|
"mealplan": {
|
||||||
@@ -16,10 +16,10 @@
|
|||||||
"user-updated": "Usuário atualizado",
|
"user-updated": "Usuário atualizado",
|
||||||
"password-updated": "Senha atualizada",
|
"password-updated": "Senha atualizada",
|
||||||
"invalid-current-password": "Senha atual inválida",
|
"invalid-current-password": "Senha atual inválida",
|
||||||
"ldap-update-password-unavailable": "Não é possível atualizar a senha, o usuário é controlado pelo LDAP"
|
"ldap-update-password-unavailable": "Impossível atualizar a senha, o usuário é controlado por LDAP"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"report-deleted": "Relatório excluído"
|
"report-deleted": "Relatório excluído."
|
||||||
},
|
},
|
||||||
"exceptions": {
|
"exceptions": {
|
||||||
"permission_denied": "Você não tem permissão para realizar esta ação",
|
"permission_denied": "Você não tem permissão para realizar esta ação",
|
||||||
@@ -37,12 +37,12 @@
|
|||||||
"generic-deleted": "{name} foi excluído"
|
"generic-deleted": "{name} foi excluído"
|
||||||
},
|
},
|
||||||
"datetime": {
|
"datetime": {
|
||||||
"year": "year|years",
|
"year": "ano|anos",
|
||||||
"day": "day|days",
|
"day": "dia|dias",
|
||||||
"hour": "hour|hours",
|
"hour": "hora|horas",
|
||||||
"minute": "minute|minutes",
|
"minute": "minuto|minutos",
|
||||||
"second": "second|seconds",
|
"second": "segundo|segundos",
|
||||||
"millisecond": "millisecond|milliseconds",
|
"millisecond": "milissegundo|milissegundos",
|
||||||
"microsecond": "microsecond|microseconds"
|
"microsecond": "microssegundo|microssegundos"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
"recipe": {
|
"recipe": {
|
||||||
"unique-name-error": "Os nomes de receitas devem ser únicos",
|
"unique-name-error": "Os nomes de receitas devem ser únicos",
|
||||||
"recipe-defaults": {
|
"recipe-defaults": {
|
||||||
"ingredient-note": "1 Cup Flour",
|
"ingredient-note": "1 Chávena de Farinha",
|
||||||
"step-text": "Recipe steps as well as other fields in the recipe page support markdown syntax.\n\n**Add a link**\n\n[My Link](https://demo.mealie.io)\n"
|
"step-text": "Os passos da receita, bem como outros campos na página da receita, suportam a sintaxe markdown.\n\n**Adicionar um link**\n\n[Meu link](https://demo.mealie.io)\n"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mealplan": {
|
"mealplan": {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
"baking-powder": "fermento em pó",
|
"baking-powder": "fermento em pó",
|
||||||
"baking-soda": "bicarbonato de sódio",
|
"baking-soda": "bicarbonato de sódio",
|
||||||
"baking-sugar": "açúcar de confeiteiro",
|
"baking-sugar": "açúcar de confeiteiro",
|
||||||
"bar-sugar": "açúcar em barra",
|
"bar-sugar": "açúcar refinado",
|
||||||
"basil": "manjericão",
|
"basil": "manjericão",
|
||||||
"bell-peppers": "pimentões",
|
"bell-peppers": "pimentões",
|
||||||
"blackberries": "amoras silvestres",
|
"blackberries": "amoras silvestres",
|
||||||
@@ -80,15 +80,15 @@
|
|||||||
"eggplant": "berinjela",
|
"eggplant": "berinjela",
|
||||||
"endive": "endívia",
|
"endive": "endívia",
|
||||||
"fats": "gorduras",
|
"fats": "gorduras",
|
||||||
"speck": "speck",
|
"speck": "presunto",
|
||||||
"fava-beans": "fava beans",
|
"fava-beans": "feijão-fava",
|
||||||
"fiddlehead": "fiddlehead",
|
"fiddlehead": "fiddlehead",
|
||||||
"fish": "peixe",
|
"fish": "peixe",
|
||||||
"catfish": "bagre ",
|
"catfish": "bagre ",
|
||||||
"cod": "bacalhau",
|
"cod": "bacalhau",
|
||||||
"salt-cod": "bacalhau salgado",
|
"salt-cod": "bacalhau salgado",
|
||||||
"salmon": "salmão",
|
"salmon": "salmão",
|
||||||
"skate": "skate",
|
"skate": "raia",
|
||||||
"stockfish": "stockfish",
|
"stockfish": "stockfish",
|
||||||
"trout": "truta",
|
"trout": "truta",
|
||||||
"tuna": "atum",
|
"tuna": "atum",
|
||||||
@@ -146,7 +146,7 @@
|
|||||||
"mussels": "mussels",
|
"mussels": "mussels",
|
||||||
"nori": "nori",
|
"nori": "nori",
|
||||||
"nutmeg": "nutmeg",
|
"nutmeg": "nutmeg",
|
||||||
"nutritional-yeast-flakes": "nutritional yeast flakes",
|
"nutritional-yeast-flakes": "levedura nutricional em flocos",
|
||||||
"nuts": "nozes",
|
"nuts": "nozes",
|
||||||
"nanaimo-bar-mix": "nanaimo bar mix",
|
"nanaimo-bar-mix": "nanaimo bar mix",
|
||||||
"octopuses": "polvos",
|
"octopuses": "polvos",
|
||||||
@@ -195,14 +195,14 @@
|
|||||||
"squash": "squash",
|
"squash": "squash",
|
||||||
"zucchini": "abobrinha",
|
"zucchini": "abobrinha",
|
||||||
"sugar": "açúcar",
|
"sugar": "açúcar",
|
||||||
"caster-sugar": "caster sugar",
|
"caster-sugar": "açúcar refinado",
|
||||||
"granulated-sugar": "granulated sugar",
|
"granulated-sugar": "açúcar cristal",
|
||||||
"superfine-sugar": "superfine sugar",
|
"superfine-sugar": "açúcar refinado",
|
||||||
"turbanado-sugar": "turbanado sugar",
|
"turbanado-sugar": "turbanado sugar",
|
||||||
"unrefined-sugar": "açúcar não refinado",
|
"unrefined-sugar": "açúcar não refinado",
|
||||||
"white-sugar": "açucar refinado",
|
"white-sugar": "açúcar cristal",
|
||||||
"sweet-potato": "batata doce",
|
"sweet-potato": "batata doce",
|
||||||
"sweeteners": "adoçante",
|
"sweeteners": "adoçantes",
|
||||||
"cane-sugar": "açúcar de cana",
|
"cane-sugar": "açúcar de cana",
|
||||||
"tahini": "tahine",
|
"tahini": "tahine",
|
||||||
"tubers": "tubérculos",
|
"tubers": "tubérculos",
|
||||||
|
|||||||
@@ -2,17 +2,17 @@
|
|||||||
"teaspoon": {
|
"teaspoon": {
|
||||||
"name": "teaspoon",
|
"name": "teaspoon",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "tsp"
|
"abbreviation": "culleradiña"
|
||||||
},
|
},
|
||||||
"tablespoon": {
|
"tablespoon": {
|
||||||
"name": "tablespoon",
|
"name": "tablespoon",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "tbsp"
|
"abbreviation": "culleradas sopeiras"
|
||||||
},
|
},
|
||||||
"cup": {
|
"cup": {
|
||||||
"name": "cup",
|
"name": "taza",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "cup"
|
"abbreviation": "taza"
|
||||||
},
|
},
|
||||||
"fluid-ounce": {
|
"fluid-ounce": {
|
||||||
"name": "fluid ounce",
|
"name": "fluid ounce",
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"teaspoon": {
|
"teaspoon": {
|
||||||
"name": "colher de chá",
|
"name": "colher de chá",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "col. de chá"
|
"abbreviation": "cc"
|
||||||
},
|
},
|
||||||
"tablespoon": {
|
"tablespoon": {
|
||||||
"name": "colher de sopa",
|
"name": "colher de sopa",
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
"cup": {
|
"cup": {
|
||||||
"name": "xícara",
|
"name": "xícara",
|
||||||
"description": "",
|
"description": "",
|
||||||
"abbreviation": "xíc."
|
"abbreviation": "x"
|
||||||
},
|
},
|
||||||
"fluid-ounce": {
|
"fluid-ounce": {
|
||||||
"name": "onça fluida",
|
"name": "onça fluida",
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ from mealie.services.migrations import (
|
|||||||
NextcloudMigrator,
|
NextcloudMigrator,
|
||||||
PaprikaMigrator,
|
PaprikaMigrator,
|
||||||
PlanToEatMigrator,
|
PlanToEatMigrator,
|
||||||
|
RecipeKeeperMigrator,
|
||||||
TandoorMigrator,
|
TandoorMigrator,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -56,6 +57,7 @@ class GroupMigrationController(BaseUserController):
|
|||||||
SupportedMigrations.tandoor: TandoorMigrator,
|
SupportedMigrations.tandoor: TandoorMigrator,
|
||||||
SupportedMigrations.plantoeat: PlanToEatMigrator,
|
SupportedMigrations.plantoeat: PlanToEatMigrator,
|
||||||
SupportedMigrations.myrecipebox: MyRecipeBoxMigrator,
|
SupportedMigrations.myrecipebox: MyRecipeBoxMigrator,
|
||||||
|
SupportedMigrations.recipekeeper: RecipeKeeperMigrator,
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor = table.get(migration_type, None)
|
constructor = table.get(migration_type, None)
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ class SupportedMigrations(str, enum.Enum):
|
|||||||
tandoor = "tandoor"
|
tandoor = "tandoor"
|
||||||
plantoeat = "plantoeat"
|
plantoeat = "plantoeat"
|
||||||
myrecipebox = "myrecipebox"
|
myrecipebox = "myrecipebox"
|
||||||
|
recipekeeper = "recipekeeper"
|
||||||
|
|
||||||
|
|
||||||
class DataMigrationCreate(MealieModel):
|
class DataMigrationCreate(MealieModel):
|
||||||
|
|||||||
@@ -8,9 +8,39 @@ class BackupContents:
|
|||||||
_tables: dict | None = None
|
_tables: dict | None = None
|
||||||
|
|
||||||
def __init__(self, file: Path) -> None:
|
def __init__(self, file: Path) -> None:
|
||||||
self.base = file
|
self.base = self._find_base(file)
|
||||||
self.data_directory = self.base / "data"
|
self.data_directory = self._find_data_dir_from_base(self.base)
|
||||||
self.tables = self.base / "database.json"
|
self.tables = self._find_database_from_base(self.base)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def _find_base(cls, file: Path) -> Path:
|
||||||
|
# Safari mangles our ZIP structure and adds a "__MACOSX" directory at the root along with
|
||||||
|
# an arbitrarily-named directory containing the actual contents. So, if we find a dunder directory
|
||||||
|
# at the root (i.e. __MACOSX) we traverse down the first non-dunder directory and assume this is the base.
|
||||||
|
# This works because our backups never contain a directory that starts with "__".
|
||||||
|
dirs = [d for d in file.iterdir() if d.is_dir()]
|
||||||
|
dunder_dirs = [d for d in dirs if d.name.startswith("__")]
|
||||||
|
normal_dirs = [d for d in dirs if not d.name.startswith("__")]
|
||||||
|
|
||||||
|
if not dunder_dirs:
|
||||||
|
return file
|
||||||
|
|
||||||
|
# If the backup somehow adds a __MACOSX directory alongside the data directory, rather than in the
|
||||||
|
# parent directory, we don't want to traverse down. We check for our database.json file, and if it exists,
|
||||||
|
# we're already at the correct base.
|
||||||
|
if cls._find_database_from_base(file).exists():
|
||||||
|
return file
|
||||||
|
|
||||||
|
# This ZIP file was mangled, so we return the first non-dunder directory (if it exists).
|
||||||
|
return normal_dirs[0] if normal_dirs else file
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def _find_data_dir_from_base(cls, base: Path) -> Path:
|
||||||
|
return base / "data"
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def _find_database_from_base(cls, base: Path) -> Path:
|
||||||
|
return base / "database.json"
|
||||||
|
|
||||||
def validate(self) -> bool:
|
def validate(self) -> bool:
|
||||||
if not self.base.is_dir():
|
if not self.base.is_dir():
|
||||||
|
|||||||
@@ -5,4 +5,5 @@ from .myrecipebox import *
|
|||||||
from .nextcloud import *
|
from .nextcloud import *
|
||||||
from .paprika import *
|
from .paprika import *
|
||||||
from .plantoeat import *
|
from .plantoeat import *
|
||||||
|
from .recipekeeper import *
|
||||||
from .tandoor import *
|
from .tandoor import *
|
||||||
|
|||||||
@@ -1,19 +1,21 @@
|
|||||||
import tempfile
|
import tempfile
|
||||||
import zipfile
|
import zipfile
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from datetime import timedelta
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import cast
|
|
||||||
|
|
||||||
import isodate
|
|
||||||
from isodate.isoerror import ISO8601Error
|
|
||||||
from slugify import slugify
|
from slugify import slugify
|
||||||
|
|
||||||
from mealie.schema.reports.reports import ReportEntryCreate
|
from mealie.schema.reports.reports import ReportEntryCreate
|
||||||
|
|
||||||
from ._migration_base import BaseMigrator
|
from ._migration_base import BaseMigrator
|
||||||
from .utils.migration_alias import MigrationAlias
|
from .utils.migration_alias import MigrationAlias
|
||||||
from .utils.migration_helpers import MigrationReaders, glob_walker, import_image, split_by_comma
|
from .utils.migration_helpers import (
|
||||||
|
MigrationReaders,
|
||||||
|
glob_walker,
|
||||||
|
import_image,
|
||||||
|
parse_iso8601_duration,
|
||||||
|
split_by_comma,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
@@ -50,9 +52,9 @@ class NextcloudMigrator(BaseMigrator):
|
|||||||
self.key_aliases = [
|
self.key_aliases = [
|
||||||
MigrationAlias(key="tags", alias="keywords", func=split_by_comma),
|
MigrationAlias(key="tags", alias="keywords", func=split_by_comma),
|
||||||
MigrationAlias(key="orgURL", alias="url", func=None),
|
MigrationAlias(key="orgURL", alias="url", func=None),
|
||||||
MigrationAlias(key="totalTime", alias="totalTime", func=parse_time),
|
MigrationAlias(key="totalTime", alias="totalTime", func=parse_iso8601_duration),
|
||||||
MigrationAlias(key="prepTime", alias="prepTime", func=parse_time),
|
MigrationAlias(key="prepTime", alias="prepTime", func=parse_iso8601_duration),
|
||||||
MigrationAlias(key="performTime", alias="cookTime", func=parse_time),
|
MigrationAlias(key="performTime", alias="cookTime", func=parse_iso8601_duration),
|
||||||
]
|
]
|
||||||
|
|
||||||
def _migrate(self) -> None:
|
def _migrate(self) -> None:
|
||||||
@@ -89,45 +91,3 @@ class NextcloudMigrator(BaseMigrator):
|
|||||||
nc_dir = nextcloud_dirs[slug]
|
nc_dir = nextcloud_dirs[slug]
|
||||||
if nc_dir.image:
|
if nc_dir.image:
|
||||||
import_image(nc_dir.image, recipe_id)
|
import_image(nc_dir.image, recipe_id)
|
||||||
|
|
||||||
|
|
||||||
def parse_time(time: str | None) -> str:
|
|
||||||
"""
|
|
||||||
Parses an ISO8601 duration string
|
|
||||||
|
|
||||||
https://en.wikipedia.org/wiki/ISO_8601#Durations
|
|
||||||
"""
|
|
||||||
|
|
||||||
if not time:
|
|
||||||
return ""
|
|
||||||
if time[0] == "P":
|
|
||||||
try:
|
|
||||||
delta = isodate.parse_duration(time)
|
|
||||||
if not isinstance(delta, timedelta):
|
|
||||||
return time
|
|
||||||
except ISO8601Error:
|
|
||||||
return time
|
|
||||||
|
|
||||||
# TODO: make singular and plural translatable
|
|
||||||
time_part_map = {
|
|
||||||
"days": {"singular": "day", "plural": "days"},
|
|
||||||
"hours": {"singular": "hour", "plural": "hours"},
|
|
||||||
"minutes": {"singular": "minute", "plural": "minutes"},
|
|
||||||
"seconds": {"singular": "second", "plural": "seconds"},
|
|
||||||
}
|
|
||||||
|
|
||||||
delta = cast(timedelta, delta)
|
|
||||||
time_part_map["days"]["value"] = delta.days
|
|
||||||
time_part_map["hours"]["value"] = delta.seconds // 3600
|
|
||||||
time_part_map["minutes"]["value"] = (delta.seconds // 60) % 60
|
|
||||||
time_part_map["seconds"]["value"] = delta.seconds % 60
|
|
||||||
|
|
||||||
return_strings: list[str] = []
|
|
||||||
for value_map in time_part_map.values():
|
|
||||||
if not (value := value_map["value"]):
|
|
||||||
continue
|
|
||||||
|
|
||||||
unit_key = "singular" if value == 1 else "plural"
|
|
||||||
return_strings.append(f"{value} {value_map[unit_key]}")
|
|
||||||
|
|
||||||
return " ".join(return_strings) if return_strings else time
|
|
||||||
|
|||||||
99
mealie/services/migrations/recipekeeper.py
Normal file
99
mealie/services/migrations/recipekeeper.py
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
import tempfile
|
||||||
|
import zipfile
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
from bs4 import BeautifulSoup
|
||||||
|
|
||||||
|
from mealie.services.scraper import cleaner
|
||||||
|
|
||||||
|
from ._migration_base import BaseMigrator
|
||||||
|
from .utils.migration_alias import MigrationAlias
|
||||||
|
from .utils.migration_helpers import import_image, parse_iso8601_duration
|
||||||
|
|
||||||
|
|
||||||
|
def parse_recipe_div(recipe, image_path):
|
||||||
|
meta = {}
|
||||||
|
for item in recipe.find_all(lambda x: x.has_attr("itemprop")):
|
||||||
|
if item.name == "meta":
|
||||||
|
meta[item["itemprop"]] = item["content"]
|
||||||
|
elif item.name == "div":
|
||||||
|
meta[item["itemprop"]] = list(item.stripped_strings)
|
||||||
|
elif item.name == "img":
|
||||||
|
meta[item["itemprop"]] = str(image_path / item["src"])
|
||||||
|
else:
|
||||||
|
meta[item["itemprop"]] = item.string
|
||||||
|
# merge nutrition keys into their own dict.
|
||||||
|
nutrition = {}
|
||||||
|
for k in meta:
|
||||||
|
if k.startswith("recipeNut"):
|
||||||
|
nutrition[k.removeprefix("recipeNut")] = meta[k].strip()
|
||||||
|
meta["nutrition"] = nutrition
|
||||||
|
return meta
|
||||||
|
|
||||||
|
|
||||||
|
def get_value_as_string_or_none(dictionary: dict, key: str):
|
||||||
|
value = dictionary.get(key)
|
||||||
|
if value is not None:
|
||||||
|
try:
|
||||||
|
return str(value)
|
||||||
|
except Exception:
|
||||||
|
return None
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
def to_list(x: list[str] | str) -> list[str]:
|
||||||
|
if isinstance(x, str):
|
||||||
|
return [x]
|
||||||
|
return x
|
||||||
|
|
||||||
|
|
||||||
|
class RecipeKeeperMigrator(BaseMigrator):
|
||||||
|
def __init__(self, **kwargs):
|
||||||
|
super().__init__(**kwargs)
|
||||||
|
|
||||||
|
self.name = "recipekeeper"
|
||||||
|
|
||||||
|
self.key_aliases = [
|
||||||
|
MigrationAlias(
|
||||||
|
key="recipeIngredient",
|
||||||
|
alias="recipeIngredients",
|
||||||
|
),
|
||||||
|
MigrationAlias(key="recipeInstructions", alias="recipeDirections"),
|
||||||
|
MigrationAlias(key="performTime", alias="cookTime", func=parse_iso8601_duration),
|
||||||
|
MigrationAlias(key="prepTime", alias="prepTime", func=parse_iso8601_duration),
|
||||||
|
MigrationAlias(key="image", alias="photo0"),
|
||||||
|
MigrationAlias(key="tags", alias="recipeCourse", func=to_list),
|
||||||
|
MigrationAlias(key="recipe_category", alias="recipeCategory", func=to_list),
|
||||||
|
MigrationAlias(key="notes", alias="recipeNotes"),
|
||||||
|
MigrationAlias(key="nutrition", alias="nutrition", func=cleaner.clean_nutrition),
|
||||||
|
MigrationAlias(key="rating", alias="recipeRating"),
|
||||||
|
MigrationAlias(key="orgURL", alias="recipeSource"),
|
||||||
|
MigrationAlias(key="recipe_yield", alias="recipeYield"),
|
||||||
|
]
|
||||||
|
|
||||||
|
def _migrate(self) -> None:
|
||||||
|
with tempfile.TemporaryDirectory() as tmpdir:
|
||||||
|
with zipfile.ZipFile(self.archive) as zip_file:
|
||||||
|
zip_file.extractall(tmpdir)
|
||||||
|
|
||||||
|
source_dir = Path(tmpdir) / "recipekeeperhtml"
|
||||||
|
|
||||||
|
recipes_as_dicts: list[dict] = []
|
||||||
|
with open(source_dir / "recipes.html") as fp:
|
||||||
|
soup = BeautifulSoup(fp, "lxml")
|
||||||
|
for recipe_div in soup.body.find_all("div", "recipe-details"):
|
||||||
|
recipes_as_dicts.append(parse_recipe_div(recipe_div, source_dir))
|
||||||
|
|
||||||
|
recipes = [self.clean_recipe_dictionary(x) for x in recipes_as_dicts]
|
||||||
|
results = self.import_recipes_to_database(recipes)
|
||||||
|
for (_, recipe_id, status), recipe in zip(results, recipes, strict=False):
|
||||||
|
if status:
|
||||||
|
try:
|
||||||
|
if not recipe or not recipe.image:
|
||||||
|
continue
|
||||||
|
|
||||||
|
except StopIteration:
|
||||||
|
continue
|
||||||
|
|
||||||
|
import_image(recipe.image, recipe_id)
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
import json
|
import json
|
||||||
|
from datetime import timedelta
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
from typing import cast
|
||||||
|
|
||||||
|
import isodate
|
||||||
import yaml
|
import yaml
|
||||||
from PIL import UnidentifiedImageError
|
from PIL import UnidentifiedImageError
|
||||||
from pydantic import UUID4
|
from pydantic import UUID4
|
||||||
@@ -132,3 +135,45 @@ async def scrape_image(image_url: str, recipe_id: UUID4):
|
|||||||
await data_service.scrape_image(image_url)
|
await data_service.scrape_image(image_url)
|
||||||
except UnidentifiedImageError:
|
except UnidentifiedImageError:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
def parse_iso8601_duration(time: str | None) -> str:
|
||||||
|
"""
|
||||||
|
Parses an ISO8601 duration string
|
||||||
|
|
||||||
|
https://en.wikipedia.org/wiki/ISO_8601#Durations
|
||||||
|
"""
|
||||||
|
|
||||||
|
if not time:
|
||||||
|
return ""
|
||||||
|
if time[0] == "P":
|
||||||
|
try:
|
||||||
|
delta = isodate.parse_duration(time)
|
||||||
|
if not isinstance(delta, timedelta):
|
||||||
|
return time
|
||||||
|
except isodate.ISO8601Error:
|
||||||
|
return time
|
||||||
|
|
||||||
|
# TODO: make singular and plural translatable
|
||||||
|
time_part_map = {
|
||||||
|
"days": {"singular": "day", "plural": "days"},
|
||||||
|
"hours": {"singular": "hour", "plural": "hours"},
|
||||||
|
"minutes": {"singular": "minute", "plural": "minutes"},
|
||||||
|
"seconds": {"singular": "second", "plural": "seconds"},
|
||||||
|
}
|
||||||
|
|
||||||
|
delta = cast(timedelta, delta)
|
||||||
|
time_part_map["days"]["value"] = delta.days
|
||||||
|
time_part_map["hours"]["value"] = delta.seconds // 3600
|
||||||
|
time_part_map["minutes"]["value"] = (delta.seconds // 60) % 60
|
||||||
|
time_part_map["seconds"]["value"] = delta.seconds % 60
|
||||||
|
|
||||||
|
return_strings: list[str] = []
|
||||||
|
for value_map in time_part_map.values():
|
||||||
|
if not (value := value_map["value"]):
|
||||||
|
continue
|
||||||
|
|
||||||
|
unit_key = "singular" if value == 1 else "plural"
|
||||||
|
return_strings.append(f"{value} {value_map[unit_key]}")
|
||||||
|
|
||||||
|
return " ".join(return_strings) if return_strings else time
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
|
import asyncio
|
||||||
|
from datetime import datetime, timedelta
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from mealie.core import root_logger
|
from mealie.core import root_logger
|
||||||
|
from mealie.core.config import get_app_settings
|
||||||
from mealie.services.scheduler.runner import repeat_every
|
from mealie.services.scheduler.runner import repeat_every
|
||||||
|
|
||||||
from .scheduler_registry import SchedulerRegistry
|
from .scheduler_registry import SchedulerRegistry
|
||||||
@@ -18,18 +21,53 @@ class SchedulerService:
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
async def start():
|
async def start():
|
||||||
await run_minutely()
|
await run_minutely()
|
||||||
await run_daily()
|
|
||||||
await run_hourly()
|
await run_hourly()
|
||||||
|
|
||||||
|
# Wait to trigger our daily run until our given "daily time", so having asyncio handle it.
|
||||||
|
asyncio.create_task(schedule_daily())
|
||||||
|
|
||||||
|
|
||||||
|
async def schedule_daily():
|
||||||
|
now = datetime.now()
|
||||||
|
daily_schedule_time = get_app_settings().DAILY_SCHEDULE_TIME
|
||||||
|
logger.debug(
|
||||||
|
"Current time is %s and DAILY_SCHEDULE_TIME is %s",
|
||||||
|
str(now),
|
||||||
|
daily_schedule_time,
|
||||||
|
)
|
||||||
|
try:
|
||||||
|
hour_target, minute_target = _parse_daily_schedule_time(daily_schedule_time)
|
||||||
|
except Exception:
|
||||||
|
logger.exception(f"Unable to parse {daily_schedule_time=}")
|
||||||
|
hour_target = 23
|
||||||
|
minute_target = 45
|
||||||
|
|
||||||
|
hours_until = ((hour_target - now.hour) % 24) or 24
|
||||||
|
minutes_until = (minute_target - now.minute) % 60
|
||||||
|
logger.debug("Hours until %s and minutes until %s", str(hours_until), str(minutes_until))
|
||||||
|
|
||||||
|
delta = timedelta(hours=hours_until, minutes=minutes_until)
|
||||||
|
target_time = (now + delta).replace(microsecond=0, second=0)
|
||||||
|
logger.info("Daily tasks scheduled for %s", str(target_time))
|
||||||
|
wait_seconds = (target_time - now).total_seconds()
|
||||||
|
await asyncio.sleep(wait_seconds)
|
||||||
|
await run_daily()
|
||||||
|
|
||||||
|
|
||||||
|
def _parse_daily_schedule_time(time):
|
||||||
|
hour_target = int(time.split(":")[0])
|
||||||
|
minute_target = int(time.split(":")[1])
|
||||||
|
return hour_target, minute_target
|
||||||
|
|
||||||
|
|
||||||
def _scheduled_task_wrapper(callable):
|
def _scheduled_task_wrapper(callable):
|
||||||
try:
|
try:
|
||||||
callable()
|
callable()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Error in scheduled task func='{callable.__name__}': exception='{e}'")
|
logger.error("Error in scheduled task func='%s': exception='%s'", callable.__name__, e)
|
||||||
|
|
||||||
|
|
||||||
@repeat_every(minutes=MINUTES_DAY, wait_first=True, logger=logger)
|
@repeat_every(minutes=MINUTES_DAY, wait_first=False, logger=logger)
|
||||||
def run_daily():
|
def run_daily():
|
||||||
logger.debug("Running daily callbacks")
|
logger.debug("Running daily callbacks")
|
||||||
for func in SchedulerRegistry._daily:
|
for func in SchedulerRegistry._daily:
|
||||||
|
|||||||
795
poetry.lock
generated
795
poetry.lock
generated
@@ -122,13 +122,13 @@ typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""}
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "authlib"
|
name = "authlib"
|
||||||
version = "1.3.0"
|
version = "1.3.1"
|
||||||
description = "The ultimate Python library in building OAuth and OpenID Connect servers and clients."
|
description = "The ultimate Python library in building OAuth and OpenID Connect servers and clients."
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "Authlib-1.3.0-py2.py3-none-any.whl", hash = "sha256:9637e4de1fb498310a56900b3e2043a206b03cb11c05422014b0302cbc814be3"},
|
{file = "Authlib-1.3.1-py2.py3-none-any.whl", hash = "sha256:d35800b973099bbadc49b42b256ecb80041ad56b7fe1216a362c7943c088f377"},
|
||||||
{file = "Authlib-1.3.0.tar.gz", hash = "sha256:959ea62a5b7b5123c5059758296122b57cd2585ae2ed1c0622c21b371ffdae06"},
|
{file = "authlib-1.3.1.tar.gz", hash = "sha256:7ae843f03c06c5c0debd63c9db91f9fda64fa62a42a77419fa15fbb7e7a58917"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
@@ -419,63 +419,63 @@ files = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "coverage"
|
name = "coverage"
|
||||||
version = "7.5.1"
|
version = "7.5.3"
|
||||||
description = "Code coverage measurement for Python"
|
description = "Code coverage measurement for Python"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "coverage-7.5.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c0884920835a033b78d1c73b6d3bbcda8161a900f38a488829a83982925f6c2e"},
|
{file = "coverage-7.5.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a6519d917abb15e12380406d721e37613e2a67d166f9fb7e5a8ce0375744cd45"},
|
||||||
{file = "coverage-7.5.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:39afcd3d4339329c5f58de48a52f6e4e50f6578dd6099961cf22228feb25f38f"},
|
{file = "coverage-7.5.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:aea7da970f1feccf48be7335f8b2ca64baf9b589d79e05b9397a06696ce1a1ec"},
|
||||||
{file = "coverage-7.5.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4a7b0ceee8147444347da6a66be737c9d78f3353b0681715b668b72e79203e4a"},
|
{file = "coverage-7.5.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:923b7b1c717bd0f0f92d862d1ff51d9b2b55dbbd133e05680204465f454bb286"},
|
||||||
{file = "coverage-7.5.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a9ca3f2fae0088c3c71d743d85404cec8df9be818a005ea065495bedc33da35"},
|
{file = "coverage-7.5.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62bda40da1e68898186f274f832ef3e759ce929da9a9fd9fcf265956de269dbc"},
|
||||||
{file = "coverage-7.5.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5fd215c0c7d7aab005221608a3c2b46f58c0285a819565887ee0b718c052aa4e"},
|
{file = "coverage-7.5.3-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8b7339180d00de83e930358223c617cc343dd08e1aa5ec7b06c3a121aec4e1d"},
|
||||||
{file = "coverage-7.5.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4bf0655ab60d754491004a5efd7f9cccefcc1081a74c9ef2da4735d6ee4a6223"},
|
{file = "coverage-7.5.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:25a5caf742c6195e08002d3b6c2dd6947e50efc5fc2c2205f61ecb47592d2d83"},
|
||||||
{file = "coverage-7.5.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:61c4bf1ba021817de12b813338c9be9f0ad5b1e781b9b340a6d29fc13e7c1b5e"},
|
{file = "coverage-7.5.3-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:05ac5f60faa0c704c0f7e6a5cbfd6f02101ed05e0aee4d2822637a9e672c998d"},
|
||||||
{file = "coverage-7.5.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:db66fc317a046556a96b453a58eced5024af4582a8dbdc0c23ca4dbc0d5b3146"},
|
{file = "coverage-7.5.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:239a4e75e09c2b12ea478d28815acf83334d32e722e7433471fbf641c606344c"},
|
||||||
{file = "coverage-7.5.1-cp310-cp310-win32.whl", hash = "sha256:b016ea6b959d3b9556cb401c55a37547135a587db0115635a443b2ce8f1c7228"},
|
{file = "coverage-7.5.3-cp310-cp310-win32.whl", hash = "sha256:a5812840d1d00eafae6585aba38021f90a705a25b8216ec7f66aebe5b619fb84"},
|
||||||
{file = "coverage-7.5.1-cp310-cp310-win_amd64.whl", hash = "sha256:df4e745a81c110e7446b1cc8131bf986157770fa405fe90e15e850aaf7619bc8"},
|
{file = "coverage-7.5.3-cp310-cp310-win_amd64.whl", hash = "sha256:33ca90a0eb29225f195e30684ba4a6db05dbef03c2ccd50b9077714c48153cac"},
|
||||||
{file = "coverage-7.5.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:796a79f63eca8814ca3317a1ea443645c9ff0d18b188de470ed7ccd45ae79428"},
|
{file = "coverage-7.5.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f81bc26d609bf0fbc622c7122ba6307993c83c795d2d6f6f6fd8c000a770d974"},
|
||||||
{file = "coverage-7.5.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4fc84a37bfd98db31beae3c2748811a3fa72bf2007ff7902f68746d9757f3746"},
|
{file = "coverage-7.5.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7cec2af81f9e7569280822be68bd57e51b86d42e59ea30d10ebdbb22d2cb7232"},
|
||||||
{file = "coverage-7.5.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6175d1a0559986c6ee3f7fccfc4a90ecd12ba0a383dcc2da30c2b9918d67d8a3"},
|
{file = "coverage-7.5.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55f689f846661e3f26efa535071775d0483388a1ccfab899df72924805e9e7cd"},
|
||||||
{file = "coverage-7.5.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fc81d5878cd6274ce971e0a3a18a8803c3fe25457165314271cf78e3aae3aa2"},
|
{file = "coverage-7.5.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:50084d3516aa263791198913a17354bd1dc627d3c1639209640b9cac3fef5807"},
|
||||||
{file = "coverage-7.5.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:556cf1a7cbc8028cb60e1ff0be806be2eded2daf8129b8811c63e2b9a6c43bca"},
|
{file = "coverage-7.5.3-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:341dd8f61c26337c37988345ca5c8ccabeff33093a26953a1ac72e7d0103c4fb"},
|
||||||
{file = "coverage-7.5.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9981706d300c18d8b220995ad22627647be11a4276721c10911e0e9fa44c83e8"},
|
{file = "coverage-7.5.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ab0b028165eea880af12f66086694768f2c3139b2c31ad5e032c8edbafca6ffc"},
|
||||||
{file = "coverage-7.5.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:d7fed867ee50edf1a0b4a11e8e5d0895150e572af1cd6d315d557758bfa9c057"},
|
{file = "coverage-7.5.3-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:5bc5a8c87714b0c67cfeb4c7caa82b2d71e8864d1a46aa990b5588fa953673b8"},
|
||||||
{file = "coverage-7.5.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:ef48e2707fb320c8f139424a596f5b69955a85b178f15af261bab871873bb987"},
|
{file = "coverage-7.5.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:38a3b98dae8a7c9057bd91fbf3415c05e700a5114c5f1b5b0ea5f8f429ba6614"},
|
||||||
{file = "coverage-7.5.1-cp311-cp311-win32.whl", hash = "sha256:9314d5678dcc665330df5b69c1e726a0e49b27df0461c08ca12674bcc19ef136"},
|
{file = "coverage-7.5.3-cp311-cp311-win32.whl", hash = "sha256:fcf7d1d6f5da887ca04302db8e0e0cf56ce9a5e05f202720e49b3e8157ddb9a9"},
|
||||||
{file = "coverage-7.5.1-cp311-cp311-win_amd64.whl", hash = "sha256:5fa567e99765fe98f4e7d7394ce623e794d7cabb170f2ca2ac5a4174437e90dd"},
|
{file = "coverage-7.5.3-cp311-cp311-win_amd64.whl", hash = "sha256:8c836309931839cca658a78a888dab9676b5c988d0dd34ca247f5f3e679f4e7a"},
|
||||||
{file = "coverage-7.5.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b6cf3764c030e5338e7f61f95bd21147963cf6aa16e09d2f74f1fa52013c1206"},
|
{file = "coverage-7.5.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:296a7d9bbc598e8744c00f7a6cecf1da9b30ae9ad51c566291ff1314e6cbbed8"},
|
||||||
{file = "coverage-7.5.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2ec92012fefebee89a6b9c79bc39051a6cb3891d562b9270ab10ecfdadbc0c34"},
|
{file = "coverage-7.5.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:34d6d21d8795a97b14d503dcaf74226ae51eb1f2bd41015d3ef332a24d0a17b3"},
|
||||||
{file = "coverage-7.5.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16db7f26000a07efcf6aea00316f6ac57e7d9a96501e990a36f40c965ec7a95d"},
|
{file = "coverage-7.5.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e317953bb4c074c06c798a11dbdd2cf9979dbcaa8ccc0fa4701d80042d4ebf1"},
|
||||||
{file = "coverage-7.5.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:beccf7b8a10b09c4ae543582c1319c6df47d78fd732f854ac68d518ee1fb97fa"},
|
{file = "coverage-7.5.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:705f3d7c2b098c40f5b81790a5fedb274113373d4d1a69e65f8b68b0cc26f6db"},
|
||||||
{file = "coverage-7.5.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8748731ad392d736cc9ccac03c9845b13bb07d020a33423fa5b3a36521ac6e4e"},
|
{file = "coverage-7.5.3-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1196e13c45e327d6cd0b6e471530a1882f1017eb83c6229fc613cd1a11b53cd"},
|
||||||
{file = "coverage-7.5.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7352b9161b33fd0b643ccd1f21f3a3908daaddf414f1c6cb9d3a2fd618bf2572"},
|
{file = "coverage-7.5.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:015eddc5ccd5364dcb902eaecf9515636806fa1e0d5bef5769d06d0f31b54523"},
|
||||||
{file = "coverage-7.5.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:7a588d39e0925f6a2bff87154752481273cdb1736270642aeb3635cb9b4cad07"},
|
{file = "coverage-7.5.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:fd27d8b49e574e50caa65196d908f80e4dff64d7e592d0c59788b45aad7e8b35"},
|
||||||
{file = "coverage-7.5.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:68f962d9b72ce69ea8621f57551b2fa9c70509af757ee3b8105d4f51b92b41a7"},
|
{file = "coverage-7.5.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:33fc65740267222fc02975c061eb7167185fef4cc8f2770267ee8bf7d6a42f84"},
|
||||||
{file = "coverage-7.5.1-cp312-cp312-win32.whl", hash = "sha256:f152cbf5b88aaeb836127d920dd0f5e7edff5a66f10c079157306c4343d86c19"},
|
{file = "coverage-7.5.3-cp312-cp312-win32.whl", hash = "sha256:7b2a19e13dfb5c8e145c7a6ea959485ee8e2204699903c88c7d25283584bfc08"},
|
||||||
{file = "coverage-7.5.1-cp312-cp312-win_amd64.whl", hash = "sha256:5a5740d1fb60ddf268a3811bcd353de34eb56dc24e8f52a7f05ee513b2d4f596"},
|
{file = "coverage-7.5.3-cp312-cp312-win_amd64.whl", hash = "sha256:0bbddc54bbacfc09b3edaec644d4ac90c08ee8ed4844b0f86227dcda2d428fcb"},
|
||||||
{file = "coverage-7.5.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e2213def81a50519d7cc56ed643c9e93e0247f5bbe0d1247d15fa520814a7cd7"},
|
{file = "coverage-7.5.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f78300789a708ac1f17e134593f577407d52d0417305435b134805c4fb135adb"},
|
||||||
{file = "coverage-7.5.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5037f8fcc2a95b1f0e80585bd9d1ec31068a9bcb157d9750a172836e98bc7a90"},
|
{file = "coverage-7.5.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b368e1aee1b9b75757942d44d7598dcd22a9dbb126affcbba82d15917f0cc155"},
|
||||||
{file = "coverage-7.5.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c3721c2c9e4c4953a41a26c14f4cef64330392a6d2d675c8b1db3b645e31f0e"},
|
{file = "coverage-7.5.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f836c174c3a7f639bded48ec913f348c4761cbf49de4a20a956d3431a7c9cb24"},
|
||||||
{file = "coverage-7.5.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca498687ca46a62ae590253fba634a1fe9836bc56f626852fb2720f334c9e4e5"},
|
{file = "coverage-7.5.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:244f509f126dc71369393ce5fea17c0592c40ee44e607b6d855e9c4ac57aac98"},
|
||||||
{file = "coverage-7.5.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0cdcbc320b14c3e5877ee79e649677cb7d89ef588852e9583e6b24c2e5072661"},
|
{file = "coverage-7.5.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4c2872b3c91f9baa836147ca33650dc5c172e9273c808c3c3199c75490e709d"},
|
||||||
{file = "coverage-7.5.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:57e0204b5b745594e5bc14b9b50006da722827f0b8c776949f1135677e88d0b8"},
|
{file = "coverage-7.5.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:dd4b3355b01273a56b20c219e74e7549e14370b31a4ffe42706a8cda91f19f6d"},
|
||||||
{file = "coverage-7.5.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8fe7502616b67b234482c3ce276ff26f39ffe88adca2acf0261df4b8454668b4"},
|
{file = "coverage-7.5.3-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:f542287b1489c7a860d43a7d8883e27ca62ab84ca53c965d11dac1d3a1fab7ce"},
|
||||||
{file = "coverage-7.5.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:9e78295f4144f9dacfed4f92935fbe1780021247c2fabf73a819b17f0ccfff8d"},
|
{file = "coverage-7.5.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:75e3f4e86804023e991096b29e147e635f5e2568f77883a1e6eed74512659ab0"},
|
||||||
{file = "coverage-7.5.1-cp38-cp38-win32.whl", hash = "sha256:1434e088b41594baa71188a17533083eabf5609e8e72f16ce8c186001e6b8c41"},
|
{file = "coverage-7.5.3-cp38-cp38-win32.whl", hash = "sha256:c59d2ad092dc0551d9f79d9d44d005c945ba95832a6798f98f9216ede3d5f485"},
|
||||||
{file = "coverage-7.5.1-cp38-cp38-win_amd64.whl", hash = "sha256:0646599e9b139988b63704d704af8e8df7fa4cbc4a1f33df69d97f36cb0a38de"},
|
{file = "coverage-7.5.3-cp38-cp38-win_amd64.whl", hash = "sha256:fa21a04112c59ad54f69d80e376f7f9d0f5f9123ab87ecd18fbb9ec3a2beed56"},
|
||||||
{file = "coverage-7.5.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4cc37def103a2725bc672f84bd939a6fe4522310503207aae4d56351644682f1"},
|
{file = "coverage-7.5.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f5102a92855d518b0996eb197772f5ac2a527c0ec617124ad5242a3af5e25f85"},
|
||||||
{file = "coverage-7.5.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fc0b4d8bfeabd25ea75e94632f5b6e047eef8adaed0c2161ada1e922e7f7cece"},
|
{file = "coverage-7.5.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d1da0a2e3b37b745a2b2a678a4c796462cf753aebf94edcc87dcc6b8641eae31"},
|
||||||
{file = "coverage-7.5.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d0a0f5e06881ecedfe6f3dd2f56dcb057b6dbeb3327fd32d4b12854df36bf26"},
|
{file = "coverage-7.5.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8383a6c8cefba1b7cecc0149415046b6fc38836295bc4c84e820872eb5478b3d"},
|
||||||
{file = "coverage-7.5.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9735317685ba6ec7e3754798c8871c2f49aa5e687cc794a0b1d284b2389d1bd5"},
|
{file = "coverage-7.5.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9aad68c3f2566dfae84bf46295a79e79d904e1c21ccfc66de88cd446f8686341"},
|
||||||
{file = "coverage-7.5.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d21918e9ef11edf36764b93101e2ae8cc82aa5efdc7c5a4e9c6c35a48496d601"},
|
{file = "coverage-7.5.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e079c9ec772fedbade9d7ebc36202a1d9ef7291bc9b3a024ca395c4d52853d7"},
|
||||||
{file = "coverage-7.5.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c3e757949f268364b96ca894b4c342b41dc6f8f8b66c37878aacef5930db61be"},
|
{file = "coverage-7.5.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bde997cac85fcac227b27d4fb2c7608a2c5f6558469b0eb704c5726ae49e1c52"},
|
||||||
{file = "coverage-7.5.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:79afb6197e2f7f60c4824dd4b2d4c2ec5801ceb6ba9ce5d2c3080e5660d51a4f"},
|
{file = "coverage-7.5.3-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:990fb20b32990b2ce2c5f974c3e738c9358b2735bc05075d50a6f36721b8f303"},
|
||||||
{file = "coverage-7.5.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d1d0d98d95dd18fe29dc66808e1accf59f037d5716f86a501fc0256455219668"},
|
{file = "coverage-7.5.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3d5a67f0da401e105753d474369ab034c7bae51a4c31c77d94030d59e41df5bd"},
|
||||||
{file = "coverage-7.5.1-cp39-cp39-win32.whl", hash = "sha256:1cc0fe9b0b3a8364093c53b0b4c0c2dd4bb23acbec4c9240b5f284095ccf7981"},
|
{file = "coverage-7.5.3-cp39-cp39-win32.whl", hash = "sha256:e08c470c2eb01977d221fd87495b44867a56d4d594f43739a8028f8646a51e0d"},
|
||||||
{file = "coverage-7.5.1-cp39-cp39-win_amd64.whl", hash = "sha256:dde0070c40ea8bb3641e811c1cfbf18e265d024deff6de52c5950677a8fb1e0f"},
|
{file = "coverage-7.5.3-cp39-cp39-win_amd64.whl", hash = "sha256:1d2a830ade66d3563bb61d1e3c77c8def97b30ed91e166c67d0632c018f380f0"},
|
||||||
{file = "coverage-7.5.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:6537e7c10cc47c595828b8a8be04c72144725c383c4702703ff4e42e44577312"},
|
{file = "coverage-7.5.3-pp38.pp39.pp310-none-any.whl", hash = "sha256:3538d8fb1ee9bdd2e2692b3b18c22bb1c19ffbefd06880f5ac496e42d7bb3884"},
|
||||||
{file = "coverage-7.5.1.tar.gz", hash = "sha256:54de9ef3a9da981f7af93eafde4ede199e0846cd819eb27c88e2b712aae9708c"},
|
{file = "coverage-7.5.3.tar.gz", hash = "sha256:04aefca5190d1dc7a53a4c1a5a7f8568811306d7a8ee231c42fb69215571944f"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
@@ -628,23 +628,23 @@ test = ["pytest (>=6)"]
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "extruct"
|
name = "extruct"
|
||||||
version = "0.16.0"
|
version = "0.17.0"
|
||||||
description = "Extract embedded metadata from HTML markup"
|
description = "Extract embedded metadata from HTML markup"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = "*"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "extruct-0.16.0-py2.py3-none-any.whl", hash = "sha256:2499ea9e7d22744745ca708acee9542a4aa231871620c4f65f869a1286e64aa8"},
|
{file = "extruct-0.17.0-py2.py3-none-any.whl", hash = "sha256:5f1d8e307fbb0c41f64ce486ddfaf16dc67e4b8f6e9570c57b123409ee37a307"},
|
||||||
{file = "extruct-0.16.0.tar.gz", hash = "sha256:d09cb3d86d149a276b277b3bd45b2b867ef3ec78bed9cd58ee0f2ae01ae670c4"},
|
{file = "extruct-0.17.0.tar.gz", hash = "sha256:a94c0be5b5fd95a8370204ecc02687bd27845d536055d8d1c69a0a30da0420c7"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
html-text = ">=0.5.1"
|
html-text = ">=0.5.1"
|
||||||
jstyleson = "*"
|
jstyleson = "*"
|
||||||
lxml = "*"
|
lxml = "*"
|
||||||
|
lxml-html-clean = "*"
|
||||||
mf2py = "*"
|
mf2py = "*"
|
||||||
pyrdfa3 = "*"
|
pyrdfa3 = "*"
|
||||||
rdflib = {version = ">=6.0.0", markers = "python_version >= \"3.7\""}
|
rdflib = ">=6.0.0"
|
||||||
six = "*"
|
|
||||||
w3lib = "*"
|
w3lib = "*"
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
@@ -1073,96 +1073,175 @@ files = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lxml"
|
name = "lxml"
|
||||||
version = "5.1.0"
|
version = "5.2.2"
|
||||||
description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API."
|
description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API."
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.6"
|
python-versions = ">=3.6"
|
||||||
files = [
|
files = [
|
||||||
{file = "lxml-5.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:704f5572ff473a5f897745abebc6df40f22d4133c1e0a1f124e4f2bd3330ff7e"},
|
{file = "lxml-5.2.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:364d03207f3e603922d0d3932ef363d55bbf48e3647395765f9bfcbdf6d23632"},
|
||||||
{file = "lxml-5.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9d3c0f8567ffe7502d969c2c1b809892dc793b5d0665f602aad19895f8d508da"},
|
{file = "lxml-5.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:50127c186f191b8917ea2fb8b206fbebe87fd414a6084d15568c27d0a21d60db"},
|
||||||
{file = "lxml-5.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5fcfbebdb0c5d8d18b84118842f31965d59ee3e66996ac842e21f957eb76138c"},
|
{file = "lxml-5.2.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:74e4f025ef3db1c6da4460dd27c118d8cd136d0391da4e387a15e48e5c975147"},
|
||||||
{file = "lxml-5.1.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2f37c6d7106a9d6f0708d4e164b707037b7380fcd0b04c5bd9cae1fb46a856fb"},
|
{file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:981a06a3076997adf7c743dcd0d7a0415582661e2517c7d961493572e909aa1d"},
|
||||||
{file = "lxml-5.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2befa20a13f1a75c751f47e00929fb3433d67eb9923c2c0b364de449121f447c"},
|
{file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aef5474d913d3b05e613906ba4090433c515e13ea49c837aca18bde190853dff"},
|
||||||
{file = "lxml-5.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22b7ee4c35f374e2c20337a95502057964d7e35b996b1c667b5c65c567d2252a"},
|
{file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1e275ea572389e41e8b039ac076a46cb87ee6b8542df3fff26f5baab43713bca"},
|
||||||
{file = "lxml-5.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:bf8443781533b8d37b295016a4b53c1494fa9a03573c09ca5104550c138d5c05"},
|
{file = "lxml-5.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5b65529bb2f21ac7861a0e94fdbf5dc0daab41497d18223b46ee8515e5ad297"},
|
||||||
{file = "lxml-5.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:82bddf0e72cb2af3cbba7cec1d2fd11fda0de6be8f4492223d4a268713ef2147"},
|
{file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bcc98f911f10278d1daf14b87d65325851a1d29153caaf146877ec37031d5f36"},
|
||||||
{file = "lxml-5.1.0-cp310-cp310-win32.whl", hash = "sha256:b66aa6357b265670bb574f050ffceefb98549c721cf28351b748be1ef9577d93"},
|
{file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_ppc64le.whl", hash = "sha256:b47633251727c8fe279f34025844b3b3a3e40cd1b198356d003aa146258d13a2"},
|
||||||
{file = "lxml-5.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:4946e7f59b7b6a9e27bef34422f645e9a368cb2be11bf1ef3cafc39a1f6ba68d"},
|
{file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_s390x.whl", hash = "sha256:fbc9d316552f9ef7bba39f4edfad4a734d3d6f93341232a9dddadec4f15d425f"},
|
||||||
{file = "lxml-5.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:14deca1460b4b0f6b01f1ddc9557704e8b365f55c63070463f6c18619ebf964f"},
|
{file = "lxml-5.2.2-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:13e69be35391ce72712184f69000cda04fc89689429179bc4c0ae5f0b7a8c21b"},
|
||||||
{file = "lxml-5.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ed8c3d2cd329bf779b7ed38db176738f3f8be637bb395ce9629fc76f78afe3d4"},
|
{file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3b6a30a9ab040b3f545b697cb3adbf3696c05a3a68aad172e3fd7ca73ab3c835"},
|
||||||
{file = "lxml-5.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:436a943c2900bb98123b06437cdd30580a61340fbdb7b28aaf345a459c19046a"},
|
{file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:a233bb68625a85126ac9f1fc66d24337d6e8a0f9207b688eec2e7c880f012ec0"},
|
||||||
{file = "lxml-5.1.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:acb6b2f96f60f70e7f34efe0c3ea34ca63f19ca63ce90019c6cbca6b676e81fa"},
|
{file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:dfa7c241073d8f2b8e8dbc7803c434f57dbb83ae2a3d7892dd068d99e96efe2c"},
|
||||||
{file = "lxml-5.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:af8920ce4a55ff41167ddbc20077f5698c2e710ad3353d32a07d3264f3a2021e"},
|
{file = "lxml-5.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1a7aca7964ac4bb07680d5c9d63b9d7028cace3e2d43175cb50bba8c5ad33316"},
|
||||||
{file = "lxml-5.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7cfced4a069003d8913408e10ca8ed092c49a7f6cefee9bb74b6b3e860683b45"},
|
{file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ae4073a60ab98529ab8a72ebf429f2a8cc612619a8c04e08bed27450d52103c0"},
|
||||||
{file = "lxml-5.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9e5ac3437746189a9b4121db2a7b86056ac8786b12e88838696899328fc44bb2"},
|
{file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ffb2be176fed4457e445fe540617f0252a72a8bc56208fd65a690fdb1f57660b"},
|
||||||
{file = "lxml-5.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f4c9bda132ad108b387c33fabfea47866af87f4ea6ffb79418004f0521e63204"},
|
{file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:e290d79a4107d7d794634ce3e985b9ae4f920380a813717adf61804904dc4393"},
|
||||||
{file = "lxml-5.1.0-cp311-cp311-win32.whl", hash = "sha256:bc64d1b1dab08f679fb89c368f4c05693f58a9faf744c4d390d7ed1d8223869b"},
|
{file = "lxml-5.2.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:96e85aa09274955bb6bd483eaf5b12abadade01010478154b0ec70284c1b1526"},
|
||||||
{file = "lxml-5.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:a5ab722ae5a873d8dcee1f5f45ddd93c34210aed44ff2dc643b5025981908cda"},
|
{file = "lxml-5.2.2-cp310-cp310-win32.whl", hash = "sha256:f956196ef61369f1685d14dad80611488d8dc1ef00be57c0c5a03064005b0f30"},
|
||||||
{file = "lxml-5.1.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:9aa543980ab1fbf1720969af1d99095a548ea42e00361e727c58a40832439114"},
|
{file = "lxml-5.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:875a3f90d7eb5c5d77e529080d95140eacb3c6d13ad5b616ee8095447b1d22e7"},
|
||||||
{file = "lxml-5.1.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6f11b77ec0979f7e4dc5ae081325a2946f1fe424148d3945f943ceaede98adb8"},
|
{file = "lxml-5.2.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:45f9494613160d0405682f9eee781c7e6d1bf45f819654eb249f8f46a2c22545"},
|
||||||
{file = "lxml-5.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a36c506e5f8aeb40680491d39ed94670487ce6614b9d27cabe45d94cd5d63e1e"},
|
{file = "lxml-5.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b0b3f2df149efb242cee2ffdeb6674b7f30d23c9a7af26595099afaf46ef4e88"},
|
||||||
{file = "lxml-5.1.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f643ffd2669ffd4b5a3e9b41c909b72b2a1d5e4915da90a77e119b8d48ce867a"},
|
{file = "lxml-5.2.2-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d28cb356f119a437cc58a13f8135ab8a4c8ece18159eb9194b0d269ec4e28083"},
|
||||||
{file = "lxml-5.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16dd953fb719f0ffc5bc067428fc9e88f599e15723a85618c45847c96f11f431"},
|
{file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:657a972f46bbefdbba2d4f14413c0d079f9ae243bd68193cb5061b9732fa54c1"},
|
||||||
{file = "lxml-5.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:16018f7099245157564d7148165132c70adb272fb5a17c048ba70d9cc542a1a1"},
|
{file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b74b9ea10063efb77a965a8d5f4182806fbf59ed068b3c3fd6f30d2ac7bee734"},
|
||||||
{file = "lxml-5.1.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:82cd34f1081ae4ea2ede3d52f71b7be313756e99b4b5f829f89b12da552d3aa3"},
|
{file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:07542787f86112d46d07d4f3c4e7c760282011b354d012dc4141cc12a68cef5f"},
|
||||||
{file = "lxml-5.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:19a1bc898ae9f06bccb7c3e1dfd73897ecbbd2c96afe9095a6026016e5ca97b8"},
|
{file = "lxml-5.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:303f540ad2dddd35b92415b74b900c749ec2010e703ab3bfd6660979d01fd4ed"},
|
||||||
{file = "lxml-5.1.0-cp312-cp312-win32.whl", hash = "sha256:13521a321a25c641b9ea127ef478b580b5ec82aa2e9fc076c86169d161798b01"},
|
{file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:2eb2227ce1ff998faf0cd7fe85bbf086aa41dfc5af3b1d80867ecfe75fb68df3"},
|
||||||
{file = "lxml-5.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:1ad17c20e3666c035db502c78b86e58ff6b5991906e55bdbef94977700c72623"},
|
{file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_ppc64le.whl", hash = "sha256:1d8a701774dfc42a2f0b8ccdfe7dbc140500d1049e0632a611985d943fcf12df"},
|
||||||
{file = "lxml-5.1.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:24ef5a4631c0b6cceaf2dbca21687e29725b7c4e171f33a8f8ce23c12558ded1"},
|
{file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_s390x.whl", hash = "sha256:56793b7a1a091a7c286b5f4aa1fe4ae5d1446fe742d00cdf2ffb1077865db10d"},
|
||||||
{file = "lxml-5.1.0-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8d2900b7f5318bc7ad8631d3d40190b95ef2aa8cc59473b73b294e4a55e9f30f"},
|
{file = "lxml-5.2.2-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:eb00b549b13bd6d884c863554566095bf6fa9c3cecb2e7b399c4bc7904cb33b5"},
|
||||||
{file = "lxml-5.1.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:601f4a75797d7a770daed8b42b97cd1bb1ba18bd51a9382077a6a247a12aa38d"},
|
{file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a2569a1f15ae6c8c64108a2cd2b4a858fc1e13d25846be0666fc144715e32ab"},
|
||||||
{file = "lxml-5.1.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4b68c961b5cc402cbd99cca5eb2547e46ce77260eb705f4d117fd9c3f932b95"},
|
{file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:8cf85a6e40ff1f37fe0f25719aadf443686b1ac7652593dc53c7ef9b8492b115"},
|
||||||
{file = "lxml-5.1.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:afd825e30f8d1f521713a5669b63657bcfe5980a916c95855060048b88e1adb7"},
|
{file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:d237ba6664b8e60fd90b8549a149a74fcc675272e0e95539a00522e4ca688b04"},
|
||||||
{file = "lxml-5.1.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:262bc5f512a66b527d026518507e78c2f9c2bd9eb5c8aeeb9f0eb43fcb69dc67"},
|
{file = "lxml-5.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0b3f5016e00ae7630a4b83d0868fca1e3d494c78a75b1c7252606a3a1c5fc2ad"},
|
||||||
{file = "lxml-5.1.0-cp36-cp36m-win32.whl", hash = "sha256:e856c1c7255c739434489ec9c8aa9cdf5179785d10ff20add308b5d673bed5cd"},
|
{file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:23441e2b5339bc54dc949e9e675fa35efe858108404ef9aa92f0456929ef6fe8"},
|
||||||
{file = "lxml-5.1.0-cp36-cp36m-win_amd64.whl", hash = "sha256:c7257171bb8d4432fe9d6fdde4d55fdbe663a63636a17f7f9aaba9bcb3153ad7"},
|
{file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:2fb0ba3e8566548d6c8e7dd82a8229ff47bd8fb8c2da237607ac8e5a1b8312e5"},
|
||||||
{file = "lxml-5.1.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b9e240ae0ba96477682aa87899d94ddec1cc7926f9df29b1dd57b39e797d5ab5"},
|
{file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:79d1fb9252e7e2cfe4de6e9a6610c7cbb99b9708e2c3e29057f487de5a9eaefa"},
|
||||||
{file = "lxml-5.1.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a96f02ba1bcd330807fc060ed91d1f7a20853da6dd449e5da4b09bfcc08fdcf5"},
|
{file = "lxml-5.2.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6dcc3d17eac1df7859ae01202e9bb11ffa8c98949dcbeb1069c8b9a75917e01b"},
|
||||||
{file = "lxml-5.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e3898ae2b58eeafedfe99e542a17859017d72d7f6a63de0f04f99c2cb125936"},
|
{file = "lxml-5.2.2-cp311-cp311-win32.whl", hash = "sha256:4c30a2f83677876465f44c018830f608fa3c6a8a466eb223535035fbc16f3438"},
|
||||||
{file = "lxml-5.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:61c5a7edbd7c695e54fca029ceb351fc45cd8860119a0f83e48be44e1c464862"},
|
{file = "lxml-5.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:49095a38eb333aaf44c06052fd2ec3b8f23e19747ca7ec6f6c954ffea6dbf7be"},
|
||||||
{file = "lxml-5.1.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:3aeca824b38ca78d9ee2ab82bd9883083d0492d9d17df065ba3b94e88e4d7ee6"},
|
{file = "lxml-5.2.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:7429e7faa1a60cad26ae4227f4dd0459efde239e494c7312624ce228e04f6391"},
|
||||||
{file = "lxml-5.1.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8f52fe6859b9db71ee609b0c0a70fea5f1e71c3462ecf144ca800d3f434f0764"},
|
{file = "lxml-5.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:50ccb5d355961c0f12f6cf24b7187dbabd5433f29e15147a67995474f27d1776"},
|
||||||
{file = "lxml-5.1.0-cp37-cp37m-win32.whl", hash = "sha256:d42e3a3fc18acc88b838efded0e6ec3edf3e328a58c68fbd36a7263a874906c8"},
|
{file = "lxml-5.2.2-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc911208b18842a3a57266d8e51fc3cfaccee90a5351b92079beed912a7914c2"},
|
||||||
{file = "lxml-5.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:eac68f96539b32fce2c9b47eb7c25bb2582bdaf1bbb360d25f564ee9e04c542b"},
|
{file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33ce9e786753743159799fdf8e92a5da351158c4bfb6f2db0bf31e7892a1feb5"},
|
||||||
{file = "lxml-5.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ae15347a88cf8af0949a9872b57a320d2605ae069bcdf047677318bc0bba45b1"},
|
{file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ec87c44f619380878bd49ca109669c9f221d9ae6883a5bcb3616785fa8f94c97"},
|
||||||
{file = "lxml-5.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c26aab6ea9c54d3bed716b8851c8bfc40cb249b8e9880e250d1eddde9f709bf5"},
|
{file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08ea0f606808354eb8f2dfaac095963cb25d9d28e27edcc375d7b30ab01abbf6"},
|
||||||
{file = "lxml-5.1.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:342e95bddec3a698ac24378d61996b3ee5ba9acfeb253986002ac53c9a5f6f84"},
|
{file = "lxml-5.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75a9632f1d4f698b2e6e2e1ada40e71f369b15d69baddb8968dcc8e683839b18"},
|
||||||
{file = "lxml-5.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:725e171e0b99a66ec8605ac77fa12239dbe061482ac854d25720e2294652eeaa"},
|
{file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:74da9f97daec6928567b48c90ea2c82a106b2d500f397eeb8941e47d30b1ca85"},
|
||||||
{file = "lxml-5.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d184e0d5c918cff04cdde9dbdf9600e960161d773666958c9d7b565ccc60c45"},
|
{file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_ppc64le.whl", hash = "sha256:0969e92af09c5687d769731e3f39ed62427cc72176cebb54b7a9d52cc4fa3b73"},
|
||||||
{file = "lxml-5.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:98f3f020a2b736566c707c8e034945c02aa94e124c24f77ca097c446f81b01f1"},
|
{file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_s390x.whl", hash = "sha256:9164361769b6ca7769079f4d426a41df6164879f7f3568be9086e15baca61466"},
|
||||||
{file = "lxml-5.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6d48fc57e7c1e3df57be5ae8614bab6d4e7b60f65c5457915c26892c41afc59e"},
|
{file = "lxml-5.2.2-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:d26a618ae1766279f2660aca0081b2220aca6bd1aa06b2cf73f07383faf48927"},
|
||||||
{file = "lxml-5.1.0-cp38-cp38-win32.whl", hash = "sha256:7ec465e6549ed97e9f1e5ed51c657c9ede767bc1c11552f7f4d022c4df4a977a"},
|
{file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ab67ed772c584b7ef2379797bf14b82df9aa5f7438c5b9a09624dd834c1c1aaf"},
|
||||||
{file = "lxml-5.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:b21b4031b53d25b0858d4e124f2f9131ffc1530431c6d1321805c90da78388d1"},
|
{file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:3d1e35572a56941b32c239774d7e9ad724074d37f90c7a7d499ab98761bd80cf"},
|
||||||
{file = "lxml-5.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:52427a7eadc98f9e62cb1368a5079ae826f94f05755d2d567d93ee1bc3ceb354"},
|
{file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:8268cbcd48c5375f46e000adb1390572c98879eb4f77910c6053d25cc3ac2c67"},
|
||||||
{file = "lxml-5.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6a2a2c724d97c1eb8cf966b16ca2915566a4904b9aad2ed9a09c748ffe14f969"},
|
{file = "lxml-5.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e282aedd63c639c07c3857097fc0e236f984ceb4089a8b284da1c526491e3f3d"},
|
||||||
{file = "lxml-5.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:843b9c835580d52828d8f69ea4302537337a21e6b4f1ec711a52241ba4a824f3"},
|
{file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfdc2bfe69e9adf0df4915949c22a25b39d175d599bf98e7ddf620a13678585"},
|
||||||
{file = "lxml-5.1.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9b99f564659cfa704a2dd82d0684207b1aadf7d02d33e54845f9fc78e06b7581"},
|
{file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4aefd911793b5d2d7a921233a54c90329bf3d4a6817dc465f12ffdfe4fc7b8fe"},
|
||||||
{file = "lxml-5.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f8b0c78e7aac24979ef09b7f50da871c2de2def043d468c4b41f512d831e912"},
|
{file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:8b8df03a9e995b6211dafa63b32f9d405881518ff1ddd775db4e7b98fb545e1c"},
|
||||||
{file = "lxml-5.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9bcf86dfc8ff3e992fed847c077bd875d9e0ba2fa25d859c3a0f0f76f07f0c8d"},
|
{file = "lxml-5.2.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f11ae142f3a322d44513de1018b50f474f8f736bc3cd91d969f464b5bfef8836"},
|
||||||
{file = "lxml-5.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:49a9b4af45e8b925e1cd6f3b15bbba2c81e7dba6dce170c677c9cda547411e14"},
|
{file = "lxml-5.2.2-cp312-cp312-win32.whl", hash = "sha256:16a8326e51fcdffc886294c1e70b11ddccec836516a343f9ed0f82aac043c24a"},
|
||||||
{file = "lxml-5.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:280f3edf15c2a967d923bcfb1f8f15337ad36f93525828b40a0f9d6c2ad24890"},
|
{file = "lxml-5.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:bbc4b80af581e18568ff07f6395c02114d05f4865c2812a1f02f2eaecf0bfd48"},
|
||||||
{file = "lxml-5.1.0-cp39-cp39-win32.whl", hash = "sha256:ed7326563024b6e91fef6b6c7a1a2ff0a71b97793ac33dbbcf38f6005e51ff6e"},
|
{file = "lxml-5.2.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e3d9d13603410b72787579769469af730c38f2f25505573a5888a94b62b920f8"},
|
||||||
{file = "lxml-5.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:8d7b4beebb178e9183138f552238f7e6613162a42164233e2bda00cb3afac58f"},
|
{file = "lxml-5.2.2-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38b67afb0a06b8575948641c1d6d68e41b83a3abeae2ca9eed2ac59892b36706"},
|
||||||
{file = "lxml-5.1.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9bd0ae7cc2b85320abd5e0abad5ccee5564ed5f0cc90245d2f9a8ef330a8deae"},
|
{file = "lxml-5.2.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c689d0d5381f56de7bd6966a4541bff6e08bf8d3871bbd89a0c6ab18aa699573"},
|
||||||
{file = "lxml-5.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d8c1d679df4361408b628f42b26a5d62bd3e9ba7f0c0e7969f925021554755aa"},
|
{file = "lxml-5.2.2-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:cf2a978c795b54c539f47964ec05e35c05bd045db5ca1e8366988c7f2fe6b3ce"},
|
||||||
{file = "lxml-5.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:2ad3a8ce9e8a767131061a22cd28fdffa3cd2dc193f399ff7b81777f3520e372"},
|
{file = "lxml-5.2.2-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:739e36ef7412b2bd940f75b278749106e6d025e40027c0b94a17ef7968d55d56"},
|
||||||
{file = "lxml-5.1.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:304128394c9c22b6569eba2a6d98392b56fbdfbad58f83ea702530be80d0f9df"},
|
{file = "lxml-5.2.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:d8bbcd21769594dbba9c37d3c819e2d5847656ca99c747ddb31ac1701d0c0ed9"},
|
||||||
{file = "lxml-5.1.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d74fcaf87132ffc0447b3c685a9f862ffb5b43e70ea6beec2fb8057d5d2a1fea"},
|
{file = "lxml-5.2.2-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:2304d3c93f2258ccf2cf7a6ba8c761d76ef84948d87bf9664e14d203da2cd264"},
|
||||||
{file = "lxml-5.1.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:8cf5877f7ed384dabfdcc37922c3191bf27e55b498fecece9fd5c2c7aaa34c33"},
|
{file = "lxml-5.2.2-cp36-cp36m-win32.whl", hash = "sha256:02437fb7308386867c8b7b0e5bc4cd4b04548b1c5d089ffb8e7b31009b961dc3"},
|
||||||
{file = "lxml-5.1.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:877efb968c3d7eb2dad540b6cabf2f1d3c0fbf4b2d309a3c141f79c7e0061324"},
|
{file = "lxml-5.2.2-cp36-cp36m-win_amd64.whl", hash = "sha256:edcfa83e03370032a489430215c1e7783128808fd3e2e0a3225deee278585196"},
|
||||||
{file = "lxml-5.1.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f14a4fb1c1c402a22e6a341a24c1341b4a3def81b41cd354386dcb795f83897"},
|
{file = "lxml-5.2.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:28bf95177400066596cdbcfc933312493799382879da504633d16cf60bba735b"},
|
||||||
{file = "lxml-5.1.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:25663d6e99659544ee8fe1b89b1a8c0aaa5e34b103fab124b17fa958c4a324a6"},
|
{file = "lxml-5.2.2-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3a745cc98d504d5bd2c19b10c79c61c7c3df9222629f1b6210c0368177589fb8"},
|
||||||
{file = "lxml-5.1.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8b9f19df998761babaa7f09e6bc169294eefafd6149aaa272081cbddc7ba4ca3"},
|
{file = "lxml-5.2.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b590b39ef90c6b22ec0be925b211298e810b4856909c8ca60d27ffbca6c12e6"},
|
||||||
{file = "lxml-5.1.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e53d7e6a98b64fe54775d23a7c669763451340c3d44ad5e3a3b48a1efbdc96f"},
|
{file = "lxml-5.2.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b336b0416828022bfd5a2e3083e7f5ba54b96242159f83c7e3eebaec752f1716"},
|
||||||
{file = "lxml-5.1.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:c3cd1fc1dc7c376c54440aeaaa0dcc803d2126732ff5c6b68ccd619f2e64be4f"},
|
{file = "lxml-5.2.2-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:c2faf60c583af0d135e853c86ac2735ce178f0e338a3c7f9ae8f622fd2eb788c"},
|
||||||
{file = "lxml-5.1.0.tar.gz", hash = "sha256:3eea6ed6e6c918e468e693c41ef07f3c3acc310b70ddd9cc72d9ef84bc9564ca"},
|
{file = "lxml-5.2.2-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:4bc6cb140a7a0ad1f7bc37e018d0ed690b7b6520ade518285dc3171f7a117905"},
|
||||||
|
{file = "lxml-5.2.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7ff762670cada8e05b32bf1e4dc50b140790909caa8303cfddc4d702b71ea184"},
|
||||||
|
{file = "lxml-5.2.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:57f0a0bbc9868e10ebe874e9f129d2917750adf008fe7b9c1598c0fbbfdde6a6"},
|
||||||
|
{file = "lxml-5.2.2-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:a6d2092797b388342c1bc932077ad232f914351932353e2e8706851c870bca1f"},
|
||||||
|
{file = "lxml-5.2.2-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:60499fe961b21264e17a471ec296dcbf4365fbea611bf9e303ab69db7159ce61"},
|
||||||
|
{file = "lxml-5.2.2-cp37-cp37m-win32.whl", hash = "sha256:d9b342c76003c6b9336a80efcc766748a333573abf9350f4094ee46b006ec18f"},
|
||||||
|
{file = "lxml-5.2.2-cp37-cp37m-win_amd64.whl", hash = "sha256:b16db2770517b8799c79aa80f4053cd6f8b716f21f8aca962725a9565ce3ee40"},
|
||||||
|
{file = "lxml-5.2.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7ed07b3062b055d7a7f9d6557a251cc655eed0b3152b76de619516621c56f5d3"},
|
||||||
|
{file = "lxml-5.2.2-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f60fdd125d85bf9c279ffb8e94c78c51b3b6a37711464e1f5f31078b45002421"},
|
||||||
|
{file = "lxml-5.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a7e24cb69ee5f32e003f50e016d5fde438010c1022c96738b04fc2423e61706"},
|
||||||
|
{file = "lxml-5.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23cfafd56887eaed93d07bc4547abd5e09d837a002b791e9767765492a75883f"},
|
||||||
|
{file = "lxml-5.2.2-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:19b4e485cd07b7d83e3fe3b72132e7df70bfac22b14fe4bf7a23822c3a35bff5"},
|
||||||
|
{file = "lxml-5.2.2-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:7ce7ad8abebe737ad6143d9d3bf94b88b93365ea30a5b81f6877ec9c0dee0a48"},
|
||||||
|
{file = "lxml-5.2.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:e49b052b768bb74f58c7dda4e0bdf7b79d43a9204ca584ffe1fb48a6f3c84c66"},
|
||||||
|
{file = "lxml-5.2.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d14a0d029a4e176795cef99c056d58067c06195e0c7e2dbb293bf95c08f772a3"},
|
||||||
|
{file = "lxml-5.2.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:be49ad33819d7dcc28a309b86d4ed98e1a65f3075c6acd3cd4fe32103235222b"},
|
||||||
|
{file = "lxml-5.2.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a6d17e0370d2516d5bb9062c7b4cb731cff921fc875644c3d751ad857ba9c5b1"},
|
||||||
|
{file = "lxml-5.2.2-cp38-cp38-win32.whl", hash = "sha256:5b8c041b6265e08eac8a724b74b655404070b636a8dd6d7a13c3adc07882ef30"},
|
||||||
|
{file = "lxml-5.2.2-cp38-cp38-win_amd64.whl", hash = "sha256:f61efaf4bed1cc0860e567d2ecb2363974d414f7f1f124b1df368bbf183453a6"},
|
||||||
|
{file = "lxml-5.2.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:fb91819461b1b56d06fa4bcf86617fac795f6a99d12239fb0c68dbeba41a0a30"},
|
||||||
|
{file = "lxml-5.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d4ed0c7cbecde7194cd3228c044e86bf73e30a23505af852857c09c24e77ec5d"},
|
||||||
|
{file = "lxml-5.2.2-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54401c77a63cc7d6dc4b4e173bb484f28a5607f3df71484709fe037c92d4f0ed"},
|
||||||
|
{file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:625e3ef310e7fa3a761d48ca7ea1f9d8718a32b1542e727d584d82f4453d5eeb"},
|
||||||
|
{file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:519895c99c815a1a24a926d5b60627ce5ea48e9f639a5cd328bda0515ea0f10c"},
|
||||||
|
{file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c7079d5eb1c1315a858bbf180000757db8ad904a89476653232db835c3114001"},
|
||||||
|
{file = "lxml-5.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:343ab62e9ca78094f2306aefed67dcfad61c4683f87eee48ff2fd74902447726"},
|
||||||
|
{file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:cd9e78285da6c9ba2d5c769628f43ef66d96ac3085e59b10ad4f3707980710d3"},
|
||||||
|
{file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_ppc64le.whl", hash = "sha256:546cf886f6242dff9ec206331209db9c8e1643ae642dea5fdbecae2453cb50fd"},
|
||||||
|
{file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_s390x.whl", hash = "sha256:02f6a8eb6512fdc2fd4ca10a49c341c4e109aa6e9448cc4859af5b949622715a"},
|
||||||
|
{file = "lxml-5.2.2-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:339ee4a4704bc724757cd5dd9dc8cf4d00980f5d3e6e06d5847c1b594ace68ab"},
|
||||||
|
{file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0a028b61a2e357ace98b1615fc03f76eb517cc028993964fe08ad514b1e8892d"},
|
||||||
|
{file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:f90e552ecbad426eab352e7b2933091f2be77115bb16f09f78404861c8322981"},
|
||||||
|
{file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:d83e2d94b69bf31ead2fa45f0acdef0757fa0458a129734f59f67f3d2eb7ef32"},
|
||||||
|
{file = "lxml-5.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a02d3c48f9bb1e10c7788d92c0c7db6f2002d024ab6e74d6f45ae33e3d0288a3"},
|
||||||
|
{file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:6d68ce8e7b2075390e8ac1e1d3a99e8b6372c694bbe612632606d1d546794207"},
|
||||||
|
{file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:453d037e09a5176d92ec0fd282e934ed26d806331a8b70ab431a81e2fbabf56d"},
|
||||||
|
{file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:3b019d4ee84b683342af793b56bb35034bd749e4cbdd3d33f7d1107790f8c472"},
|
||||||
|
{file = "lxml-5.2.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:cb3942960f0beb9f46e2a71a3aca220d1ca32feb5a398656be934320804c0df9"},
|
||||||
|
{file = "lxml-5.2.2-cp39-cp39-win32.whl", hash = "sha256:ac6540c9fff6e3813d29d0403ee7a81897f1d8ecc09a8ff84d2eea70ede1cdbf"},
|
||||||
|
{file = "lxml-5.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:610b5c77428a50269f38a534057444c249976433f40f53e3b47e68349cca1425"},
|
||||||
|
{file = "lxml-5.2.2-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:b537bd04d7ccd7c6350cdaaaad911f6312cbd61e6e6045542f781c7f8b2e99d2"},
|
||||||
|
{file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4820c02195d6dfb7b8508ff276752f6b2ff8b64ae5d13ebe02e7667e035000b9"},
|
||||||
|
{file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2a09f6184f17a80897172863a655467da2b11151ec98ba8d7af89f17bf63dae"},
|
||||||
|
{file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:76acba4c66c47d27c8365e7c10b3d8016a7da83d3191d053a58382311a8bf4e1"},
|
||||||
|
{file = "lxml-5.2.2-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b128092c927eaf485928cec0c28f6b8bead277e28acf56800e972aa2c2abd7a2"},
|
||||||
|
{file = "lxml-5.2.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ae791f6bd43305aade8c0e22f816b34f3b72b6c820477aab4d18473a37e8090b"},
|
||||||
|
{file = "lxml-5.2.2-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a2f6a1bc2460e643785a2cde17293bd7a8f990884b822f7bca47bee0a82fc66b"},
|
||||||
|
{file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e8d351ff44c1638cb6e980623d517abd9f580d2e53bfcd18d8941c052a5a009"},
|
||||||
|
{file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bec4bd9133420c5c52d562469c754f27c5c9e36ee06abc169612c959bd7dbb07"},
|
||||||
|
{file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:55ce6b6d803890bd3cc89975fca9de1dff39729b43b73cb15ddd933b8bc20484"},
|
||||||
|
{file = "lxml-5.2.2-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:8ab6a358d1286498d80fe67bd3d69fcbc7d1359b45b41e74c4a26964ca99c3f8"},
|
||||||
|
{file = "lxml-5.2.2-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:06668e39e1f3c065349c51ac27ae430719d7806c026fec462e5693b08b95696b"},
|
||||||
|
{file = "lxml-5.2.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9cd5323344d8ebb9fb5e96da5de5ad4ebab993bbf51674259dbe9d7a18049525"},
|
||||||
|
{file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89feb82ca055af0fe797a2323ec9043b26bc371365847dbe83c7fd2e2f181c34"},
|
||||||
|
{file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e481bba1e11ba585fb06db666bfc23dbe181dbafc7b25776156120bf12e0d5a6"},
|
||||||
|
{file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:9d6c6ea6a11ca0ff9cd0390b885984ed31157c168565702959c25e2191674a14"},
|
||||||
|
{file = "lxml-5.2.2-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3d98de734abee23e61f6b8c2e08a88453ada7d6486dc7cdc82922a03968928db"},
|
||||||
|
{file = "lxml-5.2.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:69ab77a1373f1e7563e0fb5a29a8440367dec051da6c7405333699d07444f511"},
|
||||||
|
{file = "lxml-5.2.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:34e17913c431f5ae01d8658dbf792fdc457073dcdfbb31dc0cc6ab256e664a8d"},
|
||||||
|
{file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05f8757b03208c3f50097761be2dea0aba02e94f0dc7023ed73a7bb14ff11eb0"},
|
||||||
|
{file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6a520b4f9974b0a0a6ed73c2154de57cdfd0c8800f4f15ab2b73238ffed0b36e"},
|
||||||
|
{file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5e097646944b66207023bc3c634827de858aebc226d5d4d6d16f0b77566ea182"},
|
||||||
|
{file = "lxml-5.2.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b5e4ef22ff25bfd4ede5f8fb30f7b24446345f3e79d9b7455aef2836437bc38a"},
|
||||||
|
{file = "lxml-5.2.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:ff69a9a0b4b17d78170c73abe2ab12084bdf1691550c5629ad1fe7849433f324"},
|
||||||
|
{file = "lxml-5.2.2.tar.gz", hash = "sha256:bb2dc4898180bea79863d5487e5f9c7c34297414bad54bcd0f0852aee9cfdb87"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
cssselect = ["cssselect (>=0.7)"]
|
cssselect = ["cssselect (>=0.7)"]
|
||||||
|
html-clean = ["lxml-html-clean"]
|
||||||
html5 = ["html5lib"]
|
html5 = ["html5lib"]
|
||||||
htmlsoup = ["BeautifulSoup4"]
|
htmlsoup = ["BeautifulSoup4"]
|
||||||
source = ["Cython (>=3.0.7)"]
|
source = ["Cython (>=3.0.10)"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "lxml-html-clean"
|
||||||
|
version = "0.1.1"
|
||||||
|
description = "HTML cleaner from lxml project"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
files = [
|
||||||
|
{file = "lxml_html_clean-0.1.1-py3-none-any.whl", hash = "sha256:58c04176593c9caf72ec92e033d2f38859e918b3eff0cc0f8051ad27dc2ab8ef"},
|
||||||
|
{file = "lxml_html_clean-0.1.1.tar.gz", hash = "sha256:8a644ed01dbbe132fabddb9467f077f6dad12a1d4f3a6a553e280f3815fa46df"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
lxml = "*"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mako"
|
name = "mako"
|
||||||
@@ -1376,13 +1455,13 @@ pyyaml = ">=5.1"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mkdocs-material"
|
name = "mkdocs-material"
|
||||||
version = "9.5.24"
|
version = "9.5.25"
|
||||||
description = "Documentation that simply works"
|
description = "Documentation that simply works"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "mkdocs_material-9.5.24-py3-none-any.whl", hash = "sha256:e12cd75954c535b61e716f359cf2a5056bf4514889d17161fdebd5df4b0153c6"},
|
{file = "mkdocs_material-9.5.25-py3-none-any.whl", hash = "sha256:68fdab047a0b9bfbefe79ce267e8a7daaf5128bcf7867065fcd201ee335fece1"},
|
||||||
{file = "mkdocs_material-9.5.24.tar.gz", hash = "sha256:02d5aaba0ee755e707c3ef6e748f9acb7b3011187c0ea766db31af8905078a34"},
|
{file = "mkdocs_material-9.5.25.tar.gz", hash = "sha256:d0662561efb725b712207e0ee01f035ca15633f29a64628e24f01ec99d7078f4"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
@@ -1504,13 +1583,13 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"]
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "openai"
|
name = "openai"
|
||||||
version = "1.30.1"
|
version = "1.31.0"
|
||||||
description = "The official Python library for the openai API"
|
description = "The official Python library for the openai API"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.7.1"
|
python-versions = ">=3.7.1"
|
||||||
files = [
|
files = [
|
||||||
{file = "openai-1.30.1-py3-none-any.whl", hash = "sha256:c9fb3c3545c118bbce8deb824397b9433a66d0d0ede6a96f7009c95b76de4a46"},
|
{file = "openai-1.31.0-py3-none-any.whl", hash = "sha256:82044ee3122113f2a468a1f308a8882324d09556ba5348687c535d3655ee331c"},
|
||||||
{file = "openai-1.30.1.tar.gz", hash = "sha256:4f85190e577cba0b066e1950b8eb9b11d25bc7ebcc43a86b326ce1bfa564ec74"},
|
{file = "openai-1.31.0.tar.gz", hash = "sha256:54ae0625b005d6a3b895db2b8438dae1059cffff0cd262a26e9015c13a29ab06"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
@@ -1947,18 +2026,18 @@ files = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pydantic"
|
name = "pydantic"
|
||||||
version = "2.7.1"
|
version = "2.7.3"
|
||||||
description = "Data validation using Python type hints"
|
description = "Data validation using Python type hints"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "pydantic-2.7.1-py3-none-any.whl", hash = "sha256:e029badca45266732a9a79898a15ae2e8b14840b1eabbb25844be28f0b33f3d5"},
|
{file = "pydantic-2.7.3-py3-none-any.whl", hash = "sha256:ea91b002777bf643bb20dd717c028ec43216b24a6001a280f83877fd2655d0b4"},
|
||||||
{file = "pydantic-2.7.1.tar.gz", hash = "sha256:e9dbb5eada8abe4d9ae5f46b9939aead650cd2b68f249bb3a8139dbe125803cc"},
|
{file = "pydantic-2.7.3.tar.gz", hash = "sha256:c46c76a40bb1296728d7a8b99aa73dd70a48c3510111ff290034f860c99c419e"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
annotated-types = ">=0.4.0"
|
annotated-types = ">=0.4.0"
|
||||||
pydantic-core = "2.18.2"
|
pydantic-core = "2.18.4"
|
||||||
typing-extensions = ">=4.6.1"
|
typing-extensions = ">=4.6.1"
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
@@ -1966,90 +2045,90 @@ email = ["email-validator (>=2.0.0)"]
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pydantic-core"
|
name = "pydantic-core"
|
||||||
version = "2.18.2"
|
version = "2.18.4"
|
||||||
description = "Core functionality for Pydantic validation and serialization"
|
description = "Core functionality for Pydantic validation and serialization"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "pydantic_core-2.18.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:9e08e867b306f525802df7cd16c44ff5ebbe747ff0ca6cf3fde7f36c05a59a81"},
|
{file = "pydantic_core-2.18.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:f76d0ad001edd426b92233d45c746fd08f467d56100fd8f30e9ace4b005266e4"},
|
||||||
{file = "pydantic_core-2.18.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f0a21cbaa69900cbe1a2e7cad2aa74ac3cf21b10c3efb0fa0b80305274c0e8a2"},
|
{file = "pydantic_core-2.18.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:59ff3e89f4eaf14050c8022011862df275b552caef8082e37b542b066ce1ff26"},
|
||||||
{file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0680b1f1f11fda801397de52c36ce38ef1c1dc841a0927a94f226dea29c3ae3d"},
|
{file = "pydantic_core-2.18.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a55b5b16c839df1070bc113c1f7f94a0af4433fcfa1b41799ce7606e5c79ce0a"},
|
||||||
{file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:95b9d5e72481d3780ba3442eac863eae92ae43a5f3adb5b4d0a1de89d42bb250"},
|
{file = "pydantic_core-2.18.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4d0dcc59664fcb8974b356fe0a18a672d6d7cf9f54746c05f43275fc48636851"},
|
||||||
{file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4fcf5cd9c4b655ad666ca332b9a081112cd7a58a8b5a6ca7a3104bc950f2038"},
|
{file = "pydantic_core-2.18.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8951eee36c57cd128f779e641e21eb40bc5073eb28b2d23f33eb0ef14ffb3f5d"},
|
||||||
{file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b5155ff768083cb1d62f3e143b49a8a3432e6789a3abee8acd005c3c7af1c74"},
|
{file = "pydantic_core-2.18.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4701b19f7e3a06ea655513f7938de6f108123bf7c86bbebb1196eb9bd35cf724"},
|
||||||
{file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:553ef617b6836fc7e4df130bb851e32fe357ce36336d897fd6646d6058d980af"},
|
{file = "pydantic_core-2.18.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e00a3f196329e08e43d99b79b286d60ce46bed10f2280d25a1718399457e06be"},
|
||||||
{file = "pydantic_core-2.18.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b89ed9eb7d616ef5714e5590e6cf7f23b02d0d539767d33561e3675d6f9e3857"},
|
{file = "pydantic_core-2.18.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:97736815b9cc893b2b7f663628e63f436018b75f44854c8027040e05230eeddb"},
|
||||||
{file = "pydantic_core-2.18.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:75f7e9488238e920ab6204399ded280dc4c307d034f3924cd7f90a38b1829563"},
|
{file = "pydantic_core-2.18.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6891a2ae0e8692679c07728819b6e2b822fb30ca7445f67bbf6509b25a96332c"},
|
||||||
{file = "pydantic_core-2.18.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ef26c9e94a8c04a1b2924149a9cb081836913818e55681722d7f29af88fe7b38"},
|
{file = "pydantic_core-2.18.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bc4ff9805858bd54d1a20efff925ccd89c9d2e7cf4986144b30802bf78091c3e"},
|
||||||
{file = "pydantic_core-2.18.2-cp310-none-win32.whl", hash = "sha256:182245ff6b0039e82b6bb585ed55a64d7c81c560715d1bad0cbad6dfa07b4027"},
|
{file = "pydantic_core-2.18.4-cp310-none-win32.whl", hash = "sha256:1b4de2e51bbcb61fdebd0ab86ef28062704f62c82bbf4addc4e37fa4b00b7cbc"},
|
||||||
{file = "pydantic_core-2.18.2-cp310-none-win_amd64.whl", hash = "sha256:e23ec367a948b6d812301afc1b13f8094ab7b2c280af66ef450efc357d2ae543"},
|
{file = "pydantic_core-2.18.4-cp310-none-win_amd64.whl", hash = "sha256:6a750aec7bf431517a9fd78cb93c97b9b0c496090fee84a47a0d23668976b4b0"},
|
||||||
{file = "pydantic_core-2.18.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:219da3f096d50a157f33645a1cf31c0ad1fe829a92181dd1311022f986e5fbe3"},
|
{file = "pydantic_core-2.18.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:942ba11e7dfb66dc70f9ae66b33452f51ac7bb90676da39a7345e99ffb55402d"},
|
||||||
{file = "pydantic_core-2.18.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cc1cfd88a64e012b74e94cd00bbe0f9c6df57049c97f02bb07d39e9c852e19a4"},
|
{file = "pydantic_core-2.18.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b2ebef0e0b4454320274f5e83a41844c63438fdc874ea40a8b5b4ecb7693f1c4"},
|
||||||
{file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:05b7133a6e6aeb8df37d6f413f7705a37ab4031597f64ab56384c94d98fa0e90"},
|
{file = "pydantic_core-2.18.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a642295cd0c8df1b86fc3dced1d067874c353a188dc8e0f744626d49e9aa51c4"},
|
||||||
{file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:224c421235f6102e8737032483f43c1a8cfb1d2f45740c44166219599358c2cd"},
|
{file = "pydantic_core-2.18.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f09baa656c904807e832cf9cce799c6460c450c4ad80803517032da0cd062e2"},
|
||||||
{file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b14d82cdb934e99dda6d9d60dc84a24379820176cc4a0d123f88df319ae9c150"},
|
{file = "pydantic_core-2.18.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98906207f29bc2c459ff64fa007afd10a8c8ac080f7e4d5beff4c97086a3dabd"},
|
||||||
{file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2728b01246a3bba6de144f9e3115b532ee44bd6cf39795194fb75491824a1413"},
|
{file = "pydantic_core-2.18.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:19894b95aacfa98e7cb093cd7881a0c76f55731efad31073db4521e2b6ff5b7d"},
|
||||||
{file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:470b94480bb5ee929f5acba6995251ada5e059a5ef3e0dfc63cca287283ebfa6"},
|
{file = "pydantic_core-2.18.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0fbbdc827fe5e42e4d196c746b890b3d72876bdbf160b0eafe9f0334525119c8"},
|
||||||
{file = "pydantic_core-2.18.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:997abc4df705d1295a42f95b4eec4950a37ad8ae46d913caeee117b6b198811c"},
|
{file = "pydantic_core-2.18.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f85d05aa0918283cf29a30b547b4df2fbb56b45b135f9e35b6807cb28bc47951"},
|
||||||
{file = "pydantic_core-2.18.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:75250dbc5290e3f1a0f4618db35e51a165186f9034eff158f3d490b3fed9f8a0"},
|
{file = "pydantic_core-2.18.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e85637bc8fe81ddb73fda9e56bab24560bdddfa98aa64f87aaa4e4b6730c23d2"},
|
||||||
{file = "pydantic_core-2.18.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4456f2dca97c425231d7315737d45239b2b51a50dc2b6f0c2bb181fce6207664"},
|
{file = "pydantic_core-2.18.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:2f5966897e5461f818e136b8451d0551a2e77259eb0f73a837027b47dc95dab9"},
|
||||||
{file = "pydantic_core-2.18.2-cp311-none-win32.whl", hash = "sha256:269322dcc3d8bdb69f054681edff86276b2ff972447863cf34c8b860f5188e2e"},
|
{file = "pydantic_core-2.18.4-cp311-none-win32.whl", hash = "sha256:44c7486a4228413c317952e9d89598bcdfb06399735e49e0f8df643e1ccd0558"},
|
||||||
{file = "pydantic_core-2.18.2-cp311-none-win_amd64.whl", hash = "sha256:800d60565aec896f25bc3cfa56d2277d52d5182af08162f7954f938c06dc4ee3"},
|
{file = "pydantic_core-2.18.4-cp311-none-win_amd64.whl", hash = "sha256:8a7164fe2005d03c64fd3b85649891cd4953a8de53107940bf272500ba8a788b"},
|
||||||
{file = "pydantic_core-2.18.2-cp311-none-win_arm64.whl", hash = "sha256:1404c69d6a676245199767ba4f633cce5f4ad4181f9d0ccb0577e1f66cf4c46d"},
|
{file = "pydantic_core-2.18.4-cp311-none-win_arm64.whl", hash = "sha256:4e99bc050fe65c450344421017f98298a97cefc18c53bb2f7b3531eb39bc7805"},
|
||||||
{file = "pydantic_core-2.18.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:fb2bd7be70c0fe4dfd32c951bc813d9fe6ebcbfdd15a07527796c8204bd36242"},
|
{file = "pydantic_core-2.18.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:6f5c4d41b2771c730ea1c34e458e781b18cc668d194958e0112455fff4e402b2"},
|
||||||
{file = "pydantic_core-2.18.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6132dd3bd52838acddca05a72aafb6eab6536aa145e923bb50f45e78b7251043"},
|
{file = "pydantic_core-2.18.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2fdf2156aa3d017fddf8aea5adfba9f777db1d6022d392b682d2a8329e087cef"},
|
||||||
{file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7d904828195733c183d20a54230c0df0eb46ec746ea1a666730787353e87182"},
|
{file = "pydantic_core-2.18.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4748321b5078216070b151d5271ef3e7cc905ab170bbfd27d5c83ee3ec436695"},
|
||||||
{file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c9bd70772c720142be1020eac55f8143a34ec9f82d75a8e7a07852023e46617f"},
|
{file = "pydantic_core-2.18.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:847a35c4d58721c5dc3dba599878ebbdfd96784f3fb8bb2c356e123bdcd73f34"},
|
||||||
{file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2b8ed04b3582771764538f7ee7001b02e1170223cf9b75dff0bc698fadb00cf3"},
|
{file = "pydantic_core-2.18.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3c40d4eaad41f78e3bbda31b89edc46a3f3dc6e171bf0ecf097ff7a0ffff7cb1"},
|
||||||
{file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e6dac87ddb34aaec85f873d737e9d06a3555a1cc1a8e0c44b7f8d5daeb89d86f"},
|
{file = "pydantic_core-2.18.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:21a5e440dbe315ab9825fcd459b8814bb92b27c974cbc23c3e8baa2b76890077"},
|
||||||
{file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ca4ae5a27ad7a4ee5170aebce1574b375de390bc01284f87b18d43a3984df72"},
|
{file = "pydantic_core-2.18.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:01dd777215e2aa86dfd664daed5957704b769e726626393438f9c87690ce78c3"},
|
||||||
{file = "pydantic_core-2.18.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:886eec03591b7cf058467a70a87733b35f44707bd86cf64a615584fd72488b7c"},
|
{file = "pydantic_core-2.18.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4b06beb3b3f1479d32befd1f3079cc47b34fa2da62457cdf6c963393340b56e9"},
|
||||||
{file = "pydantic_core-2.18.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ca7b0c1f1c983e064caa85f3792dd2fe3526b3505378874afa84baf662e12241"},
|
{file = "pydantic_core-2.18.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:564d7922e4b13a16b98772441879fcdcbe82ff50daa622d681dd682175ea918c"},
|
||||||
{file = "pydantic_core-2.18.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4b4356d3538c3649337df4074e81b85f0616b79731fe22dd11b99499b2ebbdf3"},
|
{file = "pydantic_core-2.18.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:0eb2a4f660fcd8e2b1c90ad566db2b98d7f3f4717c64fe0a83e0adb39766d5b8"},
|
||||||
{file = "pydantic_core-2.18.2-cp312-none-win32.whl", hash = "sha256:8b172601454f2d7701121bbec3425dd71efcb787a027edf49724c9cefc14c038"},
|
{file = "pydantic_core-2.18.4-cp312-none-win32.whl", hash = "sha256:8b8bab4c97248095ae0c4455b5a1cd1cdd96e4e4769306ab19dda135ea4cdb07"},
|
||||||
{file = "pydantic_core-2.18.2-cp312-none-win_amd64.whl", hash = "sha256:b1bd7e47b1558ea872bd16c8502c414f9e90dcf12f1395129d7bb42a09a95438"},
|
{file = "pydantic_core-2.18.4-cp312-none-win_amd64.whl", hash = "sha256:14601cdb733d741b8958224030e2bfe21a4a881fb3dd6fbb21f071cabd48fa0a"},
|
||||||
{file = "pydantic_core-2.18.2-cp312-none-win_arm64.whl", hash = "sha256:98758d627ff397e752bc339272c14c98199c613f922d4a384ddc07526c86a2ec"},
|
{file = "pydantic_core-2.18.4-cp312-none-win_arm64.whl", hash = "sha256:c1322d7dd74713dcc157a2b7898a564ab091ca6c58302d5c7b4c07296e3fd00f"},
|
||||||
{file = "pydantic_core-2.18.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:9fdad8e35f278b2c3eb77cbdc5c0a49dada440657bf738d6905ce106dc1de439"},
|
{file = "pydantic_core-2.18.4-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:823be1deb01793da05ecb0484d6c9e20baebb39bd42b5d72636ae9cf8350dbd2"},
|
||||||
{file = "pydantic_core-2.18.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:1d90c3265ae107f91a4f279f4d6f6f1d4907ac76c6868b27dc7fb33688cfb347"},
|
{file = "pydantic_core-2.18.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ebef0dd9bf9b812bf75bda96743f2a6c5734a02092ae7f721c048d156d5fabae"},
|
||||||
{file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:390193c770399861d8df9670fb0d1874f330c79caaca4642332df7c682bf6b91"},
|
{file = "pydantic_core-2.18.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ae1d6df168efb88d7d522664693607b80b4080be6750c913eefb77e34c12c71a"},
|
||||||
{file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:82d5d4d78e4448683cb467897fe24e2b74bb7b973a541ea1dcfec1d3cbce39fb"},
|
{file = "pydantic_core-2.18.4-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f9899c94762343f2cc2fc64c13e7cae4c3cc65cdfc87dd810a31654c9b7358cc"},
|
||||||
{file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4774f3184d2ef3e14e8693194f661dea5a4d6ca4e3dc8e39786d33a94865cefd"},
|
{file = "pydantic_core-2.18.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:99457f184ad90235cfe8461c4d70ab7dd2680e28821c29eca00252ba90308c78"},
|
||||||
{file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d4d938ec0adf5167cb335acb25a4ee69a8107e4984f8fbd2e897021d9e4ca21b"},
|
{file = "pydantic_core-2.18.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18f469a3d2a2fdafe99296a87e8a4c37748b5080a26b806a707f25a902c040a8"},
|
||||||
{file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0e8b1be28239fc64a88a8189d1df7fad8be8c1ae47fcc33e43d4be15f99cc70"},
|
{file = "pydantic_core-2.18.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b7cdf28938ac6b8b49ae5e92f2735056a7ba99c9b110a474473fd71185c1af5d"},
|
||||||
{file = "pydantic_core-2.18.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:868649da93e5a3d5eacc2b5b3b9235c98ccdbfd443832f31e075f54419e1b96b"},
|
{file = "pydantic_core-2.18.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:938cb21650855054dc54dfd9120a851c974f95450f00683399006aa6e8abb057"},
|
||||||
{file = "pydantic_core-2.18.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:78363590ef93d5d226ba21a90a03ea89a20738ee5b7da83d771d283fd8a56761"},
|
{file = "pydantic_core-2.18.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:44cd83ab6a51da80fb5adbd9560e26018e2ac7826f9626bc06ca3dc074cd198b"},
|
||||||
{file = "pydantic_core-2.18.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:852e966fbd035a6468fc0a3496589b45e2208ec7ca95c26470a54daed82a0788"},
|
{file = "pydantic_core-2.18.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:972658f4a72d02b8abfa2581d92d59f59897d2e9f7e708fdabe922f9087773af"},
|
||||||
{file = "pydantic_core-2.18.2-cp38-none-win32.whl", hash = "sha256:6a46e22a707e7ad4484ac9ee9f290f9d501df45954184e23fc29408dfad61350"},
|
{file = "pydantic_core-2.18.4-cp38-none-win32.whl", hash = "sha256:1d886dc848e60cb7666f771e406acae54ab279b9f1e4143babc9c2258213daa2"},
|
||||||
{file = "pydantic_core-2.18.2-cp38-none-win_amd64.whl", hash = "sha256:d91cb5ea8b11607cc757675051f61b3d93f15eca3cefb3e6c704a5d6e8440f4e"},
|
{file = "pydantic_core-2.18.4-cp38-none-win_amd64.whl", hash = "sha256:bb4462bd43c2460774914b8525f79b00f8f407c945d50881568f294c1d9b4443"},
|
||||||
{file = "pydantic_core-2.18.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:ae0a8a797a5e56c053610fa7be147993fe50960fa43609ff2a9552b0e07013e8"},
|
{file = "pydantic_core-2.18.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:44a688331d4a4e2129140a8118479443bd6f1905231138971372fcde37e43528"},
|
||||||
{file = "pydantic_core-2.18.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:042473b6280246b1dbf530559246f6842b56119c2926d1e52b631bdc46075f2a"},
|
{file = "pydantic_core-2.18.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a2fdd81edd64342c85ac7cf2753ccae0b79bf2dfa063785503cb85a7d3593223"},
|
||||||
{file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a388a77e629b9ec814c1b1e6b3b595fe521d2cdc625fcca26fbc2d44c816804"},
|
{file = "pydantic_core-2.18.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:86110d7e1907ab36691f80b33eb2da87d780f4739ae773e5fc83fb272f88825f"},
|
||||||
{file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e25add29b8f3b233ae90ccef2d902d0ae0432eb0d45370fe315d1a5cf231004b"},
|
{file = "pydantic_core-2.18.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:46387e38bd641b3ee5ce247563b60c5ca098da9c56c75c157a05eaa0933ed154"},
|
||||||
{file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f459a5ce8434614dfd39bbebf1041952ae01da6bed9855008cb33b875cb024c0"},
|
{file = "pydantic_core-2.18.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:123c3cec203e3f5ac7b000bd82235f1a3eced8665b63d18be751f115588fea30"},
|
||||||
{file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eff2de745698eb46eeb51193a9f41d67d834d50e424aef27df2fcdee1b153845"},
|
{file = "pydantic_core-2.18.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dc1803ac5c32ec324c5261c7209e8f8ce88e83254c4e1aebdc8b0a39f9ddb443"},
|
||||||
{file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8309f67285bdfe65c372ea3722b7a5642680f3dba538566340a9d36e920b5f0"},
|
{file = "pydantic_core-2.18.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53db086f9f6ab2b4061958d9c276d1dbe3690e8dd727d6abf2321d6cce37fa94"},
|
||||||
{file = "pydantic_core-2.18.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f93a8a2e3938ff656a7c1bc57193b1319960ac015b6e87d76c76bf14fe0244b4"},
|
{file = "pydantic_core-2.18.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:abc267fa9837245cc28ea6929f19fa335f3dc330a35d2e45509b6566dc18be23"},
|
||||||
{file = "pydantic_core-2.18.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:22057013c8c1e272eb8d0eebc796701167d8377441ec894a8fed1af64a0bf399"},
|
{file = "pydantic_core-2.18.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a0d829524aaefdebccb869eed855e2d04c21d2d7479b6cada7ace5448416597b"},
|
||||||
{file = "pydantic_core-2.18.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cfeecd1ac6cc1fb2692c3d5110781c965aabd4ec5d32799773ca7b1456ac636b"},
|
{file = "pydantic_core-2.18.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:509daade3b8649f80d4e5ff21aa5673e4ebe58590b25fe42fac5f0f52c6f034a"},
|
||||||
{file = "pydantic_core-2.18.2-cp39-none-win32.whl", hash = "sha256:0d69b4c2f6bb3e130dba60d34c0845ba31b69babdd3f78f7c0c8fae5021a253e"},
|
{file = "pydantic_core-2.18.4-cp39-none-win32.whl", hash = "sha256:ca26a1e73c48cfc54c4a76ff78df3727b9d9f4ccc8dbee4ae3f73306a591676d"},
|
||||||
{file = "pydantic_core-2.18.2-cp39-none-win_amd64.whl", hash = "sha256:d9319e499827271b09b4e411905b24a426b8fb69464dfa1696258f53a3334641"},
|
{file = "pydantic_core-2.18.4-cp39-none-win_amd64.whl", hash = "sha256:c67598100338d5d985db1b3d21f3619ef392e185e71b8d52bceacc4a7771ea7e"},
|
||||||
{file = "pydantic_core-2.18.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a1874c6dd4113308bd0eb568418e6114b252afe44319ead2b4081e9b9521fe75"},
|
{file = "pydantic_core-2.18.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:574d92eac874f7f4db0ca653514d823a0d22e2354359d0759e3f6a406db5d55d"},
|
||||||
{file = "pydantic_core-2.18.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:ccdd111c03bfd3666bd2472b674c6899550e09e9f298954cfc896ab92b5b0e6d"},
|
{file = "pydantic_core-2.18.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:1f4d26ceb5eb9eed4af91bebeae4b06c3fb28966ca3a8fb765208cf6b51102ab"},
|
||||||
{file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e18609ceaa6eed63753037fc06ebb16041d17d28199ae5aba0052c51449650a9"},
|
{file = "pydantic_core-2.18.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77450e6d20016ec41f43ca4a6c63e9fdde03f0ae3fe90e7c27bdbeaece8b1ed4"},
|
||||||
{file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e5c584d357c4e2baf0ff7baf44f4994be121e16a2c88918a5817331fc7599d7"},
|
{file = "pydantic_core-2.18.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d323a01da91851a4f17bf592faf46149c9169d68430b3146dcba2bb5e5719abc"},
|
||||||
{file = "pydantic_core-2.18.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43f0f463cf89ace478de71a318b1b4f05ebc456a9b9300d027b4b57c1a2064fb"},
|
{file = "pydantic_core-2.18.4-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:43d447dd2ae072a0065389092a231283f62d960030ecd27565672bd40746c507"},
|
||||||
{file = "pydantic_core-2.18.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:e1b395e58b10b73b07b7cf740d728dd4ff9365ac46c18751bf8b3d8cca8f625a"},
|
{file = "pydantic_core-2.18.4-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:578e24f761f3b425834f297b9935e1ce2e30f51400964ce4801002435a1b41ef"},
|
||||||
{file = "pydantic_core-2.18.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0098300eebb1c837271d3d1a2cd2911e7c11b396eac9661655ee524a7f10587b"},
|
{file = "pydantic_core-2.18.4-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:81b5efb2f126454586d0f40c4d834010979cb80785173d1586df845a632e4e6d"},
|
||||||
{file = "pydantic_core-2.18.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:36789b70d613fbac0a25bb07ab3d9dba4d2e38af609c020cf4d888d165ee0bf3"},
|
{file = "pydantic_core-2.18.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:ab86ce7c8f9bea87b9d12c7f0af71102acbf5ecbc66c17796cff45dae54ef9a5"},
|
||||||
{file = "pydantic_core-2.18.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3f9a801e7c8f1ef8718da265bba008fa121243dfe37c1cea17840b0944dfd72c"},
|
{file = "pydantic_core-2.18.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:90afc12421df2b1b4dcc975f814e21bc1754640d502a2fbcc6d41e77af5ec312"},
|
||||||
{file = "pydantic_core-2.18.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:3a6515ebc6e69d85502b4951d89131ca4e036078ea35533bb76327f8424531ce"},
|
{file = "pydantic_core-2.18.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:51991a89639a912c17bef4b45c87bd83593aee0437d8102556af4885811d59f5"},
|
||||||
{file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20aca1e2298c56ececfd8ed159ae4dde2df0781988c97ef77d5c16ff4bd5b400"},
|
{file = "pydantic_core-2.18.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:293afe532740370aba8c060882f7d26cfd00c94cae32fd2e212a3a6e3b7bc15e"},
|
||||||
{file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:223ee893d77a310a0391dca6df00f70bbc2f36a71a895cecd9a0e762dc37b349"},
|
{file = "pydantic_core-2.18.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b48ece5bde2e768197a2d0f6e925f9d7e3e826f0ad2271120f8144a9db18d5c8"},
|
||||||
{file = "pydantic_core-2.18.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2334ce8c673ee93a1d6a65bd90327588387ba073c17e61bf19b4fd97d688d63c"},
|
{file = "pydantic_core-2.18.4-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:eae237477a873ab46e8dd748e515c72c0c804fb380fbe6c85533c7de51f23a8f"},
|
||||||
{file = "pydantic_core-2.18.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:cbca948f2d14b09d20268cda7b0367723d79063f26c4ffc523af9042cad95592"},
|
{file = "pydantic_core-2.18.4-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:834b5230b5dfc0c1ec37b2fda433b271cbbc0e507560b5d1588e2cc1148cf1ce"},
|
||||||
{file = "pydantic_core-2.18.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:b3ef08e20ec49e02d5c6717a91bb5af9b20f1805583cb0adfe9ba2c6b505b5ae"},
|
{file = "pydantic_core-2.18.4-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e858ac0a25074ba4bce653f9b5d0a85b7456eaddadc0ce82d3878c22489fa4ee"},
|
||||||
{file = "pydantic_core-2.18.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:c6fdc8627910eed0c01aed6a390a252fe3ea6d472ee70fdde56273f198938374"},
|
{file = "pydantic_core-2.18.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2fd41f6eff4c20778d717af1cc50eca52f5afe7805ee530a4fbd0bae284f16e9"},
|
||||||
{file = "pydantic_core-2.18.2.tar.gz", hash = "sha256:2e29d20810dfc3043ee13ac7d9e25105799817683348823f305ab3f349b9386e"},
|
{file = "pydantic_core-2.18.4.tar.gz", hash = "sha256:ec3beeada09ff865c344ff3bc2f427f5e6c26401cc6113d77e372c3fdac73864"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
@@ -2057,17 +2136,17 @@ typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pydantic-settings"
|
name = "pydantic-settings"
|
||||||
version = "2.2.1"
|
version = "2.3.0"
|
||||||
description = "Settings management using Pydantic"
|
description = "Settings management using Pydantic"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "pydantic_settings-2.2.1-py3-none-any.whl", hash = "sha256:0235391d26db4d2190cb9b31051c4b46882d28a51533f97440867f012d4da091"},
|
{file = "pydantic_settings-2.3.0-py3-none-any.whl", hash = "sha256:26eeed27370a9c5e3f64e4a7d6602573cbedf05ed940f1d5b11c3f178427af7a"},
|
||||||
{file = "pydantic_settings-2.2.1.tar.gz", hash = "sha256:00b9f6a5e95553590434c0fa01ead0b216c3e10bc54ae02e37f359948643c5ed"},
|
{file = "pydantic_settings-2.3.0.tar.gz", hash = "sha256:78db28855a71503cfe47f39500a1dece523c640afd5280edb5c5c9c9cfa534c9"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
pydantic = ">=2.3.0"
|
pydantic = ">=2.7.0"
|
||||||
python-dotenv = ">=0.21.0"
|
python-dotenv = ">=0.21.0"
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
@@ -2212,13 +2291,13 @@ rdflib = "*"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pytest"
|
name = "pytest"
|
||||||
version = "8.2.1"
|
version = "8.2.2"
|
||||||
description = "pytest: simple powerful testing with Python"
|
description = "pytest: simple powerful testing with Python"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "pytest-8.2.1-py3-none-any.whl", hash = "sha256:faccc5d332b8c3719f40283d0d44aa5cf101cec36f88cde9ed8f2bc0538612b1"},
|
{file = "pytest-8.2.2-py3-none-any.whl", hash = "sha256:c434598117762e2bd304e526244f67bf66bbd7b5d6cf22138be51ff661980343"},
|
||||||
{file = "pytest-8.2.1.tar.gz", hash = "sha256:5046e5b46d8e4cac199c373041f26be56fdb81eb4e67dc11d4e10811fc3408fd"},
|
{file = "pytest-8.2.2.tar.gz", hash = "sha256:de4bb8104e201939ccdc688b27a89a7be2079b22e2bd2b07f806b6ba71117977"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
@@ -2399,104 +2478,104 @@ pyyaml = "*"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rapidfuzz"
|
name = "rapidfuzz"
|
||||||
version = "3.9.1"
|
version = "3.9.3"
|
||||||
description = "rapid fuzzy string matching"
|
description = "rapid fuzzy string matching"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "rapidfuzz-3.9.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5f897a9bff517d5c6af6a90131796b4298b547b9a9a4df3cf285006be33aae5b"},
|
{file = "rapidfuzz-3.9.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bdb8c5b8e29238ec80727c2ba3b301efd45aa30c6a7001123a6647b8e6f77ea4"},
|
||||||
{file = "rapidfuzz-3.9.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:83c570ce23b447625929c0e7c4f2eab6d90f5a576db2b26a5aa0594a53d560ea"},
|
{file = "rapidfuzz-3.9.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b3bd0d9632088c63a241f217742b1cf86e2e8ae573e01354775bd5016d12138c"},
|
||||||
{file = "rapidfuzz-3.9.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e4c6b6455ee8404a663e15477a8bfe98b1afb329ff224bcf6d15f623a3761b95"},
|
{file = "rapidfuzz-3.9.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:153f23c03d4917f6a1fc2fb56d279cc6537d1929237ff08ee7429d0e40464a18"},
|
||||||
{file = "rapidfuzz-3.9.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aa44aef769e5834fef4fde091fd646cc1c52a2813b3aa241ae54b3028960abaa"},
|
{file = "rapidfuzz-3.9.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a96c5225e840f1587f1bac8fa6f67562b38e095341576e82b728a82021f26d62"},
|
||||||
{file = "rapidfuzz-3.9.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:25ea055ae40fb60f503f02b44b3ac35a39a9108be33f89e05b81bc4e3c849ec8"},
|
{file = "rapidfuzz-3.9.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b777cd910ceecd738adc58593d6ed42e73f60ad04ecdb4a841ae410b51c92e0e"},
|
||||||
{file = "rapidfuzz-3.9.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fb592bad9d58b47c6681f0c180767d2c98775a35f7267131d33723139c3d6c2e"},
|
{file = "rapidfuzz-3.9.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:53e06e4b81f552da04940aa41fc556ba39dee5513d1861144300c36c33265b76"},
|
||||||
{file = "rapidfuzz-3.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb023adfefa62410fff877f7cc70cd4758cbfbad963e87d146cf71b022dce197"},
|
{file = "rapidfuzz-3.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c7ca5b6050f18fdcacdada2dc5fb7619ff998cd9aba82aed2414eee74ebe6cd"},
|
||||||
{file = "rapidfuzz-3.9.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c883d2d2e31c759af1f3fdeb67ec151cf94e307f745b3d02ab3a2ef6595485f2"},
|
{file = "rapidfuzz-3.9.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:87bb8d84cb41446a808c4b5f746e29d8a53499381ed72f6c4e456fe0f81c80a8"},
|
||||||
{file = "rapidfuzz-3.9.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:8e11405d81e8baea4999a5757a982009566cff8f6a121d5ccf042aab81ae0230"},
|
{file = "rapidfuzz-3.9.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:959a15186d18425d19811bea86a8ffbe19fd48644004d29008e636631420a9b7"},
|
||||||
{file = "rapidfuzz-3.9.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:02ed579f35ddd3552c7f74bc0c10800b432d9b09a4cebb19fd7a10b3b4759cc0"},
|
{file = "rapidfuzz-3.9.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:a24603dd05fb4e3c09d636b881ce347e5f55f925a6b1b4115527308a323b9f8e"},
|
||||||
{file = "rapidfuzz-3.9.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:9f8615a2a67a1f80b3aa7a3d7fbe6a2ed062a54c98988e3f9b664b49a3bc115e"},
|
{file = "rapidfuzz-3.9.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0d055da0e801c71dd74ba81d72d41b2fa32afa182b9fea6b4b199d2ce937450d"},
|
||||||
{file = "rapidfuzz-3.9.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:64058f4a3698c6c8464df47a3b7da303db2477b2447142da3e67fc091f4c366a"},
|
{file = "rapidfuzz-3.9.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:875b581afb29a7213cf9d98cb0f98df862f1020bce9d9b2e6199b60e78a41d14"},
|
||||||
{file = "rapidfuzz-3.9.1-cp310-cp310-win32.whl", hash = "sha256:2ef42c43c94139c890aeec40bc442c4bf8d48e15b456a88ce0f4cc5cfcad1896"},
|
{file = "rapidfuzz-3.9.3-cp310-cp310-win32.whl", hash = "sha256:6073a46f61479a89802e3f04655267caa6c14eb8ac9d81a635a13805f735ebc1"},
|
||||||
{file = "rapidfuzz-3.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:c99d001c45c31c2cd2f7361bc2036d3062b21db5f43beea8bc5109d43fe9f283"},
|
{file = "rapidfuzz-3.9.3-cp310-cp310-win_amd64.whl", hash = "sha256:119c010e20e561249b99ca2627f769fdc8305b07193f63dbc07bca0a6c27e892"},
|
||||||
{file = "rapidfuzz-3.9.1-cp310-cp310-win_arm64.whl", hash = "sha256:da3f495cf4f7a443b34a6d3c6805265595fcd13641b3253a8e2034289d828dd9"},
|
{file = "rapidfuzz-3.9.3-cp310-cp310-win_arm64.whl", hash = "sha256:790b0b244f3213581d42baa2fed8875f9ee2b2f9b91f94f100ec80d15b140ba9"},
|
||||||
{file = "rapidfuzz-3.9.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f8869dcf072227a40a6f9e87b3fc4eb020055a08ad12b63d751c354e3a973ccb"},
|
{file = "rapidfuzz-3.9.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f57e8305c281e8c8bc720515540e0580355100c0a7a541105c6cafc5de71daae"},
|
||||||
{file = "rapidfuzz-3.9.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9f66f9d5f14141b4b017e76118ec4bda29266f6b281989026e3a9ba1a2aaf032"},
|
{file = "rapidfuzz-3.9.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a4fc7b784cf987dbddc300cef70e09a92ed1bce136f7bb723ea79d7e297fe76d"},
|
||||||
{file = "rapidfuzz-3.9.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:07decc6b058f935d2219423a50aac426027928cc734809f793bc250de4a3756e"},
|
{file = "rapidfuzz-3.9.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b422c0a6fe139d5447a0766268e68e6a2a8c2611519f894b1f31f0a392b9167"},
|
||||||
{file = "rapidfuzz-3.9.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c125095d1828fa10ac79077594dd2d8829167d9e184e20baa97620fc52ebdcc9"},
|
{file = "rapidfuzz-3.9.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f50fed4a9b0c9825ff37cf0bccafd51ff5792090618f7846a7650f21f85579c9"},
|
||||||
{file = "rapidfuzz-3.9.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:76a55bcc3abc9f8e38a1218cb5a09719126cfc4cba23ebd8caa27dfdc69cedd8"},
|
{file = "rapidfuzz-3.9.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b80eb7cbe62348c61d3e67e17057cddfd6defab168863028146e07d5a8b24a89"},
|
||||||
{file = "rapidfuzz-3.9.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:50c2f7ad132dfeb6247c90b41431662af939a820f761cf930708d55912377ed8"},
|
{file = "rapidfuzz-3.9.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f45be77ec82da32ce5709a362e236ccf801615cc7163b136d1778cf9e31b14"},
|
||||||
{file = "rapidfuzz-3.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:177bddf50577db59bcb00b6f7a5c2b70f2ec5a2aba40c8add7a6f7fd8609224e"},
|
{file = "rapidfuzz-3.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd84b7f652a5610733400307dc732f57c4a907080bef9520412e6d9b55bc9adc"},
|
||||||
{file = "rapidfuzz-3.9.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dec2792f864be731c8339cad99001caa6540aa909e6fd8bc688bb0419c501f44"},
|
{file = "rapidfuzz-3.9.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3e6d27dad8c990218b8cd4a5c99cbc8834f82bb46ab965a7265d5aa69fc7ced7"},
|
||||||
{file = "rapidfuzz-3.9.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:c6437cba4b9460d5ee0bafd796e13ef9307091b81685bbe745b0f1619fb887ca"},
|
{file = "rapidfuzz-3.9.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:05ee0696ebf0dfe8f7c17f364d70617616afc7dafe366532730ca34056065b8a"},
|
||||||
{file = "rapidfuzz-3.9.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:874317057a58a9c6ddf59fe1491e478217daa9fdb043a00358a15de4f62f9a2d"},
|
{file = "rapidfuzz-3.9.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:2bc8391749e5022cd9e514ede5316f86e332ffd3cfceeabdc0b17b7e45198a8c"},
|
||||||
{file = "rapidfuzz-3.9.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5d8eb7fe39e81dc1530a3ec81a35e69770839c76607c461eb9d0902427fab3e1"},
|
{file = "rapidfuzz-3.9.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:93981895602cf5944d89d317ae3b1b4cc684d175a8ae2a80ce5b65615e72ddd0"},
|
||||||
{file = "rapidfuzz-3.9.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:08f85d6674d804a493c3e9ec10a807f9bd8f482781487eda064913b537f99d7f"},
|
{file = "rapidfuzz-3.9.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:754b719a4990735f66653c9e9261dcf52fd4d925597e43d6b9069afcae700d21"},
|
||||||
{file = "rapidfuzz-3.9.1-cp311-cp311-win32.whl", hash = "sha256:eadf8c4b24b63aef8810ed585c24ac1fc022ee771211772a6e9f78c63aa949ff"},
|
{file = "rapidfuzz-3.9.3-cp311-cp311-win32.whl", hash = "sha256:14c9f268ade4c88cf77ab007ad0fdf63699af071ee69378de89fff7aa3cae134"},
|
||||||
{file = "rapidfuzz-3.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:0e931539edeb9158ef83537cd571051f8a9608737642c20b088a37bd5d76c5c9"},
|
{file = "rapidfuzz-3.9.3-cp311-cp311-win_amd64.whl", hash = "sha256:bc1991b4cde6c9d3c0bbcb83d5581dc7621bec8c666c095c65b4277233265a82"},
|
||||||
{file = "rapidfuzz-3.9.1-cp311-cp311-win_arm64.whl", hash = "sha256:bcc0ffcaeb1e499e708f32ec30177ed690b3f25455c91ad8c2240986c69f9ebe"},
|
{file = "rapidfuzz-3.9.3-cp311-cp311-win_arm64.whl", hash = "sha256:0c34139df09a61b1b557ab65782ada971b4a3bce7081d1b2bee45b0a52231adb"},
|
||||||
{file = "rapidfuzz-3.9.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:8781e45c56f7f3a64940f4d594a4ffd69360147925a706569b2b0c57347b2225"},
|
{file = "rapidfuzz-3.9.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5d6a210347d6e71234af5c76d55eeb0348b026c9bb98fe7c1cca89bac50fb734"},
|
||||||
{file = "rapidfuzz-3.9.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0edc950c6a04c19db10670cd04e33403b3eb0f175deb620f9668595d378b1005"},
|
{file = "rapidfuzz-3.9.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b300708c917ce52f6075bdc6e05b07c51a085733650f14b732c087dc26e0aaad"},
|
||||||
{file = "rapidfuzz-3.9.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ceb0d7bdec910d93793d32633ba0cb644356cf6778f9d91b727da0075beaec1"},
|
{file = "rapidfuzz-3.9.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83ea7ca577d76778250421de61fb55a719e45b841deb769351fc2b1740763050"},
|
||||||
{file = "rapidfuzz-3.9.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a231e8f3bae82f10e7188965b37c91d8bfb80136595c860c8a08eb0dd07764d"},
|
{file = "rapidfuzz-3.9.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8319838fb5b7b5f088d12187d91d152b9386ce3979ed7660daa0ed1bff953791"},
|
||||||
{file = "rapidfuzz-3.9.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9bfa8c0a8ce09b4bcd36322f8f375750dca160fbdbeb2e763a695cef3ae9133e"},
|
{file = "rapidfuzz-3.9.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:505d99131afd21529293a9a7b91dfc661b7e889680b95534756134dc1cc2cd86"},
|
||||||
{file = "rapidfuzz-3.9.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1e872627d5359c840f3e431b0beb263518048917c3e076f624870552d84e7dc6"},
|
{file = "rapidfuzz-3.9.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c52970f7784518d7c82b07a62a26e345d2de8c2bd8ed4774e13342e4b3ff4200"},
|
||||||
{file = "rapidfuzz-3.9.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f006c3af82c478df09a790fb4846b5acd00a187d75715674d71f5dc0ac982ce"},
|
{file = "rapidfuzz-3.9.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:143caf7247449055ecc3c1e874b69e42f403dfc049fc2f3d5f70e1daf21c1318"},
|
||||||
{file = "rapidfuzz-3.9.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:32718fa69306df969bf4fca1719f8900b83df315a2a8153942d5b8906f4fd1d6"},
|
{file = "rapidfuzz-3.9.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b8ab0fa653d9225195a8ff924f992f4249c1e6fa0aea563f685e71b81b9fcccf"},
|
||||||
{file = "rapidfuzz-3.9.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a89b219c1a7933a0673b2dbb1ffe701057d82e5cb843552be4f55b61b557031e"},
|
{file = "rapidfuzz-3.9.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:57e7c5bf7b61c7320cfa5dde1e60e678d954ede9bb7da8e763959b2138391401"},
|
||||||
{file = "rapidfuzz-3.9.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:b26cc9459e096959fab3a4a8a17b96a6c7c961f9db5c37c1c3c7a06789316cf7"},
|
{file = "rapidfuzz-3.9.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:51fa1ba84653ab480a2e2044e2277bd7f0123d6693051729755addc0d015c44f"},
|
||||||
{file = "rapidfuzz-3.9.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2f9044a4470343087cde10beaa36266519d5da110a9a4597b43e6aa35fa928d3"},
|
{file = "rapidfuzz-3.9.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:17ff7f7eecdb169f9236e3b872c96dbbaf116f7787f4d490abd34b0116e3e9c8"},
|
||||||
{file = "rapidfuzz-3.9.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a3a48fc6dc274b803a366a4baec99e212792ae1b1e73d42235b2042cd3ade7c1"},
|
{file = "rapidfuzz-3.9.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:afe7c72d3f917b066257f7ff48562e5d462d865a25fbcabf40fca303a9fa8d35"},
|
||||||
{file = "rapidfuzz-3.9.1-cp312-cp312-win32.whl", hash = "sha256:b71e7f99ed048a338e4a1ac34f56b3b3933a3ba2dfbb04450c786a8ddd97f4db"},
|
{file = "rapidfuzz-3.9.3-cp312-cp312-win32.whl", hash = "sha256:e53ed2e9b32674ce96eed80b3b572db9fd87aae6742941fb8e4705e541d861ce"},
|
||||||
{file = "rapidfuzz-3.9.1-cp312-cp312-win_amd64.whl", hash = "sha256:e58489934d0147f1edda693cb983bea40f2b45ae6756fd47c1005b538f817a2f"},
|
{file = "rapidfuzz-3.9.3-cp312-cp312-win_amd64.whl", hash = "sha256:35b7286f177e4d8ba1e48b03612f928a3c4bdac78e5651379cec59f95d8651e6"},
|
||||||
{file = "rapidfuzz-3.9.1-cp312-cp312-win_arm64.whl", hash = "sha256:829fbad93266fffa0f9d722a94cbb1b95b53e3c04be4e872193496a0cfbd66f0"},
|
{file = "rapidfuzz-3.9.3-cp312-cp312-win_arm64.whl", hash = "sha256:e6e4b9380ed4758d0cb578b0d1970c3f32dd9e87119378729a5340cb3169f879"},
|
||||||
{file = "rapidfuzz-3.9.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bca2b93c75f87cd85832cdd5bb06b4b5642e2a05c8e3550841ddf5d564ce4abb"},
|
{file = "rapidfuzz-3.9.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a39890013f6d5b056cc4bfdedc093e322462ece1027a57ef0c636537bdde7531"},
|
||||||
{file = "rapidfuzz-3.9.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d3397630f22e6c60dda8be3e9dbcf6a341695d487df8a6c92f4a2f7ebcdaecf7"},
|
{file = "rapidfuzz-3.9.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b5bc0fdbf419493163c5c9cb147c5fbe95b8e25844a74a8807dcb1a125e630cf"},
|
||||||
{file = "rapidfuzz-3.9.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df7bba8d4a8fb8e7559a9e83dfc5385dc6fe89efd73e32d253667242faf1883c"},
|
{file = "rapidfuzz-3.9.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efe6e200a75a792d37b960457904c4fce7c928a96ae9e5d21d2bd382fe39066e"},
|
||||||
{file = "rapidfuzz-3.9.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8e70605350cb6ec5091e06de62d3dcb058f694b059b4e1a9d85bfbf892f70030"},
|
{file = "rapidfuzz-3.9.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de077c468c225d4c18f7188c47d955a16d65f21aab121cbdd98e3e2011002c37"},
|
||||||
{file = "rapidfuzz-3.9.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:678fcaa5117ddb6263160a7c5f33cc9ea3df335465f5d53715707fad103e1d09"},
|
{file = "rapidfuzz-3.9.3-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f917eaadf5388466a95f6a236f678a1588d231e52eda85374077101842e794e"},
|
||||||
{file = "rapidfuzz-3.9.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:08dcd347d408912b6da778a73a0d7a2adad7fe238a44263e5e3789f2a8d84669"},
|
{file = "rapidfuzz-3.9.3-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:858ba57c05afd720db8088a8707079e8d024afe4644001fe0dbd26ef7ca74a65"},
|
||||||
{file = "rapidfuzz-3.9.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7149afaf0294882b6b15bb6fa9fc38ff1d761e50117460ee3561181c1c4e2230"},
|
{file = "rapidfuzz-3.9.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d36447d21b05f90282a6f98c5a33771805f9222e5d0441d03eb8824e33e5bbb4"},
|
||||||
{file = "rapidfuzz-3.9.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:0c568b89a5016e76f0b3f85e9379036da99c5e7ec26b33935453d353a1938b74"},
|
{file = "rapidfuzz-3.9.3-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:acbe4b6f1ccd5b90c29d428e849aa4242e51bb6cab0448d5f3c022eb9a25f7b1"},
|
||||||
{file = "rapidfuzz-3.9.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:a079164675d24eb715230bf9dd252683ae3c9c0c0a236f0b8098630268b899e9"},
|
{file = "rapidfuzz-3.9.3-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:53c7f27cdf899e94712972237bda48cfd427646aa6f5d939bf45d084780e4c16"},
|
||||||
{file = "rapidfuzz-3.9.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f6f4e8235d0acf1972f5eb4091c4a0473e5670a754f166c0c718ce21e945f879"},
|
{file = "rapidfuzz-3.9.3-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:6175682a829c6dea4d35ed707f1dadc16513270ef64436568d03b81ccb6bdb74"},
|
||||||
{file = "rapidfuzz-3.9.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:ea62c82eb2c65bd49651e95f4f46874483ae4da1c3b57997e58f1b4fb2de6c05"},
|
{file = "rapidfuzz-3.9.3-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:5276df395bd8497397197fca2b5c85f052d2e6a66ffc3eb0544dd9664d661f95"},
|
||||||
{file = "rapidfuzz-3.9.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:3ab6ad7e70469aed24e24378b19a9e47fc757c847399b22c612a0fccacc795cb"},
|
{file = "rapidfuzz-3.9.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:77b5c4f3e72924d7845f0e189c304270066d0f49635cf8a3938e122c437e58de"},
|
||||||
{file = "rapidfuzz-3.9.1-cp38-cp38-win32.whl", hash = "sha256:bf5184b17e26a82b00c7ee05d9ec5d826113df55830bbc447bf6d6e7469c70fb"},
|
{file = "rapidfuzz-3.9.3-cp38-cp38-win32.whl", hash = "sha256:8add34061e5cd561c72ed4febb5c15969e7b25bda2bb5102d02afc3abc1f52d0"},
|
||||||
{file = "rapidfuzz-3.9.1-cp38-cp38-win_amd64.whl", hash = "sha256:493354f50b9855271ac846b213e394e08446e70cef5cc033e5302a2220f3ae7b"},
|
{file = "rapidfuzz-3.9.3-cp38-cp38-win_amd64.whl", hash = "sha256:604e0502a39cf8e67fa9ad239394dddad4cdef6d7008fdb037553817d420e108"},
|
||||||
{file = "rapidfuzz-3.9.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c8b0e6640421e55d69e186ce7fb9e6c723cfd3b6f91beaeb28705c2a46c8a194"},
|
{file = "rapidfuzz-3.9.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:21047f55d674614eb4b0ab34e35c3dc66f36403b9fbfae645199c4a19d4ed447"},
|
||||||
{file = "rapidfuzz-3.9.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:bc68fb8f2a8b5b3a4526b7a65e7d5c7f821882f56d9dcbcce4c6859a9e5bdcd7"},
|
{file = "rapidfuzz-3.9.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a56da3aff97cb56fe85d9ca957d1f55dbac7c27da927a86a2a86d8a7e17f80aa"},
|
||||||
{file = "rapidfuzz-3.9.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77767b119ac05662d216a8cc4092ac28dbc015d9caabebdbefe371b0dd82a38e"},
|
{file = "rapidfuzz-3.9.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:964c08481aec2fe574f0062e342924db2c6b321391aeb73d68853ed42420fd6d"},
|
||||||
{file = "rapidfuzz-3.9.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5dbcc4add07bd60ea73b94392fed28f83dba0fe796097da47627fd539bd6daca"},
|
{file = "rapidfuzz-3.9.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5e2b827258beefbe5d3f958243caa5a44cf46187eff0c20e0b2ab62d1550327a"},
|
||||||
{file = "rapidfuzz-3.9.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c0899de4fc1a7a36f14be556a0dacf40ea5c0fe22c6b45b2ea2674e1ac47e269"},
|
{file = "rapidfuzz-3.9.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c6e65a301fcd19fbfbee3a514cc0014ff3f3b254b9fd65886e8a9d6957fb7bca"},
|
||||||
{file = "rapidfuzz-3.9.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e9f075366cee63a6b06bd7f9285eb9f1785382a6493afcb7054202e20508bf94"},
|
{file = "rapidfuzz-3.9.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cbe93ba1725a8d47d2b9dca6c1f435174859427fbc054d83de52aea5adc65729"},
|
||||||
{file = "rapidfuzz-3.9.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:349e9c15092d20a1f6ff1795e068f39a9ee5e84c54b3addbc66d0ac469c4ef43"},
|
{file = "rapidfuzz-3.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aca21c0a34adee582775da997a600283e012a608a107398d80a42f9a57ad323d"},
|
||||||
{file = "rapidfuzz-3.9.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:a645f362dafc103dbe7f43a2ad34f76284773cd7d1b00514d1c591848a1c817f"},
|
{file = "rapidfuzz-3.9.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:256e07d3465173b2a91c35715a2277b1ee3ae0b9bbab4e519df6af78570741d0"},
|
||||||
{file = "rapidfuzz-3.9.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:03a0a4bc8d4bd3e6f882b4c2ac183825a9b6dabe7e5a97bb6a1075e4635c944d"},
|
{file = "rapidfuzz-3.9.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:802ca2cc8aa6b8b34c6fdafb9e32540c1ba05fca7ad60b3bbd7ec89ed1797a87"},
|
||||||
{file = "rapidfuzz-3.9.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:fbce66cb2e331b0888c79b594eab76e2c609c2637050085daadff5325d471dc2"},
|
{file = "rapidfuzz-3.9.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:dd789100fc852cffac1449f82af0da139d36d84fd9faa4f79fc4140a88778343"},
|
||||||
{file = "rapidfuzz-3.9.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:e5d7b3154f6df9e05c2016de5e95f8cba4fe636a4e5520ebcd89bc6c54b8e4ed"},
|
{file = "rapidfuzz-3.9.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:5d0abbacdb06e27ff803d7ae0bd0624020096802758068ebdcab9bd49cf53115"},
|
||||||
{file = "rapidfuzz-3.9.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:aaba665f92c011c6f284e933ab02b5dc129a6d3f48fce913ec4a214bd530135e"},
|
{file = "rapidfuzz-3.9.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:378d1744828e27490a823fc6fe6ebfb98c15228d54826bf4e49e4b76eb5f5579"},
|
||||||
{file = "rapidfuzz-3.9.1-cp39-cp39-win32.whl", hash = "sha256:61b343c581f4926260248069d8fdbbbf293c19c12ef440ad5ced15bcff277a84"},
|
{file = "rapidfuzz-3.9.3-cp39-cp39-win32.whl", hash = "sha256:5d0cb272d43e6d3c0dedefdcd9d00007471f77b52d2787a4695e9dd319bb39d2"},
|
||||||
{file = "rapidfuzz-3.9.1-cp39-cp39-win_amd64.whl", hash = "sha256:ce3335324198e1388a1c4e50d40f45107367010afe9fa09fd46278160f0ab591"},
|
{file = "rapidfuzz-3.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:15e4158ac4b3fb58108072ec35b8a69165f651ba1c8f43559a36d518dbf9fb3f"},
|
||||||
{file = "rapidfuzz-3.9.1-cp39-cp39-win_arm64.whl", hash = "sha256:998977df2ae01ff8b7bc3b29a860b4a863005e0533e323df3fd555a31ef33f0e"},
|
{file = "rapidfuzz-3.9.3-cp39-cp39-win_arm64.whl", hash = "sha256:58c6a4936190c558d5626b79fc9e16497e5df7098589a7e80d8bff68148ff096"},
|
||||||
{file = "rapidfuzz-3.9.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:dc4b5de5d6f9347d836d849b56bca630169353cbe5c10fa7fe93bb1677b49770"},
|
{file = "rapidfuzz-3.9.3-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5410dc848c947a603792f4f51b904a3331cf1dc60621586bfbe7a6de72da1091"},
|
||||||
{file = "rapidfuzz-3.9.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:9f74d93148081049ccc86f276d54cd7c8c0692250245660b4fcd904ed1db1e01"},
|
{file = "rapidfuzz-3.9.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:282d55700a1a3d3a7980746eb2fcd48c9bbc1572ebe0840d0340d548a54d01fe"},
|
||||||
{file = "rapidfuzz-3.9.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f9dfdcd75e16e5874efee233b28aec1322623b0f1f20641452d06ea2d8ba5ef"},
|
{file = "rapidfuzz-3.9.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc1037507810833646481f5729901a154523f98cbebb1157ba3a821012e16402"},
|
||||||
{file = "rapidfuzz-3.9.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:97ab8f153984a5d827ebb5a5b80ee59563efcf2fa3e569dcd46ea7e7c9845e93"},
|
{file = "rapidfuzz-3.9.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5e33f779391caedcba2ba3089fb6e8e557feab540e9149a5c3f7fea7a3a7df37"},
|
||||||
{file = "rapidfuzz-3.9.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8a6d5a8edc452920efdf1b499a2a47bb8a28440f7ab3fe28bb7d6636ccf71c3"},
|
{file = "rapidfuzz-3.9.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41a81a9f311dc83d22661f9b1a1de983b201322df0c4554042ffffd0f2040c37"},
|
||||||
{file = "rapidfuzz-3.9.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:06879b598e798a4d33a283c2b4fa0d555d7706b6531e3321b161d62e986f7f57"},
|
{file = "rapidfuzz-3.9.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a93250bd8fae996350c251e1752f2c03335bb8a0a5b0c7e910a593849121a435"},
|
||||||
{file = "rapidfuzz-3.9.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0f906ab6220778404498e0ce255c4cc89f98ea5e656e54cc59c5813c877eb86b"},
|
{file = "rapidfuzz-3.9.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3617d1aa7716c57d120b6adc8f7c989f2d65bc2b0cbd5f9288f1fc7bf469da11"},
|
||||||
{file = "rapidfuzz-3.9.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:d3da444890c9559fd15717d97f8373b1cd14007f68c9b037aa93ef7ca969b559"},
|
{file = "rapidfuzz-3.9.3-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:ad04a3f5384b82933213bba2459f6424decc2823df40098920856bdee5fd6e88"},
|
||||||
{file = "rapidfuzz-3.9.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc4503841cd3cbe22b5ac44f15bc834ec97d811a3c3943f73f5643266c8674e1"},
|
{file = "rapidfuzz-3.9.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8709918da8a88ad73c9d4dd0ecf24179a4f0ceba0bee21efc6ea21a8b5290349"},
|
||||||
{file = "rapidfuzz-3.9.1-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5713c56b30ed75ada3a8f008cf8e8e6323386ce48fac2bf2d07285fe6c91f5a4"},
|
{file = "rapidfuzz-3.9.3-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b770f85eab24034e6ef7df04b2bfd9a45048e24f8a808e903441aa5abde8ecdd"},
|
||||||
{file = "rapidfuzz-3.9.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb3f1af099cd1d98001691fbdadd422f088f21eadcacf5698b393b7569e24dc4"},
|
{file = "rapidfuzz-3.9.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:930b4e6fdb4d914390141a2b99a6f77a52beacf1d06aa4e170cba3a98e24c1bc"},
|
||||||
{file = "rapidfuzz-3.9.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:53477e1e6d85d603c9a319cfd00ab9f0a57b6d68bcdb268d6b15a79e64d693d0"},
|
{file = "rapidfuzz-3.9.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:c8444e921bfc3757c475c4f4d7416a7aa69b2d992d5114fe55af21411187ab0d"},
|
||||||
{file = "rapidfuzz-3.9.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a47550eabf235e5d50e7d448c18f77f6e8082aa3571e9df511c8388525ea9372"},
|
{file = "rapidfuzz-3.9.3-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2c1d3ef3878f871abe6826e386c3d61b5292ef5f7946fe646f4206b85836b5da"},
|
||||||
{file = "rapidfuzz-3.9.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:c6b11a38b61cc2462a113b123f5e932cda0e525f816d6fe4b68516f97d7f9d49"},
|
{file = "rapidfuzz-3.9.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:d861bf326ee7dabc35c532a40384541578cd1ec1e1b7db9f9ecbba56eb76ca22"},
|
||||||
{file = "rapidfuzz-3.9.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:414644a2fc8a3e5fafda95b430214ed892faa4d0a07401d33892bc9ca5c84974"},
|
{file = "rapidfuzz-3.9.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cde6b9d9ba5007077ee321ec722fa714ebc0cbd9a32ccf0f4dd3cc3f20952d71"},
|
||||||
{file = "rapidfuzz-3.9.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1539e7439b68013c5d2ab7ed9d3d221480a15595207764145ae177077d28016d"},
|
{file = "rapidfuzz-3.9.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bb6546e7b6bed1aefbe24f68a5fb9b891cc5aef61bca6c1a7b1054b7f0359bb"},
|
||||||
{file = "rapidfuzz-3.9.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e18f0e9351f7e5d5387774ff4d5cabd824341e16b866eb1c8d3f557111b447ef"},
|
{file = "rapidfuzz-3.9.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d8a57261ef7996d5ced7c8cba9189ada3fbeffd1815f70f635e4558d93766cb"},
|
||||||
{file = "rapidfuzz-3.9.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:d2ff268a8bf57a76512804d5ca2097afaf98e64e8947d514cde7e2e8446aa5f7"},
|
{file = "rapidfuzz-3.9.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:67201c02efc596923ad950519e0b75ceb78d524177ea557134d6567b9ac2c283"},
|
||||||
{file = "rapidfuzz-3.9.1.tar.gz", hash = "sha256:a42eb645241f39a59c45a7fc15e3faf61886bff3a4a22263fd0f7cfb90e91b7f"},
|
{file = "rapidfuzz-3.9.3.tar.gz", hash = "sha256:b398ea66e8ed50451bce5997c430197d5e4b06ac4aa74602717f792d8d8d06e2"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
@@ -2642,13 +2721,13 @@ files = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "requests"
|
name = "requests"
|
||||||
version = "2.32.2"
|
version = "2.32.3"
|
||||||
description = "Python HTTP for Humans."
|
description = "Python HTTP for Humans."
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "requests-2.32.2-py3-none-any.whl", hash = "sha256:fc06670dd0ed212426dfeb94fc1b983d917c4f9847c863f313c9dfaaffb7c23c"},
|
{file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"},
|
||||||
{file = "requests-2.32.2.tar.gz", hash = "sha256:dd951ff5ecf3e3b3aa26b40703ba77495dab41da839ae72ef3c8e5d8e2433289"},
|
{file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
@@ -2699,28 +2778,28 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"]
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ruff"
|
name = "ruff"
|
||||||
version = "0.4.4"
|
version = "0.4.7"
|
||||||
description = "An extremely fast Python linter and code formatter, written in Rust."
|
description = "An extremely fast Python linter and code formatter, written in Rust."
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.7"
|
python-versions = ">=3.7"
|
||||||
files = [
|
files = [
|
||||||
{file = "ruff-0.4.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:29d44ef5bb6a08e235c8249294fa8d431adc1426bfda99ed493119e6f9ea1bf6"},
|
{file = "ruff-0.4.7-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:e089371c67892a73b6bb1525608e89a2aca1b77b5440acf7a71dda5dac958f9e"},
|
||||||
{file = "ruff-0.4.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:c4efe62b5bbb24178c950732ddd40712b878a9b96b1d02b0ff0b08a090cbd891"},
|
{file = "ruff-0.4.7-py3-none-macosx_11_0_arm64.whl", hash = "sha256:10f973d521d910e5f9c72ab27e409e839089f955be8a4c8826601a6323a89753"},
|
||||||
{file = "ruff-0.4.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c8e2f1e8fc12d07ab521a9005d68a969e167b589cbcaee354cb61e9d9de9c15"},
|
{file = "ruff-0.4.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59c3d110970001dfa494bcd95478e62286c751126dfb15c3c46e7915fc49694f"},
|
||||||
{file = "ruff-0.4.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:60ed88b636a463214905c002fa3eaab19795679ed55529f91e488db3fe8976ab"},
|
{file = "ruff-0.4.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa9773c6c00f4958f73b317bc0fd125295110c3776089f6ef318f4b775f0abe4"},
|
||||||
{file = "ruff-0.4.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b90fc5e170fc71c712cc4d9ab0e24ea505c6a9e4ebf346787a67e691dfb72e85"},
|
{file = "ruff-0.4.7-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07fc80bbb61e42b3b23b10fda6a2a0f5a067f810180a3760c5ef1b456c21b9db"},
|
||||||
{file = "ruff-0.4.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:8e7e6ebc10ef16dcdc77fd5557ee60647512b400e4a60bdc4849468f076f6eef"},
|
{file = "ruff-0.4.7-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:fa4dafe3fe66d90e2e2b63fa1591dd6e3f090ca2128daa0be33db894e6c18648"},
|
||||||
{file = "ruff-0.4.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b9ddb2c494fb79fc208cd15ffe08f32b7682519e067413dbaf5f4b01a6087bcd"},
|
{file = "ruff-0.4.7-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a7c0083febdec17571455903b184a10026603a1de078428ba155e7ce9358c5f6"},
|
||||||
{file = "ruff-0.4.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c51c928a14f9f0a871082603e25a1588059b7e08a920f2f9fa7157b5bf08cfe9"},
|
{file = "ruff-0.4.7-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ad1b20e66a44057c326168437d680a2166c177c939346b19c0d6b08a62a37589"},
|
||||||
{file = "ruff-0.4.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b5eb0a4bfd6400b7d07c09a7725e1a98c3b838be557fee229ac0f84d9aa49c36"},
|
{file = "ruff-0.4.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cbf5d818553add7511c38b05532d94a407f499d1a76ebb0cad0374e32bc67202"},
|
||||||
{file = "ruff-0.4.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:b1867ee9bf3acc21778dcb293db504692eda5f7a11a6e6cc40890182a9f9e595"},
|
{file = "ruff-0.4.7-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:50e9651578b629baec3d1513b2534de0ac7ed7753e1382272b8d609997e27e83"},
|
||||||
{file = "ruff-0.4.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:1aecced1269481ef2894cc495647392a34b0bf3e28ff53ed95a385b13aa45768"},
|
{file = "ruff-0.4.7-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:8874a9df7766cb956b218a0a239e0a5d23d9e843e4da1e113ae1d27ee420877a"},
|
||||||
{file = "ruff-0.4.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:9da73eb616b3241a307b837f32756dc20a0b07e2bcb694fec73699c93d04a69e"},
|
{file = "ruff-0.4.7-py3-none-musllinux_1_2_i686.whl", hash = "sha256:b9de9a6e49f7d529decd09381c0860c3f82fa0b0ea00ea78409b785d2308a567"},
|
||||||
{file = "ruff-0.4.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:958b4ea5589706a81065e2a776237de2ecc3e763342e5cc8e02a4a4d8a5e6f95"},
|
{file = "ruff-0.4.7-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:13a1768b0691619822ae6d446132dbdfd568b700ecd3652b20d4e8bc1e498f78"},
|
||||||
{file = "ruff-0.4.4-py3-none-win32.whl", hash = "sha256:cb53473849f011bca6e754f2cdf47cafc9c4f4ff4570003a0dad0b9b6890e876"},
|
{file = "ruff-0.4.7-py3-none-win32.whl", hash = "sha256:769e5a51df61e07e887b81e6f039e7ed3573316ab7dd9f635c5afaa310e4030e"},
|
||||||
{file = "ruff-0.4.4-py3-none-win_amd64.whl", hash = "sha256:424e5b72597482543b684c11def82669cc6b395aa8cc69acc1858b5ef3e5daae"},
|
{file = "ruff-0.4.7-py3-none-win_amd64.whl", hash = "sha256:9e3ab684ad403a9ed1226894c32c3ab9c2e0718440f6f50c7c5829932bc9e054"},
|
||||||
{file = "ruff-0.4.4-py3-none-win_arm64.whl", hash = "sha256:39df0537b47d3b597293edbb95baf54ff5b49589eb7ff41926d8243caa995ea6"},
|
{file = "ruff-0.4.7-py3-none-win_arm64.whl", hash = "sha256:10f2204b9a613988e3484194c2c9e96a22079206b22b787605c255f130db5ed7"},
|
||||||
{file = "ruff-0.4.4.tar.gz", hash = "sha256:f87ea42d5cdebdc6a69761a9d0bc83ae9b3b30d0ad78952005ba6568d6c022af"},
|
{file = "ruff-0.4.7.tar.gz", hash = "sha256:2331d2b051dc77a289a653fcc6a42cce357087c5975738157cd966590b18b5e1"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -3129,13 +3208,13 @@ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "uvicorn"
|
name = "uvicorn"
|
||||||
version = "0.29.0"
|
version = "0.30.1"
|
||||||
description = "The lightning-fast ASGI server."
|
description = "The lightning-fast ASGI server."
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "uvicorn-0.29.0-py3-none-any.whl", hash = "sha256:2c2aac7ff4f4365c206fd773a39bf4ebd1047c238f8b8268ad996829323473de"},
|
{file = "uvicorn-0.30.1-py3-none-any.whl", hash = "sha256:cd17daa7f3b9d7a24de3617820e634d0933b69eed8e33a516071174427238c81"},
|
||||||
{file = "uvicorn-0.29.0.tar.gz", hash = "sha256:6a69214c0b6a087462412670b3ef21224fa48cae0e452b5883e8e8bdfdd11dd0"},
|
{file = "uvicorn-0.30.1.tar.gz", hash = "sha256:d46cd8e0fd80240baffbcd9ec1012a712938754afcf81bce56c024c1656aece8"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
@@ -3393,4 +3472,4 @@ pgsql = ["psycopg2-binary"]
|
|||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.0"
|
||||||
python-versions = "^3.10"
|
python-versions = "^3.10"
|
||||||
content-hash = "4155d1d818a04f1e03b512399d5ecbc01b007fae7884f6322d5d389745276a17"
|
content-hash = "e850def23319334daba457a1bc3716ece051533dd0989d828cf45a878f2da2f5"
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ aniso8601 = "9.0.1"
|
|||||||
appdirs = "1.4.4"
|
appdirs = "1.4.4"
|
||||||
apprise = "^1.4.5"
|
apprise = "^1.4.5"
|
||||||
bcrypt = "^4.0.1"
|
bcrypt = "^4.0.1"
|
||||||
extruct = "^0.16.0"
|
extruct = "^0.17.0"
|
||||||
fastapi = "^0.111.0"
|
fastapi = "^0.111.0"
|
||||||
gunicorn = "^22.0.0"
|
gunicorn = "^22.0.0"
|
||||||
httpx = "^0.27.0"
|
httpx = "^0.27.0"
|
||||||
@@ -37,7 +37,7 @@ python-slugify = "^8.0.0"
|
|||||||
recipe-scrapers = "^14.55.0"
|
recipe-scrapers = "^14.55.0"
|
||||||
requests = "^2.31.0"
|
requests = "^2.31.0"
|
||||||
tzdata = "^2023.4"
|
tzdata = "^2023.4"
|
||||||
uvicorn = { extras = ["standard"], version = "^0.29.0" }
|
uvicorn = { extras = ["standard"], version = "^0.30.0" }
|
||||||
beautifulsoup4 = "^4.11.2"
|
beautifulsoup4 = "^4.11.2"
|
||||||
isodate = "^0.6.1"
|
isodate = "^0.6.1"
|
||||||
text-unidecode = "^1.3"
|
text-unidecode = "^1.3"
|
||||||
|
|||||||
@@ -22,6 +22,9 @@ backup_version_ba1e4a6cfe99_1 = CWD / "backups/backup_version_ba1e4a6cfe99_1.zip
|
|||||||
backup_version_bcfdad6b7355_1 = CWD / "backups/backup_version_bcfdad6b7355_1.zip"
|
backup_version_bcfdad6b7355_1 = CWD / "backups/backup_version_bcfdad6b7355_1.zip"
|
||||||
"""bcfdad6b7355: remove tool name and slug unique contraints"""
|
"""bcfdad6b7355: remove tool name and slug unique contraints"""
|
||||||
|
|
||||||
|
backup_version_09aba125b57a_1 = CWD / "backups/backup_version_09aba125b57a_1.zip"
|
||||||
|
"""09aba125b57a: add OIDC auth method (Safari-mangled ZIP structure)"""
|
||||||
|
|
||||||
migrations_paprika = CWD / "migrations/paprika.zip"
|
migrations_paprika = CWD / "migrations/paprika.zip"
|
||||||
|
|
||||||
migrations_chowdown = CWD / "migrations/chowdown.zip"
|
migrations_chowdown = CWD / "migrations/chowdown.zip"
|
||||||
@@ -38,6 +41,8 @@ migrations_plantoeat = CWD / "migrations/plantoeat.zip"
|
|||||||
|
|
||||||
migrations_myrecipebox = CWD / "migrations/myrecipebox.csv"
|
migrations_myrecipebox = CWD / "migrations/myrecipebox.csv"
|
||||||
|
|
||||||
|
migrations_recipekeeper = CWD / "migrations/recipekeeper.zip"
|
||||||
|
|
||||||
images_test_image_1 = CWD / "images/test-image-1.jpg"
|
images_test_image_1 = CWD / "images/test-image-1.jpg"
|
||||||
|
|
||||||
images_test_image_2 = CWD / "images/test-image-2.png"
|
images_test_image_2 = CWD / "images/test-image-2.png"
|
||||||
|
|||||||
BIN
tests/data/backups/backup_version_09aba125b57a_1.zip
Normal file
BIN
tests/data/backups/backup_version_09aba125b57a_1.zip
Normal file
Binary file not shown.
BIN
tests/data/migrations/recipekeeper.zip
Normal file
BIN
tests/data/migrations/recipekeeper.zip
Normal file
Binary file not shown.
@@ -30,6 +30,7 @@ test_cases = [
|
|||||||
MigrationTestData(typ=SupportedMigrations.tandoor, archive=test_data.migrations_tandoor),
|
MigrationTestData(typ=SupportedMigrations.tandoor, archive=test_data.migrations_tandoor),
|
||||||
MigrationTestData(typ=SupportedMigrations.plantoeat, archive=test_data.migrations_plantoeat),
|
MigrationTestData(typ=SupportedMigrations.plantoeat, archive=test_data.migrations_plantoeat),
|
||||||
MigrationTestData(typ=SupportedMigrations.myrecipebox, archive=test_data.migrations_myrecipebox),
|
MigrationTestData(typ=SupportedMigrations.myrecipebox, archive=test_data.migrations_myrecipebox),
|
||||||
|
MigrationTestData(typ=SupportedMigrations.recipekeeper, archive=test_data.migrations_recipekeeper),
|
||||||
]
|
]
|
||||||
|
|
||||||
test_ids = [
|
test_ids = [
|
||||||
@@ -41,6 +42,7 @@ test_ids = [
|
|||||||
"tandoor_archive",
|
"tandoor_archive",
|
||||||
"plantoeat_archive",
|
"plantoeat_archive",
|
||||||
"myrecipebox_csv",
|
"myrecipebox_csv",
|
||||||
|
"recipekeeper_archive",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
@@ -55,7 +57,10 @@ def test_recipe_migration(api_client: TestClient, unique_user: TestUser, mig: Mi
|
|||||||
}
|
}
|
||||||
|
|
||||||
response = api_client.post(
|
response = api_client.post(
|
||||||
api_routes.groups_migrations, data=payload, files=file_payload, headers=unique_user.token
|
api_routes.groups_migrations,
|
||||||
|
data=payload,
|
||||||
|
files=file_payload,
|
||||||
|
headers=unique_user.token,
|
||||||
)
|
)
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
@@ -117,7 +122,10 @@ def test_bad_mealie_alpha_data_is_ignored(api_client: TestClient, unique_user: T
|
|||||||
}
|
}
|
||||||
|
|
||||||
response = api_client.post(
|
response = api_client.post(
|
||||||
api_routes.groups_migrations, data=payload, files=file_payload, headers=unique_user.token
|
api_routes.groups_migrations,
|
||||||
|
data=payload,
|
||||||
|
files=file_payload,
|
||||||
|
headers=unique_user.token,
|
||||||
)
|
)
|
||||||
|
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
|
|||||||
@@ -2,11 +2,17 @@ import random
|
|||||||
|
|
||||||
from fastapi.testclient import TestClient
|
from fastapi.testclient import TestClient
|
||||||
|
|
||||||
from mealie.schema.group.group_shopping_list import ShoppingListOut
|
from mealie.repos.repository_factory import AllRepositories
|
||||||
|
from mealie.schema.group.group_shopping_list import (
|
||||||
|
ShoppingListItemOut,
|
||||||
|
ShoppingListItemUpdate,
|
||||||
|
ShoppingListItemUpdateBulk,
|
||||||
|
ShoppingListOut,
|
||||||
|
)
|
||||||
from mealie.schema.recipe.recipe import Recipe
|
from mealie.schema.recipe.recipe import Recipe
|
||||||
from mealie.schema.recipe.recipe_ingredient import RecipeIngredient
|
|
||||||
from tests import utils
|
from tests import utils
|
||||||
from tests.utils import api_routes
|
from tests.utils import api_routes
|
||||||
|
from tests.utils.assertion_helpers import assert_derserialize
|
||||||
from tests.utils.factories import random_int, random_string
|
from tests.utils.factories import random_int, random_string
|
||||||
from tests.utils.fixture_schemas import TestUser
|
from tests.utils.fixture_schemas import TestUser
|
||||||
|
|
||||||
@@ -755,3 +761,93 @@ def test_shopping_list_extras(
|
|||||||
assert key_str_2 in extras
|
assert key_str_2 in extras
|
||||||
assert extras[key_str_1] == val_str_1
|
assert extras[key_str_1] == val_str_1
|
||||||
assert extras[key_str_2] == val_str_2
|
assert extras[key_str_2] == val_str_2
|
||||||
|
|
||||||
|
|
||||||
|
def test_modify_shopping_list_items_updates_shopping_list(
|
||||||
|
database: AllRepositories, api_client: TestClient, unique_user: TestUser, shopping_lists: list[ShoppingListOut]
|
||||||
|
):
|
||||||
|
shopping_list = random.choice(shopping_lists)
|
||||||
|
last_update_at = shopping_list.update_at
|
||||||
|
assert last_update_at
|
||||||
|
|
||||||
|
# Create
|
||||||
|
new_item_data = {"note": random_string(), "shopping_list_id": str(shopping_list.id)}
|
||||||
|
response = api_client.post(api_routes.groups_shopping_items, json=new_item_data, headers=unique_user.token)
|
||||||
|
data = assert_derserialize(response, 201)
|
||||||
|
updated_list = database.group_shopping_lists.get_one(shopping_list.id)
|
||||||
|
assert updated_list and updated_list.update_at
|
||||||
|
assert updated_list.update_at > last_update_at
|
||||||
|
last_update_at = updated_list.update_at
|
||||||
|
|
||||||
|
list_item_id = data["createdItems"][0]["id"]
|
||||||
|
list_item = database.group_shopping_list_item.get_one(list_item_id)
|
||||||
|
assert list_item
|
||||||
|
|
||||||
|
# Update
|
||||||
|
list_item.note = random_string()
|
||||||
|
response = api_client.put(
|
||||||
|
api_routes.groups_shopping_items_item_id(list_item_id),
|
||||||
|
json=utils.jsonify(list_item.cast(ShoppingListItemUpdate).model_dump()),
|
||||||
|
headers=unique_user.token,
|
||||||
|
)
|
||||||
|
assert response.status_code == 200
|
||||||
|
updated_list = database.group_shopping_lists.get_one(shopping_list.id)
|
||||||
|
assert updated_list and updated_list.update_at
|
||||||
|
assert updated_list.update_at > last_update_at
|
||||||
|
last_update_at = updated_list.update_at
|
||||||
|
|
||||||
|
# Delete
|
||||||
|
response = api_client.delete(api_routes.groups_shopping_items_item_id(list_item_id), headers=unique_user.token)
|
||||||
|
assert response.status_code == 200
|
||||||
|
updated_list = database.group_shopping_lists.get_one(shopping_list.id)
|
||||||
|
assert updated_list and updated_list.update_at
|
||||||
|
assert updated_list.update_at > last_update_at
|
||||||
|
|
||||||
|
|
||||||
|
def test_bulk_modify_shopping_list_items_updates_shopping_list(
|
||||||
|
database: AllRepositories, api_client: TestClient, unique_user: TestUser, shopping_lists: list[ShoppingListOut]
|
||||||
|
):
|
||||||
|
shopping_list = random.choice(shopping_lists)
|
||||||
|
last_update_at = shopping_list.update_at
|
||||||
|
assert last_update_at
|
||||||
|
|
||||||
|
# Create
|
||||||
|
new_item_data = [
|
||||||
|
{"note": random_string(), "shopping_list_id": str(shopping_list.id)} for _ in range(random_int(3, 5))
|
||||||
|
]
|
||||||
|
response = api_client.post(
|
||||||
|
api_routes.groups_shopping_items_create_bulk, json=new_item_data, headers=unique_user.token
|
||||||
|
)
|
||||||
|
data = assert_derserialize(response, 201)
|
||||||
|
updated_list = database.group_shopping_lists.get_one(shopping_list.id)
|
||||||
|
assert updated_list and updated_list.update_at
|
||||||
|
assert updated_list.update_at > last_update_at
|
||||||
|
last_update_at = updated_list.update_at
|
||||||
|
|
||||||
|
# Update
|
||||||
|
list_item_ids = [item["id"] for item in data["createdItems"]]
|
||||||
|
list_items: list[ShoppingListItemOut] = []
|
||||||
|
for list_item_id in list_item_ids:
|
||||||
|
list_item = database.group_shopping_list_item.get_one(list_item_id)
|
||||||
|
assert list_item
|
||||||
|
list_item.note = random_string()
|
||||||
|
list_items.append(list_item)
|
||||||
|
|
||||||
|
payload = [utils.jsonify(list_item.cast(ShoppingListItemUpdateBulk).model_dump()) for list_item in list_items]
|
||||||
|
response = api_client.put(api_routes.groups_shopping_items, json=payload, headers=unique_user.token)
|
||||||
|
assert response.status_code == 200
|
||||||
|
updated_list = database.group_shopping_lists.get_one(shopping_list.id)
|
||||||
|
assert updated_list and updated_list.update_at
|
||||||
|
assert updated_list.update_at > last_update_at
|
||||||
|
last_update_at = updated_list.update_at
|
||||||
|
|
||||||
|
# Delete
|
||||||
|
response = api_client.delete(
|
||||||
|
api_routes.groups_shopping_items,
|
||||||
|
params={"ids": [str(list_item.id) for list_item in list_items]},
|
||||||
|
headers=unique_user.token,
|
||||||
|
)
|
||||||
|
assert response.status_code == 200
|
||||||
|
updated_list = database.group_shopping_lists.get_one(shopping_list.id)
|
||||||
|
assert updated_list and updated_list.update_at
|
||||||
|
assert updated_list.update_at > last_update_at
|
||||||
|
|||||||
@@ -81,6 +81,7 @@ def test_database_restore():
|
|||||||
test_data.backup_version_44e8d670719d_4,
|
test_data.backup_version_44e8d670719d_4,
|
||||||
test_data.backup_version_ba1e4a6cfe99_1,
|
test_data.backup_version_ba1e4a6cfe99_1,
|
||||||
test_data.backup_version_bcfdad6b7355_1,
|
test_data.backup_version_bcfdad6b7355_1,
|
||||||
|
test_data.backup_version_09aba125b57a_1,
|
||||||
],
|
],
|
||||||
ids=[
|
ids=[
|
||||||
"44e8d670719d_1: add extras to shopping lists, list items, and ingredient foods",
|
"44e8d670719d_1: add extras to shopping lists, list items, and ingredient foods",
|
||||||
@@ -89,6 +90,7 @@ def test_database_restore():
|
|||||||
"44e8d670719d_4: add extras to shopping lists, list items, and ingredient foods",
|
"44e8d670719d_4: add extras to shopping lists, list items, and ingredient foods",
|
||||||
"ba1e4a6cfe99_1: added plural names and alias tables for foods and units",
|
"ba1e4a6cfe99_1: added plural names and alias tables for foods and units",
|
||||||
"bcfdad6b7355_1: remove tool name and slug unique contraints",
|
"bcfdad6b7355_1: remove tool name and slug unique contraints",
|
||||||
|
"09aba125b57a: add OIDC auth method (Safari-mangled ZIP structure)",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
def test_database_restore_data(backup_path: Path):
|
def test_database_restore_data(backup_path: Path):
|
||||||
|
|||||||
Reference in New Issue
Block a user