Merge branch 'develop' into beta

This commit is contained in:
vabene1111 2023-11-27 20:21:37 +01:00
commit 899a9955fb
58 changed files with 4786 additions and 1340 deletions

View File

@ -64,17 +64,17 @@ jobs:
run: yarn build
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
- name: Set up Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v2
uses: docker/login-action@v3
if: github.secret_source == 'Actions'
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
uses: docker/login-action@v3
if: github.secret_source == 'Actions'
with:
registry: ghcr.io
@ -82,7 +82,7 @@ jobs:
password: ${{ github.token }}
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
uses: docker/metadata-action@v5
with:
images: |
vabene1111/recipes
@ -97,7 +97,7 @@ jobs:
type=semver,suffix=-open-data-plugin,pattern={{major}}
type=ref,suffix=-open-data-plugin,event=branch
- name: Build and Push
uses: docker/build-push-action@v4
uses: docker/build-push-action@v5
with:
context: .
file: ${{ matrix.dockerfile }}

View File

@ -48,17 +48,17 @@ jobs:
run: yarn build
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
- name: Set up Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v2
uses: docker/login-action@v3
if: github.secret_source == 'Actions'
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
uses: docker/login-action@v3
if: github.secret_source == 'Actions'
with:
registry: ghcr.io
@ -66,7 +66,7 @@ jobs:
password: ${{ github.token }}
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
uses: docker/metadata-action@v5
with:
images: |
vabene1111/recipes
@ -81,7 +81,7 @@ jobs:
type=semver,pattern={{major}}
type=ref,event=branch
- name: Build and Push
uses: docker/build-push-action@v4
uses: docker/build-push-action@v5
with:
context: .
file: ${{ matrix.dockerfile }}

1
.gitignore vendored
View File

@ -74,6 +74,7 @@ mediafiles/
\.env
staticfiles/
postgresql/
data/
/docker-compose.override.yml

View File

@ -35,7 +35,7 @@ echo "Waiting for database to be ready..."
attempt=0
max_attempts=20
if [ "${DB_ENGINE}" != 'django.db.backends.sqlite3' ]; then
if [ "${DB_ENGINE}" == 'django.db.backends.postgresql' ] || [ "${DATABASE_URL}" == 'postgres'* ]; then
# POSTGRES_PASSWORD (or a valid file at POSTGRES_PASSWORD_FILE) must be set in .env file

View File

@ -192,7 +192,7 @@ class RecipeAdmin(admin.ModelAdmin):
def created_by(obj):
return obj.created_by.get_user_display_name()
if settings.DATABASES['default']['ENGINE'] in ['django.db.backends.postgresql_psycopg2', 'django.db.backends.postgresql']:
if settings.DATABASES['default']['ENGINE'] == 'django.db.backends.postgresql':
actions = [rebuild_index]

View File

@ -9,8 +9,8 @@ from django_scopes import scopes_disabled
from django_scopes.forms import SafeModelChoiceField, SafeModelMultipleChoiceField
from hcaptcha.fields import hCaptchaField
from .models import (Comment, Food, InviteLink, Keyword, MealPlan, MealType, Recipe, RecipeBook,
RecipeBookEntry, SearchPreference, Space, Storage, Sync, User, UserPreference)
from .models import (Comment, Food, InviteLink, Keyword, Recipe, RecipeBook, RecipeBookEntry,
SearchPreference, Space, Storage, Sync, User, UserPreference)
class SelectWidget(widgets.Select):

View File

@ -1,3 +1,6 @@
import cookbook.helper.dal
from cookbook.helper.AllAuthCustomAdapter import AllAuthCustomAdapter
__all__ = [
'dal',
]

View File

@ -10,7 +10,7 @@ def rescale_image_jpeg(image_object, base_width=1020):
width_percent = (base_width / float(img.size[0]))
height = int((float(img.size[1]) * float(width_percent)))
img = img.resize((base_width, height), Image.ANTIALIAS)
img = img.resize((base_width, height), Image.LANCZOS)
img_bytes = BytesIO()
img.save(img_bytes, 'JPEG', quality=90, optimize=True, icc_profile=icc_profile)
@ -21,7 +21,7 @@ def rescale_image_png(image_object, base_width=1020):
image_object = Image.open(image_object)
wpercent = (base_width / float(image_object.size[0]))
hsize = int((float(image_object.size[1]) * float(wpercent)))
img = image_object.resize((base_width, hsize), Image.ANTIALIAS)
img = image_object.resize((base_width, hsize), Image.LANCZOS)
im_io = BytesIO()
img.save(im_io, 'PNG', quality=90)

View File

@ -117,18 +117,24 @@ class OpenDataImporter:
self._update_slug_cache(PropertyType, 'property')
insert_list = []
insert_list_flat = []
update_list = []
update_field_list = []
for k in list(self.data[datatype].keys()):
if not (self.data[datatype][k]['name'] in existing_objects_flat or self.data[datatype][k]['plural_name'] in existing_objects_flat):
insert_list.append({'data': {
'name': self.data[datatype][k]['name'],
'plural_name': self.data[datatype][k]['plural_name'] if self.data[datatype][k]['plural_name'] != '' else None,
'supermarket_category_id': self.slug_id_cache['category'][self.data[datatype][k]['store_category']],
'fdc_id': self.data[datatype][k]['fdc_id'] if self.data[datatype][k]['fdc_id'] != '' else None,
'open_data_slug': k,
'space': self.request.space.id,
}})
if not (self.data[datatype][k]['name'] in insert_list_flat or self.data[datatype][k]['plural_name'] in insert_list_flat):
insert_list.append({'data': {
'name': self.data[datatype][k]['name'],
'plural_name': self.data[datatype][k]['plural_name'] if self.data[datatype][k]['plural_name'] != '' else None,
'supermarket_category_id': self.slug_id_cache['category'][self.data[datatype][k]['store_category']],
'fdc_id': self.data[datatype][k]['fdc_id'] if self.data[datatype][k]['fdc_id'] != '' else None,
'open_data_slug': k,
'space': self.request.space.id,
}})
# build a fake second flat array to prevent duplicate foods from being inserted.
# trying to insert a duplicate would throw a db error :(
insert_list_flat.append(self.data[datatype][k]['name'])
insert_list_flat.append(self.data[datatype][k]['plural_name'])
else:
if self.data[datatype][k]['name'] in existing_objects:
existing_food_id = existing_objects[self.data[datatype][k]['name']][0]

View File

@ -16,7 +16,7 @@ from recipes import settings
# TODO consider creating a simpleListRecipe API that only includes minimum of recipe info and minimal filtering
class RecipeSearch():
_postgres = settings.DATABASES['default']['ENGINE'] in ['django.db.backends.postgresql_psycopg2', 'django.db.backends.postgresql']
_postgres = settings.DATABASES['default']['ENGINE'] == 'django.db.backends.postgresql'
def __init__(self, request, **params):
self._request = request

View File

@ -4,6 +4,7 @@ from zipfile import ZipFile
from cookbook.helper.image_processing import get_filetype
from cookbook.helper.ingredient_parser import IngredientParser
from cookbook.helper.recipe_url_import import parse_servings, parse_servings_text, parse_time
from cookbook.integration.integration import Integration
from cookbook.models import Ingredient, Keyword, Recipe, Step
@ -19,6 +20,10 @@ class Chowdown(Integration):
direction_mode = False
description_mode = False
description = None
prep_time = None
serving = None
ingredients = []
directions = []
descriptions = []
@ -26,6 +31,12 @@ class Chowdown(Integration):
line = fl.decode("utf-8")
if 'title:' in line:
title = line.replace('title:', '').replace('"', '').strip()
if 'description:' in line:
description = line.replace('description:', '').replace('"', '').strip()
if 'prep_time:' in line:
prep_time = line.replace('prep_time:', '').replace('"', '').strip()
if 'yield:' in line:
serving = line.replace('yield:', '').replace('"', '').strip()
if 'image:' in line:
image = line.replace('image:', '').strip()
if 'tags:' in line:
@ -48,15 +59,43 @@ class Chowdown(Integration):
descriptions.append(line)
recipe = Recipe.objects.create(name=title, created_by=self.request.user, internal=True, space=self.request.space)
if description:
recipe.description = description
for k in tags.split(','):
print(f'adding keyword {k.strip()}')
keyword, created = Keyword.objects.get_or_create(name=k.strip(), space=self.request.space)
recipe.keywords.add(keyword)
step = Step.objects.create(
instruction='\n'.join(directions) + '\n\n' + '\n'.join(descriptions), space=self.request.space, show_ingredients_table=self.request.user.userpreference.show_step_ingredients,
)
ingredients_added = False
for direction in directions:
if len(direction.strip()) > 0:
step = Step.objects.create(
instruction=direction, name='', space=self.request.space, show_ingredients_table=self.request.user.userpreference.show_step_ingredients,
)
else:
step = Step.objects.create(
instruction=direction, space=self.request.space, show_ingredients_table=self.request.user.userpreference.show_step_ingredients,
)
if not ingredients_added:
ingredients_added = True
ingredient_parser = IngredientParser(self.request, True)
for ingredient in ingredients:
if len(ingredient.strip()) > 0:
amount, unit, food, note = ingredient_parser.parse(ingredient)
f = ingredient_parser.get_food(food)
u = ingredient_parser.get_unit(unit)
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=amount, note=note, original_text=ingredient, space=self.request.space,
))
recipe.steps.add(step)
if serving:
recipe.servings = parse_servings(serving)
recipe.servings_text = 'servings'
if prep_time:
recipe.working_time = parse_time(prep_time)
ingredient_parser = IngredientParser(self.request, True)
for ingredient in ingredients:
@ -76,6 +115,7 @@ class Chowdown(Integration):
if re.match(f'^images/{image}$', z.filename):
self.import_recipe_image(recipe, BytesIO(import_zip.read(z.filename)), filetype=get_filetype(z.filename))
recipe.save()
return recipe
def get_file_from_recipe(self, recipe):

View File

@ -7,7 +7,7 @@ from cookbook.helper.image_processing import get_filetype
from cookbook.helper.ingredient_parser import IngredientParser
from cookbook.helper.recipe_url_import import parse_servings, parse_servings_text, parse_time
from cookbook.integration.integration import Integration
from cookbook.models import Ingredient, Recipe, Step
from cookbook.models import Ingredient, Keyword, Recipe, Step
class Mealie(Integration):
@ -56,6 +56,12 @@ class Mealie(Integration):
except Exception:
pass
if 'tags' in recipe_json and len(recipe_json['tags']) > 0:
for k in recipe_json['tags']:
if 'name' in k:
keyword, created = Keyword.objects.get_or_create(name=k['name'].strip(), space=self.request.space)
recipe.keywords.add(keyword)
if 'notes' in recipe_json and len(recipe_json['notes']) > 0:
notes_text = "#### Notes \n\n"
for n in recipe_json['notes']:

View File

@ -57,7 +57,7 @@ class MelaRecipes(Integration):
recipe.source_url = recipe_json['link']
step = Step.objects.create(
instruction=instruction, space=self.request.space,
instruction=instruction, space=self.request.space, show_ingredients_table=self.request.user.userpreference.show_step_ingredients
)
ingredient_parser = IngredientParser(self.request, True)
@ -67,7 +67,7 @@ class MelaRecipes(Integration):
f = ingredient_parser.get_food(food)
u = ingredient_parser.get_unit(unit)
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=amount, note=note, original_text=ingredient, space=self.request.space, show_ingredients_table=self.request.user.userpreference.show_step_ingredients,
food=f, unit=u, amount=amount, note=note, original_text=ingredient, space=self.request.space,
))
recipe.steps.add(step)

View File

@ -39,7 +39,7 @@ class RecipeSage(Integration):
ingredients_added = False
for s in file['recipeInstructions']:
step = Step.objects.create(
instruction=s['text'], space=self.request.space,
instruction=s['text'], space=self.request.space, show_ingredients_table=self.request.user.userpreference.show_step_ingredients,
)
if not ingredients_added:
ingredients_added = True
@ -49,7 +49,7 @@ class RecipeSage(Integration):
f = ingredient_parser.get_food(food)
u = ingredient_parser.get_unit(unit)
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=amount, note=note, original_text=ingredient, space=self.request.space, show_ingredients_table=self.request.user.userpreference.show_step_ingredients,
food=f, unit=u, amount=amount, note=note, original_text=ingredient, space=self.request.space,
))
recipe.steps.add(step)

View File

@ -15,8 +15,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-18 14:28+0200\n"
"PO-Revision-Date: 2023-08-13 08:19+0000\n"
"Last-Translator: Fabian Flodman <fabian@flodman.de>\n"
"PO-Revision-Date: 2023-11-22 18:19+0000\n"
"Last-Translator: Spreez <tandoor@larsdev.de>\n"
"Language-Team: German <http://translate.tandoor.dev/projects/tandoor/"
"recipes-backend/de/>\n"
"Language: de\n"
@ -161,7 +161,7 @@ msgstr "Name"
#: .\cookbook\forms.py:124 .\cookbook\forms.py:315 .\cookbook\views\lists.py:88
msgid "Keywords"
msgstr "Stichwörter"
msgstr "Schlüsselwörter"
#: .\cookbook\forms.py:125
msgid "Preparation time in minutes"

View File

@ -14,8 +14,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-18 14:28+0200\n"
"PO-Revision-Date: 2023-09-02 20:25+0000\n"
"Last-Translator: AJ <alexandre.jacquin@hotmail.fr>\n"
"PO-Revision-Date: 2023-10-12 20:19+0000\n"
"Last-Translator: pharok <pharok@free.fr>\n"
"Language-Team: French <http://translate.tandoor.dev/projects/tandoor/"
"recipes-backend/fr/>\n"
"Language: fr\n"
@ -310,7 +310,7 @@ msgid ""
msgstr ""
"Champs à rechercher en ignorant les accents. La sélection de cette option "
"peut améliorer ou dégrader la qualité de la recherche en fonction de la "
"langue."
"langue"
#: .\cookbook\forms.py:466
msgid ""
@ -326,8 +326,8 @@ msgid ""
"will return 'salad' and 'sandwich')"
msgstr ""
"Champs permettant de rechercher les correspondances de début de mot (par "
"exemple, si vous recherchez « sa », vous obtiendrez « salade » et "
"« sandwich»)."
"exemple, si vous recherchez « sa », vous obtiendrez « salade » et « "
"sandwich»)"
#: .\cookbook\forms.py:470
msgid ""
@ -559,7 +559,7 @@ msgstr "pétrir"
#: .\cookbook\helper\recipe_url_import.py:269
msgid "thicken"
msgstr ""
msgstr "épaissir"
#: .\cookbook\helper\recipe_url_import.py:270
msgid "warm up"
@ -571,11 +571,11 @@ msgstr "fermenter"
#: .\cookbook\helper\recipe_url_import.py:272
msgid "sous-vide"
msgstr ""
msgstr "sous-vide"
#: .\cookbook\helper\shopping_helper.py:157
msgid "You must supply a servings size"
msgstr "Vous devez fournir une information de portion"
msgstr "Vous devez fournir un nombre de portions"
#: .\cookbook\helper\template_helper.py:79
#: .\cookbook\helper\template_helper.py:81
@ -846,7 +846,6 @@ msgid "ID of unit to use for the shopping list"
msgstr "ID de lunité à utiliser pour la liste de courses"
#: .\cookbook\serializer.py:1259
#, fuzzy
msgid "When set to true will delete all food from active shopping lists."
msgstr ""
"Lorsqu'il est défini sur \"true\", tous les aliments des listes de courses "
@ -962,8 +961,9 @@ msgid ""
" ."
msgstr ""
"Confirmez SVP que\n"
" <a href=\"mailto:%(email)s\"></a> est une adresse mail de "
"lutilisateur %(user_display)s."
" <a href=\"mailto:%(email)s\"></a> est une adresse mail de l"
"utilisateur %(user_display)s\n"
" ."
#: .\cookbook\templates\account\email_confirm.html:22
#: .\cookbook\templates\generic\delete_template.html:72
@ -1366,9 +1366,8 @@ msgid "Are you sure you want to delete the %(title)s: <b>%(object)s</b> "
msgstr "Êtes-vous sûr(e) de vouloir supprimer %(title)s : <b>%(object)s</b> "
#: .\cookbook\templates\generic\delete_template.html:22
#, fuzzy
msgid "This cannot be undone!"
msgstr "Cela ne peut pas être annulé !"
msgstr "L'opération ne peut pas être annulée !"
#: .\cookbook\templates\generic\delete_template.html:27
msgid "Protected"
@ -1451,12 +1450,12 @@ msgid ""
" "
msgstr ""
"\n"
" Les champs <b>Mot de passe et Token</b> sont stockés <b>en texte "
"brut</b>dans la base de données.\n"
" Les champs <b>Mot de passe et Token</b> sont stockés <b>en clair</"
"b>dans la base de données.\n"
" C'est nécessaire car ils sont utilisés pour faire des requêtes API, "
"mais cela accroît le risque que quelqu'un les vole.<br/>\n"
" Pour limiter les risques, des tokens ou comptes avec un accès limité "
"devraient être utilisés.\n"
" Pour limiter les risques, il est possible d'utiliser des tokens ou "
"des comptes avec un accès limité.\n"
" "
#: .\cookbook\templates\index.html:29
@ -1766,15 +1765,6 @@ msgstr ""
" "
#: .\cookbook\templates\search_info.html:29
#, fuzzy
#| msgid ""
#| " \n"
#| " Simple searches ignore punctuation and common words such as "
#| "'the', 'a', 'and'. And will treat seperate words as required.\n"
#| " Searching for 'apple or flour' will return any recipe that "
#| "includes both 'apple' and 'flour' anywhere in the fields that have been "
#| "selected for a full text search.\n"
#| " "
msgid ""
" \n"
" Simple searches ignore punctuation and common words such as "
@ -1786,7 +1776,7 @@ msgid ""
msgstr ""
" \n"
" Les recherches simples ignorent la ponctuation et les mots "
"courants tels que \"le\", \"a\", \"et\", et traiteront les mots séparés "
"courants tels que \"le\", \"et\", \"a\", et traiteront les mots séparés "
"comme il se doit.\n"
" Si vous recherchez \"pomme ou farine\", vous obtiendrez toutes "
"les recettes qui contiennent à la fois \"pomme\" et \"farine\" dans les "
@ -2214,7 +2204,7 @@ msgstr "Gérer labonnement"
#: .\cookbook\templates\space_overview.html:13 .\cookbook\views\delete.py:216
msgid "Space"
msgstr "Groupe :"
msgstr "Groupe"
#: .\cookbook\templates\space_overview.html:17
msgid ""
@ -2727,6 +2717,8 @@ msgid ""
"The PDF Exporter is not enabled on this instance as it is still in an "
"experimental state."
msgstr ""
"L'export PDF n'est pas activé sur cette instance car il est toujours au "
"statut expérimental."
#: .\cookbook\views\lists.py:24
msgid "Import Log"

File diff suppressed because it is too large Load Diff

View File

@ -11,8 +11,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-18 14:28+0200\n"
"PO-Revision-Date: 2023-04-12 11:55+0000\n"
"Last-Translator: noxonad <noxonad@proton.me>\n"
"PO-Revision-Date: 2023-10-20 14:05+0000\n"
"Last-Translator: Ferenc <ugyes@freemail.hu>\n"
"Language-Team: Hungarian <http://translate.tandoor.dev/projects/tandoor/"
"recipes-backend/hu/>\n"
"Language: hu_HU\n"
@ -99,7 +99,7 @@ msgstr ""
#: .\cookbook\forms.py:74
msgid "Users with whom newly created meal plans should be shared by default."
msgstr ""
"Azok a felhasználók, akikkel az újonnan létrehozott étkezési terveket "
"Azok a felhasználók, akikkel az újonnan létrehozott menüterveket "
"alapértelmezés szerint meg kell osztani."
#: .\cookbook\forms.py:75
@ -135,8 +135,7 @@ msgstr "A navigációs sávot az oldal tetejére rögzíti."
#: .\cookbook\forms.py:83 .\cookbook\forms.py:512
msgid "Automatically add meal plan ingredients to shopping list."
msgstr ""
"Automatikusan hozzáadja az étkezési terv hozzávalóit a bevásárlólistához."
msgstr "Automatikusan hozzáadja a menüterv hozzávalóit a bevásárlólistához."
#: .\cookbook\forms.py:84
msgid "Exclude ingredients that are on hand."
@ -360,10 +359,8 @@ msgid "Partial Match"
msgstr "Részleges találat"
#: .\cookbook\forms.py:480
#, fuzzy
#| msgid "Starts Wtih"
msgid "Starts With"
msgstr "Kezdődik a következővel"
msgstr "Ezzel kezdődik"
#: .\cookbook\forms.py:481
msgid "Fuzzy Search"
@ -387,16 +384,16 @@ msgid ""
"When adding a meal plan to the shopping list (manually or automatically), "
"include all related recipes."
msgstr ""
"Amikor étkezési tervet ad hozzá a bevásárlólistához (kézzel vagy "
"automatikusan), vegye fel az összes kapcsolódó receptet."
"Amikor menütervet ad hozzá a bevásárlólistához (kézzel vagy automatikusan), "
"vegye fel az összes kapcsolódó receptet."
#: .\cookbook\forms.py:514
msgid ""
"When adding a meal plan to the shopping list (manually or automatically), "
"exclude ingredients that are on hand."
msgstr ""
"Amikor étkezési tervet ad hozzá a bevásárlólistához (kézzel vagy "
"automatikusan), zárja ki a kéznél lévő összetevőket."
"Amikor menütervet ad hozzá a bevásárlólistához (kézzel vagy automatikusan), "
"zárja ki a kéznél lévő összetevőket."
#: .\cookbook\forms.py:515
msgid "Default number of hours to delay a shopping list entry."
@ -436,7 +433,7 @@ msgstr "Automatikus szinkronizálás"
#: .\cookbook\forms.py:526
msgid "Auto Add Meal Plan"
msgstr "Automatikus étkezési terv hozzáadása"
msgstr "Menüterv automatikus hozzáadása"
#: .\cookbook\forms.py:527
msgid "Exclude On Hand"
@ -490,6 +487,7 @@ msgstr "A receptek számának megjelenítése a keresési szűrőkön"
#: .\cookbook\forms.py:559
msgid "Use the plural form for units and food inside this space."
msgstr ""
"Használja a többes számot az egységek és az ételek esetében ezen a helyen."
#: .\cookbook\helper\AllAuthCustomAdapter.py:39
msgid ""
@ -549,29 +547,27 @@ msgstr ""
#: .\cookbook\helper\recipe_url_import.py:268
msgid "knead"
msgstr ""
msgstr "dagasztás"
#: .\cookbook\helper\recipe_url_import.py:269
msgid "thicken"
msgstr ""
msgstr "sűrítés"
#: .\cookbook\helper\recipe_url_import.py:270
msgid "warm up"
msgstr ""
msgstr "melegítés"
#: .\cookbook\helper\recipe_url_import.py:271
msgid "ferment"
msgstr ""
msgstr "fermentálás"
#: .\cookbook\helper\recipe_url_import.py:272
msgid "sous-vide"
msgstr ""
msgstr "sous-vide"
#: .\cookbook\helper\shopping_helper.py:157
#, fuzzy
#| msgid "You must supply a created_by"
msgid "You must supply a servings size"
msgstr "Meg kell adnia egy created_by"
msgstr "Meg kell adnia az adagok nagyságát"
#: .\cookbook\helper\template_helper.py:79
#: .\cookbook\helper\template_helper.py:81
@ -581,11 +577,11 @@ msgstr "Nem sikerült elemezni a sablon kódját."
#: .\cookbook\integration\copymethat.py:44
#: .\cookbook\integration\melarecipes.py:37
msgid "Favorite"
msgstr ""
msgstr "Kedvenc"
#: .\cookbook\integration\copymethat.py:50
msgid "I made this"
msgstr ""
msgstr "Elkészítettem"
#: .\cookbook\integration\integration.py:218
msgid ""
@ -613,10 +609,8 @@ msgid "Imported %s recipes."
msgstr "Importálva %s recept."
#: .\cookbook\integration\openeats.py:26
#, fuzzy
#| msgid "Recipe Home"
msgid "Recipe source:"
msgstr "Recipe Home"
msgstr "Recept forrása:"
#: .\cookbook\integration\paprika.py:49
msgid "Notes"
@ -632,10 +626,8 @@ msgstr "Forrás"
#: .\cookbook\integration\recettetek.py:54
#: .\cookbook\integration\recipekeeper.py:70
#, fuzzy
#| msgid "Import Log"
msgid "Imported from"
msgstr "Import napló"
msgstr "Importálva a"
#: .\cookbook\integration\saffron.py:23
msgid "Servings"
@ -662,12 +654,10 @@ msgid "Rebuilds full text search index on Recipe"
msgstr "Újraépíti a teljes szöveges keresési indexet a Recept oldalon"
#: .\cookbook\management\commands\rebuildindex.py:18
#, fuzzy
#| msgid "Only Postgress databases use full text search, no index to rebuild"
msgid "Only Postgresql databases use full text search, no index to rebuild"
msgstr ""
"Csak a Postgress adatbázisok használnak teljes szöveges keresést, nincs "
"újjáépítenindex"
"Csak a Postgresql adatbázisok használják a teljes szöveges keresést, nem "
"kell indexet újjáépíteni"
#: .\cookbook\management\commands\rebuildindex.py:29
msgid "Recipe index rebuild complete."
@ -711,7 +701,7 @@ msgstr "Keresés"
#: .\cookbook\templates\meal_plan.html:7 .\cookbook\views\delete.py:178
#: .\cookbook\views\edit.py:211 .\cookbook\views\new.py:179
msgid "Meal-Plan"
msgstr "Étkezési terv"
msgstr "Menüterv"
#: .\cookbook\models.py:367 .\cookbook\templates\base.html:118
msgid "Books"
@ -750,16 +740,12 @@ msgid "Keyword Alias"
msgstr "Kulcsszó álneve"
#: .\cookbook\models.py:1232
#, fuzzy
#| msgid "Description"
msgid "Description Replace"
msgstr "Leírás"
msgstr "Leírás csere"
#: .\cookbook\models.py:1232
#, fuzzy
#| msgid "Instructions"
msgid "Instruction Replace"
msgstr "Elkészítés"
msgstr "Leírás cseréje"
#: .\cookbook\models.py:1258 .\cookbook\views\delete.py:36
#: .\cookbook\views\edit.py:251 .\cookbook\views\new.py:48
@ -767,10 +753,8 @@ msgid "Recipe"
msgstr "Recept"
#: .\cookbook\models.py:1259
#, fuzzy
#| msgid "Foods"
msgid "Food"
msgstr "Ételek"
msgstr "Étel"
#: .\cookbook\models.py:1260 .\cookbook\templates\base.html:141
msgid "Keyword"
@ -1176,7 +1160,7 @@ msgstr "Ételek"
#: .\cookbook\templates\base.html:165 .\cookbook\views\lists.py:122
msgid "Units"
msgstr "Egységek"
msgstr "Mértékegységek"
#: .\cookbook\templates\base.html:179 .\cookbook\templates\supermarket.html:7
msgid "Supermarket"
@ -1206,10 +1190,8 @@ msgstr "Előzmények"
#: .\cookbook\templates\base.html:255
#: .\cookbook\templates\ingredient_editor.html:7
#: .\cookbook\templates\ingredient_editor.html:13
#, fuzzy
#| msgid "Ingredients"
msgid "Ingredient Editor"
msgstr "Hozzávalók"
msgstr "Hozzávaló szerkesztő"
#: .\cookbook\templates\base.html:267
#: .\cookbook\templates\export_response.html:7
@ -1252,7 +1234,7 @@ msgstr "Nincs hely"
#: .\cookbook\templates\base.html:323
#: .\cookbook\templates\space_overview.html:6
msgid "Overview"
msgstr ""
msgstr "Áttekintés"
#: .\cookbook\templates\base.html:327
msgid "Markdown Guide"
@ -1276,11 +1258,11 @@ msgstr "Kijelentkezés"
#: .\cookbook\templates\base.html:360
msgid "You are using the free version of Tandor"
msgstr ""
msgstr "Ön a Tandoor ingyenes verzióját használja"
#: .\cookbook\templates\base.html:361
msgid "Upgrade Now"
msgstr ""
msgstr "Frissítés most"
#: .\cookbook\templates\batch\edit.html:6
msgid "Batch edit Category"
@ -1377,7 +1359,7 @@ msgstr "Biztos, hogy törölni akarod a %(title)s: <b>%(object)s</b> "
#: .\cookbook\templates\generic\delete_template.html:22
msgid "This cannot be undone!"
msgstr ""
msgstr "Ezt nem lehet visszafordítani!"
#: .\cookbook\templates\generic\delete_template.html:27
msgid "Protected"
@ -1541,8 +1523,6 @@ msgstr "A sortörés a sor vége után két szóköz hozzáadásával történik
#: .\cookbook\templates\markdown_info.html:57
#: .\cookbook\templates\markdown_info.html:73
#, fuzzy
#| msgid "or by leaving a blank line inbetween."
msgid "or by leaving a blank line in between."
msgstr "vagy egy üres sort hagyva közöttük."
@ -1566,10 +1546,6 @@ msgid "Lists"
msgstr "Listák"
#: .\cookbook\templates\markdown_info.html:85
#, fuzzy
#| msgid ""
#| "Lists can ordered or unorderd. It is <b>important to leave a blank line "
#| "before the list!</b>"
msgid ""
"Lists can ordered or unordered. It is <b>important to leave a blank line "
"before the list!</b>"
@ -1701,11 +1677,11 @@ msgstr ""
#: .\cookbook\templates\openid\login.html:27
#: .\cookbook\templates\socialaccount\authentication_error.html:27
msgid "Back"
msgstr ""
msgstr "Vissza"
#: .\cookbook\templates\profile.html:7
msgid "Profile"
msgstr ""
msgstr "Profil"
#: .\cookbook\templates\recipe_view.html:41
msgid "by"
@ -1718,7 +1694,7 @@ msgstr "Megjegyzés"
#: .\cookbook\templates\rest_framework\api.html:5
msgid "Recipe Home"
msgstr "Recipe Home"
msgstr "Recept főoldal"
#: .\cookbook\templates\search_info.html:5
#: .\cookbook\templates\search_info.html:9
@ -2104,17 +2080,15 @@ msgstr "Szuperfelhasználói fiók létrehozása"
#: .\cookbook\templates\socialaccount\authentication_error.html:7
#: .\cookbook\templates\socialaccount\authentication_error.html:23
#, fuzzy
#| msgid "Social Login"
msgid "Social Network Login Failure"
msgstr "Közösségi bejelentkezés"
msgstr "Közösségi hálózat bejelentkezési hiba"
#: .\cookbook\templates\socialaccount\authentication_error.html:25
#, fuzzy
#| msgid "An error occurred attempting to move "
msgid ""
"An error occurred while attempting to login via your social network account."
msgstr "Hiba történt az áthelyezés közben "
msgstr ""
"Hiba történt, miközben megpróbált bejelentkezni a közösségi hálózati fiókján "
"keresztül."
#: .\cookbook\templates\socialaccount\connections.html:4
#: .\cookbook\templates\socialaccount\connections.html:15
@ -2152,7 +2126,7 @@ msgstr "Regisztráció"
#: .\cookbook\templates\socialaccount\login.html:9
#, python-format
msgid "Connect %(provider)s"
msgstr ""
msgstr "Csatlakozás %(provider)s"
#: .\cookbook\templates\socialaccount\login.html:11
#, python-format
@ -2162,7 +2136,7 @@ msgstr ""
#: .\cookbook\templates\socialaccount\login.html:13
#, python-format
msgid "Sign In Via %(provider)s"
msgstr ""
msgstr "Bejelentkezve %(provider)s keresztül"
#: .\cookbook\templates\socialaccount\login.html:15
#, python-format
@ -2171,7 +2145,7 @@ msgstr ""
#: .\cookbook\templates\socialaccount\login.html:20
msgid "Continue"
msgstr ""
msgstr "Folytatás"
#: .\cookbook\templates\socialaccount\signup.html:10
#, python-format
@ -2210,10 +2184,8 @@ msgid "Manage Subscription"
msgstr "Feliratkozás kezelése"
#: .\cookbook\templates\space_overview.html:13 .\cookbook\views\delete.py:216
#, fuzzy
#| msgid "Space:"
msgid "Space"
msgstr "Tér:"
msgstr "Tér"
#: .\cookbook\templates\space_overview.html:17
msgid ""
@ -2230,13 +2202,11 @@ msgstr "Meghívást kaphatsz egy meglévő térbe, vagy létrehozhatod a sajáto
#: .\cookbook\templates\space_overview.html:53
msgid "Owner"
msgstr ""
msgstr "Tulajdonos"
#: .\cookbook\templates\space_overview.html:57
#, fuzzy
#| msgid "Create Space"
msgid "Leave Space"
msgstr "Tér létrehozása"
msgstr "Kilépés a Térből"
#: .\cookbook\templates\space_overview.html:78
#: .\cookbook\templates\space_overview.html:88
@ -2485,87 +2455,111 @@ msgstr ""
"teljes szöveges keresés is."
#: .\cookbook\views\api.py:733
#, fuzzy
#| msgid "ID of keyword a recipe should have. For multiple repeat parameter."
msgid ""
"ID of keyword a recipe should have. For multiple repeat parameter. "
"Equivalent to keywords_or"
msgstr ""
"A recept kulcsszavának azonosítója. Többszörös ismétlődő paraméter esetén."
"A recept kulcsszavának azonosítója. Többszörös ismétlődő paraméter esetén. "
"Egyenértékű a keywords_or kulcsszavakkal"
#: .\cookbook\views\api.py:736
msgid ""
"Keyword IDs, repeat for multiple. Return recipes with any of the keywords"
msgstr ""
"Kulcsszó azonosítók. Többször is megadható. A megadott kulcsszavak "
"mindegyikéhez tartozó receptek listázza"
#: .\cookbook\views\api.py:739
msgid ""
"Keyword IDs, repeat for multiple. Return recipes with all of the keywords."
msgstr ""
"Kulcsszó azonosítók. Többször is megadható. Az összes megadott kulcsszót "
"tartalmazó receptek listázása."
#: .\cookbook\views\api.py:742
msgid ""
"Keyword IDs, repeat for multiple. Exclude recipes with any of the keywords."
msgstr ""
"Kulcsszó azonosító. Többször is megadható. Kizárja a recepteket a megadott "
"kulcsszavak egyikéből."
#: .\cookbook\views\api.py:745
msgid ""
"Keyword IDs, repeat for multiple. Exclude recipes with all of the keywords."
msgstr ""
"Kulcsszó azonosítók. Többször is megadható. Kizárja az összes megadott "
"kulcsszóval rendelkező receptet."
#: .\cookbook\views\api.py:747
msgid "ID of food a recipe should have. For multiple repeat parameter."
msgstr ""
"Az ételek azonosítója egy receptnek tartalmaznia kell. Többszörös ismétlődő "
"paraméter esetén."
"Annak az összetevőnek az azonosítója, amelynek receptjeit fel kell sorolni. "
"Többször is megadható."
#: .\cookbook\views\api.py:750
msgid "Food IDs, repeat for multiple. Return recipes with any of the foods"
msgstr ""
"Összetevő azonosító. Többször is megadható. Legalább egy összetevő "
"receptjeinek listája"
#: .\cookbook\views\api.py:752
msgid "Food IDs, repeat for multiple. Return recipes with all of the foods."
msgstr ""
"Összetevő azonosító. Többször is megadható. Az összes megadott összetevőt "
"tartalmazó receptek listája."
#: .\cookbook\views\api.py:754
msgid "Food IDs, repeat for multiple. Exclude recipes with any of the foods."
msgstr ""
"Összetevő azonosító. Többször is megadható. Kizárja azokat a recepteket, "
"amelyek a megadott összetevők bármelyikét tartalmazzák."
#: .\cookbook\views\api.py:756
msgid "Food IDs, repeat for multiple. Exclude recipes with all of the foods."
msgstr ""
"Összetevő azonosító. Többször is megadható. Kizárja az összes megadott "
"összetevőt tartalmazó recepteket."
#: .\cookbook\views\api.py:757
msgid "ID of unit a recipe should have."
msgstr "Az egység azonosítója, amellyel a receptnek rendelkeznie kell."
msgstr "A recepthez tartozó mértékegység azonosítója."
#: .\cookbook\views\api.py:759
msgid ""
"Rating a recipe should have or greater. [0 - 5] Negative value filters "
"rating less than."
msgstr ""
"Egy recept minimális értékelése (0-5). A negatív értékek a maximális "
"értékelés szerint szűrnek."
#: .\cookbook\views\api.py:760
msgid "ID of book a recipe should be in. For multiple repeat parameter."
msgstr ""
"A könyv azonosítója, amelyben a receptnek szerepelnie kell. Többszörös "
"ismétlés esetén paraméter."
"A könyv azonosítója, amelyben a recept található. Többször is megadható."
#: .\cookbook\views\api.py:762
msgid "Book IDs, repeat for multiple. Return recipes with any of the books"
msgstr ""
"A könyv azonosítója. Többször is megadható. A megadott könyvek összes "
"receptjének listája"
#: .\cookbook\views\api.py:764
msgid "Book IDs, repeat for multiple. Return recipes with all of the books."
msgstr ""
"A könyv azonosítója. Többször is megadható. Az összes könyvben szereplő "
"recept listája."
#: .\cookbook\views\api.py:766
msgid "Book IDs, repeat for multiple. Exclude recipes with any of the books."
msgstr ""
"A könyv azonosítói. Többször is megadható. Kizárja a megadott könyvek "
"receptjeit."
#: .\cookbook\views\api.py:768
msgid "Book IDs, repeat for multiple. Exclude recipes with all of the books."
msgstr ""
"A könyv azonosítói. Többször is megadható. Kizárja az összes megadott "
"könyvben szereplő receptet."
#: .\cookbook\views\api.py:770
msgid "If only internal recipes should be returned. [true/<b>false</b>]"
@ -2587,36 +2581,50 @@ msgid ""
"Filter recipes cooked X times or more. Negative values returns cooked less "
"than X times"
msgstr ""
"X-szer vagy többször főzött receptek szűrése. A negatív értékek X "
"alkalomnál kevesebbet főzött recepteket jelenítik meg"
#: .\cookbook\views\api.py:778
msgid ""
"Filter recipes last cooked on or after YYYY-MM-DD. Prepending - filters on "
"or before date."
msgstr ""
"Megjeleníti azokat a recepteket, amelyeket a megadott napon (ÉÉÉÉ-HH-NN) "
"vagy később főztek meg utoljára. A - jelölve az adott dátumon vagy azt "
"megelőzően elkészítettek kerülnek be a receptek listájába."
#: .\cookbook\views\api.py:780
msgid ""
"Filter recipes created on or after YYYY-MM-DD. Prepending - filters on or "
"before date."
msgstr ""
"Megjeleníti azokat a recepteket, amelyeket a megadott napon (ÉÉÉÉ-HH-NN) "
"vagy később hoztak létre. A - jelölve az adott dátumon vagy azt megelőzően "
"hozták létre."
#: .\cookbook\views\api.py:782
msgid ""
"Filter recipes updated on or after YYYY-MM-DD. Prepending - filters on or "
"before date."
msgstr ""
"Megjeleníti azokat a recepteket, amelyeket a megadott napon (ÉÉÉÉ-HH-NN) "
"vagy később frissültek. A - jelölve az adott dátumon vagy azt megelőzően "
"frissültek."
#: .\cookbook\views\api.py:784
msgid ""
"Filter recipes lasts viewed on or after YYYY-MM-DD. Prepending - filters on "
"or before date."
msgstr ""
"Megjeleníti azokat a recepteket, amelyeket a megadott napon (ÉÉÉÉ-HH-NN) "
"vagy később néztek meg utoljára. A - jelölve az adott dátumon vagy azt "
"megelőzően néztek meg utoljára."
#: .\cookbook\views\api.py:786
#, fuzzy
#| msgid "If only internal recipes should be returned. [true/<b>false</b>]"
msgid "Filter recipes that can be made with OnHand food. [true/<b>false</b>]"
msgstr "Ha csak a belső recepteket kell visszaadni. [true/<b>false</b>]"
msgstr ""
"Felsorolja azokat a recepteket, amelyeket a rendelkezésre álló összetevőkből "
"el lehet készíteni. [true/<b>false</b>]"
#: .\cookbook\views\api.py:946
msgid ""
@ -2647,7 +2655,7 @@ msgstr "Semmi feladat."
#: .\cookbook\views\api.py:1198
msgid "Invalid Url"
msgstr ""
msgstr "Érvénytelen URL"
#: .\cookbook\views\api.py:1205
msgid "Connection Refused."
@ -2655,13 +2663,11 @@ msgstr "Kapcsolat megtagadva."
#: .\cookbook\views\api.py:1210
msgid "Bad URL Schema."
msgstr ""
msgstr "Rossz URL séma."
#: .\cookbook\views\api.py:1233
#, fuzzy
#| msgid "No useable data could be found."
msgid "No usable data could be found."
msgstr "Nem találtam használható adatokat."
msgstr "Nem sikerült használható adatokat találni."
#: .\cookbook\views\api.py:1326 .\cookbook\views\import_export.py:117
msgid "Importing is not implemented for this provider"
@ -2774,10 +2780,8 @@ msgid "Shopping Categories"
msgstr "Bevásárlási kategóriák"
#: .\cookbook\views\lists.py:187
#, fuzzy
#| msgid "Filter"
msgid "Custom Filters"
msgstr "Szűrő"
msgstr "Egyedi szűrők"
#: .\cookbook\views\lists.py:224
msgid "Steps"

View File

@ -12,8 +12,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-05-18 14:28+0200\n"
"PO-Revision-Date: 2023-01-08 17:55+0000\n"
"Last-Translator: Joachim Weber <joachim.weber@gmx.de>\n"
"PO-Revision-Date: 2023-10-07 18:02+0000\n"
"Last-Translator: Guilherme Roda <glealroda@gmail.com>\n"
"Language-Team: Portuguese <http://translate.tandoor.dev/projects/tandoor/"
"recipes-backend/pt/>\n"
"Language: pt\n"
@ -206,8 +206,8 @@ msgid ""
"Leave empty for dropbox and enter only base url for nextcloud (<code>/remote."
"php/webdav/</code> is added automatically)"
msgstr ""
"Deixar vazio para Dropbox e inserir apenas url base para Nextcloud (<code>/"
"remote.php/webdav/</code>é adicionado automaticamente). "
"Deixar vazio para Dropbox e inserir apenas url base para Nextcloud "
"(<code>/remote.php/webdav/</code>é adicionado automaticamente)"
#: .\cookbook\forms.py:282 .\cookbook\views\edit.py:157
msgid "Storage"
@ -277,16 +277,12 @@ msgstr ""
"ignorados)."
#: .\cookbook\forms.py:461
#, fuzzy
#| msgid ""
#| "Select type method of search. Click <a href=\"/docs/search/\">here</a> "
#| "for full desciption of choices."
msgid ""
"Select type method of search. Click <a href=\"/docs/search/\">here</a> for "
"full description of choices."
msgstr ""
"Selecionar o método de pesquisa. Uma descrição completa das opções pode ser "
"encontrada <a href=\"/docs/search/\">aqui</a>."
"Selecionar o método de pesquisa. Uma descrição completa das opções pode "
"ser encontrada <a href=\"/docs/search/\">aqui</a>."
#: .\cookbook\forms.py:462
msgid ""
@ -329,10 +325,8 @@ msgid ""
msgstr ""
#: .\cookbook\forms.py:476
#, fuzzy
#| msgid "Search"
msgid "Search Method"
msgstr "Procurar"
msgstr "Método de Pesquisa"
#: .\cookbook\forms.py:477
msgid "Fuzzy Lookups"
@ -351,16 +345,12 @@ msgid "Starts With"
msgstr ""
#: .\cookbook\forms.py:481
#, fuzzy
#| msgid "Search"
msgid "Fuzzy Search"
msgstr "Procurar"
msgstr "Pesquisa Fuzzy"
#: .\cookbook\forms.py:482
#, fuzzy
#| msgid "Text"
msgid "Full Text"
msgstr "Texto"
msgstr "Texto Completo"
#: .\cookbook\forms.py:507
msgid ""
@ -405,10 +395,8 @@ msgid "Prefix to add when copying list to the clipboard."
msgstr ""
#: .\cookbook\forms.py:524
#, fuzzy
#| msgid "Shopping"
msgid "Share Shopping List"
msgstr "Compras"
msgstr "Compartilhar Lista de Compras"
#: .\cookbook\forms.py:525
msgid "Autosync"
@ -459,10 +447,8 @@ msgid "Reset all food to inherit the fields configured."
msgstr ""
#: .\cookbook\forms.py:557
#, fuzzy
#| msgid "Food that should be replaced."
msgid "Fields on food that should be inherited by default."
msgstr "Prato a ser alterado."
msgstr "Campos do alimento que devem ser herdados por padrão."
#: .\cookbook\forms.py:558
msgid "Show recipe counts on search filters"
@ -516,10 +502,8 @@ msgid "One of queryset or hash_key must be provided"
msgstr ""
#: .\cookbook\helper\recipe_url_import.py:266
#, fuzzy
#| msgid "Use fractions"
msgid "reverse rotation"
msgstr "Usar frações"
msgstr "rotação reversa"
#: .\cookbook\helper\recipe_url_import.py:267
msgid "careful rotation"
@ -585,16 +569,12 @@ msgid "Imported %s recipes."
msgstr "%s receitas importadas."
#: .\cookbook\integration\openeats.py:26
#, fuzzy
#| msgid "Recipes"
msgid "Recipe source:"
msgstr "Receitas"
msgstr "Fonte da Receita:"
#: .\cookbook\integration\paprika.py:49
#, fuzzy
#| msgid "Note"
msgid "Notes"
msgstr "Nota"
msgstr "Notas"
#: .\cookbook\integration\paprika.py:52
msgid "Nutritional Information"
@ -606,10 +586,8 @@ msgstr ""
#: .\cookbook\integration\recettetek.py:54
#: .\cookbook\integration\recipekeeper.py:70
#, fuzzy
#| msgid "Import"
msgid "Imported from"
msgstr "Importar"
msgstr "Importado de"
#: .\cookbook\integration\saffron.py:23
msgid "Servings"
@ -706,32 +684,24 @@ msgid "Raw"
msgstr ""
#: .\cookbook\models.py:1231
#, fuzzy
#| msgid "New Food"
msgid "Food Alias"
msgstr "Novo Prato"
msgstr "Apelido do Alimento"
#: .\cookbook\models.py:1231
#, fuzzy
#| msgid "Units"
msgid "Unit Alias"
msgstr "Unidades"
msgstr "Apelido da Unidade"
#: .\cookbook\models.py:1231
#, fuzzy
#| msgid "Keywords"
msgid "Keyword Alias"
msgstr "Palavras-chave"
msgstr "Apelido de Palavra-chave"
#: .\cookbook\models.py:1232
msgid "Description Replace"
msgstr ""
#: .\cookbook\models.py:1232
#, fuzzy
#| msgid "Instructions"
msgid "Instruction Replace"
msgstr "Instruções"
msgstr "Substituir Instruções"
#: .\cookbook\models.py:1258 .\cookbook\views\delete.py:36
#: .\cookbook\views\edit.py:251 .\cookbook\views\new.py:48
@ -739,10 +709,8 @@ msgid "Recipe"
msgstr "Receita"
#: .\cookbook\models.py:1259
#, fuzzy
#| msgid "New Food"
msgid "Food"
msgstr "Novo Prato"
msgstr "Alimento"
#: .\cookbook\models.py:1260 .\cookbook\templates\base.html:141
msgid "Keyword"
@ -880,10 +848,8 @@ msgid "Primary"
msgstr ""
#: .\cookbook\templates\account\email.html:47
#, fuzzy
#| msgid "Make Header"
msgid "Make Primary"
msgstr "Adicionar Cabeçalho"
msgstr "Tornar Primeiro"
#: .\cookbook\templates\account\email.html:49
msgid "Re-send Verification"
@ -1004,10 +970,8 @@ msgstr ""
#: .\cookbook\templates\account\password_change.html:12
#: .\cookbook\templates\account\password_set.html:12
#, fuzzy
#| msgid "Settings"
msgid "Password"
msgstr "Definições"
msgstr "Senha"
#: .\cookbook\templates\account\password_change.html:22
msgid "Forgot Password?"
@ -1050,10 +1014,8 @@ msgid ""
msgstr ""
#: .\cookbook\templates\account\password_reset_from_key.html:33
#, fuzzy
#| msgid "Settings"
msgid "change password"
msgstr "Definições"
msgstr "alterar senha"
#: .\cookbook\templates\account\password_reset_from_key.html:36
#: .\cookbook\templates\account\password_reset_from_key_done.html:19
@ -1125,10 +1087,8 @@ msgid "Shopping"
msgstr "Compras"
#: .\cookbook\templates\base.html:153 .\cookbook\views\lists.py:105
#, fuzzy
#| msgid "New Food"
msgid "Foods"
msgstr "Novo Prato"
msgstr "Alimentos"
#: .\cookbook\templates\base.html:165 .\cookbook\views\lists.py:122
msgid "Units"
@ -1139,20 +1099,16 @@ msgid "Supermarket"
msgstr ""
#: .\cookbook\templates\base.html:191
#, fuzzy
#| msgid "Batch edit Category"
msgid "Supermarket Category"
msgstr "Editar Categorias em massa"
msgstr "Categoria de Supermercado"
#: .\cookbook\templates\base.html:203 .\cookbook\views\lists.py:171
msgid "Automations"
msgstr ""
#: .\cookbook\templates\base.html:217 .\cookbook\views\lists.py:207
#, fuzzy
#| msgid "File ID"
msgid "Files"
msgstr "ID the ficheiro"
msgstr "Arquivos"
#: .\cookbook\templates\base.html:229
msgid "Batch Edit"
@ -1166,10 +1122,8 @@ msgstr "Histórico"
#: .\cookbook\templates\base.html:255
#: .\cookbook\templates\ingredient_editor.html:7
#: .\cookbook\templates\ingredient_editor.html:13
#, fuzzy
#| msgid "Ingredients"
msgid "Ingredient Editor"
msgstr "Ingredientes"
msgstr "Editor de Ingrediente"
#: .\cookbook\templates\base.html:267
#: .\cookbook\templates\export_response.html:7
@ -1191,10 +1145,8 @@ msgid "External Recipes"
msgstr ""
#: .\cookbook\templates\base.html:301 .\cookbook\templates\space_manage.html:15
#, fuzzy
#| msgid "Settings"
msgid "Space Settings"
msgstr "Definições"
msgstr "Configurar Espaço"
#: .\cookbook\templates\base.html:306 .\cookbook\templates\system.html:13
msgid "System"
@ -1206,10 +1158,8 @@ msgstr "Administração"
#: .\cookbook\templates\base.html:312
#: .\cookbook\templates\space_overview.html:25
#, fuzzy
#| msgid "Create"
msgid "Your Spaces"
msgstr "Criar"
msgstr "Seus Espaços"
#: .\cookbook\templates\base.html:323
#: .\cookbook\templates\space_overview.html:6
@ -1288,19 +1238,15 @@ msgstr ""
#: .\cookbook\templates\batch\monitor.html:28
msgid "Sync Now!"
msgstr "Sincronizar"
msgstr "Sincronizar Agora!"
#: .\cookbook\templates\batch\monitor.html:29
#, fuzzy
#| msgid "Recipes"
msgid "Show Recipes"
msgstr "Receitas"
msgstr "Mostrar Receitas"
#: .\cookbook\templates\batch\monitor.html:30
#, fuzzy
#| msgid "View Log"
msgid "Show Log"
msgstr "Ver Registro"
msgstr "Mostrar Log"
#: .\cookbook\templates\batch\waiting.html:4
#: .\cookbook\templates\batch\waiting.html:10
@ -1335,7 +1281,7 @@ msgstr "Editar Receita"
#: .\cookbook\templates\generic\delete_template.html:21
#, python-format
msgid "Are you sure you want to delete the %(title)s: <b>%(object)s</b> "
msgstr "Tem a certeza que quer apagar %(title)s: <b>%(object)s</b>"
msgstr "Tem certeza que deseja apagar %(title)s: <b>%(object)s</b> "
#: .\cookbook\templates\generic\delete_template.html:22
msgid "This cannot be undone!"
@ -1369,7 +1315,7 @@ msgstr "Apagar ficheiro original"
#: .\cookbook\templates\generic\list_template.html:6
#: .\cookbook\templates\generic\list_template.html:22
msgid "List"
msgstr "Listar "
msgstr "Listar"
#: .\cookbook\templates\generic\list_template.html:36
msgid "Filter"
@ -1422,13 +1368,13 @@ msgid ""
" "
msgstr ""
"\n"
" Os </b>campos da senha e Token</b> são guardados dentro da base de "
"dados como <b>texto simples.</b>\n"
"Isto é necessário porque eles são usados para fazer pedidos á API, mas "
"também aumenta o risco de\n"
"de alguém os roubar. <br/>\n"
"Para limitar os possíveis danos, tokens e contas com acesso limitado podem "
"ser usadas.\n"
" Os campos de <b>senha e Token</b> são armazenados na base de dados "
"como <b>texto simples</b>.\n"
" Isto é necessário porque eles são usados para fazer pedidos à API, "
"mas também aumenta o risco\n"
" de alguém os roubar.<br/>\n"
" Para limitar os possíveis danos, tokens e contas com acesso limitado "
"podem ser usadas.\n"
" "
#: .\cookbook\templates\index.html:29
@ -1441,7 +1387,7 @@ msgstr "Nova Receita"
#: .\cookbook\templates\index.html:53
msgid "Advanced Search"
msgstr "Procura avançada "
msgstr "Pesquisa avançada"
#: .\cookbook\templates\index.html:57
msgid "Reset Search"
@ -1493,8 +1439,6 @@ msgstr ""
#: .\cookbook\templates\markdown_info.html:57
#: .\cookbook\templates\markdown_info.html:73
#, fuzzy
#| msgid "or by leaving a blank line inbetween."
msgid "or by leaving a blank line in between."
msgstr "ou deixando uma linha em branco no meio."
@ -1518,10 +1462,6 @@ msgid "Lists"
msgstr "Listas"
#: .\cookbook\templates\markdown_info.html:85
#, fuzzy
#| msgid ""
#| "Lists can ordered or unorderd. It is <b>important to leave a blank line "
#| "before the list!</b>"
msgid ""
"Lists can ordered or unordered. It is <b>important to leave a blank line "
"before the list!</b>"
@ -1598,7 +1538,7 @@ msgstr "Cabeçalho"
#: .\cookbook\templates\markdown_info.html:157
#: .\cookbook\templates\markdown_info.html:178
msgid "Cell"
msgstr "Célula "
msgstr "Célula"
#: .\cookbook\templates\no_groups_info.html:5
#: .\cookbook\templates\no_groups_info.html:12
@ -1666,10 +1606,8 @@ msgstr ""
#: .\cookbook\templates\search_info.html:5
#: .\cookbook\templates\search_info.html:9
#: .\cookbook\templates\settings.html:24
#, fuzzy
#| msgid "Search String"
msgid "Search Settings"
msgstr "Procurar"
msgstr "Configurações de Pesquisa"
#: .\cookbook\templates\search_info.html:10
msgid ""
@ -1684,10 +1622,8 @@ msgid ""
msgstr ""
#: .\cookbook\templates\search_info.html:19
#, fuzzy
#| msgid "Search"
msgid "Search Methods"
msgstr "Procurar"
msgstr "Métodos de Pesquisa"
#: .\cookbook\templates\search_info.html:23
msgid ""
@ -1769,10 +1705,8 @@ msgid ""
msgstr ""
#: .\cookbook\templates\search_info.html:69
#, fuzzy
#| msgid "Search Recipe"
msgid "Search Fields"
msgstr "Procure Receita"
msgstr "Campos de Pesquisa"
#: .\cookbook\templates\search_info.html:73
msgid ""
@ -1810,10 +1744,8 @@ msgid ""
msgstr ""
#: .\cookbook\templates\search_info.html:95
#, fuzzy
#| msgid "Search"
msgid "Search Index"
msgstr "Procurar"
msgstr "Índice de Pesquisa"
#: .\cookbook\templates\search_info.html:99
msgid ""
@ -2012,10 +1944,8 @@ msgid "Owner"
msgstr ""
#: .\cookbook\templates\space_overview.html:57
#, fuzzy
#| msgid "Create"
msgid "Leave Space"
msgstr "Criar"
msgstr "Sair do Espaço"
#: .\cookbook\templates\space_overview.html:78
#: .\cookbook\templates\space_overview.html:88
@ -2034,10 +1964,8 @@ msgstr ""
#: .\cookbook\templates\space_overview.html:96
#: .\cookbook\templates\space_overview.html:105
#, fuzzy
#| msgid "Create"
msgid "Create Space"
msgstr "Criar"
msgstr "Criar Espaço"
#: .\cookbook\templates\space_overview.html:99
msgid "Create your own recipe space."
@ -2487,10 +2415,8 @@ msgid "Shopping Categories"
msgstr ""
#: .\cookbook\views\lists.py:187
#, fuzzy
#| msgid "Filter"
msgid "Custom Filters"
msgstr "Filtrar"
msgstr "Filtros Customizados"
#: .\cookbook\views\lists.py:224
msgid "Steps"

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,9 @@
from django.conf import settings
from django.contrib.postgres.search import SearchVector
from django.core.management.base import BaseCommand
from django_scopes import scopes_disabled
from django.utils import translation
from django.utils.translation import gettext_lazy as _
from django_scopes import scopes_disabled
from cookbook.managers import DICTIONARY
from cookbook.models import Recipe, Step
@ -14,7 +14,7 @@ class Command(BaseCommand):
help = _('Rebuilds full text search index on Recipe')
def handle(self, *args, **options):
if settings.DATABASES['default']['ENGINE'] not in ['django.db.backends.postgresql_psycopg2', 'django.db.backends.postgresql']:
if settings.DATABASES['default']['ENGINE'] != 'django.db.backends.postgresql':
self.stdout.write(self.style.WARNING(_('Only Postgresql databases use full text search, no index to rebuild')))
try:

View File

@ -9,7 +9,7 @@ from django.utils import translation
from django_scopes import scopes_disabled
from cookbook.managers import DICTIONARY
from cookbook.models import (Index, PermissionModelMixin, Recipe, Step, SearchFields)
from cookbook.models import Index, PermissionModelMixin, Recipe, SearchFields, Step
def allSearchFields():
@ -21,7 +21,7 @@ def nameSearchField():
def set_default_search_vector(apps, schema_editor):
if settings.DATABASES['default']['ENGINE'] not in ['django.db.backends.postgresql_psycopg2', 'django.db.backends.postgresql']:
if settings.DATABASES['default']['ENGINE'] != 'django.db.backends.postgresql':
return
language = DICTIONARY.get(translation.get_language(), 'simple')
with scopes_disabled():

View File

@ -16,8 +16,7 @@ from cookbook.models import (Food, MealPlan, PropertyType, Recipe, SearchFields,
Step, Unit, UserPreference)
SQLITE = True
if settings.DATABASES['default']['ENGINE'] in ['django.db.backends.postgresql_psycopg2',
'django.db.backends.postgresql']:
if settings.DATABASES['default']['ENGINE'] == 'django.db.backends.postgresql':
SQLITE = False

View File

@ -51,13 +51,6 @@
inkscape:window-y="54"
inkscape:window-maximized="1"
inkscape:current-layer="svg4" />
<rect
style="fill:#f5f5f6;fill-opacity:1;stroke:#d8dde0;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect817"
width="1717.1526"
height="1092.339"
x="-602.57629"
y="-290.16949" />
<path
d="m 235.62851,202.1526 c -3.38906,-0.31992 -6.54323,1.7722 -7.40937,5.07666 l -3.10593,11.84344 c 39.34747,1.15551 65.965,27.49017 67.63017,66.72064 l 11.9414,-3.32129 c 3.29677,-0.91767 5.34573,-4.14216 4.95356,-7.55606 -4.37894,-38.04972 -35.85985,-69.14953 -74.00983,-72.76339 z m -12.26226,23.57322 -20.94044,79.87325 a 3.3995443,3.4118034 0 0 0 4.19438,4.15688 L 286.10367,287.635 c -0.8955,-36.81001 -25.8122,-61.48823 -62.73742,-61.90076 z m 5.78824,63.9529 a 6.7110067,6.7352075 0 1 1 6.711,-6.73521 6.7110067,6.7352075 0 0 1 -6.711,6.73521 z M 239.221,257.68648 a 6.7110067,6.7352075 0 1 1 6.71101,-6.7352 6.7110067,6.7352075 0 0 1 -6.71101,6.7352 z m 21.81077,21.88943 a 6.7110067,6.7352075 0 1 1 6.71101,-6.73521 6.7110067,6.7352075 0 0 1 -6.71101,6.73521 z"
id="path2"

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@ -4634,13 +4634,15 @@ input[type=button].btn-block, input[type=reset].btn-block, input[type=submit].bt
.card-img-top {
width: 100%;
border-top-left-radius: calc(.25rem - 1px);
border-top-right-radius: calc(.25rem - 1px)
border-top-right-radius: calc(.25rem - 1px);
background-color: #f5f5f6;
}
.card-img-bottom {
width: 100%;
border-bottom-right-radius: calc(.25rem - 1px);
border-bottom-left-radius: calc(.25rem - 1px)
border-bottom-left-radius: calc(.25rem - 1px);
background-color: #f5f5f6;
}
.card-deck {
@ -10479,4 +10481,4 @@ textarea, input:not([type="submit"]):not([class="multiselect__input"]):not([clas
.ghost {
opacity: 0.5 !important;
background: #b98766 !important;
}
}

View File

@ -241,7 +241,7 @@ a {
}
a:hover {
color: #000;
color: #FFF;
text-decoration: underline
}
@ -1813,8 +1813,8 @@ pre code {
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #495057;
background-color: #fff;
color: #fff;
background-color: rgb(20,20,20);
background-clip: padding-box;
border: 1px solid #ced4da;
border-radius: .25rem;
@ -1835,8 +1835,8 @@ pre code {
}
.form-control:focus {
color: #495057;
background-color: #fff;
color: #fff;
background-color: rgb(20,20,20);
border-color: #0014b7;
outline: 0;
box-shadow: 0 0 0 .2rem rgba(0, 6, 55, .25)
@ -1868,8 +1868,8 @@ pre code {
}
.form-control:disabled, .form-control[readonly] {
background-color: #e9ecef;
opacity: 1
background-color: #5D5D5D;
opacity: 1;
}
select.form-control:focus::-ms-value {
@ -2504,7 +2504,7 @@ a.btn.disabled, fieldset:disabled a.btn {
.btn-light {
color: #212529;
background-color: #cfd5cd;
background-color: #535353;
border-color: #cfd5cd
}
@ -2570,7 +2570,7 @@ a.btn.disabled, fieldset:disabled a.btn {
}
.btn-outline-primary.focus, .btn-outline-primary:focus {
box-shadow: 0 0 0 .2rem rgba(0, 6, 55, .5)
box-shadow: 0 0 0 .2rem var(--primary)
}
.btn-outline-primary.disabled, .btn-outline-primary:disabled {
@ -2776,7 +2776,7 @@ a.btn.disabled, fieldset:disabled a.btn {
}
.btn-link:hover {
color: #000;
color: #fff;
text-decoration: underline
}
@ -3379,15 +3379,15 @@ input[type=button].btn-block, input[type=reset].btn-block, input[type=submit].bt
}
.dropdown-item:focus, .dropdown-item:hover {
color: #16181b;
color: #fff !important;
text-decoration: none;
background-color: #f8f9fa
background-color: #4E4E4E !important;
}
.dropdown-item.active, .dropdown-item:active {
color: #fff;
text-decoration: none;
background-color: #b98766
background-color: #b98766 !important;
}
.dropdown-item.disabled, .dropdown-item:disabled {
@ -3603,10 +3603,10 @@ input[type=button].btn-block, input[type=reset].btn-block, input[type=submit].bt
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #495057;
color: #fff;
text-align: center;
white-space: nowrap;
background-color: #e9ecef;
background-color: #3F3F3F;
border: 1px solid #ced4da;
border-radius: .25rem
}
@ -3676,7 +3676,7 @@ input[type=button].btn-block, input[type=reset].btn-block, input[type=submit].bt
}
.custom-control-input:focus ~ .custom-control-label:before {
box-shadow: 0 0 0 .2rem rgba(0, 6, 55, .25)
box-shadow: 0 0 0 .2rem var(--primary)
}
.custom-control-input:focus:not(:checked) ~ .custom-control-label:before {
@ -3927,10 +3927,11 @@ input[type=button].btn-block, input[type=reset].btn-block, input[type=submit].bt
width: 100%;
height: 1.4rem;
padding: 0;
background-color: transparent;
background-color: transparent !important;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none
appearance: none;
border: transparent !important;
}
.custom-range:focus {
@ -3938,15 +3939,15 @@ input[type=button].btn-block, input[type=reset].btn-block, input[type=submit].bt
}
.custom-range:focus::-webkit-slider-thumb {
box-shadow: 0 0 0 1px #fff, 0 0 0 .2rem rgba(0, 6, 55, .25)
box-shadow: 0 0 0 1px #000, 0 0 0 .2rem rgba(0, 6, 55, .25)
}
.custom-range:focus::-moz-range-thumb {
box-shadow: 0 0 0 1px #fff, 0 0 0 .2rem rgba(0, 6, 55, .25)
box-shadow: 0 0 0 1px #000, 0 0 0 .2rem rgba(0, 6, 55, .25)
}
.custom-range:focus::-ms-thumb {
box-shadow: 0 0 0 1px #fff, 0 0 0 .2rem rgba(0, 6, 55, .25)
box-shadow: 0 0 0 1px #000, 0 0 0 .2rem rgba(0, 6, 55, .25)
}
.custom-range::-moz-focus-outer {
@ -3974,7 +3975,7 @@ input[type=button].btn-block, input[type=reset].btn-block, input[type=submit].bt
}
.custom-range::-webkit-slider-thumb:active {
background-color: #0019ea
background-color: var(--secondary)
}
.custom-range::-webkit-slider-runnable-track {
@ -3982,7 +3983,7 @@ input[type=button].btn-block, input[type=reset].btn-block, input[type=submit].bt
height: .5rem;
color: transparent;
cursor: pointer;
background-color: #dee2e6;
background-color: #000;
border-color: transparent;
border-radius: 1rem
}
@ -4007,7 +4008,7 @@ input[type=button].btn-block, input[type=reset].btn-block, input[type=submit].bt
}
.custom-range::-moz-range-thumb:active {
background-color: #0019ea
background-color: var(--secondary)
}
.custom-range::-moz-range-track {
@ -4015,9 +4016,9 @@ input[type=button].btn-block, input[type=reset].btn-block, input[type=submit].bt
height: .5rem;
color: transparent;
cursor: pointer;
background-color: #dee2e6;
background-color: rgb(20,20,20);
border-color: transparent;
border-radius: 1rem
border-radius: 1rem;
}
.custom-range::-ms-thumb {
@ -4042,7 +4043,7 @@ input[type=button].btn-block, input[type=reset].btn-block, input[type=submit].bt
}
.custom-range::-ms-thumb:active {
background-color: #0019ea
background-color: var(--secondary)
}
.custom-range::-ms-track {
@ -4144,8 +4145,8 @@ input[type=button].btn-block, input[type=reset].btn-block, input[type=submit].bt
}
.nav-tabs .nav-item.show .nav-link, .nav-tabs .nav-link.active {
color: #495057;
background-color: #fff;
color: #fff;
background-color: #303030;
border-color: #dee2e6 #dee2e6 #fff
}
@ -4500,19 +4501,19 @@ input[type=button].btn-block, input[type=reset].btn-block, input[type=submit].bt
}
.navbar-dark .navbar-nav .nav-link {
color: hsla(0, 0%, 18%, .5)
color: hsla(0, 0%, 5%, .5)
}
.navbar-dark .navbar-nav .nav-link:focus, .navbar-dark .navbar-nav .nav-link:hover {
color: hsla(0, 0%, 18%, .75)
color: hsla(0, 0%, 5%, .75)
}
.navbar-dark .navbar-nav .nav-link.disabled {
color: hsla(0, 0%, 18%, .25)
color: hsla(0, 0%, 5%, .25)
}
.navbar-dark .navbar-nav .active > .nav-link, .navbar-dark .navbar-nav .nav-link.active, .navbar-dark .navbar-nav .nav-link.show, .navbar-dark .navbar-nav .show > .nav-link {
color: #2e2e2e
color: #1E1E1E
}
.navbar-dark .navbar-toggler {
@ -4636,13 +4637,15 @@ input[type=button].btn-block, input[type=reset].btn-block, input[type=submit].bt
.card-img-top {
width: 100%;
border-top-left-radius: calc(.25rem - 1px);
border-top-right-radius: calc(.25rem - 1px)
border-top-right-radius: calc(.25rem - 1px);
background-color: #141414;
}
.card-img-bottom {
width: 100%;
border-bottom-right-radius: calc(.25rem - 1px);
border-bottom-left-radius: calc(.25rem - 1px)
border-bottom-left-radius: calc(.25rem - 1px);
background-color: #141414;
}
.card-deck {
@ -4776,7 +4779,7 @@ input[type=button].btn-block, input[type=reset].btn-block, input[type=submit].bt
padding: .75rem 1rem;
margin-bottom: 1rem;
list-style: none;
background-color: #e9ecef;
background-color: #303030;
border-radius: .25rem
}
@ -4846,16 +4849,16 @@ input[type=button].btn-block, input[type=reset].btn-block, input[type=submit].bt
.page-item.active .page-link {
z-index: 1;
color: #fff;
background-color: #b98766;
background-color: var(--primary);
border-color: #b98766
}
.page-item.disabled .page-link {
color: #6c757d;
color: #fff;
pointer-events: none;
cursor: auto;
background-color: #fff;
border-color: #dee2e6
background-color: #303030;
border-color: #303030
}
.pagination-lg .page-link {
@ -5053,7 +5056,7 @@ a.badge-dark.focus, a.badge-dark:focus {
.jumbotron {
padding: 2rem 1rem;
margin-bottom: 2rem;
background-color: #f7f7f7;
background-color: #3F3F3F;
border-radius: .3rem
}
@ -5313,7 +5316,7 @@ a.badge-dark.focus, a.badge-dark:focus {
display: block;
padding: .75rem 1.25rem;
margin-bottom: -1px;
background-color: #fff;
background-color: #3F3F3F;
border: 1px solid rgba(0, 0, 0, .125)
}
@ -5611,13 +5614,13 @@ a.badge-dark.focus, a.badge-dark:focus {
font-size: 1.5rem;
font-weight: 700;
line-height: 1;
color: #000;
color: #fff;
text-shadow: 0 1px 0 #fff;
opacity: .5
}
.close:hover {
color: #000;
color: #fff;
text-decoration: none
}
@ -6164,7 +6167,8 @@ a.close.disabled {
.popover-body {
padding: .5rem .75rem;
color: #212529
color: #fff;
background-color: #242424;
}
.carousel {
@ -10408,11 +10412,11 @@ footer a:hover {
.form-control {
font-size: 14px;
background-color: rgb(20 20 20);
background-color: rgb(20,20,20);
}
.form-control, .form-control:focus {
background-color: #f6f7fb;
background-color: rgb(20,20,20);
border: none
}
@ -10456,24 +10460,63 @@ footer a:hover {
background-color: transparent !important;
}
textarea, input:not([type="submit"]):not([class="multiselect__input"]):not([class="select2-search__field"]):not([class="vue-treeselect__input"]), select {
textarea, input:not([type="submit"]):not([class="multiselect__input"]):not([class="select2-search__field"]):not([class="vue-treeselect__input"]):not([class="custom-range"]), select {S
background-color: rgb(20 20 20);
color: #fff;
border-radius: .25rem !important;
border: 1px solid #ced4da !important;
}
.multiselect__tag, .multiselect__option--highlight, .multiselect__option--highlight:after, .vue-treeselect__multi-value-item {
background-color: #cfd5cd !important;
color: #212529 !important;
.b-calendar-grid-help,
.v-note-op,
.v-note-show,
.v-show-content,
.op-icon.dropdown-item,
.popup-dropdown,
.content-input-wrapper,
.auto-textarea-input,
.bottom-action-bar,
.custom-select,
.multiselect__tag,
.multiselect__tags,
.multiselect__input,
.multiselect__option--highlight,
.multiselect__option--highlight:after,
.multiselect__option--selected,
.multiselect__option--selected:after,
.vue-treeselect__multi-value-item {
background-color: rgb(20, 20, 20) !important;
color: #fff !important;
}
.op-icon:hover, .op-icon.selected {
background-color: #303030 !important;
color: #fff !important;
}
.multiselect__tag-icon:hover, .multiselect__tag-icon:focus {
background-color: #a7240e !important;
background-color: rgb(20, 20, 20) !important;
}
.multiselect__tag-icon:after, .vue-treeselect__icon vue-treeselect__value-remove, .vue-treeselect__value-remove {
color: #212529 !important
color: rgb(20, 20, 20) !important
}
.multiselect__input::placeholder {
color: #fff !important;
}
.multiselect__single, .multiselect__content-wrapper {
background-color: rgb(20,20,20) !important;
}
.multiselect__content-wrapper {
color: #7A7A7A;
}
.custom-select {
/* add the arrow on the right */
background: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23ffffff' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/8px 10px;
}
.form-control-search {
@ -10483,4 +10526,39 @@ textarea, input:not([type="submit"]):not([class="multiselect__input"]):not([clas
.ghost {
opacity: 0.5 !important;
background: #b98766 !important;
}
}
/* Meal-Plan */
.cv-header {
background-color: #303030 !important;
}
.cv-weeknumber, .cv-header-day {
background-color: #303030 !important;
color: #fff !important;
}
.cv-day.past {
background-color: #333333 !important;
}
.cv-day.today {
background-color: var(--primary) !important;
}
.cv-day.outsideOfMonth {
background-color: #0d0d0d !important;
}
.cv-item {
background-color: #4E4E4E !important;
}
.b-sidebar-body {
background-color: #303030 !important;
}
.bottom-nav-link {
color: #898989;
}

View File

@ -136,10 +136,10 @@
<i class="fas fa-fw fa-toolbox fa-lg"></i>
</a>
<div class="dropdown-menu dropdown-menu-center dropdown-menu-center-large">
<div class="row m-0 mt-2 mt-md-0">
<div class="row m-0 mt-1 mt-md-0">
<div class="col-4">
<a href="{% url 'list_keyword' %}" class="p-0 p-md-1">
<div class="card p-0 no-gutters border-0">
<div class="card p-1 pt-2 no-gutters border-0">
<div class="card-body text-center p-0 no-gutters">
<i class="fas fa-tags fa-2x"></i>
</div>
@ -151,7 +151,7 @@
</div>
<div class="col-4">
<a href="{% url 'list_food' %}" class="p-0 p-md-1">
<div class="card p-0 no-gutters border-0">
<div class="card p-1 pt-2 no-gutters border-0">
<div class="card-body text-center p-0 no-gutters">
<i class="fas fa-leaf fa-2x"></i>
</div>
@ -163,7 +163,7 @@
</div>
<div class="col-4">
<a href="{% url 'list_unit' %}" class="p-0 p-md-1">
<div class="card p-0 no-gutters border-0">
<div class="card p-1 pt-2 no-gutters border-0">
<div class="card-body text-center p-0 no-gutters">
<i class="fas fa-balance-scale fa-2x"></i>
</div>
@ -174,10 +174,10 @@
</a>
</div>
</div>
<div class="row m-0 mt-2 mt-md-0">
<div class="row m-0 mt-1 mt-md-0">
<div class="col-4">
<a href="{% url 'list_supermarket' %}" class="p-0 p-md-1">
<div class="card p-0 no-gutters border-0">
<div class="card p-1 pt-2 no-gutters border-0">
<div class="card-body text-center p-0 no-gutters">
<i class="fas fa-store-alt fa-2x"></i>
</div>
@ -189,7 +189,7 @@
</div>
<div class="col-4">
<a href="{% url 'list_supermarket_category' %}" class="p-0 p-md-1">
<div class="card p-0 no-gutters border-0">
<div class="card p-1 pt-2 no-gutters border-0">
<div class="card-body text-center p-0 no-gutters">
<i class="fas fa-cubes fa-2x"></i>
</div>
@ -201,7 +201,7 @@
</div>
<div class="col-4">
<a href="{% url 'list_automation' %}" class="p-0 p-md-1">
<div class="card p-0 no-gutters border-0">
<div class="card p-1 pt-2 no-gutters border-0">
<div class="card-body text-center p-0 no-gutters">
<i class="fas fa-robot fa-2x"></i>
</div>
@ -212,10 +212,10 @@
</a>
</div>
</div>
<div class="row m-0 mt-2 mt-md-0">
<div class="row m-0 mt-1 mt-md-0">
<div class="col-4">
<a href="{% url 'list_user_file' %}" class="p-0 p-md-1">
<div class="card p-0 no-gutters border-0">
<div class="card p-1 pt-2 no-gutters border-0">
<div class="card-body text-center p-0 no-gutters">
<i class="fas fa-file fa-2x"></i>
</div>
@ -227,7 +227,7 @@
</div>
<div class="col-4">
<a href="{% url 'data_batch_edit' %}" class="p-0 p-md-1">
<div class="card p-0 no-gutters border-0">
<div class="card p-1 pt-2 no-gutters border-0">
<div class="card-body text-center p-0 no-gutters">
<i class="fas fa-edit fa-2x"></i>
</div>
@ -239,7 +239,7 @@
</div>
<div class="col-4">
<a href="{% url 'view_history' %}" class="p-0 p-md-1">
<div class="card p-0 no-gutters border-0">
<div class="card p-1 pt-2 no-gutters border-0">
<div class="card-body text-center p-0 no-gutters">
<i class="fas fa-history fa-2x"></i>
</div>
@ -250,10 +250,10 @@
</a>
</div>
</div>
<div class="row m-0 mt-2 mt-md-0">
<div class="row m-0 mt-1 mt-md-0">
<div class="col-4">
<a href="{% url 'view_ingredient_editor' %}" class="p-0 p-md-1">
<div class="card p-0 no-gutters border-0">
<div class="card p-1 pt-2 no-gutters border-0">
<div class="card-body text-center p-0 no-gutters">
<i class="fas fa-th-list fa-2x"></i>
</div>
@ -265,7 +265,7 @@
</div>
<div class="col-4">
<a href="{% url 'view_export' %}" class="p-0 p-md-1">
<div class="card p-0 no-gutters border-0">
<div class="card p-1 pt-2 no-gutters border-0">
<div class="card-body text-center p-0 no-gutters">
<i class="fas fa-file-export fa-2x"></i>
</div>
@ -277,7 +277,7 @@
</div>
<div class="col-4">
<a href="{% url 'list_property_type' %}" class="p-0 p-md-1">
<div class="card p-0 no-gutters border-0">
<div class="card p-1 pt-2 no-gutters border-0">
<div class="card-body text-center p-0 no-gutters">
<i class="fas fa-database fa-2x"></i>
</div>
@ -288,10 +288,10 @@
</a>
</div>
</div>
<div class="row m-0 mt-2 mt-md-0">
<div class="row m-0 mt-1 mt-md-0">
<div class="col-4">
<a href="{% url 'list_unit_conversion' %}" class="p-0 p-md-1">
<div class="card p-0 no-gutters border-0">
<div class="card p-1 pt-2 no-gutters border-0">
<div class="card-body text-center p-0 no-gutters">
<i class="fas fa-exchange-alt fa-2x"></i>
</div>

View File

@ -4,17 +4,14 @@
{% load i18n %}
{% load l10n %}
{% block title %}{% trans 'Export Recipes' %}{% endblock %}
{% block content %}
<div id="app">
<export-view></export-view>
</div>
{% endblock %}
{% block script %}
{% if debug %}
<script src="{% url 'js_reverse' %}"></script>
@ -23,11 +20,13 @@
{% endif %}
<script type="application/javascript">
window.EXPORT_ID = {{pk}};
{% if pk %}
window.EXPORT_ID = {{ pk }}
{% else %}
window.EXPORT_ID = null
{% endif %}
window.CUSTOM_LOCALE = '{{ request.LANGUAGE_CODE }}';
</script>
{% render_bundle 'export_view' %}
{% endblock %}

View File

@ -7,15 +7,12 @@
{% block title %}{% trans 'Export' %}{% endblock %}
{% block content %}
<div id="app">
<export-response-view></export-response-view>
</div>
{% endblock %}
{% block script %}
{% if debug %}
<script src="{% url 'js_reverse' %}"></script>
@ -24,7 +21,11 @@
{% endif %}
<script type="application/javascript">
window.EXPORT_ID = {{pk}};
{% if pk %}
window.EXPORT_ID = {{ pk }}
{% else %}
window.EXPORT_ID = null
{% endif %}
window.CUSTOM_LOCALE = '{{ request.LANGUAGE_CODE }}'
</script>

View File

@ -10,8 +10,7 @@ from django_scopes import scopes_disabled
from cookbook.models import Food, Ingredient
from cookbook.tests.factories import MealPlanFactory, RecipeFactory, StepFactory, UserFactory
if settings.DATABASES['default']['ENGINE'] in ['django.db.backends.postgresql_psycopg2',
'django.db.backends.postgresql']:
if settings.DATABASES['default']['ENGINE'] == 'django.db.backends.postgresql':
from django.db.backends.postgresql.features import DatabaseFeatures
DatabaseFeatures.can_defer_constraint_checks = False

View File

@ -23,8 +23,7 @@ from cookbook.tests.factories import (CookLogFactory, FoodFactory, IngredientFac
# TODO makenow with above filters
# TODO test search food/keywords including/excluding children
LIST_URL = 'api:recipe-list'
sqlite = settings.DATABASES['default']['ENGINE'] not in [
'django.db.backends.postgresql_psycopg2', 'django.db.backends.postgresql']
sqlite = settings.DATABASES['default']['ENGINE'] != 'django.db.backends.postgresql'
@pytest.fixture

View File

@ -186,8 +186,7 @@ class FuzzyFilterMixin(ViewSetMixin, ExtendedRecipeMixin):
fuzzy = True
if query is not None and query not in ["''", '']:
if fuzzy and (settings.DATABASES['default']['ENGINE'] in ['django.db.backends.postgresql_psycopg2',
'django.db.backends.postgresql']):
if fuzzy and (settings.DATABASES['default']['ENGINE'] == 'django.db.backends.postgresql'):
if self.request.user.is_authenticated and any(
[self.model.__name__.lower() in x for x in self.request.user.searchpreference.unaccent.values_list('field', flat=True)]):
self.queryset = self.queryset.annotate(trigram=TrigramSimilarity('name__unaccent', query))

View File

@ -16,12 +16,13 @@ from django.utils import timezone
from django.utils.translation import gettext as _
from django_scopes import scopes_disabled
from cookbook.forms import (CommentForm, Recipe, SearchPreferenceForm, SpaceCreateForm, SpaceJoinForm, User,
UserCreateForm, UserPreference)
from cookbook.helper.permission_helper import group_required, has_group_permission, share_link_valid, switch_user_active_space
from cookbook.models import (Comment, CookLog, InviteLink, SearchFields, SearchPreference, ShareLink,
Space, ViewLog, UserSpace)
from cookbook.tables import (CookLogTable, ViewLogTable)
from cookbook.forms import (CommentForm, Recipe, SearchPreferenceForm, SpaceCreateForm,
SpaceJoinForm, User, UserCreateForm, UserPreference)
from cookbook.helper.permission_helper import (group_required, has_group_permission,
share_link_valid, switch_user_active_space)
from cookbook.models import (Comment, CookLog, InviteLink, SearchFields, SearchPreference,
ShareLink, Space, UserSpace, ViewLog)
from cookbook.tables import CookLogTable, ViewLogTable
from cookbook.version_info import VERSION_INFO
from recipes.settings import PLUGINS
@ -219,10 +220,10 @@ def shopping_settings(request):
if not sp:
sp = SearchPreferenceForm(user=request.user)
fields_searched = (
len(search_form.cleaned_data['icontains'])
+ len(search_form.cleaned_data['istartswith'])
+ len(search_form.cleaned_data['trigram'])
+ len(search_form.cleaned_data['fulltext'])
len(search_form.cleaned_data['icontains'])
+ len(search_form.cleaned_data['istartswith'])
+ len(search_form.cleaned_data['trigram'])
+ len(search_form.cleaned_data['fulltext'])
)
if search_form.cleaned_data['preset'] == 'fuzzy':
sp.search = SearchPreference.SIMPLE
@ -278,8 +279,7 @@ def shopping_settings(request):
search_form = SearchPreferenceForm()
# these fields require postgresql - just disable them if postgresql isn't available
if not settings.DATABASES['default']['ENGINE'] in ['django.db.backends.postgresql_psycopg2',
'django.db.backends.postgresql']:
if not settings.DATABASES['default']['ENGINE'] == 'django.db.backends.postgresql':
sp.search = SearchPreference.SIMPLE
sp.trigram.clear()
sp.fulltext.clear()
@ -309,10 +309,7 @@ def system(request):
if not request.user.is_superuser:
return HttpResponseRedirect(reverse('index'))
postgres = False if (
settings.DATABASES['default']['ENGINE'] == 'django.db.backends.postgresql_psycopg2' # noqa: E501
or settings.DATABASES['default']['ENGINE'] == 'django.db.backends.postgresql' # noqa: E501
) else True
postgres = settings.DATABASES['default']['ENGINE'] == 'django.db.backends.postgresql'
secret_key = False if os.getenv('SECRET_KEY') else True

View File

@ -14,7 +14,7 @@ They basically explain everything in their documentation, but the following is a
A new account does not have any permission but it is still **not recommended** to give public access to
your installation.
Choose a provider from the [list](https://django-allauth.readthedocs.io/en/latest/providers.html) and install it using the environment variable `SOCIAL_PROVIDERS` as shown
Choose a provider from the [list](https://docs.allauth.org/en/latest/socialaccount/providers/index.html) and install it using the environment variable `SOCIAL_PROVIDERS` as shown
in the example below.
When at least one social provider is set up, the social login sign in buttons should appear on the login page.

View File

@ -17,7 +17,7 @@ spec:
template:
metadata:
annotations:
backup.velero.io/backup-volumes: media,static
backup.velero.io/backup-volumes: media,static
labels:
app: recipes
tier: frontend
@ -35,7 +35,7 @@ spec:
name: recipes
key: secret-key
- name: DB_ENGINE
value: django.db.backends.postgresql_psycopg2
value: django.db.backends.postgresql
- name: POSTGRES_HOST
value: recipes-postgresql
- name: POSTGRES_PORT
@ -162,7 +162,7 @@ spec:
- name: GUNICORN_MEDIA
value: "0"
- name: DB_ENGINE
value: django.db.backends.postgresql_psycopg2
value: django.db.backends.postgresql
- name: POSTGRES_HOST
value: recipes-postgresql
- name: POSTGRES_PORT

View File

@ -350,7 +350,7 @@ WSGI_APPLICATION = 'recipes.wsgi.application'
# Load settings from env files
if os.getenv('DATABASE_URL'):
match = re.match(
r'(?P<schema>\w+):\/\/(?P<user>[\w\d_-]+)(:(?P<password>[^@]+))?@(?P<host>[^:/]+)(:(?P<port>\d+))?(\/(?P<database>[\w\d\/\._-]+))?',
r'(?P<schema>\w+):\/\/(?:(?P<user>[\w\d_-]+)(?::(?P<password>[^@]+))?@)?(?P<host>[^:/]+)(?:(?P<port>\d+))?(?:/(?P<database>[\w\d/._-]+))?',
os.getenv('DATABASE_URL')
)
settings = match.groupdict()
@ -358,6 +358,8 @@ if os.getenv('DATABASE_URL'):
if schema.startswith('postgres'):
engine = 'django.db.backends.postgresql'
elif schema == 'sqlite':
if not os.path.exists(db_path := os.path.dirname(settings['database'])):
os.makedirs(db_path)
engine = 'django.db.backends.sqlite3'
else:
raise Exception("Unsupported database schema: '%s'" % schema)

View File

@ -1,4 +1,4 @@
Django==4.2.5
Django==4.2.7
cryptography===41.0.4
django-annoying==0.10.6
django-autocomplete-light==3.9.4
@ -13,14 +13,14 @@ django-debug-toolbar==3.8.1
bleach==6.0.0
gunicorn==20.1.0
lxml==4.9.3
Markdown==3.4.3
Markdown==3.5.1
Pillow==10.0.1
psycopg2-binary==2.9.5
python-dotenv==1.0.0
requests==2.31.0
six==1.16.0
webdavclient3==3.14.6
whitenoise==6.5.0
whitenoise==6.6.0
icalendar==5.0.7
pyyaml==6.0.1
uritemplate==4.1.1
@ -30,14 +30,14 @@ Jinja2==3.1.2
django-webpack-loader==1.8.1
git+https://github.com/BITSOLVER/django-js-reverse@071e304fd600107bc64bbde6f2491f1fe049ec82
django-allauth==0.54.0
recipe-scrapers==14.36.1
recipe-scrapers==14.52.0
django-scopes==2.0.0
pytest==7.3.1
pytest-django==4.5.2
pytest-django==4.6.0
django-treebeard==4.7
django-cors-headers==4.2.0
django-storages==1.13.2
boto3==1.28.57
boto3==1.28.75
django-prometheus==2.2.0
django-hCaptcha==0.2.0
python-ldap==3.4.3

View File

@ -12,7 +12,7 @@
"@popperjs/core": "^2.11.7",
"@vue/cli": "^5.0.8",
"@vue/composition-api": "1.7.1",
"axios": "^1.2.0",
"axios": "^1.6.0",
"babel": "^6.23.0",
"babel-core": "^6.26.3",
"babel-loader": "^9.1.0",

View File

@ -56,7 +56,7 @@
</div>
<bottom-navigation-bar>
<bottom-navigation-bar active-view="view_books">
<template #custom_create_functions>
<div class="dropdown-divider" ></div>
<h6 class="dropdown-header">{{ $t('Books')}}</h6>

View File

@ -19,10 +19,11 @@
{{ $t("If download did not start automatically: ") }}
<template v-if="export_info.expired">
<a disabled
><del>{{ $t("Download") }}</del></a
>
<template v-if="false">
<!--template v-if="export_info.expired" temporary disabling this to get around immediate expiration-->
<a disabled ref="downloadAnchor">
<del>{{ $t("Download") }}</del>
</a>
({{ $t("Expired") }})
</template>
<a v-else :href="`${resolveDjangoUrl('view_export_file', export_id)}`" ref="downloadAnchor">{{ $t("Download") }}</a>
@ -53,20 +54,20 @@
</template>
<script>
import Vue from "vue"
import { BootstrapVue } from "bootstrap-vue"
import Vue from "vue"
import "bootstrap-vue/dist/bootstrap-vue.css"
import { ResolveUrlMixin, makeToast, ToastMixin } from "@/utils/utils"
import { ResolveUrlMixin, ToastMixin, makeToast } from "@/utils/utils"
import LoadingSpinner from "@/components/LoadingSpinner"
import { ApiApiFactory } from "@/utils/openapi/api.ts"
import VueSanitize from "vue-sanitize"
Vue.use(BootstrapVue)
import VueSanitize from "vue-sanitize";
Vue.use(VueSanitize);
Vue.use(VueSanitize)
export default {
name: "ExportResponseView",
mixins: [ResolveUrlMixin, ToastMixin],

View File

@ -45,14 +45,12 @@
</template>
<script>
import Vue from "vue"
import { BootstrapVue } from "bootstrap-vue"
import Vue from "vue"
import "bootstrap-vue/dist/bootstrap-vue.css"
import LoadingSpinner from "@/components/LoadingSpinner"
import { StandardToasts, makeToast, resolveDjangoUrl, ApiMixin } from "@/utils/utils"
import { ApiMixin, StandardToasts, makeToast, resolveDjangoUrl } from "@/utils/utils"
// import Multiselect from "vue-multiselect"
import GenericMultiselect from "@/components/GenericMultiselect"
import { ApiApiFactory } from "@/utils/openapi/api.ts"
@ -108,7 +106,7 @@ export default {
let formData = new FormData()
formData.append("type", this.recipe_app)
formData.append("all", this.export_all)
formData.append("custom_filter", this.filter?.id ?? null)
formData.append("custom_filter", this.filter?.id ?? "")
for (var i = 0; i < this.recipe_list.length; i++) {
formData.append("recipes", this.recipe_list[i].id)

View File

@ -267,10 +267,10 @@
<b-tab v-bind:title="$t('App')">
<b-container>
<h4>{{ $t('Select_App_To_Import') }}:</h4>
<b-row class="mt-4">
<b-col cols="4" offset="0" offset-md="4" v-for="i in INTEGRATIONS_TD" :value="i.id"
<b-row align-h="center" class="mt-4">
<b-col cols="12" md="6" v-for="i in INTEGRATIONS_TD" :value="i.id"
v-bind:key="i.id">
<b-list-group style="max-width: 300px;">
<b-list-group>
<b-list-group-item class="d-flex align-items-center" v-hover
style="cursor: pointer"
v-bind:class="{ 'bg-success': recipe_app === i.id }"
@ -297,9 +297,9 @@
</b-col>
</b-row>
<b-row class="mt-4">
<b-col cols="3" v-for="i in INTEGRATIONS_WO" :value="i.id" v-bind:key="i.id"
<b-col cols="12" md="6" lg="4" xl="3" v-for="i in INTEGRATIONS_WO" :value="i.id" v-bind:key="i.id"
class="mt-1">
<b-list-group style="max-width: 300px;">
<b-list-group>
<b-list-group-item class="d-flex align-items-center" v-hover
style="cursor: pointer"
v-bind:class="{ 'bg-success': recipe_app === i.id }"

View File

@ -230,7 +230,7 @@
:current_period="current_period"
></auto-meal-plan-modal>
<bottom-navigation-bar :create_links="[{label:$t('Export_To_ICal'), url: iCalUrl, icon:'fas fa-download'}]">
<bottom-navigation-bar active-view="view_plan" :create_links="[{label:$t('Export_To_ICal'), url: iCalUrl, icon:'fas fa-download'}]">
<template #custom_create_functions>
<h6 class="dropdown-header">{{ $t('Meal_Plan') }}</h6>
<a class="dropdown-item" @click="createEntryClick(new Date())"><i
@ -796,4 +796,8 @@ having to override as much.
font-size: 18px !important;
}
}
.b-calendar-grid-help {
padding: 0.25rem;
}
</style>

View File

@ -425,6 +425,7 @@
v-if="!ingredient.is_header">
<input
class="form-control"
style="height: 100%;"
v-model="ingredient.amount"
type="number"
step="any"
@ -506,6 +507,7 @@
<input
class="form-control"
maxlength="256"
style="height: 100%;"
v-model="ingredient.note"
v-bind:placeholder="$t('Note')"
v-on:keydown.tab="
@ -689,7 +691,7 @@
<br/>
<!-- bottom buttons save/close/view -->
<div class="row fixed-bottom p-2 b-2 border-top text-center" style="background: white"
<div class="row fixed-bottom p-2 b-2 border-top text-center bg-white bottom-action-bar"
v-if="recipe !== undefined">
<div class="col-3 col-md-6 mb-1 mb-md-0 pr-2 pl-2">
<a :href="resolveDjangoUrl('delete_recipe', recipe.id)"
@ -1084,12 +1086,17 @@ export default {
this.$nextTick(() => document.getElementById(`amount_${this.recipe.steps.indexOf(step)}_${step.ingredients.length - 1}`).select())
},
removeIngredient: function (step, ingredient) {
if (confirm(this.$t("confirm_delete", {object: this.$t("Ingredient")}))) {
let message = this.$t("confirm_delete", {object: this.$t("Ingredient")})
if (ingredient.food?.name) {
message = this.$t("delete_confirmation", {source: `"${ingredient.food.name}"`})
}
if (confirm(message)) {
step.ingredients = step.ingredients.filter((item) => item !== ingredient)
}
},
removeStep: function (step) {
if (confirm(this.$t("confirm_delete", {object: this.$t("Step")}))) {
const step_index = this.recipe.steps.indexOf(step)
if (confirm(this.$t("delete_confirmation", {source: `${this.$t("Step")} "${step.name || step_index}"`}))) {
this.recipe.steps = this.recipe.steps.filter((item) => item !== step)
}
},

View File

@ -846,7 +846,7 @@
<meal-plan-edit-modal :entry="mealplan_entry_edit" :create_date="mealplan_default_date"></meal-plan-edit-modal>
<bottom-navigation-bar></bottom-navigation-bar>
<bottom-navigation-bar active-view="view_search"></bottom-navigation-bar>
</div>
</div>
</div>

View File

@ -2,7 +2,7 @@
<div id="app" v-if="recipe_id !== undefined">
<recipe-view-component :recipe_id="recipe_id"></recipe-view-component>
<bottom-navigation-bar></bottom-navigation-bar>
<bottom-navigation-bar active-view="view_search"></bottom-navigation-bar>
</div>
</template>

View File

@ -566,7 +566,7 @@
<shopping-modal v-if="new_recipe.id" :recipe="new_recipe" :servings="parseInt(add_recipe_servings)"
:modal_id="new_recipe.id" @finish="finishShopping" :list_recipe="new_recipe.list_recipe"/>
<bottom-navigation-bar>
<bottom-navigation-bar active-view="view_shopping">
<template #custom_create_functions>
<div class="dropdown-divider"></div>

View File

@ -1,17 +1,17 @@
<template>
<!-- bottom button nav -->
<div class="fixed-bottom p-1 pt-2 pl-2 pr-2 border-top text-center d-lg-none d-print-none" style="background: white">
<div class="fixed-bottom p-1 pt-2 pl-2 pr-2 border-top text-center d-lg-none d-print-none bottom-action-bar bg-white">
<div class="d-flex flex-row justify-content-around">
<div class="flex-column" v-if="show_button_1">
<slot name="button_1">
<a class="nav-link bottom-nav-link p-0" v-bind:href="resolveDjangoUrl('view_search')">
<a class="nav-link bottom-nav-link p-0" v-bind:class="{'bottom-nav-link-active': activeView === 'view_search' }" v-bind:href="resolveDjangoUrl('view_search')">
<i class="fas fa-fw fa-book " style="font-size: 1.5em"></i><br/><small>{{ $t('Recipes') }}</small></a> <!-- TODO localize -->
</slot>
</div>
<div class="flex-column" v-if="show_button_2">
<slot name="button_2">
<a class="nav-link bottom-nav-link p-0" v-bind:href="resolveDjangoUrl('view_plan')">
<a class="nav-link bottom-nav-link p-0" v-bind:class="{'bottom-nav-link-active': activeView === 'view_plan' }" v-bind:href="resolveDjangoUrl('view_plan')">
<i class="fas fa-calendar-alt" style="font-size: 1.5em"></i><br/><small>{{ $t('Meal_Plan') }}</small></a>
</slot>
@ -20,7 +20,7 @@
<slot name="button_create">
<div class="dropup">
<a class="nav-link bottom-nav-link p-0" href="#" id="navbarDropdownMenuLink" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false"><i class="fas fa-plus-circle fa-2x bottom-nav-link"></i>
aria-haspopup="true" aria-expanded="false"><i class="fas fa-plus-circle fa-2x bottom-nav-link bottom-nav-link-active"></i>
</a>
<div class="dropdown-menu center-dropup" aria-labelledby="navbarDropdownMenuLink">
@ -46,14 +46,14 @@
</div>
<div class="flex-column" v-if="show_button_3">
<slot name="button_3">
<a class="nav-link bottom-nav-link p-0" v-bind:href="resolveDjangoUrl('view_shopping')">
<a class="nav-link bottom-nav-link p-0" v-bind:class="{'bottom-nav-link-active': activeView === 'view_shopping' }" v-bind:href="resolveDjangoUrl('view_shopping')">
<i class="fas fa-shopping-cart" style="font-size: 1.5em"></i><br/><small>{{ $t('Shopping_list') }}</small></a>
</slot>
</div>
<div class="flex-column">
<slot name="button_4" v-if="show_button_4">
<a class="nav-link bottom-nav-link p-0" v-bind:href="resolveDjangoUrl('view_books')">
<a class="nav-link bottom-nav-link p-0" v-bind:class="{'bottom-nav-link-active': activeView === 'view_books' }" v-bind:href="resolveDjangoUrl('view_books')">
<i class="fas fa-book-open" style="font-size: 1.5em"></i><br/><small>{{ $t('Books') }}</small></a> <!-- TODO localize -->
</slot>
@ -80,6 +80,7 @@ export default {
show_button_3: {type: Boolean, default: true},
show_button_4: {type: Boolean, default: true},
show_button_create: {type: Boolean, default: true},
activeView: {type: String, default: ""}
}
}
</script>
@ -90,6 +91,10 @@ export default {
color: #666666
}
.bottom-nav-link-active {
color: var(--primary);
}
.center-dropup {
right: auto;
left: 50%;

View File

@ -1,5 +1,5 @@
<template>
<div>
<div v-if="hasRecipeProperties || hasFoodProperties">
<div class="card p-4 pb-2" v-if="recipe !== undefined && property_list.length > 0">

View File

@ -11,9 +11,9 @@
</h6>
<b-card-text>
<b-skeleton height="12px" :width="(45 + Math.random() * 45).toString() + '%'"></b-skeleton>
<b-skeleton height="12px" :width="(20 + Math.random() * 25).toString() + '%'"></b-skeleton>
<b-skeleton height="12px" :width="(30 + Math.random() * 35).toString() + '%'"></b-skeleton>
<b-skeleton height="12px" width="65%"></b-skeleton>
<b-skeleton height="12px" width="45%"></b-skeleton>
<b-skeleton height="12px" width="55%"></b-skeleton>
</b-card-text>
</b-card-body>
</b-card>
@ -234,7 +234,7 @@ export default {
.content .content-overlay {
background: rgba(0, 0, 0, 0.7);
position: absolute;
height: 99%;
height: 100%;
width: 100%;
left: 0;
top: 0;

View File

@ -292,7 +292,7 @@
"remember_search": "Suchbegriff merken",
"remember_hours": "Stunden zu erinnern",
"tree_select": "Baum-Auswahl verwenden",
"CountMore": "...+{count} mehr",
"CountMore": "...+{count} weitere",
"ignore_shopping_help": "Zutat nie auf Einkaufsliste setzen (z.B. Wasser)",
"OnHand_help": "Lebensmittel ist \"Vorrätig\" und wird nicht automatisch zur Einkaufsliste hinzugefügt. Der Status \"Vorrätig\" wird mit den Benutzern der Einkaufsliste geteilt.",
"shopping_category_help": "Einkaufsläden können nach Produktkategorie entsprechend der Anordnung der Regalreihen sortiert werden.",
@ -460,7 +460,7 @@
"Comments_setting": "Kommentare anzeigen",
"reset_food_inheritance": "Vererbung zurücksetzen",
"food_inherit_info": "Datenfelder des Lebensmittels, die standardmäßig vererbt werden sollen.",
"Are_You_Sure": "Sind Sie sicher?",
"Are_You_Sure": "Bist du sicher?",
"Plural": "Plural",
"plural_short": "Plural",
"Use_Plural_Unit_Always": "Pluralform der Maßeinheit immer verwenden",
@ -502,13 +502,38 @@
"Conversion": "Umrechnung",
"Properties": "Eigenschaften",
"total": "gesamt",
"Open_Data_Slug": "Open Data Slug",
"Open_Data_Slug": "Open Data Schlagwort",
"g": "Gramm [g] (metrisch, Gewicht)",
"kg": "Kilogramm [kg] (metrisch, Gewicht)",
"ounce": "Unze [oz] (Gewicht)",
"pound": "Pfund (Gewicht)",
"ml": "Milliliter",
"l": "Liter",
"tbsp": "Esslöffel",
"tsp": "Teelöffel"
"ml": "Milliliter [ml] (metrisch, Volumen)",
"l": "Liter [l] (metrisch, Volumen)",
"tbsp": "Esslöffel [tbsp] (US, Volumen)",
"tsp": "Teelöffel [tsp] (US, Volumen)",
"StartDate": "Startdatum",
"EndDate": "Enddatum",
"Alignment": "Ausrichtung",
"show_step_ingredients_setting": "Zutaten neben den Rezeptschritten anzeigen",
"show_step_ingredients_setting_help": "Fügen Sie neben den Rezeptschritten eine Zutatentabelle hinzu. Gilt zum Zeitpunkt der Erstellung. Kann in der Ansicht „Rezept bearbeiten“ überschrieben werden.",
"show_step_ingredients": "Schritt \"Zutaten\" anzeigen",
"hide_step_ingredients": "Schritt Zutaten ausblenden",
"OrderInformation": "Die Objekte sind von kleinen zu großen Zahlen geordnet.",
"show_ingredients_table": "Zeige eine Tabelle der Zutaten neben der Schrittbeschreibung",
"make_now_count": "Öfters fehlende Zutaten",
"fluid_ounce": "\"Fluid Ounce\" [fl oz] (US, Volumen)",
"pint": "\"Pint\" [pt] (US, Volumen)",
"gallon": "\"Gallone\" [gal] (US, Volumen)",
"imperial_fluid_ounce": "Engl. \"Fluid Ounce\" [imp fl oz] (UK, Volumen)",
"imperial_pint": "Engl. \"Pint\" [imp pt] (UK, Volumen)",
"imperial_gallon": "Engl. Gallone [imp gal] (UK, Volumen)",
"imperial_tbsp": "Engl. Eßlöffel [imp tbsp] (UK, Volumen)",
"imperial_tsp": "Engl. Teelöffel [imp tsp] (UK, Volumen)",
"Name_Replace": "Name Ersetzen",
"Food_Replace": "Essen Ersetzen",
"Transpose_Words": "Wörter Umwandeln",
"Never_Unit": "Nie Einheit",
"Unit_Replace": "Einheit Ersetzen",
"quart": "\"Quart\" [qt] (US, Volumen)",
"imperial_quart": "Engl. \"Quart\" [imp qt] (UK, Volumen)"
}

View File

@ -30,7 +30,7 @@
"Reset_Search": "Réinitialiser la recherche",
"Recently_Viewed": "Vu récemment",
"Load_More": "Charger plus",
"Keywords": "mots-clés",
"Keywords": "Mots-clés",
"Books": "Livres",
"Proteins": "Protéines",
"Fats": "Matières grasses",
@ -62,7 +62,7 @@
"Size": "Taille",
"Files": "Fichiers",
"File": "Fichier",
"Edit": "modifier",
"Edit": "Modifier",
"Cancel": "Annuler",
"Delete": "Supprimer",
"Open": "Ouvrir",
@ -119,7 +119,7 @@
"merge_selection": "Remplacer toutes les occurrences de {source} par {type}.",
"move_title": "Déplacer {type}",
"del_confirmation_tree": "Êtes-vous sûr de vouloir supprimer {source} et tous ses enfants ?",
"warning_feature_beta": "Cette fonctionnalité est actuellement en état BETA (de test). Veuillez vous attendre à des bogues et éventuellement à des modifications majeures à l'avenir (pouvant entraîner une perte de données liées à la fonctionnalité) lors de l'utilisation de cette fonctionnalité.",
"warning_feature_beta": "Cette fonctionnalité est actuellement en phase BETA (de test). Veuillez vous attendre à des bogues et éventuellement à des modifications majeures à l'avenir (pouvant entraîner une perte de données liées à la fonctionnalité) lors de l'utilisation de cette fonctionnalité.",
"confirm_delete": "Voulez-vous vraiment supprimer {objet} ?",
"Note": "Notes",
"Add_Step": "Ajouter une étape",
@ -381,7 +381,7 @@
"sql_debug": "Débogage de la base SQL",
"last_cooked": "Dernière recette utilisée",
"times_cooked": "Nombre de fois cuisiné",
"show_sortby": "Trier par",
"show_sortby": "Montrer \"Trier par\"",
"Hours": "Heures",
"Days": "Jours",
"Second": "Seconde",
@ -462,5 +462,30 @@
"Instruction_Replace": "Instruction Remplacer",
"recipe_property_info": "Vous pouvez également ajouter des propriétés aux aliments pour les calculer automatiquement en fonction de votre recette !",
"per_serving": "par portions",
"open_data_help_text": "Le projet «Tandoor Open Data» est une base de données fournie par la communauté. Ce champ est rempli automatiquement lors de l'importation des données et permet les mises à jour dans le futur."
"open_data_help_text": "Le projet «Tandoor Open Data» est une base de données fournie par la communauté. Ce champ est rempli automatiquement lors de l'importation des données et permet les mises à jour dans le futur.",
"Welcome": "Bienvenue",
"show_step_ingredients_setting": "Afficher les ingrédients à côté des étapes de la recette",
"show_step_ingredients_setting_help": "Ajouter la table des ingrédients à côté des étapes de la recette. S'applique lors de la création. Peut être modifié dans la vue d'édition de la recette.",
"Alignment": "Alignement",
"base_unit": "Unités de base",
"Datatype": "Type de donnée",
"Update_Existing_Data": "Mettre à jour les données existantes",
"Use_Metric": "Utiliser les unités métriques",
"Learn_More": "Apprenez-en plus",
"converted_unit": "Unités Converties",
"converted_amount": "Quantité Convertie",
"StartDate": "Date de début",
"EndDate": "Date de fin",
"Property": "Propriété",
"Conversion": "Conversion",
"Properties": "Propriétés",
"OrderInformation": "Les objects sont classés du plus petit au plus grand.",
"tree_select": "Utiliser l'arbre de sélection",
"UnpinnedConfirmation": "{recipe} a été désépinglée.",
"Open_Data_Slug": "Open Data Slug",
"Number of Objects": "Nombre d'objets",
"PinnedConfirmation": "{recipe} a été épinglée.",
"Back": "Retour",
"Open_Data_Import": "Import Open Data",
"Data_Import_Info": "Améliorez votre groupe en important des données partagées par la communauté afin d'améliorer vos collections de recettes : listes d'aliments, unités et plus encore."
}

View File

@ -246,32 +246,32 @@
"New_Meal_Type": "סוג אוכל חדש",
"Use_Fractions": "השתמש בשברים",
"Use_Fractions_Help": "המר אוטומטית מדצמילי לשברים כאשר צופים במתכון.",
"AddFoodToShopping": "",
"RemoveFoodFromShopping": "",
"DeleteShoppingConfirm": "",
"IgnoredFood": "",
"Add_Servings_to_Shopping": "",
"Week_Numbers": "",
"Show_Week_Numbers": "",
"Export_As_ICal": "",
"Export_To_ICal": "",
"Cannot_Add_Notes_To_Shopping": "",
"Added_To_Shopping_List": "",
"Shopping_List_Empty": "",
"Next_Period": "",
"Previous_Period": "",
"Current_Period": "",
"Next_Day": "",
"Previous_Day": "",
"AddFoodToShopping": "הוסף {מזון} לרשימת הקניות",
"RemoveFoodFromShopping": "הסר {מזון} מרשימת הקניות",
"DeleteShoppingConfirm": "האם אתה בטוח שברצונך להסיר את כל ה{מזון} מרשימת הקניות ?",
"IgnoredFood": "{מזון} להתעלם בקנייה.",
"Add_Servings_to_Shopping": "הוסף{מנה}מנות לקנייה",
"Week_Numbers": "מספר השבוע",
"Show_Week_Numbers": "להציג מספר שבועות?",
"Export_As_ICal": "ייצוא תקופה נוכחית בפורמט iCal",
"Export_To_ICal": "ייצא .ics",
"Cannot_Add_Notes_To_Shopping": "לא ניתן להוסיף הערות לרשימת הקניות",
"Added_To_Shopping_List": "נוסף לרשימת הקניות",
"Shopping_List_Empty": "רשימת הקניות שלך ריקה כרגע. ניתן להוסיף פריטים דרך תפריט תוכנית אוכל (מקש ימני על הכרטיס או מקש שמאלי על האייקון בתפריט)",
"Next_Period": "התקופה הבאה",
"Previous_Period": "תקופה קודמת",
"Current_Period": "תקופה נוכחית",
"Next_Day": "היום הבא",
"Previous_Day": "יום קודם",
"Inherit": "",
"InheritFields": "",
"FoodInherit": "",
"ShowUncategorizedFood": "",
"GroupBy": "",
"Language": "",
"Theme": "",
"SupermarketCategoriesOnly": "",
"MoveCategory": "",
"ShowUncategorizedFood": "הצג לא מוגדר",
"GroupBy": "אסוף לפי",
"Language": "שפה",
"Theme": "נושא",
"SupermarketCategoriesOnly": "קטגוריות סופרמרקט בלבד",
"MoveCategory": "העבר אל: ",
"CountMore": "...+{count} עוד",
"IgnoreThis": "לעולם אל תוסיף {food} לרשימת הקניות",
"DelayFor": "השהה ל {hours} שעות",
@ -316,7 +316,7 @@
"filter_to_supermarket_desc": "בברירת המחדל, רשימת קניות כוללה רק את הקטגוריות לסופרמקט הנבחר.",
"CategoryName": "שם קטגוריה",
"SupermarketName": "שם סופרמרקט",
"CategoryInstruction": "",
"CategoryInstruction": "גרור קטגוריות לשינוי הסדר שבו הן מופיעות ברשימת הקניות.",
"shopping_recent_days_desc": "",
"shopping_recent_days": "",
"download_pdf": "",
@ -517,5 +517,9 @@
"Use_Plural_Food_Simple": "השתמש בצורת רבים למאכלים בצורה דינאמית",
"plural_usage_info": "תמיד השתמש בצורת רבים למאכלים במרחב זה.",
"Create Recipe": "צור מתכון",
"Import Recipe": "ייבא מתכון"
"Import Recipe": "ייבא מתכון",
"Alignment": "יישור",
"StartDate": "תאריך התחלה",
"EndDate": "תאריך סיום",
"OrderInformation": "המוצרים מוצגים מהמספר הקטן לגדול."
}

View File

@ -1,355 +1,355 @@
{
"warning_feature_beta": "",
"err_fetching_resource": "",
"err_creating_resource": "",
"err_updating_resource": "",
"err_deleting_resource": "",
"err_deleting_protected_resource": "",
"err_moving_resource": "",
"err_merging_resource": "",
"success_fetching_resource": "",
"warning_feature_beta": "Ez a funkció jelenleg BETA (tesztelési) állapotban van. Ha mégis ezt a funkciót használja, számítson hibákra és esetlegesen alapvető változásokra a jövőben (esetleg a funkcióval kapcsolatos adatok elvesztésére).",
"err_fetching_resource": "Hiba történt az erőforrás lekérdezésében!",
"err_creating_resource": "Hiba történt az erőforrás létrehozásakor!",
"err_updating_resource": "Hiba történt egy erőforrás frissítése során!",
"err_deleting_resource": "Hiba történt egy erőforrás törlésénél!",
"err_deleting_protected_resource": "A törölni kívánt objektum még mindig használatban van, és nem törölhető.",
"err_moving_resource": "Hiba történt egy erőforrás áthelyezésekor!",
"err_merging_resource": "Hiba történt egy erőforrás egyesítésekor!",
"success_fetching_resource": "Sikeresen lekérdezett erőforrást!",
"success_creating_resource": "",
"success_updating_resource": "",
"success_deleting_resource": "",
"success_moving_resource": "",
"success_merging_resource": "",
"file_upload_disabled": "",
"step_time_minutes": "",
"confirm_delete": "",
"import_running": "",
"all_fields_optional": "",
"convert_internal": "",
"show_only_internal": "",
"show_split_screen": "",
"Log_Recipe_Cooking": "",
"External_Recipe_Image": "",
"Add_to_Shopping": "",
"Add_to_Plan": "",
"Step_start_time": "",
"Sort_by_new": "",
"Table_of_Contents": "",
"Recipes_per_page": "",
"Show_as_header": "",
"Hide_as_header": "",
"Add_nutrition_recipe": "",
"Remove_nutrition_recipe": "",
"Copy_template_reference": "",
"Save_and_View": "",
"Manage_Books": "",
"Meal_Plan": "",
"Select_Book": "",
"Select_File": "",
"Recipe_Image": "",
"Import_finished": "",
"View_Recipes": "",
"Log_Cooking": "",
"New_Recipe": "",
"Url_Import": "",
"Reset_Search": "",
"Recently_Viewed": "",
"Load_More": "",
"New_Keyword": "",
"Delete_Keyword": "",
"Edit_Keyword": "",
"Edit_Recipe": "",
"Move_Keyword": "",
"Merge_Keyword": "",
"Hide_Keywords": "",
"Hide_Recipes": "",
"Move_Up": "",
"Move_Down": "",
"Step_Name": "",
"Step_Type": "",
"Make_Header": "",
"file_upload_disabled": "A fájlfeltöltés nincs engedélyezve az Ön teréhez.",
"step_time_minutes": "Lépés időtartama percben",
"confirm_delete": "Biztos, hogy törölni akarja ezt a {object}?",
"import_running": "Az importálás folyamatban, kérjük várjon!",
"all_fields_optional": "Minden mező opcionális és üresen hagyható.",
"convert_internal": "Átalakítás belső receptté",
"show_only_internal": "Csak a belső receptek megjelenítése",
"show_split_screen": "Osztott nézet",
"Log_Recipe_Cooking": "Főzés naplózása",
"External_Recipe_Image": "Külső receptkép",
"Add_to_Shopping": "Hozzáadás a bevásárlólistához",
"Add_to_Plan": "Hozzáadás az étkezési tervhez",
"Step_start_time": "A lépés kezdési ideje",
"Sort_by_new": "Rendezés legújabbak szerint",
"Table_of_Contents": "Tartalomjegyzék",
"Recipes_per_page": "Receptek oldalanként",
"Show_as_header": "Megjelenítés címként",
"Hide_as_header": "Fejlécként elrejtve",
"Add_nutrition_recipe": "Tápértékek hozzáadása a recepthez",
"Remove_nutrition_recipe": "Tápértékadatok törlése a receptből",
"Copy_template_reference": "Sablonhivatkozás másolása",
"Save_and_View": "Mentés & megtekintés",
"Manage_Books": "Könyvek kezelése",
"Meal_Plan": "Menüterv",
"Select_Book": "Könyv kiválasztása",
"Select_File": "Fájl kiválasztása",
"Recipe_Image": "Receptkép",
"Import_finished": "Import befejezve",
"View_Recipes": "Receptek megjelenítése",
"Log_Cooking": "Főzés naplózása",
"New_Recipe": "Új recept",
"Url_Import": "URL import",
"Reset_Search": "Keresés alaphelyzetbe állítása",
"Recently_Viewed": "Nemrég megtekintett",
"Load_More": "Továbbiak betöltése",
"New_Keyword": "Új kulcsszó",
"Delete_Keyword": "Kulcsszó törlése",
"Edit_Keyword": "Kulcsszó szerkesztése",
"Edit_Recipe": "Recept szerkesztése",
"Move_Keyword": "Kulcsszó mozgatása",
"Merge_Keyword": "Kulcsszó összevonása",
"Hide_Keywords": "Kulcsszó elrejtése",
"Hide_Recipes": "Receptek elrejtése",
"Move_Up": "Felfelé mozgatás",
"Move_Down": "Lefelé mozgatás",
"Step_Name": "Lépés neve",
"Step_Type": "Lépés típusa",
"Make_Header": "Átalakítás címsorra",
"Make_Ingredient": "",
"Enable_Amount": "",
"Disable_Amount": "",
"Ingredient Editor": "",
"Add_Step": "",
"Keywords": "",
"Books": "",
"Proteins": "",
"Fats": "",
"Carbohydrates": "",
"Calories": "",
"Energy": "",
"Nutrition": "",
"Date": "",
"Share": "",
"Automation": "",
"Parameter": "",
"Export": "",
"Copy": "",
"Rating": "",
"Close": "",
"Cancel": "",
"Link": "",
"Add": "",
"New": "",
"Note": "",
"Success": "",
"Failure": "",
"Protected": "",
"Ingredients": "",
"Supermarket": "",
"Categories": "",
"Category": "",
"Selected": "",
"min": "",
"Servings": "",
"Waiting": "",
"Preparation": "",
"External": "",
"Size": "",
"Files": "",
"File": "",
"Edit": "",
"Image": "",
"Delete": "",
"Open": "",
"Ok": "",
"Save": "",
"Step": "",
"Search": "",
"Import": "",
"Print": "",
"Settings": "",
"or": "",
"and": "",
"Information": "",
"Download": "",
"Create": "",
"Search Settings": "",
"View": "",
"Recipes": "",
"Move": "",
"Merge": "",
"Parent": "",
"delete_confirmation": "",
"Enable_Amount": "Összeg bekapcsolása",
"Disable_Amount": "Összeg kikapcsolása",
"Ingredient Editor": "Hozzávalók szerkesztője",
"Add_Step": "Lépés hozzáadása",
"Keywords": "Kulcsszavak",
"Books": "Könyvek",
"Proteins": "Fehérjék",
"Fats": "Zsírok",
"Carbohydrates": "Szénhidrátok",
"Calories": "Kalóriák",
"Energy": "Energia",
"Nutrition": "Tápérték",
"Date": "Dátum",
"Share": "Megosztás",
"Automation": "Automatizálás",
"Parameter": "Paraméter",
"Export": "Export",
"Copy": "Másolás",
"Rating": "Értékelés",
"Close": "Bezár",
"Cancel": "Mégsem",
"Link": "Link",
"Add": "Hozzáadás",
"New": "Új",
"Note": "Megjegyzés",
"Success": "Sikeres",
"Failure": "Hiba",
"Protected": "Védett",
"Ingredients": "Hozzávalók",
"Supermarket": "Szupermarket",
"Categories": "Kategóriák",
"Category": "Kategória",
"Selected": "Kiválasztott",
"min": "min",
"Servings": "Adag",
"Waiting": "Várakozás",
"Preparation": "Előkészítés",
"External": "Külső",
"Size": "Méret",
"Files": "Fájlok",
"File": "Fájl",
"Edit": "Szerkesztés",
"Image": "Kép",
"Delete": "Törlés",
"Open": "Megnyitás",
"Ok": "Ok",
"Save": "Mentés",
"Step": "Lépés",
"Search": "Keresés",
"Import": "Import",
"Print": "Nyomtatás",
"Settings": "Beállítások",
"or": "vagy",
"and": "és",
"Information": "Információ",
"Download": "Letöltés",
"Create": "Létrehozás",
"Search Settings": "Keresési beállítások",
"View": "Nézet",
"Recipes": "Receptek",
"Move": "Mozgatás",
"Merge": "Összefűzés",
"Parent": "Szülő",
"delete_confirmation": "Biztos, hogy törölni akarja a {source}-t?",
"move_confirmation": "",
"merge_confirmation": "",
"create_rule": "",
"create_rule": "és automatizálás létrehozása",
"move_selection": "",
"merge_selection": "",
"Root": "",
"Ignore_Shopping": "",
"Shopping_Category": "",
"Shopping_Categories": "",
"Edit_Food": "",
"Move_Food": "",
"New_Food": "",
"Hide_Food": "",
"merge_selection": "A {source} minden előfordulását a kiválasztott {type} típusra cseréli.",
"Root": "Gyökér",
"Ignore_Shopping": "A vásárlás figyelmen kívül hagyása",
"Shopping_Category": "Vásárlási kategória",
"Shopping_Categories": "Vásárlási kategóriák",
"Edit_Food": "Alapanyag szerkesztése",
"Move_Food": "Alapanyag mozgatása",
"New_Food": "Új alapanyag",
"Hide_Food": "Alapanyag elrejtése",
"Food_Alias": "",
"Unit_Alias": "",
"Keyword_Alias": "",
"Delete_Food": "",
"No_ID": "",
"Meal_Plan_Days": "",
"merge_title": "",
"move_title": "",
"Food": "",
"Recipe_Book": "",
"Delete_Food": "Alapanyag törlése",
"No_ID": "Azonosító nem található, ezért nem törölhető.",
"Meal_Plan_Days": "Jövőbeni menütervek",
"merge_title": "Összevonás {type}",
"move_title": "Mozgatás {type}",
"Food": "Alapanyag",
"Recipe_Book": "Szakácskönyv",
"del_confirmation_tree": "",
"delete_title": "",
"create_title": "",
"edit_title": "",
"Name": "",
"Type": "",
"Description": "",
"Recipe": "",
"delete_title": "Törlés {type}",
"create_title": "Új {type}",
"edit_title": "Szerkesztés {type}",
"Name": "Név",
"Type": "Típus",
"Description": "Megnevezés",
"Recipe": "Recept",
"tree_root": "",
"Icon": "",
"Unit": "",
"No_Results": "",
"New_Unit": "",
"Create_New_Shopping Category": "",
"Create_New_Food": "",
"Create_New_Keyword": "",
"Create_New_Unit": "",
"Create_New_Meal_Type": "",
"Create_New_Shopping_Category": "",
"and_up": "",
"and_down": "",
"Instructions": "",
"Unrated": "",
"Icon": "Ikon",
"Unit": "Mennyiségi egység",
"No_Results": "Nincsenek találatok",
"New_Unit": "Új mennyiségi egység",
"Create_New_Shopping Category": "Új vásárlási kategória létrehozása",
"Create_New_Food": "Új alapanyag hozzáadása",
"Create_New_Keyword": "Új kulcsszó hozzáadása",
"Create_New_Unit": "Új mértékegység hozzáadása",
"Create_New_Meal_Type": "Új étkezéstípus hozzáadása",
"Create_New_Shopping_Category": "Új vásárlási kategória hozzáadása",
"and_up": "& fel",
"and_down": "& le",
"Instructions": "Elkészítés",
"Unrated": "Nem értékelt",
"Automate": "",
"Empty": "",
"Key_Ctrl": "",
"Key_Shift": "",
"Time": "",
"Text": "",
"Shopping_list": "",
"Added_by": "",
"Added_on": "",
"AddToShopping": "",
"IngredientInShopping": "",
"NotInShopping": "",
"OnHand": "",
"FoodOnHand": "",
"FoodNotOnHand": "",
"Empty": "Üres",
"Key_Ctrl": "Ctrl",
"Key_Shift": "Shift",
"Time": "Idő",
"Text": "Szöveg",
"Shopping_list": "Bevásárlólista",
"Added_by": "Hozzádta",
"Added_on": "Hozzáadva",
"AddToShopping": "Hozzáadás a bevásárlólistához",
"IngredientInShopping": "Ez a hozzávaló szerepel a bevásárlólistán.",
"NotInShopping": "{food} nincs a bevásárlólistáján.",
"OnHand": "Jelenleg készleten",
"FoodOnHand": "Önnek {food} van készleten.",
"FoodNotOnHand": "Önnek {food} nincs készleten.",
"Undefined": "",
"Create_Meal_Plan_Entry": "",
"Edit_Meal_Plan_Entry": "",
"Title": "",
"Week": "",
"Month": "",
"Year": "",
"Planner": "",
"Planner_Settings": "",
"Period": "",
"Plan_Period_To_Show": "",
"Periods": "",
"Plan_Show_How_Many_Periods": "",
"Starting_Day": "",
"Meal_Types": "",
"Meal_Type": "",
"New_Entry": "",
"Create_Meal_Plan_Entry": "Menüterv bejegyzés létrehozása",
"Edit_Meal_Plan_Entry": "Menüterv bejegyzés szerkesztése",
"Title": "Cím",
"Week": "Hét",
"Month": "Hónap",
"Year": "Év",
"Planner": "Tervező",
"Planner_Settings": "Tervező beállításai",
"Period": "Periódus",
"Plan_Period_To_Show": "Hetek, hónapok vagy évek megjelenítése",
"Periods": "Periódusok",
"Plan_Show_How_Many_Periods": "Mennyi időszakot kell megjeleníteni",
"Starting_Day": "A hét kezdőnapja",
"Meal_Types": "Étkezések",
"Meal_Type": "Étkezés",
"New_Entry": "Új bejegyzés",
"Clone": "",
"Drag_Here_To_Delete": "",
"Meal_Type_Required": "",
"Title_or_Recipe_Required": "",
"Color": "",
"New_Meal_Type": "",
"AddFoodToShopping": "",
"RemoveFoodFromShopping": "",
"DeleteShoppingConfirm": "",
"Drag_Here_To_Delete": "Törléshez húzza ide",
"Meal_Type_Required": "Étkezés megadása kötelező",
"Title_or_Recipe_Required": "Cím vagy recept kiválasztása kötelező",
"Color": "Szín",
"New_Meal_Type": "Új étkezéstípus",
"AddFoodToShopping": "{food} hozzáadása bevásárlólistához",
"RemoveFoodFromShopping": "{food} eltávolítása bevásárlólistáról",
"DeleteShoppingConfirm": "Biztos, hogy az összes {food}-t el akarja távolítani a bevásárlólistáról?",
"IgnoredFood": "",
"Add_Servings_to_Shopping": "",
"Week_Numbers": "",
"Show_Week_Numbers": "",
"Export_As_ICal": "",
"Export_As_ICal": "Jelenlegi időszak exportálása iCal formátumba",
"Export_To_ICal": "",
"Cannot_Add_Notes_To_Shopping": "",
"Added_To_Shopping_List": "",
"Shopping_List_Empty": "",
"Next_Period": "",
"Previous_Period": "",
"Current_Period": "",
"Next_Day": "",
"Previous_Day": "",
"Cannot_Add_Notes_To_Shopping": "A bevásárlólistához nem adható hozzá megjegyzés",
"Added_To_Shopping_List": "Hozzáadva a bevásárlólistához",
"Shopping_List_Empty": "A bevásárlólista jelenleg üres. A tételeket a menüterv menüjében (jobb klikk a kártyára vagy bal klikk a menü ikonjára) adhatja hozzá.",
"Next_Period": "Következő periódus",
"Previous_Period": "Előző periódus",
"Current_Period": "Jelenlegi periódus",
"Next_Day": "Következő nap",
"Previous_Day": "Előző nap",
"Inherit": "",
"InheritFields": "",
"FoodInherit": "",
"ShowUncategorizedFood": "",
"GroupBy": "",
"SupermarketCategoriesOnly": "",
"GroupBy": "Csoportosítva",
"SupermarketCategoriesOnly": "Csak a szupermarket kategóriák",
"MoveCategory": "",
"CountMore": "",
"IgnoreThis": "",
"DelayFor": "",
"Warning": "",
"NoCategory": "",
"DelayFor": "Késleltetés {hours} óráig",
"Warning": "Figyelmeztetés",
"NoCategory": "Nincs kategória kiválasztva.",
"InheritWarning": "",
"ShowDelayed": "",
"Completed": "",
"OfflineAlert": "",
"shopping_share": "",
"shopping_auto_sync": "",
"one_url_per_line": "",
"mealplan_autoadd_shopping": "",
"OfflineAlert": "Ön éppen offline állapotban van, a bevásárlólista nem biztos, hogy szinkronizálódik.",
"shopping_share": "Bevásárlólista megosztása",
"shopping_auto_sync": "Automatikus szinkronizáció",
"one_url_per_line": "Soronként egy URL-cím",
"mealplan_autoadd_shopping": "Menüterv automatikus hozzáadása",
"mealplan_autoexclude_onhand": "",
"mealplan_autoinclude_related": "",
"mealplan_autoinclude_related": "Kapcsolódó receptek hozzáadása",
"default_delay": "",
"shopping_share_desc": "",
"shopping_auto_sync_desc": "",
"mealplan_autoadd_shopping_desc": "",
"mealplan_autoexclude_onhand_desc": "",
"mealplan_autoinclude_related_desc": "",
"default_delay_desc": "",
"filter_to_supermarket": "",
"Coming_Soon": "",
"Auto_Planner": "",
"New_Cookbook": "",
"Hide_Keyword": "",
"Clear": "",
"shopping_share_desc": "A felhasználók látni fogják a bevásárlólistára felvett összes terméket. Ahhoz, hogy láthassák a saját listájukon szereplő tételeket, hozzá kell rendelniük Önt.",
"shopping_auto_sync_desc": "A 0 értékre állítás kikapcsolja az automatikus szinkronizálást. A bevásárlólista megtekintésekor a lista minden beállított másodpercben frissül, hogy szinkronizálja a más által esetleg elvégzett módosításokat. Hasznos, ha több emberrel együtt vásárol, de a mobiladatokat is igénybe veszi.",
"mealplan_autoadd_shopping_desc": "Automatikusan hozzáadja a menüterv hozzávalóit a bevásárlólistához.",
"mealplan_autoexclude_onhand_desc": "Amikor menütervet ad hozzá a bevásárlólistához (manuálisan vagy automatikusan), hagyja ki azokat a hozzávalókat, amelyek éppen rendelkezésre állnak.",
"mealplan_autoinclude_related_desc": "Amikor menütervet ad hozzá a bevásárlólistához (kézzel vagy automatikusan), vegye fel az összes kapcsolódó receptet.",
"default_delay_desc": "A bevásárlólista bejegyzés késleltetésének alapértelmezett óraszáma.",
"filter_to_supermarket": "Szűrés szupermarketre",
"Coming_Soon": "Hamarosan",
"Auto_Planner": "Automatikus tervező",
"New_Cookbook": "Új szakácskönyv",
"Hide_Keyword": "Kulcsszavak elrejtése",
"Clear": "Törlés",
"err_move_self": "",
"nothing": "",
"err_merge_self": "",
"show_sql": "",
"filter_to_supermarket_desc": "",
"CategoryName": "",
"SupermarketName": "",
"CategoryInstruction": "",
"filter_to_supermarket_desc": "Alapértelmezés szerint a bevásárlólista szűrése csak a kiválasztott szupermarket kategóriáit tartalmazza.",
"CategoryName": "Kategória neve",
"SupermarketName": "Szupermarket neve",
"CategoryInstruction": "A kategóriákat mozgatva megváltoztathatja a kategóriák sorrendjét a bevásárlólistán.",
"shopping_recent_days_desc": "",
"shopping_recent_days": "",
"download_pdf": "",
"download_csv": "",
"csv_delim_help": "",
"csv_delim_label": "",
"SuccessClipboard": "",
"copy_to_clipboard": "",
"csv_prefix_help": "",
"download_pdf": "PDF letöltése",
"download_csv": "CSV letöltése",
"csv_delim_help": "A CSV exportáláshoz használandó határolójel.",
"csv_delim_label": "CSV elválasztó",
"SuccessClipboard": "Bevásárlólista a vágólapra másolva",
"copy_to_clipboard": "Másolás vágólapra",
"csv_prefix_help": "A lista vágólapra másolásakor hozzáadandó előtag.",
"csv_prefix_label": "",
"copy_markdown_table": "",
"in_shopping": "",
"DelayUntil": "",
"Pin": "",
"Pin": "Kitűzés",
"mark_complete": "",
"QuickEntry": "",
"QuickEntry": "Gyors bevitel",
"shopping_add_onhand_desc": "",
"shopping_add_onhand": "",
"related_recipes": "",
"today_recipes": "",
"sql_debug": "",
"related_recipes": "Hasonló receptek",
"today_recipes": "Mai receptek",
"sql_debug": "SQL Debug",
"remember_search": "",
"remember_hours": "",
"tree_select": "",
"OnHand_help": "",
"ignore_shopping_help": "",
"OnHand_help": "Az alapanyag készleten van, így nem adódik hozzá automatikusan a bevásárlólistához. A készleten lévő státusz megosztásra kerül a bevásárlást végző felhasználókkal.",
"ignore_shopping_help": "Soha ne adja hozzá az alapanyagot a bevásárlólistához (pl. víz)",
"shopping_category_help": "",
"food_recipe_help": "",
"Foods": "",
"enable_expert": "",
"expert_mode": "",
"simple_mode": "",
"advanced": "",
"fields": "",
"show_keywords": "",
"show_foods": "",
"show_books": "",
"show_rating": "",
"show_units": "",
"show_filters": "",
"not": "",
"save_filter": "",
"filter_name": "",
"left_handed": "",
"left_handed_help": "",
"Custom Filter": "",
"shared_with": "",
"sort_by": "",
"asc": "",
"desc": "",
"date_viewed": "",
"last_cooked": "",
"food_recipe_help": "Egy recept itt történő linkelése magában foglalja a linkelt receptet bármely más receptben, amely ezt az alapanyagot használja",
"Foods": "Alapanyagok",
"enable_expert": "Szakértő mód engedélyezése",
"expert_mode": "Szakértő mód",
"simple_mode": "Egyszerű mód",
"advanced": "Haladó",
"fields": "Mezők",
"show_keywords": "Kulcsszavak megjelenítése",
"show_foods": "Alapanyagok megjelenítése",
"show_books": "Könyvek megjelenítése",
"show_rating": "Értékelés megjelenítése",
"show_units": "Mennyiségi egységek megjelenítése",
"show_filters": "Szűrők megjelenítése",
"not": "nem",
"save_filter": "Szűrő mentése",
"filter_name": "Szűrő neve",
"left_handed": "Balkezes mód",
"left_handed_help": "A bal kézzel történő használatra optimalizálja a felhasználói felületet.",
"Custom Filter": "Egyéni szűrő",
"shared_with": "Megosztva",
"sort_by": "Rendezés",
"asc": "Emelkedő",
"desc": "Csökkenő",
"date_viewed": "Utoljára megtekintve",
"last_cooked": "Utoljára elkészítve",
"times_cooked": "",
"date_created": "",
"show_sortby": "",
"search_rank": "",
"search_rank": "Keresési rangsor",
"make_now": "",
"recipe_filter": "",
"book_filter_help": "",
"review_shopping": "",
"view_recipe": "",
"copy_to_new": "",
"recipe_name": "",
"recipe_filter": "Recept szűrő",
"book_filter_help": "A manuálisan hozzárendelt receptek mellett a recept-szűrőből származó receptek szerepeltetése.",
"review_shopping": "A bevásárlási bejegyzések áttekintése mentés előtt",
"view_recipe": "Recept megtekintése",
"copy_to_new": "Másolás új receptbe",
"recipe_name": "Recept neve",
"paste_ingredients_placeholder": "",
"paste_ingredients": "",
"ingredient_list": "",
"explain": "",
"filter": "",
"Website": "",
"App": "",
"Bookmarklet": "",
"click_image_import": "",
"no_more_images_found": "",
"import_duplicates": "",
"paste_json": "",
"Click_To_Edit": "",
"search_no_recipes": "",
"search_import_help_text": "",
"search_create_help_text": "",
"warning_duplicate_filter": "",
"paste_ingredients": "Hozzávalók beillesztése",
"ingredient_list": "Hozzávalók listája",
"explain": "Magyarázat",
"filter": "Szűrő",
"Website": "Weboldal",
"App": "Applikáció",
"Bookmarklet": "Könyvjelző",
"click_image_import": "Kattintson a képre, amelyet a recepthez importálni szeretne",
"no_more_images_found": "További képek nem találhatók a weboldalon.",
"import_duplicates": "A duplikációk elkerülése érdekében a meglévő receptekkel azonos nevű recepteket a rendszer figyelmen kívül hagyja. Jelölje be ezt a négyzetet, ha mindent importálni szeretne.",
"paste_json": "A recept betöltéséhez illessze be ide a json vagy a html forrást.",
"Click_To_Edit": "Kattintson a szerkesztéshez",
"search_no_recipes": "Nem találtunk semmilyen receptet!",
"search_import_help_text": "Recept importálása külső webhelyről vagy alkalmazásból.",
"search_create_help_text": "Új recept létrehozása közvetlenül a Tandoorban.",
"warning_duplicate_filter": "Figyelem! A technikai megkötések miatt több azonos kombinációjú szűrő (és/vagy nem) használata nem várt eredményt adhat.",
"reset_children": "",
"reset_children_help": "",
"substitute_help": "",
@ -357,67 +357,164 @@
"substitute_children_help": "",
"substitute_siblings": "",
"substitute_children": "",
"SubstituteOnHand": "",
"SubstituteOnHand": "Van elérhető helyettesítője.",
"ChildInheritFields": "",
"ChildInheritFields_help": "",
"InheritFields_help": "",
"last_viewed": "",
"created_on": "",
"updatedon": "",
"Imported_From": "",
"advanced_search_settings": "",
"nothing_planned_today": "",
"no_pinned_recipes": "",
"Planned": "",
"Pinned": "",
"last_viewed": "Utoljára megtekintve",
"created_on": "Létrehozva",
"updatedon": "Frissítve",
"Imported_From": "Importálva",
"advanced_search_settings": "Részletes keresési beállítások",
"nothing_planned_today": "Mára semmit sem tervezett!",
"no_pinned_recipes": "Nincsenek kitűzött receptjei!",
"Planned": "Tervezett",
"Pinned": "Kitűzve",
"Imported": "",
"Quick actions": "",
"Ratings": "",
"Internal": "",
"Units": "",
"Quick actions": "Gyors parancsok",
"Ratings": "Értékelések",
"Internal": "Belső",
"Units": "Mennyiségi egységek",
"Random Recipes": "",
"parameter_count": "",
"select_keyword": "",
"add_keyword": "",
"parameter_count": "Paraméter {count}",
"select_keyword": "Kulcsszó kiválasztása",
"add_keyword": "Kulcsszó hozzáadása",
"select_file": "",
"select_recipe": "",
"select_recipe": "Recept kiválasztása",
"select_unit": "",
"select_food": "",
"remove_selection": "",
"empty_list": "",
"Select": "",
"Supermarkets": "",
"User": "",
"Keyword": "",
"Advanced": "",
"Page": "",
"remove_selection": "Kijelölés törlése",
"empty_list": "A lista üres.",
"Select": "Kiválasztás",
"Supermarkets": "Szupermarketek",
"User": "Felhasználó",
"Keyword": "Kulcsszó",
"Advanced": "Haladó",
"Page": "Oldal",
"Single": "",
"Multiple": "",
"Reset": "",
"Options": "",
"Create Food": "",
"Multiple": "Több",
"Reset": "Visszaállítás",
"Options": "Opciók",
"Create Food": "Alapanyag létrehozása",
"create_food_desc": "",
"additional_options": "",
"Importer_Help": "",
"Documentation": "",
"Select_App_To_Import": "",
"Documentation": "Dokumentáció",
"Select_App_To_Import": "Kérjük, válasszon ki egy alkalmazást, amelyből importálni szeretne",
"Import_Supported": "",
"Export_Supported": "",
"Import_Not_Yet_Supported": "",
"Export_Not_Yet_Supported": "",
"Import_Result_Info": "",
"Import_Result_Info": "{total}-ból/ből {imported} recept importálva",
"Recipes_In_Import": "",
"Toggle": "",
"Import_Error": "",
"Warning_Delete_Supermarket_Category": "",
"New_Supermarket": "",
"New_Supermarket_Category": "",
"Are_You_Sure": "",
"Plural": "",
"plural_short": "",
"Toggle": "Váltás",
"Import_Error": "Hiba történt az importálás során. Kérjük, a megtekintéshez bontsa ki az oldal alján található Részletek menüpontot.",
"Warning_Delete_Supermarket_Category": "Egy szupermarket-kategória törlése az alapanyagokkal való összes kapcsolatot is törli. Biztos vagy benne?",
"New_Supermarket": "Új szupermarket létrehozása",
"New_Supermarket_Category": "Új szupermarket kategória létrehozása",
"Are_You_Sure": "Biztos benne?",
"Plural": "Többes szám",
"plural_short": "többes szám",
"Use_Plural_Unit_Always": "",
"Use_Plural_Unit_Simple": "",
"Use_Plural_Unit_Simple": "A mértékegység többes számának dinamikus beállítása",
"Use_Plural_Food_Always": "",
"Use_Plural_Food_Simple": "",
"plural_usage_info": ""
"Use_Plural_Food_Simple": "Alapanyag többes számának dinamikus használata",
"plural_usage_info": "",
"Back": "Vissza",
"Import Recipe": "Recept importálása",
"Create Recipe": "Recept létrehozása",
"Decimals": "Tizedesek",
"warning_space_delete": "Törölheti a terét, beleértve az összes receptet, bevásárlólistát, menütervet és bármi mást, amit létrehozott. Ezt nem lehet visszafordítani! Biztos benne, hogy ezt szeretné tenni ?",
"Description_Replace": "Megnevezés csere",
"Alignment": "Igazítás",
"Copy Link": "Link másolása",
"Copy Token": "Token másolása",
"Original_Text": "Eredeti szöveg",
"per_serving": "adagonként",
"Use_Metric": "Metrikus rendszer használata",
"Learn_More": "Tudjon meg többet",
"base_unit": "Alap mértékegység",
"base_amount": "Alapösszeg",
"Datatype": "Adattípus",
"Number of Objects": "Objektumok száma",
"StartDate": "Kezdés dátuma",
"EndDate": "Befejezés dátuma",
"Properties": "Tulajdonságok",
"Property": "Tulajdonság",
"Welcome": "Üdvözöljük",
"Conversion": "Konverzió",
"recipe_property_info": "Az alapanyagokhoz tulajdonságokat is hozzáadhatsz, hogy automatikusan kiszámítsd őket a recepted alapján!",
"Amount": "Összeg",
"Update_Existing_Data": "Meglévő adatok frissítése",
"converted_unit": "Átszámított mennyiségi egység",
"food_inherit_info": "Az alapanyag alapértelmezés szerint örökölendő adatmezői.",
"Private_Recipe": "Privát recept",
"Private_Recipe_Help": "A recept csak Önnek és azoknak az embereknek jelenik meg, akikkel megosztotta.",
"reusable_help_text": "A meghívó linknek egynél több felhasználó számára is használhatónak kell lennie.",
"Auto_Sort_Help": "Az összes összetevőt helyezze át a legmegfelelőbb lépéshez.",
"Auto_Sort": "Automatikus rendezés",
"Open_Data_Import": "Adat import megnyitása",
"Data_Import_Info": "Bővítse Terét alapanyagok, mértékegységek és egyebek közösség által összeállított listájának importálásával, hogy ezzel is javítsa a receptgyűjteményét.",
"Unit_Replace": "Mértékegység helyettesítés",
"Choose_Category": "Kategória kiválasztása",
"open_data_help_text": "A Tandoor Open Data projekt a Tandoor közösségi adatait biztosítja. Ez a mező automatikusan kitöltődik az importáláskor, és lehetővé teszi a jövőbeni frissítéseket.",
"Use_Fractions": "Tört használata",
"Use_Fractions_Help": "A receptek megtekintésekor a tizedesjegyeket automatikusan törtekre konvertálja.",
"tsp": "teáskanál [tsp] (USA, térfogat)",
"Split_All_Steps": "Ossza fel az összes sort különálló lépésekbe.",
"Language": "Nyelv",
"Theme": "Téma",
"Seconds": "Másodperc",
"Username": "Felhasználónév",
"First_name": "Keresztnév",
"Hour": "Óra",
"Hours": "Óra",
"Second": "Másodperc",
"Users": "Felhasználók",
"Days": "Nap",
"OrderInformation": "Az objektumok a kis számoktól a nagy számok felé rendezettek.",
"Valid Until": "Érvényes",
"Disabled": "Kikapcsolva",
"Last_name": "Vezetéknév",
"imperial_tsp": "birodalmi teáskanál [imp tsp] (UK, térfogat)",
"imperial_tbsp": "birodalmi evőkanál [imp tbsp] (UK, térfogat)",
"Unpin": "Levétel",
"Day": "Nap",
"Use_Kj": "kcal helyett kJ használata",
"Comments_setting": "Hozzászólások megjelenítése",
"Change_Password": "Jelszó módosítása",
"Manage_Emails": "Levelezés kezelése",
"show_ingredient_overview": "Az összes hozzávaló listájának megjelenítése a recept elején.",
"PinnedConfirmation": "{recipe} kitűzve.",
"total": "összesen",
"plan_share_desc": "Az új menüterv bejegyzések automatikusan meg lesznek osztva a kiválasztott felhasználókkal.",
"show_ingredients_table": "Az összetevők táblázatának megjelenítése a következő lépés szövege mellett",
"Nav_Color": "Navigáció színe",
"kg": "kilogramm [kg] (metrikus, súly)",
"show_step_ingredients_setting_help": "Adja hozzá a hozzávalók táblázatát a recept lépései mellé. A létrehozáskor alkalmazandó. Felülírható a recept szerkesztési nézetében.",
"Message": "Üzenet",
"Nav_Color_Help": "A navigáció színének módosítása.",
"Sticky_Nav_Help": "A navigációs menü mindig a képernyő tetején jelenjen meg.",
"converted_amount": "Átszámított összeg",
"imperial_quart": "imperial quart [imp qt] (Egyesült Királyság, térfogat)",
"imperial_pint": "imperial pint [imp pt] (Egyesült Királyság, térfogat)",
"Ingredient Overview": "Hozzávalók áttekintése",
"gallon": "gallon [gal] (USA, térfogat)",
"quart": "kvart [qt] (USA, térfogat)",
"pint": "pint [pt] (USA, térfogat)",
"fluid_ounce": "folyadékuncia [fl oz] (USA, térfogat)",
"l": "liter [l] (metrikus, térfogat)",
"ml": "milliliter [ml] (metrikus, térfogat)",
"pound": "font (súly)",
"ounce": "uncia [oz] (súly)",
"g": "gramm [g] (metrikus, súly)",
"tbsp": "evőkanál [tbsp] (USA, térfogat)",
"imperial_gallon": "imperial galon [imp gal] (Egyesült Királyság, térfogat)",
"imperial_fluid_ounce": "imperial folyadékuncia [imp fl oz] (Egyesült Királyság, térfogat)",
"Invites": "Meghívók",
"Instruction_Replace": "Elkészítési leírás cseréje",
"API": "API",
"Account": "Fiók",
"show_step_ingredients_setting": "Hozzávalók megjelenítése a recept lépései mellett",
"Disable": "Letiltás"
}

536
vue/src/locales/lt.json Normal file
View File

@ -0,0 +1,536 @@
{
"warning_feature_beta": "Šiuo metu ši funkcija yra BETA (testavimo) stadijoje. Naudodamiesi šia funkcija galite tikėtis klaidų ir galimų pakeitimų ateityje (galbūt prarasite su funkcijomis susijusius duomenis).",
"err_fetching_resource": "Gaunant išteklius įvyko klaida!",
"err_creating_resource": "Kuriant išteklius įvyko klaida!",
"err_updating_resource": "Atnaujinant išteklius įvyko klaida!",
"err_deleting_resource": "Ištrinant išteklius įvyko klaida!",
"err_deleting_protected_resource": "Objektas kurį bandote ištrinti vis dar naudojamas todėl jo negalima ištrinti.",
"err_moving_resource": "Perkeliant išteklius įvyko klaida!",
"err_merging_resource": "Sujungiant išteklius įvyko klaida!",
"success_fetching_resource": "Išteklius sėkmingai gautas!",
"success_creating_resource": "Išteklius sėkmingai sukurtas!",
"success_updating_resource": "Išteklius sėkmingai atnaujintas!",
"success_deleting_resource": "Išteklius sėkmingai ištrintas!",
"success_moving_resource": "Išteklius sėkmingai perkeltas!",
"success_merging_resource": "Išteklius sėkmingai perkeltas!",
"file_upload_disabled": "Failų įkėlimas jūsų erdvėje neįgalintas.",
"recipe_property_info": "Taip pat galite pridėti maisto produktų savybių, kad jos būtų automatiškai apskaičiuojamos pagal jūsų receptą!",
"warning_space_delete": "Galite ištrinti savo erdvę, įskaitant visus receptus, pirkinių sąrašus, maisto planus ir visą kitą ką sukūrėte. To negalima anuliuoti! Ar tikrai norite tai padaryti?",
"food_inherit_info": "Maisto laukeliai kurie turėtų būti paveldimi pagal numatytuosius nustatymus.",
"step_time_minutes": "Veiksmų laikas minutėmis",
"confirm_delete": "Ar tikrai norite ištrinti šį {object}?",
"import_running": "Importuojama, palaukite!",
"all_fields_optional": "Visi laukeliai yra neprivalomi ir gali būti palikti tušti.",
"convert_internal": "Konvertuoti į vidinį receptą",
"show_only_internal": "Rodyti tik vidinius receptus",
"show_split_screen": "Padalintas vaizdas",
"Log_Recipe_Cooking": "Užregistruoti recepto pagaminimą",
"External_Recipe_Image": "Išorinis recepto vaizdas",
"Add_to_Shopping": "Pridėti į apsipirkimo sąrašą",
"Add_to_Plan": "Pridėti į planą",
"Step_start_time": "Žingsnio pradžios laikas",
"Sort_by_new": "Rūšiuoti pagal naujumą",
"Table_of_Contents": "Turinys",
"Recipes_per_page": "Receptų skaičius per puslapį",
"Show_as_header": "Rodyti kaip antraštę",
"Hide_as_header": "Slėpti kaip antraštę",
"Add_nutrition_recipe": "Įtraukti mitybos informaciją į receptą",
"Remove_nutrition_recipe": "Ištrinti mitybos informaciją iš recepto",
"Copy_template_reference": "Nukopijuoti šablono nuorodą",
"per_serving": "per porciją",
"Save_and_View": "Išsaugoti ir peržiūrėti",
"Manage_Books": "Tvarkyti knygas",
"Meal_Plan": "Maisto planas",
"Select_Book": "Pasirinkti Knygą",
"Select_File": "Pasirinkti Failą",
"Recipe_Image": "Recepto nuotrauka",
"Import_finished": "Importavimas baigtas",
"View_Recipes": "Žiūrėti receptus",
"Log_Cooking": "Užregistruoti patiekalo gaminimą",
"New_Recipe": "Naujas Receptas",
"Url_Import": "URL importavimas",
"Reset_Search": "Iš naujo nustatyti paiešką",
"Recently_Viewed": "Neseniai Žiūrėta",
"Load_More": "Įkelti daugiau",
"New_Keyword": "Naujas Raktažodis",
"Delete_Keyword": "Ištrinti raktažodį",
"Edit_Keyword": "Redaguoti raktažodį",
"Edit_Recipe": "Redaguoti receptą",
"Move_Keyword": "Perkelti Raktažodį",
"Merge_Keyword": "Sujungti raktažodį",
"Hide_Keywords": "Paslėpti raktažodį",
"Hide_Recipes": "Paslėpti receptus",
"Move_Up": "Pakelti aukštyn",
"Move_Down": "Nuleisti žemyn",
"Step_Name": "Žingsnio pavadinimas",
"Step_Type": "Žingsnio tipas",
"Make_Header": "Padaryti antraštę",
"Make_Ingredient": "Padaryti ingredientą",
"Amount": "Suma",
"Enable_Amount": "Įjungti sumą",
"Disable_Amount": "Išjungti sumą",
"Ingredient Editor": "Ingredientų redaktorius",
"Description_Replace": "Pakeisti aprašymą",
"Instruction_Replace": "",
"Auto_Sort": "",
"Auto_Sort_Help": "",
"Private_Recipe": "",
"Private_Recipe_Help": "",
"reusable_help_text": "",
"open_data_help_text": "",
"Open_Data_Slug": "",
"Open_Data_Import": "",
"Data_Import_Info": "",
"Update_Existing_Data": "",
"Use_Metric": "",
"Learn_More": "",
"converted_unit": "",
"converted_amount": "",
"base_unit": "",
"base_amount": "",
"Datatype": "",
"Number of Objects": "",
"Add_Step": "",
"Keywords": "",
"Books": "",
"Proteins": "",
"Fats": "",
"Carbohydrates": "",
"Calories": "",
"Energy": "",
"Nutrition": "",
"Date": "",
"StartDate": "",
"EndDate": "",
"Share": "",
"Automation": "",
"Parameter": "",
"Export": "",
"Copy": "",
"Rating": "",
"Close": "",
"Cancel": "",
"Link": "",
"Add": "",
"New": "",
"Note": "",
"Alignment": "",
"Success": "",
"Failure": "",
"Protected": "",
"Ingredients": "",
"Supermarket": "",
"Categories": "",
"Category": "",
"Selected": "",
"min": "",
"Servings": "",
"Waiting": "",
"Preparation": "",
"External": "",
"Size": "",
"Files": "",
"File": "",
"Edit": "",
"Image": "",
"Delete": "",
"Open": "",
"Ok": "",
"Save": "",
"Step": "",
"Search": "",
"Import": "",
"Print": "",
"Settings": "",
"or": "",
"and": "",
"Information": "",
"Download": "",
"Create": "",
"Search Settings": "",
"View": "",
"Recipes": "",
"Welcome": "",
"Move": "",
"Merge": "",
"Parent": "",
"Copy Link": "",
"Copy Token": "",
"delete_confirmation": "",
"move_confirmation": "",
"merge_confirmation": "",
"create_rule": "",
"move_selection": "",
"merge_selection": "",
"Root": "",
"Ignore_Shopping": "",
"Shopping_Category": "",
"Shopping_Categories": "",
"Edit_Food": "",
"Move_Food": "",
"New_Food": "",
"Hide_Food": "",
"Food_Alias": "",
"Unit_Alias": "",
"Keyword_Alias": "",
"Delete_Food": "",
"No_ID": "",
"Meal_Plan_Days": "",
"merge_title": "",
"move_title": "",
"Food": "",
"Property": "",
"Conversion": "",
"Original_Text": "",
"Recipe_Book": "",
"del_confirmation_tree": "",
"delete_title": "",
"create_title": "",
"edit_title": "",
"Name": "",
"Properties": "",
"Type": "",
"Description": "",
"Recipe": "",
"tree_root": "",
"Icon": "",
"Unit": "",
"Decimals": "",
"Default_Unit": "",
"No_Results": "",
"New_Unit": "",
"Create_New_Shopping Category": "",
"Create_New_Food": "",
"Create_New_Keyword": "",
"Create_New_Unit": "",
"Create_New_Meal_Type": "",
"Create_New_Shopping_Category": "",
"and_up": "",
"and_down": "",
"Instructions": "",
"Unrated": "",
"Automate": "",
"Empty": "",
"Key_Ctrl": "",
"Key_Shift": "",
"Time": "",
"Text": "",
"Shopping_list": "",
"Added_by": "",
"Added_on": "",
"AddToShopping": "",
"IngredientInShopping": "",
"NotInShopping": "",
"OnHand": "",
"FoodOnHand": "",
"FoodNotOnHand": "",
"Undefined": "",
"Create_Meal_Plan_Entry": "",
"Edit_Meal_Plan_Entry": "",
"Title": "",
"Week": "",
"Month": "",
"Year": "",
"Planner": "",
"Planner_Settings": "",
"Period": "",
"Plan_Period_To_Show": "",
"Periods": "",
"Plan_Show_How_Many_Periods": "",
"Starting_Day": "",
"Meal_Types": "",
"Meal_Type": "",
"New_Entry": "",
"Clone": "",
"Drag_Here_To_Delete": "",
"Meal_Type_Required": "",
"Title_or_Recipe_Required": "",
"Color": "",
"New_Meal_Type": "",
"Use_Fractions": "",
"Use_Fractions_Help": "",
"AddFoodToShopping": "",
"RemoveFoodFromShopping": "",
"DeleteShoppingConfirm": "",
"IgnoredFood": "",
"Add_Servings_to_Shopping": "",
"Week_Numbers": "",
"Show_Week_Numbers": "",
"Export_As_ICal": "",
"Export_To_ICal": "",
"Cannot_Add_Notes_To_Shopping": "",
"Added_To_Shopping_List": "",
"Shopping_List_Empty": "",
"Next_Period": "",
"Previous_Period": "",
"Current_Period": "",
"Next_Day": "",
"Previous_Day": "",
"Inherit": "",
"InheritFields": "",
"FoodInherit": "",
"ShowUncategorizedFood": "",
"GroupBy": "",
"Language": "",
"Theme": "",
"SupermarketCategoriesOnly": "",
"MoveCategory": "",
"CountMore": "",
"IgnoreThis": "",
"DelayFor": "",
"Warning": "",
"NoCategory": "",
"InheritWarning": "",
"ShowDelayed": "",
"Completed": "",
"OfflineAlert": "",
"shopping_share": "",
"shopping_auto_sync": "",
"one_url_per_line": "",
"mealplan_autoadd_shopping": "",
"mealplan_autoexclude_onhand": "",
"mealplan_autoinclude_related": "",
"default_delay": "",
"plan_share_desc": "",
"shopping_share_desc": "",
"shopping_auto_sync_desc": "",
"mealplan_autoadd_shopping_desc": "",
"mealplan_autoexclude_onhand_desc": "",
"mealplan_autoinclude_related_desc": "",
"default_delay_desc": "",
"filter_to_supermarket": "",
"Coming_Soon": "",
"Auto_Planner": "",
"New_Cookbook": "",
"Hide_Keyword": "",
"Hour": "",
"Hours": "",
"Day": "",
"Days": "",
"Second": "",
"Seconds": "",
"Clear": "",
"Users": "",
"Invites": "",
"err_move_self": "",
"nothing": "",
"err_merge_self": "",
"show_sql": "",
"filter_to_supermarket_desc": "",
"CategoryName": "",
"SupermarketName": "",
"CategoryInstruction": "",
"OrderInformation": "",
"shopping_recent_days_desc": "",
"shopping_recent_days": "",
"download_pdf": "",
"download_csv": "",
"csv_delim_help": "",
"csv_delim_label": "",
"SuccessClipboard": "",
"copy_to_clipboard": "",
"csv_prefix_help": "",
"csv_prefix_label": "",
"copy_markdown_table": "",
"in_shopping": "",
"DelayUntil": "",
"Pin": "",
"Unpin": "",
"PinnedConfirmation": "",
"UnpinnedConfirmation": "",
"mark_complete": "",
"QuickEntry": "",
"shopping_add_onhand_desc": "",
"shopping_add_onhand": "",
"related_recipes": "",
"today_recipes": "",
"sql_debug": "",
"remember_search": "",
"remember_hours": "",
"tree_select": "",
"OnHand_help": "",
"ignore_shopping_help": "",
"shopping_category_help": "",
"food_recipe_help": "",
"Foods": "",
"Account": "",
"Cosmetic": "",
"API": "",
"enable_expert": "",
"expert_mode": "",
"simple_mode": "",
"advanced": "",
"fields": "",
"show_keywords": "",
"show_foods": "",
"show_books": "",
"show_rating": "",
"show_units": "",
"show_filters": "",
"not": "",
"save_filter": "",
"filter_name": "",
"left_handed": "",
"left_handed_help": "",
"show_step_ingredients_setting": "",
"show_step_ingredients_setting_help": "",
"show_step_ingredients": "",
"hide_step_ingredients": "",
"Custom Filter": "",
"shared_with": "",
"sort_by": "",
"asc": "",
"desc": "",
"date_viewed": "",
"last_cooked": "",
"times_cooked": "",
"date_created": "",
"show_sortby": "",
"search_rank": "",
"make_now": "",
"make_now_count": "",
"recipe_filter": "",
"book_filter_help": "",
"review_shopping": "",
"view_recipe": "",
"copy_to_new": "",
"recipe_name": "",
"paste_ingredients_placeholder": "",
"paste_ingredients": "",
"ingredient_list": "",
"explain": "",
"filter": "",
"Website": "",
"App": "",
"Message": "",
"Bookmarklet": "",
"Sticky_Nav": "",
"Sticky_Nav_Help": "",
"Nav_Color": "",
"Nav_Color_Help": "",
"Use_Kj": "",
"Comments_setting": "",
"click_image_import": "",
"no_more_images_found": "",
"import_duplicates": "",
"paste_json": "",
"Click_To_Edit": "",
"search_no_recipes": "",
"search_import_help_text": "",
"search_create_help_text": "",
"warning_duplicate_filter": "",
"reset_children": "",
"reset_children_help": "",
"reset_food_inheritance": "",
"reset_food_inheritance_info": "",
"substitute_help": "",
"substitute_siblings_help": "",
"substitute_children_help": "",
"substitute_siblings": "",
"substitute_children": "",
"SubstituteOnHand": "",
"ChildInheritFields": "",
"ChildInheritFields_help": "",
"InheritFields_help": "",
"show_ingredients_table": "",
"show_ingredient_overview": "",
"Ingredient Overview": "",
"last_viewed": "",
"created_on": "",
"updatedon": "",
"Imported_From": "",
"advanced_search_settings": "",
"nothing_planned_today": "",
"no_pinned_recipes": "",
"Planned": "",
"Pinned": "",
"Imported": "",
"Quick actions": "",
"Ratings": "",
"Internal": "",
"Units": "",
"Manage_Emails": "",
"Change_Password": "",
"Social_Authentication": "",
"Random Recipes": "",
"parameter_count": "",
"select_keyword": "",
"add_keyword": "",
"select_file": "",
"select_recipe": "",
"select_unit": "",
"select_food": "",
"remove_selection": "",
"empty_list": "",
"Select": "",
"Supermarkets": "",
"User": "",
"Username": "",
"First_name": "",
"Last_name": "",
"Keyword": "",
"Advanced": "",
"Page": "",
"Single": "",
"Multiple": "",
"Reset": "",
"Disabled": "",
"Disable": "",
"Options": "",
"Create Food": "",
"create_food_desc": "",
"additional_options": "",
"Importer_Help": "",
"Documentation": "",
"Select_App_To_Import": "",
"Import_Supported": "",
"Export_Supported": "",
"Import_Not_Yet_Supported": "",
"Export_Not_Yet_Supported": "",
"Import_Result_Info": "",
"Recipes_In_Import": "",
"Toggle": "",
"total": "",
"Import_Error": "",
"Warning_Delete_Supermarket_Category": "",
"New_Supermarket": "",
"New_Supermarket_Category": "",
"Are_You_Sure": "",
"Valid Until": "",
"Split_All_Steps": "",
"Combine_All_Steps": "",
"Plural": "",
"plural_short": "",
"g": "",
"kg": "",
"ounce": "",
"pound": "",
"ml": "",
"l": "",
"fluid_ounce": "",
"pint": "",
"quart": "",
"gallon": "",
"tbsp": "",
"tsp": "",
"imperial_fluid_ounce": "",
"imperial_pint": "",
"imperial_quart": "",
"imperial_gallon": "",
"imperial_tbsp": "",
"imperial_tsp": "",
"Choose_Category": "",
"Back": "",
"Use_Plural_Unit_Always": "",
"Use_Plural_Unit_Simple": "",
"Use_Plural_Food_Always": "",
"Use_Plural_Food_Simple": "",
"plural_usage_info": "",
"Create Recipe": "",
"Import Recipe": "",
"Never_Unit": "",
"Transpose_Words": "",
"Name_Replace": "",
"Food_Replace": "",
"Unit_Replace": ""
}

View File

@ -533,5 +533,6 @@
"Name_Replace": "Zastąp nazwę",
"Food_Replace": "Zastąp produkt",
"Unit_Replace": "Zastąp jednostkę",
"Alignment": "Wyrównanie"
"Alignment": "Wyrównanie",
"make_now_count": "Najbardziej brakujące składniki"
}

View File

@ -35,7 +35,7 @@
"Copy_template_reference": "Copiar template de referência",
"Save_and_View": "Salvar e Visualizar",
"Manage_Books": "Gerenciar Livros",
"Meal_Plan": "Cardápio",
"Meal_Plan": "Plano de Refeição",
"Select_Book": "Selecionar Livro",
"Select_File": "Selecionar Arquivo",
"Recipe_Image": "Imagem da receita",
@ -141,7 +141,7 @@
"Keyword_Alias": "Apelido da palavra-chave",
"Delete_Food": "Deletar Comida",
"No_ID": "ID não encontrado, impossível deletar.",
"Meal_Plan_Days": "Planejamento de Cardápio",
"Meal_Plan_Days": "Planos de refeição futuros",
"merge_title": "Mesclar {type}",
"move_title": "Mover {type}",
"Food": "Comida",
@ -149,190 +149,190 @@
"del_confirmation_tree": "Tem certeza que deseja deletar {source} e todos seus filhos?",
"delete_title": "Deletar {type}",
"create_title": "Novo {type}",
"edit_title": "",
"edit_title": "Editar {type}",
"Name": "Nome",
"Type": "Tipo",
"Description": "Descrição",
"Recipe": "Receita",
"tree_root": "",
"tree_root": "Raiz",
"Icon": "Ícone",
"Unit": "Unidade",
"No_Results": "Sem Resultados",
"New_Unit": "Nova Unidade",
"Create_New_Shopping Category": "",
"Create_New_Food": "",
"Create_New_Keyword": "",
"Create_New_Unit": "",
"Create_New_Meal_Type": "",
"and_up": "",
"and_down": "",
"Instructions": "",
"Unrated": "",
"Automate": "",
"Empty": "",
"Key_Ctrl": "",
"Key_Shift": "",
"Time": "",
"Text": "",
"Shopping_list": "",
"Added_by": "",
"Added_on": "",
"AddToShopping": "",
"IngredientInShopping": "",
"NotInShopping": "",
"OnHand": "",
"FoodOnHand": "",
"FoodNotOnHand": "",
"Undefined": "",
"Create_Meal_Plan_Entry": "",
"Edit_Meal_Plan_Entry": "",
"Title": "",
"Week": "",
"Month": "",
"Year": "",
"Planner": "",
"Planner_Settings": "",
"Period": "",
"Plan_Period_To_Show": "",
"Periods": "",
"Plan_Show_How_Many_Periods": "",
"Starting_Day": "",
"Meal_Types": "",
"Meal_Type": "",
"Clone": "",
"Drag_Here_To_Delete": "",
"Meal_Type_Required": "",
"Title_or_Recipe_Required": "",
"Color": "",
"New_Meal_Type": "",
"AddFoodToShopping": "",
"RemoveFoodFromShopping": "",
"DeleteShoppingConfirm": "",
"IgnoredFood": "",
"Add_Servings_to_Shopping": "",
"Week_Numbers": "",
"Show_Week_Numbers": "",
"Export_As_ICal": "",
"Export_To_ICal": "",
"Cannot_Add_Notes_To_Shopping": "",
"Added_To_Shopping_List": "",
"Shopping_List_Empty": "",
"Next_Period": "",
"Previous_Period": "",
"Current_Period": "",
"Next_Day": "",
"Previous_Day": "",
"Inherit": "",
"InheritFields": "",
"FoodInherit": "",
"ShowUncategorizedFood": "",
"GroupBy": "",
"SupermarketCategoriesOnly": "",
"MoveCategory": "",
"CountMore": "",
"IgnoreThis": "",
"DelayFor": "",
"Warning": "",
"NoCategory": "",
"InheritWarning": "",
"ShowDelayed": "",
"Completed": "",
"OfflineAlert": "",
"shopping_share": "",
"shopping_auto_sync": "",
"mealplan_autoadd_shopping": "",
"mealplan_autoexclude_onhand": "",
"mealplan_autoinclude_related": "",
"default_delay": "",
"shopping_share_desc": "",
"shopping_auto_sync_desc": "",
"mealplan_autoadd_shopping_desc": "",
"Create_New_Shopping Category": "Criar Nova Categoria de Compras",
"Create_New_Food": "Incluir Novo Alimento",
"Create_New_Keyword": "Incluir Nova Palavra-Chave",
"Create_New_Unit": "Incluir Nova Unidade",
"Create_New_Meal_Type": "Incluir Novo Tipo Comida",
"and_up": "& Acima",
"and_down": "& Abaixo",
"Instructions": "Instruções",
"Unrated": "Não classificado",
"Automate": "Automatizar",
"Empty": "Vazio",
"Key_Ctrl": "Ctrl",
"Key_Shift": "Shift",
"Time": "Hora",
"Text": "Texto",
"Shopping_list": "Lista de Compras",
"Added_by": "Incluído Por",
"Added_on": "Incluído Em",
"AddToShopping": "Incluir na Lista de Compras",
"IngredientInShopping": "Este ingrediente está na sua lista de compras.",
"NotInShopping": "{food} não está na sua lista de compras.",
"OnHand": "Atualmente disponível",
"FoodOnHand": "Tem {food} disponível.",
"FoodNotOnHand": "Não tem {food} disponível.",
"Undefined": "Indefinido",
"Create_Meal_Plan_Entry": "Criar Plano de Refeição",
"Edit_Meal_Plan_Entry": "Editar plano de refeição",
"Title": "Título",
"Week": "Semana",
"Month": "Mês",
"Year": "Ano",
"Planner": "Planejamento",
"Planner_Settings": "Configurações do Planejamento",
"Period": "Período",
"Plan_Period_To_Show": "Mostra semanas, meses ou anos",
"Periods": "Períodos",
"Plan_Show_How_Many_Periods": "Quantos períodos mostrar",
"Starting_Day": "Dia de início da semana",
"Meal_Types": "Tipos de Comida",
"Meal_Type": "Tipo de Comida",
"Clone": "Duplicar",
"Drag_Here_To_Delete": "Arraste aqui para deletar",
"Meal_Type_Required": "Tipo de comida é obrigatório",
"Title_or_Recipe_Required": "Seleção do tipo de comida ou receita é obrigatória",
"Color": "Cor",
"New_Meal_Type": "Novo Tipo de Comida",
"AddFoodToShopping": "Incluir {food} na sua lista de compras",
"RemoveFoodFromShopping": "Remover {food} da sua lista de compras",
"DeleteShoppingConfirm": "Tem certeza que deseja remover todas {food} de sua lista de compras?",
"IgnoredFood": "{food} está definido para ignorar compras.",
"Add_Servings_to_Shopping": "Adicionar {servings} porções às compras",
"Week_Numbers": "Números da Semana",
"Show_Week_Numbers": "Mostrar números da semana?",
"Export_As_ICal": "Exportar período atual para o formato iCal",
"Export_To_ICal": "Exportar .ics",
"Cannot_Add_Notes_To_Shopping": "Notas não podem sem adicionadas na lista de compras",
"Added_To_Shopping_List": "Incluído na lista de compras",
"Shopping_List_Empty": "Sua lista de compras está vazia. Você pode incluir itens pelo menu Plano de Refeição (click direiro no cartão ou click esquerdo no ícone do menu)",
"Next_Period": "Próximo Período",
"Previous_Period": "Período Anterior",
"Current_Period": "Período Atual",
"Next_Day": "Próximo Dia",
"Previous_Day": "Dia Anterior",
"Inherit": "Herdado",
"InheritFields": "Valores dos Campos Herdados",
"FoodInherit": "Campos herdados por alimento",
"ShowUncategorizedFood": "Mostrar Indefinido",
"GroupBy": "Agrupar Por",
"SupermarketCategoriesOnly": "Somente Categorias do Supermercado",
"MoveCategory": "Mover Para: ",
"CountMore": "...+{count} mais",
"IgnoreThis": "Nunca auto incluir {food} para compras",
"DelayFor": "Demorar por {hours} horas",
"Warning": "Alerta",
"NoCategory": "Nenhuma categoria selecionada.",
"InheritWarning": "{food} esta definida para herdar, alterações podem não persistir.",
"ShowDelayed": "Mostrar itens atrasados",
"Completed": "Finalizado",
"OfflineAlert": "Você está offline, a lista de compras não pode ser sincronizada.",
"shopping_share": "Compartilhar Lista de Compras",
"shopping_auto_sync": "Sincronização automática",
"mealplan_autoadd_shopping": "Auto Incluir Plano de Refeição",
"mealplan_autoexclude_onhand": "Excluir comida disponível",
"mealplan_autoinclude_related": "Incluir Receitas Relacionadas",
"default_delay": "Horas de Atraso Padrão",
"shopping_share_desc": "Usuários poderão ver todos os itens que adicionar à sua lista de compras. Eles devem adicioná-lo para ver os itens na lista deles.",
"shopping_auto_sync_desc": "Definir a 0 irá desativar a sincronização automática. Quando se visualiza uma lista de compras a lista é atualizada após um número determinado de segundos para sincronizar com possíveis alterações feitas por outros. Útil quando se compartilha a lista de compras porém irá consumir dados móveis.",
"mealplan_autoadd_shopping_desc": "Automaticamente inclui ingredientes do plano de refeição para a lista de compras.",
"mealplan_autoexclude_onhand_desc": "",
"mealplan_autoinclude_related_desc": "",
"default_delay_desc": "",
"filter_to_supermarket": "",
"Coming_Soon": "",
"Auto_Planner": "",
"New_Cookbook": "",
"Hide_Keyword": "",
"filter_to_supermarket": "Filtro para Supermercado",
"Coming_Soon": "Em breve",
"Auto_Planner": "Planejamento Automático",
"New_Cookbook": "Novo livro de receitas",
"Hide_Keyword": "Oculta palavras-chave",
"Clear": "",
"err_move_self": "",
"nothing": "",
"err_merge_self": "",
"show_sql": "",
"err_move_self": "Não é possível mover o item para ele mesmo",
"nothing": "Nada para fazer",
"err_merge_self": "Não é possível mesclar um item com ele mesmo",
"show_sql": "Mostrar SQL",
"filter_to_supermarket_desc": "",
"CategoryName": "",
"SupermarketName": "",
"CategoryName": "Nome da Categoria",
"SupermarketName": "Nome do Supermercado",
"CategoryInstruction": "",
"shopping_recent_days_desc": "",
"shopping_recent_days": "",
"shopping_recent_days": "Dias Recentes",
"create_shopping_new": "",
"download_pdf": "",
"download_csv": "",
"csv_delim_help": "",
"csv_delim_label": "",
"SuccessClipboard": "",
"copy_to_clipboard": "",
"download_pdf": "Download PDF",
"download_csv": "Download CSV",
"csv_delim_help": "Delimitador para usar na exportação do CSV.",
"csv_delim_label": "Delimitador CSV",
"SuccessClipboard": "Lista de compras copiada para área de transferência",
"copy_to_clipboard": "Copiar para Área de Transferência",
"csv_prefix_help": "",
"csv_prefix_label": "",
"csv_prefix_label": "Lista de Prefixos",
"copy_markdown_table": "",
"in_shopping": "",
"DelayUntil": "",
"Pin": "",
"mark_complete": "",
"in_shopping": "Na Lista de Compras",
"DelayUntil": "Atrasar Até",
"Pin": "Pin",
"mark_complete": "Marcar como Finalizado",
"QuickEntry": "",
"shopping_add_onhand_desc": "",
"shopping_add_onhand": "",
"related_recipes": "",
"today_recipes": "",
"sql_debug": "",
"remember_search": "",
"remember_hours": "",
"tree_select": "",
"related_recipes": "Receitas Relacionadas",
"today_recipes": "Receitas de Hoje",
"sql_debug": "SQL Debug",
"remember_search": "Lembrar Pesquisa",
"remember_hours": "Horas para Lembrar",
"tree_select": "Usar Árvore de Seleção",
"OnHand_help": "",
"ignore_shopping_help": "",
"shopping_category_help": "",
"food_recipe_help": "",
"Foods": "",
"enable_expert": "",
"expert_mode": "",
"simple_mode": "",
"advanced": "",
"fields": "",
"show_keywords": "",
"show_foods": "",
"show_books": "",
"show_rating": "",
"show_units": "",
"show_filters": "",
"not": "",
"save_filter": "",
"filter_name": "",
"left_handed": "",
"left_handed_help": "",
"Custom Filter": "",
"shared_with": "",
"sort_by": "",
"asc": "",
"desc": "",
"date_viewed": "",
"last_cooked": "",
"Foods": "Alimentos",
"enable_expert": "Habilitar Modo Expert",
"expert_mode": "Modo Expert",
"simple_mode": "Modo Simples",
"advanced": "Avançado",
"fields": "Campos",
"show_keywords": "Mostrar Palavras-Chave",
"show_foods": "Mostrar Alimentos",
"show_books": "Mostrar Livros",
"show_rating": "Mostrar Classificação",
"show_units": "Mostrar Unidades",
"show_filters": "Mostrar Filtros",
"not": "não",
"save_filter": "Salvar Filtro",
"filter_name": "Nome do Filtro",
"left_handed": "Modo canhoto",
"left_handed_help": "Irá otimizar a interface gráfica para uso por canhotos.",
"Custom Filter": "Filtro Customizado",
"shared_with": "Compartilhar Com",
"sort_by": "Ordenar Por",
"asc": "Ascendente",
"desc": "Descendente",
"date_viewed": "Último Visualizado",
"last_cooked": "Último Cozido",
"times_cooked": "",
"date_created": "",
"show_sortby": "",
"search_rank": "",
"make_now": "",
"recipe_filter": "",
"show_sortby": "Mostrar Ordena Por",
"search_rank": "Rank de Pesquisa",
"make_now": "Fazer Agora",
"recipe_filter": "Filtro de Receita",
"book_filter_help": "",
"review_shopping": "",
"view_recipe": "",
"copy_to_new": "",
"recipe_name": "",
"paste_ingredients_placeholder": "",
"paste_ingredients": "",
"ingredient_list": "",
"explain": "",
"filter": "",
"view_recipe": "Visualizar receita",
"copy_to_new": "Copiar para Nova Receita",
"recipe_name": "Nome da Receita",
"paste_ingredients_placeholder": "Colar lista de ingredientes aqui...",
"paste_ingredients": "Colar Ingredientes",
"ingredient_list": "Lista de Ingrediente",
"explain": "Explicar",
"filter": "Filtrar",
"search_no_recipes": "Não encontrou nenhuma receita!",
"search_import_help_text": "Importe uma receita de um website externo ou aplicação.",
"search_create_help_text": "Crie uma nova receita diretamente em Tandoor.",
@ -348,35 +348,35 @@
"ChildInheritFields": "Campos de Filhos Herdados",
"ChildInheritFields_help": "Os filhos herdarão esses campos por padrão.",
"InheritFields_help": "Os valores desses campos serão herdados do pai (Exceção: categorias de compras em branco não são herdadas)",
"last_viewed": "",
"created_on": "",
"updatedon": "",
"advanced_search_settings": "",
"nothing_planned_today": "",
"last_viewed": "Último Visualizado",
"created_on": "Criado Em",
"updatedon": "Atualizado Em",
"advanced_search_settings": "Configuração de Pesquisa Avançada",
"nothing_planned_today": "Você não tem nada planejado para hoje!",
"no_pinned_recipes": "",
"Planned": "",
"Pinned": "",
"Quick actions": "",
"Ratings": "",
"Internal": "",
"Units": "",
"Random Recipes": "",
"parameter_count": "",
"select_keyword": "",
"add_keyword": "",
"select_file": "",
"select_recipe": "",
"select_unit": "",
"select_food": "",
"remove_selection": "",
"empty_list": "",
"Select": "",
"Supermarkets": "",
"User": "",
"Keyword": "",
"Advanced": "",
"Page": "",
"Reset": "",
"Planned": "Planejado",
"Pinned": "Marcado",
"Quick actions": "Ações rápidas",
"Ratings": "Classificações",
"Internal": "Interno",
"Units": "Unidades",
"Random Recipes": "Receitas Aleatórias",
"parameter_count": "Parâmetro {count}",
"select_keyword": "Selecionar Palavra-Chave",
"add_keyword": "Incluir Palavra-Chave",
"select_file": "Selecionar Arquivo",
"select_recipe": "Selecionar Receita",
"select_unit": "Selecionar Unidade",
"select_food": "Selecionar Alimento",
"remove_selection": "Deselecionar",
"empty_list": "Lista está vazia.",
"Select": "Selecionar",
"Supermarkets": "Supermercados",
"User": "Usuário",
"Keyword": "Palavra-chave",
"Advanced": "Avançado",
"Page": "Página",
"Reset": "Reiniciar",
"err_deleting_protected_resource": "O objeto que você está tentando excluir ainda é usado e não pode ser excluído.",
"Copy Link": "Copiar Link",
"Ingredient Editor": "Editor de Ingrediente",
@ -387,12 +387,12 @@
"Copy Token": "Copiar Token",
"warning_space_delete": "Você pode deletar seu espaço, inclusive todas as receitas, listas de mercado, planos de comida e tudo mais que você criou. Esta ação não poderá ser desfeita! Você tem certeza que quer fazer isto?",
"food_inherit_info": "Campos no alimento que devem ser herdados por padrão.",
"Plural": "",
"plural_short": "",
"Use_Plural_Unit_Always": "",
"Use_Plural_Unit_Simple": "",
"Use_Plural_Food_Always": "",
"Use_Plural_Food_Simple": "",
"Plural": "Plural",
"plural_short": "plural",
"Use_Plural_Unit_Always": "Sempre usar forma plural para unidade",
"Use_Plural_Unit_Simple": "Dinamicamente usar forma plural para unidade",
"Use_Plural_Food_Always": "Sempre usar forma plural para alimento",
"Use_Plural_Food_Simple": "Dinamicamente usar forma plural para alimento",
"plural_usage_info": "",
"Amount": "Quantidade",
"Description_Replace": "Substituir Descrição",
@ -407,5 +407,99 @@
"import_duplicates": "Para evitar duplicatas, as receitas com o mesmo nome das existentes são ignoradas. Marque esta caixa para importar tudo.",
"Click_To_Edit": "Clique para editar",
"reset_food_inheritance_info": "Redefinir todas as comidas para campos herdados padrão e seus valores pai.",
"show_ingredients_table": "Exiba uma tabela de ingredientes ao lado do texto da etapa"
"show_ingredients_table": "Exiba uma tabela de ingredientes ao lado do texto da etapa",
"Update_Existing_Data": "Atualizar Dados Existentes",
"Property": "Propriedade",
"Conversion": "Conversão",
"New_Entry": "Nova Entrada",
"plan_share_desc": "Novo Plano de Refeição será automaticamente compartilhado com os usuários selecionados.",
"Create Recipe": "Criar Receita",
"Import Recipe": "Importar Receita",
"App": "App",
"Default_Unit": "Unidade Padrão",
"Use_Fractions": "Usar Frações",
"Use_Fractions_Help": "Automaticamente converter decimais para frações quando visualizando uma receita.",
"Hour": "Hora",
"Days": "Dias",
"Day": "Dia",
"Second": "Segundo",
"Seconds": "Segundos",
"First_name": "Primeiro Nome",
"Importer_Help": "Mais informações neste importador:",
"Nav_Color_Help": "Alterar a cor da navegação.",
"Use_Kj": "Usar kJ ao invés de kcal",
"Comments_setting": "Mostrar Comentários",
"click_image_import": "Clicar na imagem que deseja importar para esta receita",
"Export_Not_Yet_Supported": "Exportação ainda não suportada",
"Sticky_Nav_Help": "Permitir mostrar o menu de navegação no topo da tela.",
"Nav_Color": "Cor de Navegação",
"show_ingredient_overview": "Mostrar a lista de todos os ingredientes no início da receita.",
"Imported_From": "Importado de",
"New_Supermarket_Category": "Criar nova categoria de supermercado",
"Choose_Category": "Selecionar Categoria",
"Last_name": "Último Nome",
"Disable": "Desabilitar",
"Options": "Opções",
"Create Food": "Criar Alimento",
"create_food_desc": "Criar um alimento e linkar para esta receita.",
"one_url_per_line": "Uma URL por linha",
"Combine_All_Steps": "Combinar todos os passos em um único campo.",
"Create_New_Shopping_Category": "Incluir Nova Categoria de Compras",
"Website": "Website",
"Message": "Mensagem",
"Learn_More": "Aprender Mais",
"Open_Data_Import": "Abrir Importação Dados",
"Use_Metric": "Usa Unidades Métricas",
"converted_unit": "Unidade Convertida",
"converted_amount": "Quantidade Convertida",
"base_unit": "Unidade Base",
"base_amount": "Quantidade Base",
"Datatype": "Tipo Dado",
"Number of Objects": "Número de Objetos",
"StartDate": "Data Início",
"EndDate": "Data Fim",
"Original_Text": "Texto Original",
"Properties": "Propriedades",
"Language": "Idioma",
"Theme": "Tema",
"Hours": "Horas",
"Users": "Usuários",
"Invites": "Convites",
"Account": "Conta",
"API": "API",
"show_step_ingredients_setting": "Mostrar Ingredientes Próximo das Etapas da Receita",
"show_step_ingredients": "Mostrar Etapas de Ingredientes",
"hide_step_ingredients": "Ocultar Etapas de Ingredientes",
"Imported": "Importado",
"Manage_Emails": "Gerenciar Emails",
"Change_Password": "Alterar Senha",
"Username": "Nome do Usuário",
"Single": "Simples",
"Multiple": "Múltiplo",
"Disabled": "Desabilitado",
"additional_options": "Opções Adicionais",
"Documentation": "Documentação",
"Select_App_To_Import": "Selecione um App para importar",
"Import_Supported": "Importação suportada",
"Export_Supported": "Exportação suportada",
"Import_Not_Yet_Supported": "Importação ainda não suportada",
"Import_Result_Info": "{imported} de {total} receitas foram importadas",
"Recipes_In_Import": "Receitas no seu arquivo de importação",
"total": "total",
"New_Supermarket": "Criar novo supermercado",
"Are_You_Sure": "Você tem certeza?",
"Valid Until": "Válido Até",
"g": "grama [g] (métrico, peso)",
"kg": "kilograma [kg] (métrico, peso)",
"ml": "mililitro [ml] (métrico, volume)",
"l": "litro [l] (métrico, volume)",
"Back": "Voltar",
"Name_Replace": "Substituir Nome",
"Food_Replace": "Substituir Alimento",
"Unit_Replace": "Substituir Unidade",
"Welcome": "Bem vindo",
"Alignment": "Alinhamento",
"Auto_Sort_Help": "Mover todos os ingredientes para o passo mais indicado.",
"Ingredient Overview": "Ingredientes - Visão Geral",
"Cosmetic": "Aparência"
}

View File

@ -201,6 +201,16 @@
"@jridgewell/trace-mapping" "^0.3.17"
jsesc "^2.5.1"
"@babel/generator@^7.23.0":
version "7.23.0"
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420"
integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==
dependencies:
"@babel/types" "^7.23.0"
"@jridgewell/gen-mapping" "^0.3.2"
"@jridgewell/trace-mapping" "^0.3.17"
jsesc "^2.5.1"
"@babel/helper-annotate-as-pure@^7.22.5":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882"
@ -261,6 +271,11 @@
lodash.debounce "^4.0.8"
resolve "^1.14.2"
"@babel/helper-environment-visitor@^7.22.20":
version "7.22.20"
resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
"@babel/helper-environment-visitor@^7.22.5":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98"
@ -274,6 +289,14 @@
"@babel/template" "^7.22.5"
"@babel/types" "^7.22.5"
"@babel/helper-function-name@^7.23.0":
version "7.23.0"
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759"
integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==
dependencies:
"@babel/template" "^7.22.15"
"@babel/types" "^7.23.0"
"@babel/helper-hoist-variables@^7.22.5":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
@ -367,6 +390,11 @@
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz#601fa28e4cc06786c18912dca138cec73b882044"
integrity sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==
"@babel/helper-validator-identifier@^7.22.20":
version "7.22.20"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
"@babel/helper-validator-option@^7.22.15":
version "7.22.15"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040"
@ -404,6 +432,11 @@
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.16.tgz#180aead7f247305cce6551bea2720934e2fa2c95"
integrity sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==
"@babel/parser@^7.23.0":
version "7.23.0"
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719"
integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.15":
version "7.22.15"
resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz#02dc8a03f613ed5fdc29fb2f728397c78146c962"
@ -1182,18 +1215,18 @@
"@babel/types" "^7.22.15"
"@babel/traverse@^7.22.15", "@babel/traverse@^7.22.17", "@babel/traverse@^7.22.5", "@babel/traverse@^7.7.0":
version "7.22.17"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.17.tgz#b23c203ab3707e3be816043081b4a994fcacec44"
integrity sha512-xK4Uwm0JnAMvxYZxOVecss85WxTEIbTa7bnGyf/+EgCL5Zt3U7htUpEOWv9detPlamGKuRzCqw74xVglDWpPdg==
version "7.23.2"
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8"
integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==
dependencies:
"@babel/code-frame" "^7.22.13"
"@babel/generator" "^7.22.15"
"@babel/helper-environment-visitor" "^7.22.5"
"@babel/helper-function-name" "^7.22.5"
"@babel/generator" "^7.23.0"
"@babel/helper-environment-visitor" "^7.22.20"
"@babel/helper-function-name" "^7.23.0"
"@babel/helper-hoist-variables" "^7.22.5"
"@babel/helper-split-export-declaration" "^7.22.6"
"@babel/parser" "^7.22.16"
"@babel/types" "^7.22.17"
"@babel/parser" "^7.23.0"
"@babel/types" "^7.23.0"
debug "^4.1.0"
globals "^11.1.0"
@ -1206,6 +1239,15 @@
"@babel/helper-validator-identifier" "^7.22.15"
to-fast-properties "^2.0.0"
"@babel/types@^7.23.0":
version "7.23.0"
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb"
integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==
dependencies:
"@babel/helper-string-parser" "^7.22.5"
"@babel/helper-validator-identifier" "^7.22.20"
to-fast-properties "^2.0.0"
"@discoveryjs/json-ext@0.5.7":
version "0.5.7"
resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70"
@ -3209,10 +3251,10 @@ available-typed-arrays@^1.0.5:
resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
axios@^1.2.0:
version "1.5.0"
resolved "https://registry.yarnpkg.com/axios/-/axios-1.5.0.tgz#f02e4af823e2e46a9768cfc74691fdd0517ea267"
integrity sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==
axios@^1.6.0:
version "1.6.0"
resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.0.tgz#f1e5292f26b2fd5c2e66876adc5b06cdbd7d2102"
integrity sha512-EZ1DYihju9pwVB+jg67ogm+Tmqc6JmhamRN6I4Zt8DfZu5lbcQGw3ozH9lFejSJgs/ibaef3A9PMXPLeefFGJg==
dependencies:
follow-redirects "^1.15.0"
form-data "^4.0.0"
@ -3521,7 +3563,7 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
bn.js@^5.0.0, bn.js@^5.1.1:
bn.js@^5.0.0, bn.js@^5.2.1:
version "5.2.1"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70"
integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==
@ -3681,7 +3723,7 @@ browserify-des@^1.0.0:
inherits "^2.0.1"
safe-buffer "^5.1.2"
browserify-rsa@^4.0.0, browserify-rsa@^4.0.1:
browserify-rsa@^4.0.0, browserify-rsa@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d"
integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==
@ -3690,19 +3732,19 @@ browserify-rsa@^4.0.0, browserify-rsa@^4.0.1:
randombytes "^2.0.1"
browserify-sign@^4.0.0:
version "4.2.1"
resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3"
integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==
version "4.2.2"
resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.2.tgz#e78d4b69816d6e3dd1c747e64e9947f9ad79bc7e"
integrity sha512-1rudGyeYY42Dk6texmv7c4VcQ0EsvVbLwZkA+AQB7SxvXxmcD93jcHie8bzecJ+ChDlmAm2Qyu0+Ccg5uhZXCg==
dependencies:
bn.js "^5.1.1"
browserify-rsa "^4.0.1"
bn.js "^5.2.1"
browserify-rsa "^4.1.0"
create-hash "^1.2.0"
create-hmac "^1.1.7"
elliptic "^6.5.3"
elliptic "^6.5.4"
inherits "^2.0.4"
parse-asn1 "^5.1.5"
readable-stream "^3.6.0"
safe-buffer "^5.2.0"
parse-asn1 "^5.1.6"
readable-stream "^3.6.2"
safe-buffer "^5.2.1"
browserify-zlib@^0.2.0:
version "0.2.0"
@ -5037,7 +5079,7 @@ electron-to-chromium@^1.4.477:
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.515.tgz#f5fec9662106ac5752894af221606cf4db443e70"
integrity sha512-VTq6vjk3kCfG2qdzQRd/i9dIyVVm0dbtZIgFzrLgfB73mXDQT2HPKVRc1EoZcAVUv9XhXAu08DWqJuababdGGg==
elliptic@^6.5.3:
elliptic@^6.5.3, elliptic@^6.5.4:
version "6.5.4"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
@ -8498,7 +8540,7 @@ parent-module@^1.0.0:
dependencies:
callsites "^3.0.0"
parse-asn1@^5.0.0, parse-asn1@^5.1.5:
parse-asn1@^5.0.0, parse-asn1@^5.1.6:
version "5.1.6"
resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4"
integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==
@ -9292,7 +9334,7 @@ read-pkg@^5.1.1, read-pkg@^5.2.0:
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
readable-stream@^3.0.6, readable-stream@^3.4.0, readable-stream@^3.6.0:
readable-stream@^3.0.6, readable-stream@^3.4.0, readable-stream@^3.6.0, readable-stream@^3.6.2:
version "3.6.2"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
@ -9659,7 +9701,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@^5.2.1, safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==