mirror of
https://github.com/mealie-recipes/mealie.git
synced 2026-02-25 01:03:13 -05:00
Compare commits
122 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
42a33cd993 | ||
|
|
d73817adad | ||
|
|
ce58da8e18 | ||
|
|
fe89981e78 | ||
|
|
520bc7154a | ||
|
|
a38dfc094e | ||
|
|
0a81579da1 | ||
|
|
f4e77f6837 | ||
|
|
1e04e9424f | ||
|
|
d1bbfece9d | ||
|
|
94a85f9977 | ||
|
|
3d0adda405 | ||
|
|
47086da6b6 | ||
|
|
9ce71c911f | ||
|
|
2244c3a8b5 | ||
|
|
f0d0d0d463 | ||
|
|
dbec3e58f9 | ||
|
|
a5e56dc97f | ||
|
|
6d64418727 | ||
|
|
2b71174765 | ||
|
|
7f6de730a3 | ||
|
|
22cc19a085 | ||
|
|
b16fa49f16 | ||
|
|
90e373582b | ||
|
|
1b3cbb38ae | ||
|
|
ac5a63e32d | ||
|
|
d5d86488a0 | ||
|
|
3f9c46a763 | ||
|
|
04176f6927 | ||
|
|
2aa8c5810a | ||
|
|
a071a7d16b | ||
|
|
a14c1b48c6 | ||
|
|
43174dcebe | ||
|
|
3ee53977ec | ||
|
|
de1486c57f | ||
|
|
a12aba6b9d | ||
|
|
fb70bc76b3 | ||
|
|
e6351273e2 | ||
|
|
82dcfb5635 | ||
|
|
dddeed6359 | ||
|
|
5f4a36bbd8 | ||
|
|
f74610a0f7 | ||
|
|
166f2486a2 | ||
|
|
88a5209237 | ||
|
|
d954869dd7 | ||
|
|
9cf181b415 | ||
|
|
5a7dc14a48 | ||
|
|
d916c0a472 | ||
|
|
a3693d83a3 | ||
|
|
bb9620b67e | ||
|
|
3174216931 | ||
|
|
94342081f9 | ||
|
|
36088f0db9 | ||
|
|
4c60febb9c | ||
|
|
0283185913 | ||
|
|
f42114e966 | ||
|
|
d4de15ba1e | ||
|
|
e686fa671c | ||
|
|
597e6c8e0f | ||
|
|
d5ba69d828 | ||
|
|
564f43085b | ||
|
|
a0b6cc3e62 | ||
|
|
c960c00cbe | ||
|
|
47b60e9ad5 | ||
|
|
026ca0364e | ||
|
|
13e7dfe920 | ||
|
|
8a3173094e | ||
|
|
0d16a2a943 | ||
|
|
2918a824e4 | ||
|
|
00e5e4384d | ||
|
|
634b0590ed | ||
|
|
52c58e1dc0 | ||
|
|
67b7fb007b | ||
|
|
292672601c | ||
|
|
fa3bbdcde1 | ||
|
|
7e519c6b5a | ||
|
|
57c11b23c4 | ||
|
|
ba60428b03 | ||
|
|
e48619bae6 | ||
|
|
6d38960a5a | ||
|
|
9bf2e3fabd | ||
|
|
dcf50b9a00 | ||
|
|
073efd7a2f | ||
|
|
95b7990f26 | ||
|
|
7947aa99ae | ||
|
|
c3f7ad8954 | ||
|
|
8df7848c96 | ||
|
|
6097440781 | ||
|
|
208608b32e | ||
|
|
02997cd36e | ||
|
|
e1cd2717d3 | ||
|
|
694511cb60 | ||
|
|
f0c89525f6 | ||
|
|
a05ede5e05 | ||
|
|
7e51cf0352 | ||
|
|
ce110c23e4 | ||
|
|
8247f21101 | ||
|
|
60f9a3be5c | ||
|
|
dddcb644bf | ||
|
|
84e981fd03 | ||
|
|
937464115e | ||
|
|
24aee11607 | ||
|
|
023c57dd61 | ||
|
|
14d8ff8754 | ||
|
|
e6f531c111 | ||
|
|
c0a4f624d1 | ||
|
|
a32dc4baa0 | ||
|
|
7c4690a7a9 | ||
|
|
b44487596d | ||
|
|
2cb4c21db3 | ||
|
|
2dcc765e86 | ||
|
|
a5ef18669b | ||
|
|
14497b9b5e | ||
|
|
e90f05d2dc | ||
|
|
677dc8f36a | ||
|
|
449eeb0d53 | ||
|
|
41204ca7f9 | ||
|
|
437f5c454f | ||
|
|
3a30b3216e | ||
|
|
408df286fd | ||
|
|
2cfc63b302 | ||
|
|
a8583c8e69 |
@@ -49,7 +49,9 @@
|
|||||||
"onCreateCommand": "sudo chown -R vscode:vscode /workspaces/mealie/frontend/node_modules && task setup",
|
"onCreateCommand": "sudo chown -R vscode:vscode /workspaces/mealie/frontend/node_modules && task setup",
|
||||||
// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
|
// Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
|
||||||
"remoteUser": "vscode",
|
"remoteUser": "vscode",
|
||||||
// "features": {
|
"features": {
|
||||||
// "git": "latest"
|
"ghcr.io/devcontainers/features/docker-in-docker:2": {
|
||||||
// }
|
"dockerDashComposeVersion": "v2"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ body:
|
|||||||
options:
|
options:
|
||||||
- label: I used the GitHub search to find a similar requests and didn't find it.
|
- label: I used the GitHub search to find a similar requests and didn't find it.
|
||||||
required: true
|
required: true
|
||||||
- label: Checked the [tasks tagged](https://github.com/hay-kot/mealie/issues?q=is%3Aissue+is%3Aopen+label%3Atask+) issues and verified my feature is not covered
|
- label: Checked the [tasks tagged](https://github.com/mealie-recipes/mealie/issues?q=is%3Aissue+is%3Aopen+label%3Atask+) issues and verified my feature is not covered
|
||||||
required: true
|
required: true
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: problem
|
id: problem
|
||||||
|
|||||||
2
.github/workflows/partial-backend.yml
vendored
2
.github/workflows/partial-backend.yml
vendored
@@ -75,7 +75,7 @@ jobs:
|
|||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install libsasl2-dev libldap2-dev libssl-dev
|
sudo apt-get install libsasl2-dev libldap2-dev libssl-dev
|
||||||
poetry install
|
poetry install
|
||||||
poetry add "psycopg2-binary==2.8.6"
|
poetry add "psycopg2-binary==2.9.9"
|
||||||
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' || steps.cache-validate.outputs.cache-hit-success != 'true'
|
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' || steps.cache-validate.outputs.cache-hit-success != 'true'
|
||||||
|
|
||||||
- name: Formatting (Black)
|
- name: Formatting (Black)
|
||||||
|
|||||||
27
.github/workflows/release.yml
vendored
27
.github/workflows/release.yml
vendored
@@ -42,4 +42,29 @@ jobs:
|
|||||||
DISCORD_WEBHOOK: ${{ secrets.DISCORD_RELEASE_WEBHOOK }}
|
DISCORD_WEBHOOK: ${{ secrets.DISCORD_RELEASE_WEBHOOK }}
|
||||||
uses: Ilshidur/action-discord@0.3.2
|
uses: Ilshidur/action-discord@0.3.2
|
||||||
with:
|
with:
|
||||||
args: "🚀 Version {{ EVENT_PAYLOAD.release.tag_name }} of Mealie has been released. See the release notes https://github.com/hay-kot/mealie/releases/tag/{{ EVENT_PAYLOAD.release.tag_name }}"
|
args: "🚀 Version {{ EVENT_PAYLOAD.release.tag_name }} of Mealie has been released. See the release notes https://github.com/mealie-recipes/mealie/releases/tag/{{ EVENT_PAYLOAD.release.tag_name }}"
|
||||||
|
|
||||||
|
update-image-tags:
|
||||||
|
name: Update image tag in sample docker-compose files
|
||||||
|
needs:
|
||||||
|
- build-release
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
steps:
|
||||||
|
- name: Checkout 🛎
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Modify version strings
|
||||||
|
run: |
|
||||||
|
sed -i 's/:v[0-9]*.[0-9]*.[0-9]*/:${{ github.event.release.tag_name }}/' docs/docs/documentation/getting-started/installation/sqlite.md
|
||||||
|
sed -i 's/:v[0-9]*.[0-9]*.[0-9]*/:${{ github.event.release.tag_name }}/' docs/docs/documentation/getting-started/installation/postgres.md
|
||||||
|
|
||||||
|
- name: Commit updates
|
||||||
|
uses: test-room-7/action-update-file@v1
|
||||||
|
with:
|
||||||
|
file-path: |
|
||||||
|
docs/docs/documentation/getting-started/installation/sqlite.md
|
||||||
|
docs/docs/documentation/getting-started/installation/postgres.md
|
||||||
|
commit-msg: "Change image tag, for release ${{ github.event.release.tag_name }}"
|
||||||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|||||||
@@ -11,6 +11,6 @@ repos:
|
|||||||
- id: trailing-whitespace
|
- id: trailing-whitespace
|
||||||
exclude: ^tests/data/
|
exclude: ^tests/data/
|
||||||
- repo: https://github.com/psf/black
|
- repo: https://github.com/psf/black
|
||||||
rev: 23.1.0
|
rev: 24.1.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: black
|
- id: black
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ Thanks to Linode for providing Hosting for the Demo, Beta, and Documentation sit
|
|||||||
[stars-url]: https://github.com/mealie-recipes/mealie/stargazers
|
[stars-url]: https://github.com/mealie-recipes/mealie/stargazers
|
||||||
[issues-shield]: https://img.shields.io/github/issues/mealie-recipes/mealie.svg?style=flat-square
|
[issues-shield]: https://img.shields.io/github/issues/mealie-recipes/mealie.svg?style=flat-square
|
||||||
[issues-url]: https://github.com/mealie-recipes/mealie/issues
|
[issues-url]: https://github.com/mealie-recipes/mealie/issues
|
||||||
[latest-release-shield]: https://img.shields.io/github/v/release/mealie-recipes/mealie.svg?style=flat-square
|
[latest-release-shield]: https://img.shields.io/github/v/release/mealie-recipes/mealie?style=flat-square&label=latest%20release
|
||||||
[latest-release-url]: https://img.shields.io/github/v/release/mealie-recipes/mealie
|
[latest-release-url]: https://img.shields.io/github/v/release/mealie-recipes/mealie
|
||||||
[license-shield]: https://img.shields.io/github/license/mealie-recipes/mealie.svg?style=flat-square
|
[license-shield]: https://img.shields.io/github/license/mealie-recipes/mealie.svg?style=flat-square
|
||||||
[license-url]: https://github.com/mealie-recipes/mealie/blob/mealie-next/LICENSE
|
[license-url]: https://github.com/mealie-recipes/mealie/blob/mealie-next/LICENSE
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Revises:
|
|||||||
Create Date: 2022-02-21 19:56:24.351115
|
Create Date: 2022-02-21 19:56:24.351115
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
from sqlalchemy import engine_from_config
|
from sqlalchemy import engine_from_config
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Revises: 6b0f5f32d602
|
|||||||
Create Date: 2022-03-23 17:43:34.727829
|
Create Date: 2022-03-23 17:43:34.727829
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Revises: 263dd6707191
|
|||||||
Create Date: 2022-03-27 19:30:28.545846
|
Create Date: 2022-03-27 19:30:28.545846
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Revises: f1a2dbee5fe9
|
|||||||
Create Date: 2022-03-31 19:19:55.428965
|
Create Date: 2022-03-31 19:19:55.428965
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
import mealie.db.migration_types
|
import mealie.db.migration_types
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Revises: 59eb59135381
|
|||||||
Create Date: 2022-04-03 10:48:51.379968
|
Create Date: 2022-04-03 10:48:51.379968
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
import mealie.db.migration_types # noqa: F401
|
import mealie.db.migration_types # noqa: F401
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Revises: 09dfc897ad62
|
|||||||
Create Date: 2022-06-01 11:12:06.748383
|
Create Date: 2022-06-01 11:12:06.748383
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ Revises: ab0bae02578f
|
|||||||
Create Date: 2022-06-15 21:05:34.851857
|
Create Date: 2022-06-15 21:05:34.851857
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Revises: f30cf048c228
|
|||||||
Create Date: 2022-08-12 19:05:59.776361
|
Create Date: 2022-08-12 19:05:59.776361
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Revises: 188374910655
|
|||||||
Create Date: 2022-08-05 17:07:07.389271
|
Create Date: 2022-08-05 17:07:07.389271
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Revises: 089bfa50d0ed
|
|||||||
Create Date: 2022-08-29 13:57:40.452245
|
Create Date: 2022-08-29 13:57:40.452245
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
import mealie.db.migration_types
|
import mealie.db.migration_types
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Revises: 44e8d670719d
|
|||||||
Create Date: 2022-09-27 14:53:14.111054
|
Create Date: 2022-09-27 14:53:14.111054
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
import mealie.db.migration_types
|
import mealie.db.migration_types
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Revises: 2ea7a807915c
|
|||||||
Create Date: 2022-11-03 13:10:24.811134
|
Create Date: 2022-11-03 13:10:24.811134
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Revises: 1923519381ad
|
|||||||
Create Date: 2022-11-22 03:42:45.494567
|
Create Date: 2022-11-22 03:42:45.494567
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Revises: 167eb69066ad
|
|||||||
Create Date: 2023-01-21 16:54:44.368768
|
Create Date: 2023-01-21 16:54:44.368768
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
import mealie.db.migration_types
|
import mealie.db.migration_types
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Revises: ff5f73b01a7a
|
|||||||
Create Date: 2023-02-10 21:18:32.405130
|
Create Date: 2023-02-10 21:18:32.405130
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
import mealie.db.migration_types
|
import mealie.db.migration_types
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Revises: 16160bf731a0
|
|||||||
Create Date: 2023-02-14 20:45:41.102571
|
Create Date: 2023-02-14 20:45:41.102571
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
from sqlalchemy import orm, select
|
from sqlalchemy import orm, select
|
||||||
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
|
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Revises: 5ab195a474eb
|
|||||||
Create Date: 2023-21-02 22:03:19.837244
|
Create Date: 2023-21-02 22:03:19.837244
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Revises: b04a08da2108
|
|||||||
Create Date: 2023-02-22 21:45:52.900964
|
Create Date: 2023-02-22 21:45:52.900964
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
import mealie.db.migration_types
|
import mealie.db.migration_types
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Revises: 38514b39a824
|
|||||||
Create Date: 2023-04-13 06:47:04.617131
|
Create Date: 2023-04-13 06:47:04.617131
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
import mealie.db.migration_types
|
import mealie.db.migration_types
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Revises: b3dbb554ba53
|
|||||||
Create Date: 2023-08-06 21:00:34.582905
|
Create Date: 2023-08-06 21:00:34.582905
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
from slugify import slugify
|
from slugify import slugify
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Revises: 04ac51cbe9a4
|
|||||||
Create Date: 2023-08-14 19:30:49.103185
|
Create Date: 2023-08-14 19:30:49.103185
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Revises: 1825b5225403
|
|||||||
Create Date: 2023-08-15 16:25:07.058929
|
Create Date: 2023-08-15 16:25:07.058929
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from alembic import op
|
from alembic import op
|
||||||
|
|
||||||
# revision identifiers, used by Alembic.
|
# revision identifiers, used by Alembic.
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Revises: bcfdad6b7355
|
|||||||
Create Date: 2023-09-01 14:55:42.166766
|
Create Date: 2023-09-01 14:55:42.166766
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
from sqlalchemy import orm, select
|
from sqlalchemy import orm, select
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Revises: 0341b154f79a
|
|||||||
Create Date: 2023-10-04 14:29:26.688065
|
Create Date: 2023-10-04 14:29:26.688065
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from typing import Any
|
from typing import Any
|
||||||
@@ -58,7 +59,12 @@ def _resolve_duplicate_food(
|
|||||||
keep_food_id: UUID4,
|
keep_food_id: UUID4,
|
||||||
dupe_food_id: UUID4,
|
dupe_food_id: UUID4,
|
||||||
):
|
):
|
||||||
for shopping_list_item in session.query(ShoppingListItem).filter_by(food_id=dupe_food_id).all():
|
for shopping_list_item in (
|
||||||
|
session.query(ShoppingListItem)
|
||||||
|
.options(load_only(ShoppingListItem.id, ShoppingListItem.food_id))
|
||||||
|
.filter_by(food_id=dupe_food_id)
|
||||||
|
.all()
|
||||||
|
):
|
||||||
shopping_list_item.food_id = keep_food_id
|
shopping_list_item.food_id = keep_food_id
|
||||||
|
|
||||||
for recipe_ingredient in (
|
for recipe_ingredient in (
|
||||||
@@ -81,10 +87,20 @@ def _resolve_duplicate_unit(
|
|||||||
keep_unit_id: UUID4,
|
keep_unit_id: UUID4,
|
||||||
dupe_unit_id: UUID4,
|
dupe_unit_id: UUID4,
|
||||||
):
|
):
|
||||||
for shopping_list_item in session.query(ShoppingListItem).filter_by(unit_id=dupe_unit_id).all():
|
for shopping_list_item in (
|
||||||
|
session.query(ShoppingListItem)
|
||||||
|
.options(load_only(ShoppingListItem.id, ShoppingListItem.unit_id))
|
||||||
|
.filter_by(unit_id=dupe_unit_id)
|
||||||
|
.all()
|
||||||
|
):
|
||||||
shopping_list_item.unit_id = keep_unit_id
|
shopping_list_item.unit_id = keep_unit_id
|
||||||
|
|
||||||
for recipe_ingredient in session.query(RecipeIngredientModel).filter_by(unit_id=dupe_unit_id).all():
|
for recipe_ingredient in (
|
||||||
|
session.query(RecipeIngredientModel)
|
||||||
|
.options(load_only(RecipeIngredientModel.id, RecipeIngredientModel.unit_id))
|
||||||
|
.filter_by(unit_id=dupe_unit_id)
|
||||||
|
.all()
|
||||||
|
):
|
||||||
recipe_ingredient.unit_id = keep_unit_id
|
recipe_ingredient.unit_id = keep_unit_id
|
||||||
|
|
||||||
session.commit()
|
session.commit()
|
||||||
@@ -99,10 +115,20 @@ def _resolve_duplicate_label(
|
|||||||
keep_label_id: UUID4,
|
keep_label_id: UUID4,
|
||||||
dupe_label_id: UUID4,
|
dupe_label_id: UUID4,
|
||||||
):
|
):
|
||||||
for shopping_list_item in session.query(ShoppingListItem).filter_by(label_id=dupe_label_id).all():
|
for shopping_list_item in (
|
||||||
|
session.query(ShoppingListItem)
|
||||||
|
.options(load_only(ShoppingListItem.id, ShoppingListItem.label_id))
|
||||||
|
.filter_by(label_id=dupe_label_id)
|
||||||
|
.all()
|
||||||
|
):
|
||||||
shopping_list_item.label_id = keep_label_id
|
shopping_list_item.label_id = keep_label_id
|
||||||
|
|
||||||
for ingredient_food in session.query(IngredientFoodModel).filter_by(label_id=dupe_label_id).all():
|
for ingredient_food in (
|
||||||
|
session.query(IngredientFoodModel)
|
||||||
|
.options(load_only(IngredientFoodModel.id, IngredientFoodModel.label_id))
|
||||||
|
.filter_by(label_id=dupe_label_id)
|
||||||
|
.all()
|
||||||
|
):
|
||||||
ingredient_food.label_id = keep_label_id
|
ingredient_food.label_id = keep_label_id
|
||||||
|
|
||||||
session.commit()
|
session.commit()
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ Revises: dded3119c1fe
|
|||||||
Create Date: 2023-10-19 19:22:55.369319
|
Create Date: 2023-10-19 19:22:55.369319
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import sqlalchemy as sa
|
import sqlalchemy as sa
|
||||||
|
|
||||||
import mealie.db.migration_types
|
import mealie.db.migration_types
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ PostgreSQL might be considered if you need to support many concurrent users. In
|
|||||||
version: "3.7"
|
version: "3.7"
|
||||||
services:
|
services:
|
||||||
mealie:
|
mealie:
|
||||||
image: ghcr.io/mealie-recipes/mealie:v1.0.0 # (3)
|
image: ghcr.io/mealie-recipes/mealie:v1.1.0 # (3)
|
||||||
container_name: mealie
|
container_name: mealie
|
||||||
ports:
|
ports:
|
||||||
- "9925:9000" # (1)
|
- "9925:9000" # (1)
|
||||||
@@ -60,4 +60,4 @@ volumes:
|
|||||||
|
|
||||||
1. To access the mealie interface you only need to expose port 9000 on the mealie container. Here we expose port 9925 on the host, but feel free to change this to any port you like.
|
1. To access the mealie interface you only need to expose port 9000 on the mealie container. Here we expose port 9925 on the host, but feel free to change this to any port you like.
|
||||||
2. Setting an explicit memory limit is recommended. Python can pre-allocate larger amounts of memory than is necessary if you have a machine with a lot of RAM. This can cause the container to idle at a high memory usage. Setting a memory limit will improve idle performance.
|
2. Setting an explicit memory limit is recommended. Python can pre-allocate larger amounts of memory than is necessary if you have a machine with a lot of RAM. This can cause the container to idle at a high memory usage. Setting a memory limit will improve idle performance.
|
||||||
3. Whilst a 'latest' tag is available, the Mealie team advises specifying a specific version tag and consciously updating to newer versions when you have time to read the release notes and ensure you follow any manual actions required (which should be rare).
|
3. You should double check this value isn't out of date when setting up for the first time; check the README and use the value from the "latest release" badge at the top - the format should be `vX.Y.Z`. Whilst a 'latest' tag is available, the Mealie team advises specifying a specific version tag and consciously updating to newer versions when you have time to read the release notes and ensure you follow any manual actions required (which should be rare).
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ SQLite is a popular, open source, self-contained, zero-configuration database th
|
|||||||
version: "3.7"
|
version: "3.7"
|
||||||
services:
|
services:
|
||||||
mealie:
|
mealie:
|
||||||
image: ghcr.io/mealie-recipes/mealie:v1.0.0 # (3)
|
image: ghcr.io/mealie-recipes/mealie:v1.1.0 # (3)
|
||||||
container_name: mealie
|
container_name: mealie
|
||||||
ports:
|
ports:
|
||||||
- "9925:9000" # (1)
|
- "9925:9000" # (1)
|
||||||
@@ -43,4 +43,4 @@ volumes:
|
|||||||
|
|
||||||
1. To access the mealie interface you only need to expose port 9000 on the container. Here we expose port 9925 on the host, but feel free to change this to any port you like.
|
1. To access the mealie interface you only need to expose port 9000 on the container. Here we expose port 9925 on the host, but feel free to change this to any port you like.
|
||||||
2. Setting an explicit memory limit is recommended. Python can pre-allocate larger amounts of memory than is necessary if you have a machine with a lot of RAM. This can cause the container to idle at a high memory usage. Setting a memory limit will improve idle performance.
|
2. Setting an explicit memory limit is recommended. Python can pre-allocate larger amounts of memory than is necessary if you have a machine with a lot of RAM. This can cause the container to idle at a high memory usage. Setting a memory limit will improve idle performance.
|
||||||
3. Whilst a 'latest' tag is available, the Mealie team advises specifying a specific version tag and consciously updating to newer versions when you have time to read the release notes and ensure you follow any manual actions required (which should be rare).
|
3. You should double check this value isn't out of date when setting up for the first time; check the README and use the value from the "latest release" badge at the top - the format should be `vX.Y.Z`. Whilst a 'latest' tag is available, the Mealie team advises specifying a specific version tag and consciously updating to newer versions when you have time to read the release notes and ensure you follow any manual actions required (which should be rare).
|
||||||
|
|||||||
@@ -51,8 +51,8 @@ extra_css:
|
|||||||
- assets/stylesheets/custom.css
|
- assets/stylesheets/custom.css
|
||||||
extra_javascript:
|
extra_javascript:
|
||||||
- assets/js/extra.js
|
- assets/js/extra.js
|
||||||
repo_url: https://github.com/hay-kot/mealie/
|
repo_url: https://github.com/mealie-recipes/mealie/
|
||||||
repo_name: hay-kot/mealie
|
repo_name: mealie-recipes/mealie
|
||||||
edit_uri: edit/mealie-next/docs/docs/
|
edit_uri: edit/mealie-next/docs/docs/
|
||||||
|
|
||||||
nav:
|
nav:
|
||||||
|
|||||||
55
frontend/components/Domain/Cookbook/CookbookEditor.vue
Normal file
55
frontend/components/Domain/Cookbook/CookbookEditor.vue
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<v-card-text v-if="cookbook">
|
||||||
|
<v-text-field v-model="cookbook.name" :label="$t('cookbook.cookbook-name')"></v-text-field>
|
||||||
|
<v-textarea v-model="cookbook.description" auto-grow :rows="2" :label="$t('recipe.description')"></v-textarea>
|
||||||
|
<RecipeOrganizerSelector v-model="cookbook.categories" selector-type="categories" />
|
||||||
|
<RecipeOrganizerSelector v-model="cookbook.tags" selector-type="tags" />
|
||||||
|
<RecipeOrganizerSelector v-model="cookbook.tools" selector-type="tools" />
|
||||||
|
<v-switch v-model="cookbook.public" hide-details single-line>
|
||||||
|
<template #label>
|
||||||
|
{{ $t('cookbook.public-cookbook') }}
|
||||||
|
<HelpIcon small right class="ml-2">
|
||||||
|
{{ $t('cookbook.public-cookbook-description') }}
|
||||||
|
</HelpIcon>
|
||||||
|
</template>
|
||||||
|
</v-switch>
|
||||||
|
<div class="mt-4">
|
||||||
|
<h3 class="text-subtitle-1 d-flex align-center mb-0 pb-0">
|
||||||
|
{{ $t('cookbook.filter-options') }}
|
||||||
|
<HelpIcon right small class="ml-2">
|
||||||
|
{{ $t('cookbook.filter-options-description') }}
|
||||||
|
</HelpIcon>
|
||||||
|
</h3>
|
||||||
|
<v-switch v-model="cookbook.requireAllCategories" class="mt-0" hide-details single-line>
|
||||||
|
<template #label> {{ $t('cookbook.require-all-categories') }} </template>
|
||||||
|
</v-switch>
|
||||||
|
<v-switch v-model="cookbook.requireAllTags" hide-details single-line>
|
||||||
|
<template #label> {{ $t('cookbook.require-all-tags') }} </template>
|
||||||
|
</v-switch>
|
||||||
|
<v-switch v-model="cookbook.requireAllTools" hide-details single-line>
|
||||||
|
<template #label> {{ $t('cookbook.require-all-tools') }} </template>
|
||||||
|
</v-switch>
|
||||||
|
</div>
|
||||||
|
</v-card-text>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts">
|
||||||
|
import { defineComponent } from "@nuxtjs/composition-api";
|
||||||
|
import { ReadCookBook } from "~/lib/api/types/cookbook";
|
||||||
|
import RecipeOrganizerSelector from "~/components/Domain/Recipe/RecipeOrganizerSelector.vue";
|
||||||
|
export default defineComponent({
|
||||||
|
components: { RecipeOrganizerSelector },
|
||||||
|
props: {
|
||||||
|
cookbook: {
|
||||||
|
type: Object as () => ReadCookBook,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
actions: {
|
||||||
|
type: Object as () => any,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
</script>
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
<BaseDialog v-if="updateTarget" v-model="dialogs.update" :title="$t('general.update')" @confirm="updateOne()">
|
<BaseDialog v-if="updateTarget" v-model="dialogs.update" :title="$t('general.update')" @confirm="updateOne()">
|
||||||
<v-card-text>
|
<v-card-text>
|
||||||
<v-text-field v-model="updateTarget.name" label="$t('general.name')"> </v-text-field>
|
<v-text-field v-model="updateTarget.name" :label="$t('general.name')"> </v-text-field>
|
||||||
<v-checkbox v-if="itemType === Organizer.Tool" v-model="updateTarget.onHand" :label="$t('tool.on-hand')"></v-checkbox>
|
<v-checkbox v-if="itemType === Organizer.Tool" v-model="updateTarget.onHand" :label="$t('tool.on-hand')"></v-checkbox>
|
||||||
</v-card-text>
|
</v-card-text>
|
||||||
</BaseDialog>
|
</BaseDialog>
|
||||||
|
|||||||
@@ -12,6 +12,8 @@
|
|||||||
$emit('submit');
|
$emit('submit');
|
||||||
dialog = false;
|
dialog = false;
|
||||||
"
|
"
|
||||||
|
@click:outside="$emit('cancel')"
|
||||||
|
@keydown.esc="$emit('cancel')"
|
||||||
>
|
>
|
||||||
<v-card height="100%">
|
<v-card height="100%">
|
||||||
<v-app-bar dark dense :color="color" class="">
|
<v-app-bar dark dense :color="color" class="">
|
||||||
|
|||||||
@@ -57,12 +57,12 @@
|
|||||||
:buttons="[
|
:buttons="[
|
||||||
{
|
{
|
||||||
icon: $globals.icons.edit,
|
icon: $globals.icons.edit,
|
||||||
text: $t('general.edit'),
|
text: $tc('general.edit'),
|
||||||
event: 'edit',
|
event: 'edit',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
icon: $globals.icons.delete,
|
icon: $globals.icons.delete,
|
||||||
text: $t('general.delete'),
|
text: $tc('general.delete'),
|
||||||
event: 'delete',
|
event: 'delete',
|
||||||
},
|
},
|
||||||
]"
|
]"
|
||||||
@@ -160,6 +160,8 @@ export default defineComponent({
|
|||||||
props.bulkActions.forEach((action) => {
|
props.bulkActions.forEach((action) => {
|
||||||
handlers[action.event] = () => {
|
handlers[action.event] = () => {
|
||||||
context.emit(action.event, selected.value);
|
context.emit(action.event, selected.value);
|
||||||
|
// clear selection
|
||||||
|
selected.value = [];
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { usePublicExploreApi } from "../api/api-client";
|
|||||||
import { useUserApi } from "~/composables/api";
|
import { useUserApi } from "~/composables/api";
|
||||||
import { IngredientFood } from "~/lib/api/types/recipe";
|
import { IngredientFood } from "~/lib/api/types/recipe";
|
||||||
|
|
||||||
let foodStore: Ref<IngredientFood[] | null> | null = null;
|
let foodStore: Ref<IngredientFood[] | null> = ref([]);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* useFoodData returns a template reactive object
|
* useFoodData returns a template reactive object
|
||||||
@@ -39,11 +39,11 @@ export const usePublicFoodStore = function (groupSlug: string) {
|
|||||||
const actions = {
|
const actions = {
|
||||||
...usePublicStoreActions(api.foods, foodStore, loading),
|
...usePublicStoreActions(api.foods, foodStore, loading),
|
||||||
flushStore() {
|
flushStore() {
|
||||||
foodStore = null;
|
foodStore = ref([]);
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!foodStore) {
|
if (!foodStore.value || foodStore.value.length === 0) {
|
||||||
foodStore = actions.getAll();
|
foodStore = actions.getAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,11 +57,11 @@ export const useFoodStore = function () {
|
|||||||
const actions = {
|
const actions = {
|
||||||
...useStoreActions(api.foods, foodStore, loading),
|
...useStoreActions(api.foods, foodStore, loading),
|
||||||
flushStore() {
|
flushStore() {
|
||||||
foodStore = null;
|
foodStore.value = [];
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!foodStore) {
|
if (!foodStore.value || foodStore.value.length === 0) {
|
||||||
foodStore = actions.getAll();
|
foodStore = actions.getAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { useStoreActions } from "../partials/use-actions-factory";
|
|||||||
import { MultiPurposeLabelOut } from "~/lib/api/types/labels";
|
import { MultiPurposeLabelOut } from "~/lib/api/types/labels";
|
||||||
import { useUserApi } from "~/composables/api";
|
import { useUserApi } from "~/composables/api";
|
||||||
|
|
||||||
let labelStore: Ref<MultiPurposeLabelOut[] | null> | null = null;
|
let labelStore: Ref<MultiPurposeLabelOut[] | null> = ref([]);
|
||||||
|
|
||||||
export function useLabelData() {
|
export function useLabelData() {
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
@@ -33,11 +33,11 @@ export function useLabelStore() {
|
|||||||
const actions = {
|
const actions = {
|
||||||
...useStoreActions<MultiPurposeLabelOut>(api.multiPurposeLabels, labelStore, loading),
|
...useStoreActions<MultiPurposeLabelOut>(api.multiPurposeLabels, labelStore, loading),
|
||||||
flushStore() {
|
flushStore() {
|
||||||
labelStore = null;
|
labelStore.value = [];
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!labelStore) {
|
if (!labelStore.value || labelStore.value?.length === 0) {
|
||||||
labelStore = actions.getAll();
|
labelStore = actions.getAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { useStoreActions } from "../partials/use-actions-factory";
|
|||||||
import { useUserApi } from "~/composables/api";
|
import { useUserApi } from "~/composables/api";
|
||||||
import { IngredientUnit } from "~/lib/api/types/recipe";
|
import { IngredientUnit } from "~/lib/api/types/recipe";
|
||||||
|
|
||||||
let unitStore: Ref<IngredientUnit[] | null> | null = null;
|
let unitStore: Ref<IngredientUnit[] | null> = ref([]);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* useUnitData returns a template reactive object
|
* useUnitData returns a template reactive object
|
||||||
@@ -40,11 +40,11 @@ export const useUnitStore = function () {
|
|||||||
const actions = {
|
const actions = {
|
||||||
...useStoreActions<IngredientUnit>(api.units, unitStore, loading),
|
...useStoreActions<IngredientUnit>(api.units, unitStore, loading),
|
||||||
flushStore() {
|
flushStore() {
|
||||||
unitStore = null;
|
unitStore.value = [];
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!unitStore) {
|
if (!unitStore.value || unitStore.value.length === 0) {
|
||||||
unitStore = actions.getAll();
|
unitStore = actions.getAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -109,6 +109,7 @@ export const useCookbooks = function () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
loading.value = false;
|
loading.value = false;
|
||||||
|
return data;
|
||||||
},
|
},
|
||||||
async updateOne(updateData: UpdateCookBook) {
|
async updateOne(updateData: UpdateCookBook) {
|
||||||
if (!updateData.id) {
|
if (!updateData.id) {
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Laai dokument op",
|
"upload-file": "Laai dokument op",
|
||||||
"created-on-date": "Geskep op: {0}",
|
"created-on-date": "Geskep op: {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Is jy seker jy wil <b>{groupName}<b/> uitvee?",
|
"are-you-sure-you-want-to-delete-the-group": "Is jy seker jy wil <b>{groupName}<b/> uitvee?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Vereis alle merkers",
|
"require-all-tags": "Vereis alle merkers",
|
||||||
"require-all-tools": "Vereis alle kookgerei",
|
"require-all-tools": "Vereis alle kookgerei",
|
||||||
"cookbook-name": "Naam van die kookboek",
|
"cookbook-name": "Naam van die kookboek",
|
||||||
"cookbook-with-name": "Kookboek {0}"
|
"cookbook-with-name": "Kookboek {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "تحميل الملف",
|
"upload-file": "تحميل الملف",
|
||||||
"created-on-date": "تم الإنشاء في {0}",
|
"created-on-date": "تم الإنشاء في {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "هل انت متأكد من رغبتك في حذف <b>{groupName}<b/>؟",
|
"are-you-sure-you-want-to-delete-the-group": "هل انت متأكد من رغبتك في حذف <b>{groupName}<b/>؟",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Require All Tags",
|
"require-all-tags": "Require All Tags",
|
||||||
"require-all-tools": "Require All Tools",
|
"require-all-tools": "Require All Tools",
|
||||||
"cookbook-name": "Cookbook Name",
|
"cookbook-name": "Cookbook Name",
|
||||||
"cookbook-with-name": "Cookbook {0}"
|
"cookbook-with-name": "Cookbook {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Качване на файл",
|
"upload-file": "Качване на файл",
|
||||||
"created-on-date": "Създадено на {0}",
|
"created-on-date": "Създадено на {0}",
|
||||||
"unsaved-changes": "Имате незапазени промени. Желаете ли да ги запазите преди да излезете? Натиснете Ок за запазване и Отказ за отхвърляне на промените.",
|
"unsaved-changes": "Имате незапазени промени. Желаете ли да ги запазите преди да излезете? Натиснете Ок за запазване и Отказ за отхвърляне на промените.",
|
||||||
"clipboard-copy-failure": "Линкът към рецептата е копиран в клипборда."
|
"clipboard-copy-failure": "Линкът към рецептата е копиран в клипборда.",
|
||||||
|
"confirm-delete-generic-items": "Сигурни ли сте, че желаете да изтриете следните елементи?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Сигурни ли сте, че искате да изтриете <b>{groupName}<b/>?",
|
"are-you-sure-you-want-to-delete-the-group": "Сигурни ли сте, че искате да изтриете <b>{groupName}<b/>?",
|
||||||
@@ -258,7 +259,7 @@
|
|||||||
},
|
},
|
||||||
"meal-plan": {
|
"meal-plan": {
|
||||||
"create-a-new-meal-plan": "Създаване на нов хранителен план",
|
"create-a-new-meal-plan": "Създаване на нов хранителен план",
|
||||||
"update-this-meal-plan": "Update this Meal Plan",
|
"update-this-meal-plan": "Обнови този План за хранене",
|
||||||
"dinner-this-week": "Вечеря тази седмица",
|
"dinner-this-week": "Вечеря тази седмица",
|
||||||
"dinner-today": "Вечеря Днес",
|
"dinner-today": "Вечеря Днес",
|
||||||
"dinner-tonight": "Вечеря ТАЗИ ВЕЧЕР",
|
"dinner-tonight": "Вечеря ТАЗИ ВЕЧЕР",
|
||||||
@@ -473,11 +474,11 @@
|
|||||||
"add-to-timeline": "Добави към времевата линия",
|
"add-to-timeline": "Добави към времевата линия",
|
||||||
"recipe-added-to-list": "Рецептата е добавена към списъка",
|
"recipe-added-to-list": "Рецептата е добавена към списъка",
|
||||||
"recipes-added-to-list": "Рецептите са добавени към списъка",
|
"recipes-added-to-list": "Рецептите са добавени към списъка",
|
||||||
"successfully-added-to-list": "Successfully added to list",
|
"successfully-added-to-list": "Успешно добавено в списъка",
|
||||||
"recipe-added-to-mealplan": "Рецептата е добавена към хранителния план",
|
"recipe-added-to-mealplan": "Рецептата е добавена към хранителния план",
|
||||||
"failed-to-add-recipes-to-list": "Неуспешно добавяне на рецепта към списъка",
|
"failed-to-add-recipes-to-list": "Неуспешно добавяне на рецепта към списъка",
|
||||||
"failed-to-add-recipe-to-mealplan": "Рецептата не беше добавена към хранителния план",
|
"failed-to-add-recipe-to-mealplan": "Рецептата не беше добавена към хранителния план",
|
||||||
"failed-to-add-to-list": "Failed to add to list",
|
"failed-to-add-to-list": "Неуспешно добавяне към списъка",
|
||||||
"yield": "Добив",
|
"yield": "Добив",
|
||||||
"quantity": "Количество",
|
"quantity": "Количество",
|
||||||
"choose-unit": "Избери единица",
|
"choose-unit": "Избери единица",
|
||||||
@@ -536,8 +537,8 @@
|
|||||||
"new-recipe-names-must-be-unique": "Името на рецептата трябва да бъде уникално",
|
"new-recipe-names-must-be-unique": "Името на рецептата трябва да бъде уникално",
|
||||||
"scrape-recipe": "Обхождане на рецепта",
|
"scrape-recipe": "Обхождане на рецепта",
|
||||||
"scrape-recipe-description": "Обходи рецепта по линк. Предоставете линк за сайт, който искате да бъде обходен. Mealie ще опита да обходи рецептата от този сайт и да я добави във Вашата колекция.",
|
"scrape-recipe-description": "Обходи рецепта по линк. Предоставете линк за сайт, който искате да бъде обходен. Mealie ще опита да обходи рецептата от този сайт и да я добави във Вашата колекция.",
|
||||||
"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": "Имате много рецепти, които искате да обходите наведнъж?",
|
||||||
"scrape-recipe-suggest-bulk-importer": "Try out the bulk importer",
|
"scrape-recipe-suggest-bulk-importer": "Пробвайте масовото импорторане",
|
||||||
"import-original-keywords-as-tags": "Импортирай оригиналните ключови думи като тагове",
|
"import-original-keywords-as-tags": "Импортирай оригиналните ключови думи като тагове",
|
||||||
"stay-in-edit-mode": "Остани в режим на редакция",
|
"stay-in-edit-mode": "Остани в режим на редакция",
|
||||||
"import-from-zip": "Импортирай от Zip",
|
"import-from-zip": "Импортирай от Zip",
|
||||||
@@ -561,7 +562,7 @@
|
|||||||
"upload-image": "Качване на изображение",
|
"upload-image": "Качване на изображение",
|
||||||
"screen-awake": "Запази екрана активен",
|
"screen-awake": "Запази екрана активен",
|
||||||
"remove-image": "Премахване на изображение",
|
"remove-image": "Премахване на изображение",
|
||||||
"nextStep": "Next step"
|
"nextStep": "Следваща стъпка"
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"advanced-search": "Разширено търсене",
|
"advanced-search": "Разширено търсене",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Изискване на всички тагове",
|
"require-all-tags": "Изискване на всички тагове",
|
||||||
"require-all-tools": "Изискване на всички инструменти",
|
"require-all-tools": "Изискване на всички инструменти",
|
||||||
"cookbook-name": "Име на книгата с рецепти",
|
"cookbook-name": "Име на книгата с рецепти",
|
||||||
"cookbook-with-name": "Книга с рецепти {0}"
|
"cookbook-with-name": "Книга с рецепти {0}",
|
||||||
|
"create-a-cookbook": "Създай Готварска книга",
|
||||||
|
"cookbook": "Готварска книга"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Puja un fitxer",
|
"upload-file": "Puja un fitxer",
|
||||||
"created-on-date": "Creat el: {0}",
|
"created-on-date": "Creat el: {0}",
|
||||||
"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?"
|
||||||
},
|
},
|
||||||
"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/>?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Requereix totes les etiquetes",
|
"require-all-tags": "Requereix totes les etiquetes",
|
||||||
"require-all-tools": "Requereix tots els utensilis",
|
"require-all-tools": "Requereix tots els utensilis",
|
||||||
"cookbook-name": "Nom del receptari",
|
"cookbook-name": "Nom del receptari",
|
||||||
"cookbook-with-name": "Receptari {0}"
|
"cookbook-with-name": "Receptari {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Nahrát soubor",
|
"upload-file": "Nahrát soubor",
|
||||||
"created-on-date": "Vytvořeno dne: {0}",
|
"created-on-date": "Vytvořeno dne: {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Jste si jisti, že chcete smazat <b>{groupName}<b/>?",
|
"are-you-sure-you-want-to-delete-the-group": "Jste si jisti, že chcete smazat <b>{groupName}<b/>?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Vyžadovat všechny štítky",
|
"require-all-tags": "Vyžadovat všechny štítky",
|
||||||
"require-all-tools": "Vyžadovat všechny nástroje",
|
"require-all-tools": "Vyžadovat všechny nástroje",
|
||||||
"cookbook-name": "Název kuchařky",
|
"cookbook-name": "Název kuchařky",
|
||||||
"cookbook-with-name": "Kuchařka {0}"
|
"cookbook-with-name": "Kuchařka {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Upload Fil",
|
"upload-file": "Upload Fil",
|
||||||
"created-on-date": "Oprettet den: {0}",
|
"created-on-date": "Oprettet den: {0}",
|
||||||
"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": "Failed to copy to the clipboard."
|
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"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/>?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Kræv Alle Mærker",
|
"require-all-tags": "Kræv Alle Mærker",
|
||||||
"require-all-tools": "Kræv Alle Værktøjer",
|
"require-all-tools": "Kræv Alle Værktøjer",
|
||||||
"cookbook-name": "Navn på kogebog",
|
"cookbook-name": "Navn på kogebog",
|
||||||
"cookbook-with-name": "Kogebog {0}"
|
"cookbook-with-name": "Kogebog {0}",
|
||||||
|
"create-a-cookbook": "Opret en ny kogebog",
|
||||||
|
"cookbook": "Kogebog"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Datei hochladen",
|
"upload-file": "Datei hochladen",
|
||||||
"created-on-date": "Erstellt am: {0}",
|
"created-on-date": "Erstellt am: {0}",
|
||||||
"unsaved-changes": "Du hast ungespeicherte Änderungen. Möchtest du vor dem Verlassen speichern? OK um zu speichern, Cancel um Änderungen zu verwerfen.",
|
"unsaved-changes": "Du hast ungespeicherte Änderungen. Möchtest du vor dem Verlassen speichern? OK um zu speichern, Cancel um Änderungen zu verwerfen.",
|
||||||
"clipboard-copy-failure": "Fehler beim Kopieren in die Zwischenablage."
|
"clipboard-copy-failure": "Fehler beim Kopieren in die Zwischenablage.",
|
||||||
|
"confirm-delete-generic-items": "Bist du dir sicher, dass du die folgenden Einträge löschen möchtest?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Bist du dir sicher, dass du die Gruppe <b>{groupName}<b/> löschen möchtest?",
|
"are-you-sure-you-want-to-delete-the-group": "Bist du dir sicher, dass du die Gruppe <b>{groupName}<b/> löschen möchtest?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Alle Schlagwörter erforderlich",
|
"require-all-tags": "Alle Schlagwörter erforderlich",
|
||||||
"require-all-tools": "Alle Utensilien erforderlich",
|
"require-all-tools": "Alle Utensilien erforderlich",
|
||||||
"cookbook-name": "Kochbuch Name",
|
"cookbook-name": "Kochbuch Name",
|
||||||
"cookbook-with-name": "Kochbuch {0}"
|
"cookbook-with-name": "Kochbuch {0}",
|
||||||
|
"create-a-cookbook": "Ein Kochbuch erstellen",
|
||||||
|
"cookbook": "Kochbuch"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Μεταφόρτωση αρχείου",
|
"upload-file": "Μεταφόρτωση αρχείου",
|
||||||
"created-on-date": "Δημιουργήθηκε στις: {0}",
|
"created-on-date": "Δημιουργήθηκε στις: {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό τον ασφαλή σύνδεσμο <b>{groupName}<b/>;",
|
"are-you-sure-you-want-to-delete-the-group": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό τον ασφαλή σύνδεσμο <b>{groupName}<b/>;",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Require All Tags",
|
"require-all-tags": "Require All Tags",
|
||||||
"require-all-tools": "Require All Tools",
|
"require-all-tools": "Require All Tools",
|
||||||
"cookbook-name": "Cookbook Name",
|
"cookbook-name": "Cookbook Name",
|
||||||
"cookbook-with-name": "Cookbook {0}"
|
"cookbook-with-name": "Cookbook {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Upload File",
|
"upload-file": "Upload File",
|
||||||
"created-on-date": "Created on: {0}",
|
"created-on-date": "Created on: {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"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": "Are you sure you want to delete <b>{groupName}<b/>?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Require All Tags",
|
"require-all-tags": "Require All Tags",
|
||||||
"require-all-tools": "Require All Tools",
|
"require-all-tools": "Require All Tools",
|
||||||
"cookbook-name": "Cookbook Name",
|
"cookbook-name": "Cookbook Name",
|
||||||
"cookbook-with-name": "Cookbook {0}"
|
"cookbook-with-name": "Cookbook {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Upload File",
|
"upload-file": "Upload File",
|
||||||
"created-on-date": "Created on: {0}",
|
"created-on-date": "Created on: {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"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": "Are you sure you want to delete <b>{groupName}<b/>?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Require All Tags",
|
"require-all-tags": "Require All Tags",
|
||||||
"require-all-tools": "Require All Tools",
|
"require-all-tools": "Require All Tools",
|
||||||
"cookbook-name": "Cookbook Name",
|
"cookbook-name": "Cookbook Name",
|
||||||
"cookbook-with-name": "Cookbook {0}"
|
"cookbook-with-name": "Cookbook {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,7 +77,7 @@
|
|||||||
"tag-events": "Eventos de etiqueta",
|
"tag-events": "Eventos de etiqueta",
|
||||||
"category-events": "Eventos de Categoría",
|
"category-events": "Eventos de Categoría",
|
||||||
"when-a-new-user-joins-your-group": "Cuando un nuevo usuario se une a tu grupo",
|
"when-a-new-user-joins-your-group": "Cuando un nuevo usuario se une a tu grupo",
|
||||||
"recipe-events": "Recipe Events"
|
"recipe-events": "Eventos de receta"
|
||||||
},
|
},
|
||||||
"general": {
|
"general": {
|
||||||
"cancel": "Cancelar",
|
"cancel": "Cancelar",
|
||||||
@@ -114,10 +114,10 @@
|
|||||||
"json": "JSON",
|
"json": "JSON",
|
||||||
"keyword": "Etiqueta",
|
"keyword": "Etiqueta",
|
||||||
"link-copied": "Enlace copiado",
|
"link-copied": "Enlace copiado",
|
||||||
"loading": "Loading",
|
"loading": "Cargando",
|
||||||
"loading-events": "Cargando Eventos",
|
"loading-events": "Cargando Eventos",
|
||||||
"loading-recipe": "Loading recipe...",
|
"loading-recipe": "Cargando receta...",
|
||||||
"loading-ocr-data": "Loading OCR data...",
|
"loading-ocr-data": "Cargando datos OCR...",
|
||||||
"loading-recipes": "Cargando recetas",
|
"loading-recipes": "Cargando recetas",
|
||||||
"message": "Mensaje",
|
"message": "Mensaje",
|
||||||
"monday": "Lunes",
|
"monday": "Lunes",
|
||||||
@@ -198,8 +198,9 @@
|
|||||||
"refresh": "Actualizar",
|
"refresh": "Actualizar",
|
||||||
"upload-file": "Subir Archivo",
|
"upload-file": "Subir Archivo",
|
||||||
"created-on-date": "Creado el {0}",
|
"created-on-date": "Creado el {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "Tienes cambios sin guardar. ¿Quieres guardar antes de salir? Aceptar para guardar, Cancelar para descartar cambios.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
"clipboard-copy-failure": "No se pudo copiar al portapapeles.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Por favor, confirma que deseas eliminar <b>{groupName}<b/>",
|
"are-you-sure-you-want-to-delete-the-group": "Por favor, confirma que deseas eliminar <b>{groupName}<b/>",
|
||||||
@@ -214,7 +215,7 @@
|
|||||||
"group-id-with-value": "ID del Grupo: {groupID}",
|
"group-id-with-value": "ID del Grupo: {groupID}",
|
||||||
"group-name": "Nombre del Grupo",
|
"group-name": "Nombre del Grupo",
|
||||||
"group-not-found": "Grupo no encontrado",
|
"group-not-found": "Grupo no encontrado",
|
||||||
"group-token": "Group Token",
|
"group-token": "Token del grupo",
|
||||||
"group-with-value": "Grupo: {groupID}",
|
"group-with-value": "Grupo: {groupID}",
|
||||||
"groups": "Grupos",
|
"groups": "Grupos",
|
||||||
"manage-groups": "Administrar grupos",
|
"manage-groups": "Administrar grupos",
|
||||||
@@ -250,7 +251,7 @@
|
|||||||
"general-preferences": "Opciones generales",
|
"general-preferences": "Opciones generales",
|
||||||
"group-recipe-preferences": "Preferencias de grupo de las recetas",
|
"group-recipe-preferences": "Preferencias de grupo de las recetas",
|
||||||
"report": "Informe",
|
"report": "Informe",
|
||||||
"report-with-id": "Report ID: {id}",
|
"report-with-id": "ID de informe: {id}",
|
||||||
"group-management": "Administración de grupos",
|
"group-management": "Administración de grupos",
|
||||||
"admin-group-management": "Gestión del grupo administrador",
|
"admin-group-management": "Gestión del grupo administrador",
|
||||||
"admin-group-management-text": "Los cambios en este grupo se reflejarán inmediatamente.",
|
"admin-group-management-text": "Los cambios en este grupo se reflejarán inmediatamente.",
|
||||||
@@ -258,7 +259,7 @@
|
|||||||
},
|
},
|
||||||
"meal-plan": {
|
"meal-plan": {
|
||||||
"create-a-new-meal-plan": "Crear un nuevo menú",
|
"create-a-new-meal-plan": "Crear un nuevo menú",
|
||||||
"update-this-meal-plan": "Update this Meal Plan",
|
"update-this-meal-plan": "Actualizar este plan de comidas",
|
||||||
"dinner-this-week": "Cena para esta semana",
|
"dinner-this-week": "Cena para esta semana",
|
||||||
"dinner-today": "Cena para hoy",
|
"dinner-today": "Cena para hoy",
|
||||||
"dinner-tonight": "Cena para esta noche",
|
"dinner-tonight": "Cena para esta noche",
|
||||||
@@ -473,11 +474,11 @@
|
|||||||
"add-to-timeline": "Añadir al cronograma",
|
"add-to-timeline": "Añadir al cronograma",
|
||||||
"recipe-added-to-list": "Receta añadida a la lista",
|
"recipe-added-to-list": "Receta añadida a la lista",
|
||||||
"recipes-added-to-list": "Recetas añadidas a la lista",
|
"recipes-added-to-list": "Recetas añadidas a la lista",
|
||||||
"successfully-added-to-list": "Successfully added to list",
|
"successfully-added-to-list": "Añadido correctamente a la lista",
|
||||||
"recipe-added-to-mealplan": "Receta añadida al menú",
|
"recipe-added-to-mealplan": "Receta añadida al menú",
|
||||||
"failed-to-add-recipes-to-list": "Error al añadir las recetas a la lista",
|
"failed-to-add-recipes-to-list": "Error al añadir las recetas a la lista",
|
||||||
"failed-to-add-recipe-to-mealplan": "Error al añadir receta al menú",
|
"failed-to-add-recipe-to-mealplan": "Error al añadir receta al menú",
|
||||||
"failed-to-add-to-list": "Failed to add to list",
|
"failed-to-add-to-list": "No se pudo agregar a la lista",
|
||||||
"yield": "Raciones",
|
"yield": "Raciones",
|
||||||
"quantity": "Cantidad",
|
"quantity": "Cantidad",
|
||||||
"choose-unit": "Elija unidad",
|
"choose-unit": "Elija unidad",
|
||||||
@@ -514,11 +515,11 @@
|
|||||||
"how-did-it-turn-out": "¿Cómo resultó esto?",
|
"how-did-it-turn-out": "¿Cómo resultó esto?",
|
||||||
"user-made-this": "{user} hizo esto",
|
"user-made-this": "{user} hizo esto",
|
||||||
"last-made-date": "Cocinado por última vez el {date}",
|
"last-made-date": "Cocinado por última vez el {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": "Los extras de las recetas son una característica clave de la API de Mealie. Permiten crear pares json clave/valor personalizados dentro de una receta para acceder desde aplicaciones de terceros. Puede utilizar estas claves para almacenar información, para activar la automatización o mensajes personalizados para transmitir al dispositivo deseado.",
|
||||||
"message-key": "Clave de mensaje",
|
"message-key": "Clave de mensaje",
|
||||||
"parse": "Analizar",
|
"parse": "Analizar",
|
||||||
"attach-images-hint": "Adjuntar imágenes arrastrando y soltando en el editor",
|
"attach-images-hint": "Adjuntar imágenes arrastrando y soltando en el editor",
|
||||||
"drop-image": "Drop image",
|
"drop-image": "Soltar imagen",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Habilitar la cantidad de ingredientes para usar esta característica",
|
"enable-ingredient-amounts-to-use-this-feature": "Habilitar la cantidad de ingredientes para usar esta característica",
|
||||||
"recipes-with-units-or-foods-defined-cannot-be-parsed": "Las recetas con unidades o alimentos definidos no pueden ser analizadas.",
|
"recipes-with-units-or-foods-defined-cannot-be-parsed": "Las recetas con unidades o alimentos definidos no pueden ser analizadas.",
|
||||||
"parse-ingredients": "Analizar ingredientes",
|
"parse-ingredients": "Analizar ingredientes",
|
||||||
@@ -536,8 +537,8 @@
|
|||||||
"new-recipe-names-must-be-unique": "El nombre de la receta debe ser único",
|
"new-recipe-names-must-be-unique": "El nombre de la receta debe ser único",
|
||||||
"scrape-recipe": "Analiza receta",
|
"scrape-recipe": "Analiza receta",
|
||||||
"scrape-recipe-description": "Importa una receta por URL. Proporcione la URL para el sitio que desea importar, y Mealie intentará importar la receta de ese sitio y añadirla a su colección.",
|
"scrape-recipe-description": "Importa una receta por URL. Proporcione la URL para el sitio que desea importar, y Mealie intentará importar la receta de ese sitio y añadirla a su colección.",
|
||||||
"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": "¿Tienes muchas recetas que quieres raspar a la vez?",
|
||||||
"scrape-recipe-suggest-bulk-importer": "Try out the bulk importer",
|
"scrape-recipe-suggest-bulk-importer": "Prueba el importador masivo",
|
||||||
"import-original-keywords-as-tags": "Importar palabras clave originales como etiquetas",
|
"import-original-keywords-as-tags": "Importar palabras clave originales como etiquetas",
|
||||||
"stay-in-edit-mode": "Permanecer en modo edición",
|
"stay-in-edit-mode": "Permanecer en modo edición",
|
||||||
"import-from-zip": "Importar desde zip",
|
"import-from-zip": "Importar desde zip",
|
||||||
@@ -546,7 +547,7 @@
|
|||||||
"create-a-recipe-by-uploading-a-scan": "Crea una receta subiendo una escaneada.",
|
"create-a-recipe-by-uploading-a-scan": "Crea una receta subiendo una escaneada.",
|
||||||
"upload-a-png-image-from-a-recipe-book": "Suba una imagen png de un libro de recetas",
|
"upload-a-png-image-from-a-recipe-book": "Suba una imagen png de un libro de recetas",
|
||||||
"recipe-bulk-importer": "Importador masivo de recetas",
|
"recipe-bulk-importer": "Importador masivo de recetas",
|
||||||
"recipe-bulk-importer-description": "The Bulk recipe importer allows you to import multiple recipes at once by queueing the sites on the backend and running the task in the background. This can be useful when initially migrating to Mealie, or when you want to import a large number of recipes.",
|
"recipe-bulk-importer-description": "El importador masivo de recetas te permite importar múltiples recetas a la vez poniendo en cola los sitios en el backend y ejecutando la tarea en segundo plano. Esto puede ser útil al migrar inicialmente a Mealie, o cuando desea importar un gran número de recetas.",
|
||||||
"set-categories-and-tags": "Establecer categorías y etiquetas",
|
"set-categories-and-tags": "Establecer categorías y etiquetas",
|
||||||
"bulk-imports": "Importación masiva",
|
"bulk-imports": "Importación masiva",
|
||||||
"bulk-import-process-has-started": "El proceso de importación masiva se ha iniciado",
|
"bulk-import-process-has-started": "El proceso de importación masiva se ha iniciado",
|
||||||
@@ -561,7 +562,7 @@
|
|||||||
"upload-image": "Subir imagen",
|
"upload-image": "Subir imagen",
|
||||||
"screen-awake": "Mantener la pantalla encendida",
|
"screen-awake": "Mantener la pantalla encendida",
|
||||||
"remove-image": "Eliminar imagen",
|
"remove-image": "Eliminar imagen",
|
||||||
"nextStep": "Next step"
|
"nextStep": "Siguiente paso"
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"advanced-search": "Búsqueda avanzada",
|
"advanced-search": "Búsqueda avanzada",
|
||||||
@@ -580,16 +581,16 @@
|
|||||||
"search-hint": "Presione '/'",
|
"search-hint": "Presione '/'",
|
||||||
"advanced": "Avanzado",
|
"advanced": "Avanzado",
|
||||||
"auto-search": "Búsqueda automática",
|
"auto-search": "Búsqueda automática",
|
||||||
"no-results": "No results found"
|
"no-results": "No se encontraron resultados"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
"add-a-new-theme": "Añadir un nuevo tema",
|
"add-a-new-theme": "Añadir un nuevo tema",
|
||||||
"admin-settings": "Opciones del adminstrador",
|
"admin-settings": "Opciones del adminstrador",
|
||||||
"backup": {
|
"backup": {
|
||||||
"backup-created": "Backup created successfully",
|
"backup-created": "Copia de seguridad creada con éxito",
|
||||||
"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": "Restore successful",
|
"restore-success": "Restauración exitosa",
|
||||||
"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",
|
||||||
@@ -690,21 +691,21 @@
|
|||||||
"webhooks-caps": "WEBHOOKS",
|
"webhooks-caps": "WEBHOOKS",
|
||||||
"webhooks": "Webhooks",
|
"webhooks": "Webhooks",
|
||||||
"webhook-name": "Nombre del Webhook",
|
"webhook-name": "Nombre del Webhook",
|
||||||
"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": "Los webhooks definidos a continuación se ejecutarán cuando una comida esté definida para el día. A la hora prevista se enviarán los webhooks con los datos de la receta programada para el día. Tenga en cuenta que la ejecución de webhook no es exacta. Los webhooks se ejecutan en un intervalo de 5 minutos, por lo que los webhooks se ejecutarán en 5 minutos +/- de los programados."
|
||||||
},
|
},
|
||||||
"bug-report": "Informe de error",
|
"bug-report": "Informe de error",
|
||||||
"bug-report-information": "Utilice esta información para informar de un error. Proporcionar detalles de su instancia a los desarrolladores es la mejor manera de resolver sus problemas rápidamente.",
|
"bug-report-information": "Utilice esta información para informar de un error. Proporcionar detalles de su instancia a los desarrolladores es la mejor manera de resolver sus problemas rápidamente.",
|
||||||
"tracker": "Tracker",
|
"tracker": "Rastreador",
|
||||||
"configuration": "Configuración",
|
"configuration": "Configuración",
|
||||||
"docker-volume": "Volumen de Docker",
|
"docker-volume": "Volumen de Docker",
|
||||||
"docker-volume-help": "Mealie requiere que los contenedores de frontend y backend compartan el mismo volumen o almacenamiento en docker. Esto asegura que el contenedor del frontend pueda acceder adecuadamente a las imágenes y los activos almacenados en el disco.",
|
"docker-volume-help": "Mealie requiere que los contenedores de frontend y backend compartan el mismo volumen o almacenamiento en docker. Esto asegura que el contenedor del frontend pueda acceder adecuadamente a las imágenes y los activos almacenados en el disco.",
|
||||||
"volumes-are-misconfigured": "Volumes are misconfigured.",
|
"volumes-are-misconfigured": "Los volúmenes están mal configurados.",
|
||||||
"volumes-are-configured-correctly": "Los volúmenes se configuran correctamente.",
|
"volumes-are-configured-correctly": "Los volúmenes se configuran correctamente.",
|
||||||
"status-unknown-try-running-a-validation": "Estado desconocido. Intente ejecutar una validación.",
|
"status-unknown-try-running-a-validation": "Estado desconocido. Intente ejecutar una validación.",
|
||||||
"validate": "Validar",
|
"validate": "Validar",
|
||||||
"email-configuration-status": "Estado de la Configuración del Correo Electrónico",
|
"email-configuration-status": "Estado de la Configuración del Correo Electrónico",
|
||||||
"email-configured": "Email Configured",
|
"email-configured": "Email configurado",
|
||||||
"email-test-results": "Email Test Results",
|
"email-test-results": "Resultados de la prueba de email",
|
||||||
"ready": "Listo",
|
"ready": "Listo",
|
||||||
"not-ready": "No Listo - Comprobar variables de ambiente",
|
"not-ready": "No Listo - Comprobar variables de ambiente",
|
||||||
"succeeded": "Logrado",
|
"succeeded": "Logrado",
|
||||||
@@ -715,10 +716,10 @@
|
|||||||
"mealie-is-up-to-date": "Mealie está actualizada",
|
"mealie-is-up-to-date": "Mealie está actualizada",
|
||||||
"secure-site": "Sitio Seguro",
|
"secure-site": "Sitio Seguro",
|
||||||
"secure-site-error-text": "Servir a través de local host o seguro con HTTPS. El portapapeles y API adicionales del navegador pueden no funcionar.",
|
"secure-site-error-text": "Servir a través de local host o seguro con HTTPS. El portapapeles y API adicionales del navegador pueden no funcionar.",
|
||||||
"secure-site-success-text": "Site is accessed by localhost or https",
|
"secure-site-success-text": "Se accede al sitio por localhost o https",
|
||||||
"server-side-base-url": "Server Side Base URL",
|
"server-side-base-url": "URL base del 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` sigue siendo el valor por defecto en el servidor API. Esto causará problemas con las notificaciones generadas en el servidor de correos electrónicos, etc.",
|
||||||
"server-side-base-url-success-text": "Server Side URL does not match the default",
|
"server-side-base-url-success-text": "La URL del servidor no coincide con la predeterminada",
|
||||||
"ldap-ready": "LDAP Listo",
|
"ldap-ready": "LDAP Listo",
|
||||||
"ldap-ready-error-text": "No todos los valores LDAP están configurados. Esto puede ignorarse si no está usando autenticación LDAP.",
|
"ldap-ready-error-text": "No todos los valores LDAP están configurados. Esto puede ignorarse si no está usando autenticación LDAP.",
|
||||||
"ldap-ready-success-text": "Las variables LDAP requeridas están todas definidas.",
|
"ldap-ready-success-text": "Las variables LDAP requeridas están todas definidas.",
|
||||||
@@ -748,7 +749,7 @@
|
|||||||
"reorder-labels": "Reordenar etiquetas",
|
"reorder-labels": "Reordenar etiquetas",
|
||||||
"uncheck-all-items": "Desmarcar todos los elementos",
|
"uncheck-all-items": "Desmarcar todos los elementos",
|
||||||
"check-all-items": "Marcar todos los elementos",
|
"check-all-items": "Marcar todos los elementos",
|
||||||
"linked-recipes-count": "No Linked Recipes|One Linked Recipe|{count} Linked Recipes",
|
"linked-recipes-count": "No hay recetas vinculadas|Una receta vinculada|{count} recetas vinculadas",
|
||||||
"items-checked-count": "Ningún elemento comprobado|Un elemento comprobado|{count} elementos comprobados",
|
"items-checked-count": "Ningún elemento comprobado|Un elemento comprobado|{count} elementos comprobados",
|
||||||
"no-label": "Sin Etiqueta",
|
"no-label": "Sin Etiqueta",
|
||||||
"completed-on": "Completado el {date}"
|
"completed-on": "Completado el {date}"
|
||||||
@@ -841,7 +842,7 @@
|
|||||||
"password-updated": "Contraseña actualizada",
|
"password-updated": "Contraseña actualizada",
|
||||||
"password": "Contraseña",
|
"password": "Contraseña",
|
||||||
"password-strength": "Fortaleza de la contraseña: {strength}",
|
"password-strength": "Fortaleza de la contraseña: {strength}",
|
||||||
"please-enter-password": "Please enter your new password.",
|
"please-enter-password": "Por favor ingrese su nueva contraseña.",
|
||||||
"register": "Registrarse",
|
"register": "Registrarse",
|
||||||
"reset-password": "Restablecer contraseña",
|
"reset-password": "Restablecer contraseña",
|
||||||
"sign-in": "Iniciar sesión",
|
"sign-in": "Iniciar sesión",
|
||||||
@@ -862,7 +863,7 @@
|
|||||||
"username": "Usuario",
|
"username": "Usuario",
|
||||||
"users-header": "USUARIOS",
|
"users-header": "USUARIOS",
|
||||||
"users": "Usuarios",
|
"users": "Usuarios",
|
||||||
"user-not-found": "User not found",
|
"user-not-found": "Usuario no encontrado",
|
||||||
"webhook-time": "Tiempo de Webhook",
|
"webhook-time": "Tiempo de Webhook",
|
||||||
"webhooks-enabled": "Webhooks habilitados",
|
"webhooks-enabled": "Webhooks habilitados",
|
||||||
"you-are-not-allowed-to-create-a-user": "No tiene permisos para crear usuarios",
|
"you-are-not-allowed-to-create-a-user": "No tiene permisos para crear usuarios",
|
||||||
@@ -885,7 +886,7 @@
|
|||||||
"user-management": "Gestión de Usuarios",
|
"user-management": "Gestión de Usuarios",
|
||||||
"reset-locked-users": "Restablecer usuarios bloqueados",
|
"reset-locked-users": "Restablecer usuarios bloqueados",
|
||||||
"admin-user-creation": "Creación de Usuario Administrador",
|
"admin-user-creation": "Creación de Usuario Administrador",
|
||||||
"admin-user-management": "Admin User Management",
|
"admin-user-management": "Administración de usuario de admin",
|
||||||
"user-details": "Detalles de usuario",
|
"user-details": "Detalles de usuario",
|
||||||
"user-name": "Nombre de usuario",
|
"user-name": "Nombre de usuario",
|
||||||
"authentication-method": "Método de autenticación",
|
"authentication-method": "Método de autenticación",
|
||||||
@@ -896,11 +897,11 @@
|
|||||||
"user-can-manage-group": "El usuario puede administrar el grupo",
|
"user-can-manage-group": "El usuario puede administrar el grupo",
|
||||||
"user-can-organize-group-data": "El usuario puede organizar los datos del grupo",
|
"user-can-organize-group-data": "El usuario puede organizar los datos del grupo",
|
||||||
"enable-advanced-features": "Habilitar Características Avanzadas",
|
"enable-advanced-features": "Habilitar Características Avanzadas",
|
||||||
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
|
"it-looks-like-this-is-your-first-time-logging-in": "Parece que esta es la primera vez que inicias sesión.",
|
||||||
"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": "¿No quieres ver esto más? ¡Asegúrate de cambiar tu correo electrónico en tu configuración de usuario!",
|
||||||
"forgot-password": "Forgot Password",
|
"forgot-password": "Olvidé mi contraseña",
|
||||||
"forgot-password-text": "Please enter your email address and we will send you a link to reset your password.",
|
"forgot-password-text": "Por favor, introduce tu correo electrónico y te enviaremos un enlace para restablecer tu contraseña.",
|
||||||
"changes-reflected-immediately": "Changes to this user will be reflected immediately."
|
"changes-reflected-immediately": "Los cambios en este grupo se reflejarán inmediatamente."
|
||||||
},
|
},
|
||||||
"language-dialog": {
|
"language-dialog": {
|
||||||
"translated": "traducido",
|
"translated": "traducido",
|
||||||
@@ -927,19 +928,19 @@
|
|||||||
},
|
},
|
||||||
"units": {
|
"units": {
|
||||||
"seed-dialog-text": "Añade a la base de datos unidades comunes basadas en su idioma local.",
|
"seed-dialog-text": "Añade a la base de datos unidades comunes basadas en su idioma local.",
|
||||||
"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": "Combinar los alimentos seleccionados fusionará el alimento origen y destinatario en un solo alimento. El alimento {source-unit-will-be-deleted} será eliminado y todas las referencias a él serán actualizadas para apuntar al nuevo alimento.",
|
||||||
"combine-unit": "Unidad de Combinación",
|
"combine-unit": "Unidad de Combinación",
|
||||||
"source-unit": "Source Unit",
|
"source-unit": "Unidad de origen",
|
||||||
"target-unit": "Target Unit",
|
"target-unit": "Unidad de objetivo",
|
||||||
"merging-unit-into-unit": "Merging {0} into {1}",
|
"merging-unit-into-unit": "Combinando {0} con {1}",
|
||||||
"create-unit": "Create Unit",
|
"create-unit": "Crear unidad",
|
||||||
"abbreviation": "Abreviatura",
|
"abbreviation": "Abreviatura",
|
||||||
"plural-abbreviation": "Abreviatura en plural",
|
"plural-abbreviation": "Abreviatura en plural",
|
||||||
"description": "Descripción",
|
"description": "Descripción",
|
||||||
"display-as-fraction": "Display as Fraction",
|
"display-as-fraction": "Mostrar como fracción",
|
||||||
"use-abbreviation": "Usar Abreviaturas",
|
"use-abbreviation": "Usar Abreviaturas",
|
||||||
"edit-unit": "Editar unidad",
|
"edit-unit": "Editar unidad",
|
||||||
"unit-data": "Unit Data",
|
"unit-data": "Datos de la unidad",
|
||||||
"use-abbv": "Usar Abr.",
|
"use-abbv": "Usar Abr.",
|
||||||
"fraction": "Fracción",
|
"fraction": "Fracción",
|
||||||
"example-unit-singular": "ej: Cucharada",
|
"example-unit-singular": "ej: Cucharada",
|
||||||
@@ -956,10 +957,10 @@
|
|||||||
"recipes": {
|
"recipes": {
|
||||||
"purge-exports": "Limpiar exportaciones",
|
"purge-exports": "Limpiar exportaciones",
|
||||||
"are-you-sure-you-want-to-delete-all-export-data": "¿Está seguro de que desea eliminar todos sus datos de exportación?",
|
"are-you-sure-you-want-to-delete-all-export-data": "¿Está seguro de que desea eliminar todos sus datos de exportación?",
|
||||||
"confirm-delete-recipes": "Are you sure you want to delete the following recipes? This action cannot be undone.",
|
"confirm-delete-recipes": "¿Estás seguro de que quieres eliminar las siguientes recetas? Esta acción no podrá deshacerse.",
|
||||||
"the-following-recipes-selected-length-will-be-exported": "The following recipes ({0}) will be exported.",
|
"the-following-recipes-selected-length-will-be-exported": "Las siguientes recetas ({0}) serán exportadas.",
|
||||||
"settings-chosen-explanation": "Settings chosen here, excluding the locked option, will be applied to all selected recipes.",
|
"settings-chosen-explanation": "Los ajustes seleccionados aquí, excluyendo la opción bloqueada, se aplicarán a todas las recetas seleccionadas.",
|
||||||
"selected-length-recipe-s-settings-will-be-updated": "{count} recipe(s) settings will be updated.",
|
"selected-length-recipe-s-settings-will-be-updated": "Se actualizarán los ajustes de {count} receta(s).",
|
||||||
"recipe-data": "Datos de la receta",
|
"recipe-data": "Datos de la receta",
|
||||||
"recipe-data-description": "Use this section to manage the data associated with your recipes. You can perform several bulk actions on your recipes including exporting, deleting, tagging, and assigning categories.",
|
"recipe-data-description": "Use this section to manage the data associated with your recipes. You can perform several bulk actions on your recipes including exporting, deleting, tagging, and assigning categories.",
|
||||||
"recipe-columns": "Recipe Columns",
|
"recipe-columns": "Recipe Columns",
|
||||||
@@ -1120,14 +1121,14 @@
|
|||||||
"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": "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.",
|
||||||
"nlp": "NLP",
|
"nlp": "NLP",
|
||||||
"brute": "Brute",
|
"brute": "Brute",
|
||||||
"show-individual-confidence": "Show individual confidence",
|
"show-individual-confidence": "Mostrar confianza individual",
|
||||||
"ingredient-text": "Ingredient Text",
|
"ingredient-text": "Texto del ingrediente",
|
||||||
"average-confident": "{0} Confident",
|
"average-confident": "{0} Confianza",
|
||||||
"try-an-example": "Try an example",
|
"try-an-example": "Prueba un ejemplo",
|
||||||
"parser": "Procesador",
|
"parser": "Procesador",
|
||||||
"background-tasks": "Tareas en Segundo Plano",
|
"background-tasks": "Tareas en Segundo Plano",
|
||||||
"background-tasks-description": "Here you can view all the running background tasks and their status",
|
"background-tasks-description": "Aquí puedes ver todas las tareas de fondo en ejecución y su estado",
|
||||||
"no-logs-found": "No Logs Found",
|
"no-logs-found": "No se encontraron registros",
|
||||||
"tasks": "Tareas"
|
"tasks": "Tareas"
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
@@ -1137,7 +1138,7 @@
|
|||||||
"get-public-link": "Obtener enlace público",
|
"get-public-link": "Obtener enlace público",
|
||||||
"account-summary": "Información de la cuenta",
|
"account-summary": "Información de la cuenta",
|
||||||
"account-summary-description": "Este es un resumen de la información de tu grupo",
|
"account-summary-description": "Este es un resumen de la información de tu grupo",
|
||||||
"group-statistics": "Group Statistics",
|
"group-statistics": "Estadísticas del grupo",
|
||||||
"group-statistics-description": "Your Group Statistics provide some insight how you're using Mealie.",
|
"group-statistics-description": "Your Group Statistics provide some insight how you're using Mealie.",
|
||||||
"storage-capacity": "Capacidad de almacenamiento",
|
"storage-capacity": "Capacidad de almacenamiento",
|
||||||
"storage-capacity-description": "Your storage capacity is a calculation of the images and assets you have uploaded.",
|
"storage-capacity-description": "Your storage capacity is a calculation of the images and assets you have uploaded.",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Requerir todas las etiquetas",
|
"require-all-tags": "Requerir todas las etiquetas",
|
||||||
"require-all-tools": "Requiere todos los utensilios",
|
"require-all-tools": "Requiere todos los utensilios",
|
||||||
"cookbook-name": "Nombre del recetario",
|
"cookbook-name": "Nombre del recetario",
|
||||||
"cookbook-with-name": "Recetario {0}"
|
"cookbook-with-name": "Recetario {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Tuo tiedosto",
|
"upload-file": "Tuo tiedosto",
|
||||||
"created-on-date": "Luotu {0}",
|
"created-on-date": "Luotu {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Haluatko varmasti poistaa ryhmän <b>{groupName}<b/>?",
|
"are-you-sure-you-want-to-delete-the-group": "Haluatko varmasti poistaa ryhmän <b>{groupName}<b/>?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Vaadi Kaikki Tunnisteet",
|
"require-all-tags": "Vaadi Kaikki Tunnisteet",
|
||||||
"require-all-tools": "Vaadi Kaikki Työkalut",
|
"require-all-tools": "Vaadi Kaikki Työkalut",
|
||||||
"cookbook-name": "Keittokirjan Nimi",
|
"cookbook-name": "Keittokirjan Nimi",
|
||||||
"cookbook-with-name": "Keittokirja {0}"
|
"cookbook-with-name": "Keittokirja {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Transférer un fichier",
|
"upload-file": "Transférer un fichier",
|
||||||
"created-on-date": "Créé le {0}",
|
"created-on-date": "Créé le {0}",
|
||||||
"unsaved-changes": "Vous avez des modifications non enregistrées. Voulez-vous les enregistrer ? Ok pour enregistrer, annuler pour ignorer les modifications.",
|
"unsaved-changes": "Vous avez des modifications non enregistrées. Voulez-vous les enregistrer ? Ok pour enregistrer, annuler pour ignorer les modifications.",
|
||||||
"clipboard-copy-failure": "Échec de la copie vers le presse-papiers."
|
"clipboard-copy-failure": "Échec de la copie vers le presse-papiers.",
|
||||||
|
"confirm-delete-generic-items": "Êtes-vous sûr de vouloir supprimer les éléments suivants ?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Êtes-vous certain de vouloir supprimer <b>{groupName}<b/>?",
|
"are-you-sure-you-want-to-delete-the-group": "Êtes-vous certain de vouloir supprimer <b>{groupName}<b/>?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Nécessite tous les mots-clés",
|
"require-all-tags": "Nécessite tous les mots-clés",
|
||||||
"require-all-tools": "Nécessite tous les ustensiles",
|
"require-all-tools": "Nécessite tous les ustensiles",
|
||||||
"cookbook-name": "Nom du livre de recettes",
|
"cookbook-name": "Nom du livre de recettes",
|
||||||
"cookbook-with-name": "Livre de recettes {0}"
|
"cookbook-with-name": "Livre de recettes {0}",
|
||||||
|
"create-a-cookbook": "Créer un nouveau livre de recettes",
|
||||||
|
"cookbook": "Livre de recettes"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Transférer un fichier",
|
"upload-file": "Transférer un fichier",
|
||||||
"created-on-date": "Créé le {0}",
|
"created-on-date": "Créé le {0}",
|
||||||
"unsaved-changes": "Vous avez des modifications non enregistrées. Voulez-vous enregistrer avant de partir ? OK pour enregistrer, Annuler pour ignorer les modifications.",
|
"unsaved-changes": "Vous avez des modifications non enregistrées. Voulez-vous enregistrer avant de partir ? OK pour enregistrer, Annuler pour ignorer les modifications.",
|
||||||
"clipboard-copy-failure": "Échec de la copie dans le presse-papiers."
|
"clipboard-copy-failure": "Échec de la copie dans le presse-papiers.",
|
||||||
|
"confirm-delete-generic-items": "Êtes-vous sûr de vouloir supprimer les éléments suivants ?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Voulez-vous vraiment supprimer <b>{groupName}<b/> ?",
|
"are-you-sure-you-want-to-delete-the-group": "Voulez-vous vraiment supprimer <b>{groupName}<b/> ?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Nécessite tous les mots-clés",
|
"require-all-tags": "Nécessite tous les mots-clés",
|
||||||
"require-all-tools": "Nécessite tous les ustensiles",
|
"require-all-tools": "Nécessite tous les ustensiles",
|
||||||
"cookbook-name": "Nom du livre de recettes",
|
"cookbook-name": "Nom du livre de recettes",
|
||||||
"cookbook-with-name": "Livre de recettes {0}"
|
"cookbook-with-name": "Livre de recettes {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Upload File",
|
"upload-file": "Upload File",
|
||||||
"created-on-date": "Created on: {0}",
|
"created-on-date": "Created on: {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"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": "Are you sure you want to delete <b>{groupName}<b/>?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Require All Tags",
|
"require-all-tags": "Require All Tags",
|
||||||
"require-all-tools": "Require All Tools",
|
"require-all-tools": "Require All Tools",
|
||||||
"cookbook-name": "Cookbook Name",
|
"cookbook-name": "Cookbook Name",
|
||||||
"cookbook-with-name": "Cookbook {0}"
|
"cookbook-with-name": "Cookbook {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "העלאת קבצים",
|
"upload-file": "העלאת קבצים",
|
||||||
"created-on-date": "נוצר ב-{0}",
|
"created-on-date": "נוצר ב-{0}",
|
||||||
"unsaved-changes": "יש שינויים שלא נשמרו. לצאת לפני שמירה? אשר לשמירה, בטל למחיקת שינויים.",
|
"unsaved-changes": "יש שינויים שלא נשמרו. לצאת לפני שמירה? אשר לשמירה, בטל למחיקת שינויים.",
|
||||||
"clipboard-copy-failure": "כשלון בהעתקה ללוח ההדבקה."
|
"clipboard-copy-failure": "כשלון בהעתקה ללוח ההדבקה.",
|
||||||
|
"confirm-delete-generic-items": "האם אתה בטוח שברצונך למחוק את הפריטים הנבחרים?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "האם את/ה בטוח/ה שברצונך למחוק את <b>{groupName}<b/>?",
|
"are-you-sure-you-want-to-delete-the-group": "האם את/ה בטוח/ה שברצונך למחוק את <b>{groupName}<b/>?",
|
||||||
@@ -258,7 +259,7 @@
|
|||||||
},
|
},
|
||||||
"meal-plan": {
|
"meal-plan": {
|
||||||
"create-a-new-meal-plan": "יצירת תכנית ארוחות חדשה",
|
"create-a-new-meal-plan": "יצירת תכנית ארוחות חדשה",
|
||||||
"update-this-meal-plan": "Update this Meal Plan",
|
"update-this-meal-plan": "עדכן את תכנון הארוחות",
|
||||||
"dinner-this-week": "ארוחות ערב השבוע",
|
"dinner-this-week": "ארוחות ערב השבוע",
|
||||||
"dinner-today": "ארוחת ערב היום",
|
"dinner-today": "ארוחת ערב היום",
|
||||||
"dinner-tonight": "ארוחת ערב היום",
|
"dinner-tonight": "ארוחת ערב היום",
|
||||||
@@ -473,11 +474,11 @@
|
|||||||
"add-to-timeline": "הוסף לציר הזמן",
|
"add-to-timeline": "הוסף לציר הזמן",
|
||||||
"recipe-added-to-list": "מתכון נוסף לרשימה",
|
"recipe-added-to-list": "מתכון נוסף לרשימה",
|
||||||
"recipes-added-to-list": "מתכונים הוספו לרשימה",
|
"recipes-added-to-list": "מתכונים הוספו לרשימה",
|
||||||
"successfully-added-to-list": "Successfully added to list",
|
"successfully-added-to-list": "נוסף לרשימה בהצלחה",
|
||||||
"recipe-added-to-mealplan": "מתכון נוסף לתכנון ארוחות",
|
"recipe-added-to-mealplan": "מתכון נוסף לתכנון ארוחות",
|
||||||
"failed-to-add-recipes-to-list": "כשלון בהוספת מתכון לרשימה",
|
"failed-to-add-recipes-to-list": "כשלון בהוספת מתכון לרשימה",
|
||||||
"failed-to-add-recipe-to-mealplan": "הוספת מתכון לתכנון ארוחות נכשלה",
|
"failed-to-add-recipe-to-mealplan": "הוספת מתכון לתכנון ארוחות נכשלה",
|
||||||
"failed-to-add-to-list": "Failed to add to list",
|
"failed-to-add-to-list": "כשלון בהוספה לרשימה",
|
||||||
"yield": "תשואה",
|
"yield": "תשואה",
|
||||||
"quantity": "כמות",
|
"quantity": "כמות",
|
||||||
"choose-unit": "בחירת יחידת מידה",
|
"choose-unit": "בחירת יחידת מידה",
|
||||||
@@ -514,7 +515,7 @@
|
|||||||
"how-did-it-turn-out": "איך יצא?",
|
"how-did-it-turn-out": "איך יצא?",
|
||||||
"user-made-this": "{user} הכין את זה",
|
"user-made-this": "{user} הכין את זה",
|
||||||
"last-made-date": "נעשה לאחרונה ב{date}",
|
"last-made-date": "נעשה לאחרונה ב{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": "מתכונים נוספים הם יכולת מפתח של Mealie API. הם מאפשרים ליצור צמדי key/value בצורת JSON על מנת לקרוא אותם בתוכנת צד שלישית. תוכלו להשתמש בצמדים האלה כדי לספק מידע, לדוגמא להפעיל אוטומציות או הודעות מותאמות אישית למכשירים מסויימים.",
|
||||||
"message-key": "מפתח הודעה",
|
"message-key": "מפתח הודעה",
|
||||||
"parse": "ניתוח",
|
"parse": "ניתוח",
|
||||||
"attach-images-hint": "הוסף תמונות ע\"י גרירה ושחרור אל תוך העורך",
|
"attach-images-hint": "הוסף תמונות ע\"י גרירה ושחרור אל תוך העורך",
|
||||||
@@ -536,8 +537,8 @@
|
|||||||
"new-recipe-names-must-be-unique": "שם מתכון חדש חייב להיות ייחודי",
|
"new-recipe-names-must-be-unique": "שם מתכון חדש חייב להיות ייחודי",
|
||||||
"scrape-recipe": "קריאת מתכון",
|
"scrape-recipe": "קריאת מתכון",
|
||||||
"scrape-recipe-description": "קריאת מתכון בעזרת לינק. ספק את הלינק של האתר שברצונך לקרוא, ומילי תנסה לקרוא את המתכון מהאתר ולהוסיף אותו לאוסף.",
|
"scrape-recipe-description": "קריאת מתכון בעזרת לינק. ספק את הלינק של האתר שברצונך לקרוא, ומילי תנסה לקרוא את המתכון מהאתר ולהוסיף אותו לאוסף.",
|
||||||
"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": "יש לך הרבה מתכונים שאתה רוצה לקרוא בבת אחת?",
|
||||||
"scrape-recipe-suggest-bulk-importer": "Try out the bulk importer",
|
"scrape-recipe-suggest-bulk-importer": "נסה את יכולת קריאת רשימה",
|
||||||
"import-original-keywords-as-tags": "ייבא שמות מפתח מקוריות כתגיות",
|
"import-original-keywords-as-tags": "ייבא שמות מפתח מקוריות כתגיות",
|
||||||
"stay-in-edit-mode": "השאר במצב עריכה",
|
"stay-in-edit-mode": "השאר במצב עריכה",
|
||||||
"import-from-zip": "ייבא מקובץ",
|
"import-from-zip": "ייבא מקובץ",
|
||||||
@@ -561,7 +562,7 @@
|
|||||||
"upload-image": "העלה תמונה",
|
"upload-image": "העלה תמונה",
|
||||||
"screen-awake": "השאר את המסך פעיל",
|
"screen-awake": "השאר את המסך פעיל",
|
||||||
"remove-image": "האם למחוק את התמונה?",
|
"remove-image": "האם למחוק את התמונה?",
|
||||||
"nextStep": "Next step"
|
"nextStep": "השלב הבא"
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"advanced-search": "חיפוש מתקדם",
|
"advanced-search": "חיפוש מתקדם",
|
||||||
@@ -796,7 +797,7 @@
|
|||||||
"untagged-count": "לא מתוייג {count}",
|
"untagged-count": "לא מתוייג {count}",
|
||||||
"create-a-tag": "צור תגית",
|
"create-a-tag": "צור תגית",
|
||||||
"tag-name": "שם תגית",
|
"tag-name": "שם תגית",
|
||||||
"tag": "Tag"
|
"tag": "תגית"
|
||||||
},
|
},
|
||||||
"tool": {
|
"tool": {
|
||||||
"tools": "כלים",
|
"tools": "כלים",
|
||||||
@@ -806,7 +807,7 @@
|
|||||||
"create-new-tool": "יצירת כלי חדש",
|
"create-new-tool": "יצירת כלי חדש",
|
||||||
"on-hand-checkbox-label": "הראה מה יש לי במטבח",
|
"on-hand-checkbox-label": "הראה מה יש לי במטבח",
|
||||||
"required-tools": "צריך כלים",
|
"required-tools": "צריך כלים",
|
||||||
"tool": "Tool"
|
"tool": "כלי"
|
||||||
},
|
},
|
||||||
"user": {
|
"user": {
|
||||||
"admin": "אדמין",
|
"admin": "אדמין",
|
||||||
@@ -897,10 +898,10 @@
|
|||||||
"user-can-organize-group-data": "משתמש יכול לשנות מידע של קבוצה",
|
"user-can-organize-group-data": "משתמש יכול לשנות מידע של קבוצה",
|
||||||
"enable-advanced-features": "אפשר אפשרויות מתקדמות",
|
"enable-advanced-features": "אפשר אפשרויות מתקדמות",
|
||||||
"it-looks-like-this-is-your-first-time-logging-in": "נראה שזו ההתחברות הראשונה שלך.",
|
"it-looks-like-this-is-your-first-time-logging-in": "נראה שזו ההתחברות הראשונה שלך.",
|
||||||
"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": "לא רוצה לראות את זה יותר? דאג לשנות את המייל של בהגדרות המשתמש!",
|
||||||
"forgot-password": "שכחתי סיסמא",
|
"forgot-password": "שכחתי סיסמא",
|
||||||
"forgot-password-text": "Please enter your email address and we will send you a link to reset your password.",
|
"forgot-password-text": "נא לספק כתובת דוא\"ל. אנו נשלח לך הודעת דוא\"ל לצורך איפוס הסיסמה שלך.",
|
||||||
"changes-reflected-immediately": "Changes to this user will be reflected immediately."
|
"changes-reflected-immediately": "השינויים למשתמש זה יבוצעו מיידית."
|
||||||
},
|
},
|
||||||
"language-dialog": {
|
"language-dialog": {
|
||||||
"translated": "תורגם",
|
"translated": "תורגם",
|
||||||
@@ -922,8 +923,8 @@
|
|||||||
"food-label": "תוית אוכל",
|
"food-label": "תוית אוכל",
|
||||||
"edit-food": "עריכת מזון",
|
"edit-food": "עריכת מזון",
|
||||||
"food-data": "נתוני אוכל",
|
"food-data": "נתוני אוכל",
|
||||||
"example-food-singular": "ex: Onion",
|
"example-food-singular": "דוגמא: בצל",
|
||||||
"example-food-plural": "ex: Onions"
|
"example-food-plural": "דוגמא: בצלים"
|
||||||
},
|
},
|
||||||
"units": {
|
"units": {
|
||||||
"seed-dialog-text": "אכלס את מסד הנתונים עם יחידות מדידה בהתאם לשפה המקומית שלך.",
|
"seed-dialog-text": "אכלס את מסד הנתונים עם יחידות מדידה בהתאם לשפה המקומית שלך.",
|
||||||
@@ -934,7 +935,7 @@
|
|||||||
"merging-unit-into-unit": "ממזג את {0} לתוך {1}",
|
"merging-unit-into-unit": "ממזג את {0} לתוך {1}",
|
||||||
"create-unit": "יצירת יחידה",
|
"create-unit": "יצירת יחידה",
|
||||||
"abbreviation": "קיצור",
|
"abbreviation": "קיצור",
|
||||||
"plural-abbreviation": "Plural Abbreviation",
|
"plural-abbreviation": "צורת הרבית",
|
||||||
"description": "תיאור",
|
"description": "תיאור",
|
||||||
"display-as-fraction": "הצגה כשבר",
|
"display-as-fraction": "הצגה כשבר",
|
||||||
"use-abbreviation": "השתמש בקיצור",
|
"use-abbreviation": "השתמש בקיצור",
|
||||||
@@ -942,10 +943,10 @@
|
|||||||
"unit-data": "נתוני יחידה",
|
"unit-data": "נתוני יחידה",
|
||||||
"use-abbv": "השתמש בקיצור",
|
"use-abbv": "השתמש בקיצור",
|
||||||
"fraction": "שבר",
|
"fraction": "שבר",
|
||||||
"example-unit-singular": "ex: Tablespoon",
|
"example-unit-singular": "דוגמא: כפית",
|
||||||
"example-unit-plural": "ex: Tablespoons",
|
"example-unit-plural": "דוגמא: כפיות",
|
||||||
"example-unit-abbreviation-singular": "ex: Tbsp",
|
"example-unit-abbreviation-singular": "דוגמא: כף",
|
||||||
"example-unit-abbreviation-plural": "ex: Tbsps"
|
"example-unit-abbreviation-plural": "דוגמא: כפות"
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"seed-dialog-text": "אכלס את מסד הנתונים בתגיות נפוצות בהתאם לשפה המקומית שלך.",
|
"seed-dialog-text": "אכלס את מסד הנתונים בתגיות נפוצות בהתאם לשפה המקומית שלך.",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "זקוק לכל התגיות",
|
"require-all-tags": "זקוק לכל התגיות",
|
||||||
"require-all-tools": "זקוק לכל הכלים",
|
"require-all-tools": "זקוק לכל הכלים",
|
||||||
"cookbook-name": "שם ספר בישול",
|
"cookbook-name": "שם ספר בישול",
|
||||||
"cookbook-with-name": "ספר בישול {0}"
|
"cookbook-with-name": "ספר בישול {0}",
|
||||||
|
"create-a-cookbook": "צור ספר בישול חדש",
|
||||||
|
"cookbook": "ספר בישול"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Prenesi Datoteku",
|
"upload-file": "Prenesi Datoteku",
|
||||||
"created-on-date": "Kreirano dana: {0}",
|
"created-on-date": "Kreirano dana: {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Jeste li sigurni da želite izbrisati <b>{groupName}<b/>?",
|
"are-you-sure-you-want-to-delete-the-group": "Jeste li sigurni da želite izbrisati <b>{groupName}<b/>?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Zahtijevaj sve oznake",
|
"require-all-tags": "Zahtijevaj sve oznake",
|
||||||
"require-all-tools": "Zahtijevaj sve Alate",
|
"require-all-tools": "Zahtijevaj sve Alate",
|
||||||
"cookbook-name": "Naziv Zbirke recepata",
|
"cookbook-name": "Naziv Zbirke recepata",
|
||||||
"cookbook-with-name": "ZbirkaRecepata {0}"
|
"cookbook-with-name": "ZbirkaRecepata {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,7 +56,7 @@
|
|||||||
"event-delete-confirmation": "Biztosan törölni szeretné ezt az eseményt?",
|
"event-delete-confirmation": "Biztosan törölni szeretné ezt az eseményt?",
|
||||||
"event-deleted": "Esemény törölve",
|
"event-deleted": "Esemény törölve",
|
||||||
"event-updated": "Esemény Frissítve",
|
"event-updated": "Esemény Frissítve",
|
||||||
"new-notification-form-description": "A Mealie az Apprise könyvtárat használja az értesítésekhez. Számos lehetőséget kínál különbőző értesítési szolgáltatásokhoz. Nézd meg a wiki oldalukon, hogy kell URL-t létrehozni az általad használt szolgáltatáshoz. Az értesítés tipusának kiválasztásával egyéb beállítási lehetőségek jelenhetnek meg.",
|
"new-notification-form-description": "A Mealie az Apprise könyvtárat használja az értesítésekhez. Számos lehetőséget kínál különböző értesítési szolgáltatásokhoz. Nézd meg a wiki oldalukon, hogy kell URL-t létrehozni az általad használt szolgáltatáshoz. Az értesítés típusának kiválasztásával egyéb beállítási lehetőségek jelenhetnek meg.",
|
||||||
"new-version": "Új verzió elérhető!",
|
"new-version": "Új verzió elérhető!",
|
||||||
"notification": "Értesítések",
|
"notification": "Értesítések",
|
||||||
"refresh": "Frissítés",
|
"refresh": "Frissítés",
|
||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Fájl feltöltése",
|
"upload-file": "Fájl feltöltése",
|
||||||
"created-on-date": "Létrehozva: {0}",
|
"created-on-date": "Létrehozva: {0}",
|
||||||
"unsaved-changes": "El nem mentett módosításai vannak. Szeretné elmenteni, mielőtt kilép? A mentéshez kattintson az Ok, a módosítások elvetéséhez a Mégsem gombra.",
|
"unsaved-changes": "El nem mentett módosításai vannak. Szeretné elmenteni, mielőtt kilép? A mentéshez kattintson az Ok, a módosítások elvetéséhez a Mégsem gombra.",
|
||||||
"clipboard-copy-failure": "Nem sikerült a vágólapra másolás."
|
"clipboard-copy-failure": "Nem sikerült a vágólapra másolás.",
|
||||||
|
"confirm-delete-generic-items": "Biztos benne, hogy törölni szeretné az alábbi tételeket?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Biztosan törölni szeretnéd ezt: <b>{groupName}<b/>?",
|
"are-you-sure-you-want-to-delete-the-group": "Biztosan törölni szeretnéd ezt: <b>{groupName}<b/>?",
|
||||||
@@ -473,11 +474,11 @@
|
|||||||
"add-to-timeline": "Hozzáadás idővonalhoz",
|
"add-to-timeline": "Hozzáadás idővonalhoz",
|
||||||
"recipe-added-to-list": "Recept hozzáadva listához",
|
"recipe-added-to-list": "Recept hozzáadva listához",
|
||||||
"recipes-added-to-list": "Recept hozzáadva listához",
|
"recipes-added-to-list": "Recept hozzáadva listához",
|
||||||
"successfully-added-to-list": "Successfully added to list",
|
"successfully-added-to-list": "Sikeresen hozzáadva a listához",
|
||||||
"recipe-added-to-mealplan": "Recept hozzáadva menütervhez",
|
"recipe-added-to-mealplan": "Recept hozzáadva menütervhez",
|
||||||
"failed-to-add-recipes-to-list": "Nem sikerült hozzáadni a receptet a listához",
|
"failed-to-add-recipes-to-list": "Nem sikerült hozzáadni a receptet a listához",
|
||||||
"failed-to-add-recipe-to-mealplan": "Nem sikerült hozzáadni a receptet a menütervhez",
|
"failed-to-add-recipe-to-mealplan": "Nem sikerült hozzáadni a receptet a menütervhez",
|
||||||
"failed-to-add-to-list": "Failed to add to list",
|
"failed-to-add-to-list": "Nem sikerült hozzáadni a listához",
|
||||||
"yield": "Adag",
|
"yield": "Adag",
|
||||||
"quantity": "Mennyiség",
|
"quantity": "Mennyiség",
|
||||||
"choose-unit": "Válasszon mennyiségi egységet",
|
"choose-unit": "Válasszon mennyiségi egységet",
|
||||||
@@ -1154,7 +1155,7 @@
|
|||||||
"members-description": "Láthatja, hogy kik vannak a csoportjában, és kezelheti az ő jogosultságaikat.",
|
"members-description": "Láthatja, hogy kik vannak a csoportjában, és kezelheti az ő jogosultságaikat.",
|
||||||
"webhooks-description": "Állítson be webhookokat, amelyek azokon a napokon lépnek működésbe, amikorra a menüterveket ütemezte.",
|
"webhooks-description": "Állítson be webhookokat, amelyek azokon a napokon lépnek működésbe, amikorra a menüterveket ütemezte.",
|
||||||
"notifiers": "Értesítések",
|
"notifiers": "Értesítések",
|
||||||
"notifiers-description": "Setup email and push notifications that trigger on specific events.",
|
"notifiers-description": "Állítson be olyan e-mail és push-értesítéseket, amelyek meghatározott események esetén lépnek működésbe.",
|
||||||
"manage-data": "Adatok kezelése",
|
"manage-data": "Adatok kezelése",
|
||||||
"manage-data-description": "Alapanyagainak és mennyiségi egységeinek kezelése (további opciók hamarosan)",
|
"manage-data-description": "Alapanyagainak és mennyiségi egységeinek kezelése (további opciók hamarosan)",
|
||||||
"data-migrations": "Adat migráció",
|
"data-migrations": "Adat migráció",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Minden címke szükséges",
|
"require-all-tags": "Minden címke szükséges",
|
||||||
"require-all-tools": "Minden szükséges eszköz",
|
"require-all-tools": "Minden szükséges eszköz",
|
||||||
"cookbook-name": "Szakácskönyv neve",
|
"cookbook-name": "Szakácskönyv neve",
|
||||||
"cookbook-with-name": "Szakácskönyv {0}"
|
"cookbook-with-name": "Szakácskönyv {0}",
|
||||||
|
"create-a-cookbook": "Szakácskönyv létrehozása",
|
||||||
|
"cookbook": "Szakácskönyv"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Upload File",
|
"upload-file": "Upload File",
|
||||||
"created-on-date": "Created on: {0}",
|
"created-on-date": "Created on: {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"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": "Are you sure you want to delete <b>{groupName}<b/>?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Require All Tags",
|
"require-all-tags": "Require All Tags",
|
||||||
"require-all-tools": "Require All Tools",
|
"require-all-tools": "Require All Tools",
|
||||||
"cookbook-name": "Cookbook Name",
|
"cookbook-name": "Cookbook Name",
|
||||||
"cookbook-with-name": "Cookbook {0}"
|
"cookbook-with-name": "Cookbook {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Carica file",
|
"upload-file": "Carica file",
|
||||||
"created-on-date": "Creato il: {0}",
|
"created-on-date": "Creato il: {0}",
|
||||||
"unsaved-changes": "Sono state apportate modifiche non salvate. Salvare prima di uscire? Premi Ok per salvare, Annulla per scartare le modifiche.",
|
"unsaved-changes": "Sono state apportate modifiche non salvate. Salvare prima di uscire? Premi Ok per salvare, Annulla per scartare le modifiche.",
|
||||||
"clipboard-copy-failure": "Impossibile copiare negli appunti."
|
"clipboard-copy-failure": "Impossibile copiare negli appunti.",
|
||||||
|
"confirm-delete-generic-items": "Sei sicuro di voler eliminare i seguenti elementi?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Sei sicuro di volerlo eliminare <b>{groupName}<b/>'?",
|
"are-you-sure-you-want-to-delete-the-group": "Sei sicuro di volerlo eliminare <b>{groupName}<b/>'?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Richiedi Tutti I Tag",
|
"require-all-tags": "Richiedi Tutti I Tag",
|
||||||
"require-all-tools": "Richiedi Tutti Gli Strumenti",
|
"require-all-tools": "Richiedi Tutti Gli Strumenti",
|
||||||
"cookbook-name": "Nome Ricettario",
|
"cookbook-name": "Nome Ricettario",
|
||||||
"cookbook-with-name": "Ricettario {0}"
|
"cookbook-with-name": "Ricettario {0}",
|
||||||
|
"create-a-cookbook": "Crea un libro di cucina",
|
||||||
|
"cookbook": "Libro di cucina"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "ファイルのアップロード",
|
"upload-file": "ファイルのアップロード",
|
||||||
"created-on-date": "Created on: {0}",
|
"created-on-date": "Created on: {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "<b>{groupName}<b/> を削除しますか?",
|
"are-you-sure-you-want-to-delete-the-group": "<b>{groupName}<b/> を削除しますか?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Require All Tags",
|
"require-all-tags": "Require All Tags",
|
||||||
"require-all-tools": "Require All Tools",
|
"require-all-tools": "Require All Tools",
|
||||||
"cookbook-name": "Cookbook Name",
|
"cookbook-name": "Cookbook Name",
|
||||||
"cookbook-with-name": "Cookbook {0}"
|
"cookbook-with-name": "Cookbook {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Upload File",
|
"upload-file": "Upload File",
|
||||||
"created-on-date": "Created on: {0}",
|
"created-on-date": "Created on: {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"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": "Are you sure you want to delete <b>{groupName}<b/>?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Require All Tags",
|
"require-all-tags": "Require All Tags",
|
||||||
"require-all-tools": "Require All Tools",
|
"require-all-tools": "Require All Tools",
|
||||||
"cookbook-name": "Cookbook Name",
|
"cookbook-name": "Cookbook Name",
|
||||||
"cookbook-with-name": "Cookbook {0}"
|
"cookbook-with-name": "Cookbook {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Įkelti failą",
|
"upload-file": "Įkelti failą",
|
||||||
"created-on-date": "Sukurta: {0}",
|
"created-on-date": "Sukurta: {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Ar tikrai norite ištrinti <b>{groupName}<b/>?",
|
"are-you-sure-you-want-to-delete-the-group": "Ar tikrai norite ištrinti <b>{groupName}<b/>?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Būtinos visos žymos",
|
"require-all-tags": "Būtinos visos žymos",
|
||||||
"require-all-tools": "Būtini visi įrankiai",
|
"require-all-tools": "Būtini visi įrankiai",
|
||||||
"cookbook-name": "Receptų knygos pavadinimas",
|
"cookbook-name": "Receptų knygos pavadinimas",
|
||||||
"cookbook-with-name": "Receptų knyga {0}"
|
"cookbook-with-name": "Receptų knyga {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Upload File",
|
"upload-file": "Upload File",
|
||||||
"created-on-date": "Created on: {0}",
|
"created-on-date": "Created on: {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"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": "Are you sure you want to delete <b>{groupName}<b/>?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Require All Tags",
|
"require-all-tags": "Require All Tags",
|
||||||
"require-all-tools": "Require All Tools",
|
"require-all-tools": "Require All Tools",
|
||||||
"cookbook-name": "Cookbook Name",
|
"cookbook-name": "Cookbook Name",
|
||||||
"cookbook-with-name": "Cookbook {0}"
|
"cookbook-with-name": "Cookbook {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
"apprise-url": "Apprise URL",
|
"apprise-url": "Apprise URL",
|
||||||
"database": "Database",
|
"database": "Database",
|
||||||
"delete-event": "Gebeurtenis verwijderen",
|
"delete-event": "Gebeurtenis verwijderen",
|
||||||
"event-delete-confirmation": "Weet je zeker dat je deze gebeurtenis wil verwijderen?",
|
"event-delete-confirmation": "Weet je zeker dat je deze gebeurtenis wilt verwijderen?",
|
||||||
"event-deleted": "Gebeurtenis verwijderd",
|
"event-deleted": "Gebeurtenis verwijderd",
|
||||||
"event-updated": "Gebeurtenis bijgewerkt",
|
"event-updated": "Gebeurtenis bijgewerkt",
|
||||||
"new-notification-form-description": "Mealie gebruikt de notificatieservices van Apprise om notificaties te genereren. Apprise biedt diverse services aan om notificaties te versturen. Raadpleeg hun wiki voor een uitgebreide handleiding over het creëren van een link voor je service. Afhankelijk van de gekozen service zijn er mogelijk extra functionaliteiten beschikbaar.",
|
"new-notification-form-description": "Mealie gebruikt de notificatieservices van Apprise om notificaties te genereren. Apprise biedt diverse services aan om notificaties te versturen. Raadpleeg hun wiki voor een uitgebreide handleiding over het creëren van een link voor je service. Afhankelijk van de gekozen service zijn er mogelijk extra functionaliteiten beschikbaar.",
|
||||||
@@ -84,7 +84,7 @@
|
|||||||
"clear": "Wissen",
|
"clear": "Wissen",
|
||||||
"close": "Sluiten",
|
"close": "Sluiten",
|
||||||
"confirm": "Bevestigen",
|
"confirm": "Bevestigen",
|
||||||
"confirm-delete-generic": "Weet je zeker dat je dit wil verwijderen?",
|
"confirm-delete-generic": "Weet je zeker dat je dit wilt verwijderen?",
|
||||||
"copied_message": "Gekopieerd!",
|
"copied_message": "Gekopieerd!",
|
||||||
"create": "Aanmaken",
|
"create": "Aanmaken",
|
||||||
"created": "Aangemaakt op",
|
"created": "Aangemaakt op",
|
||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Bestand uploaden",
|
"upload-file": "Bestand uploaden",
|
||||||
"created-on-date": "Gemaakt op {0}",
|
"created-on-date": "Gemaakt op {0}",
|
||||||
"unsaved-changes": "Er zijn niet-opgeslagen wijzigingen. Wil je eerst opslaan voordat je vertrekt? Okay om op te slaan, Annuleren om wijzigingen ongedaan te maken.",
|
"unsaved-changes": "Er zijn niet-opgeslagen wijzigingen. Wil je eerst opslaan voordat je vertrekt? Okay om op te slaan, Annuleren om wijzigingen ongedaan te maken.",
|
||||||
"clipboard-copy-failure": "Kopiëren naar klembord mislukt."
|
"clipboard-copy-failure": "Kopiëren naar klembord mislukt.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Weet je zeker dat je <b>{groupName}<b/> wil verwijderen?",
|
"are-you-sure-you-want-to-delete-the-group": "Weet je zeker dat je <b>{groupName}<b/> wil verwijderen?",
|
||||||
@@ -559,7 +560,7 @@
|
|||||||
"recipe-yield": "Recept Opbrengst",
|
"recipe-yield": "Recept Opbrengst",
|
||||||
"unit": "Eenheid",
|
"unit": "Eenheid",
|
||||||
"upload-image": "Afbeelding uploaden",
|
"upload-image": "Afbeelding uploaden",
|
||||||
"screen-awake": "Scherm laten aan staan",
|
"screen-awake": "Scherm aan laten staan",
|
||||||
"remove-image": "Afbeelding verwijderen",
|
"remove-image": "Afbeelding verwijderen",
|
||||||
"nextStep": "Volgende stap"
|
"nextStep": "Volgende stap"
|
||||||
},
|
},
|
||||||
@@ -736,7 +737,7 @@
|
|||||||
"shopping-lists": "Boodschappenlijsten",
|
"shopping-lists": "Boodschappenlijsten",
|
||||||
"food": "Voedsel",
|
"food": "Voedsel",
|
||||||
"note": "Notitie",
|
"note": "Notitie",
|
||||||
"label": "Etiket",
|
"label": "Label",
|
||||||
"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",
|
||||||
@@ -746,10 +747,10 @@
|
|||||||
"delete-checked": "Selectie verwijderen",
|
"delete-checked": "Selectie verwijderen",
|
||||||
"toggle-label-sort": "Label sortering in-/uitschakelen",
|
"toggle-label-sort": "Label sortering in-/uitschakelen",
|
||||||
"reorder-labels": "Labels opnieuw indelen",
|
"reorder-labels": "Labels opnieuw indelen",
|
||||||
"uncheck-all-items": "Deselecteer alle Items",
|
"uncheck-all-items": "Deselecteer alle items",
|
||||||
"check-all-items": "Alle producten controleren",
|
"check-all-items": "Selecteer alle items",
|
||||||
"linked-recipes-count": "Geen Gelinkte Recepten Eén Gekoppeld Recept{count} Gekoppelde Recepten",
|
"linked-recipes-count": "Geen Gelinkte Recepten Eén Gekoppeld Recept{count} Gekoppelde Recepten",
|
||||||
"items-checked-count": "Geen items aangevinkt, Eén item gecontroleerd{count} items gecontroleerd",
|
"items-checked-count": "Geen items geselecteerd|Eén item geselecteerd|{count} items geselecteerd",
|
||||||
"no-label": "Geen label",
|
"no-label": "Geen label",
|
||||||
"completed-on": "Afgemaakt op {date}"
|
"completed-on": "Afgemaakt op {date}"
|
||||||
},
|
},
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Vereis alle tags",
|
"require-all-tags": "Vereis alle tags",
|
||||||
"require-all-tools": "Vereis al het kookgerei",
|
"require-all-tools": "Vereis al het kookgerei",
|
||||||
"cookbook-name": "Naam van het kookboek",
|
"cookbook-name": "Naam van het kookboek",
|
||||||
"cookbook-with-name": "Kookboek {0}"
|
"cookbook-with-name": "Kookboek {0}",
|
||||||
|
"create-a-cookbook": "Maak een kookboek",
|
||||||
|
"cookbook": "Kookboek"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Last opp fil",
|
"upload-file": "Last opp fil",
|
||||||
"created-on-date": "Opprettet: {0}",
|
"created-on-date": "Opprettet: {0}",
|
||||||
"unsaved-changes": "Du har ulagrede endringer. Ønsker du å lagre før du forlater? Trykk 'OK' for å lagre, 'Avbryt' for å forkaste endringene.",
|
"unsaved-changes": "Du har ulagrede endringer. Ønsker du å lagre før du forlater? Trykk 'OK' for å lagre, 'Avbryt' for å forkaste endringene.",
|
||||||
"clipboard-copy-failure": "Kunne ikke kopiere til utklippstavlen."
|
"clipboard-copy-failure": "Kunne ikke kopiere til utklippstavlen.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Er du sikker på at du vil slette <b>{groupName}<b/>?",
|
"are-you-sure-you-want-to-delete-the-group": "Er du sikker på at du vil slette <b>{groupName}<b/>?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Krev alle emneord",
|
"require-all-tags": "Krev alle emneord",
|
||||||
"require-all-tools": "Krev alle kjøkkenredskaper",
|
"require-all-tools": "Krev alle kjøkkenredskaper",
|
||||||
"cookbook-name": "Navn på kokebok",
|
"cookbook-name": "Navn på kokebok",
|
||||||
"cookbook-with-name": "Kokebok {0}"
|
"cookbook-with-name": "Kokebok {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -117,7 +117,7 @@
|
|||||||
"loading": "Ładowanie",
|
"loading": "Ładowanie",
|
||||||
"loading-events": "Ładowanie wydarzeń",
|
"loading-events": "Ładowanie wydarzeń",
|
||||||
"loading-recipe": "Ładowanie przepisów...",
|
"loading-recipe": "Ładowanie przepisów...",
|
||||||
"loading-ocr-data": "Loading OCR data...",
|
"loading-ocr-data": "Wczytywanie danych OCR...",
|
||||||
"loading-recipes": "Ładowanie przepisów",
|
"loading-recipes": "Ładowanie przepisów",
|
||||||
"message": "Wiadomość",
|
"message": "Wiadomość",
|
||||||
"monday": "Poniedziałek",
|
"monday": "Poniedziałek",
|
||||||
@@ -198,8 +198,9 @@
|
|||||||
"refresh": "Odśwież",
|
"refresh": "Odśwież",
|
||||||
"upload-file": "Prześlij plik",
|
"upload-file": "Prześlij plik",
|
||||||
"created-on-date": "Utworzono dnia: {0}",
|
"created-on-date": "Utworzono dnia: {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "Masz niezapisane zmiany. Czy chcesz zapisać przed wyjściem? Ok, aby zapisać, Anuluj, żeby odrzucić zmiany.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Czy na pewno chcesz usunąć <b>{groupName}<b/>?",
|
"are-you-sure-you-want-to-delete-the-group": "Czy na pewno chcesz usunąć <b>{groupName}<b/>?",
|
||||||
@@ -258,7 +259,7 @@
|
|||||||
},
|
},
|
||||||
"meal-plan": {
|
"meal-plan": {
|
||||||
"create-a-new-meal-plan": "Utwórz nowy plan posiłku",
|
"create-a-new-meal-plan": "Utwórz nowy plan posiłku",
|
||||||
"update-this-meal-plan": "Update this Meal Plan",
|
"update-this-meal-plan": "Zaktualizuj plan posiłku",
|
||||||
"dinner-this-week": "Obiad w tym tygodniu",
|
"dinner-this-week": "Obiad w tym tygodniu",
|
||||||
"dinner-today": "Obiad dziś",
|
"dinner-today": "Obiad dziś",
|
||||||
"dinner-tonight": "OBIAD DZIŚ",
|
"dinner-tonight": "OBIAD DZIŚ",
|
||||||
@@ -473,7 +474,7 @@
|
|||||||
"add-to-timeline": "Dodaj do osi czasu",
|
"add-to-timeline": "Dodaj do osi czasu",
|
||||||
"recipe-added-to-list": "Przepis dodany do listy",
|
"recipe-added-to-list": "Przepis dodany do listy",
|
||||||
"recipes-added-to-list": "Przepisy dodane do listy",
|
"recipes-added-to-list": "Przepisy dodane do listy",
|
||||||
"successfully-added-to-list": "Successfully added to list",
|
"successfully-added-to-list": "Pomyślnie dodano do listy",
|
||||||
"recipe-added-to-mealplan": "Przepis dodany do planu posiłków",
|
"recipe-added-to-mealplan": "Przepis dodany do planu posiłków",
|
||||||
"failed-to-add-recipes-to-list": "Nie udało się dodać przepisu do listy",
|
"failed-to-add-recipes-to-list": "Nie udało się dodać przepisu do listy",
|
||||||
"failed-to-add-recipe-to-mealplan": "Nie udało się dodać przepisu do planu posiłków",
|
"failed-to-add-recipe-to-mealplan": "Nie udało się dodać przepisu do planu posiłków",
|
||||||
@@ -806,7 +807,7 @@
|
|||||||
"create-new-tool": "Utwórz nowe narzędzie",
|
"create-new-tool": "Utwórz nowe narzędzie",
|
||||||
"on-hand-checkbox-label": "Pokaż jako Posiadane (Zaznaczono)",
|
"on-hand-checkbox-label": "Pokaż jako Posiadane (Zaznaczono)",
|
||||||
"required-tools": "Wymagane Narzędzia",
|
"required-tools": "Wymagane Narzędzia",
|
||||||
"tool": "Tool"
|
"tool": "Narzędzie"
|
||||||
},
|
},
|
||||||
"user": {
|
"user": {
|
||||||
"admin": "Administrator",
|
"admin": "Administrator",
|
||||||
@@ -944,7 +945,7 @@
|
|||||||
"fraction": "Ułamki",
|
"fraction": "Ułamki",
|
||||||
"example-unit-singular": "np. Łyżka stołowa",
|
"example-unit-singular": "np. Łyżka stołowa",
|
||||||
"example-unit-plural": "np. Łyżki stołowe",
|
"example-unit-plural": "np. Łyżki stołowe",
|
||||||
"example-unit-abbreviation-singular": "ex: Tbsp",
|
"example-unit-abbreviation-singular": "na przykład: Łyżka stołowa",
|
||||||
"example-unit-abbreviation-plural": "ex: Tbsps"
|
"example-unit-abbreviation-plural": "ex: Tbsps"
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Wymagaj wszystkich tagów",
|
"require-all-tags": "Wymagaj wszystkich tagów",
|
||||||
"require-all-tools": "Wymagaj wszystkich narzędzi",
|
"require-all-tools": "Wymagaj wszystkich narzędzi",
|
||||||
"cookbook-name": "Nazwa książki kucharskiej",
|
"cookbook-name": "Nazwa książki kucharskiej",
|
||||||
"cookbook-with-name": "Książka kucharska {0}"
|
"cookbook-with-name": "Książka kucharska {0}",
|
||||||
|
"create-a-cookbook": "Utwórz nową książkę kucharską",
|
||||||
|
"cookbook": "Książka kucharska"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"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": "Failed to copy to the clipboard.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"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/>?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Exigir todos os marcadores",
|
"require-all-tags": "Exigir todos os marcadores",
|
||||||
"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",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Carregar ficheiro",
|
"upload-file": "Carregar ficheiro",
|
||||||
"created-on-date": "Criado em: {0}",
|
"created-on-date": "Criado em: {0}",
|
||||||
"unsaved-changes": "Tem alterações por gravar. Quer gravar antes de sair? OK para gravar, Cancelar para descartar alterações.",
|
"unsaved-changes": "Tem alterações por gravar. Quer gravar antes de sair? OK para gravar, Cancelar para descartar alterações.",
|
||||||
"clipboard-copy-failure": "Erro ao copiar para a área de transferência."
|
"clipboard-copy-failure": "Erro ao copiar para a área de transferência.",
|
||||||
|
"confirm-delete-generic-items": "Tem a certeza de que deseja eliminar os seguintes itens?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Tem a certeza que quer eliminar <b>{groupName}</b>?",
|
"are-you-sure-you-want-to-delete-the-group": "Tem a certeza que quer eliminar <b>{groupName}</b>?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Requer todas as etiquetas",
|
"require-all-tags": "Requer todas as etiquetas",
|
||||||
"require-all-tools": "Requer todas os utensílios",
|
"require-all-tools": "Requer todas os utensílios",
|
||||||
"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": "Criar um Livro de Receitas",
|
||||||
|
"cookbook": "Livro de Receitas"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Încărcă fișier",
|
"upload-file": "Încărcă fișier",
|
||||||
"created-on-date": "Creat pe {0}",
|
"created-on-date": "Creat pe {0}",
|
||||||
"unsaved-changes": "Aveți modificări nesalvate. Doriți să salvați înainte de a închide aplicația? Apăsați \"OK\" pentru a salva sau \"Anulare\" pentru a renunța la modificări.",
|
"unsaved-changes": "Aveți modificări nesalvate. Doriți să salvați înainte de a închide aplicația? Apăsați \"OK\" pentru a salva sau \"Anulare\" pentru a renunța la modificări.",
|
||||||
"clipboard-copy-failure": "Copierea în clipboard a eșuat."
|
"clipboard-copy-failure": "Copierea în clipboard a eșuat.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Sunteți sigur că doriți să ștergeți <b>{groupName}<b/>?",
|
"are-you-sure-you-want-to-delete-the-group": "Sunteți sigur că doriți să ștergeți <b>{groupName}<b/>?",
|
||||||
@@ -370,49 +371,49 @@
|
|||||||
"google-ld-json-info": "Google ld+json Info",
|
"google-ld-json-info": "Google ld+json Info",
|
||||||
"must-be-a-valid-url": "Trebuie să fie o adresă URL validă",
|
"must-be-a-valid-url": "Trebuie să fie o adresă URL validă",
|
||||||
"paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Paste in your recipe data. Each line will be treated as an item in a list",
|
"paste-in-your-recipe-data-each-line-will-be-treated-as-an-item-in-a-list": "Paste in your recipe data. Each line will be treated as an item in a list",
|
||||||
"recipe-markup-specification": "Recipe Markup Specification",
|
"recipe-markup-specification": "Specificație Markup rețetă",
|
||||||
"recipe-url": "Recipe URL",
|
"recipe-url": "URL rețetă",
|
||||||
"upload-a-recipe": "Upload a Recipe",
|
"upload-a-recipe": "Încarcă o rețetă",
|
||||||
"upload-individual-zip-file": "Upload an individual .zip file exported from another Mealie instance.",
|
"upload-individual-zip-file": "Upload an individual .zip file exported from another Mealie instance.",
|
||||||
"url-form-hint": "Copy and paste a link from your favorite recipe website",
|
"url-form-hint": "Copiază și lipește un link de pe site-ul tău web preferat de rețete",
|
||||||
"view-scraped-data": "View Scraped Data",
|
"view-scraped-data": "View Scraped Data",
|
||||||
"trim-whitespace-description": "Trim leading and trailing whitespace as well as blank lines",
|
"trim-whitespace-description": "Trim leading and trailing whitespace as well as blank lines",
|
||||||
"trim-prefix-description": "Trim first character from each line",
|
"trim-prefix-description": "Trim first character from each line",
|
||||||
"split-by-numbered-line-description": "Attempts to split a paragraph by matching '1)' or '1.' patterns",
|
"split-by-numbered-line-description": "Attempts to split a paragraph by matching '1)' or '1.' patterns",
|
||||||
"import-by-url": "Import a recipe by URL",
|
"import-by-url": "Importă rețetă prin URL",
|
||||||
"create-manually": "Create a recipe manually",
|
"create-manually": "Creează o rețetă manual",
|
||||||
"make-recipe-image": "Make this the recipe image"
|
"make-recipe-image": "Make this the recipe image"
|
||||||
},
|
},
|
||||||
"page": {
|
"page": {
|
||||||
"404-page-not-found": "404 Page not found",
|
"404-page-not-found": "404 Pagina nu a fost găsită",
|
||||||
"all-recipes": "All Recipes",
|
"all-recipes": "Toate rețetele",
|
||||||
"new-page-created": "New page created",
|
"new-page-created": "Pagină nouă creată",
|
||||||
"page": "Page",
|
"page": "Pagină",
|
||||||
"page-creation-failed": "Page creation failed",
|
"page-creation-failed": "Crearea paginii a eșuat",
|
||||||
"page-deleted": "Page deleted",
|
"page-deleted": "Pagină ștearsă",
|
||||||
"page-deletion-failed": "Page deletion failed",
|
"page-deletion-failed": "Ștergerea paginii a eșuat",
|
||||||
"page-update-failed": "Page update failed",
|
"page-update-failed": "Actualizarea paginii a eșuat",
|
||||||
"page-updated": "Page updated",
|
"page-updated": "Pagina a fost actualizată",
|
||||||
"pages-update-failed": "Pages update failed",
|
"pages-update-failed": "Actualizarea paginilor a eșuat",
|
||||||
"pages-updated": "Pages updated",
|
"pages-updated": "Pagini actualizate",
|
||||||
"404-not-found": "404 Not Found",
|
"404-not-found": "404 Pagina nu a fost gasita",
|
||||||
"an-error-occurred": "An error occurred"
|
"an-error-occurred": "A intervenit o eroare"
|
||||||
},
|
},
|
||||||
"recipe": {
|
"recipe": {
|
||||||
"add-key": "Add Key",
|
"add-key": "Adăugați cheia",
|
||||||
"add-to-favorites": "Add to Favorites",
|
"add-to-favorites": "Adaugă la Favorite",
|
||||||
"api-extras": "API Extras",
|
"api-extras": "API Extras",
|
||||||
"calories": "Calories",
|
"calories": "Calorii",
|
||||||
"calories-suffix": "calories",
|
"calories-suffix": "calorii",
|
||||||
"carbohydrate-content": "Carbohydrate",
|
"carbohydrate-content": "Carbohidrat",
|
||||||
"categories": "Categories",
|
"categories": "Categorii",
|
||||||
"comment-action": "Comment",
|
"comment-action": "Comentariu",
|
||||||
"comment": "Comment",
|
"comment": "Comentariu",
|
||||||
"comments": "Comentarii",
|
"comments": "Comentarii",
|
||||||
"delete-confirmation": "Sunteți sigur că doriți să ștergeți această rețetă?",
|
"delete-confirmation": "Sunteți sigur că doriți să ștergeți această rețetă?",
|
||||||
"delete-recipe": "Șterge rețeta",
|
"delete-recipe": "Șterge rețeta",
|
||||||
"description": "Descriere",
|
"description": "Descriere",
|
||||||
"disable-amount": "Disable Ingredient Amounts",
|
"disable-amount": "Dezactivați cantitățile Ingredientelor",
|
||||||
"disable-comments": "Dezactivează comentariile",
|
"disable-comments": "Dezactivează comentariile",
|
||||||
"duplicate": "Reţeta duplicată",
|
"duplicate": "Reţeta duplicată",
|
||||||
"duplicate-name": "Denumirea noii rețete",
|
"duplicate-name": "Denumirea noii rețete",
|
||||||
@@ -422,7 +423,7 @@
|
|||||||
"grams": "grame",
|
"grams": "grame",
|
||||||
"ingredient": "Ingredient",
|
"ingredient": "Ingredient",
|
||||||
"ingredients": "Ingrediente",
|
"ingredients": "Ingrediente",
|
||||||
"insert-ingredient": "Insert Ingredient",
|
"insert-ingredient": "Inserați Ingredientul",
|
||||||
"insert-section": "Adăugare secțiune",
|
"insert-section": "Adăugare secțiune",
|
||||||
"instructions": "Instrucțiuni",
|
"instructions": "Instrucțiuni",
|
||||||
"key-name-required": "Numele cheii este necesar",
|
"key-name-required": "Numele cheii este necesar",
|
||||||
@@ -473,16 +474,16 @@
|
|||||||
"add-to-timeline": "Adaugă la Cronologie",
|
"add-to-timeline": "Adaugă la Cronologie",
|
||||||
"recipe-added-to-list": "Rețeta a fost adăugată la listă",
|
"recipe-added-to-list": "Rețeta a fost adăugată la listă",
|
||||||
"recipes-added-to-list": "Rețeta a fost adăugată în listă",
|
"recipes-added-to-list": "Rețeta a fost adăugată în listă",
|
||||||
"successfully-added-to-list": "Successfully added to list",
|
"successfully-added-to-list": "Adăugat cu succes la listă",
|
||||||
"recipe-added-to-mealplan": "Rețeta a fist adăugată la planul de mese",
|
"recipe-added-to-mealplan": "Rețeta a fist adăugată la planul de mese",
|
||||||
"failed-to-add-recipes-to-list": "Adăugarea rețetei în listă a eșuat",
|
"failed-to-add-recipes-to-list": "Adăugarea rețetei în listă a eșuat",
|
||||||
"failed-to-add-recipe-to-mealplan": "Adăugarea rețetei la planul de mese a eșuat",
|
"failed-to-add-recipe-to-mealplan": "Adăugarea rețetei la planul de mese a eșuat",
|
||||||
"failed-to-add-to-list": "Failed to add to list",
|
"failed-to-add-to-list": "Adăugarea la listă a eșuat",
|
||||||
"yield": "Producție",
|
"yield": "Producție",
|
||||||
"quantity": "Cantitate",
|
"quantity": "Cantitate",
|
||||||
"choose-unit": "Alegeţi unitatea",
|
"choose-unit": "Alegeţi unitatea",
|
||||||
"press-enter-to-create": "Press Enter to Create",
|
"press-enter-to-create": "Apăsați Enter pentru a crea",
|
||||||
"choose-food": "Choose Food",
|
"choose-food": "Alege Mâncarea",
|
||||||
"notes": "Notițe",
|
"notes": "Notițe",
|
||||||
"toggle-section": "Activează/dezactivează secțiunea",
|
"toggle-section": "Activează/dezactivează secțiunea",
|
||||||
"see-original-text": "Vezi Textul Original",
|
"see-original-text": "Vezi Textul Original",
|
||||||
@@ -521,13 +522,13 @@
|
|||||||
"drop-image": "Trage imaginea",
|
"drop-image": "Trage imaginea",
|
||||||
"enable-ingredient-amounts-to-use-this-feature": "Enable ingredient amounts to use this feature",
|
"enable-ingredient-amounts-to-use-this-feature": "Enable ingredient amounts to use this feature",
|
||||||
"recipes-with-units-or-foods-defined-cannot-be-parsed": "Recipes with units or foods defined cannot be parsed.",
|
"recipes-with-units-or-foods-defined-cannot-be-parsed": "Recipes with units or foods defined cannot be parsed.",
|
||||||
"parse-ingredients": "Parse ingredients",
|
"parse-ingredients": "Analizează ingredientele",
|
||||||
"edit-markdown": "Edit Markdown",
|
"edit-markdown": "Editează Markdown",
|
||||||
"recipe-creation": "Recipe Creation",
|
"recipe-creation": "Crearea rețetei",
|
||||||
"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": "Selectează una dintre diferitele modalități de a crea o rețetă",
|
||||||
"looking-for-migrations": "Looking For Migrations?",
|
"looking-for-migrations": "Looking For Migrations?",
|
||||||
"import-with-url": "Import with URL",
|
"import-with-url": "Import cu URL",
|
||||||
"create-recipe": "Create Recipe",
|
"create-recipe": "Crează rețetă",
|
||||||
"import-with-zip": "Import with .zip",
|
"import-with-zip": "Import with .zip",
|
||||||
"create-recipe-from-an-image": "Create recipe from an image",
|
"create-recipe-from-an-image": "Create recipe from an image",
|
||||||
"bulk-url-import": "Bulk URL Import",
|
"bulk-url-import": "Bulk URL Import",
|
||||||
@@ -608,13 +609,13 @@
|
|||||||
"restore-backup": "Restore Backup"
|
"restore-backup": "Restore Backup"
|
||||||
},
|
},
|
||||||
"backup-and-exports": "Backups",
|
"backup-and-exports": "Backups",
|
||||||
"change-password": "Change Password",
|
"change-password": "Schimbă parola",
|
||||||
"current": "Version:",
|
"current": "Versiune:",
|
||||||
"custom-pages": "Custom Pages",
|
"custom-pages": "Pagini personalizate",
|
||||||
"edit-page": "Edit Page",
|
"edit-page": "Editare pagină",
|
||||||
"events": "Events",
|
"events": "Evenimente",
|
||||||
"first-day-of-week": "First day of the week",
|
"first-day-of-week": "Prima zi a săptămânii",
|
||||||
"group-settings-updated": "Group Settings Updated",
|
"group-settings-updated": "Setări de grup actualizate",
|
||||||
"homepage": {
|
"homepage": {
|
||||||
"all-categories": "All Categories",
|
"all-categories": "All Categories",
|
||||||
"card-per-section": "Card Per Section",
|
"card-per-section": "Card Per Section",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Require All Tags",
|
"require-all-tags": "Require All Tags",
|
||||||
"require-all-tools": "Require All Tools",
|
"require-all-tools": "Require All Tools",
|
||||||
"cookbook-name": "Cookbook Name",
|
"cookbook-name": "Cookbook Name",
|
||||||
"cookbook-with-name": "Cookbook {0}"
|
"cookbook-with-name": "Cookbook {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Загрузить файл",
|
"upload-file": "Загрузить файл",
|
||||||
"created-on-date": "Создано: {0}",
|
"created-on-date": "Создано: {0}",
|
||||||
"unsaved-changes": "У вас есть несохраненные изменения. Вы хотите сохранить их перед выходом?",
|
"unsaved-changes": "У вас есть несохраненные изменения. Вы хотите сохранить их перед выходом?",
|
||||||
"clipboard-copy-failure": "Не удалось скопировать текст."
|
"clipboard-copy-failure": "Не удалось скопировать текст.",
|
||||||
|
"confirm-delete-generic-items": "Вы уверены, что хотите удалить следующие элементы?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Вы действительно хотите удалить <b>{groupName}<b/>?",
|
"are-you-sure-you-want-to-delete-the-group": "Вы действительно хотите удалить <b>{groupName}<b/>?",
|
||||||
@@ -473,11 +474,11 @@
|
|||||||
"add-to-timeline": "Добавить в историю",
|
"add-to-timeline": "Добавить в историю",
|
||||||
"recipe-added-to-list": "Рецепт добавлен в список",
|
"recipe-added-to-list": "Рецепт добавлен в список",
|
||||||
"recipes-added-to-list": "Рецепты добавлены в список",
|
"recipes-added-to-list": "Рецепты добавлены в список",
|
||||||
"successfully-added-to-list": "Successfully added to list",
|
"successfully-added-to-list": "Успешно добавлено в список",
|
||||||
"recipe-added-to-mealplan": "Рецепт добавлен в план питания",
|
"recipe-added-to-mealplan": "Рецепт добавлен в план питания",
|
||||||
"failed-to-add-recipes-to-list": "Не удалось добавить рецепт в список",
|
"failed-to-add-recipes-to-list": "Не удалось добавить рецепт в список",
|
||||||
"failed-to-add-recipe-to-mealplan": "Не удалось добавить рецепт в план питания",
|
"failed-to-add-recipe-to-mealplan": "Не удалось добавить рецепт в план питания",
|
||||||
"failed-to-add-to-list": "Failed to add to list",
|
"failed-to-add-to-list": "Не удалось добавить в список",
|
||||||
"yield": "Выход",
|
"yield": "Выход",
|
||||||
"quantity": "Количество",
|
"quantity": "Количество",
|
||||||
"choose-unit": "Выберите единицу измерения",
|
"choose-unit": "Выберите единицу измерения",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Требовать все теги",
|
"require-all-tags": "Требовать все теги",
|
||||||
"require-all-tools": "Требовать все инструменты",
|
"require-all-tools": "Требовать все инструменты",
|
||||||
"cookbook-name": "Название книги рецептов",
|
"cookbook-name": "Название книги рецептов",
|
||||||
"cookbook-with-name": "Книга рецептов {0}"
|
"cookbook-with-name": "Книга рецептов {0}",
|
||||||
|
"create-a-cookbook": "Создать книгу рецептов",
|
||||||
|
"cookbook": "Книга рецептов"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Nahrať súbor",
|
"upload-file": "Nahrať súbor",
|
||||||
"created-on-date": "Vytvorené: {0}",
|
"created-on-date": "Vytvorené: {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Naozaj chcete odstrániť <b>{groupName}<b/>?",
|
"are-you-sure-you-want-to-delete-the-group": "Naozaj chcete odstrániť <b>{groupName}<b/>?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Vyžadovať všetky štítky",
|
"require-all-tags": "Vyžadovať všetky štítky",
|
||||||
"require-all-tools": "Vyžadovať všetky nástroje",
|
"require-all-tools": "Vyžadovať všetky nástroje",
|
||||||
"cookbook-name": "Názov kuchárky",
|
"cookbook-name": "Názov kuchárky",
|
||||||
"cookbook-with-name": "Kuchárka {0}"
|
"cookbook-with-name": "Kuchárka {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
"support": "Podpora",
|
"support": "Podpora",
|
||||||
"version": "Verzija",
|
"version": "Verzija",
|
||||||
"unknown-version": "neznano",
|
"unknown-version": "neznano",
|
||||||
"sponsor": "Sponsor"
|
"sponsor": "Sponzor"
|
||||||
},
|
},
|
||||||
"asset": {
|
"asset": {
|
||||||
"assets": "Viri",
|
"assets": "Viri",
|
||||||
@@ -53,9 +53,9 @@
|
|||||||
"apprise-url": "Apprise URL",
|
"apprise-url": "Apprise URL",
|
||||||
"database": "Baza podatkov",
|
"database": "Baza podatkov",
|
||||||
"delete-event": "Zbriši dogodek",
|
"delete-event": "Zbriši dogodek",
|
||||||
"event-delete-confirmation": "Are you sure you want to delete this event?",
|
"event-delete-confirmation": "Ali ste prepričani, da želite izbrisati ta dogodek?",
|
||||||
"event-deleted": "Event Deleted",
|
"event-deleted": "Dogodek izbrisan",
|
||||||
"event-updated": "Event Updated",
|
"event-updated": "Dogodek posodobljen",
|
||||||
"new-notification-form-description": "Mealie uporablja Apprise knjižnico za kreiranje obvestil. Omogoča več različnih servisov za uporabo obvestil. Preglejte njihovo wiki stran, za bolj natančen vodič, kako izdelati URL za vaš servis. Če je na voljo, so za vaš izbran servis obvestil, na voljo tudi dodane možnosti.",
|
"new-notification-form-description": "Mealie uporablja Apprise knjižnico za kreiranje obvestil. Omogoča več različnih servisov za uporabo obvestil. Preglejte njihovo wiki stran, za bolj natančen vodič, kako izdelati URL za vaš servis. Če je na voljo, so za vaš izbran servis obvestil, na voljo tudi dodane možnosti.",
|
||||||
"new-version": "Na voljo je nova verzija!",
|
"new-version": "Na voljo je nova verzija!",
|
||||||
"notification": "Obvestila",
|
"notification": "Obvestila",
|
||||||
@@ -64,7 +64,7 @@
|
|||||||
"something-went-wrong": "Nekaj je šlo narobe!",
|
"something-went-wrong": "Nekaj je šlo narobe!",
|
||||||
"subscribed-events": "Naročeni dogodki",
|
"subscribed-events": "Naročeni dogodki",
|
||||||
"test-message-sent": "Testno sporočilo je bilo poslano",
|
"test-message-sent": "Testno sporočilo je bilo poslano",
|
||||||
"new-notification": "New Notification",
|
"new-notification": "Novo obvestilo",
|
||||||
"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 (skipped if blank)",
|
||||||
"enable-notifier": "Enable Notifier",
|
"enable-notifier": "Enable Notifier",
|
||||||
@@ -114,12 +114,12 @@
|
|||||||
"json": "JSON",
|
"json": "JSON",
|
||||||
"keyword": "Ključna beseda",
|
"keyword": "Ključna beseda",
|
||||||
"link-copied": "Povezava kopirana",
|
"link-copied": "Povezava kopirana",
|
||||||
"loading": "Loading",
|
"loading": "Nalaganje",
|
||||||
"loading-events": "Loading Events",
|
"loading-events": "Loading Events",
|
||||||
"loading-recipe": "Loading recipe...",
|
"loading-recipe": "Nalagam recepte...",
|
||||||
"loading-ocr-data": "Loading OCR data...",
|
"loading-ocr-data": "Loading OCR data...",
|
||||||
"loading-recipes": "Nalagam recepte",
|
"loading-recipes": "Nalagam recepte",
|
||||||
"message": "Message",
|
"message": "Sporočilo",
|
||||||
"monday": "Ponedeljek",
|
"monday": "Ponedeljek",
|
||||||
"name": "Ime",
|
"name": "Ime",
|
||||||
"new": "Novo",
|
"new": "Novo",
|
||||||
@@ -146,7 +146,7 @@
|
|||||||
"sort": "Razvrsti",
|
"sort": "Razvrsti",
|
||||||
"sort-alphabetically": "Po abecedi",
|
"sort-alphabetically": "Po abecedi",
|
||||||
"status": "Stanje",
|
"status": "Stanje",
|
||||||
"subject": "Subject",
|
"subject": "Zadeva",
|
||||||
"submit": "Pošlji",
|
"submit": "Pošlji",
|
||||||
"success-count": "Uspešno: {count}",
|
"success-count": "Uspešno: {count}",
|
||||||
"sunday": "Nedelja",
|
"sunday": "Nedelja",
|
||||||
@@ -186,20 +186,21 @@
|
|||||||
"color": "Barva",
|
"color": "Barva",
|
||||||
"timestamp": "Časovni žig",
|
"timestamp": "Časovni žig",
|
||||||
"last-made": "Last Made",
|
"last-made": "Last Made",
|
||||||
"learn-more": "Learn More",
|
"learn-more": "Več o tem",
|
||||||
"this-feature-is-currently-inactive": "This feature is currently inactive",
|
"this-feature-is-currently-inactive": "This feature is currently inactive",
|
||||||
"clipboard-not-supported": "Clipboard not supported",
|
"clipboard-not-supported": "Clipboard not supported",
|
||||||
"copied-to-clipboard": "Copied to clipboard",
|
"copied-to-clipboard": "Kopiraj v odložišče",
|
||||||
"your-browser-does-not-support-clipboard": "Your browser does not support clipboard",
|
"your-browser-does-not-support-clipboard": "Your browser does not support clipboard",
|
||||||
"copied-items-to-clipboard": "No item copied to clipboard|One item copied to clipboard|Copied {count} items to clipboard",
|
"copied-items-to-clipboard": "No item copied to clipboard|One item copied to clipboard|Copied {count} items to clipboard",
|
||||||
"actions": "Actions",
|
"actions": "Actions",
|
||||||
"selected-count": "Selected: {count}",
|
"selected-count": "Selected: {count}",
|
||||||
"export-all": "Export All",
|
"export-all": "Izvozi vse",
|
||||||
"refresh": "Refresh",
|
"refresh": "Osveži",
|
||||||
"upload-file": "Upload File",
|
"upload-file": "Naloži datoteko",
|
||||||
"created-on-date": "Created on: {0}",
|
"created-on-date": "Created on: {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Ste prepričani, da želite izbrisati <b>{groupName}<b/>?",
|
"are-you-sure-you-want-to-delete-the-group": "Ste prepričani, da želite izbrisati <b>{groupName}<b/>?",
|
||||||
@@ -225,15 +226,15 @@
|
|||||||
"keep-my-recipes-private": "Moji recepti naj bodo privatni",
|
"keep-my-recipes-private": "Moji recepti naj bodo privatni",
|
||||||
"keep-my-recipes-private-description": "Nastavi vaše skupine in vse recepte privzeto kot privatni. Kasneje lahko to vedno spremenite."
|
"keep-my-recipes-private-description": "Nastavi vaše skupine in vse recepte privzeto kot privatni. Kasneje lahko to vedno spremenite."
|
||||||
},
|
},
|
||||||
"manage-members": "Manage Members",
|
"manage-members": "Urejanje članov",
|
||||||
"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": "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": "Manage",
|
"manage": "Manage",
|
||||||
"invite": "Invite",
|
"invite": "Povabi",
|
||||||
"looking-to-update-your-profile": "Looking to Update Your Profile?",
|
"looking-to-update-your-profile": "Looking to Update Your Profile?",
|
||||||
"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": "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": "Default Recipe Preferences",
|
"default-recipe-preferences": "Default Recipe Preferences",
|
||||||
"group-preferences": "Group Preferences",
|
"group-preferences": "Group Preferences",
|
||||||
"private-group": "Private Group",
|
"private-group": "Zasebna skupina",
|
||||||
"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": "Setting your group to private will default all public view options to default. This overrides an individual recipes public view settings.",
|
||||||
"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": "Allow users outside of your group to see your recipes",
|
||||||
"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": "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",
|
||||||
@@ -249,7 +250,7 @@
|
|||||||
"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": "Hides the Food, Unit, and Amount fields for ingredients and treats ingredients as plain text fields.",
|
||||||
"general-preferences": "General Preferences",
|
"general-preferences": "General Preferences",
|
||||||
"group-recipe-preferences": "Group Recipe Preferences",
|
"group-recipe-preferences": "Group Recipe Preferences",
|
||||||
"report": "Report",
|
"report": "Prijavi",
|
||||||
"report-with-id": "Report ID: {id}",
|
"report-with-id": "Report ID: {id}",
|
||||||
"group-management": "Group Management",
|
"group-management": "Group Management",
|
||||||
"admin-group-management": "Admin Group Management",
|
"admin-group-management": "Admin Group Management",
|
||||||
@@ -407,7 +408,7 @@
|
|||||||
"carbohydrate-content": "Ogljikovi hidrati",
|
"carbohydrate-content": "Ogljikovi hidrati",
|
||||||
"categories": "Kategorije",
|
"categories": "Kategorije",
|
||||||
"comment-action": "Pripomba",
|
"comment-action": "Pripomba",
|
||||||
"comment": "Comment",
|
"comment": "Komentar",
|
||||||
"comments": "Pripombe",
|
"comments": "Pripombe",
|
||||||
"delete-confirmation": "Ali želite izbrisati ta recept?",
|
"delete-confirmation": "Ali želite izbrisati ta recept?",
|
||||||
"delete-recipe": "Izbriši recept",
|
"delete-recipe": "Izbriši recept",
|
||||||
@@ -472,8 +473,8 @@
|
|||||||
"add-to-plan": "Dodaj v načrt",
|
"add-to-plan": "Dodaj v načrt",
|
||||||
"add-to-timeline": "Add to Timeline",
|
"add-to-timeline": "Add to Timeline",
|
||||||
"recipe-added-to-list": "Recept dodan na seznam",
|
"recipe-added-to-list": "Recept dodan na seznam",
|
||||||
"recipes-added-to-list": "Recipes added to list",
|
"recipes-added-to-list": "Recepti dodani na seznam",
|
||||||
"successfully-added-to-list": "Successfully added to list",
|
"successfully-added-to-list": "Uspešno dodano na seznam",
|
||||||
"recipe-added-to-mealplan": "Recept dodan v načrtovanje obroka",
|
"recipe-added-to-mealplan": "Recept dodan v načrtovanje obroka",
|
||||||
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
|
"failed-to-add-recipes-to-list": "Failed to add recipe to list",
|
||||||
"failed-to-add-recipe-to-mealplan": "Napaka pri dodajanji recepta v načrtovanje obroka",
|
"failed-to-add-recipe-to-mealplan": "Napaka pri dodajanji recepta v načrtovanje obroka",
|
||||||
@@ -500,18 +501,18 @@
|
|||||||
"public-link": "Javna povezava",
|
"public-link": "Javna povezava",
|
||||||
"timer": {
|
"timer": {
|
||||||
"kitchen-timer": "Kitchen Timer",
|
"kitchen-timer": "Kitchen Timer",
|
||||||
"start-timer": "Start Timer",
|
"start-timer": "Zaženi časovnik",
|
||||||
"pause-timer": "Pause Timer",
|
"pause-timer": "Ustavi časovnik",
|
||||||
"resume-timer": "Resume Timer",
|
"resume-timer": "Nadaljuj časovnik",
|
||||||
"stop-timer": "Stop Timer"
|
"stop-timer": "Ustavi časovnik"
|
||||||
},
|
},
|
||||||
"edit-timeline-event": "Edit Timeline Event",
|
"edit-timeline-event": "Edit Timeline Event",
|
||||||
"timeline": "Timeline",
|
"timeline": "Časovnica",
|
||||||
"timeline-is-empty": "Nothing on the timeline yet. Try making this recipe!",
|
"timeline-is-empty": "Nothing on the timeline yet. Try making this recipe!",
|
||||||
"group-global-timeline": "{groupName} Global Timeline",
|
"group-global-timeline": "{groupName} Global Timeline",
|
||||||
"open-timeline": "Open Timeline",
|
"open-timeline": "Open Timeline",
|
||||||
"made-this": "I Made This",
|
"made-this": "Naredil sem to",
|
||||||
"how-did-it-turn-out": "How did it turn out?",
|
"how-did-it-turn-out": "Kako se je izkazalo?",
|
||||||
"user-made-this": "{user} made this",
|
"user-made-this": "{user} made this",
|
||||||
"last-made-date": "Last Made {date}",
|
"last-made-date": "Last Made {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": "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.",
|
||||||
@@ -557,11 +558,11 @@
|
|||||||
"debug": "Debug",
|
"debug": "Debug",
|
||||||
"tree-view": "Tree View",
|
"tree-view": "Tree View",
|
||||||
"recipe-yield": "Recipe Yield",
|
"recipe-yield": "Recipe Yield",
|
||||||
"unit": "Unit",
|
"unit": "Enota",
|
||||||
"upload-image": "Upload image",
|
"upload-image": "Naloži sliko",
|
||||||
"screen-awake": "Keep Screen Awake",
|
"screen-awake": "Ohranjanje budnega zaslona",
|
||||||
"remove-image": "Remove image",
|
"remove-image": "Odstrani sliko",
|
||||||
"nextStep": "Next step"
|
"nextStep": "Naslednji korak"
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"advanced-search": "Napredno iskanje",
|
"advanced-search": "Napredno iskanje",
|
||||||
@@ -712,7 +713,7 @@
|
|||||||
"general-about": "General About",
|
"general-about": "General About",
|
||||||
"application-version": "Application Version",
|
"application-version": "Application Version",
|
||||||
"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": "Your current version ({0}) does not match the latest release. Considering updating to the latest version ({1}).",
|
||||||
"mealie-is-up-to-date": "Mealie is up to date",
|
"mealie-is-up-to-date": "Mealie je v najnovejši različici",
|
||||||
"secure-site": "Secure Site",
|
"secure-site": "Secure Site",
|
||||||
"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": "Site is accessed by localhost or https",
|
||||||
@@ -796,7 +797,7 @@
|
|||||||
"untagged-count": "Brez značke {count}",
|
"untagged-count": "Brez značke {count}",
|
||||||
"create-a-tag": "Ustvari značko",
|
"create-a-tag": "Ustvari značko",
|
||||||
"tag-name": "Ime značke",
|
"tag-name": "Ime značke",
|
||||||
"tag": "Tag"
|
"tag": "Oznaka"
|
||||||
},
|
},
|
||||||
"tool": {
|
"tool": {
|
||||||
"tools": "Orodja",
|
"tools": "Orodja",
|
||||||
@@ -877,10 +878,10 @@
|
|||||||
"account-locked-please-try-again-later": "Account Locked. Please try again later",
|
"account-locked-please-try-again-later": "Account Locked. Please try again later",
|
||||||
"user-favorites": "User Favorites",
|
"user-favorites": "User Favorites",
|
||||||
"password-strength-values": {
|
"password-strength-values": {
|
||||||
"weak": "Weak",
|
"weak": "Šibko",
|
||||||
"good": "Good",
|
"good": "Dobro",
|
||||||
"strong": "Strong",
|
"strong": "Močno",
|
||||||
"very-strong": "Very Strong"
|
"very-strong": "Zelo močno"
|
||||||
},
|
},
|
||||||
"user-management": "User Management",
|
"user-management": "User Management",
|
||||||
"reset-locked-users": "Reset Locked Users",
|
"reset-locked-users": "Reset Locked Users",
|
||||||
@@ -898,7 +899,7 @@
|
|||||||
"enable-advanced-features": "Enable advanced features",
|
"enable-advanced-features": "Enable advanced features",
|
||||||
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
|
"it-looks-like-this-is-your-first-time-logging-in": "It looks like this is your first time logging in.",
|
||||||
"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": "Forgot Password",
|
"forgot-password": "Ste pozabili geslo",
|
||||||
"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": "Changes to this user will be reflected immediately."
|
||||||
},
|
},
|
||||||
@@ -920,10 +921,10 @@
|
|||||||
"target-food": "Target Food",
|
"target-food": "Target Food",
|
||||||
"create-food": "Create Food",
|
"create-food": "Create Food",
|
||||||
"food-label": "Food Label",
|
"food-label": "Food Label",
|
||||||
"edit-food": "Edit Food",
|
"edit-food": "Spremeni živilo",
|
||||||
"food-data": "Food Data",
|
"food-data": "Food Data",
|
||||||
"example-food-singular": "ex: Onion",
|
"example-food-singular": "npr: Čebula",
|
||||||
"example-food-plural": "ex: Onions"
|
"example-food-plural": "npr: Čebule"
|
||||||
},
|
},
|
||||||
"units": {
|
"units": {
|
||||||
"seed-dialog-text": "Napolni podatkovno bazo z običajnimi enotami, glede na vaš lokalni jezik.",
|
"seed-dialog-text": "Napolni podatkovno bazo z običajnimi enotami, glede na vaš lokalni jezik.",
|
||||||
@@ -981,12 +982,12 @@
|
|||||||
"data-management": "Data Management",
|
"data-management": "Data Management",
|
||||||
"data-management-description": "Select which data set you want to make changes to.",
|
"data-management-description": "Select which data set you want to make changes to.",
|
||||||
"select-data": "Select Data",
|
"select-data": "Select Data",
|
||||||
"select-language": "Select Language",
|
"select-language": "Izberite jezik",
|
||||||
"columns": "Columns",
|
"columns": "Columns",
|
||||||
"combine": "Combine",
|
"combine": "Combine",
|
||||||
"categories": {
|
"categories": {
|
||||||
"edit-category": "Edit Category",
|
"edit-category": "Uredi kategorijo",
|
||||||
"new-category": "New Category",
|
"new-category": "Nova kategorija",
|
||||||
"category-data": "Category Data"
|
"category-data": "Category Data"
|
||||||
},
|
},
|
||||||
"tags": {
|
"tags": {
|
||||||
@@ -1131,7 +1132,7 @@
|
|||||||
"tasks": "Tasks"
|
"tasks": "Tasks"
|
||||||
},
|
},
|
||||||
"profile": {
|
"profile": {
|
||||||
"welcome-user": "👋 Welcome, {0}",
|
"welcome-user": "👋 Dobrodošel, {0}",
|
||||||
"description": "Manage your profile, recipes, and group settings.",
|
"description": "Manage your profile, recipes, and group settings.",
|
||||||
"get-invite-link": "Get Invite Link",
|
"get-invite-link": "Get Invite Link",
|
||||||
"get-public-link": "Get Public Link",
|
"get-public-link": "Get Public Link",
|
||||||
@@ -1150,7 +1151,7 @@
|
|||||||
"group-settings": "Group Settings",
|
"group-settings": "Group Settings",
|
||||||
"group-settings-description": "Manage your common group settings like mealplan and privacy settings.",
|
"group-settings-description": "Manage your common group settings like mealplan and privacy settings.",
|
||||||
"cookbooks-description": "Manage a collection of recipe categories and generate pages for them.",
|
"cookbooks-description": "Manage a collection of recipe categories and generate pages for them.",
|
||||||
"members": "Members",
|
"members": "Člani",
|
||||||
"members-description": "See who's in your group and manage their permissions.",
|
"members-description": "See who's in your group and manage their permissions.",
|
||||||
"webhooks-description": "Setup webhooks that trigger on days that you have have mealplan scheduled.",
|
"webhooks-description": "Setup webhooks that trigger on days that you have have mealplan scheduled.",
|
||||||
"notifiers": "Notifiers",
|
"notifiers": "Notifiers",
|
||||||
@@ -1175,9 +1176,9 @@
|
|||||||
"manage-data-migrations": "Manage Data Migrations"
|
"manage-data-migrations": "Manage Data Migrations"
|
||||||
},
|
},
|
||||||
"cookbook": {
|
"cookbook": {
|
||||||
"cookbooks": "Cookbooks",
|
"cookbooks": "Kuharske knjige",
|
||||||
"description": "Cookbooks are another way to organize recipes by creating cross sections of recipes and tags. Creating a cookbook will add an entry to the side-bar and all the recipes with the tags and categories chosen will be displayed in the cookbook.",
|
"description": "Cookbooks are another way to organize recipes by creating cross sections of recipes and tags. Creating a cookbook will add an entry to the side-bar and all the recipes with the tags and categories chosen will be displayed in the cookbook.",
|
||||||
"public-cookbook": "Public Cookbook",
|
"public-cookbook": "Javna kuharska knjiga",
|
||||||
"public-cookbook-description": "Public Cookbooks can be shared with non-mealie users and will be displayed on your groups page.",
|
"public-cookbook-description": "Public Cookbooks can be shared with non-mealie users and will be displayed on your groups page.",
|
||||||
"filter-options": "Filter Options",
|
"filter-options": "Filter Options",
|
||||||
"filter-options-description": "When require all is selected the cookbook will only include recipes that have all of the items selected. This applies to each subset of selectors and not a cross section of the selected items.",
|
"filter-options-description": "When require all is selected the cookbook will only include recipes that have all of the items selected. This applies to each subset of selectors and not a cross section of the selected items.",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Require All Tags",
|
"require-all-tags": "Require All Tags",
|
||||||
"require-all-tools": "Require All Tools",
|
"require-all-tools": "Require All Tools",
|
||||||
"cookbook-name": "Cookbook Name",
|
"cookbook-name": "Cookbook Name",
|
||||||
"cookbook-with-name": "Cookbook {0}"
|
"cookbook-with-name": "Cookbook {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Учитај датотеку",
|
"upload-file": "Учитај датотеку",
|
||||||
"created-on-date": "Крерирано: {0}",
|
"created-on-date": "Крерирано: {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Да ли сте сигурни да желите да обришете <b>{groupName}<b/>?",
|
"are-you-sure-you-want-to-delete-the-group": "Да ли сте сигурни да желите да обришете <b>{groupName}<b/>?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Захтевај све ознаке",
|
"require-all-tags": "Захтевај све ознаке",
|
||||||
"require-all-tools": "Захтева сав прибор",
|
"require-all-tools": "Захтева сав прибор",
|
||||||
"cookbook-name": "Cookbook Name",
|
"cookbook-name": "Cookbook Name",
|
||||||
"cookbook-with-name": "Кувар {0}"
|
"cookbook-with-name": "Кувар {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Ladda upp fil",
|
"upload-file": "Ladda upp fil",
|
||||||
"created-on-date": "Skapad {0}",
|
"created-on-date": "Skapad {0}",
|
||||||
"unsaved-changes": "Du har osparade ändringar. Vill du spara innan du lämnar? Tryck Okej att spara, Avbryt för att ignorera ändringar.",
|
"unsaved-changes": "Du har osparade ändringar. Vill du spara innan du lämnar? Tryck Okej att spara, Avbryt för att ignorera ändringar.",
|
||||||
"clipboard-copy-failure": "Det gick inte att kopiera till urklipp."
|
"clipboard-copy-failure": "Det gick inte att kopiera till urklipp.",
|
||||||
|
"confirm-delete-generic-items": "Är du säker på att du vill radera följande objekt?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Är du säker på att du vill radera <b>{groupName}<b/>?",
|
"are-you-sure-you-want-to-delete-the-group": "Är du säker på att du vill radera <b>{groupName}<b/>?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Kräv alla taggar",
|
"require-all-tags": "Kräv alla taggar",
|
||||||
"require-all-tools": "Kräv alla verktyg",
|
"require-all-tools": "Kräv alla verktyg",
|
||||||
"cookbook-name": "Namn på kokbok",
|
"cookbook-name": "Namn på kokbok",
|
||||||
"cookbook-with-name": "Kokbok {0}"
|
"cookbook-with-name": "Kokbok {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Dosya Yükle",
|
"upload-file": "Dosya Yükle",
|
||||||
"created-on-date": "{0} tarihinde oluşturuldu",
|
"created-on-date": "{0} tarihinde oluşturuldu",
|
||||||
"unsaved-changes": "Kaydedilmemiş değişiklikleriniz mevcut. Ayrılmadan önce kaydetmek ister misiniz? Kaydetmek için Tamam'ı, değişiklikleri iptal etmek için İptal'i seçin.",
|
"unsaved-changes": "Kaydedilmemiş değişiklikleriniz mevcut. Ayrılmadan önce kaydetmek ister misiniz? Kaydetmek için Tamam'ı, değişiklikleri iptal etmek için İptal'i seçin.",
|
||||||
"clipboard-copy-failure": "Panoya kopyalanamadı."
|
"clipboard-copy-failure": "Panoya kopyalanamadı.",
|
||||||
|
"confirm-delete-generic-items": "Aşağıdaki öğeleri silmek istediğinizden emin misiniz?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "<b>{groupName}<b/>'i silmek istediğine emin misin?",
|
"are-you-sure-you-want-to-delete-the-group": "<b>{groupName}<b/>'i silmek istediğine emin misin?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Require All Tags",
|
"require-all-tags": "Require All Tags",
|
||||||
"require-all-tools": "Require All Tools",
|
"require-all-tools": "Require All Tools",
|
||||||
"cookbook-name": "Cookbook Name",
|
"cookbook-name": "Cookbook Name",
|
||||||
"cookbook-with-name": "Cookbook {0}"
|
"cookbook-with-name": "Cookbook {0}",
|
||||||
|
"create-a-cookbook": "Yemek Kitabı Oluştur",
|
||||||
|
"cookbook": "Yemek kitabı"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Вивантажити файл",
|
"upload-file": "Вивантажити файл",
|
||||||
"created-on-date": "Створено: {0}",
|
"created-on-date": "Створено: {0}",
|
||||||
"unsaved-changes": "У вас є незбережені зміни. Ви хочете зберегти їх перед виходом? Гаразд, щоб зберегти, Скасувати, щоб скасувати.",
|
"unsaved-changes": "У вас є незбережені зміни. Ви хочете зберегти їх перед виходом? Гаразд, щоб зберегти, Скасувати, щоб скасувати.",
|
||||||
"clipboard-copy-failure": "Не вдалося скопіювати до буфера обміну."
|
"clipboard-copy-failure": "Не вдалося скопіювати до буфера обміну.",
|
||||||
|
"confirm-delete-generic-items": "Ви впевнені, що хочете видалити вибрані елементи?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "Ви дійсно бажаєте видалити <b>{groupName}<b/>?",
|
"are-you-sure-you-want-to-delete-the-group": "Ви дійсно бажаєте видалити <b>{groupName}<b/>?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Вимагати всі мітки",
|
"require-all-tags": "Вимагати всі мітки",
|
||||||
"require-all-tools": "Вимагати всі інструменти",
|
"require-all-tools": "Вимагати всі інструменти",
|
||||||
"cookbook-name": "Назва кулінарної книги",
|
"cookbook-name": "Назва кулінарної книги",
|
||||||
"cookbook-with-name": "Кулінарна книга {0}"
|
"cookbook-with-name": "Кулінарна книга {0}",
|
||||||
|
"create-a-cookbook": "Створити кулінарну книгу",
|
||||||
|
"cookbook": "Кулінарна книга"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "Upload File",
|
"upload-file": "Upload File",
|
||||||
"created-on-date": "Created on: {0}",
|
"created-on-date": "Created on: {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"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": "Are you sure you want to delete <b>{groupName}<b/>?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Require All Tags",
|
"require-all-tags": "Require All Tags",
|
||||||
"require-all-tools": "Require All Tools",
|
"require-all-tools": "Require All Tools",
|
||||||
"cookbook-name": "Cookbook Name",
|
"cookbook-name": "Cookbook Name",
|
||||||
"cookbook-with-name": "Cookbook {0}"
|
"cookbook-with-name": "Cookbook {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "上传文件",
|
"upload-file": "上传文件",
|
||||||
"created-on-date": "创建于: {0}",
|
"created-on-date": "创建于: {0}",
|
||||||
"unsaved-changes": "你有未保存的更改。你希望现在离开前保存吗?保存选择“是”,不保存选择“取消”。",
|
"unsaved-changes": "你有未保存的更改。你希望现在离开前保存吗?保存选择“是”,不保存选择“取消”。",
|
||||||
"clipboard-copy-failure": "未能复制到剪切板。"
|
"clipboard-copy-failure": "未能复制到剪切板。",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "您确定要删除<b>{groupName}<b/>吗?",
|
"are-you-sure-you-want-to-delete-the-group": "您确定要删除<b>{groupName}<b/>吗?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "包含全部标签",
|
"require-all-tags": "包含全部标签",
|
||||||
"require-all-tools": "包含全部工具",
|
"require-all-tools": "包含全部工具",
|
||||||
"cookbook-name": "食谱名称",
|
"cookbook-name": "食谱名称",
|
||||||
"cookbook-with-name": "{0}合集"
|
"cookbook-with-name": "{0}合集",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,8 @@
|
|||||||
"upload-file": "上傳文件",
|
"upload-file": "上傳文件",
|
||||||
"created-on-date": "Created on: {0}",
|
"created-on-date": "Created on: {0}",
|
||||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||||
"clipboard-copy-failure": "Failed to copy to the clipboard."
|
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||||
|
"confirm-delete-generic-items": "Are you sure you want to delete the following items?"
|
||||||
},
|
},
|
||||||
"group": {
|
"group": {
|
||||||
"are-you-sure-you-want-to-delete-the-group": "確定要刪除<b>{groupName}<b/>?",
|
"are-you-sure-you-want-to-delete-the-group": "確定要刪除<b>{groupName}<b/>?",
|
||||||
@@ -1185,6 +1186,8 @@
|
|||||||
"require-all-tags": "Require All Tags",
|
"require-all-tags": "Require All Tags",
|
||||||
"require-all-tools": "Require All Tools",
|
"require-all-tools": "Require All Tools",
|
||||||
"cookbook-name": "食譜名",
|
"cookbook-name": "食譜名",
|
||||||
"cookbook-with-name": "食譜 {0}"
|
"cookbook-with-name": "食譜 {0}",
|
||||||
|
"create-a-cookbook": "Create a Cookbook",
|
||||||
|
"cookbook": "Cookbook"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ export interface AppInfo {
|
|||||||
version: string;
|
version: string;
|
||||||
demoStatus: boolean;
|
demoStatus: boolean;
|
||||||
allowSignup: boolean;
|
allowSignup: boolean;
|
||||||
|
defaultGroupSlug?: string;
|
||||||
}
|
}
|
||||||
export interface AppStartupInfo {
|
export interface AppStartupInfo {
|
||||||
isFirstLogin: boolean;
|
isFirstLogin: boolean;
|
||||||
|
|||||||
@@ -74,7 +74,13 @@ export default defineComponent({
|
|||||||
|
|
||||||
const { response, data } = await adminApi.groups.updateOne(group.value.id, group.value);
|
const { response, data } = await adminApi.groups.updateOne(group.value.id, group.value);
|
||||||
if (response?.status === 200 && data) {
|
if (response?.status === 200 && data) {
|
||||||
|
if (group.value.slug !== data.slug) {
|
||||||
|
// the slug updated, which invalidates the nav URLs
|
||||||
|
window.location.reload();
|
||||||
|
}
|
||||||
group.value = data;
|
group.value = data;
|
||||||
|
} else {
|
||||||
|
alert.error(i18n.tc("settings.settings-update-failed"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -121,7 +121,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<template v-else-if="property.slot === 'build'">
|
<template v-else-if="property.slot === 'build'">
|
||||||
<v-list-item-subtitle>
|
<v-list-item-subtitle>
|
||||||
<a target="_blank" :href="`https://github.com/hay-kot/mealie/commit/${property.value}`">
|
<a target="_blank" :href="`https://github.com/mealie-recipes/mealie/commit/${property.value}`">
|
||||||
{{ property.value }}
|
{{ property.value }}
|
||||||
</a>
|
</a>
|
||||||
</v-list-item-subtitle>
|
</v-list-item-subtitle>
|
||||||
|
|||||||
@@ -1,73 +1,81 @@
|
|||||||
<template>
|
<template>
|
||||||
<v-container class="narrow-container">
|
<div>
|
||||||
<BasePageTitle divider>
|
<!-- Create Dialog -->
|
||||||
<template #header>
|
<BaseDialog
|
||||||
<v-img max-height="100" max-width="100" :src="require('~/static/svgs/manage-cookbooks.svg')"></v-img>
|
v-if="createTarget"
|
||||||
</template>
|
v-model="dialogStates.create"
|
||||||
<template #title> {{ $t('cookbook.cookbooks') }} </template>
|
:width="650"
|
||||||
{{ $t('cookbook.description') }}
|
:icon="$globals.icons.pages"
|
||||||
</BasePageTitle>
|
:title="$t('cookbook.create-a-cookbook')"
|
||||||
|
:submit-icon="$globals.icons.save"
|
||||||
|
:submit-text="$tc('general.save')"
|
||||||
|
@submit="actions.updateOne(createTarget)"
|
||||||
|
@cancel="actions.deleteOne(createTarget.id)"
|
||||||
|
>
|
||||||
|
<v-card-text>
|
||||||
|
<CookbookEditor
|
||||||
|
:cookbook=createTarget
|
||||||
|
:actions="actions"
|
||||||
|
/>
|
||||||
|
</v-card-text>
|
||||||
|
</BaseDialog>
|
||||||
|
|
||||||
<BaseButton create @click="actions.createOne()" />
|
<!-- Delete Dialog -->
|
||||||
<v-expansion-panels class="mt-2">
|
<BaseDialog
|
||||||
<draggable v-model="cookbooks" handle=".handle" style="width: 100%" @change="actions.updateOrder()">
|
v-model="dialogStates.delete"
|
||||||
<v-expansion-panel v-for="(cookbook, index) in cookbooks" :key="index" class="my-2 left-border rounded">
|
:title="$t('general.delete-with-name', { name: $t('cookbook.cookbook') })"
|
||||||
<v-expansion-panel-header disable-icon-rotate class="headline">
|
:icon="$globals.icons.alertCircle"
|
||||||
<div class="d-flex align-center">
|
color="error"
|
||||||
<v-icon large left>
|
@confirm="deleteCookbook()"
|
||||||
{{ $globals.icons.pages }}
|
>
|
||||||
</v-icon>
|
<v-card-text>
|
||||||
{{ cookbook.name }}
|
<p>{{ $t("general.confirm-delete-generic-with-name", { name: $t('cookbook.cookbook') }) }}</p>
|
||||||
</div>
|
<p v-if="deleteTarget" class="mt-4 ml-4">{{ deleteTarget.name }}</p>
|
||||||
<template #actions>
|
</v-card-text>
|
||||||
<v-icon class="handle">
|
</BaseDialog>
|
||||||
{{ $globals.icons.arrowUpDown }}
|
|
||||||
</v-icon>
|
<!-- Cookbook Page -->
|
||||||
<v-btn icon small class="ml-2">
|
<!-- Page Title -->
|
||||||
<v-icon>
|
<v-container class="narrow-container">
|
||||||
{{ $globals.icons.edit }}
|
<BasePageTitle divider>
|
||||||
|
<template #header>
|
||||||
|
<v-img max-height="100" max-width="100" :src="require('~/static/svgs/manage-cookbooks.svg')"></v-img>
|
||||||
|
</template>
|
||||||
|
<template #title> {{ $t('cookbook.cookbooks') }} </template>
|
||||||
|
{{ $t('cookbook.description') }}
|
||||||
|
</BasePageTitle>
|
||||||
|
|
||||||
|
<!-- Create New -->
|
||||||
|
<BaseButton create @click="createCookbook" />
|
||||||
|
|
||||||
|
<!-- Cookbook List -->
|
||||||
|
<v-expansion-panels class="mt-2">
|
||||||
|
<draggable v-model="cookbooks" handle=".handle" style="width: 100%" @change="actions.updateOrder()">
|
||||||
|
<v-expansion-panel v-for="(cookbook, index) in cookbooks" :key="index" class="my-2 left-border rounded">
|
||||||
|
<v-expansion-panel-header disable-icon-rotate class="headline">
|
||||||
|
<div class="d-flex align-center">
|
||||||
|
<v-icon large left>
|
||||||
|
{{ $globals.icons.pages }}
|
||||||
</v-icon>
|
</v-icon>
|
||||||
</v-btn>
|
{{ cookbook.name }}
|
||||||
</template>
|
|
||||||
</v-expansion-panel-header>
|
|
||||||
<v-expansion-panel-content>
|
|
||||||
<v-card-text v-if="cookbooks">
|
|
||||||
<v-text-field v-model="cookbooks[index].name" :label="$t('cookbook.cookbook-name')"></v-text-field>
|
|
||||||
<v-textarea v-model="cookbooks[index].description" auto-grow :rows="2" :label="$t('recipe.description')"></v-textarea>
|
|
||||||
<RecipeOrganizerSelector v-model="cookbooks[index].categories" selector-type="categories" />
|
|
||||||
<RecipeOrganizerSelector v-model="cookbooks[index].tags" selector-type="tags" />
|
|
||||||
<RecipeOrganizerSelector v-model="cookbooks[index].tools" selector-type="tools" />
|
|
||||||
<v-switch v-model="cookbooks[index].public" hide-details single-line>
|
|
||||||
<template #label>
|
|
||||||
{{ $t('cookbook.public-cookbook') }}
|
|
||||||
<HelpIcon small right class="ml-2">
|
|
||||||
{{ $t('cookbook.public-cookbook-description') }}
|
|
||||||
</HelpIcon>
|
|
||||||
</template>
|
|
||||||
</v-switch>
|
|
||||||
<div class="mt-4">
|
|
||||||
<h3 class="text-subtitle-1 d-flex align-center mb-0 pb-0">
|
|
||||||
{{ $t('cookbook.filter-options') }}
|
|
||||||
<HelpIcon right small class="ml-2">
|
|
||||||
{{ $t('cookbook.filter-options-description') }}
|
|
||||||
</HelpIcon>
|
|
||||||
</h3>
|
|
||||||
<v-switch v-model="cookbooks[index].requireAllCategories" class="mt-0" hide-details single-line>
|
|
||||||
<template #label> {{ $t('cookbook.require-all-categories') }} </template>
|
|
||||||
</v-switch>
|
|
||||||
<v-switch v-model="cookbooks[index].requireAllTags" hide-details single-line>
|
|
||||||
<template #label> {{ $t('cookbook.require-all-tags') }} </template>
|
|
||||||
</v-switch>
|
|
||||||
<v-switch v-model="cookbooks[index].requireAllTools" hide-details single-line>
|
|
||||||
<template #label> {{ $t('cookbook.require-all-tools') }} </template>
|
|
||||||
</v-switch>
|
|
||||||
</div>
|
</div>
|
||||||
</v-card-text>
|
<template #actions>
|
||||||
<v-card-actions>
|
<v-icon class="handle">
|
||||||
<v-spacer></v-spacer>
|
{{ $globals.icons.arrowUpDown }}
|
||||||
<BaseButtonGroup
|
</v-icon>
|
||||||
:buttons="[
|
<v-btn icon small class="ml-2">
|
||||||
{
|
<v-icon>
|
||||||
|
{{ $globals.icons.edit }}
|
||||||
|
</v-icon>
|
||||||
|
</v-btn>
|
||||||
|
</template>
|
||||||
|
</v-expansion-panel-header>
|
||||||
|
<v-expansion-panel-content>
|
||||||
|
<CookbookEditor :cookbook="cookbook" :actions="actions" :collapsable="false" @delete="deleteEventHandler" />
|
||||||
|
<v-card-actions>
|
||||||
|
<v-spacer></v-spacer>
|
||||||
|
<BaseButtonGroup
|
||||||
|
:buttons="[{
|
||||||
icon: $globals.icons.delete,
|
icon: $globals.icons.delete,
|
||||||
text: $tc('general.delete'),
|
text: $tc('general.delete'),
|
||||||
event: 'delete',
|
event: 'delete',
|
||||||
@@ -78,26 +86,27 @@
|
|||||||
event: 'save',
|
event: 'save',
|
||||||
},
|
},
|
||||||
]"
|
]"
|
||||||
@delete="actions.deleteOne(cookbook.id)"
|
@delete="deleteEventHandler(cookbook)"
|
||||||
@save="actions.updateOne(cookbook)"
|
@save="actions.updateOne(cookbook)" />
|
||||||
/>
|
</v-card-actions>
|
||||||
</v-card-actions>
|
</v-expansion-panel-content>
|
||||||
</v-expansion-panel-content>
|
</v-expansion-panel>
|
||||||
</v-expansion-panel>
|
</draggable>
|
||||||
</draggable>
|
</v-expansion-panels>
|
||||||
</v-expansion-panels>
|
</v-container>
|
||||||
</v-container>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent, useRouter } from "@nuxtjs/composition-api";
|
import { defineComponent, reactive, ref, useRouter } from "@nuxtjs/composition-api";
|
||||||
import draggable from "vuedraggable";
|
import draggable from "vuedraggable";
|
||||||
import { useCookbooks } from "@/composables/use-group-cookbooks";
|
import { useCookbooks } from "@/composables/use-group-cookbooks";
|
||||||
import { useLoggedInState } from "~/composables/use-logged-in-state";
|
import { useLoggedInState } from "~/composables/use-logged-in-state";
|
||||||
import RecipeOrganizerSelector from "~/components/Domain/Recipe/RecipeOrganizerSelector.vue";
|
import CookbookEditor from "~/components/Domain/Cookbook/CookbookEditor.vue";
|
||||||
|
import { ReadCookBook } from "~/lib/api/types/cookbook";
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
components: { draggable, RecipeOrganizerSelector },
|
components: { CookbookEditor, draggable },
|
||||||
setup() {
|
setup() {
|
||||||
const { isOwnGroup, loggedIn } = useLoggedInState();
|
const { isOwnGroup, loggedIn } = useLoggedInState();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
@@ -106,11 +115,50 @@ export default defineComponent({
|
|||||||
router.back();
|
router.back();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const dialogStates = reactive({
|
||||||
|
create: false,
|
||||||
|
delete: false,
|
||||||
|
});
|
||||||
|
|
||||||
const { cookbooks, actions } = useCookbooks();
|
const { cookbooks, actions } = useCookbooks();
|
||||||
|
|
||||||
|
|
||||||
|
// create
|
||||||
|
const createTarget = ref<ReadCookBook | null>(null);
|
||||||
|
async function createCookbook() {
|
||||||
|
await actions.createOne().then((cookbook) => {
|
||||||
|
createTarget.value = cookbook as ReadCookBook;
|
||||||
|
});
|
||||||
|
dialogStates.create = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// delete
|
||||||
|
const deleteTarget = ref<ReadCookBook | null>(null);
|
||||||
|
function deleteEventHandler(item: ReadCookBook){
|
||||||
|
deleteTarget.value = item;
|
||||||
|
dialogStates.delete = true;
|
||||||
|
}
|
||||||
|
function deleteCookbook() {
|
||||||
|
if (!deleteTarget.value) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
actions.deleteOne(deleteTarget.value.id);
|
||||||
|
dialogStates.delete = false;
|
||||||
|
deleteTarget.value = null;
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
cookbooks,
|
cookbooks,
|
||||||
actions,
|
actions,
|
||||||
|
dialogStates,
|
||||||
|
// create
|
||||||
|
createTarget,
|
||||||
|
createCookbook,
|
||||||
|
|
||||||
|
// delete
|
||||||
|
deleteTarget,
|
||||||
|
deleteEventHandler,
|
||||||
|
deleteCookbook,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
head() {
|
head() {
|
||||||
|
|||||||
@@ -49,15 +49,41 @@
|
|||||||
</v-card-text>
|
</v-card-text>
|
||||||
</BaseDialog>
|
</BaseDialog>
|
||||||
|
|
||||||
|
<!-- Bulk Delete Dialog -->
|
||||||
|
<BaseDialog
|
||||||
|
v-model="state.bulkDeleteDialog"
|
||||||
|
width="650px"
|
||||||
|
:title="$tc('general.confirm')"
|
||||||
|
:icon="$globals.icons.alertCircle"
|
||||||
|
color="error"
|
||||||
|
@confirm="deleteSelected"
|
||||||
|
>
|
||||||
|
<v-card-text>
|
||||||
|
<p class="h4">{{ $t('general.confirm-delete-generic-items') }}</p>
|
||||||
|
<v-card outlined>
|
||||||
|
<v-virtual-scroll height="400" item-height="25" :items="bulkDeleteTarget">
|
||||||
|
<template #default="{ item }">
|
||||||
|
<v-list-item class="pb-2">
|
||||||
|
<v-list-item-content>
|
||||||
|
<v-list-item-title>{{ item.name }}</v-list-item-title>
|
||||||
|
</v-list-item-content>
|
||||||
|
</v-list-item>
|
||||||
|
</template>
|
||||||
|
</v-virtual-scroll>
|
||||||
|
</v-card>
|
||||||
|
</v-card-text>
|
||||||
|
</BaseDialog>
|
||||||
|
|
||||||
<!-- Data Table -->
|
<!-- Data Table -->
|
||||||
<BaseCardSectionTitle :icon="$globals.icons.categories" section :title="$tc('data-pages.categories.category-data')"> </BaseCardSectionTitle>
|
<BaseCardSectionTitle :icon="$globals.icons.categories" section :title="$tc('data-pages.categories.category-data')"> </BaseCardSectionTitle>
|
||||||
<CrudTable
|
<CrudTable
|
||||||
:table-config="tableConfig"
|
:table-config="tableConfig"
|
||||||
:headers.sync="tableHeaders"
|
:headers.sync="tableHeaders"
|
||||||
:data="categories || []"
|
:data="categories || []"
|
||||||
:bulk-actions="[]"
|
:bulk-actions="[{icon: $globals.icons.delete, text: $tc('general.delete'), event: 'delete-selected'}]"
|
||||||
@delete-one="deleteEventHandler"
|
@delete-one="deleteEventHandler"
|
||||||
@edit-one="editEventHandler"
|
@edit-one="editEventHandler"
|
||||||
|
@delete-selected="bulkDeleteEventHandler"
|
||||||
>
|
>
|
||||||
<template #button-row>
|
<template #button-row>
|
||||||
<BaseButton create @click="state.createDialog = true">{{ $t("general.create") }}</BaseButton>
|
<BaseButton create @click="state.createDialog = true">{{ $t("general.create") }}</BaseButton>
|
||||||
@@ -96,6 +122,7 @@ export default defineComponent({
|
|||||||
createDialog: false,
|
createDialog: false,
|
||||||
editDialog: false,
|
editDialog: false,
|
||||||
deleteDialog: false,
|
deleteDialog: false,
|
||||||
|
bulkDeleteDialog: false,
|
||||||
});
|
});
|
||||||
const categoryData = useCategoryData();
|
const categoryData = useCategoryData();
|
||||||
const categoryStore = useCategoryStore();
|
const categoryStore = useCategoryStore();
|
||||||
@@ -149,6 +176,24 @@ export default defineComponent({
|
|||||||
state.deleteDialog = false;
|
state.deleteDialog = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ============================================================
|
||||||
|
// Bulk Delete Category
|
||||||
|
const bulkDeleteTarget = ref<RecipeCategory[]>([]);
|
||||||
|
function bulkDeleteEventHandler(selection: RecipeCategory[]) {
|
||||||
|
bulkDeleteTarget.value = selection;
|
||||||
|
state.bulkDeleteDialog = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function deleteSelected() {
|
||||||
|
for (const item of bulkDeleteTarget.value) {
|
||||||
|
if (!item.id) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
await categoryStore.actions.deleteOne(item.id);
|
||||||
|
}
|
||||||
|
bulkDeleteTarget.value = [];
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
state,
|
state,
|
||||||
tableConfig,
|
tableConfig,
|
||||||
@@ -168,7 +213,12 @@ export default defineComponent({
|
|||||||
// delete
|
// delete
|
||||||
deleteTarget,
|
deleteTarget,
|
||||||
deleteEventHandler,
|
deleteEventHandler,
|
||||||
deleteCategory
|
deleteCategory,
|
||||||
|
|
||||||
|
// bulk delete
|
||||||
|
bulkDeleteTarget,
|
||||||
|
bulkDeleteEventHandler,
|
||||||
|
deleteSelected,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -155,16 +155,42 @@
|
|||||||
</v-card-text>
|
</v-card-text>
|
||||||
</BaseDialog>
|
</BaseDialog>
|
||||||
|
|
||||||
|
<!-- Bulk Delete Dialog -->
|
||||||
|
<BaseDialog
|
||||||
|
v-model="bulkDeleteDialog"
|
||||||
|
width="650px"
|
||||||
|
:title="$tc('general.confirm')"
|
||||||
|
:icon="$globals.icons.alertCircle"
|
||||||
|
color="error"
|
||||||
|
@confirm="deleteSelected"
|
||||||
|
>
|
||||||
|
<v-card-text>
|
||||||
|
<p class="h4">{{ $t('general.confirm-delete-generic-items') }}</p>
|
||||||
|
<v-card outlined>
|
||||||
|
<v-virtual-scroll height="400" item-height="25" :items="bulkDeleteTarget">
|
||||||
|
<template #default="{ item }">
|
||||||
|
<v-list-item class="pb-2">
|
||||||
|
<v-list-item-content>
|
||||||
|
<v-list-item-title>{{ item.name }}</v-list-item-title>
|
||||||
|
</v-list-item-content>
|
||||||
|
</v-list-item>
|
||||||
|
</template>
|
||||||
|
</v-virtual-scroll>
|
||||||
|
</v-card>
|
||||||
|
</v-card-text>
|
||||||
|
</BaseDialog>
|
||||||
|
|
||||||
<!-- Data Table -->
|
<!-- Data Table -->
|
||||||
<BaseCardSectionTitle :icon="$globals.icons.foods" section :title="$tc('data-pages.foods.food-data')"> </BaseCardSectionTitle>
|
<BaseCardSectionTitle :icon="$globals.icons.foods" section :title="$tc('data-pages.foods.food-data')"> </BaseCardSectionTitle>
|
||||||
<CrudTable
|
<CrudTable
|
||||||
:table-config="tableConfig"
|
:table-config="tableConfig"
|
||||||
:headers.sync="tableHeaders"
|
:headers.sync="tableHeaders"
|
||||||
:data="foods || []"
|
:data="foods || []"
|
||||||
:bulk-actions="[]"
|
:bulk-actions="[{icon: $globals.icons.delete, text: $tc('general.delete'), event: 'delete-selected'}]"
|
||||||
@delete-one="deleteEventHandler"
|
@delete-one="deleteEventHandler"
|
||||||
@edit-one="editEventHandler"
|
@edit-one="editEventHandler"
|
||||||
@create-one="createEventHandler"
|
@create-one="createEventHandler"
|
||||||
|
@delete-selected="bulkDeleteEventHandler"
|
||||||
>
|
>
|
||||||
<template #button-row>
|
<template #button-row>
|
||||||
<BaseButton create @click="createDialog = true" />
|
<BaseButton create @click="createDialog = true" />
|
||||||
@@ -306,6 +332,21 @@ export default defineComponent({
|
|||||||
deleteDialog.value = false;
|
deleteDialog.value = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const bulkDeleteDialog = ref(false);
|
||||||
|
const bulkDeleteTarget = ref<IngredientFood[]>([]);
|
||||||
|
|
||||||
|
function bulkDeleteEventHandler(selection: IngredientFood[]) {
|
||||||
|
bulkDeleteTarget.value = selection;
|
||||||
|
bulkDeleteDialog.value = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function deleteSelected() {
|
||||||
|
for (const item of bulkDeleteTarget.value) {
|
||||||
|
await foodStore.actions.deleteOne(item.id);
|
||||||
|
}
|
||||||
|
bulkDeleteTarget.value = [];
|
||||||
|
}
|
||||||
|
|
||||||
// ============================================================
|
// ============================================================
|
||||||
// Alias Manager
|
// Alias Manager
|
||||||
|
|
||||||
@@ -396,6 +437,10 @@ export default defineComponent({
|
|||||||
deleteDialog,
|
deleteDialog,
|
||||||
deleteFood,
|
deleteFood,
|
||||||
deleteTarget,
|
deleteTarget,
|
||||||
|
bulkDeleteDialog,
|
||||||
|
bulkDeleteTarget,
|
||||||
|
bulkDeleteEventHandler,
|
||||||
|
deleteSelected,
|
||||||
// Alias Manager
|
// Alias Manager
|
||||||
aliasManagerDialog,
|
aliasManagerDialog,
|
||||||
aliasManagerEventHandler,
|
aliasManagerEventHandler,
|
||||||
|
|||||||
@@ -45,6 +45,31 @@
|
|||||||
</v-card-text>
|
</v-card-text>
|
||||||
</BaseDialog>
|
</BaseDialog>
|
||||||
|
|
||||||
|
<!-- Bulk Delete Dialog -->
|
||||||
|
<BaseDialog
|
||||||
|
v-model="state.bulkDeleteDialog"
|
||||||
|
width="650px"
|
||||||
|
:title="$tc('general.confirm')"
|
||||||
|
:icon="$globals.icons.alertCircle"
|
||||||
|
color="error"
|
||||||
|
@confirm="deleteSelected"
|
||||||
|
>
|
||||||
|
<v-card-text>
|
||||||
|
<p class="h4">{{ $t('general.confirm-delete-generic-items') }}</p>
|
||||||
|
<v-card outlined>
|
||||||
|
<v-virtual-scroll height="400" item-height="25" :items="bulkDeleteTarget">
|
||||||
|
<template #default="{ item }">
|
||||||
|
<v-list-item class="pb-2">
|
||||||
|
<v-list-item-content>
|
||||||
|
<v-list-item-title>{{ item.name }}</v-list-item-title>
|
||||||
|
</v-list-item-content>
|
||||||
|
</v-list-item>
|
||||||
|
</template>
|
||||||
|
</v-virtual-scroll>
|
||||||
|
</v-card>
|
||||||
|
</v-card-text>
|
||||||
|
</BaseDialog>
|
||||||
|
|
||||||
<!-- Seed Dialog-->
|
<!-- Seed Dialog-->
|
||||||
<BaseDialog
|
<BaseDialog
|
||||||
v-model="seedDialog"
|
v-model="seedDialog"
|
||||||
@@ -88,9 +113,10 @@
|
|||||||
:table-config="tableConfig"
|
:table-config="tableConfig"
|
||||||
:headers.sync="tableHeaders"
|
:headers.sync="tableHeaders"
|
||||||
:data="labels || []"
|
:data="labels || []"
|
||||||
:bulk-actions="[]"
|
:bulk-actions="[{icon: $globals.icons.delete, text: $tc('general.delete'), event: 'delete-selected'}]"
|
||||||
@delete-one="deleteEventHandler"
|
@delete-one="deleteEventHandler"
|
||||||
@edit-one="editEventHandler"
|
@edit-one="editEventHandler"
|
||||||
|
@delete-selected="bulkDeleteEventHandler"
|
||||||
>
|
>
|
||||||
<template #button-row>
|
<template #button-row>
|
||||||
<BaseButton create @click="state.createDialog = true">{{ $t("general.create") }}</BaseButton>
|
<BaseButton create @click="state.createDialog = true">{{ $t("general.create") }}</BaseButton>
|
||||||
@@ -146,6 +172,7 @@ export default defineComponent({
|
|||||||
createDialog: false,
|
createDialog: false,
|
||||||
editDialog: false,
|
editDialog: false,
|
||||||
deleteDialog: false,
|
deleteDialog: false,
|
||||||
|
bulkDeleteDialog: false,
|
||||||
});
|
});
|
||||||
|
|
||||||
// ============================================================
|
// ============================================================
|
||||||
@@ -179,6 +206,21 @@ export default defineComponent({
|
|||||||
state.deleteDialog = false;
|
state.deleteDialog = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Bulk Delete
|
||||||
|
const bulkDeleteTarget = ref<MultiPurposeLabelSummary[]>([]);
|
||||||
|
|
||||||
|
function bulkDeleteEventHandler(selection: MultiPurposeLabelSummary[]) {
|
||||||
|
bulkDeleteTarget.value = selection;
|
||||||
|
state.bulkDeleteDialog = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function deleteSelected() {
|
||||||
|
for (const item of bulkDeleteTarget.value) {
|
||||||
|
await labelStore.actions.deleteOne(item.id);
|
||||||
|
}
|
||||||
|
bulkDeleteTarget.value = [];
|
||||||
|
}
|
||||||
|
|
||||||
// Edit
|
// Edit
|
||||||
|
|
||||||
const editLabel = ref<MultiPurposeLabelSummary | null>(null);
|
const editLabel = ref<MultiPurposeLabelSummary | null>(null);
|
||||||
@@ -244,6 +286,9 @@ export default defineComponent({
|
|||||||
deleteEventHandler,
|
deleteEventHandler,
|
||||||
deleteLabel,
|
deleteLabel,
|
||||||
deleteTarget,
|
deleteTarget,
|
||||||
|
bulkDeleteEventHandler,
|
||||||
|
deleteSelected,
|
||||||
|
bulkDeleteTarget,
|
||||||
|
|
||||||
// Seed
|
// Seed
|
||||||
seedDatabase,
|
seedDatabase,
|
||||||
|
|||||||
@@ -49,15 +49,41 @@
|
|||||||
</v-card-text>
|
</v-card-text>
|
||||||
</BaseDialog>
|
</BaseDialog>
|
||||||
|
|
||||||
|
<!-- Bulk Delete Dialog -->
|
||||||
|
<BaseDialog
|
||||||
|
v-model="state.bulkDeleteDialog"
|
||||||
|
width="650px"
|
||||||
|
:title="$tc('general.confirm')"
|
||||||
|
:icon="$globals.icons.alertCircle"
|
||||||
|
color="error"
|
||||||
|
@confirm="deleteSelected"
|
||||||
|
>
|
||||||
|
<v-card-text>
|
||||||
|
<p class="h4">{{ $t('general.confirm-delete-generic-items') }}</p>
|
||||||
|
<v-card outlined>
|
||||||
|
<v-virtual-scroll height="400" item-height="25" :items="bulkDeleteTarget">
|
||||||
|
<template #default="{ item }">
|
||||||
|
<v-list-item class="pb-2">
|
||||||
|
<v-list-item-content>
|
||||||
|
<v-list-item-title>{{ item.name }}</v-list-item-title>
|
||||||
|
</v-list-item-content>
|
||||||
|
</v-list-item>
|
||||||
|
</template>
|
||||||
|
</v-virtual-scroll>
|
||||||
|
</v-card>
|
||||||
|
</v-card-text>
|
||||||
|
</BaseDialog>
|
||||||
|
|
||||||
<!-- Data Table -->
|
<!-- Data Table -->
|
||||||
<BaseCardSectionTitle :icon="$globals.icons.tags" section :title="$tc('data-pages.tags.tag-data')"> </BaseCardSectionTitle>
|
<BaseCardSectionTitle :icon="$globals.icons.tags" section :title="$tc('data-pages.tags.tag-data')"> </BaseCardSectionTitle>
|
||||||
<CrudTable
|
<CrudTable
|
||||||
:table-config="tableConfig"
|
:table-config="tableConfig"
|
||||||
:headers.sync="tableHeaders"
|
:headers.sync="tableHeaders"
|
||||||
:data="tags || []"
|
:data="tags || []"
|
||||||
:bulk-actions="[]"
|
:bulk-actions="[{icon: $globals.icons.delete, text: $tc('general.delete'), event: 'delete-selected'}]"
|
||||||
@delete-one="deleteEventHandler"
|
@delete-one="deleteEventHandler"
|
||||||
@edit-one="editEventHandler"
|
@edit-one="editEventHandler"
|
||||||
|
@delete-selected="bulkDeleteEventHandler"
|
||||||
>
|
>
|
||||||
<template #button-row>
|
<template #button-row>
|
||||||
<BaseButton create @click="state.createDialog = true">{{ $t("general.create") }}</BaseButton>
|
<BaseButton create @click="state.createDialog = true">{{ $t("general.create") }}</BaseButton>
|
||||||
@@ -96,6 +122,7 @@ export default defineComponent({
|
|||||||
createDialog: false,
|
createDialog: false,
|
||||||
editDialog: false,
|
editDialog: false,
|
||||||
deleteDialog: false,
|
deleteDialog: false,
|
||||||
|
bulkDeleteDialog: false,
|
||||||
});
|
});
|
||||||
|
|
||||||
const tagData = useTagData();
|
const tagData = useTagData();
|
||||||
@@ -150,6 +177,24 @@ export default defineComponent({
|
|||||||
state.deleteDialog = false;
|
state.deleteDialog = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ============================================================
|
||||||
|
// Bulk Delete Tag
|
||||||
|
const bulkDeleteTarget = ref<RecipeTag[]>([]);
|
||||||
|
function bulkDeleteEventHandler(selection: RecipeTag[]) {
|
||||||
|
bulkDeleteTarget.value = selection;
|
||||||
|
state.bulkDeleteDialog = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function deleteSelected() {
|
||||||
|
for (const item of bulkDeleteTarget.value) {
|
||||||
|
if (!item.id) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
await tagStore.actions.deleteOne(item.id);
|
||||||
|
}
|
||||||
|
bulkDeleteTarget.value = [];
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
state,
|
state,
|
||||||
tableConfig,
|
tableConfig,
|
||||||
@@ -169,7 +214,12 @@ export default defineComponent({
|
|||||||
// delete
|
// delete
|
||||||
deleteTarget,
|
deleteTarget,
|
||||||
deleteEventHandler,
|
deleteEventHandler,
|
||||||
deleteTag
|
deleteTag,
|
||||||
|
|
||||||
|
// bulk delete
|
||||||
|
bulkDeleteTarget,
|
||||||
|
bulkDeleteEventHandler,
|
||||||
|
deleteSelected,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -51,15 +51,41 @@
|
|||||||
</v-card-text>
|
</v-card-text>
|
||||||
</BaseDialog>
|
</BaseDialog>
|
||||||
|
|
||||||
|
<!-- Bulk Delete Dialog -->
|
||||||
|
<BaseDialog
|
||||||
|
v-model="state.bulkDeleteDialog"
|
||||||
|
width="650px"
|
||||||
|
:title="$tc('general.confirm')"
|
||||||
|
:icon="$globals.icons.alertCircle"
|
||||||
|
color="error"
|
||||||
|
@confirm="deleteSelected"
|
||||||
|
>
|
||||||
|
<v-card-text>
|
||||||
|
<p class="h4">{{ $t('general.confirm-delete-generic-items') }}</p>
|
||||||
|
<v-card outlined>
|
||||||
|
<v-virtual-scroll height="400" item-height="25" :items="bulkDeleteTarget">
|
||||||
|
<template #default="{ item }">
|
||||||
|
<v-list-item class="pb-2">
|
||||||
|
<v-list-item-content>
|
||||||
|
<v-list-item-title>{{ item.name }}</v-list-item-title>
|
||||||
|
</v-list-item-content>
|
||||||
|
</v-list-item>
|
||||||
|
</template>
|
||||||
|
</v-virtual-scroll>
|
||||||
|
</v-card>
|
||||||
|
</v-card-text>
|
||||||
|
</BaseDialog>
|
||||||
|
|
||||||
<!-- Data Table -->
|
<!-- Data Table -->
|
||||||
<BaseCardSectionTitle :icon="$globals.icons.potSteam" section :title="$tc('data-pages.tools.tool-data')"> </BaseCardSectionTitle>
|
<BaseCardSectionTitle :icon="$globals.icons.potSteam" section :title="$tc('data-pages.tools.tool-data')"> </BaseCardSectionTitle>
|
||||||
<CrudTable
|
<CrudTable
|
||||||
:table-config="tableConfig"
|
:table-config="tableConfig"
|
||||||
:headers.sync="tableHeaders"
|
:headers.sync="tableHeaders"
|
||||||
:data="tools || []"
|
:data="tools || []"
|
||||||
:bulk-actions="[]"
|
:bulk-actions="[{icon: $globals.icons.delete, text: $tc('general.delete'), event: 'delete-selected'}]"
|
||||||
@delete-one="deleteEventHandler"
|
@delete-one="deleteEventHandler"
|
||||||
@edit-one="editEventHandler"
|
@edit-one="editEventHandler"
|
||||||
|
@delete-selected="bulkDeleteEventHandler"
|
||||||
>
|
>
|
||||||
<template #button-row>
|
<template #button-row>
|
||||||
<BaseButton create @click="state.createDialog = true">{{ $t("general.create") }}</BaseButton>
|
<BaseButton create @click="state.createDialog = true">{{ $t("general.create") }}</BaseButton>
|
||||||
@@ -108,6 +134,7 @@ export default defineComponent({
|
|||||||
createDialog: false,
|
createDialog: false,
|
||||||
editDialog: false,
|
editDialog: false,
|
||||||
deleteDialog: false,
|
deleteDialog: false,
|
||||||
|
bulkDeleteDialog: false,
|
||||||
});
|
});
|
||||||
|
|
||||||
const toolData = useToolData();
|
const toolData = useToolData();
|
||||||
@@ -162,6 +189,22 @@ export default defineComponent({
|
|||||||
state.deleteDialog = false;
|
state.deleteDialog = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ============================================================
|
||||||
|
// Bulk Delete Tag
|
||||||
|
|
||||||
|
const bulkDeleteTarget = ref<RecipeTool[]>([]);
|
||||||
|
function bulkDeleteEventHandler(selection: RecipeTool[]) {
|
||||||
|
bulkDeleteTarget.value = selection;
|
||||||
|
state.bulkDeleteDialog = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function deleteSelected() {
|
||||||
|
for (const item of bulkDeleteTarget.value) {
|
||||||
|
await toolStore.actions.deleteOne(item.id);
|
||||||
|
}
|
||||||
|
bulkDeleteTarget.value = [];
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
state,
|
state,
|
||||||
tableConfig,
|
tableConfig,
|
||||||
@@ -181,7 +224,12 @@ export default defineComponent({
|
|||||||
// delete
|
// delete
|
||||||
deleteTarget,
|
deleteTarget,
|
||||||
deleteEventHandler,
|
deleteEventHandler,
|
||||||
deleteTool
|
deleteTool,
|
||||||
|
|
||||||
|
// bulk delete
|
||||||
|
bulkDeleteTarget,
|
||||||
|
bulkDeleteEventHandler,
|
||||||
|
deleteSelected,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -129,6 +129,31 @@
|
|||||||
</v-card-text>
|
</v-card-text>
|
||||||
</BaseDialog>
|
</BaseDialog>
|
||||||
|
|
||||||
|
<!-- Bulk Delete Dialog -->
|
||||||
|
<BaseDialog
|
||||||
|
v-model="bulkDeleteDialog"
|
||||||
|
width="650px"
|
||||||
|
:title="$tc('general.confirm')"
|
||||||
|
:icon="$globals.icons.alertCircle"
|
||||||
|
color="error"
|
||||||
|
@confirm="deleteSelected"
|
||||||
|
>
|
||||||
|
<v-card-text>
|
||||||
|
<p class="h4">{{ $t('general.confirm-delete-generic-items') }}</p>
|
||||||
|
<v-card outlined>
|
||||||
|
<v-virtual-scroll height="400" item-height="25" :items="bulkDeleteTarget">
|
||||||
|
<template #default="{ item }">
|
||||||
|
<v-list-item class="pb-2">
|
||||||
|
<v-list-item-content>
|
||||||
|
<v-list-item-title>{{ item.name }}</v-list-item-title>
|
||||||
|
</v-list-item-content>
|
||||||
|
</v-list-item>
|
||||||
|
</template>
|
||||||
|
</v-virtual-scroll>
|
||||||
|
</v-card>
|
||||||
|
</v-card-text>
|
||||||
|
</BaseDialog>
|
||||||
|
|
||||||
<!-- Seed Dialog-->
|
<!-- Seed Dialog-->
|
||||||
<BaseDialog
|
<BaseDialog
|
||||||
v-model="seedDialog"
|
v-model="seedDialog"
|
||||||
@@ -172,10 +197,11 @@
|
|||||||
:table-config="tableConfig"
|
:table-config="tableConfig"
|
||||||
:headers.sync="tableHeaders"
|
:headers.sync="tableHeaders"
|
||||||
:data="units || []"
|
:data="units || []"
|
||||||
:bulk-actions="[]"
|
:bulk-actions="[{icon: $globals.icons.delete, text: $tc('general.delete'), event: 'delete-selected'}]"
|
||||||
@delete-one="deleteEventHandler"
|
@delete-one="deleteEventHandler"
|
||||||
@edit-one="editEventHandler"
|
@edit-one="editEventHandler"
|
||||||
@create-one="createEventHandler"
|
@create-one="createEventHandler"
|
||||||
|
@delete-selected="bulkDeleteEventHandler"
|
||||||
>
|
>
|
||||||
<template #button-row>
|
<template #button-row>
|
||||||
<BaseButton create @click="createDialog = true" />
|
<BaseButton create @click="createDialog = true" />
|
||||||
@@ -339,6 +365,22 @@ export default defineComponent({
|
|||||||
deleteDialog.value = false;
|
deleteDialog.value = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ============================================================
|
||||||
|
// Bulk Delete Units
|
||||||
|
const bulkDeleteDialog = ref(false);
|
||||||
|
const bulkDeleteTarget = ref<IngredientUnit[]>([]);
|
||||||
|
function bulkDeleteEventHandler(selection: IngredientUnit[]) {
|
||||||
|
bulkDeleteTarget.value = selection;
|
||||||
|
bulkDeleteDialog.value = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function deleteSelected() {
|
||||||
|
for (const item of bulkDeleteTarget.value) {
|
||||||
|
await unitActions.deleteOne(item.id);
|
||||||
|
}
|
||||||
|
bulkDeleteTarget.value = [];
|
||||||
|
}
|
||||||
|
|
||||||
// ============================================================
|
// ============================================================
|
||||||
// Alias Manager
|
// Alias Manager
|
||||||
|
|
||||||
@@ -423,6 +465,11 @@ export default defineComponent({
|
|||||||
deleteDialog,
|
deleteDialog,
|
||||||
deleteUnit,
|
deleteUnit,
|
||||||
deleteTarget,
|
deleteTarget,
|
||||||
|
// Bulk Delete
|
||||||
|
bulkDeleteDialog,
|
||||||
|
bulkDeleteEventHandler,
|
||||||
|
bulkDeleteTarget,
|
||||||
|
deleteSelected,
|
||||||
// Alias Manager
|
// Alias Manager
|
||||||
aliasManagerDialog,
|
aliasManagerDialog,
|
||||||
aliasManagerEventHandler,
|
aliasManagerEventHandler,
|
||||||
|
|||||||
@@ -4,17 +4,28 @@
|
|||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { computed, defineComponent, useContext, useRouter } from "@nuxtjs/composition-api";
|
import { computed, defineComponent, useContext, useRouter } from "@nuxtjs/composition-api";
|
||||||
|
import { AppInfo } from "~/lib/api/types/admin";
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
layout: "blank",
|
layout: "blank",
|
||||||
setup() {
|
setup() {
|
||||||
const { $auth } = useContext();
|
const { $auth, $axios } = useContext();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const groupSlug = computed(() => $auth.user?.groupSlug);
|
const groupSlug = computed(() => $auth.user?.groupSlug);
|
||||||
|
|
||||||
|
async function redirectPublicUserToDefaultGroup() {
|
||||||
|
const { data } = await $axios.get<AppInfo>("/api/app/about");
|
||||||
|
if (data?.defaultGroupSlug) {
|
||||||
|
router.push(`/g/${data.defaultGroupSlug}`);
|
||||||
|
} else {
|
||||||
|
router.push("/login");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (groupSlug.value) {
|
if (groupSlug.value) {
|
||||||
router.push(`/g/${groupSlug.value}`);
|
router.push(`/g/${groupSlug.value}`);
|
||||||
} else {
|
} else {
|
||||||
router.push("/login");
|
redirectPublicUserToDefaultGroup();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,21 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div></div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script lang="ts">
|
|
||||||
import { defineComponent } from "@nuxtjs/composition-api";
|
|
||||||
|
|
||||||
export default defineComponent({
|
|
||||||
setup() {
|
|
||||||
return {};
|
|
||||||
},
|
|
||||||
head() {
|
|
||||||
return {
|
|
||||||
title: this.$t("settings.profile") as string,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style scoped>
|
|
||||||
</style>
|
|
||||||
@@ -7,11 +7,9 @@ from mealie.core.config import get_app_settings
|
|||||||
|
|
||||||
|
|
||||||
class Hasher(Protocol):
|
class Hasher(Protocol):
|
||||||
def hash(self, password: str) -> str:
|
def hash(self, password: str) -> str: ...
|
||||||
...
|
|
||||||
|
|
||||||
def verify(self, password: str, hashed: str) -> bool:
|
def verify(self, password: str, hashed: str) -> bool: ...
|
||||||
...
|
|
||||||
|
|
||||||
|
|
||||||
class FakeHasher:
|
class FakeHasher:
|
||||||
|
|||||||
@@ -18,8 +18,7 @@ ALGORITHM = "HS256"
|
|||||||
logger = root_logger.get_logger("security")
|
logger = root_logger.get_logger("security")
|
||||||
|
|
||||||
|
|
||||||
class UserLockedOut(Exception):
|
class UserLockedOut(Exception): ...
|
||||||
...
|
|
||||||
|
|
||||||
|
|
||||||
def create_access_token(data: dict, expires_delta: timedelta | None = None) -> str:
|
def create_access_token(data: dict, expires_delta: timedelta | None = None) -> str:
|
||||||
|
|||||||
@@ -7,13 +7,11 @@ from pydantic import BaseModel, BaseSettings, PostgresDsn
|
|||||||
class AbstractDBProvider(ABC):
|
class AbstractDBProvider(ABC):
|
||||||
@property
|
@property
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def db_url(self) -> str:
|
def db_url(self) -> str: ...
|
||||||
...
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def db_url_public(self) -> str:
|
def db_url_public(self) -> str: ...
|
||||||
...
|
|
||||||
|
|
||||||
|
|
||||||
class SQLiteProvider(AbstractDBProvider, BaseModel):
|
class SQLiteProvider(AbstractDBProvider, BaseModel):
|
||||||
|
|||||||
@@ -31,5 +31,4 @@ class GroupWebhooksModel(SqlAlchemyBase, BaseMixins):
|
|||||||
time: Mapped[str | None] = mapped_column(String, default="00:00")
|
time: Mapped[str | None] = mapped_column(String, default="00:00")
|
||||||
|
|
||||||
@auto_init()
|
@auto_init()
|
||||||
def __init__(self, **_) -> None:
|
def __init__(self, **_) -> None: ...
|
||||||
...
|
|
||||||
|
|||||||
@@ -31,5 +31,14 @@
|
|||||||
"generic-updated-with-url": "{name} is opgedateer, {url}",
|
"generic-updated-with-url": "{name} is opgedateer, {url}",
|
||||||
"generic-duplicated": "{name} is gekopieer",
|
"generic-duplicated": "{name} is gekopieer",
|
||||||
"generic-deleted": "{name} is verwyder"
|
"generic-deleted": "{name} is verwyder"
|
||||||
|
},
|
||||||
|
"datetime": {
|
||||||
|
"year": "year|years",
|
||||||
|
"day": "day|days",
|
||||||
|
"hour": "hour|hours",
|
||||||
|
"minute": "minute|minutes",
|
||||||
|
"second": "second|seconds",
|
||||||
|
"millisecond": "millisecond|milliseconds",
|
||||||
|
"microsecond": "microsecond|microseconds"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,5 +31,14 @@
|
|||||||
"generic-updated-with-url": "{name} تم تحديثه، {url}",
|
"generic-updated-with-url": "{name} تم تحديثه، {url}",
|
||||||
"generic-duplicated": "تم تكرار {name}",
|
"generic-duplicated": "تم تكرار {name}",
|
||||||
"generic-deleted": "تم حذف {name}"
|
"generic-deleted": "تم حذف {name}"
|
||||||
|
},
|
||||||
|
"datetime": {
|
||||||
|
"year": "year|years",
|
||||||
|
"day": "day|days",
|
||||||
|
"hour": "hour|hours",
|
||||||
|
"minute": "minute|minutes",
|
||||||
|
"second": "second|seconds",
|
||||||
|
"millisecond": "millisecond|milliseconds",
|
||||||
|
"microsecond": "microsecond|microseconds"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user