diff --git a/.env.template b/.env.template
index ecc63919..29078208 100644
--- a/.env.template
+++ b/.env.template
@@ -13,6 +13,7 @@ TIMEZONE=Europe/Berlin
# add only a database password if you want to run with the default postgres, otherwise change settings accordingly
DB_ENGINE=django.db.backends.postgresql
+# DB_OPTIONS= {} # e.g. {"sslmode":"require"} to enable ssl
POSTGRES_HOST=db_recipes
POSTGRES_PORT=5432
POSTGRES_USER=djangouser
diff --git a/.github/ISSUE_TEMPLATE/help-request.md b/.github/ISSUE_TEMPLATE/help-request.md
index aedd42cf..a8718edc 100644
--- a/.github/ISSUE_TEMPLATE/help-request.md
+++ b/.github/ISSUE_TEMPLATE/help-request.md
@@ -6,14 +6,16 @@ labels: setup issue
assignees: ''
---
-
-### Version
-Please provide your current version (can be found on the system page since v0.8.4)
-Version:
-
-### Issue
+## Issue
Please describe your problem here
+
+## Setup Info
+Version: (can be found on the system page since v0.8.4)
+OS: e.g. Ubuntu 20.02
+
+Other relevant information regarding your problem (proxies, firewalls, etc.)
+
### `.env`
Please include your `.env` config file (**make sure to remove/replace all secrets**)
```
@@ -25,3 +27,7 @@ When running with docker compose please provide your `docker-compose.yml`
```
docker-compose.yml content
```
+
+### Logs
+If you feel like there is anything interesting please post the output of `docker-compose logs` at
+container startup and when the issue happens.
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/url_import.md b/.github/ISSUE_TEMPLATE/url_import.md
new file mode 100644
index 00000000..c99115a1
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/url_import.md
@@ -0,0 +1,22 @@
+---
+name: Website Import
+about: Anything related to website imports
+title: ''
+labels: enhancement, url_import
+assignees: ''
+
+---
+
+### Version
+Please provide your current version (can be found on the system page since v0.8.4)
+Version:
+
+### Information
+Exact URL you are trying to import from:
+
+When did the issue happen: When pressing the search button with the url / when importing after the page has loaded
+
+Response/Message shown
+```
+Message
+```
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 9b9949b8..a113ead1 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -25,4 +25,4 @@ jobs:
python3 manage.py collectstatic_js_reverse
- name: Django Testing project
run: |
- python3 manage.py test
+ pytest
diff --git a/.idea/recipes.iml b/.idea/recipes.iml
index c2b653f2..e1dd7064 100644
--- a/.idea/recipes.iml
+++ b/.idea/recipes.iml
@@ -29,4 +29,7 @@
+
+
+
\ No newline at end of file
diff --git a/cookbook/admin.py b/cookbook/admin.py
index 76af757a..85bfbe01 100644
--- a/cookbook/admin.py
+++ b/cookbook/admin.py
@@ -1,25 +1,35 @@
from django.contrib import admin
+from django.contrib.auth.admin import UserAdmin
+from django.contrib.auth.models import User, Group
from .models import (Comment, CookLog, Food, Ingredient, InviteLink, Keyword,
MealPlan, MealType, NutritionInformation, Recipe,
RecipeBook, RecipeBookEntry, RecipeImport, ShareLink,
ShoppingList, ShoppingListEntry, ShoppingListRecipe,
Space, Step, Storage, Sync, SyncLog, Unit, UserPreference,
- ViewLog, Supermarket, SupermarketCategory, SupermarketCategoryRelation)
+ ViewLog, Supermarket, SupermarketCategory, SupermarketCategoryRelation, ImportLog)
+
+
+class CustomUserAdmin(UserAdmin):
+ def has_add_permission(self, request, obj=None):
+ return False
+
+
+admin.site.unregister(User)
+admin.site.register(User, CustomUserAdmin)
+
+admin.site.unregister(Group)
class SpaceAdmin(admin.ModelAdmin):
- list_display = ('name', 'message')
+ list_display = ('name', 'created_by', 'message')
admin.site.register(Space, SpaceAdmin)
class UserPreferenceAdmin(admin.ModelAdmin):
- list_display = (
- 'name', 'theme', 'nav_color',
- 'default_page', 'search_style', 'comments'
- )
+ list_display = ('name', 'space', 'theme', 'nav_color', 'default_page', 'search_style',)
@staticmethod
def name(obj):
@@ -203,3 +213,10 @@ class NutritionInformationAdmin(admin.ModelAdmin):
admin.site.register(NutritionInformation, NutritionInformationAdmin)
+
+
+class ImportLogAdmin(admin.ModelAdmin):
+ list_display = ('id', 'type', 'running', 'created_by', 'created_at',)
+
+
+admin.site.register(ImportLog, ImportLogAdmin)
diff --git a/cookbook/filters.py b/cookbook/filters.py
index c1cc8646..b35cd36f 100644
--- a/cookbook/filters.py
+++ b/cookbook/filters.py
@@ -3,77 +3,79 @@ from django.conf import settings
from django.contrib.postgres.search import TrigramSimilarity
from django.db.models import Q
from django.utils.translation import gettext as _
+from django_scopes import scopes_disabled
from cookbook.forms import MultiSelectWidget
from cookbook.models import Food, Keyword, Recipe, ShoppingList
+with scopes_disabled():
+ class RecipeFilter(django_filters.FilterSet):
+ name = django_filters.CharFilter(method='filter_name')
+ keywords = django_filters.ModelMultipleChoiceFilter(
+ queryset=Keyword.objects.none(),
+ widget=MultiSelectWidget,
+ method='filter_keywords'
+ )
+ foods = django_filters.ModelMultipleChoiceFilter(
+ queryset=Food.objects.none(),
+ widget=MultiSelectWidget,
+ method='filter_foods',
+ label=_('Ingredients')
+ )
-class RecipeFilter(django_filters.FilterSet):
- name = django_filters.CharFilter(method='filter_name')
- keywords = django_filters.ModelMultipleChoiceFilter(
- queryset=Keyword.objects.all(),
- widget=MultiSelectWidget,
- method='filter_keywords'
- )
- foods = django_filters.ModelMultipleChoiceFilter(
- queryset=Food.objects.all(),
- widget=MultiSelectWidget,
- method='filter_foods',
- label=_('Ingredients')
- )
+ def __init__(self, data=None, *args, **kwargs):
+ space = kwargs.pop('space')
+ super().__init__(data, *args, **kwargs)
+ self.filters['foods'].queryset = Food.objects.filter(space=space).all()
+ self.filters['keywords'].queryset = Keyword.objects.filter(space=space).all()
- @staticmethod
- def filter_keywords(queryset, name, value):
- if not name == 'keywords':
+ @staticmethod
+ def filter_keywords(queryset, name, value):
+ if not name == 'keywords':
+ return queryset
+ for x in value:
+ queryset = queryset.filter(keywords=x)
return queryset
- for x in value:
- queryset = queryset.filter(keywords=x)
- return queryset
- @staticmethod
- def filter_foods(queryset, name, value):
- if not name == 'foods':
+ @staticmethod
+ def filter_foods(queryset, name, value):
+ if not name == 'foods':
+ return queryset
+ for x in value:
+ queryset = queryset.filter(steps__ingredients__food__name=x).distinct()
return queryset
- for x in value:
- queryset = queryset.filter(
- steps__ingredients__food__name=x
- ).distinct()
- return queryset
- @staticmethod
- def filter_name(queryset, name, value):
- if not name == 'name':
+ @staticmethod
+ def filter_name(queryset, name, value):
+ if not name == 'name':
+ return queryset
+ if settings.DATABASES['default']['ENGINE'] == 'django.db.backends.postgresql_psycopg2':
+ queryset = queryset.annotate(similarity=TrigramSimilarity('name', value), ).filter(Q(similarity__gt=0.1) | Q(name__unaccent__icontains=value)).order_by('-similarity')
+ else:
+ queryset = queryset.filter(name__icontains=value)
return queryset
- if settings.DATABASES['default']['ENGINE'] == 'django.db.backends.postgresql_psycopg2': # noqa: E501
- queryset = queryset \
- .annotate(similarity=TrigramSimilarity('name', value), ) \
- .filter(Q(similarity__gt=0.1) | Q(name__unaccent__icontains=value)) \
- .order_by('-similarity')
- else:
- queryset = queryset.filter(name__icontains=value)
- return queryset
- class Meta:
- model = Recipe
- fields = ['name', 'keywords', 'foods', 'internal']
+ class Meta:
+ model = Recipe
+ fields = ['name', 'keywords', 'foods', 'internal']
-class IngredientFilter(django_filters.FilterSet):
- name = django_filters.CharFilter(lookup_expr='icontains')
+ class FoodFilter(django_filters.FilterSet):
+ name = django_filters.CharFilter(lookup_expr='icontains')
- class Meta:
- model = Food
- fields = ['name']
+ class Meta:
+ model = Food
+ fields = ['name']
-class ShoppingListFilter(django_filters.FilterSet):
+ class ShoppingListFilter(django_filters.FilterSet):
- def __init__(self, data=None, *args, **kwargs):
- if data is not None:
- data = data.copy()
- data.setdefault("finished", False)
- super(ShoppingListFilter, self).__init__(data, *args, **kwargs)
+ def __init__(self, data=None, *args, **kwargs):
+ if data is not None:
+ data = data.copy()
+ data.setdefault("finished", False)
+ super().__init__(data, *args, **kwargs)
- class Meta:
- model = ShoppingList
- fields = ['finished']
+ class Meta:
+ model = ShoppingList
+ fields = ['finished']
diff --git a/cookbook/forms.py b/cookbook/forms.py
index 1d6d0d79..e80fe32f 100644
--- a/cookbook/forms.py
+++ b/cookbook/forms.py
@@ -1,11 +1,12 @@
from django import forms
from django.forms import widgets
from django.utils.translation import gettext_lazy as _
+from django_scopes.forms import SafeModelChoiceField, SafeModelMultipleChoiceField
from emoji_picker.widgets import EmojiPickerTextInput
from .models import (Comment, Food, InviteLink, Keyword, MealPlan, Recipe,
RecipeBook, RecipeBookEntry, Storage, Sync, Unit, User,
- UserPreference)
+ UserPreference, SupermarketCategory, MealType, Space)
class SelectWidget(widgets.Select):
@@ -74,18 +75,18 @@ class UserNameForm(forms.ModelForm):
class ExternalRecipeForm(forms.ModelForm):
file_path = forms.CharField(disabled=True, required=False)
- storage = forms.ModelChoiceField(
- queryset=Storage.objects.all(),
- disabled=True,
- required=False
- )
file_uid = forms.CharField(disabled=True, required=False)
+ def __init__(self, *args, **kwargs):
+ space = kwargs.pop('space')
+ super().__init__(*args, **kwargs)
+ self.fields['keywords'].queryset = Keyword.objects.filter(space=space).all()
+
class Meta:
model = Recipe
fields = (
- 'name', 'keywords', 'description', 'servings', 'working_time', 'waiting_time',
- 'file_path', 'storage', 'file_uid'
+ 'name', 'description', 'servings', 'working_time', 'waiting_time',
+ 'file_path', 'file_uid', 'keywords'
)
labels = {
@@ -97,38 +98,9 @@ class ExternalRecipeForm(forms.ModelForm):
'file_uid': _('Storage UID'),
}
widgets = {'keywords': MultiSelectWidget}
-
-
-class InternalRecipeForm(forms.ModelForm):
- ingredients = forms.CharField(widget=forms.HiddenInput(), required=False)
-
- class Meta:
- model = Recipe
- fields = (
- 'name', 'image', 'working_time',
- 'waiting_time', 'servings', 'keywords'
- )
-
- labels = {
- 'name': _('Name'),
- 'keywords': _('Keywords'),
- 'working_time': _('Preparation time in minutes'),
- 'waiting_time': _('Waiting time (cooking/baking) in minutes'),
- 'servings': _('Number of servings'),
+ field_classes = {
+ 'keywords': SafeModelMultipleChoiceField,
}
- widgets = {'keywords': MultiSelectWidget}
-
-
-class ShoppingForm(forms.Form):
- recipe = forms.ModelMultipleChoiceField(
- queryset=Recipe.objects.filter(internal=True).all(),
- widget=MultiSelectWidget
- )
- markdown_format = forms.BooleanField(
- help_text=_('Include - [ ] in list for easier usage in markdown based documents.'), # noqa: E501
- required=False,
- initial=False
- )
class ImportExportBase(forms.Form):
@@ -150,42 +122,59 @@ class ImportForm(ImportExportBase):
class ExportForm(ImportExportBase):
- recipes = forms.ModelMultipleChoiceField(queryset=Recipe.objects.filter(internal=True).all(), widget=MultiSelectWidget)
+ recipes = forms.ModelMultipleChoiceField(widget=MultiSelectWidget, queryset=Recipe.objects.none())
+
+ def __init__(self, *args, **kwargs):
+ space = kwargs.pop('space')
+ super().__init__(*args, **kwargs)
+ self.fields['recipes'].queryset = Recipe.objects.filter(space=space).all()
class UnitMergeForm(forms.Form):
prefix = 'unit'
- new_unit = forms.ModelChoiceField(
- queryset=Unit.objects.all(),
+ new_unit = SafeModelChoiceField(
+ queryset=Unit.objects.none(),
widget=SelectWidget,
label=_('New Unit'),
help_text=_('New unit that other gets replaced by.'),
)
- old_unit = forms.ModelChoiceField(
- queryset=Unit.objects.all(),
+ old_unit = SafeModelChoiceField(
+ queryset=Unit.objects.none(),
widget=SelectWidget,
label=_('Old Unit'),
help_text=_('Unit that should be replaced.'),
)
+ def __init__(self, *args, **kwargs):
+ space = kwargs.pop('space')
+ super().__init__(*args, **kwargs)
+ self.fields['new_unit'].queryset = Unit.objects.filter(space=space).all()
+ self.fields['old_unit'].queryset = Unit.objects.filter(space=space).all()
+
class FoodMergeForm(forms.Form):
prefix = 'food'
- new_food = forms.ModelChoiceField(
- queryset=Food.objects.all(),
+ new_food = SafeModelChoiceField(
+ queryset=Food.objects.none(),
widget=SelectWidget,
label=_('New Food'),
help_text=_('New food that other gets replaced by.'),
)
- old_food = forms.ModelChoiceField(
- queryset=Food.objects.all(),
+ old_food = SafeModelChoiceField(
+ queryset=Food.objects.none(),
widget=SelectWidget,
label=_('Old Food'),
help_text=_('Food that should be replaced.'),
)
+ def __init__(self, *args, **kwargs):
+ space = kwargs.pop('space')
+ super().__init__(*args, **kwargs)
+ self.fields['new_food'].queryset = Food.objects.filter(space=space).all()
+ self.fields['old_food'].queryset = Food.objects.filter(space=space).all()
+
class CommentForm(forms.ModelForm):
prefix = 'comment'
@@ -210,11 +199,23 @@ class KeywordForm(forms.ModelForm):
class FoodForm(forms.ModelForm):
+
+ def __init__(self, *args, **kwargs):
+ space = kwargs.pop('space')
+ super().__init__(*args, **kwargs)
+ self.fields['recipe'].queryset = Recipe.objects.filter(space=space).all()
+ self.fields['supermarket_category'].queryset = SupermarketCategory.objects.filter(space=space).all()
+
class Meta:
model = Food
fields = ('name', 'description', 'ignore_shopping', 'recipe', 'supermarket_category')
widgets = {'recipe': SelectWidget}
+ field_classes = {
+ 'recipe': SafeModelChoiceField,
+ 'supermarket_category': SafeModelChoiceField,
+ }
+
class StorageForm(forms.ModelForm):
username = forms.CharField(
@@ -222,18 +223,16 @@ class StorageForm(forms.ModelForm):
required=False
)
password = forms.CharField(
- widget=forms.TextInput(
- attrs={'autocomplete': 'new-password', 'type': 'password'}
- ),
+ widget=forms.TextInput(attrs={'autocomplete': 'new-password', 'type': 'password'}),
required=False,
- help_text=_('Leave empty for dropbox and enter app password for nextcloud.') # noqa: E501
+ help_text=_('Leave empty for dropbox and enter app password for nextcloud.')
)
token = forms.CharField(
widget=forms.TextInput(
attrs={'autocomplete': 'new-password', 'type': 'password'}
),
required=False,
- help_text=_('Leave empty for nextcloud and enter api token for dropbox.') # noqa: E501
+ help_text=_('Leave empty for nextcloud and enter api token for dropbox.')
)
class Meta:
@@ -241,34 +240,63 @@ class StorageForm(forms.ModelForm):
fields = ('name', 'method', 'username', 'password', 'token', 'url', 'path')
help_texts = {
- 'url': _('Leave empty for dropbox and enter only base url for nextcloud (/remote.php/webdav/ is added automatically)'), # noqa: E501
+ 'url': _('Leave empty for dropbox and enter only base url for nextcloud (/remote.php/webdav/ is added automatically)'),
}
class RecipeBookEntryForm(forms.ModelForm):
prefix = 'bookmark'
+ def __init__(self, *args, **kwargs):
+ space = kwargs.pop('space')
+ super().__init__(*args, **kwargs)
+ self.fields['book'].queryset = RecipeBook.objects.filter(space=space).all()
+
class Meta:
model = RecipeBookEntry
fields = ('book',)
+ field_classes = {
+ 'book': SafeModelChoiceField,
+ }
+
class SyncForm(forms.ModelForm):
+
+ def __init__(self, *args, **kwargs):
+ space = kwargs.pop('space')
+ super().__init__(*args, **kwargs)
+ self.fields['storage'].queryset = Storage.objects.filter(space=space).all()
+
class Meta:
model = Sync
fields = ('storage', 'path', 'active')
+ field_classes = {
+ 'storage': SafeModelChoiceField,
+ }
+
class BatchEditForm(forms.Form):
search = forms.CharField(label=_('Search String'))
keywords = forms.ModelMultipleChoiceField(
- queryset=Keyword.objects.all().order_by('id'),
+ queryset=Keyword.objects.none(),
required=False,
widget=MultiSelectWidget
)
+ def __init__(self, *args, **kwargs):
+ space = kwargs.pop('space')
+ super().__init__(*args, **kwargs)
+ self.fields['keywords'].queryset = Keyword.objects.filter(space=space).all().order_by('id')
+
class ImportRecipeForm(forms.ModelForm):
+ def __init__(self, *args, **kwargs):
+ space = kwargs.pop('space')
+ super().__init__(*args, **kwargs)
+ self.fields['keywords'].queryset = Keyword.objects.filter(space=space).all()
+
class Meta:
model = Recipe
fields = ('name', 'keywords', 'file_path', 'file_uid')
@@ -280,16 +308,33 @@ class ImportRecipeForm(forms.ModelForm):
'file_uid': _('File ID'),
}
widgets = {'keywords': MultiSelectWidget}
+ field_classes = {
+ 'keywords': SafeModelChoiceField,
+ }
class RecipeBookForm(forms.ModelForm):
+ def __init__(self, *args, **kwargs):
+ space = kwargs.pop('space')
+ super().__init__(*args, **kwargs)
+ self.fields['shared'].queryset = User.objects.filter(userpreference__space=space).all()
+
class Meta:
model = RecipeBook
fields = ('name', 'icon', 'description', 'shared')
widgets = {'icon': EmojiPickerTextInput, 'shared': MultiSelectWidget}
+ field_classes = {
+ 'shared': SafeModelMultipleChoiceField,
+ }
class MealPlanForm(forms.ModelForm):
+ def __init__(self, *args, **kwargs):
+ space = kwargs.pop('space')
+ super().__init__(*args, **kwargs)
+ self.fields['recipe'].queryset = Recipe.objects.filter(space=space).all()
+ self.fields['meal_type'].queryset = MealType.objects.filter(space=space).all()
+ self.fields['shared'].queryset = User.objects.filter(userpreference__space=space).all()
def clean(self):
cleaned_data = super(MealPlanForm, self).clean()
@@ -318,15 +363,28 @@ class MealPlanForm(forms.ModelForm):
'date': DateWidget,
'shared': MultiSelectWidget
}
+ field_classes = {
+ 'recipe': SafeModelChoiceField,
+ 'meal_type': SafeModelChoiceField,
+ 'shared': SafeModelMultipleChoiceField,
+ }
class InviteLinkForm(forms.ModelForm):
+ def __init__(self, *args, **kwargs):
+ user = kwargs.pop('user')
+ super().__init__(*args, **kwargs)
+ self.fields['space'].queryset = Space.objects.filter(created_by=user).all()
+
class Meta:
model = InviteLink
- fields = ('username', 'group', 'valid_until')
+ fields = ('username', 'group', 'valid_until', 'space')
help_texts = {
'username': _('A username is not required, if left blank the new user can choose one.') # noqa: E501
}
+ field_classes = {
+ 'space': SafeModelChoiceField,
+ }
class UserCreateForm(forms.Form):
diff --git a/cookbook/helper/CustomTestRunner.py b/cookbook/helper/CustomTestRunner.py
new file mode 100644
index 00000000..b7043051
--- /dev/null
+++ b/cookbook/helper/CustomTestRunner.py
@@ -0,0 +1,8 @@
+from django.test.runner import DiscoverRunner
+from django_scopes import scopes_disabled
+
+
+class CustomTestRunner(DiscoverRunner):
+ def run_tests(self, *args, **kwargs):
+ with scopes_disabled():
+ return super().run_tests(*args, **kwargs)
diff --git a/cookbook/helper/dal.py b/cookbook/helper/dal.py
index 6a109a6d..879279c8 100644
--- a/cookbook/helper/dal.py
+++ b/cookbook/helper/dal.py
@@ -10,7 +10,7 @@ class BaseAutocomplete(autocomplete.Select2QuerySetView):
if not self.request.user.is_authenticated:
return self.model.objects.none()
- qs = self.model.objects.all()
+ qs = self.model.objects.filter(space=self.request.space).all()
if self.q:
qs = qs.filter(name__icontains=self.q)
diff --git a/cookbook/helper/permission_helper.py b/cookbook/helper/permission_helper.py
index f6db4d81..794107f1 100644
--- a/cookbook/helper/permission_helper.py
+++ b/cookbook/helper/permission_helper.py
@@ -1,6 +1,9 @@
"""
Source: https://djangosnippets.org/snippets/1703/
"""
+from django.views.generic.detail import SingleObjectTemplateResponseMixin
+from django.views.generic.edit import ModelFormMixin
+
from cookbook.models import ShareLink
from django.contrib import messages
from django.contrib.auth.decorators import user_passes_test
@@ -40,8 +43,7 @@ def has_group_permission(user, groups):
return False
groups_allowed = get_allowed_groups(groups)
if user.is_authenticated:
- if (user.is_superuser
- | bool(user.groups.filter(name__in=groups_allowed))):
+ if bool(user.groups.filter(name__in=groups_allowed)):
return True
return False
@@ -56,19 +58,12 @@ def is_object_owner(user, obj):
:param obj any object that should be tested
:return: true if user is owner of object, false otherwise
"""
- # TODO this could be improved/cleaned up by adding
- # get_owner methods to all models that allow owner checks
if not user.is_authenticated:
return False
- if user.is_superuser:
- return True
- if owner := getattr(obj, 'created_by', None):
- return owner == user
- if owner := getattr(obj, 'user', None):
- return owner == user
- if getattr(obj, 'get_owner', None):
+ try:
return obj.get_owner() == user
- return False
+ except:
+ return False
def is_object_shared(user, obj):
@@ -84,9 +79,7 @@ def is_object_shared(user, obj):
# share checks for relevant objects
if not user.is_authenticated:
return False
- if user.is_superuser:
- return True
- return user in obj.shared.all()
+ return user in obj.get_shared()
def share_link_valid(recipe, share):
@@ -97,11 +90,7 @@ def share_link_valid(recipe, share):
:return: true if a share link with the given recipe and uuid exists
"""
try:
- return (
- True
- if ShareLink.objects.filter(recipe=recipe, uuid=share).exists()
- else False
- )
+ return True if ShareLink.objects.filter(recipe=recipe, uuid=share).exists() else False
except ValidationError:
return False
@@ -119,7 +108,7 @@ def group_required(*groups_required):
def in_groups(u):
return has_group_permission(u, groups_required)
- return user_passes_test(in_groups, login_url='view_no_group')
+ return user_passes_test(in_groups, login_url='view_no_perm')
class GroupRequiredMixin(object):
@@ -131,13 +120,17 @@ class GroupRequiredMixin(object):
def dispatch(self, request, *args, **kwargs):
if not has_group_permission(request.user, self.groups_required):
- messages.add_message(
- request,
- messages.ERROR,
- _('You do not have the required permissions to view this page!') # noqa: E501
- )
+ messages.add_message(request, messages.ERROR, _('You do not have the required permissions to view this page!'))
return HttpResponseRedirect(reverse_lazy('index'))
+ try:
+ obj = self.get_object()
+ if obj.get_space() != request.space:
+ messages.add_message(request, messages.ERROR, _('You do not have the required permissions to view this page!'))
+ return HttpResponseRedirect(reverse_lazy('index'))
+ except AttributeError:
+ pass
+
return super(GroupRequiredMixin, self).dispatch(request, *args, **kwargs)
@@ -145,25 +138,22 @@ class OwnerRequiredMixin(object):
def dispatch(self, request, *args, **kwargs):
if not request.user.is_authenticated:
- messages.add_message(
- request,
- messages.ERROR,
- _('You are not logged in and therefore cannot view this page!')
- )
- return HttpResponseRedirect(
- reverse_lazy('account_login') + '?next=' + request.path
- )
+ messages.add_message(request, messages.ERROR, _('You are not logged in and therefore cannot view this page!'))
+ return HttpResponseRedirect(reverse_lazy('account_login') + '?next=' + request.path)
else:
if not is_object_owner(request.user, self.get_object()):
- messages.add_message(
- request,
- messages.ERROR,
- _('You cannot interact with this object as it is not owned by you!') # noqa: E501
- )
+ messages.add_message(request, messages.ERROR, _('You cannot interact with this object as it is not owned by you!'))
return HttpResponseRedirect(reverse('index'))
- return super(OwnerRequiredMixin, self) \
- .dispatch(request, *args, **kwargs)
+ try:
+ obj = self.get_object()
+ if obj.get_space() != request.space:
+ messages.add_message(request, messages.ERROR, _('You do not have the required permissions to view this page!'))
+ return HttpResponseRedirect(reverse_lazy('index'))
+ except AttributeError:
+ pass
+
+ return super(OwnerRequiredMixin, self).dispatch(request, *args, **kwargs)
# Django Rest Framework Permission classes
diff --git a/cookbook/helper/recipe_url_import.py b/cookbook/helper/recipe_url_import.py
index d9be5196..2994bcb7 100644
--- a/cookbook/helper/recipe_url_import.py
+++ b/cookbook/helper/recipe_url_import.py
@@ -13,7 +13,7 @@ from django.utils.translation import gettext as _
from recipe_scrapers import _utils
-def get_from_html(html_text, url):
+def get_from_html(html_text, url, space):
soup = BeautifulSoup(html_text, "html.parser")
# first try finding ld+json as its most common
@@ -32,7 +32,7 @@ def get_from_html(html_text, url):
if ('@type' in ld_json_item
and ld_json_item['@type'] == 'Recipe'):
- return JsonResponse(find_recipe_json(ld_json_item, url))
+ return JsonResponse(find_recipe_json(ld_json_item, url, space))
except JSONDecodeError:
return JsonResponse(
{
@@ -46,7 +46,7 @@ def get_from_html(html_text, url):
for i in items:
md_json = json.loads(i.json())
if 'schema.org/Recipe' in str(md_json['type']):
- return JsonResponse(find_recipe_json(md_json['properties'], url))
+ return JsonResponse(find_recipe_json(md_json['properties'], url, space))
return JsonResponse(
{
@@ -56,7 +56,7 @@ def get_from_html(html_text, url):
status=400)
-def find_recipe_json(ld_json, url):
+def find_recipe_json(ld_json, url, space):
if type(ld_json['name']) == list:
try:
ld_json['name'] = ld_json['name'][0]
@@ -85,6 +85,7 @@ def find_recipe_json(ld_json, url):
for x in ld_json['recipeIngredient']:
if x.replace(' ', '') != '':
+ x = x.replace('½', "0.5").replace('¼', "0.25").replace('¾', "0.75")
try:
amount, unit, ingredient, note = parse_ingredient(x)
if ingredient:
diff --git a/cookbook/helper/scope_middleware.py b/cookbook/helper/scope_middleware.py
new file mode 100644
index 00000000..6b5191df
--- /dev/null
+++ b/cookbook/helper/scope_middleware.py
@@ -0,0 +1,33 @@
+from django.shortcuts import redirect
+from django.urls import reverse
+from django_scopes import scope, scopes_disabled
+
+from cookbook.views import views
+
+
+class ScopeMiddleware:
+ def __init__(self, get_response):
+ self.get_response = get_response
+
+ def __call__(self, request):
+ if request.user.is_authenticated:
+
+ if request.path.startswith('/admin/'):
+ with scopes_disabled():
+ return self.get_response(request)
+
+ with scopes_disabled():
+ if request.user.userpreference.space is None and not reverse('account_logout') in request.path:
+ return views.no_space(request)
+
+ if request.user.groups.count() == 0 and not reverse('account_logout') in request.path:
+ return views.no_groups(request)
+
+ request.space = request.user.userpreference.space
+ # with scopes_disabled():
+ with scope(space=request.space):
+ return self.get_response(request)
+ else:
+ with scopes_disabled():
+ request.space = None
+ return self.get_response(request)
diff --git a/cookbook/helper/template_helper.py b/cookbook/helper/template_helper.py
index f709dccc..4eb4b98c 100644
--- a/cookbook/helper/template_helper.py
+++ b/cookbook/helper/template_helper.py
@@ -1,6 +1,6 @@
import bleach
import markdown as md
-from bleach_whitelist import markdown_attrs, markdown_tags
+from bleach_allowlist import markdown_attrs, markdown_tags
from cookbook.helper.mdx_attributes import MarkdownFormatExtension
from cookbook.helper.mdx_urlize import UrlizeExtension
from jinja2 import Template, TemplateSyntaxError
diff --git a/cookbook/integration/chowdown.py b/cookbook/integration/chowdown.py
index ecd2c45e..b0066327 100644
--- a/cookbook/integration/chowdown.py
+++ b/cookbook/integration/chowdown.py
@@ -12,7 +12,7 @@ class Chowdown(Integration):
def import_file_name_filter(self, zip_info_object):
print("testing", zip_info_object.filename)
- return re.match(r'^_recipes/([A-Za-z\d\s-])+.md$', zip_info_object.filename)
+ return re.match(r'^(_)*recipes/([A-Za-z\d\s-])+.md$', zip_info_object.filename)
def get_recipe_from_file(self, file):
ingredient_mode = False
@@ -47,10 +47,10 @@ class Chowdown(Integration):
if description_mode and len(line) > 3 and '---' not in line:
descriptions.append(line)
- recipe = Recipe.objects.create(name=title, created_by=self.request.user, internal=True, )
+ recipe = Recipe.objects.create(name=title, created_by=self.request.user, internal=True, space=self.request.space)
for k in tags.split(','):
- keyword, created = Keyword.objects.get_or_create(name=k.strip())
+ keyword, created = Keyword.objects.get_or_create(name=k.strip(), space=self.request.space)
recipe.keywords.add(keyword)
step = Step.objects.create(
@@ -59,16 +59,16 @@ class Chowdown(Integration):
for ingredient in ingredients:
amount, unit, ingredient, note = parse(ingredient)
- f, created = Food.objects.get_or_create(name=ingredient)
- u, created = Unit.objects.get_or_create(name=unit)
+ f, created = Food.objects.get_or_create(name=ingredient, space=self.request.space)
+ u, created = Unit.objects.get_or_create(name=unit, space=self.request.space)
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=amount, note=note
))
recipe.steps.add(step)
for f in self.files:
- if '.zip' in f.name:
- import_zip = ZipFile(f.file)
+ if '.zip' in f['name']:
+ import_zip = ZipFile(f['file'])
for z in import_zip.filelist:
if re.match(f'^images/{image}$', z.filename):
self.import_recipe_image(recipe, BytesIO(import_zip.read(z.filename)))
diff --git a/cookbook/integration/integration.py b/cookbook/integration/integration.py
index 89c4af01..39d08c2b 100644
--- a/cookbook/integration/integration.py
+++ b/cookbook/integration/integration.py
@@ -10,7 +10,9 @@ from django.http import HttpResponseRedirect, HttpResponse
from django.urls import reverse
from django.utils.formats import date_format
from django.utils.translation import gettext as _
-from cookbook.models import Keyword
+from django_scopes import scope
+
+from cookbook.models import Keyword, Recipe
class Integration:
@@ -18,16 +20,17 @@ class Integration:
keyword = None
files = None
- def __init__(self, request):
+ def __init__(self, request, export_type):
"""
Integration for importing and exporting recipes
:param request: request context of import session (used to link user to created objects)
"""
self.request = request
self.keyword = Keyword.objects.create(
- name=f'Import {date_format(datetime.datetime.now(), "DATETIME_FORMAT")}.{datetime.datetime.now().strftime("%S")}',
+ name=f'Import {export_type} {date_format(datetime.datetime.now(), "DATETIME_FORMAT")}.{datetime.datetime.now().strftime("%S")}',
description=f'Imported by {request.user.get_user_name()} at {date_format(datetime.datetime.now(), "DATETIME_FORMAT")}',
- icon='📥'
+ icon='📥',
+ space=request.space
)
def do_export(self, recipes):
@@ -40,7 +43,7 @@ class Integration:
export_zip_obj = ZipFile(export_zip_stream, 'w')
for r in recipes:
- if r.internal:
+ if r.internal and r.space == self.request.space:
recipe_zip_stream = BytesIO()
recipe_zip_obj = ZipFile(recipe_zip_stream, 'w')
@@ -74,29 +77,55 @@ class Integration:
"""
return True
- def do_import(self, files):
+ def do_import(self, files, il):
"""
Imports given files
:param files: List of in memory files
+ :param il: Import Log object to refresh while running
:return: HttpResponseRedirect to the recipe search showing all imported recipes
"""
- try:
- self.files = files
- for f in files:
- if '.zip' in f.name:
- import_zip = ZipFile(f.file)
- for z in import_zip.filelist:
- if self.import_file_name_filter(z):
- recipe = self.get_recipe_from_file(BytesIO(import_zip.read(z.filename)))
- recipe.keywords.add(self.keyword)
- import_zip.close()
- else:
- recipe = self.get_recipe_from_file(f.file)
- recipe.keywords.add(self.keyword)
- except BadZipFile:
- messages.add_message(self.request, messages.ERROR, _('Importer expected a .zip file. Did you choose the correct importer type for your data ?'))
+ with scope(space=self.request.space):
+ ignored_recipes = []
+ try:
+ self.files = files
+ for f in files:
+ if '.zip' in f['name'] or '.paprikarecipes' in f['name']:
+ import_zip = ZipFile(f['file'])
+ for z in import_zip.filelist:
+ if self.import_file_name_filter(z):
+ recipe = self.get_recipe_from_file(BytesIO(import_zip.read(z.filename)))
+ recipe.keywords.add(self.keyword)
+ il.msg += f'{recipe.pk} - {recipe.name} \n'
+ if duplicate := self.is_duplicate(recipe):
+ ignored_recipes.append(duplicate)
+ import_zip.close()
+ else:
+ recipe = self.get_recipe_from_file(f['file'])
+ recipe.keywords.add(self.keyword)
+ il.msg += f'{recipe.pk} - {recipe.name} \n'
+ if duplicate := self.is_duplicate(recipe):
+ ignored_recipes.append(duplicate)
+ except BadZipFile:
+ il.msg += 'ERROR ' + _('Importer expected a .zip file. Did you choose the correct importer type for your data ?') + '\n'
- return HttpResponseRedirect(reverse('view_search') + '?keywords=' + str(self.keyword.pk))
+ if len(ignored_recipes) > 0:
+ il.msg += '\n' + _('The following recipes were ignored because they already existed:') + ' ' + ', '.join(ignored_recipes) + '\n\n'
+
+ il.keyword = self.keyword
+ il.msg += (_('Imported %s recipes.') % Recipe.objects.filter(keywords=self.keyword).count()) + '\n'
+ il.running = False
+ il.save()
+
+ def is_duplicate(self, recipe):
+ """
+ Checks if a recipe is already present, if so deletes it
+ :param recipe: Recipe object
+ """
+ if Recipe.objects.filter(space=self.request.space, name=recipe.name).count() > 1:
+ recipe.delete()
+ return recipe.name
+ else:
+ return None
@staticmethod
def import_recipe_image(recipe, image_file):
diff --git a/cookbook/integration/mealie.py b/cookbook/integration/mealie.py
index 8099f665..207e130a 100644
--- a/cookbook/integration/mealie.py
+++ b/cookbook/integration/mealie.py
@@ -18,7 +18,7 @@ class Mealie(Integration):
recipe = Recipe.objects.create(
name=recipe_json['name'].strip(), description=recipe_json['description'].strip(),
- created_by=self.request.user, internal=True)
+ created_by=self.request.user, internal=True, space=self.request.space)
# TODO parse times (given in PT2H3M )
@@ -32,16 +32,16 @@ class Mealie(Integration):
for ingredient in recipe_json['recipeIngredient']:
amount, unit, ingredient, note = parse(ingredient)
- f, created = Food.objects.get_or_create(name=ingredient)
- u, created = Unit.objects.get_or_create(name=unit)
+ f, created = Food.objects.get_or_create(name=ingredient, space=self.request.space)
+ u, created = Unit.objects.get_or_create(name=unit, space=self.request.space)
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=amount, note=note
))
recipe.steps.add(step)
for f in self.files:
- if '.zip' in f.name:
- import_zip = ZipFile(f.file)
+ if '.zip' in f['name']:
+ import_zip = ZipFile(f['file'])
for z in import_zip.filelist:
if re.match(f'^images/{recipe_json["slug"]}.jpg$', z.filename):
self.import_recipe_image(recipe, BytesIO(import_zip.read(z.filename)))
diff --git a/cookbook/integration/nextcloud_cookbook.py b/cookbook/integration/nextcloud_cookbook.py
index 47580e1a..24d1d998 100644
--- a/cookbook/integration/nextcloud_cookbook.py
+++ b/cookbook/integration/nextcloud_cookbook.py
@@ -19,7 +19,7 @@ class NextcloudCookbook(Integration):
recipe = Recipe.objects.create(
name=recipe_json['name'].strip(), description=recipe_json['description'].strip(),
created_by=self.request.user, internal=True,
- servings=recipe_json['recipeYield'])
+ servings=recipe_json['recipeYield'], space=self.request.space)
# TODO parse times (given in PT2H3M )
# TODO parse keywords
@@ -34,16 +34,16 @@ class NextcloudCookbook(Integration):
for ingredient in recipe_json['recipeIngredient']:
amount, unit, ingredient, note = parse(ingredient)
- f, created = Food.objects.get_or_create(name=ingredient)
- u, created = Unit.objects.get_or_create(name=unit)
+ f, created = Food.objects.get_or_create(name=ingredient, space=self.request.space)
+ u, created = Unit.objects.get_or_create(name=unit, space=self.request.space)
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=amount, note=note
))
recipe.steps.add(step)
for f in self.files:
- if '.zip' in f.name:
- import_zip = ZipFile(f.file)
+ if '.zip' in f['name']:
+ import_zip = ZipFile(f['file'])
for z in import_zip.filelist:
if re.match(f'^Recipes/{recipe.name}/full.jpg$', z.filename):
self.import_recipe_image(recipe, BytesIO(import_zip.read(z.filename)))
diff --git a/cookbook/integration/paprika.py b/cookbook/integration/paprika.py
index 520c90b6..26fd6b86 100644
--- a/cookbook/integration/paprika.py
+++ b/cookbook/integration/paprika.py
@@ -1,3 +1,4 @@
+import base64
import json
import re
from io import BytesIO
@@ -6,51 +7,39 @@ from zipfile import ZipFile
import microdata
from bs4 import BeautifulSoup
+from cookbook.helper.ingredient_parser import parse
from cookbook.helper.recipe_url_import import find_recipe_json
from cookbook.integration.integration import Integration
from cookbook.models import Recipe, Step, Food, Ingredient, Unit
+import gzip
class Paprika(Integration):
- def import_file_name_filter(self, zip_info_object):
- print("testing", zip_info_object.filename)
- return re.match(r'^Recipes/([A-Za-z\s])+.html$', zip_info_object.filename)
-
def get_file_from_recipe(self, recipe):
raise NotImplementedError('Method not implemented in storage integration')
def get_recipe_from_file(self, file):
- html_text = file.getvalue().decode("utf-8")
+ with gzip.open(file, 'r') as recipe_zip:
+ recipe_json = json.loads(recipe_zip.read().decode("utf-8"))
- items = microdata.get_items(html_text)
- for i in items:
- md_json = json.loads(i.json())
- if 'schema.org/Recipe' in str(md_json['type']):
- recipe_json = find_recipe_json(md_json['properties'], '')
- recipe = Recipe.objects.create(name=recipe_json['name'].strip(), created_by=self.request.user, internal=True)
- step = Step.objects.create(
- instruction=recipe_json['recipeInstructions']
- )
+ recipe = Recipe.objects.create(
+ name=recipe_json['name'].strip(), description=recipe_json['description'].strip(),
+ created_by=self.request.user, internal=True, space=self.request.space)
- for ingredient in recipe_json['recipeIngredient']:
- f, created = Food.objects.get_or_create(name=ingredient['ingredient']['text'])
- u, created = Unit.objects.get_or_create(name=ingredient['unit']['text'])
- step.ingredients.add(Ingredient.objects.create(
- food=f, unit=u, amount=ingredient['amount'], note=ingredient['note']
- ))
+ step = Step.objects.create(
+ instruction=recipe_json['directions'] + '\n\n' + recipe_json['nutritional_info']
+ )
- recipe.steps.add(step)
+ for ingredient in recipe_json['ingredients'].split('\n'):
+ amount, unit, ingredient, note = parse(ingredient)
+ f, created = Food.objects.get_or_create(name=ingredient, space=self.request.space)
+ u, created = Unit.objects.get_or_create(name=unit, space=self.request.space)
+ step.ingredients.add(Ingredient.objects.create(
+ food=f, unit=u, amount=amount, note=note
+ ))
- soup = BeautifulSoup(html_text, "html.parser")
- image = soup.find('img')
- image_name = image.attrs['src'].strip().replace('Images/', '')
+ recipe.steps.add(step)
- for f in self.files:
- if '.zip' in f.name:
- import_zip = ZipFile(f.file)
- for z in import_zip.filelist:
- if re.match(f'^Recipes/Images/{image_name}$', z.filename):
- self.import_recipe_image(recipe, BytesIO(import_zip.read(z.filename)))
-
- return recipe
+ self.import_recipe_image(recipe, BytesIO(base64.b64decode(recipe_json['photo_data'])))
+ return recipe
diff --git a/cookbook/integration/safron.py b/cookbook/integration/safron.py
index 77277950..c2cb90aa 100644
--- a/cookbook/integration/safron.py
+++ b/cookbook/integration/safron.py
@@ -41,14 +41,14 @@ class Safron(Integration):
ingredient_mode = False
direction_mode = True
- recipe = Recipe.objects.create(name=title, description=description, created_by=self.request.user, internal=True, )
+ recipe = Recipe.objects.create(name=title, description=description, created_by=self.request.user, internal=True, space=self.request.space, )
step = Step.objects.create(instruction='\n'.join(directions))
for ingredient in ingredients:
amount, unit, ingredient, note = parse(ingredient)
- f, created = Food.objects.get_or_create(name=ingredient)
- u, created = Unit.objects.get_or_create(name=unit)
+ f, created = Food.objects.get_or_create(name=ingredient, space=self.request.space)
+ u, created = Unit.objects.get_or_create(name=unit, space=self.request.space)
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=amount, note=note
))
diff --git a/cookbook/locale/de/LC_MESSAGES/django.mo b/cookbook/locale/de/LC_MESSAGES/django.mo
index e81bb3b7..116dec9a 100644
Binary files a/cookbook/locale/de/LC_MESSAGES/django.mo and b/cookbook/locale/de/LC_MESSAGES/django.mo differ
diff --git a/cookbook/locale/de/LC_MESSAGES/django.po b/cookbook/locale/de/LC_MESSAGES/django.po
index 9d8e5884..bdb830d5 100644
--- a/cookbook/locale/de/LC_MESSAGES/django.po
+++ b/cookbook/locale/de/LC_MESSAGES/django.po
@@ -2,11 +2,14 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR , YEAR.
-#
+#
# Translators:
# Benjamin Danowski , 2020
# vabene1111 , 2020
-#
+# Aaron Dötsch, 2020
+# Tobias Lindenberg , 2021
+# Maximilian J, 2021
+#
#, fuzzy
msgid ""
msgstr ""
@@ -14,13 +17,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-09 18:01+0100\n"
"PO-Revision-Date: 2020-06-02 19:28+0000\n"
-"Last-Translator: vabene1111 , 2020\n"
-"Language-Team: German (https://www.transifex.com/django-recipes/teams/110507/"
-"de/)\n"
-"Language: de\n"
+"Last-Translator: Maximilian J, 2021\n"
+"Language-Team: German (https://www.transifex.com/django-recipes/teams/110507/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: .\cookbook\filters.py:22 .\cookbook\templates\base.html:87
@@ -46,21 +48,25 @@ msgstr "Standardeinheit für neue Zutaten."
msgid ""
"Enables support for fractions in ingredient amounts (e.g. convert decimals "
"to fractions automatically)"
-msgstr "Unterstützung für Brüche aktivieren in Zutaten aktivieren."
+msgstr ""
+"Unterstützung für Brüche in Zutaten aktivieren. Dadurch werden Dezimalzahlen"
+" mit Brüchen ersetzt, z.B. 0.5 mit ½."
#: .\cookbook\forms.py:47
msgid ""
"Users with whom newly created meal plan/shopping list entries should be "
"shared by default."
msgstr ""
+"Nutzer, mit denen neue Pläne und Einkaufslisten standardmäßig geteilt werden"
+" sollen."
#: .\cookbook\forms.py:48
msgid "Show recently viewed recipes on search page."
-msgstr "Zeige zuletzt angeschaute Rezepte über den Suchergebnissen."
+msgstr "Zuletzt angeschaute Rezepte bei der Suche anzeigen."
#: .\cookbook\forms.py:49
msgid "Number of decimals to round ingredients."
-msgstr "Anzahl Dezimalstellen, auf die gerundet werden soll."
+msgstr "Anzahl an Dezimalstellen, auf die gerundet werden soll."
#: .\cookbook\forms.py:50
msgid "If you want to be able to create and see comments underneath recipes."
@@ -74,13 +80,13 @@ msgid ""
"mobile data. If lower than instance limit it is reset when saving."
msgstr ""
"0 deaktiviert automatische Synchronisation. Wird eine Einkaufsliste "
-"betrachtet, wird wird sie gemäß der Einstellung alle paar Sekunden "
+"betrachtet, dann wird wird sie gemäß der Einstellung alle paar Sekunden "
"aktualisiert. Dies ist nützlich, wenn mehrere Personen eine Liste beim "
"Einkaufen verwenden, benötigt jedoch etwas Datenvolumen."
#: .\cookbook\forms.py:55
msgid "Makes the navbar stick to the top of the page."
-msgstr ""
+msgstr "Navigationsleiste wird oben angeheftet."
#: .\cookbook\forms.py:71
msgid ""
@@ -116,25 +122,23 @@ msgstr "Pfad"
#: .\cookbook\forms.py:97
msgid "Storage UID"
-msgstr "Speicher ID"
+msgstr "Speicher-ID"
#: .\cookbook\forms.py:117
-#, fuzzy
-#| msgid "Number of Days"
msgid "Number of servings"
-msgstr "Anzahl Tage"
+msgstr "Anzahl der Portionen"
#: .\cookbook\forms.py:128
msgid ""
"Include - [ ] in list for easier usage in markdown based "
"documents."
msgstr ""
-"Füge - [ ] vor den Zutaten ein, um sie besser in einem Markdown-"
-"Dokument zu verwenden."
+"Füge - [ ] vor den Zutaten ein, um sie besser in einem "
+"Markdown-Dokument zu verwenden."
#: .\cookbook\forms.py:143
msgid "Default"
-msgstr ""
+msgstr "Standard"
#: .\cookbook\forms.py:162
msgid "New Unit"
@@ -162,7 +166,7 @@ msgstr "Neue Zutat, die die alte ersetzt."
#: .\cookbook\forms.py:185
msgid "Old Food"
-msgstr "Alte Zutat."
+msgstr "Alte Zutat"
#: .\cookbook\forms.py:186
msgid "Food that should be replaced."
@@ -182,11 +186,11 @@ msgstr "Für Nextcloud leer lassen, für Dropbox API-Token eingeben."
#: .\cookbook\forms.py:244
msgid ""
-"Leave empty for dropbox and enter only base url for nextcloud (/remote."
-"php/webdav/ is added automatically)"
+"Leave empty for dropbox and enter only base url for nextcloud "
+"(/remote.php/webdav/ is added automatically)"
msgstr ""
-"Für Dropbox leer lassen. Für Nextcloud Server-URL angeben, (/remote."
-"php/webdav/ wird automatisch hinzugefügt)"
+"Für Dropbox leer lassen, für Nextcloud Server-URL angeben "
+"(/remote.php/webdav/ wird automatisch hinzugefügt)"
#: .\cookbook\forms.py:263
msgid "Search String"
@@ -194,7 +198,7 @@ msgstr "Suchwort"
#: .\cookbook\forms.py:280
msgid "File ID"
-msgstr "Datei ID"
+msgstr "Datei-ID"
#: .\cookbook\forms.py:299
msgid "You must provide at least a recipe or a title."
@@ -203,23 +207,23 @@ msgstr "Mindestens ein Rezept oder ein Titel müssen angegeben werden."
#: .\cookbook\forms.py:312
msgid "You can list default users to share recipes with in the settings."
msgstr ""
-"Benutzer, mit denen neue Rezepte standardmäßig geteilt werden sollen, können "
-"in den Einstellungen angegeben werden."
+"Benutzer, mit denen neue Rezepte standardmäßig geteilt werden sollen, können"
+" in den Einstellungen angegeben werden."
#: .\cookbook\forms.py:313
#: .\cookbook\templates\forms\edit_internal_recipe.html:377
msgid ""
-"You can use markdown to format this field. See the docs here"
+"You can use markdown to format this field. See the docs here"
msgstr ""
-"Markdown kann genutzt werden, um dieses Feld zu formatieren. Siehe hier für weitere Information."
+"Markdown kann genutzt werden, um dieses Feld zu formatieren. Siehe hier für weitere Information."
#: .\cookbook\forms.py:328
msgid "A username is not required, if left blank the new user can choose one."
msgstr ""
-"Kein Benutzername benötigt. Wenn leer gelassen, kann der neue Benutzer einen "
-"wählen."
+"Kein Benutzername benötigt. Wenn leer gelassen, kann der neue Benutzer einen"
+" wählen."
#: .\cookbook\helper\permission_helper.py:137
#: .\cookbook\helper\permission_helper.py:206
@@ -228,7 +232,7 @@ msgstr ""
#: .\cookbook\helper\permission_helper.py:242 .\cookbook\views\data.py:32
#: .\cookbook\views\views.py:106 .\cookbook\views\views.py:218
msgid "You do not have the required permissions to view this page!"
-msgstr "Du hast nicht die notwendigen Rechte, um diese Seite zu anzuzeigen!"
+msgstr "Du hast nicht die notwendigen Rechte um diese Seite zu sehen!"
#: .\cookbook\helper\permission_helper.py:151
msgid "You are not logged in and therefore cannot view this page!"
@@ -249,8 +253,8 @@ msgstr ""
#: .\cookbook\helper\recipe_url_import.py:53
msgid ""
-"The requested site does not provide any recognized data format to import the "
-"recipe from."
+"The requested site does not provide any recognized data format to import the"
+" recipe from."
msgstr ""
"Die angefragte Seite stellt keine bekannten Datenformate zur Verfügung."
@@ -263,24 +267,24 @@ msgid ""
"Importer expected a .zip file. Did you choose the correct importer type for "
"your data ?"
msgstr ""
+"Importer erwartet eine .zip Datei. Hast du den richtigen Importer-Typ für "
+"deine Daten ausgewählt?"
#: .\cookbook\integration\safron.py:23
#: .\cookbook\templates\forms\edit_internal_recipe.html:65
#: .\cookbook\templates\include\log_cooking.html:16
#: .\cookbook\templates\url_import.html:65
msgid "Servings"
-msgstr "Portionen"
+msgstr "Portion(en)"
#: .\cookbook\integration\safron.py:25
-#, fuzzy
-#| msgid "Waiting time ~"
msgid "Waiting time"
-msgstr "Wartezeit ~"
+msgstr "Wartezeit"
#: .\cookbook\integration\safron.py:27
#: .\cookbook\templates\forms\edit_internal_recipe.html:59
msgid "Preparation Time"
-msgstr "Vorbereitungs Zeit"
+msgstr "Vorbereitungszeit"
#: .\cookbook\integration\safron.py:29 .\cookbook\templates\base.html:67
#: .\cookbook\templates\forms\ingredients.html:7
@@ -289,10 +293,8 @@ msgid "Cookbook"
msgstr "Kochbuch"
#: .\cookbook\integration\safron.py:31
-#, fuzzy
-#| msgid "Nutrition"
msgid "Section"
-msgstr "Nährwert"
+msgstr "Sektion"
#: .\cookbook\migrations\0047_auto_20200602_1133.py:12
msgid "Breakfast"
@@ -318,7 +320,7 @@ msgstr "Suche"
#: .\cookbook\templates\meal_plan.html:5 .\cookbook\views\delete.py:165
#: .\cookbook\views\edit.py:216 .\cookbook\views\new.py:189
msgid "Meal-Plan"
-msgstr "Plan"
+msgstr "Essensplan"
#: .\cookbook\models.py:79 .\cookbook\templates\base.html:78
msgid "Books"
@@ -378,47 +380,45 @@ msgstr "Zur Hauptseite"
#: .\cookbook\templates\404.html:35
msgid "Report a Bug"
-msgstr "Einen Bug melden"
+msgstr "Fehler melden"
#: .\cookbook\templates\account\login.html:7
#: .\cookbook\templates\base.html:166
msgid "Login"
-msgstr "Einloggen"
+msgstr "Anmelden"
#: .\cookbook\templates\account\login.html:13
#: .\cookbook\templates\account\login.html:28
msgid "Sign In"
-msgstr ""
+msgstr "Einloggen"
#: .\cookbook\templates\account\login.html:38
msgid "Social Login"
-msgstr ""
+msgstr "Social Login"
#: .\cookbook\templates\account\login.html:39
msgid "You can use any of the following providers to sign in."
-msgstr ""
+msgstr "Du kannst jeden der folgenden Anbieter zum Einloggen verwenden."
#: .\cookbook\templates\account\logout.html:5
#: .\cookbook\templates\account\logout.html:9
#: .\cookbook\templates\account\logout.html:18
msgid "Sign Out"
-msgstr ""
+msgstr "Ausloggen"
#: .\cookbook\templates\account\logout.html:11
-#, fuzzy
-#| msgid "Are you sure that you want to merge these two units?"
msgid "Are you sure you want to sign out?"
-msgstr "Bist du sicher diese beiden Einheiten zusammengeführt werden sollen ?"
+msgstr "Willst du dich wirklich ausloggen?"
#: .\cookbook\templates\account\password_reset.html:5
#: .\cookbook\templates\account\password_reset_done.html:5
msgid "Password Reset"
-msgstr ""
+msgstr "Passwort Reset"
#: .\cookbook\templates\account\password_reset.html:9
#: .\cookbook\templates\account\password_reset_done.html:9
msgid "Password reset is not implemented for the time being!"
-msgstr ""
+msgstr "Passwort-Rücksetzung ist derzeit noch nicht implementiert!"
#: .\cookbook\templates\account\signup.html:5
msgid "Register"
@@ -465,7 +465,7 @@ msgstr "Speicherquellen"
#: .\cookbook\templates\base.html:111
msgid "Configure Sync"
-msgstr "Sync einstellen"
+msgstr "Synchronisation einstellen"
#: .\cookbook\templates\base.html:113
msgid "Discovered Recipes"
@@ -473,7 +473,7 @@ msgstr "Entdeckte Rezepte"
#: .\cookbook\templates\base.html:115
msgid "Discovery Log"
-msgstr "Entdeckungs-Log"
+msgstr "Entdeckungsverlauf"
#: .\cookbook\templates\base.html:117 .\cookbook\templates\stats.html:10
msgid "Statistics"
@@ -485,7 +485,7 @@ msgstr "Einheiten & Zutaten"
#: .\cookbook\templates\base.html:121
msgid "Import Recipe"
-msgstr "Importiere Rezept"
+msgstr "Rezept importieren"
#: .\cookbook\templates\base.html:140 .\cookbook\templates\settings.html:6
#: .\cookbook\templates\settings.html:16
@@ -495,7 +495,7 @@ msgstr "Einstellungen"
#: .\cookbook\templates\base.html:142 .\cookbook\templates\history.html:6
#: .\cookbook\templates\history.html:14
msgid "History"
-msgstr "Geschichte"
+msgstr "Verlauf"
#: .\cookbook\templates\base.html:146 .\cookbook\templates\system.html:13
msgid "System"
@@ -507,7 +507,7 @@ msgstr "Admin"
#: .\cookbook\templates\base.html:152
msgid "Markdown Guide"
-msgstr "Markdown-Hilfe"
+msgstr "Markdown-Anleitung"
#: .\cookbook\templates\base.html:154
msgid "GitHub"
@@ -519,7 +519,7 @@ msgstr "API Browser"
#: .\cookbook\templates\base.html:161
msgid "Logout"
-msgstr "Ausloggen"
+msgstr "Abmelden"
#: .\cookbook\templates\batch\edit.html:6
msgid "Batch edit Category"
@@ -544,10 +544,6 @@ msgid "Manage watched Folders"
msgstr "Überwachte Ordner verwalten"
#: .\cookbook\templates\batch\monitor.html:14
-#, fuzzy
-#| msgid ""
-#| "On this Page you can manage all storage folder locations that should be "
-#| "monitored and synced"
msgid ""
"On this Page you can manage all storage folder locations that should be "
"monitored and synced."
@@ -574,7 +570,7 @@ msgid ""
"please wait."
msgstr ""
"Abhängig von der Anzahl der Rezepte kann dieser Vorgang einige Minuten "
-"dauern, bitte warten."
+"dauern, bitte gedulde dich ein wenig."
#: .\cookbook\templates\books.html:5 .\cookbook\templates\books.html:11
msgid "Recipe Books"
@@ -600,17 +596,17 @@ msgstr "Zuletzt gekocht"
#: .\cookbook\templates\books.html:71
msgid "There are no recipes in this book yet."
-msgstr "In diesem Buch sind bisher keine Rezepte."
+msgstr "In diesem Buch sind bisher noch keine Rezepte."
#: .\cookbook\templates\export.html:6 .\cookbook\templates\test2.html:6
msgid "Export Recipes"
-msgstr "Exportiere Rezepte"
+msgstr "Rezepte exportieren"
#: .\cookbook\templates\export.html:14 .\cookbook\templates\export.html:20
#: .\cookbook\templates\shopping_list.html:345
#: .\cookbook\templates\test2.html:14 .\cookbook\templates\test2.html:20
msgid "Export"
-msgstr "Export"
+msgstr "Exportieren"
#: .\cookbook\templates\forms\edit_import_recipe.html:5
#: .\cookbook\templates\forms\edit_import_recipe.html:9
@@ -640,24 +636,20 @@ msgid "Waiting Time"
msgstr "Wartezeit"
#: .\cookbook\templates\forms\edit_internal_recipe.html:68
-#, fuzzy
-#| msgid "Servings"
msgid "Servings Text"
-msgstr "Portionen"
+msgstr "Portionen-Text"
#: .\cookbook\templates\forms\edit_internal_recipe.html:79
msgid "Select Keywords"
-msgstr "Schlagwort wählen"
+msgstr "Schlagwörter wählen"
#: .\cookbook\templates\forms\edit_internal_recipe.html:93
-#, fuzzy
-#| msgid "Nutrition"
msgid "Description"
-msgstr "Nährwert"
+msgstr "Beschreibung"
#: .\cookbook\templates\forms\edit_internal_recipe.html:108
msgid "Nutrition"
-msgstr "Nährwert"
+msgstr "Nährwerte"
#: .\cookbook\templates\forms\edit_internal_recipe.html:112
#: .\cookbook\templates\forms\edit_internal_recipe.html:162
@@ -674,7 +666,7 @@ msgstr "Kohlenhydrate"
#: .\cookbook\templates\forms\edit_internal_recipe.html:122
msgid "Fats"
-msgstr "Fett"
+msgstr "Fette"
#: .\cookbook\templates\forms\edit_internal_recipe.html:124
msgid "Proteins"
@@ -691,7 +683,7 @@ msgstr "Als Überschrift anzeigen"
#: .\cookbook\templates\forms\edit_internal_recipe.html:173
msgid "Hide as header"
-msgstr "nicht als Überschrift anzeigen"
+msgstr "Nicht als Überschrift anzeigen"
#: .\cookbook\templates\forms\edit_internal_recipe.html:178
msgid "Move Up"
@@ -716,7 +708,7 @@ msgstr "Zeit in Minuten"
#: .\cookbook\templates\forms\edit_internal_recipe.html:261
#: .\cookbook\templates\shopping_list.html:181
msgid "Select Unit"
-msgstr "Einheit auswählen"
+msgstr "Einheit wählen"
#: .\cookbook\templates\forms\edit_internal_recipe.html:262
#: .\cookbook\templates\forms\edit_internal_recipe.html:286
@@ -734,12 +726,12 @@ msgstr "Erstellen"
#: .\cookbook\templates\url_import.html:105
#: .\cookbook\templates\url_import.html:137
msgid "Select"
-msgstr "Wählen"
+msgstr "Auswählen"
#: .\cookbook\templates\forms\edit_internal_recipe.html:285
#: .\cookbook\templates\shopping_list.html:203
msgid "Select Food"
-msgstr "Zutat wählen"
+msgstr "Zutat auswählen"
#: .\cookbook\templates\forms\edit_internal_recipe.html:302
#: .\cookbook\templates\meal_plan.html:256
@@ -753,11 +745,11 @@ msgstr "Zutat löschen"
#: .\cookbook\templates\forms\edit_internal_recipe.html:325
msgid "Make Header"
-msgstr "Überschrift machen"
+msgstr "Überschrift erstellen"
#: .\cookbook\templates\forms\edit_internal_recipe.html:331
msgid "Make Ingredient"
-msgstr "Zutat machen"
+msgstr "Zutat erstellen"
#: .\cookbook\templates\forms\edit_internal_recipe.html:337
msgid "Disable Amount"
@@ -769,7 +761,7 @@ msgstr "Menge aktivieren"
#: .\cookbook\templates\forms\edit_internal_recipe.html:348
msgid "Copy Template Reference"
-msgstr ""
+msgstr "Kopiere Vorlagen-Referenz"
#: .\cookbook\templates\forms\edit_internal_recipe.html:374
#: .\cookbook\templates\url_import.html:177
@@ -812,24 +804,20 @@ msgstr "Schritte"
#: .\cookbook\templates\forms\ingredients.html:15
msgid "Edit Ingredients"
-msgstr "Zutaten Bearbeiten"
+msgstr "Zutaten bearbeiten"
#: .\cookbook\templates\forms\ingredients.html:16
msgid ""
"\n"
-" The following form can be used if, accidentally, two (or more) units "
-"or ingredients where created that should be\n"
+" The following form can be used if, accidentally, two (or more) units or ingredients where created that should be\n"
" the same.\n"
-" It merges two units or ingredients and updates all recipes using "
-"them.\n"
+" It merges two units or ingredients and updates all recipes using them.\n"
" "
msgstr ""
"\n"
-" Dieses Formular kann genutzt werden wenn versehentlich zwei (oder "
-"mehr) Einheitenoder Zutaten erstellt wurden die eigentlich identisch\n"
+" Dieses Formular kann genutzt werden, wenn versehentlich zwei (oder mehr) Einheiten oder Zutaten erstellt wurden, die eigentlich identisch\n"
" sein sollen.\n"
-" Es vereint zwei Zutaten oder Einheiten und aktualisiert alle "
-"entsprechenden Rezepte.\n"
+" Es vereint zwei Zutaten oder Einheiten und aktualisiert alle entsprechenden Rezepte.\n"
" "
#: .\cookbook\templates\forms\ingredients.html:24
@@ -839,7 +827,8 @@ msgstr "Einheiten"
#: .\cookbook\templates\forms\ingredients.html:26
msgid "Are you sure that you want to merge these two units?"
-msgstr "Bist du sicher diese beiden Einheiten zusammengeführt werden sollen ?"
+msgstr ""
+"Bist du dir sicher, dass du diese beiden Einheiten zusammenführen möchtest?"
#: .\cookbook\templates\forms\ingredients.html:31
#: .\cookbook\templates\forms\ingredients.html:40
@@ -848,13 +837,14 @@ msgstr "Zusammenführen"
#: .\cookbook\templates\forms\ingredients.html:36
msgid "Are you sure that you want to merge these two ingredients?"
-msgstr "Bist du sicher diese beiden Zutaten zusammengeführt werden sollen ?"
+msgstr ""
+"Bist du dir sicher, dass du diese beiden Zutaten zusammenführen möchtest?"
#: .\cookbook\templates\generic\delete_template.html:18
-#, fuzzy, python-format
-#| msgid "Are you sure you want to delete the %(title)s: %(object)s?"
+#, python-format
msgid "Are you sure you want to delete the %(title)s: %(object)s "
-msgstr "Bist du sicher das %(title)s: %(object)s gelöscht werden soll "
+msgstr ""
+"Bist du sicher, dass %(title)s: %(object)s gelöscht werden soll?"
#: .\cookbook\templates\generic\delete_template.html:21
msgid "Confirm"
@@ -862,7 +852,7 @@ msgstr "Bestätigen"
#: .\cookbook\templates\generic\edit_template.html:30
msgid "View"
-msgstr "Angucken"
+msgstr "Anschauen"
#: .\cookbook\templates\generic\edit_template.html:34
msgid "Delete original file"
@@ -899,26 +889,26 @@ msgstr "nächste"
#: .\cookbook\templates\history.html:20
msgid "View Log"
-msgstr "Aufruf Log"
+msgstr "Anschau-Verlauf"
#: .\cookbook\templates\history.html:24
msgid "Cook Log"
-msgstr "Koch Log"
+msgstr "Kochverlauf"
#: .\cookbook\templates\import.html:6 .\cookbook\templates\test.html:6
msgid "Import Recipes"
-msgstr "Importierte Rezepte"
+msgstr "Rezepte importieren"
#: .\cookbook\templates\import.html:14 .\cookbook\templates\import.html:20
#: .\cookbook\templates\test.html:14 .\cookbook\templates\test.html:20
#: .\cookbook\templates\url_import.html:211 .\cookbook\views\delete.py:60
#: .\cookbook\views\edit.py:182
msgid "Import"
-msgstr "Rezept Importieren"
+msgstr "Importieren"
#: .\cookbook\templates\include\log_cooking.html:7
msgid "Log Recipe Cooking"
-msgstr "Kochen Protokollieren"
+msgstr "Kochen protokollieren"
#: .\cookbook\templates\include\log_cooking.html:13
msgid "All fields are optional and can be left empty."
@@ -953,28 +943,21 @@ msgstr "Sicherheitswarnung"
#: .\cookbook\templates\include\storage_backend_warning.html:5
msgid ""
"\n"
-" The Password and Token field are stored as plain text "
-"inside the database.\n"
-" This is necessary because they are needed to make API requests, but "
-"it also increases the risk of\n"
+" The Password and Token field are stored as plain text inside the database.\n"
+" This is necessary because they are needed to make API requests, but it also increases the risk of\n"
" someone stealing it. \n"
-" To limit the possible damage tokens or accounts with limited access "
-"can be used.\n"
+" To limit the possible damage tokens or accounts with limited access can be used.\n"
" "
msgstr ""
"\n"
-" Das Password und Token werden im Klartext in der "
-"Datenbank gespeichert.\n"
-" Dies ist notwendig da Passwort oder Token benötigt werden um API "
-"anfragen zu machen, bringt jedoch auch ein Sicherheitsrisiko mit sich. \n"
-" Um das Risiko zu minimieren sollten, wenn möglich, Tokens benutzt "
-"oder Accounts mit limitiertem Zugriff verwendet werden.\n"
+" Password und Token werden im Klartext in der Datenbank gespeichert.\n"
+" Dies ist notwendig da Passwort oder Token benötigt werden, um API-Anfragen zu stellen, bringt jedoch auch ein Sicherheitsrisiko mit sich. \n"
+" Um das Risiko zu minimieren sollten, wenn möglich, Tokens oder Accounts mit limitiertem Zugriff verwendet werden.\n"
" "
#: .\cookbook\templates\index.html:29
msgid "Search recipe ..."
-msgstr "Suche Rezept ..."
+msgstr "Rezept suchen..."
#: .\cookbook\templates\index.html:44
msgid "New Recipe"
@@ -982,7 +965,7 @@ msgstr "Neues Rezept"
#: .\cookbook\templates\index.html:47
msgid "Website Import"
-msgstr "Webseiten Import"
+msgstr "Webseiten-Import"
#: .\cookbook\templates\index.html:53
msgid "Advanced Search"
@@ -1003,36 +986,25 @@ msgstr "Rezepte"
#: .\cookbook\templates\index.html:94
msgid "Log in to view recipes"
-msgstr "Einloggen um Rezepte anzusehen"
+msgstr "Einloggen, um Rezepte anzusehen"
#: .\cookbook\templates\markdown_info.html:5
#: .\cookbook\templates\markdown_info.html:13
msgid "Markdown Info"
-msgstr "Markdown Info"
+msgstr "Markdown-Übersicht"
#: .\cookbook\templates\markdown_info.html:14
msgid ""
"\n"
-" Markdown is lightweight markup language that can be used to format "
-"plain text easily.\n"
-" This site uses the Python Markdown library to\n"
-" convert your text into nice looking HTML. Its full markdown "
-"documentation can be found\n"
-" here.\n"
-" An incomplete but most likely sufficient documentation can be found "
-"below.\n"
+" Markdown is lightweight markup language that can be used to format plain text easily.\n"
+" This site uses the Python Markdown library to\n"
+" convert your text into nice looking HTML. Its full markdown documentation can be found\n"
+" here.\n"
+" An incomplete but most likely sufficient documentation can be found below.\n"
" "
msgstr ""
"\n"
-"Markdown ist eine Schreibweise mit derer einfacher Text formatiert werden "
-"kann. Diese Seite benutzt Python Markdown, eine Bibliothek die reinen Text in "
-"schönes HTML umwandelt. Die komplette Dokumentation befindet sich hier. Die wichtigsten Formatierungszeichen befinden sich auch hier "
-"auf dieser Seite."
+"Markdown ist eine Schreibweise mit der Text einfach formatiert werden kann. Diese Seite benutzt Python Markdown, eine Bibliothek, die reinen Text in schönes HTML umwandelt. Die komplette Dokumentation befindet sich hier. Die wichtigsten Formatierungszeichen befinden sich hier auf dieser Seite."
#: .\cookbook\templates\markdown_info.html:25
msgid "Headers"
@@ -1045,7 +1017,7 @@ msgstr "Formatierung"
#: .\cookbook\templates\markdown_info.html:56
#: .\cookbook\templates\markdown_info.html:72
msgid "Line breaks are inserted by adding two spaces after the end of a line"
-msgstr "Zeilenumbrüchen entstehen durch zwei Leerzeichen am ende einer Zeile"
+msgstr "Zeilenumbrüche entstehen durch zwei Leerzeichen am ende einer Zeile"
#: .\cookbook\templates\markdown_info.html:57
#: .\cookbook\templates\markdown_info.html:73
@@ -1055,12 +1027,12 @@ msgstr "oder durch eine leere Zeile dazwischen."
#: .\cookbook\templates\markdown_info.html:59
#: .\cookbook\templates\markdown_info.html:74
msgid "This text is bold"
-msgstr "Dieser Text ist dick dargestellt"
+msgstr "Dieser Text ist fett"
#: .\cookbook\templates\markdown_info.html:60
#: .\cookbook\templates\markdown_info.html:75
msgid "This text is italic"
-msgstr "Dieser Text ist kursiv dargestellt"
+msgstr "Dieser Text ist kursiv"
#: .\cookbook\templates\markdown_info.html:61
#: .\cookbook\templates\markdown_info.html:77
@@ -1076,8 +1048,8 @@ msgid ""
"Lists can ordered or unorderd. It is important to leave a blank line "
"before the list!"
msgstr ""
-"Liste können sortiert oder unsortiert sein. Es ist wichtig das eine leere "
-"Zeile vor der Liste frei gelassen wird!"
+"Liste können sortiert oder unsortiert sein. Es ist wichtig das eine leere"
+" Zeile vor der Liste frei gelassen wird!"
#: .\cookbook\templates\markdown_info.html:87
#: .\cookbook\templates\markdown_info.html:108
@@ -1105,7 +1077,7 @@ msgstr "Ungeordnete Liste"
#: .\cookbook\templates\markdown_info.html:117
#: .\cookbook\templates\markdown_info.html:118
msgid "ordered list item"
-msgstr "Geordneter Listen Eintrag"
+msgstr "Geordneter Listeneintrag"
#: .\cookbook\templates\markdown_info.html:125
msgid "Images & Links"
@@ -1116,32 +1088,28 @@ msgid ""
"Links can be formatted with Markdown. This application also allows to paste "
"links directly into markdown fields without any formatting."
msgstr ""
-"Links können mit Markdown formatiert werden aber es ist auch möglich Links "
-"vollständig ohne Formatierung einzufügen."
+"Links können mit Markdown formatiert werden, aber es ist auch möglich, Links"
+" vollständig ohne Formatierung einzufügen."
#: .\cookbook\templates\markdown_info.html:132
#: .\cookbook\templates\markdown_info.html:145
msgid "This will become an image"
-msgstr "Dieser Text hier wird ein Bild werden"
+msgstr "Dies wird ein Bild werden"
#: .\cookbook\templates\markdown_info.html:152
msgid "Tables"
msgstr "Tabellen"
#: .\cookbook\templates\markdown_info.html:153
-#, fuzzy
-#| msgid ""
-#| "Markdown tables are hard to create by hand. It is recommended to use a "
-#| "table editor like this one."
msgid ""
-"Markdown tables are hard to create by hand. It is recommended to use a table "
-"editor like this one."
+"Markdown tables are hard to create by hand. It is recommended to use a table"
+" editor like this one."
msgstr ""
-"Es ist schwierig Markdown Tabellen von Hand zu erstellen, daher bietet es "
-"sich an Werkzeuge wie dieses hier zu verwenden."
+"Es ist schwierig, Markdown-Tabellen von Hand zu erstellen. Daher bietet es "
+"sich an, Werkzeuge wie dieses hier zu verwenden."
#: .\cookbook\templates\markdown_info.html:155
#: .\cookbook\templates\markdown_info.html:157
@@ -1167,7 +1135,7 @@ msgstr "Neuer Eintrag"
#: .\cookbook\templates\meal_plan.html:113
#: .\cookbook\templates\shopping_list.html:52
msgid "Search Recipe"
-msgstr "Rezept Suchen"
+msgstr "Rezept suchen"
#: .\cookbook\templates\meal_plan.html:139
msgid "Title"
@@ -1179,18 +1147,18 @@ msgstr "Notiz (optional)"
#: .\cookbook\templates\meal_plan.html:143
msgid ""
-"You can use markdown to format this field. See the docs here"
+"You can use markdown to format this field. See the docs "
+"here"
msgstr ""
-"Dieses Feld Unterstützt Markdown Formatierung. Siehe Dokumentation"
+"Dieses Feld Unterstützt Markdown Formatierung. Siehe Dokumentation"
#: .\cookbook\templates\meal_plan.html:147
#: .\cookbook\templates\meal_plan.html:251
-#, fuzzy
-#| msgid "Servings"
msgid "Serving Count"
-msgstr "Portionen"
+msgstr "Anzahl Portionen"
#: .\cookbook\templates\meal_plan.html:153
msgid "Create only note"
@@ -1205,7 +1173,7 @@ msgstr "Einkaufsliste"
#: .\cookbook\templates\meal_plan.html:172
msgid "Shopping list currently empty"
-msgstr "Einkaufsliste aktuell leer"
+msgstr "Die Einkaufsliste ist aktuell leer"
#: .\cookbook\templates\meal_plan.html:175
msgid "Open Shopping List"
@@ -1217,7 +1185,7 @@ msgstr "Plan"
#: .\cookbook\templates\meal_plan.html:196
msgid "Number of Days"
-msgstr "Anzahl Tage"
+msgstr "Anzahl an Tagen"
#: .\cookbook\templates\meal_plan.html:206
msgid "Weekday offset"
@@ -1225,16 +1193,16 @@ msgstr "Wochentage verschieben"
#: .\cookbook\templates\meal_plan.html:209
msgid ""
-"Number of days starting from the first day of the week to offset the default "
-"view."
+"Number of days starting from the first day of the week to offset the default"
+" view."
msgstr ""
-"Anzahl der Tage von ersten Tag der Woche die der Plan standardmäßig "
+"Anzahl der Tage von ersten Tag der Woche, die der Plan standardmäßig "
"verschoben sein soll."
#: .\cookbook\templates\meal_plan.html:217
#: .\cookbook\templates\meal_plan.html:294
msgid "Edit plan types"
-msgstr "Plan Typen editieren"
+msgstr "Plantypen editieren"
#: .\cookbook\templates\meal_plan.html:219
msgid "Show help"
@@ -1265,103 +1233,42 @@ msgstr "Neue Mahlzeit"
#: .\cookbook\templates\meal_plan.html:338
msgid "Meal Plan Help"
-msgstr "Plan Hilfe"
+msgstr "Plan-Hilfe"
#: .\cookbook\templates\meal_plan.html:344
-#, fuzzy
-#| msgid ""
-#| "\n"
-#| "
The meal plan module allows planning of "
-#| "meals both with recipes or just notes.
\n"
-#| "
Simply select a recipe from the list of "
-#| "recently viewed recipes or search the one you\n"
-#| " want and drag it to the desired plan "
-#| "position. You can also add a note and a title and\n"
-#| " then drag the recipe to create a plan "
-#| "entry with a custom title and note. Creating only\n"
-#| " Notes is possible by dragging the create "
-#| "note box into the plan.
\n"
-#| "
Click on a recipe in order to open the "
-#| "detail view. Here you can also add it to the\n"
-#| " shopping list. You can also add all "
-#| "recipes of a day to the shopping list by\n"
-#| " clicking the shopping cart at the top of "
-#| "the table.
\n"
-#| "
Since a common use case is to plan meals "
-#| "together you can define\n"
-#| " users you want to share your plan with in "
-#| "the settings.\n"
-#| "
\n"
-#| "
You can also edit the types of meals you "
-#| "want to plan. If you share your plan with\n"
-#| " someone with\n"
-#| " different meals, their meal types will "
-#| "appear in your list as well. To prevent\n"
-#| " duplicates (e.g. Other and Misc.)\n"
-#| " name your meal types the same as the "
-#| "users you share your meals with and they will be\n"
-#| " merged.
\n"
-#| " "
msgid ""
"\n"
-"
The meal plan module allows planning of meals "
-"both with recipes and notes.
\n"
-"
Simply select a recipe from the list of "
-"recently viewed recipes or search the one you\n"
-" want and drag it to the desired plan "
-"position. You can also add a note and a title and\n"
-" then drag the recipe to create a plan entry "
-"with a custom title and note. Creating only\n"
-" Notes is possible by dragging the create "
-"note box into the plan.
\n"
-"
Click on a recipe in order to open the "
-"detailed view. There you can also add it to the\n"
-" shopping list. You can also add all recipes "
-"of a day to the shopping list by\n"
-" clicking the shopping cart at the top of the "
-"table.
\n"
-"
Since a common use case is to plan meals "
-"together you can define\n"
-" users you want to share your plan with in "
-"the settings.\n"
+"
The meal plan module allows planning of meals both with recipes and notes.
\n"
+"
Simply select a recipe from the list of recently viewed recipes or search the one you\n"
+" want and drag it to the desired plan position. You can also add a note and a title and\n"
+" then drag the recipe to create a plan entry with a custom title and note. Creating only\n"
+" Notes is possible by dragging the create note box into the plan.
\n"
+"
Click on a recipe in order to open the detailed view. There you can also add it to the\n"
+" shopping list. You can also add all recipes of a day to the shopping list by\n"
+" clicking the shopping cart at the top of the table.
\n"
+"
Since a common use case is to plan meals together you can define\n"
+" users you want to share your plan with in the settings.\n"
"
\n"
-"
You can also edit the types of meals you want "
-"to plan. If you share your plan with\n"
+"
You can also edit the types of meals you want to plan. If you share your plan with\n"
" someone with\n"
-" different meals, their meal types will "
-"appear in your list as well. To prevent\n"
+" different meals, their meal types will appear in your list as well. To prevent\n"
" duplicates (e.g. Other and Misc.)\n"
-" name your meal types the same as the users "
-"you share your meals with and they will be\n"
+" name your meal types the same as the users you share your meals with and they will be\n"
" merged.
\n"
" "
msgstr ""
"\n"
-"
Das Plan Modul erlaubt das Planen von "
-"Rezepten oder auch nur Notizen.
\n"
-"
Einfach ein Rezept raussuchen und an die "
-"Stelle im Plan ziehen an der es gekocht werden soll. Es kann außerdem eine "
-"Notiz und ein Titel hinzugefügt werden. Einen Eintrag nur als Notiz zu "
-"erstellen ist durch Eingabe einer Notiz und schieben des Notiz Blocks in den "
-"Plan möglich.
\n"
-"
Durch klicken auf ein Rezept öffnet sich die "
-"Detailansicht. Hier kann es auch auf die Einkaufsliste hinzugefügt werden. "
-"Es können auch alle Rezepte eines Tages auf die Einkaufsliste gesetzt werden "
-"indem der Einkaufswagen in der Tabelle angeklickt wird.
\n"
-"
Da Pläne häufig für mehrere Nutzer erstellt "
-"werden können andere Nutzer in den Einstellungen angegeben werden mit denen "
-"neue Pläne automatisch geteilt werden sollen.\n"
+"
Das Planmodul erlaubt das Planen mithilfe von Rezepten und Notizen.
\n"
+"
Einfach ein Rezept aussuchen und an die Stelle im Plan ziehen, an der es gekocht werden soll. Es kann außerdem eine Notiz und ein Titel hinzugefügt werden. Einen Eintrag nur als Notiz zu erstellen ist durch Eingabe einer Notiz und Schieben des Notiz-Blocks in den Plan möglich.
\n"
+"
Durch Klicken auf ein Rezept öffnet sich die Detailansicht. Da kann das Rezept auch auf die Einkaufsliste hinzugefügt werden. Es können auch alle Rezepte eines Tages auf die Einkaufsliste gesetzt werden, indem der Einkaufswagen im Tabellenkopf angeklickt wird.
\n"
+"
Da Pläne häufig für mehrere Nutzer erstellt werden, können Nutzer in den Einstellungen angegeben werden, mit denen neue Pläne automatisch geteilt werden sollen.\n"
"
\n"
-"
Die Mahlzeiten die geplant werden sollen "
-"können bearbeitet werden. Wenn Pläne zwischen Nutzern mit unterschiedlichen "
-"Mahlzeiten geteilt werden erscheinen alle Mahlzeiten. Um Duplikate zu "
-"vermeiden (z.B. Mittagessen und Mittag) sollten Mahlzeiten teilender Nutzer "
-"gleich benannt werden, dadurch kann das System sie zusammenfassen.
\n"
+"
Die Mahlzeiten, die geplant werden sollen, können bearbeitet werden. Wenn Pläne zwischen Nutzern mit unterschiedlichen Mahlzeiten geteilt werden, erscheinen alle Mahlzeiten. Um Duplikate zu vermeiden (z.B. Mittagessen und Mittag) sollten Mahlzeiten teilender Nutzer gleich benannt werden, dadurch kann das System sie zusammenfassen.
\n"
" "
#: .\cookbook\templates\meal_plan_entry.html:6
msgid "Meal Plan View"
-msgstr "Plan Ansicht"
+msgstr "Plan-Ansicht"
#: .\cookbook\templates\meal_plan_entry.html:50
msgid "Never cooked before."
@@ -1374,27 +1281,31 @@ msgstr "Andere Mahlzeiten an diesem Tag"
#: .\cookbook\templates\no_groups_info.html:5
#: .\cookbook\templates\offline.html:6
msgid "Offline"
-msgstr ""
+msgstr "Offline"
#: .\cookbook\templates\no_groups_info.html:12
msgid "No Permissions"
-msgstr ""
+msgstr "Keine Berechtigungen"
#: .\cookbook\templates\no_groups_info.html:15
msgid ""
"You do not have any groups and therefor cannot use this application. Please "
"contact your administrator."
msgstr ""
+"Du hast keine Gruppe und kannst daher diese Anwendung nicht nutzen. Bitte "
+"kontaktiere deinen Administrator."
#: .\cookbook\templates\offline.html:19
msgid "You are currently offline!"
-msgstr ""
+msgstr "Du bist gerade offline!"
#: .\cookbook\templates\offline.html:20
msgid ""
"The recipes listed below are available for offline viewing because you have "
"recently viewed them. Keep in mind that data might be outdated."
msgstr ""
+"Die unterhalb aufgelisteten Rezepte sind offline verfügbar, da du sie vor "
+"kurzem angesehen hast. Beachte, dass die Daten veraltetet sein könnten."
#: .\cookbook\templates\recipe_view.html:21 .\cookbook\templates\stats.html:47
msgid "Comments"
@@ -1409,7 +1320,7 @@ msgstr "Kommentar"
#: .\cookbook\templates\recipes_table.html:23
#: .\cookbook\templates\url_import.html:50
msgid "Recipe Image"
-msgstr "Rezept Bild"
+msgstr "Rezeptbild"
#: .\cookbook\templates\recipes_table.html:46
#: .\cookbook\templates\url_import.html:55
@@ -1427,11 +1338,11 @@ msgstr "Extern"
#: .\cookbook\templates\recipes_table.html:81
msgid "Log Cooking"
-msgstr "Kochen Protokollieren"
+msgstr "Kochen protokollieren"
#: .\cookbook\templates\rest_framework\api.html:5
msgid "Recipe Home"
-msgstr "Rezept Hauptseite"
+msgstr "Rezept-Hauptseite"
#: .\cookbook\templates\settings.html:22
msgid "Account"
@@ -1439,7 +1350,7 @@ msgstr "Account"
#: .\cookbook\templates\settings.html:38
msgid "Link social account"
-msgstr ""
+msgstr "Social Account verlinken"
#: .\cookbook\templates\settings.html:42
msgid "Language"
@@ -1451,22 +1362,22 @@ msgstr "Stil"
#: .\cookbook\templates\settings.html:79
msgid "API Token"
-msgstr "API Token"
+msgstr "API-Token"
#: .\cookbook\templates\settings.html:80
msgid ""
"You can use both basic authentication and token based authentication to "
"access the REST API."
msgstr ""
-"Sowohl basic auth als auch token basierte Authentifizierung können für die "
-"REST API verwendet werden."
+"Sowohl Basic Authentication als auch tokenbasierte Authentifizierung können "
+"für die REST-API verwendet werden."
#: .\cookbook\templates\settings.html:92
msgid ""
-"Use the token as an Authorization header prefixed by the word token as shown "
-"in the following examples:"
+"Use the token as an Authorization header prefixed by the word token as shown"
+" in the following examples:"
msgstr ""
-"Benutzt das Token als Authorization header mit dem präfix token wie in "
+"Nutz den Token als Authorization-Header mit der Präfix \"Token\" wie in "
"folgendem Beispiel:"
#: .\cookbook\templates\settings.html:94
@@ -1475,7 +1386,7 @@ msgstr "oder"
#: .\cookbook\templates\setup.html:6 .\cookbook\templates\system.html:5
msgid "Cookbook Setup"
-msgstr "Kochbuch Setup"
+msgstr "Kochbuch-Setup"
#: .\cookbook\templates\setup.html:14
msgid "Setup"
@@ -1485,16 +1396,16 @@ msgstr "Setup"
msgid ""
"To start using this application you must first create a superuser account."
msgstr ""
-"Um diese Anwendung zu Benutzen muss zunächst ein Administrator erstellt "
-"werden."
+"Um diese Anwendung zu benutzen, muss zunächst ein Administrator-Account "
+"erstellt werden."
#: .\cookbook\templates\setup.html:20
msgid "Create Superuser account"
-msgstr "Administrator Erstellen"
+msgstr "Administrator-Account Erstellen"
#: .\cookbook\templates\shopping_list.html:75
msgid "Shopping Recipes"
-msgstr "Einkaufs Rezepte"
+msgstr "Einkaufs-Rezepte"
#: .\cookbook\templates\shopping_list.html:79
msgid "No recipes selected"
@@ -1502,13 +1413,11 @@ msgstr "Keine Rezepte ausgewählt"
#: .\cookbook\templates\shopping_list.html:145
msgid "Entry Mode"
-msgstr ""
+msgstr "Eintrags-Modus"
#: .\cookbook\templates\shopping_list.html:153
-#, fuzzy
-#| msgid "New Entry"
msgid "Add Entry"
-msgstr "Neuer Eintrag"
+msgstr "Eintrag hinzufügen"
#: .\cookbook\templates\shopping_list.html:168
msgid "Amount"
@@ -1516,17 +1425,15 @@ msgstr "Menge"
#: .\cookbook\templates\shopping_list.html:224
msgid "Supermarket"
-msgstr ""
+msgstr "Supermarkt"
#: .\cookbook\templates\shopping_list.html:234
-#, fuzzy
-#| msgid "Select User"
msgid "Select Supermarket"
-msgstr "Nutzer Auswählen"
+msgstr "Supermarkt auswählen"
#: .\cookbook\templates\shopping_list.html:258
msgid "Select User"
-msgstr "Nutzer Auswählen"
+msgstr "Nutzer auswählen"
#: .\cookbook\templates\shopping_list.html:277
msgid "Finished"
@@ -1534,7 +1441,7 @@ msgstr "Erledigt"
#: .\cookbook\templates\shopping_list.html:290
msgid "You are offline, shopping list might not syncronize."
-msgstr "Du bist offline, die Einkaufsliste aktualisiert möglicherweise nicht."
+msgstr "Du bist offline, die Einkaufsliste wird ggf. nicht synchronisiert."
#: .\cookbook\templates\shopping_list.html:353
msgid "Copy/Export"
@@ -1542,35 +1449,38 @@ msgstr "Kopieren/Exportieren"
#: .\cookbook\templates\shopping_list.html:357
msgid "List Prefix"
-msgstr "Listen Präfix"
+msgstr "Listenpräfix"
#: .\cookbook\templates\shopping_list.html:696
msgid "There was an error creating a resource!"
-msgstr "Es gab einen Fehler beim erstellen einer Ressource!"
+msgstr "Es gab einen Fehler beim Erstellen einer Ressource!"
#: .\cookbook\templates\socialaccount\connections.html:4
#: .\cookbook\templates\socialaccount\connections.html:7
msgid "Account Connections"
-msgstr ""
+msgstr "Account-Verbindungen"
#: .\cookbook\templates\socialaccount\connections.html:10
msgid ""
"You can sign in to your account using any of the following third party\n"
" accounts:"
msgstr ""
+"Du kannst dich mit den folgenden Drittanbieter-Accounts\n"
+" anmelden:"
#: .\cookbook\templates\socialaccount\connections.html:36
msgid "Remove"
-msgstr ""
+msgstr "Entfernen"
#: .\cookbook\templates\socialaccount\connections.html:44
msgid ""
"You currently have no social network accounts connected to this account."
msgstr ""
+"Du hast momentan keine Social-Media Accounts mit diesem Account verbunden."
#: .\cookbook\templates\socialaccount\connections.html:47
msgid "Add a 3rd Party Account"
-msgstr ""
+msgstr "Fremden Account hinzufügen"
#: .\cookbook\templates\stats.html:4
msgid "Stats"
@@ -1578,15 +1488,15 @@ msgstr "Statistiken"
#: .\cookbook\templates\stats.html:19
msgid "Number of objects"
-msgstr "Anzahl der Objekte"
+msgstr "Anzahl an Objekten"
#: .\cookbook\templates\stats.html:30
msgid "Recipe Imports"
-msgstr "Rezept Importe"
+msgstr "Importierte Rezepte"
#: .\cookbook\templates\stats.html:38
msgid "Objects stats"
-msgstr "Objekt Statistiken"
+msgstr "Objekt-Statistiken"
#: .\cookbook\templates\stats.html:41
msgid "Recipes without Keywords"
@@ -1602,7 +1512,7 @@ msgstr "Interne Rezepte"
#: .\cookbook\templates\system.html:21 .\cookbook\views\lists.py:128
msgid "Invite Links"
-msgstr "Einladungs Link"
+msgstr "Einladungslinks"
#: .\cookbook\templates\system.html:22
msgid "Show Links"
@@ -1618,29 +1528,25 @@ msgstr "Backup herunterladen"
#: .\cookbook\templates\system.html:49
msgid "System Information"
-msgstr "System Information"
+msgstr "Systeminformation"
#: .\cookbook\templates\system.html:51
msgid ""
"\n"
-" Django Recipes is an open source free software application. It can "
-"be found on\n"
+" Django Recipes is an open source free software application. It can be found on\n"
" GitHub.\n"
-" Changelogs can be found here.\n"
+" Changelogs can be found here.\n"
" "
msgstr ""
"\n"
-" Django Rezepte ist eine kostenlose OpenSource Anwendung. Der Source "
-"Code befindet sich auf\n"
+" Django Recipes ist eine kostenlose OpenSource-Anwendung. Der Quellcode befindet sich auf\n"
" GitHub.\n"
-" Eine Übersicht über alle Änderungen findet sich hier.\n"
+" Eine Übersicht über alle Änderungen findet sich hier.\n"
" "
#: .\cookbook\templates\system.html:65
msgid "Media Serving"
-msgstr "Media Serving"
+msgstr "Medien ausliefern"
#: .\cookbook\templates\system.html:66 .\cookbook\templates\system.html:81
#: .\cookbook\templates\system.html:97
@@ -1656,22 +1562,19 @@ msgstr "Ok"
msgid ""
"Serving media files directly using gunicorn/python is not recommend!\n"
" Please follow the steps described\n"
-" here to update\n"
+" here to update\n"
" your installation.\n"
" "
msgstr ""
-"Serving media files directly using gunicorn/python is not recommend!\n"
-" Please follow the steps described\n"
-" here to update\n"
-" your installation.\n"
-" "
+"Das direkte ausliefern von Mediendateien mit gunicorn/python ist nicht "
+"empfehlenswert! Bitte folge den beschriebenen Schritten hier,"
+" um Ihre Installation zu aktualisieren."
#: .\cookbook\templates\system.html:74 .\cookbook\templates\system.html:90
#: .\cookbook\templates\system.html:105 .\cookbook\templates\system.html:119
msgid "Everything is fine!"
-msgstr "Alles ok!"
+msgstr "Alles in Ordnung!"
#: .\cookbook\templates\system.html:79
msgid "Secret Key"
@@ -1680,46 +1583,30 @@ msgstr "Secret Key"
#: .\cookbook\templates\system.html:83
msgid ""
"\n"
-" You do not have a SECRET_KEY configured in your "
-".env file. Django defaulted to the\n"
+" You do not have a SECRET_KEY configured in your .env file. Django defaulted to the\n"
" standard key\n"
-" provided with the installation which is publicly know and "
-"insecure! Please set\n"
-" SECRET_KEY int the .env configuration "
-"file.\n"
+" provided with the installation which is publicly know and insecure! Please set\n"
+" SECRET_KEY int the .env configuration file.\n"
" "
msgstr ""
"\n"
-" You do not have a SECRET_KEY configured in your "
-".env file. Django defaulted to the\n"
-" standard key\n"
-" provided with the installation which is publicly know and "
-"insecure! Please set\n"
-" SECRET_KEY int the .env configuration "
-"file.\n"
-" "
+"Du hast keinen SECRET_KEY in deiner .env-Datei konfiguriert. Django verwendet standardmäßig den mit der Installation gelieferten Standardschlüssel, der öffentlich bekannt und unsicher ist! Bitte setze den SECRET_KEY in der Konfigurationsdatei .env."
#: .\cookbook\templates\system.html:95
msgid "Debug Mode"
-msgstr "Debug Mode"
+msgstr "Debug-Modus"
#: .\cookbook\templates\system.html:99
msgid ""
"\n"
-" This application is still running in debug mode. This is most "
-"likely not needed. Turn of debug mode by\n"
+" This application is still running in debug mode. This is most likely not needed. Turn of debug mode by\n"
" setting\n"
-" DEBUG=0 int the .env configuration "
-"file.\n"
+" DEBUG=0 int the .env configuration file.\n"
" "
msgstr ""
"\n"
-" This application is still running in debug mode. This is most "
-"likely not needed. Turn of debug mode by\n"
-" setting\n"
-" DEBUG=0 int the .env configuration "
-"file.\n"
-" "
+"Diese Anwendung läuft noch im Debug-Modus. Dieser wird höchstwahrscheinlich nicht benötigt.\n"
+"Schalte den Debug-Modus aus, indem du DEBUG=0 in der Konfigurationsdatei .env einstellst."
#: .\cookbook\templates\system.html:110
msgid "Database"
@@ -1727,33 +1614,30 @@ msgstr "Datenbank"
#: .\cookbook\templates\system.html:112
msgid "Info"
-msgstr "Information"
+msgstr "Info"
#: .\cookbook\templates\system.html:114
msgid ""
"\n"
-" This application is not running with a Postgres database "
-"backend. This is ok but not recommended as some\n"
+" This application is not running with a Postgres database backend. This is ok but not recommended as some\n"
" features only work with postgres databases.\n"
" "
msgstr ""
"\n"
-" This application is not running with a Postgres database "
-"backend. This is ok but not recommended as some\n"
-" features only work with postgres databases.\n"
-" "
+"Diese Anwendung läuft nicht mit einer Postgres Datenbank. Dies ist in Ordnung, wird aber nicht empfohlen, da einige\n"
+"Funktionen nur mit einer Postgres-Datenbanken funktionieren."
#: .\cookbook\templates\url_import.html:5
msgid "URL Import"
-msgstr "URL Import"
+msgstr "URL-Import"
#: .\cookbook\templates\url_import.html:23
msgid "Enter website URL"
-msgstr "Webseiten URL eingeben"
+msgstr "Webseite-URL eingeben"
#: .\cookbook\templates\url_import.html:44
msgid "Recipe Name"
-msgstr "Rezept Name"
+msgstr "Rezeptname"
#: .\cookbook\templates\url_import.html:104
#: .\cookbook\templates\url_import.html:136
@@ -1767,7 +1651,7 @@ msgstr "Alle Schlagwörter"
#: .\cookbook\templates\url_import.html:206
msgid "Import all keywords, not only the ones already existing."
-msgstr "Importiert alle Schlagwörter, nicht nur die die bereits existieren."
+msgstr "Alle Schlagwörter importieren, nicht nur die bereits bestehenden."
#: .\cookbook\templates\url_import.html:233
msgid "Information"
@@ -1776,17 +1660,15 @@ msgstr "Information"
#: .\cookbook\templates\url_import.html:235
msgid ""
" Only websites containing ld+json or microdata information can currently\n"
-" be imported. Most big recipe pages "
-"support this. If you site cannot be imported but\n"
+" be imported. Most big recipe pages support this. If you site cannot be imported but\n"
" you think\n"
-" it probably has some kind of structured "
-"data feel free to post an example in the\n"
+" it probably has some kind of structured data feel free to post an example in the\n"
" github issues."
msgstr ""
"Nur Webseiten mit ld+json oder microdata können importiert werden. Die "
"meisten großen Seiten unterstützen diese Formate. Wenn eine Seite nicht "
-"importiert werden kann sie aber strukturierte Daten aufweist kann ein GitHub "
-"Issue geöffnet werden."
+"importiert werden kann, sie aber strukturierte Daten aufweist, kann ein "
+"GitHub-Issue geöffnet werden."
#: .\cookbook\templates\url_import.html:243
msgid "Google ld+json Info"
@@ -1794,23 +1676,23 @@ msgstr "Google ld+json Informationen"
#: .\cookbook\templates\url_import.html:246
msgid "GitHub Issues"
-msgstr "GitHub Issues"
+msgstr "GitHub-Issues"
#: .\cookbook\templates\url_import.html:248
msgid "Recipe Markup Specification"
-msgstr "Recipe Markup Spezifikation"
+msgstr "Rezept-Markup-Spezifikation"
#: .\cookbook\views\api.py:104
msgid "Parameter filter_list incorrectly formatted"
-msgstr "Parameter filter_list incorrectly formatted"
+msgstr "Der Parameter filter_list ist falsch formatiert"
#: .\cookbook\views\api.py:117
msgid "Preference for given user already exists"
-msgstr "Preference for given user already exists"
+msgstr "Präferenz für den Benutzer existiert bereits"
#: .\cookbook\views\api.py:416 .\cookbook\views\views.py:265
msgid "This feature is not available in the demo version!"
-msgstr ""
+msgstr "Diese Funktion ist in der Demo-Version nicht verfügbar!"
#: .\cookbook\views\api.py:439
msgid "Sync successful!"
@@ -1822,35 +1704,36 @@ msgstr "Fehler beim Synchronisieren"
#: .\cookbook\views\api.py:510
msgid "The requested page could not be found."
-msgstr "Die Angefragte Seite konnte nicht gefunden werden."
+msgstr "Die angefragte Seite konnte nicht gefunden werden."
#: .\cookbook\views\api.py:519
msgid ""
"The requested page refused to provide any information (Status Code 403)."
-msgstr "Die angefragte Seite hat die Anfrage abgelehnt (Status Code 403)."
+msgstr "Die angefragte Seite hat die Anfrage abgelehnt (Status-Code 403)."
#: .\cookbook\views\data.py:101
#, python-format
msgid "Batch edit done. %(count)d recipe was updated."
msgid_plural "Batch edit done. %(count)d Recipes where updated."
-msgstr[0] "Massenbearbeitung erfolgreich. %(count)d Rezept wurde aktualisiert."
+msgstr[0] ""
+"Massenbearbeitung erfolgreich. %(count)d Rezept wurde aktualisiert."
msgstr[1] ""
"Massenbearbeitung erfolgreich. %(count)d Rezepte wurden aktualisiert."
#: .\cookbook\views\delete.py:72
msgid "Monitor"
-msgstr "Monitor"
+msgstr "Überwachen"
#: .\cookbook\views\delete.py:96 .\cookbook\views\lists.py:109
#: .\cookbook\views\new.py:83
msgid "Storage Backend"
-msgstr "Speicher Quelle"
+msgstr "Speicherquelle"
#: .\cookbook\views\delete.py:106
msgid ""
"Could not delete this storage backend as it is used in at least one monitor."
msgstr ""
-"Speicherquelle konnte nicht gelöscht werden da sie in mindestens einem "
+"Speicherquelle konnte nicht gelöscht werden, da sie in mindestens einem "
"Monitor verwendet wird."
#: .\cookbook\views\delete.py:129 .\cookbook\views\edit.py:196
@@ -1880,7 +1763,7 @@ msgstr "Speicherquelle gespeichert!"
#: .\cookbook\views\edit.py:137
msgid "There was an error updating this storage backend!"
-msgstr "Es gab einen Fehler beim aktualisierung dieser Speicher Quelle!"
+msgstr "Es gab einen Fehler beim Aktualisieren dieser Speicherquelle!"
#: .\cookbook\views\edit.py:148
msgid "Storage"
@@ -1900,27 +1783,27 @@ msgstr "Einheiten zusammengeführt!"
#: .\cookbook\views\edit.py:295 .\cookbook\views\edit.py:317
msgid "Cannot merge with the same object!"
-msgstr ""
+msgstr "Zusammenführen mit selben Objekt nicht möglich!"
#: .\cookbook\views\edit.py:311
msgid "Foods merged!"
-msgstr "Lebensmittel vereint"
+msgstr "Zutaten zusammengeführt!"
#: .\cookbook\views\import_export.py:42
msgid "Importing is not implemented for this provider"
-msgstr ""
+msgstr "Importieren ist für diesen Anbieter noch nicht implementiert"
#: .\cookbook\views\import_export.py:58
msgid "Exporting is not implemented for this provider"
-msgstr ""
+msgstr "Exportieren ist für diesen Anbieter noch nicht implementiert"
#: .\cookbook\views\lists.py:42
msgid "Import Log"
-msgstr "Import Log"
+msgstr "Importverlauf"
#: .\cookbook\views\lists.py:55
msgid "Discovery"
-msgstr "Entdeckung"
+msgstr "Entdecken"
#: .\cookbook\views\lists.py:92
msgid "Shopping Lists"
@@ -1928,16 +1811,16 @@ msgstr "Einkaufslisten"
#: .\cookbook\views\new.py:107
msgid "Imported new recipe!"
-msgstr "Importier neue Rezepte!"
+msgstr "Neues Rezept importiert!"
#: .\cookbook\views\new.py:114
msgid "There was an error importing this recipe!"
-msgstr "Beim importieren des Rezeptes ist ein Fehler aufgetreten!"
+msgstr "Beim Importieren des Rezeptes ist ein Fehler aufgetreten!"
#: .\cookbook\views\views.py:117
msgid "You do not have the required permissions to perform this action!"
msgstr ""
-"Sie haben nicht die notwendigen Berechtigungen um diese Aktion durchzuführen!"
+"Du hast nicht die notwendige Berechtigung, um diese Aktion durchzuführen!"
#: .\cookbook\views\views.py:136
msgid "Comment saved!"
@@ -1945,7 +1828,7 @@ msgstr "Kommentar gespeichert!"
#: .\cookbook\views\views.py:152
msgid "This recipe is already linked to the book!"
-msgstr ""
+msgstr "Dieses Rezept ist bereits mit dem Buch verlinkt!"
#: .\cookbook\views\views.py:158
msgid "Bookmark saved!"
@@ -1954,11 +1837,11 @@ msgstr "Lesezeichen gespeichert!"
#: .\cookbook\views\views.py:380
msgid ""
"The setup page can only be used to create the first user! If you have "
-"forgotten your superuser credentials please consult the django documentation "
-"on how to reset passwords."
+"forgotten your superuser credentials please consult the django documentation"
+" on how to reset passwords."
msgstr ""
-"Die Setup Seite kann nur für den ersten Nutzer verwendet werden. Zum "
-"zurücksetzen von Passwörtern bitte der Django Dokumentation folgen."
+"Die Setup-Seite kann nur für den ersten Nutzer verwendet werden. Zum "
+"Zurücksetzen von Passwörtern bitte der Django-Dokumentation folgen."
#: .\cookbook\views\views.py:388 .\cookbook\views\views.py:435
msgid "Passwords dont match!"
@@ -1970,163 +1853,8 @@ msgstr "Benutzer wurde erstellt, bitte einloggen!"
#: .\cookbook\views\views.py:419
msgid "Malformed Invite Link supplied!"
-msgstr "Fehlerhaften Einladungslink angegeben!"
+msgstr "Fehlerhafter Einladungslink angegeben!"
#: .\cookbook\views\views.py:470
msgid "Invite Link not valid or already used!"
msgstr "Einladungslink ungültig oder bereits genutzt!"
-
-#~ msgid "Export Base64 encoded image?"
-#~ msgstr "Base64 kodiertes Bild exportieren?"
-
-#~ msgid "Download export directly or show on page?"
-#~ msgstr "Direkter Download oder Anzeige auf Seite ?"
-
-#~ msgid "Simply paste a JSON export into this textarea and click import."
-#~ msgstr "Einfach JSON in die Textbox einfügen und \"Importieren\" klicken."
-
-#~ msgid "Exported Recipe"
-#~ msgstr "Exportierte Rezepte"
-
-#~ msgid "Copy to clipboard"
-#~ msgstr "In Zwischenablage kopieren"
-
-#~ msgid "Copied!"
-#~ msgstr "Kopiert!"
-
-#~ msgid "Copy list to clipboard"
-#~ msgstr "Kopiere Liste in Zwischenablage"
-
-#~ msgid "Your username and password didn't match. Please try again."
-#~ msgstr "Nutzername oder Passwort falsch. Bitte versuch es erneut."
-
-#~ msgid "Recipe imported successfully!"
-#~ msgstr "Rezept erfolgreich importiert!"
-
-#~ msgid "Something went wrong during the import!"
-#~ msgstr "Beim Import ist etwas schief gegangen!"
-
-#~ msgid "Could not parse the supplied JSON!"
-#~ msgstr "Das JSON konnte nicht gelesen werden!"
-
-#~ msgid ""
-#~ "External recipes cannot be exported, please share the file directly or "
-#~ "select an internal recipe."
-#~ msgstr ""
-#~ "Externe Rezepte können nicht exportiert werden, bitte Datei direkt teilen "
-#~ "oder ein Internes Rezept auswählen."
-
-#~ msgid "Scaling factor for recipe."
-#~ msgstr "Skalierungsfaktor für das Rezept."
-
-#~ msgid "Error"
-#~ msgstr "Fehler"
-
-#~ msgid "There was an error loading the recipe!"
-#~ msgstr "Es gab einen Fehler beim Laden des Rezepts!"
-
-#~ msgid "Updated"
-#~ msgstr "Aktualisiert"
-
-#~ msgid "Changes saved successfully!"
-#~ msgstr "Änderungen erfolgreich gespeichert!"
-
-#~ msgid "There was an error updating the recipe!"
-#~ msgstr "Es gab einen Fehler beim aktualisieren des Rezepts!"
-
-#~ msgid "Are you sure that you want to delete this ingredient?"
-#~ msgstr "Bist du sicher das du diese Zutat löschen willst?"
-
-#~ msgid "Are you sure that you want to delete this step?"
-#~ msgstr "Soll dieser Schritt wirklich gelöscht werden?"
-
-#~ msgid "There was an error loading a resource!"
-#~ msgstr "Es gab einen Fehler beim laden der Ressource!"
-
-#~ msgid "Recipe Multiplier"
-#~ msgstr "Rezept Multiplikator"
-
-#~ msgid ""
-#~ "When deleting a meal type all entries using that type will be deleted as "
-#~ "well. Deletion will apply when configuration is saved. Do you want to "
-#~ "proceed?"
-#~ msgstr ""
-#~ "Wenn eine Mahlzeit gelöscht wird werden auch alle Einträge mit dieser "
-#~ "Mahlzeit gelöscht. Die Löschung wird erst aktiv wenn die Konfiguration "
-#~ "gespeichert wird. Fortfahren ?"
-
-#~ msgid "Add to Book"
-#~ msgstr "Zu Buch hinzufügen"
-
-#~ msgid "Add to Plan"
-#~ msgstr "Zum Plan hinzufügen"
-
-#~ msgid "Print"
-#~ msgstr "Drucken"
-
-#~ msgid "Share"
-#~ msgstr "Teilen"
-
-#~ msgid "in"
-#~ msgstr "in"
-
-#~ msgid "Preparation time ~"
-#~ msgstr "Vorbereitungs Zeit ~"
-
-#~ msgid "Minutes"
-#~ msgstr "Minuten"
-
-#~ msgid "View external recipe"
-#~ msgstr "Externes Rezept ansehen"
-
-#~ msgid "External recipe image"
-#~ msgstr "Externes Rezeptbild"
-
-#~ msgid "External recipe"
-#~ msgstr "Externes Rezept"
-
-#~ msgid ""
-#~ "\n"
-#~ " This is an external recipe, which "
-#~ "means you can only view it by opening the link\n"
-#~ " above.\n"
-#~ " You can convert this recipe to a "
-#~ "fancy recipe by pressing the convert button. The\n"
-#~ " original\n"
-#~ " file\n"
-#~ " will still be accessible.\n"
-#~ " "
-#~ msgstr ""
-#~ "\n"
-#~ " Dies ist ein externes Rezept. Das bedeutet das es "
-#~ "nur durch klicken auf den link geöffnet werden kann.\n"
-#~ " Das Rezept kann durch drücken des Umwandeln "
-#~ "Knopfes in ein schickes lokales Rezept verwandelt werden. Die originale "
-#~ "Datei bleibt weiterhin verfügbar.\n"
-#~ " "
-
-#~ msgid "Convert now!"
-#~ msgstr "Jetzt umwandeln!"
-
-#~ msgid "There was an error updating a resource!"
-#~ msgstr "Es gab einen Fehler beim aktualisieren der Ressource!"
-
-#~ msgid "Object created successfully!"
-#~ msgstr "Objekt erfolgreich erstellt!"
-
-#~ msgid "Please enter a valid food"
-#~ msgstr "Bitte ein gültiges Lebensmittel eingeben"
-
-#~ msgid "Already importing the selected recipe, please wait!"
-#~ msgstr "Das Rezept wird bereits importiert, bitte warten!"
-
-#~ msgid "An error occurred while trying to import this recipe!"
-#~ msgstr "Beim importieren der Webseite ist ein Fehler aufgetreten!"
-
-#~ msgid "Default user to share newly created meal plan entries with."
-#~ msgstr ""
-#~ "Standardbenutzer, mit denen neue Einträge in der Mahlzeitenplanung "
-#~ "geteilt werden sollen."
-
-#~ msgid "Tags"
-#~ msgstr "Schlagwörter"
diff --git a/cookbook/locale/es/LC_MESSAGES/django.mo b/cookbook/locale/es/LC_MESSAGES/django.mo
index 5537ad7b..a0ae2b90 100644
Binary files a/cookbook/locale/es/LC_MESSAGES/django.mo and b/cookbook/locale/es/LC_MESSAGES/django.mo differ
diff --git a/cookbook/locale/es/LC_MESSAGES/django.po b/cookbook/locale/es/LC_MESSAGES/django.po
index 6f89ca4d..a83c67de 100644
--- a/cookbook/locale/es/LC_MESSAGES/django.po
+++ b/cookbook/locale/es/LC_MESSAGES/django.po
@@ -2,11 +2,13 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR , YEAR.
-#
+#
# Translators:
# Alberto , 2020
# alfa5 , 2020
-#
+# miguel angel , 2020
+# Miguel Canteras , 2021
+#
#, fuzzy
msgid ""
msgstr ""
@@ -14,13 +16,12 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-09 18:01+0100\n"
"PO-Revision-Date: 2020-06-02 19:28+0000\n"
-"Last-Translator: alfa5 , 2020\n"
-"Language-Team: Spanish (https://www.transifex.com/django-recipes/"
-"teams/110507/es/)\n"
-"Language: es\n"
+"Last-Translator: Miguel Canteras , 2021\n"
+"Language-Team: Spanish (https://www.transifex.com/django-recipes/teams/110507/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: .\cookbook\filters.py:22 .\cookbook\templates\base.html:87
@@ -35,8 +36,8 @@ msgid ""
"Color of the top navigation bar. Not all colors work with all themes, just "
"try them out!"
msgstr ""
-"Color de la barra de navegación superior. No todos los colores funcionan con "
-"todos los temas, ¡pruébalos!"
+"Color de la barra de navegación superior. No todos los colores funcionan con"
+" todos los temas, ¡pruébalos!"
#: .\cookbook\forms.py:45
msgid "Default Unit to be used when inserting a new ingredient into a recipe."
@@ -57,8 +58,8 @@ msgid ""
"Users with whom newly created meal plan/shopping list entries should be "
"shared by default."
msgstr ""
-"Usuarios con los que las entradas recién creado plan de comida/lista de la "
-"compra deben compartirse de forma predeterminada."
+"Usuarios con los que las entradas recién creadas del plan de comida/lista de"
+" la compra deben compartirse de forma predeterminada."
#: .\cookbook\forms.py:48
msgid "Show recently viewed recipes on search page."
@@ -79,8 +80,8 @@ msgid ""
"Useful when shopping with multiple people but might use a little bit of "
"mobile data. If lower than instance limit it is reset when saving."
msgstr ""
-"Ponerlo a 0 deshabilitará la sincronización automática. Al ver una lista de "
-"la compra, la lista se actualiza cada periodo establecido en segundos para "
+"Fijar en 0 deshabilita la sincronización automática. Al ver una lista de la "
+"compra, la lista se actualiza cada periodo establecido de segundos para "
"sincronizar los cambios que otra persona pueda haber hecho. Es útil cuando "
"se compra con varias personas, pero puede consumir datos móviles. Si el "
"valor establecido es inferior al límite de la instancia, este se "
@@ -88,15 +89,14 @@ msgstr ""
#: .\cookbook\forms.py:55
msgid "Makes the navbar stick to the top of the page."
-msgstr ""
+msgstr "Hace la barra de navegación fija en la parte superior de la página."
#: .\cookbook\forms.py:71
msgid ""
"Both fields are optional. If none are given the username will be displayed "
"instead"
msgstr ""
-"Ambos campos son opcionales. Si no se proporciona ninguno, se mostrará el "
-"nombre de usuario en su lugar\n"
+"Ambos campos son opcionales. Si no se proporciona ninguno, se mostrará el nombre de usuario en su lugar\n"
" \n"
" \n"
" \n"
@@ -131,10 +131,8 @@ msgid "Storage UID"
msgstr "UID de almacenamiento"
#: .\cookbook\forms.py:117
-#, fuzzy
-#| msgid "Number of Days"
msgid "Number of servings"
-msgstr "Número de Días"
+msgstr "Número de raciones"
#: .\cookbook\forms.py:128
msgid ""
@@ -146,7 +144,7 @@ msgstr ""
#: .\cookbook\forms.py:143
msgid "Default"
-msgstr ""
+msgstr "Por defecto"
#: .\cookbook\forms.py:162
msgid "New Unit"
@@ -154,15 +152,15 @@ msgstr "Nueva Unidad"
#: .\cookbook\forms.py:163
msgid "New unit that other gets replaced by."
-msgstr "Nueva unidad por la que otras son reemplazadas."
+msgstr "Nueva unidad que reemplaza a la anterior."
#: .\cookbook\forms.py:168
msgid "Old Unit"
-msgstr "Unidad antigua"
+msgstr "Antigua unidad"
#: .\cookbook\forms.py:169
msgid "Unit that should be replaced."
-msgstr "Unidad que debe reemplazarse."
+msgstr "Unidad que se va a reemplazar."
#: .\cookbook\forms.py:179
msgid "New Food"
@@ -174,7 +172,7 @@ msgstr "Nuevo alimento que remplaza al anterior."
#: .\cookbook\forms.py:185
msgid "Old Food"
-msgstr "Alimento anterior"
+msgstr "Antiguo alimento"
#: .\cookbook\forms.py:186
msgid "Food that should be replaced."
@@ -197,8 +195,8 @@ msgstr ""
#: .\cookbook\forms.py:244
msgid ""
-"Leave empty for dropbox and enter only base url for nextcloud (/remote."
-"php/webdav/ is added automatically)"
+"Leave empty for dropbox and enter only base url for nextcloud "
+"(/remote.php/webdav/ is added automatically)"
msgstr ""
"Dejar vació para Dropbox e introducir sólo la URL base para Nextcloud "
"(/remote.php/webdav/ se añade automáticamente)"
@@ -218,17 +216,17 @@ msgstr "Debe proporcionar al menos una receta o un título."
#: .\cookbook\forms.py:312
msgid "You can list default users to share recipes with in the settings."
msgstr ""
-"Puede enumerar los usuarios predeterminados con los que compartir recetas en "
-"la configuración."
+"Puede enumerar los usuarios predeterminados con los que compartir recetas en"
+" la configuración."
#: .\cookbook\forms.py:313
#: .\cookbook\templates\forms\edit_internal_recipe.html:377
msgid ""
-"You can use markdown to format this field. See the docs here"
+"You can use markdown to format this field. See the docs here"
msgstr ""
-"Puede utilizar Markdown para formatear este campo. Vea la documentación aqui"
+"Puede utilizar Markdown para formatear este campo. Vea la documentación aqui"
#: .\cookbook\forms.py:328
msgid "A username is not required, if left blank the new user can choose one."
@@ -263,8 +261,8 @@ msgstr ""
#: .\cookbook\helper\recipe_url_import.py:53
msgid ""
-"The requested site does not provide any recognized data format to import the "
-"recipe from."
+"The requested site does not provide any recognized data format to import the"
+" recipe from."
msgstr ""
"El sitio solicitado no proporciona ningún formato de datos reconocido para "
"importar la receta."
@@ -278,6 +276,8 @@ msgid ""
"Importer expected a .zip file. Did you choose the correct importer type for "
"your data ?"
msgstr ""
+"El importador esperaba un fichero.zip. ¿Has escogido el tipo de importador "
+"correcto para tus datos?"
#: .\cookbook\integration\safron.py:23
#: .\cookbook\templates\forms\edit_internal_recipe.html:65
@@ -287,10 +287,8 @@ msgid "Servings"
msgstr "Raciones"
#: .\cookbook\integration\safron.py:25
-#, fuzzy
-#| msgid "Waiting time ~"
msgid "Waiting time"
-msgstr "Tiempo de espera ~"
+msgstr "Tiempo de espera"
#: .\cookbook\integration\safron.py:27
#: .\cookbook\templates\forms\edit_internal_recipe.html:59
@@ -305,7 +303,7 @@ msgstr "Libro de cocina"
#: .\cookbook\integration\safron.py:31
msgid "Section"
-msgstr ""
+msgstr "Sección"
#: .\cookbook\migrations\0047_auto_20200602_1133.py:12
msgid "Breakfast"
@@ -401,37 +399,36 @@ msgstr "Iniciar sesión"
#: .\cookbook\templates\account\login.html:13
#: .\cookbook\templates\account\login.html:28
msgid "Sign In"
-msgstr ""
+msgstr "Iniciar sesión"
#: .\cookbook\templates\account\login.html:38
msgid "Social Login"
-msgstr ""
+msgstr "Inicio de sesión social"
#: .\cookbook\templates\account\login.html:39
msgid "You can use any of the following providers to sign in."
msgstr ""
+"Puedes usar cualquiera de los siguientes proveedores de inicio de sesión."
#: .\cookbook\templates\account\logout.html:5
#: .\cookbook\templates\account\logout.html:9
#: .\cookbook\templates\account\logout.html:18
msgid "Sign Out"
-msgstr ""
+msgstr "Salir"
#: .\cookbook\templates\account\logout.html:11
-#, fuzzy
-#| msgid "Are you sure that you want to merge these two units?"
msgid "Are you sure you want to sign out?"
-msgstr "¿Estás seguro de que quieres combinar estas dos unidades?"
+msgstr "¿Seguro que quieres salir?"
#: .\cookbook\templates\account\password_reset.html:5
#: .\cookbook\templates\account\password_reset_done.html:5
msgid "Password Reset"
-msgstr ""
+msgstr "Restablecer contraseña"
#: .\cookbook\templates\account\password_reset.html:9
#: .\cookbook\templates\account\password_reset_done.html:9
msgid "Password reset is not implemented for the time being!"
-msgstr ""
+msgstr "¡Restablecimiento de contraseña no está implementado de momento!"
#: .\cookbook\templates\account\signup.html:5
msgid "Register"
@@ -649,20 +646,16 @@ msgid "Waiting Time"
msgstr "Tiempo de espera"
#: .\cookbook\templates\forms\edit_internal_recipe.html:68
-#, fuzzy
-#| msgid "Servings"
msgid "Servings Text"
-msgstr "Raciones"
+msgstr "Texto de raciones"
#: .\cookbook\templates\forms\edit_internal_recipe.html:79
msgid "Select Keywords"
msgstr "Seleccionar palabras clave"
#: .\cookbook\templates\forms\edit_internal_recipe.html:93
-#, fuzzy
-#| msgid "Nutrition"
msgid "Description"
-msgstr "Información Nutricional"
+msgstr "Descripción"
#: .\cookbook\templates\forms\edit_internal_recipe.html:108
msgid "Nutrition"
@@ -778,7 +771,7 @@ msgstr "Habilitar cantidad"
#: .\cookbook\templates\forms\edit_internal_recipe.html:348
msgid "Copy Template Reference"
-msgstr ""
+msgstr "Copiar Referencia de Plantilla"
#: .\cookbook\templates\forms\edit_internal_recipe.html:374
#: .\cookbook\templates\url_import.html:177
@@ -826,19 +819,15 @@ msgstr "Editar ingredientes"
#: .\cookbook\templates\forms\ingredients.html:16
msgid ""
"\n"
-" The following form can be used if, accidentally, two (or more) units "
-"or ingredients where created that should be\n"
+" The following form can be used if, accidentally, two (or more) units or ingredients where created that should be\n"
" the same.\n"
-" It merges two units or ingredients and updates all recipes using "
-"them.\n"
+" It merges two units or ingredients and updates all recipes using them.\n"
" "
msgstr ""
"\n"
-" La siguiente forma puede utilizarse si, accidentalmente, se crean "
-"dos (o más) unidades o ingredientes que deberían ser\n"
+" La siguiente forma puede utilizarse si, accidentalmente, se crean dos (o más) unidades o ingredientes que deberían ser\n"
" iguales.\n"
-" Fusiona dos unidades o ingredientes y actualiza todas las recetas "
-"que los usan.\n"
+" Fusiona dos unidades o ingredientes y actualiza todas las recetas que los usan.\n"
" "
#: .\cookbook\templates\forms\ingredients.html:24
@@ -853,7 +842,7 @@ msgstr "¿Estás seguro de que quieres combinar estas dos unidades?"
#: .\cookbook\templates\forms\ingredients.html:31
#: .\cookbook\templates\forms\ingredients.html:40
msgid "Merge"
-msgstr "Unir"
+msgstr "Combinar"
#: .\cookbook\templates\forms\ingredients.html:36
msgid "Are you sure that you want to merge these two ingredients?"
@@ -879,7 +868,7 @@ msgstr "Eliminar archivo original"
#: .\cookbook\templates\generic\list_template.html:6
#: .\cookbook\templates\generic\list_template.html:12
msgid "List"
-msgstr "Listar"
+msgstr "Lista"
#: .\cookbook\templates\generic\list_template.html:25
msgid "Filter"
@@ -961,23 +950,17 @@ msgstr "Advertencia de seguridad"
#: .\cookbook\templates\include\storage_backend_warning.html:5
msgid ""
"\n"
-" The Password and Token field are stored as plain text "
-"inside the database.\n"
-" This is necessary because they are needed to make API requests, but "
-"it also increases the risk of\n"
+" The Password and Token field are stored as plain text inside the database.\n"
+" This is necessary because they are needed to make API requests, but it also increases the risk of\n"
" someone stealing it. \n"
-" To limit the possible damage tokens or accounts with limited access "
-"can be used.\n"
+" To limit the possible damage tokens or accounts with limited access can be used.\n"
" "
msgstr ""
"\n"
-" Los camposContraseña y Tokenson almacenados en texto "
-"plano dentro de la base de datos.\n"
-" Esto es necesario porque son requeridos para hacer peticiones de la "
-"API, pero esto incrementa el riesgo de\n"
+" Los camposContraseña y Tokenson almacenados en texto plano dentro de la base de datos.\n"
+" Esto es necesario porque son requeridos para hacer peticiones de la API, pero esto incrementa el riesgo de\n"
" que alguien lo robe. \n"
-" Para limitar los posibles daños se pueden utilizar tokens o cuentas "
-"con acceso limitado.\n"
+" Para limitar los posibles daños se pueden utilizar tokens o cuentas con acceso limitado.\n"
" "
#: .\cookbook\templates\index.html:29
@@ -1011,7 +994,7 @@ msgstr "Recetas"
#: .\cookbook\templates\index.html:94
msgid "Log in to view recipes"
-msgstr "Inicie sesión para ver recetas"
+msgstr "Inicia sesión para ver recetas"
#: .\cookbook\templates\markdown_info.html:5
#: .\cookbook\templates\markdown_info.html:13
@@ -1021,30 +1004,16 @@ msgstr "Información de Markdown"
#: .\cookbook\templates\markdown_info.html:14
msgid ""
"\n"
-" Markdown is lightweight markup language that can be used to format "
-"plain text easily.\n"
-" This site uses the Python Markdown library to\n"
-" convert your text into nice looking HTML. Its full markdown "
-"documentation can be found\n"
-" here.\n"
-" An incomplete but most likely sufficient documentation can be found "
-"below.\n"
+" Markdown is lightweight markup language that can be used to format plain text easily.\n"
+" This site uses the Python Markdown library to\n"
+" convert your text into nice looking HTML. Its full markdown documentation can be found\n"
+" here.\n"
+" An incomplete but most likely sufficient documentation can be found below.\n"
" "
msgstr ""
"\n"
-" Markdown es un lenguaje de marcado ligero que puede ser usado para "
-"formatear fácilmente el texto.\n"
-" Este sitio utiliza la biblioteca Python Markdown para\n"
-" convertir tu texto en un bonito html. La documentación completa de "
-"Markdown se puede encontrar\n"
-" aquí.\n"
-" A continuación se incluye una documentación incompleta pero "
-"probablemente suficiente.\n"
-" "
+"Markdown es un lenguaje de marcado ligero que puede usarse para formatear texto plano fácilmente. Este sitio usa la librería Python Markdownpara convertir tu texto en HTML atractivo. Su documentación completa puede ser encontrada aquí.\n"
+"Una documentación incompleta pero suficiente puede encontrarse a continuación."
#: .\cookbook\templates\markdown_info.html:25
msgid "Headers"
@@ -1074,7 +1043,7 @@ msgstr "Este texto está en negrita"
#: .\cookbook\templates\markdown_info.html:60
#: .\cookbook\templates\markdown_info.html:75
msgid "This text is italic"
-msgstr "Este texto está en cursiva"
+msgstr "Este texto está en itálica."
#: .\cookbook\templates\markdown_info.html:61
#: .\cookbook\templates\markdown_info.html:77
@@ -1130,8 +1099,8 @@ msgid ""
"Links can be formatted with Markdown. This application also allows to paste "
"links directly into markdown fields without any formatting."
msgstr ""
-"Los enlaces se pueden formatear con Markdown. Esta aplicación también "
-"permite pegar enlaces directamente en campos de Markdown sin ningun formato."
+"Los enlaces pueden ser formateados con Markdown. Esta aplicación también "
+"permite pegar enlaces directamente en campos markdown sin formato."
#: .\cookbook\templates\markdown_info.html:132
#: .\cookbook\templates\markdown_info.html:145
@@ -1143,19 +1112,15 @@ msgid "Tables"
msgstr "Tablas"
#: .\cookbook\templates\markdown_info.html:153
-#, fuzzy
-#| msgid ""
-#| "Markdown tables are hard to create by hand. It is recommended to use a "
-#| "table editor like this one."
msgid ""
-"Markdown tables are hard to create by hand. It is recommended to use a table "
-"editor like this one."
+"Markdown tables are hard to create by hand. It is recommended to use a table"
+" editor like this one."
msgstr ""
-"Las tablas de Markdown son difíciles de crear a mano. Se recomienda usar un "
-"editor de tablas como este. "
+"Las tablas Mardown son difíciles de crear a mano. Se recomienda usar un "
+"editor de tablas como este."
#: .\cookbook\templates\markdown_info.html:155
#: .\cookbook\templates\markdown_info.html:157
@@ -1193,19 +1158,18 @@ msgstr "Nota (opcional)"
#: .\cookbook\templates\meal_plan.html:143
msgid ""
-"You can use markdown to format this field. See the docs here"
+"You can use markdown to format this field. See the docs "
+"here"
msgstr ""
-"Puedes utilizar Markdown para dar formato a este campo. Consulta la documentación aquí"
+"Puedes utilizar Markdown para dar formato a este campo. Consulta la documentación aquí"
#: .\cookbook\templates\meal_plan.html:147
#: .\cookbook\templates\meal_plan.html:251
-#, fuzzy
-#| msgid "Servings"
msgid "Serving Count"
-msgstr "Raciones"
+msgstr "Número de raciones"
#: .\cookbook\templates\meal_plan.html:153
msgid "Create only note"
@@ -1220,7 +1184,7 @@ msgstr "Lista de la Compra"
#: .\cookbook\templates\meal_plan.html:172
msgid "Shopping list currently empty"
-msgstr "La Lista de la Compra está vacía"
+msgstr "Lista de la compra vacía"
#: .\cookbook\templates\meal_plan.html:175
msgid "Open Shopping List"
@@ -1240,8 +1204,8 @@ msgstr "Compensar día inicial"
#: .\cookbook\templates\meal_plan.html:209
msgid ""
-"Number of days starting from the first day of the week to offset the default "
-"view."
+"Number of days starting from the first day of the week to offset the default"
+" view."
msgstr ""
"Número de días a partir del primer día de la semana para compensar la vista "
"por defecto."
@@ -1283,104 +1247,44 @@ msgid "Meal Plan Help"
msgstr "Ayuda del menú"
#: .\cookbook\templates\meal_plan.html:344
-#, fuzzy
-#| msgid ""
-#| "\n"
-#| "
The meal plan module allows planning of "
-#| "meals both with recipes and notes.
\n"
-#| "
Simply select a recipe from the list of "
-#| "recently viewed recipes or search the one you\n"
-#| " want and drag it to the desired plan "
-#| "position. You can also add a note and a title and\n"
-#| " then drag the recipe to create a plan "
-#| "entry with a custom title and note. Creating only\n"
-#| " Notes is possible by dragging the create "
-#| "note box into the plan.
\n"
-#| "
Click on a recipe in order to open the "
-#| "detail view. Here you can also add it to the\n"
-#| " shopping list. You can also add all "
-#| "recipes of a day to the shopping list by\n"
-#| " clicking the shopping cart at the top of "
-#| "the table.
\n"
-#| "
Since a common use case is to plan meals "
-#| "together you can define\n"
-#| " users you want to share your plan with in "
-#| "the settings.\n"
-#| "
\n"
-#| "
You can also edit the types of meals you "
-#| "want to plan. If you share your plan with\n"
-#| " someone with\n"
-#| " different meals, their meal types will "
-#| "appear in your list as well. To prevent\n"
-#| " duplicates (e.g. Other and Misc.)\n"
-#| " name your meal types the same as the "
-#| "users you share your meals with and they will be\n"
-#| " merged.
\n"
-#| " "
msgid ""
"\n"
-"
The meal plan module allows planning of meals "
-"both with recipes and notes.
\n"
-"
Simply select a recipe from the list of "
-"recently viewed recipes or search the one you\n"
-" want and drag it to the desired plan "
-"position. You can also add a note and a title and\n"
-" then drag the recipe to create a plan entry "
-"with a custom title and note. Creating only\n"
-" Notes is possible by dragging the create "
-"note box into the plan.
\n"
-"
Click on a recipe in order to open the "
-"detailed view. There you can also add it to the\n"
-" shopping list. You can also add all recipes "
-"of a day to the shopping list by\n"
-" clicking the shopping cart at the top of the "
-"table.
\n"
-"
Since a common use case is to plan meals "
-"together you can define\n"
-" users you want to share your plan with in "
-"the settings.\n"
+"
The meal plan module allows planning of meals both with recipes and notes.
\n"
+"
Simply select a recipe from the list of recently viewed recipes or search the one you\n"
+" want and drag it to the desired plan position. You can also add a note and a title and\n"
+" then drag the recipe to create a plan entry with a custom title and note. Creating only\n"
+" Notes is possible by dragging the create note box into the plan.
\n"
+"
Click on a recipe in order to open the detailed view. There you can also add it to the\n"
+" shopping list. You can also add all recipes of a day to the shopping list by\n"
+" clicking the shopping cart at the top of the table.
\n"
+"
Since a common use case is to plan meals together you can define\n"
+" users you want to share your plan with in the settings.\n"
"
\n"
-"
You can also edit the types of meals you want "
-"to plan. If you share your plan with\n"
+"
You can also edit the types of meals you want to plan. If you share your plan with\n"
" someone with\n"
-" different meals, their meal types will "
-"appear in your list as well. To prevent\n"
+" different meals, their meal types will appear in your list as well. To prevent\n"
" duplicates (e.g. Other and Misc.)\n"
-" name your meal types the same as the users "
-"you share your meals with and they will be\n"
+" name your meal types the same as the users you share your meals with and they will be\n"
" merged.
\n"
" "
msgstr ""
"\n"
-"
El módulo de menú permite planificar las "
-"comidas con recetas o con notas.
\n"
-"
Simplemente selecciona una receta de la lista "
-"de recetas vistas recientemente o busca la que\n"
-" quieras y arrastrala a la posición deseada "
-"del menú. También puede añadir una nota y un título y\n"
-" luego arrastrar la receta para crear una "
-"entrada del plan con un título y una nota personalizados. Es posible crear\n"
-" solamente notas arrastrando el cuadro de "
-"creación de notas al menú.
\n"
-"
Haga clic en una receta para abrir la vista "
-"detallada. Desde aquí también puedes añadirla a la\n"
-" lista de la compra. También puedes añadir "
-"todas las recetas de un día a la lista de la compra\n"
-" haciendo clic en el carrito de la compra en "
-"la parte superior de la tabla.
\n"
-"
Ya que un caso de uso común es planificar las "
-"comidas juntos, en los ajustes\n"
-" puedes definir los usuarios con los que "
-"quieres compartir el menú.\n"
+"
El módulo de menú permite planificar las comidas con recetas o con notas.
\n"
+"
Simplemente selecciona una receta de la lista de recetas vistas recientemente o busca la que\n"
+" quieras y arrastrala a la posición deseada del menú. También puede añadir una nota y un título y\n"
+" luego arrastrar la receta para crear una entrada del plan con un título y una nota personalizados. Es posible crear\n"
+" solamente notas arrastrando el cuadro de creación de notas al menú.
\n"
+"
Haga clic en una receta para abrir la vista detallada. Desde aquí también puedes añadirla a la\n"
+" lista de la compra. También puedes añadir todas las recetas de un día a la lista de la compra\n"
+" haciendo clic en el carrito de la compra en la parte superior de la tabla.
\n"
+"
Ya que un caso de uso común es planificar las comidas juntos, en los ajustes\n"
+" puedes definir los usuarios con los que quieres compartir el menú.\n"
"
\n"
-"
También puedes editar los tipos de comidas "
-"del menú. Si compartes tu menú con\n"
+"
También puedes editar los tipos de comidas del menú. Si compartes tu menú con\n"
" alguien con\n"
-" diferentes tipos de comidas, sus tipos de "
-"comida aparecerán también en tu listado. Para prevenir\n"
+" diferentes tipos de comidas, sus tipos de comida aparecerán también en tu listado. Para prevenir\n"
" duplicados (p. ej. Otros y Misc.)\n"
-" nombra los tipos de comida igual que el "
-"resto de usuarios con los que compartes tus comidas y serán\n"
+" nombra los tipos de comida igual que el resto de usuarios con los que compartes tus comidas y serán\n"
" combinados.
\n"
" "
@@ -1399,27 +1303,32 @@ msgstr "Otras comidas en este día"
#: .\cookbook\templates\no_groups_info.html:5
#: .\cookbook\templates\offline.html:6
msgid "Offline"
-msgstr ""
+msgstr "Desconectado"
#: .\cookbook\templates\no_groups_info.html:12
msgid "No Permissions"
-msgstr ""
+msgstr "Sin permisos"
#: .\cookbook\templates\no_groups_info.html:15
msgid ""
"You do not have any groups and therefor cannot use this application. Please "
"contact your administrator."
msgstr ""
+"No tienes ningún grupo y por eso no puedes usar esta aplicación. Por favor, "
+"contacta con tu administrador."
#: .\cookbook\templates\offline.html:19
msgid "You are currently offline!"
-msgstr ""
+msgstr "¡Estás desconectado!"
#: .\cookbook\templates\offline.html:20
msgid ""
"The recipes listed below are available for offline viewing because you have "
"recently viewed them. Keep in mind that data might be outdated."
msgstr ""
+"Las recetas listadas a continuación están disponibles para ver sin conexión "
+"porque las has visto recientemente. Ten en cuenta que los datos pueden estar"
+" desactualizados."
#: .\cookbook\templates\recipe_view.html:21 .\cookbook\templates\stats.html:47
msgid "Comments"
@@ -1464,7 +1373,7 @@ msgstr "Cuenta"
#: .\cookbook\templates\settings.html:38
msgid "Link social account"
-msgstr ""
+msgstr "Enlazar cuenta social"
#: .\cookbook\templates\settings.html:42
msgid "Language"
@@ -1488,8 +1397,8 @@ msgstr ""
#: .\cookbook\templates\settings.html:92
msgid ""
-"Use the token as an Authorization header prefixed by the word token as shown "
-"in the following examples:"
+"Use the token as an Authorization header prefixed by the word token as shown"
+" in the following examples:"
msgstr ""
"Utilice el token como cabecera de autorización usando como prefijo la "
"palabra token, tal y como se muestra en los siguientes ejemplos:"
@@ -1510,11 +1419,12 @@ msgstr "Configuración"
msgid ""
"To start using this application you must first create a superuser account."
msgstr ""
-"Para empezar a usar esta aplicación, primero debes crear un superusuario."
+"Para empezar a usar esta aplicación primero tienes que crear una cuenta de "
+"superusuario."
#: .\cookbook\templates\setup.html:20
msgid "Create Superuser account"
-msgstr "Crear Superusuario"
+msgstr "Crear cuenta de Superusuario"
#: .\cookbook\templates\shopping_list.html:75
msgid "Shopping Recipes"
@@ -1526,13 +1436,11 @@ msgstr "No hay recetas seleccionadas"
#: .\cookbook\templates\shopping_list.html:145
msgid "Entry Mode"
-msgstr ""
+msgstr "Modo de entrada"
#: .\cookbook\templates\shopping_list.html:153
-#, fuzzy
-#| msgid "New Entry"
msgid "Add Entry"
-msgstr "Nueva entrada"
+msgstr "Añadir entrada"
#: .\cookbook\templates\shopping_list.html:168
msgid "Amount"
@@ -1540,13 +1448,11 @@ msgstr "Cantidad"
#: .\cookbook\templates\shopping_list.html:224
msgid "Supermarket"
-msgstr ""
+msgstr "Supermercado"
#: .\cookbook\templates\shopping_list.html:234
-#, fuzzy
-#| msgid "Select User"
msgid "Select Supermarket"
-msgstr "Seleccionar Usuario"
+msgstr "Seleccionar supermercado"
#: .\cookbook\templates\shopping_list.html:258
msgid "Select User"
@@ -1558,8 +1464,7 @@ msgstr "Completada"
#: .\cookbook\templates\shopping_list.html:290
msgid "You are offline, shopping list might not syncronize."
-msgstr ""
-"Estás desconectado, la lista de la compra podría no estar sincronizada."
+msgstr "Estás desconectado, la lista de la compra no se sincronizará."
#: .\cookbook\templates\shopping_list.html:353
msgid "Copy/Export"
@@ -1576,26 +1481,28 @@ msgstr "¡Hubo un error al crear un recurso!"
#: .\cookbook\templates\socialaccount\connections.html:4
#: .\cookbook\templates\socialaccount\connections.html:7
msgid "Account Connections"
-msgstr ""
+msgstr "Conexiones de la cuenta"
#: .\cookbook\templates\socialaccount\connections.html:10
msgid ""
"You can sign in to your account using any of the following third party\n"
" accounts:"
msgstr ""
+"Puedes entrar en tu cuenta usando cualquiera de las siguientes cuentas de "
+"terceros:"
#: .\cookbook\templates\socialaccount\connections.html:36
msgid "Remove"
-msgstr ""
+msgstr "Eliminar"
#: .\cookbook\templates\socialaccount\connections.html:44
msgid ""
"You currently have no social network accounts connected to this account."
-msgstr ""
+msgstr "Actualmente no tienes una cuenta social conectada a esta cuenta."
#: .\cookbook\templates\socialaccount\connections.html:47
msgid "Add a 3rd Party Account"
-msgstr ""
+msgstr "Añadir una cuenta de terceros"
#: .\cookbook\templates\stats.html:4
msgid "Stats"
@@ -1648,19 +1555,15 @@ msgstr "Información del Sistema"
#: .\cookbook\templates\system.html:51
msgid ""
"\n"
-" Django Recipes is an open source free software application. It can "
-"be found on\n"
+" Django Recipes is an open source free software application. It can be found on\n"
" GitHub.\n"
-" Changelogs can be found here.\n"
+" Changelogs can be found here.\n"
" "
msgstr ""
"\n"
-" Django Recipes es una aplicación de software libre de código "
-"abierto. Se puede encontrar en\n"
+" Django Recipes es una aplicación de software libre de código abierto. Se puede encontrar en\n"
" GitHub.\n"
-" Los registros de cambios se pueden encontrar aquí.\n"
+" Los registros de cambios se pueden encontrar aquí.\n"
" "
#: .\cookbook\templates\system.html:65
@@ -1681,16 +1584,13 @@ msgstr "Ok"
msgid ""
"Serving media files directly using gunicorn/python is not recommend!\n"
" Please follow the steps described\n"
-" here to update\n"
+" here to update\n"
" your installation.\n"
" "
msgstr ""
-"Servir archivos multimedia utilizando directamente gunicorn/python no "
-"está recomendado!\n"
+"Servir archivos multimedia utilizando directamente gunicorn/python no está recomendado!\n"
" Por favor, sigue los pasos descritos\n"
-" aquí para actualizar\n"
+" aquí para actualizar\n"
" tu instalación.\n"
" "
@@ -1706,23 +1606,17 @@ msgstr "Clave Secreta"
#: .\cookbook\templates\system.html:83
msgid ""
"\n"
-" You do not have a SECRET_KEY configured in your "
-".env file. Django defaulted to the\n"
+" You do not have a SECRET_KEY configured in your .env file. Django defaulted to the\n"
" standard key\n"
-" provided with the installation which is publicly know and "
-"insecure! Please set\n"
-" SECRET_KEY int the .env configuration "
-"file.\n"
+" provided with the installation which is publicly know and insecure! Please set\n"
+" SECRET_KEY int the .env configuration file.\n"
" "
msgstr ""
"\n"
-" No has configurado la variable SECRET_KEY en el "
-"fichero .env. Django está utilizando la\n"
+" No has configurado la variable SECRET_KEY en el fichero .env. Django está utilizando la\n"
" clave estándar\n"
-" proporcionada con la instalación, esta clave es pública e "
-"insegura. Por favor, configura\n"
-" SECRET_KEY en el fichero de configuración ."
-"env.\n"
+" proporcionada con la instalación, esta clave es pública e insegura. Por favor, configura\n"
+" SECRET_KEY en el fichero de configuración .env.\n"
" "
#: .\cookbook\templates\system.html:95
@@ -1732,19 +1626,15 @@ msgstr "Modo Depuración"
#: .\cookbook\templates\system.html:99
msgid ""
"\n"
-" This application is still running in debug mode. This is most "
-"likely not needed. Turn of debug mode by\n"
+" This application is still running in debug mode. This is most likely not needed. Turn of debug mode by\n"
" setting\n"
-" DEBUG=0 int the .env configuration "
-"file.\n"
+" DEBUG=0 int the .env configuration file.\n"
" "
msgstr ""
"\n"
-" Esta aplicación está funcionando en modo de depuración. Lo más "
-"probable es que no sea necesario. Para desactivar el modo de depuración\n"
+" Esta aplicación está funcionando en modo de depuración. Lo más probable es que no sea necesario. Para desactivar el modo de depuración\n"
" configura\n"
-" DEBUG=0 en el fichero de configuración .env"
-"code>.\n"
+" DEBUG=0 en el fichero de configuración .env.\n"
" "
#: .\cookbook\templates\system.html:110
@@ -1758,14 +1648,12 @@ msgstr "Información"
#: .\cookbook\templates\system.html:114
msgid ""
"\n"
-" This application is not running with a Postgres database "
-"backend. This is ok but not recommended as some\n"
+" This application is not running with a Postgres database backend. This is ok but not recommended as some\n"
" features only work with postgres databases.\n"
" "
msgstr ""
"\n"
-" Esta aplicación no se ejecuta con un backend de base de datos "
-"Postgres. Esto es válido pero no es recomendado ya que algunas\n"
+" Esta aplicación no se ejecuta con un backend de base de datos Postgres. Esto es válido pero no es recomendado ya que algunas\n"
" características sólo funcionan con bases de datos Postgres.\n"
" "
@@ -1793,7 +1681,7 @@ msgstr "Todas las palabras clave."
#: .\cookbook\templates\url_import.html:206
msgid "Import all keywords, not only the ones already existing."
-msgstr "Importar todas las palabras clave no sólo las ya existentes."
+msgstr "Importar todas las palabras clave, no solo las ya existentes."
#: .\cookbook\templates\url_import.html:233
msgid "Information"
@@ -1802,20 +1690,15 @@ msgstr "Información"
#: .\cookbook\templates\url_import.html:235
msgid ""
" Only websites containing ld+json or microdata information can currently\n"
-" be imported. Most big recipe pages "
-"support this. If you site cannot be imported but\n"
+" be imported. Most big recipe pages support this. If you site cannot be imported but\n"
" you think\n"
-" it probably has some kind of structured "
-"data feel free to post an example in the\n"
+" it probably has some kind of structured data feel free to post an example in the\n"
" github issues."
msgstr ""
"Actualmente sólo se pueden importar sitios web que contengan información en\n"
-" ld+json o microdatos. La mayoría de las "
-"grandes páginas de recetas soportan esto. Si tu sitio no puede ser importado "
-"pero \n"
+" ld+json o microdatos. La mayoría de las grandes páginas de recetas soportan esto. Si tu sitio no puede ser importado pero \n"
" crees que\n"
-" tiene algún tipo de datos estructurados, "
-"no dudes en poner un ejemplo en las\n"
+" tiene algún tipo de datos estructurados, no dudes en poner un ejemplo en las\n"
" propuestas de GitHub."
#: .\cookbook\templates\url_import.html:243
@@ -1840,7 +1723,7 @@ msgstr "Las preferencias para este usuario ya existen"
#: .\cookbook\views\api.py:416 .\cookbook\views\views.py:265
msgid "This feature is not available in the demo version!"
-msgstr ""
+msgstr "¡Esta funcionalidad no está disponible en la versión demo!"
#: .\cookbook\views\api.py:439
msgid "Sync successful!"
@@ -1931,7 +1814,7 @@ msgstr "¡Unidades fusionadas!"
#: .\cookbook\views\edit.py:295 .\cookbook\views\edit.py:317
msgid "Cannot merge with the same object!"
-msgstr ""
+msgstr "¡No se puede unir con el mismo objeto!"
#: .\cookbook\views\edit.py:311
msgid "Foods merged!"
@@ -1939,11 +1822,11 @@ msgstr "¡Alimentos fusionados!"
#: .\cookbook\views\import_export.py:42
msgid "Importing is not implemented for this provider"
-msgstr ""
+msgstr "La importación no está implementada para este proveedor"
#: .\cookbook\views\import_export.py:58
msgid "Exporting is not implemented for this provider"
-msgstr ""
+msgstr "La exportación no está implementada para este proveedor"
#: .\cookbook\views\lists.py:42
msgid "Import Log"
@@ -1975,7 +1858,7 @@ msgstr "¡Comentario guardado!"
#: .\cookbook\views\views.py:152
msgid "This recipe is already linked to the book!"
-msgstr ""
+msgstr "¡Esta receta ya está enlazada al libro!"
#: .\cookbook\views\views.py:158
msgid "Bookmark saved!"
@@ -1984,8 +1867,8 @@ msgstr "¡Marcador guardado!"
#: .\cookbook\views\views.py:380
msgid ""
"The setup page can only be used to create the first user! If you have "
-"forgotten your superuser credentials please consult the django documentation "
-"on how to reset passwords."
+"forgotten your superuser credentials please consult the django documentation"
+" on how to reset passwords."
msgstr ""
"La página de configuración sólo puede ser utilizada para crear el primer "
"usuario. Si has olvidado tus credenciales de superusuario, por favor "
@@ -2006,157 +1889,3 @@ msgstr "¡Se proporcionó un enlace de invitación con formato incorrecto!"
#: .\cookbook\views\views.py:470
msgid "Invite Link not valid or already used!"
msgstr "¡El enlace de invitación no es válido o ya se ha utilizado!"
-
-#~ msgid "Export Base64 encoded image?"
-#~ msgstr "¿Exportar imagen codificada en Base64?"
-
-#~ msgid "Download export directly or show on page?"
-#~ msgstr "¿Descargar exportar directamente o mostrar en la página?"
-
-#~ msgid "Simply paste a JSON export into this textarea and click import."
-#~ msgstr ""
-#~ "Simplemente pegue una exportación JSON en este área de texto y haga clic "
-#~ "en importar."
-
-#~ msgid "Scaling factor for recipe."
-#~ msgstr "Factor de escala para receta."
-
-#~ msgid "Exported Recipe"
-#~ msgstr "Receta exportada"
-
-#~ msgid "Copy to clipboard"
-#~ msgstr "Copiar al portapapeles"
-
-#~ msgid "Copied!"
-#~ msgstr "¡Copiado!"
-
-#~ msgid "Copy list to clipboard"
-#~ msgstr "Copiar lista al portapapeles"
-
-#~ msgid "Error"
-#~ msgstr "Error"
-
-#~ msgid "There was an error loading the recipe!"
-#~ msgstr "¡Hubo un error al cargar la receta!"
-
-#~ msgid "Updated"
-#~ msgstr "Actualizada"
-
-#~ msgid "Changes saved successfully!"
-#~ msgstr "¡Los cambios se guardaron exitosamente!"
-
-#~ msgid "There was an error updating the recipe!"
-#~ msgstr "¡Hubo un error al actualizar la receta!"
-
-#~ msgid "Are you sure that you want to delete this ingredient?"
-#~ msgstr "¿Estás seguro de que quieres eliminar este ingrediente?"
-
-#~ msgid "Are you sure that you want to delete this step?"
-#~ msgstr "¿Estás seguro de que quieres eliminar este paso?"
-
-#~ msgid "There was an error loading a resource!"
-#~ msgstr "¡Hubo un error al cargar un recurso!"
-
-#~ msgid "Recipe Multiplier"
-#~ msgstr "Multiplicador de recetas"
-
-#~ msgid ""
-#~ "When deleting a meal type all entries using that type will be deleted as "
-#~ "well. Deletion will apply when configuration is saved. Do you want to "
-#~ "proceed?"
-#~ msgstr ""
-#~ "Al borrar un tipo de comida, todas las entradas que usen ese tipo serán "
-#~ "borradas también. El borrado se aplicará cuando se guarde la "
-#~ "configuración. ¿Quieres continuar?"
-
-#~ msgid "Add to Book"
-#~ msgstr "Añadir al Libro"
-
-#~ msgid "Add to Plan"
-#~ msgstr "Añadir al menú"
-
-#~ msgid "Print"
-#~ msgstr "Imprimir"
-
-#~ msgid "Share"
-#~ msgstr "Compartir"
-
-#~ msgid "in"
-#~ msgstr "en"
-
-#~ msgid "Preparation time ~"
-#~ msgstr "Tiempo de preparación ~"
-
-#~ msgid "Minutes"
-#~ msgstr "Minutos"
-
-#~ msgid "View external recipe"
-#~ msgstr "Ver receta externa"
-
-#~ msgid "External recipe image"
-#~ msgstr "Imagen de la receta externa"
-
-#~ msgid "External recipe"
-#~ msgstr "Receta externa"
-
-#~ msgid ""
-#~ "\n"
-#~ " This is an external recipe, which "
-#~ "means you can only view it by opening the link\n"
-#~ " above.\n"
-#~ " You can convert this recipe to a "
-#~ "fancy recipe by pressing the convert button. The\n"
-#~ " original\n"
-#~ " file\n"
-#~ " will still be accessible.\n"
-#~ " "
-#~ msgstr ""
-#~ "\n"
-#~ " Esta es una receta externa, lo que "
-#~ "significa que sólo puedes verla abriendo el enlace de\n"
-#~ " arriba.\n"
-#~ " Puedes convertir esta receta en una "
-#~ "receta de lujo pulsando el botón de conversión.\n"
-#~ " El\n"
-#~ " archivo\n"
-#~ " seguirá siendo accesible.\n"
-#~ " "
-
-#~ msgid "Convert now!"
-#~ msgstr "¡Convertir ahora!"
-
-#~ msgid "Your username and password didn't match. Please try again."
-#~ msgstr ""
-#~ "Tu nombre de usuario y contraseña no coinciden. Por favor, inténtelo de "
-#~ "nuevo."
-
-#~ msgid "There was an error updating a resource!"
-#~ msgstr "¡Hubo un error al actualizar un recurso!"
-
-#~ msgid "Object created successfully!"
-#~ msgstr "¡Objeto creado con éxito!"
-
-#~ msgid "Please enter a valid food"
-#~ msgstr "Por favor, introduzca un alimento válido"
-
-#~ msgid "Already importing the selected recipe, please wait!"
-#~ msgstr "Ya se está importando la receta seleccionada, ¡por favor espere!"
-
-#~ msgid "An error occurred while trying to import this recipe!"
-#~ msgstr "¡Se produjo un error al intentar importar esta receta!"
-
-#~ msgid "Recipe imported successfully!"
-#~ msgstr "¡Receta importada con éxito!"
-
-#~ msgid "Something went wrong during the import!"
-#~ msgstr "¡Algo salió mal durante la importación!"
-
-#~ msgid "Could not parse the supplied JSON!"
-#~ msgstr "¡No se pudo analizar el JSON proporcionado!"
-
-#~ msgid ""
-#~ "External recipes cannot be exported, please share the file directly or "
-#~ "select an internal recipe."
-#~ msgstr ""
-#~ "Las recetas externas no se pueden exportar, comparta el archivo "
-#~ "directamente o seleccione una receta interna."
diff --git a/cookbook/locale/hy/LC_MESSAGES/django.mo b/cookbook/locale/hy/LC_MESSAGES/django.mo
new file mode 100644
index 00000000..852dca01
Binary files /dev/null and b/cookbook/locale/hy/LC_MESSAGES/django.mo differ
diff --git a/cookbook/locale/hy/LC_MESSAGES/django.po b/cookbook/locale/hy/LC_MESSAGES/django.po
new file mode 100644
index 00000000..44d37706
--- /dev/null
+++ b/cookbook/locale/hy/LC_MESSAGES/django.po
@@ -0,0 +1,1880 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR , YEAR.
+#
+# Translators:
+# H K , 2021
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-02-09 18:01+0100\n"
+"PO-Revision-Date: 2020-06-02 19:28+0000\n"
+"Last-Translator: H K , 2021\n"
+"Language-Team: Armenian (https://www.transifex.com/django-recipes/teams/110507/hy/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: hy\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: .\cookbook\filters.py:22 .\cookbook\templates\base.html:87
+#: .\cookbook\templates\forms\edit_internal_recipe.html:219
+#: .\cookbook\templates\forms\ingredients.html:34
+#: .\cookbook\templates\stats.html:28 .\cookbook\views\lists.py:72
+msgid "Ingredients"
+msgstr "Բաղադրիչներ"
+
+#: .\cookbook\forms.py:44
+msgid ""
+"Color of the top navigation bar. Not all colors work with all themes, just "
+"try them out!"
+msgstr ""
+"Վերին վահանակի գույնը։ Ոչ բոլոր գույներն են աշխատում բոլոր թեմաների հետ, "
+"պարզապես փորձեք։"
+
+#: .\cookbook\forms.py:45
+msgid "Default Unit to be used when inserting a new ingredient into a recipe."
+msgstr "Նոր բաղադրիչ ավելացնելիս չափի լռելյայն միավորը։"
+
+#: .\cookbook\forms.py:46
+msgid ""
+"Enables support for fractions in ingredient amounts (e.g. convert decimals "
+"to fractions automatically)"
+msgstr ""
+"Ակտիվացնել բաղադրիչների քանակի համար կոտորակների աջակցությունը (փոխակերպել "
+"տասնորդականները կոտորակների)"
+
+#: .\cookbook\forms.py:47
+msgid ""
+"Users with whom newly created meal plan/shopping list entries should be "
+"shared by default."
+msgstr ""
+"Օգտատերեր, ում հետ նոր ստեղծված ճաշացուցակները/գնումների ցուցակները պետք է "
+"կիսվեն լռելյայն"
+
+#: .\cookbook\forms.py:48
+msgid "Show recently viewed recipes on search page."
+msgstr "Ցույց տալ վերջերս դիտած բաղադրատոմսերը փնտրման էջում։"
+
+#: .\cookbook\forms.py:49
+msgid "Number of decimals to round ingredients."
+msgstr "Բաղադրիչների կլորացման համար տասնորդականների քանակը"
+
+#: .\cookbook\forms.py:50
+msgid "If you want to be able to create and see comments underneath recipes."
+msgstr ""
+"Եթե ցանկանում եք կարողանալ ավելացնել և տեսնել մեկնաբանություններ "
+"բաղադրատոմսերի ներքևում։"
+
+#: .\cookbook\forms.py:52
+msgid ""
+"Setting to 0 will disable auto sync. When viewing a shopping list the list "
+"is updated every set seconds to sync changes someone else might have made. "
+"Useful when shopping with multiple people but might use a little bit of "
+"mobile data. If lower than instance limit it is reset when saving."
+msgstr ""
+"0-ն կանջատի ավտոմատ սինքրոնացումը։ Գնումների ցուցակը թարմացվում է "
+"յուրաքանչյուր սահմանված վարկյանը մեկ, մեկ ուրիշի կատարած փոփոխությունները "
+"սինքրոնացնելու համար։ Հարմար է, երբ մեկից ավել մարդ է կատարում գնումները, "
+"բայց կարող է օգտագործել բջջային ինտերնետ։"
+
+#: .\cookbook\forms.py:55
+msgid "Makes the navbar stick to the top of the page."
+msgstr "Կցել նավիգացիոն տողը էջի վերևում"
+
+#: .\cookbook\forms.py:71
+msgid ""
+"Both fields are optional. If none are given the username will be displayed "
+"instead"
+msgstr ""
+"Երկու դաշտն էլ կամավոր են։ Դատարկ լինելու դեպքում օգտվողի անունը կցուցադրվի "
+"փոխարենը"
+
+#: .\cookbook\forms.py:92 .\cookbook\forms.py:113 .\cookbook\forms.py:277
+#: .\cookbook\templates\forms\edit_internal_recipe.html:45
+msgid "Name"
+msgstr "Անվանում"
+
+#: .\cookbook\forms.py:93 .\cookbook\forms.py:114 .\cookbook\forms.py:278
+#: .\cookbook\templates\base.html:94
+#: .\cookbook\templates\forms\edit_internal_recipe.html:71
+#: .\cookbook\templates\stats.html:24 .\cookbook\templates\url_import.html:183
+msgid "Keywords"
+msgstr "Բանալի բառեր"
+
+#: .\cookbook\forms.py:94 .\cookbook\forms.py:115
+msgid "Preparation time in minutes"
+msgstr "Պատրաստման տևողությունը րոպեներով"
+
+#: .\cookbook\forms.py:95 .\cookbook\forms.py:116
+msgid "Waiting time (cooking/baking) in minutes"
+msgstr "Սպասման տևողությունը (եփել/թխել) րոպեներով"
+
+#: .\cookbook\forms.py:96 .\cookbook\forms.py:279
+msgid "Path"
+msgstr "Ուղի"
+
+#: .\cookbook\forms.py:97
+msgid "Storage UID"
+msgstr "Պահոցի UID"
+
+#: .\cookbook\forms.py:117
+msgid "Number of servings"
+msgstr "Չափաբաժինների քանակը"
+
+#: .\cookbook\forms.py:128
+msgid ""
+"Include - [ ] in list for easier usage in markdown based "
+"documents."
+msgstr ""
+"Ներառել - [ ] ցուցակում markdown փաստաթղթերում հեշտ կիրառման "
+"համար։"
+
+#: .\cookbook\forms.py:143
+msgid "Default"
+msgstr "Լռելյայն"
+
+#: .\cookbook\forms.py:162
+msgid "New Unit"
+msgstr "Նոր միավոր"
+
+#: .\cookbook\forms.py:163
+msgid "New unit that other gets replaced by."
+msgstr "Նոր միավոր հները փոխարինելու համար։"
+
+#: .\cookbook\forms.py:168
+msgid "Old Unit"
+msgstr "Հին միավոր"
+
+#: .\cookbook\forms.py:169
+msgid "Unit that should be replaced."
+msgstr "Փոխարինման ենթակա միավոր"
+
+#: .\cookbook\forms.py:179
+msgid "New Food"
+msgstr "Նոր սննդամթերք"
+
+#: .\cookbook\forms.py:180
+msgid "New food that other gets replaced by."
+msgstr "Նոր սննդամթերք, որով փոխարինվում է հինը։"
+
+#: .\cookbook\forms.py:185
+msgid "Old Food"
+msgstr "Հին սննդամթերք"
+
+#: .\cookbook\forms.py:186
+msgid "Food that should be replaced."
+msgstr "Փոխարինման ենթակա սննդամթերք։"
+
+#: .\cookbook\forms.py:198
+msgid "Add your comment: "
+msgstr "Ավելացրեք ձեր մեկնաբանությունը՝"
+
+#: .\cookbook\forms.py:229
+msgid "Leave empty for dropbox and enter app password for nextcloud."
+msgstr ""
+"Թողնել դատարկ dropbox-ի համար և մուտքագրել ծրագրի գաղտնաբառը nextcloud-ի "
+"համար։"
+
+#: .\cookbook\forms.py:236
+msgid "Leave empty for nextcloud and enter api token for dropbox."
+msgstr ""
+"Թողնել դատարկ nextcloud-ի համար և մուտքագրել ծրագրի ժետոնը dropbox-ի համար։"
+
+#: .\cookbook\forms.py:244
+msgid ""
+"Leave empty for dropbox and enter only base url for nextcloud "
+"(/remote.php/webdav/ is added automatically)"
+msgstr ""
+"Թողնել դատարկ dropbox-ի համար և մուտքագրել միայն հիմքային հղումը nextcloud-ի"
+" համար (/remote.php/webdav/ ինքնաբերաբար ավելացվում է)"
+
+#: .\cookbook\forms.py:263
+msgid "Search String"
+msgstr "Փնտրել շարքը"
+
+#: .\cookbook\forms.py:280
+msgid "File ID"
+msgstr "Ֆայլի ID"
+
+#: .\cookbook\forms.py:299
+msgid "You must provide at least a recipe or a title."
+msgstr "Դուք պետք է տրամադրեք առնվազն բաղադրատոմս կամ վերնագիր"
+
+#: .\cookbook\forms.py:312
+msgid "You can list default users to share recipes with in the settings."
+msgstr ""
+"Դուք կարող եք կարգավորումներում ավելացնել այն օգտատերերին, ում հետ "
+"բաղադրատոմսերը պետք է կիսվեն լռելյայն"
+
+#: .\cookbook\forms.py:313
+#: .\cookbook\templates\forms\edit_internal_recipe.html:377
+msgid ""
+"You can use markdown to format this field. See the docs here"
+msgstr ""
+"Դուք կարող եք օգտագործել markdown-ն այս դաշտը ձևավորելու համար. Տեսեք փաստաթղթերն այստեղ"
+
+#: .\cookbook\forms.py:328
+msgid "A username is not required, if left blank the new user can choose one."
+msgstr ""
+"Օգտատերի անուն պարտադիր չէ, դատարկ թողնելու դեպքում նոր օգտատերը կարող է "
+"անձամբ ընտրել։"
+
+#: .\cookbook\helper\permission_helper.py:137
+#: .\cookbook\helper\permission_helper.py:206
+#: .\cookbook\helper\permission_helper.py:220
+#: .\cookbook\helper\permission_helper.py:231
+#: .\cookbook\helper\permission_helper.py:242 .\cookbook\views\data.py:32
+#: .\cookbook\views\views.py:106 .\cookbook\views\views.py:218
+msgid "You do not have the required permissions to view this page!"
+msgstr "Դուք չունեք անհրաժեշտ թույլտվություն այս էջը դիտելու համար։"
+
+#: .\cookbook\helper\permission_helper.py:151
+msgid "You are not logged in and therefore cannot view this page!"
+msgstr "Դուք մուտք չեք գործել, հետևաբար չեք կարող տեսնել այս էջը։"
+
+#: .\cookbook\helper\permission_helper.py:161
+#: .\cookbook\helper\permission_helper.py:177
+#: .\cookbook\helper\permission_helper.py:192 .\cookbook\views\delete.py:146
+msgid "You cannot interact with this object as it is not owned by you!"
+msgstr "Դուք չեք կարող փոփոխել այս օբյեկտը, որովհետև այն չի պատկանում ձեզ։"
+
+#: .\cookbook\helper\recipe_url_import.py:39
+msgid "The requested site provided malformed data and cannot be read."
+msgstr "Հարցված կայքը տրամադրեց վատ ձևավորված տվյալներ և չի կարող կարդացվել։"
+
+#: .\cookbook\helper\recipe_url_import.py:53
+msgid ""
+"The requested site does not provide any recognized data format to import the"
+" recipe from."
+msgstr ""
+"Հարցված կայքը չի տրամադրում որևէ ճանաչելի տվյալ բաղադրատոմսը ներմուծելու "
+"համար։"
+
+#: .\cookbook\helper\recipe_url_import.py:177
+msgid "Imported from"
+msgstr "Ներմուծվել է՝"
+
+#: .\cookbook\integration\integration.py:97
+msgid ""
+"Importer expected a .zip file. Did you choose the correct importer type for "
+"your data ?"
+msgstr ""
+"Ներմուծողն ակնկալում էր .zip ֆայլ։ Արդյո՞ք ձեր ֆայլին համապատասխանող ճիշտ "
+"տեսակի ներմուծող եք ընտրել։"
+
+#: .\cookbook\integration\safron.py:23
+#: .\cookbook\templates\forms\edit_internal_recipe.html:65
+#: .\cookbook\templates\include\log_cooking.html:16
+#: .\cookbook\templates\url_import.html:65
+msgid "Servings"
+msgstr "Չափաբաժիններ"
+
+#: .\cookbook\integration\safron.py:25
+msgid "Waiting time"
+msgstr "Սպասման տևողություն"
+
+#: .\cookbook\integration\safron.py:27
+#: .\cookbook\templates\forms\edit_internal_recipe.html:59
+msgid "Preparation Time"
+msgstr "Պատրաստման տևողություն"
+
+#: .\cookbook\integration\safron.py:29 .\cookbook\templates\base.html:67
+#: .\cookbook\templates\forms\ingredients.html:7
+#: .\cookbook\templates\index.html:7
+msgid "Cookbook"
+msgstr "Խոհարարական գիրք "
+
+#: .\cookbook\integration\safron.py:31
+msgid "Section"
+msgstr "Բաժին"
+
+#: .\cookbook\migrations\0047_auto_20200602_1133.py:12
+msgid "Breakfast"
+msgstr "Նախաճաշ"
+
+#: .\cookbook\migrations\0047_auto_20200602_1133.py:17
+msgid "Lunch"
+msgstr "Ճաշ"
+
+#: .\cookbook\migrations\0047_auto_20200602_1133.py:22
+msgid "Dinner"
+msgstr "Ընթրիք"
+
+#: .\cookbook\migrations\0047_auto_20200602_1133.py:27
+msgid "Other"
+msgstr "Այլ"
+
+#: .\cookbook\models.py:77 .\cookbook\templates\shopping_list.html:48
+msgid "Search"
+msgstr "Փնտրել"
+
+#: .\cookbook\models.py:78 .\cookbook\templates\base.html:81
+#: .\cookbook\templates\meal_plan.html:5 .\cookbook\views\delete.py:165
+#: .\cookbook\views\edit.py:216 .\cookbook\views\new.py:189
+msgid "Meal-Plan"
+msgstr "Ճաշացուցակ"
+
+#: .\cookbook\models.py:79 .\cookbook\templates\base.html:78
+msgid "Books"
+msgstr "Գրքեր"
+
+#: .\cookbook\models.py:86
+msgid "Small"
+msgstr "Փոքր"
+
+#: .\cookbook\models.py:86
+msgid "Large"
+msgstr "Մեծ"
+
+#: .\cookbook\models.py:242
+#: .\cookbook\templates\forms\edit_internal_recipe.html:198
+msgid "Text"
+msgstr "Տեքստ"
+
+#: .\cookbook\models.py:242
+#: .\cookbook\templates\forms\edit_internal_recipe.html:199
+msgid "Time"
+msgstr "Ժամանակ"
+
+#: .\cookbook\tables.py:35 .\cookbook\templates\books.html:36
+#: .\cookbook\templates\generic\edit_template.html:6
+#: .\cookbook\templates\generic\edit_template.html:14
+#: .\cookbook\templates\meal_plan.html:281
+#: .\cookbook\templates\recipes_table.html:77
+#: .\cookbook\templates\shopping_list.html:33
+msgid "Edit"
+msgstr "Խմբագրել"
+
+#: .\cookbook\tables.py:124 .\cookbook\tables.py:147
+#: .\cookbook\templates\books.html:38
+#: .\cookbook\templates\generic\delete_template.html:5
+#: .\cookbook\templates\generic\delete_template.html:13
+#: .\cookbook\templates\generic\edit_template.html:27
+#: .\cookbook\templates\meal_plan.html:277
+msgid "Delete"
+msgstr "Ջնջել"
+
+#: .\cookbook\tables.py:144
+msgid "Link"
+msgstr "Հղում"
+
+#: .\cookbook\templates\404.html:5
+msgid "404 Error"
+msgstr "Սխալ 404"
+
+#: .\cookbook\templates\404.html:18
+msgid "The page you are looking for could not be found."
+msgstr "Ձեր փնտրած էջը հնարավոր չէ գտնել։"
+
+#: .\cookbook\templates\404.html:33
+msgid "Take me Home"
+msgstr "Գնալ տուն"
+
+#: .\cookbook\templates\404.html:35
+msgid "Report a Bug"
+msgstr "Զեկուցել սխալի մասին"
+
+#: .\cookbook\templates\account\login.html:7
+#: .\cookbook\templates\base.html:166
+msgid "Login"
+msgstr "Մուտք"
+
+#: .\cookbook\templates\account\login.html:13
+#: .\cookbook\templates\account\login.html:28
+msgid "Sign In"
+msgstr "Մուտք գործել"
+
+#: .\cookbook\templates\account\login.html:38
+msgid "Social Login"
+msgstr "Մուտք Սոցիալական էջով"
+
+#: .\cookbook\templates\account\login.html:39
+msgid "You can use any of the following providers to sign in."
+msgstr ""
+"Դուք կարող եք օգտագործել հետևյալ պրովայդերներից ցանկացածը մուտք գործելու "
+"համար։"
+
+#: .\cookbook\templates\account\logout.html:5
+#: .\cookbook\templates\account\logout.html:9
+#: .\cookbook\templates\account\logout.html:18
+msgid "Sign Out"
+msgstr "Դուրս գալ"
+
+#: .\cookbook\templates\account\logout.html:11
+msgid "Are you sure you want to sign out?"
+msgstr "Համոզվա՞ծ եք, որ ցանկանում եք դուրս գալ"
+
+#: .\cookbook\templates\account\password_reset.html:5
+#: .\cookbook\templates\account\password_reset_done.html:5
+msgid "Password Reset"
+msgstr "Գաղտնաբառի վերականգնում"
+
+#: .\cookbook\templates\account\password_reset.html:9
+#: .\cookbook\templates\account\password_reset_done.html:9
+msgid "Password reset is not implemented for the time being!"
+msgstr "Գաղտնաբառի վերականգնում առայժմ իրականացված չէ"
+
+#: .\cookbook\templates\account\signup.html:5
+msgid "Register"
+msgstr "Գրանցվել"
+
+#: .\cookbook\templates\account\signup.html:9
+msgid "Create your Account"
+msgstr "Ստեղծեք ձեր հաշիվը"
+
+#: .\cookbook\templates\account\signup.html:14
+msgid "Create User"
+msgstr "Ստեղծել օգտատեր"
+
+#: .\cookbook\templates\api_info.html:5 .\cookbook\templates\base.html:156
+#: .\cookbook\templates\rest_framework\api.html:11
+msgid "API Documentation"
+msgstr "API-ի փաստաթղթեր"
+
+#: .\cookbook\templates\base.html:74
+msgid "Utensils"
+msgstr "Գործիքակազմ"
+
+#: .\cookbook\templates\base.html:84
+msgid "Shopping"
+msgstr "Գնումներ"
+
+#: .\cookbook\templates\base.html:98 .\cookbook\views\delete.py:84
+#: .\cookbook\views\edit.py:83 .\cookbook\views\lists.py:26
+#: .\cookbook\views\new.py:62
+msgid "Keyword"
+msgstr "Բանալի բառ"
+
+#: .\cookbook\templates\base.html:100
+msgid "Batch Edit"
+msgstr "Խմբային խմբագրում"
+
+#: .\cookbook\templates\base.html:105
+msgid "Storage Data"
+msgstr "Պահոցի տվյալներ"
+
+#: .\cookbook\templates\base.html:109
+msgid "Storage Backends"
+msgstr "Պահոցի բեքենդեր"
+
+#: .\cookbook\templates\base.html:111
+msgid "Configure Sync"
+msgstr "Կարգավորել սինքրոնիզացիան"
+
+#: .\cookbook\templates\base.html:113
+msgid "Discovered Recipes"
+msgstr "Հայտնաբերված բաղադրատոմսեր"
+
+#: .\cookbook\templates\base.html:115
+msgid "Discovery Log"
+msgstr "Բացահայտումների մատյան"
+
+#: .\cookbook\templates\base.html:117 .\cookbook\templates\stats.html:10
+msgid "Statistics"
+msgstr "Վիճակագրություն "
+
+#: .\cookbook\templates\base.html:119
+msgid "Units & Ingredients"
+msgstr "Միավորներ և բաղադրիչներ"
+
+#: .\cookbook\templates\base.html:121
+msgid "Import Recipe"
+msgstr "Ներմուծել բաղադրատոմս"
+
+#: .\cookbook\templates\base.html:140 .\cookbook\templates\settings.html:6
+#: .\cookbook\templates\settings.html:16
+msgid "Settings"
+msgstr "Կարգավորումներ"
+
+#: .\cookbook\templates\base.html:142 .\cookbook\templates\history.html:6
+#: .\cookbook\templates\history.html:14
+msgid "History"
+msgstr "Պատմություն"
+
+#: .\cookbook\templates\base.html:146 .\cookbook\templates\system.html:13
+msgid "System"
+msgstr "Համակարգ"
+
+#: .\cookbook\templates\base.html:148
+msgid "Admin"
+msgstr "Ադմինիստրատոր"
+
+#: .\cookbook\templates\base.html:152
+msgid "Markdown Guide"
+msgstr "Markdown-ի ուղեցույց"
+
+#: .\cookbook\templates\base.html:154
+msgid "GitHub"
+msgstr "GitHub"
+
+#: .\cookbook\templates\base.html:158
+msgid "API Browser"
+msgstr "API բրաուզեր"
+
+#: .\cookbook\templates\base.html:161
+msgid "Logout"
+msgstr "Դուրս գալ"
+
+#: .\cookbook\templates\batch\edit.html:6
+msgid "Batch edit Category"
+msgstr "Կատեգորիաների խմբային խմբագրում"
+
+#: .\cookbook\templates\batch\edit.html:15
+msgid "Batch edit Recipes"
+msgstr "Բաղադրատոմսերի խմբային խմբագրում"
+
+#: .\cookbook\templates\batch\edit.html:20
+msgid "Add the specified keywords to all recipes containing a word"
+msgstr ""
+"Ավելացնել նշված բանալի բառերը բոլոր բաղադրատոմսերին, որոնք պարունակում են "
+"բառ"
+
+#: .\cookbook\templates\batch\monitor.html:6 .\cookbook\views\edit.py:66
+msgid "Sync"
+msgstr "Սինքրոնիզացնել"
+
+#: .\cookbook\templates\batch\monitor.html:10
+msgid "Manage watched Folders"
+msgstr "Կարգավորել դիտվող թղթապանակները"
+
+#: .\cookbook\templates\batch\monitor.html:14
+msgid ""
+"On this Page you can manage all storage folder locations that should be "
+"monitored and synced."
+msgstr ""
+"Այս էջում կարող եք կարգավորել այն պահպաման թղթապանակները, որոնք պետք է "
+"վերահսկվեն և սինքրոնիզացվեն։"
+
+#: .\cookbook\templates\batch\monitor.html:16
+msgid "The path must be in the following format"
+msgstr "Ուղին պետք է լինի հետևյալ ձևաչափով՝"
+
+#: .\cookbook\templates\batch\monitor.html:27
+msgid "Sync Now!"
+msgstr "Սինքրոնիզացնել հիմա։"
+
+#: .\cookbook\templates\batch\waiting.html:4
+#: .\cookbook\templates\batch\waiting.html:10
+msgid "Importing Recipes"
+msgstr "Բաղադրատոմսերի ներմուծում"
+
+#: .\cookbook\templates\batch\waiting.html:23
+msgid ""
+"This can take a few minutes, depending on the number of recipes in sync, "
+"please wait."
+msgstr ""
+"Կախված սինքրոնիզացվող բաղադրատոմսերի քանակից, պրոցեսը կարող է տևել մի քանի "
+"րոպե, խնդրում ենք սպասել։"
+
+#: .\cookbook\templates\books.html:5 .\cookbook\templates\books.html:11
+msgid "Recipe Books"
+msgstr "Բաղադրատոմսերի գիրք"
+
+#: .\cookbook\templates\books.html:15
+msgid "New Book"
+msgstr "Նոր գիրք"
+
+#: .\cookbook\templates\books.html:27 .\cookbook\templates\recipe_view.html:26
+msgid "by"
+msgstr "Հեղինակ"
+
+#: .\cookbook\templates\books.html:34
+msgid "Toggle Recipes"
+msgstr "Փոխանջատել Բաղադրատոմսերը"
+
+#: .\cookbook\templates\books.html:54
+#: .\cookbook\templates\meal_plan_entry.html:48
+#: .\cookbook\templates\recipes_table.html:59
+msgid "Last cooked"
+msgstr "Վերջին պատրաստումը"
+
+#: .\cookbook\templates\books.html:71
+msgid "There are no recipes in this book yet."
+msgstr "Այս գրքում բաղադրատոմսեր դեռ չկան։"
+
+#: .\cookbook\templates\export.html:6 .\cookbook\templates\test2.html:6
+msgid "Export Recipes"
+msgstr "Արտահանել բաղադրատոմսերը"
+
+#: .\cookbook\templates\export.html:14 .\cookbook\templates\export.html:20
+#: .\cookbook\templates\shopping_list.html:345
+#: .\cookbook\templates\test2.html:14 .\cookbook\templates\test2.html:20
+msgid "Export"
+msgstr "Արտահանել"
+
+#: .\cookbook\templates\forms\edit_import_recipe.html:5
+#: .\cookbook\templates\forms\edit_import_recipe.html:9
+msgid "Import new Recipe"
+msgstr "Ներմուծել նոր բաղադրատոմս"
+
+#: .\cookbook\templates\forms\edit_import_recipe.html:14
+#: .\cookbook\templates\forms\edit_internal_recipe.html:389
+#: .\cookbook\templates\forms\edit_internal_recipe.html:421
+#: .\cookbook\templates\generic\edit_template.html:23
+#: .\cookbook\templates\generic\new_template.html:23
+#: .\cookbook\templates\include\log_cooking.html:28
+#: .\cookbook\templates\meal_plan.html:325
+#: .\cookbook\templates\settings.html:28 .\cookbook\templates\settings.html:35
+#: .\cookbook\templates\settings.html:58 .\cookbook\templates\settings.html:73
+#: .\cookbook\templates\shopping_list.html:347
+msgid "Save"
+msgstr "Պահպանել"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:7
+#: .\cookbook\templates\forms\edit_internal_recipe.html:34
+msgid "Edit Recipe"
+msgstr "Խմբագրել բաղադրատոմսը"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:62
+msgid "Waiting Time"
+msgstr "Սպասման տևողություն"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:68
+msgid "Servings Text"
+msgstr "Չափաբաժինների տեքստ"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:79
+msgid "Select Keywords"
+msgstr "Ընտրել բանալի բառեր"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:93
+msgid "Description"
+msgstr "Նկարագրություն"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:108
+msgid "Nutrition"
+msgstr "Սննդայնություն"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:112
+#: .\cookbook\templates\forms\edit_internal_recipe.html:162
+msgid "Delete Step"
+msgstr "Ջնջել քայլը"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:116
+msgid "Calories"
+msgstr "Կալորիաներ"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:119
+msgid "Carbohydrates"
+msgstr "Ածխաջրեր"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:122
+msgid "Fats"
+msgstr "Ճարպեր"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:124
+msgid "Proteins"
+msgstr "Սպիտակուցներ"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:146
+#: .\cookbook\templates\forms\edit_internal_recipe.html:454
+msgid "Step"
+msgstr "Քայլ"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:167
+msgid "Show as header"
+msgstr "Ցույց տալ որպես խորագիր"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:173
+msgid "Hide as header"
+msgstr "Թաքցնել որպես խորագիր"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:178
+msgid "Move Up"
+msgstr "Բարձրացնել"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:183
+msgid "Move Down"
+msgstr "Իջեցնել"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:192
+msgid "Step Name"
+msgstr "Քայլի անվանում"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:196
+msgid "Step Type"
+msgstr "Քայլի տեսակ"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:207
+msgid "Step time in Minutes"
+msgstr "Քայլի տևողությունը րոպեներով"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:261
+#: .\cookbook\templates\shopping_list.html:181
+msgid "Select Unit"
+msgstr "Ընտրել միավորը"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:262
+#: .\cookbook\templates\forms\edit_internal_recipe.html:286
+#: .\cookbook\templates\shopping_list.html:182
+#: .\cookbook\templates\shopping_list.html:204
+msgid "Create"
+msgstr "Ստեղծել"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:263
+#: .\cookbook\templates\forms\edit_internal_recipe.html:287
+#: .\cookbook\templates\shopping_list.html:183
+#: .\cookbook\templates\shopping_list.html:205
+#: .\cookbook\templates\shopping_list.html:235
+#: .\cookbook\templates\shopping_list.html:259
+#: .\cookbook\templates\url_import.html:105
+#: .\cookbook\templates\url_import.html:137
+msgid "Select"
+msgstr "Ընտրել"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:285
+#: .\cookbook\templates\shopping_list.html:203
+msgid "Select Food"
+msgstr "Ընտրել սննդամթերք"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:302
+#: .\cookbook\templates\meal_plan.html:256
+#: .\cookbook\templates\url_import.html:152
+msgid "Note"
+msgstr "Նոթեր"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:319
+msgid "Delete Ingredient"
+msgstr "Ջնջել բաղադրիչը"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:325
+msgid "Make Header"
+msgstr "Ստեղծել Խորագիր"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:331
+msgid "Make Ingredient"
+msgstr "Ստեղծել բաղդրիչ"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:337
+msgid "Disable Amount"
+msgstr "Անջատել քանակը"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:343
+msgid "Enable Amount"
+msgstr "Միացնել քանակը"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:348
+msgid "Copy Template Reference"
+msgstr "Պատճենել ձևանմուշի հղումը"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:374
+#: .\cookbook\templates\url_import.html:177
+msgid "Instructions"
+msgstr "Հրահանգներ"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:387
+#: .\cookbook\templates\forms\edit_internal_recipe.html:418
+msgid "Save & View"
+msgstr "Պահպանել և Դիտել"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:391
+#: .\cookbook\templates\forms\edit_internal_recipe.html:424
+msgid "Add Step"
+msgstr "Ավելացնել քայլ"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:394
+#: .\cookbook\templates\forms\edit_internal_recipe.html:428
+msgid "Add Nutrition"
+msgstr "Ավելացնել Սննդայնություն"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:396
+#: .\cookbook\templates\forms\edit_internal_recipe.html:430
+msgid "Remove Nutrition"
+msgstr "Հեռացնել Սննդայնություն"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:398
+#: .\cookbook\templates\forms\edit_internal_recipe.html:433
+msgid "View Recipe"
+msgstr "Դիտել բաղադրատոմսը"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:400
+#: .\cookbook\templates\forms\edit_internal_recipe.html:435
+msgid "Delete Recipe"
+msgstr "Ջնջել բաղադրատոմսը"
+
+#: .\cookbook\templates\forms\edit_internal_recipe.html:441
+msgid "Steps"
+msgstr "Քայլեր"
+
+#: .\cookbook\templates\forms\ingredients.html:15
+msgid "Edit Ingredients"
+msgstr "Խմբագրել բաղադրիչները"
+
+#: .\cookbook\templates\forms\ingredients.html:16
+msgid ""
+"\n"
+" The following form can be used if, accidentally, two (or more) units or ingredients where created that should be\n"
+" the same.\n"
+" It merges two units or ingredients and updates all recipes using them.\n"
+" "
+msgstr ""
+"\n"
+" Հետևյալ բլանկը կարող է օգտագործվել, եթե երկու (կամ ավելի) միավորներ կամ բաղադրիչներ ստեղծվել են սխալմամբ, սակայն պետք է լինեն \n"
+" նույնը։\n"
+" Սա միավորում է երկու միավորները կամ բաղադրիչները և թարմացնում դրանք օգտագործող բոլոր բաղադրատոմսերը։ \n"
+" "
+
+#: .\cookbook\templates\forms\ingredients.html:24
+#: .\cookbook\templates\stats.html:26
+msgid "Units"
+msgstr "Միավորներ"
+
+#: .\cookbook\templates\forms\ingredients.html:26
+msgid "Are you sure that you want to merge these two units?"
+msgstr "Համոզվա՞ծ եք, որ ցանկանում եք միավորել այս երկու միավորները։"
+
+#: .\cookbook\templates\forms\ingredients.html:31
+#: .\cookbook\templates\forms\ingredients.html:40
+msgid "Merge"
+msgstr "Միավորել"
+
+#: .\cookbook\templates\forms\ingredients.html:36
+msgid "Are you sure that you want to merge these two ingredients?"
+msgstr "Համոզվա՞ծ եք, որ ցանկանում եք միավորել այս երկու բաղադրիչները։"
+
+#: .\cookbook\templates\generic\delete_template.html:18
+#, python-format
+msgid "Are you sure you want to delete the %(title)s: %(object)s "
+msgstr "Համոզվա՞ծ եք, որ ուզում եք ջնջել %(title)s: %(object)s "
+
+#: .\cookbook\templates\generic\delete_template.html:21
+msgid "Confirm"
+msgstr "Հաստատել"
+
+#: .\cookbook\templates\generic\edit_template.html:30
+msgid "View"
+msgstr "Դիտել"
+
+#: .\cookbook\templates\generic\edit_template.html:34
+msgid "Delete original file"
+msgstr "Ջնջել բնօրինակ ֆայլը"
+
+#: .\cookbook\templates\generic\list_template.html:6
+#: .\cookbook\templates\generic\list_template.html:12
+msgid "List"
+msgstr "Ցուցակ"
+
+#: .\cookbook\templates\generic\list_template.html:25
+msgid "Filter"
+msgstr "Ֆիլտր"
+
+#: .\cookbook\templates\generic\list_template.html:30
+msgid "Import all"
+msgstr "Ներմուծել բոլորը"
+
+#: .\cookbook\templates\generic\new_template.html:6
+#: .\cookbook\templates\generic\new_template.html:14
+#: .\cookbook\templates\meal_plan.html:323
+msgid "New"
+msgstr "Նոր"
+
+#: .\cookbook\templates\generic\table_template.html:76
+#: .\cookbook\templates\recipes_table.html:112
+msgid "previous"
+msgstr "նախորդ"
+
+#: .\cookbook\templates\generic\table_template.html:98
+#: .\cookbook\templates\recipes_table.html:134
+msgid "next"
+msgstr "հաջորդ"
+
+#: .\cookbook\templates\history.html:20
+msgid "View Log"
+msgstr "Դիտումների մատյան"
+
+#: .\cookbook\templates\history.html:24
+msgid "Cook Log"
+msgstr "Եփելու մատյան"
+
+#: .\cookbook\templates\import.html:6 .\cookbook\templates\test.html:6
+msgid "Import Recipes"
+msgstr "Ներմուծել բաղադրատոմսերը"
+
+#: .\cookbook\templates\import.html:14 .\cookbook\templates\import.html:20
+#: .\cookbook\templates\test.html:14 .\cookbook\templates\test.html:20
+#: .\cookbook\templates\url_import.html:211 .\cookbook\views\delete.py:60
+#: .\cookbook\views\edit.py:182
+msgid "Import"
+msgstr "Ներմուծել"
+
+#: .\cookbook\templates\include\log_cooking.html:7
+msgid "Log Recipe Cooking"
+msgstr "Գրանցել բաղադրատոմսի օգտագործում"
+
+#: .\cookbook\templates\include\log_cooking.html:13
+msgid "All fields are optional and can be left empty."
+msgstr "Բոլոր դաշտերը կամավոր են և կարող են դատարկ թողնվել"
+
+#: .\cookbook\templates\include\log_cooking.html:19
+msgid "Rating"
+msgstr "Վարկանիշ"
+
+#: .\cookbook\templates\include\log_cooking.html:27
+#: .\cookbook\templates\include\recipe_open_modal.html:18
+#: .\cookbook\templates\meal_plan.html:283
+#: .\cookbook\templates\meal_plan.html:327
+#: .\cookbook\templates\meal_plan.html:366
+msgid "Close"
+msgstr "Փակել"
+
+#: .\cookbook\templates\include\recipe_open_modal.html:7
+#: .\cookbook\templates\meal_plan.html:247 .\cookbook\views\delete.py:28
+#: .\cookbook\views\edit.py:262 .\cookbook\views\new.py:40
+msgid "Recipe"
+msgstr "Բաղադրատոմս"
+
+#: .\cookbook\templates\include\recipe_open_modal.html:32
+msgid "Open Recipe"
+msgstr "Բացել բաղադրատոմսը"
+
+#: .\cookbook\templates\include\storage_backend_warning.html:4
+msgid "Security Warning"
+msgstr "Անվտանգության զգուշացում"
+
+#: .\cookbook\templates\include\storage_backend_warning.html:5
+msgid ""
+"\n"
+" The Password and Token field are stored as plain text inside the database.\n"
+" This is necessary because they are needed to make API requests, but it also increases the risk of\n"
+" someone stealing it. \n"
+" To limit the possible damage tokens or accounts with limited access can be used.\n"
+" "
+msgstr ""
+"\n"
+" Գաղտնաբառ և ժետոն դաշտերը պահպանվում են որպես հասարակ տեքստ շտեմարանի մեջ։\n"
+" Սա անհրաժեշտ է, որովհետև դրանք օգտագործվում են API հարցումների համար, բայց դա նաև ավելացնում է ռիսկը, որ \n"
+" ինչ-որ մեկը կգօողանա դրանք։ \n"
+" Վնասը սահմանափակելու համար կարող են կիրառվել սահմանափակ թույլտվությամբ ժետոններ կամ հաշիվներ։\n"
+" "
+
+#: .\cookbook\templates\index.html:29
+msgid "Search recipe ..."
+msgstr "Փնտրել բաղադրատոմս"
+
+#: .\cookbook\templates\index.html:44
+msgid "New Recipe"
+msgstr "Նոր Բաղադրատոմս"
+
+#: .\cookbook\templates\index.html:47
+msgid "Website Import"
+msgstr "Ներմուծում վեբկայքից"
+
+#: .\cookbook\templates\index.html:53
+msgid "Advanced Search"
+msgstr "Հավելյալ որոնում"
+
+#: .\cookbook\templates\index.html:57
+msgid "Reset Search"
+msgstr "Զրոյացնել որոնումը"
+
+#: .\cookbook\templates\index.html:85
+msgid "Last viewed"
+msgstr "Վերջին դիտածը"
+
+#: .\cookbook\templates\index.html:87 .\cookbook\templates\meal_plan.html:178
+#: .\cookbook\templates\stats.html:22
+msgid "Recipes"
+msgstr "Բաղադրատոմսեր"
+
+#: .\cookbook\templates\index.html:94
+msgid "Log in to view recipes"
+msgstr "Մուտք գործեք բաղադրատոմսերը դիտելու համար"
+
+#: .\cookbook\templates\markdown_info.html:5
+#: .\cookbook\templates\markdown_info.html:13
+msgid "Markdown Info"
+msgstr "Markdown-ի մասին տեղեկություն"
+
+#: .\cookbook\templates\markdown_info.html:14
+msgid ""
+"\n"
+" Markdown is lightweight markup language that can be used to format plain text easily.\n"
+" This site uses the Python Markdown library to\n"
+" convert your text into nice looking HTML. Its full markdown documentation can be found\n"
+" here.\n"
+" An incomplete but most likely sufficient documentation can be found below.\n"
+" "
+msgstr ""
+"\n"
+" Markdown-ը թեթև markup լեզու է, որը կարող է օգտագործվել պարզ տեքստը ձևավորելու համար։\n"
+" Այս կայքն օգտագործում էPython Markdown գրադարանը\n"
+" ձեր տեքստը գեղեցիկ HTML-ի ձևափոխելու համար։ Markdown-ի ամբողջական ուղեցույցերը կարող եք գտնել\n"
+" այստեղ։\n"
+" Ոչ լրիվ, բայց հավանաբար բավարար ուղեցույցեր կարող եք գտնել ներքևում։\n"
+" "
+
+#: .\cookbook\templates\markdown_info.html:25
+msgid "Headers"
+msgstr "Խորագրեր"
+
+#: .\cookbook\templates\markdown_info.html:54
+msgid "Formatting"
+msgstr "Ձևավորում"
+
+#: .\cookbook\templates\markdown_info.html:56
+#: .\cookbook\templates\markdown_info.html:72
+msgid "Line breaks are inserted by adding two spaces after the end of a line"
+msgstr "Տողերի տրոհում կարելի է տեղադրել տողի վերջում ավելացնելող երկու բացատ"
+
+#: .\cookbook\templates\markdown_info.html:57
+#: .\cookbook\templates\markdown_info.html:73
+msgid "or by leaving a blank line inbetween."
+msgstr "կամ դատարկ տող թողնելով։"
+
+#: .\cookbook\templates\markdown_info.html:59
+#: .\cookbook\templates\markdown_info.html:74
+msgid "This text is bold"
+msgstr "Այս տեքստը թավ տառատեսակով է"
+
+#: .\cookbook\templates\markdown_info.html:60
+#: .\cookbook\templates\markdown_info.html:75
+msgid "This text is italic"
+msgstr "Այս տեքստը շեղատառ է"
+
+#: .\cookbook\templates\markdown_info.html:61
+#: .\cookbook\templates\markdown_info.html:77
+msgid "Blockquotes are also possible"
+msgstr "Blockquote-ներ նույնպես հնարավոր են"
+
+#: .\cookbook\templates\markdown_info.html:84
+msgid "Lists"
+msgstr "Ցուցակներ"
+
+#: .\cookbook\templates\markdown_info.html:85
+msgid ""
+"Lists can ordered or unorderd. It is important to leave a blank line "
+"before the list!"
+msgstr ""
+"Ցուցակները կարող են լինել կարգավորված կամ անկարգավորված։ Շատկարևոր է "
+"թողնել դատարկ տող ցուցաից առաջ։"
+
+#: .\cookbook\templates\markdown_info.html:87
+#: .\cookbook\templates\markdown_info.html:108
+msgid "Ordered List"
+msgstr "Կարգավորված ցուցակ"
+
+#: .\cookbook\templates\markdown_info.html:89
+#: .\cookbook\templates\markdown_info.html:90
+#: .\cookbook\templates\markdown_info.html:91
+#: .\cookbook\templates\markdown_info.html:110
+#: .\cookbook\templates\markdown_info.html:111
+#: .\cookbook\templates\markdown_info.html:112
+msgid "unordered list item"
+msgstr "չկարգավորված ցուցակի իր"
+
+#: .\cookbook\templates\markdown_info.html:93
+#: .\cookbook\templates\markdown_info.html:114
+msgid "Unordered List"
+msgstr "Չկարգավորված ցուցակ"
+
+#: .\cookbook\templates\markdown_info.html:95
+#: .\cookbook\templates\markdown_info.html:96
+#: .\cookbook\templates\markdown_info.html:97
+#: .\cookbook\templates\markdown_info.html:116
+#: .\cookbook\templates\markdown_info.html:117
+#: .\cookbook\templates\markdown_info.html:118
+msgid "ordered list item"
+msgstr "կարգավորված ցուցակի իր"
+
+#: .\cookbook\templates\markdown_info.html:125
+msgid "Images & Links"
+msgstr "Նկարներ և հղումներ"
+
+#: .\cookbook\templates\markdown_info.html:126
+msgid ""
+"Links can be formatted with Markdown. This application also allows to paste "
+"links directly into markdown fields without any formatting."
+msgstr ""
+"Հղումները կարող են խմբագրվել Markdown-ի օգնությամբ։ Այս ծրագրում հնարավոր է "
+"անմիջապես տեղադրել հղումներ markdown դաշտում առանց որևէ խմբագրման։"
+
+#: .\cookbook\templates\markdown_info.html:132
+#: .\cookbook\templates\markdown_info.html:145
+msgid "This will become an image"
+msgstr "Սա կդառնա նկար"
+
+#: .\cookbook\templates\markdown_info.html:152
+msgid "Tables"
+msgstr "Աղյուսակներ"
+
+#: .\cookbook\templates\markdown_info.html:153
+msgid ""
+"Markdown tables are hard to create by hand. It is recommended to use a table"
+" editor like this one."
+msgstr ""
+"Markdown աղյուսակները դժվար է ստեղծել ձեռքով։ Խորհուրդ է տրվում օգտագործել "
+"աղյուսակների խմբագիր, օրինակ այս մեկը։"
+
+#: .\cookbook\templates\markdown_info.html:155
+#: .\cookbook\templates\markdown_info.html:157
+#: .\cookbook\templates\markdown_info.html:171
+#: .\cookbook\templates\markdown_info.html:177
+msgid "Table"
+msgstr "Աղյուսակ"
+
+#: .\cookbook\templates\markdown_info.html:155
+#: .\cookbook\templates\markdown_info.html:172
+msgid "Header"
+msgstr "Խորագիր"
+
+#: .\cookbook\templates\markdown_info.html:157
+#: .\cookbook\templates\markdown_info.html:178
+msgid "Cell"
+msgstr "Բջիջ"
+
+#: .\cookbook\templates\meal_plan.html:101
+msgid "New Entry"
+msgstr "Նոր գրառում"
+
+#: .\cookbook\templates\meal_plan.html:113
+#: .\cookbook\templates\shopping_list.html:52
+msgid "Search Recipe"
+msgstr "Փնտրել բաղադրատոմս"
+
+#: .\cookbook\templates\meal_plan.html:139
+msgid "Title"
+msgstr "Վերնագիր"
+
+#: .\cookbook\templates\meal_plan.html:141
+msgid "Note (optional)"
+msgstr "Նոթեր (կամավոր)"
+
+#: .\cookbook\templates\meal_plan.html:143
+msgid ""
+"You can use markdown to format this field. See the docs "
+"here"
+msgstr ""
+"Դուք կարող եք օգտագործել markdown-ն այս դաշտը ձևավորելու համար. Տեսեք փաստաթղթերն այստեղ"
+
+#: .\cookbook\templates\meal_plan.html:147
+#: .\cookbook\templates\meal_plan.html:251
+msgid "Serving Count"
+msgstr "Չափաբաժինների քանակ"
+
+#: .\cookbook\templates\meal_plan.html:153
+msgid "Create only note"
+msgstr "Ստեղծել միայն նոթեր"
+
+#: .\cookbook\templates\meal_plan.html:168
+#: .\cookbook\templates\shopping_list.html:7
+#: .\cookbook\templates\shopping_list.html:29
+#: .\cookbook\templates\shopping_list.html:693
+msgid "Shopping List"
+msgstr "Գնումների ցուցակ"
+
+#: .\cookbook\templates\meal_plan.html:172
+msgid "Shopping list currently empty"
+msgstr "Գնումների ցուցակը դատարկ է"
+
+#: .\cookbook\templates\meal_plan.html:175
+msgid "Open Shopping List"
+msgstr "Բացել գնումների ցուցակը"
+
+#: .\cookbook\templates\meal_plan.html:189
+msgid "Plan"
+msgstr "Պլան"
+
+#: .\cookbook\templates\meal_plan.html:196
+msgid "Number of Days"
+msgstr "Օրերի քանակ"
+
+#: .\cookbook\templates\meal_plan.html:206
+msgid "Weekday offset"
+msgstr "Աշխատանքային օրերի փոխհատուցում"
+
+#: .\cookbook\templates\meal_plan.html:209
+msgid ""
+"Number of days starting from the first day of the week to offset the default"
+" view."
+msgstr ""
+"Շաբաթվա առաջին օրվանից հաշված օրերի քանակը, որը պետք է փոխհատուցել լռելյայն "
+"էջում"
+
+#: .\cookbook\templates\meal_plan.html:217
+#: .\cookbook\templates\meal_plan.html:294
+msgid "Edit plan types"
+msgstr "Խմբագրել ճաշացուցակների տեսակները"
+
+#: .\cookbook\templates\meal_plan.html:219
+msgid "Show help"
+msgstr "Ցուցադրել օգնություն"
+
+#: .\cookbook\templates\meal_plan.html:220
+msgid "Week iCal export"
+msgstr "Շաբաթվա արտահանում iCal ձևաչափով"
+
+#: .\cookbook\templates\meal_plan.html:264
+#: .\cookbook\templates\meal_plan_entry.html:18
+msgid "Created by"
+msgstr "Ստեղծող"
+
+#: .\cookbook\templates\meal_plan.html:270
+#: .\cookbook\templates\meal_plan_entry.html:20
+#: .\cookbook\templates\shopping_list.html:248
+msgid "Shared with"
+msgstr "Ու՞մ հետ է կիսվել"
+
+#: .\cookbook\templates\meal_plan.html:280
+msgid "Add to Shopping"
+msgstr "Ավելացնել գնումներին"
+
+#: .\cookbook\templates\meal_plan.html:323
+msgid "New meal type"
+msgstr "Կերակրի նոր տեսակ"
+
+#: .\cookbook\templates\meal_plan.html:338
+msgid "Meal Plan Help"
+msgstr "Ճաշացուցակի Օգնություն"
+
+#: .\cookbook\templates\meal_plan.html:344
+msgid ""
+"\n"
+"
The meal plan module allows planning of meals both with recipes and notes.
\n"
+"
Simply select a recipe from the list of recently viewed recipes or search the one you\n"
+" want and drag it to the desired plan position. You can also add a note and a title and\n"
+" then drag the recipe to create a plan entry with a custom title and note. Creating only\n"
+" Notes is possible by dragging the create note box into the plan.
\n"
+"
Click on a recipe in order to open the detailed view. There you can also add it to the\n"
+" shopping list. You can also add all recipes of a day to the shopping list by\n"
+" clicking the shopping cart at the top of the table.
\n"
+"
Since a common use case is to plan meals together you can define\n"
+" users you want to share your plan with in the settings.\n"
+"
\n"
+"
You can also edit the types of meals you want to plan. If you share your plan with\n"
+" someone with\n"
+" different meals, their meal types will appear in your list as well. To prevent\n"
+" duplicates (e.g. Other and Misc.)\n"
+" name your meal types the same as the users you share your meals with and they will be\n"
+" merged.
\n"
+" "
+msgstr ""
+"\n"
+"
Ճաշացուցակի մոդուլը թույլ է տալիս պլանավորել ճաշերը բաղադրատոմսերով և նոթերով։
\n"
+"
Պարզապես ընտրեք բաղադրատոմս վերջերս դիտած բաղադրատոմսերի ցուցակից կամ փնտրեք այն բաղադրատոմսը,\n"
+" որն ուզում եք և քաշեք ընտրված ճաշացուցակի դիրք։ Դուք կարող եք նաև ավելացնել նոթեր և վերնագիր, ապա\n"
+" քաշեք բաղադրատոմսը ձեր ընտրած վերնագրով և նոթերով ցուցակ ստեղծելու համար։ Միայն\n"
+" նոթեր ստեղծելը նույնպես հնարավոր է, եթե քաշեք «ստեղծել միայն նոթեր» պատուհանը դեպի ցուցակ։
\n"
+"
Սեղմեք որևէ բաղադրատոմսի վրա մանրամասներով պատուհանը բացելու համար։ Այդտեղից կարող եք այն նաև ավելացնել\n"
+" գնումների ցուցակ։ Դուք կարող եք նաև ավելացնել օրվա բոլոր բաղադրատոմսերը գնումների ցուցակ\n"
+" սեղմելով գնումների սայլակի նշանի վրա։
\n"
+"
Քանի որ ընդունված է ճաշեր պլանավորել միասին, դուք կարող եք կարգավորումներում հստակեցնել\n"
+" օգտատերերին ում հետ ցանկանում եք կիսվել ձեր ցուցակով։\n"
+"
\n"
+"
Դուք կարող եք նաև խմբագրել ճաշերի տեսակը, որը ցանկանում եք պլանավորել։ Եթե կիսվեք ձեր պլանով\n"
+" որևէ մեկի հետ, ով\n"
+" ունի ուրիշ ճաշեր, նրանց ճաշերի տեսակները նույնպես կհայտնվեն ձեր ցուցակում։ Կրկնօրինակներից (օրինակ ընթրիք և ընթրիքներ)\n"
+" խուսաբելու համար\n"
+" օգտագործեք միևնույն ճաշի տեսակների անունն այն մարդկանց պես, ում հետ ցանկանում եք կիսվել և դրանք\n"
+" կմիավորվեն։
\n"
+" "
+
+#: .\cookbook\templates\meal_plan_entry.html:6
+msgid "Meal Plan View"
+msgstr "Ճաշացուցակի Դիտման էջ"
+
+#: .\cookbook\templates\meal_plan_entry.html:50
+msgid "Never cooked before."
+msgstr "Երբեք պատրաստված չէ"
+
+#: .\cookbook\templates\meal_plan_entry.html:76
+msgid "Other meals on this day"
+msgstr "Նույն օրվա այլ ճաշեր"
+
+#: .\cookbook\templates\no_groups_info.html:5
+#: .\cookbook\templates\offline.html:6
+msgid "Offline"
+msgstr "Ցանցից դուրս"
+
+#: .\cookbook\templates\no_groups_info.html:12
+msgid "No Permissions"
+msgstr "Թույլտվություն չկա"
+
+#: .\cookbook\templates\no_groups_info.html:15
+msgid ""
+"You do not have any groups and therefor cannot use this application. Please "
+"contact your administrator."
+msgstr ""
+"Դուք չունեք որևէ խումբ և չեք կարող օգտագործել այս ծրագիրը։ Կապվեք ձեր "
+"ադմինիստրատորի հետ։"
+
+#: .\cookbook\templates\offline.html:19
+msgid "You are currently offline!"
+msgstr "Դուք ցանցից դուրս եք։"
+
+#: .\cookbook\templates\offline.html:20
+msgid ""
+"The recipes listed below are available for offline viewing because you have "
+"recently viewed them. Keep in mind that data might be outdated."
+msgstr ""
+"Ներքևում նշված բաղադրատոմսերը հասանելի են ցանցից դուրս դիտման համար, "
+"որովհետև դուք դիտել եք դրանք վերջերս։ Հիշեք, որ տվյալները կարող են հնացած "
+"լինել։"
+
+#: .\cookbook\templates\recipe_view.html:21 .\cookbook\templates\stats.html:47
+msgid "Comments"
+msgstr "Մեկնաբանություններ"
+
+#: .\cookbook\templates\recipe_view.html:44 .\cookbook\views\delete.py:118
+#: .\cookbook\views\edit.py:162
+msgid "Comment"
+msgstr "Մեկնաբանել"
+
+#: .\cookbook\templates\recipes_table.html:19
+#: .\cookbook\templates\recipes_table.html:23
+#: .\cookbook\templates\url_import.html:50
+msgid "Recipe Image"
+msgstr "Բաղադրատոմսի նկար"
+
+#: .\cookbook\templates\recipes_table.html:46
+#: .\cookbook\templates\url_import.html:55
+msgid "Preparation time ca."
+msgstr "Պատրաստման տևողություն"
+
+#: .\cookbook\templates\recipes_table.html:52
+#: .\cookbook\templates\url_import.html:60
+msgid "Waiting time ca."
+msgstr "Սպասման տևողություն"
+
+#: .\cookbook\templates\recipes_table.html:55
+msgid "External"
+msgstr "Արտաքին"
+
+#: .\cookbook\templates\recipes_table.html:81
+msgid "Log Cooking"
+msgstr "Գրանցել եփել"
+
+#: .\cookbook\templates\rest_framework\api.html:5
+msgid "Recipe Home"
+msgstr "Բաղադրատոմսի տուն"
+
+#: .\cookbook\templates\settings.html:22
+msgid "Account"
+msgstr "Հաշիվ"
+
+#: .\cookbook\templates\settings.html:38
+msgid "Link social account"
+msgstr "Կցել սոցիալական հաշիվ"
+
+#: .\cookbook\templates\settings.html:42
+msgid "Language"
+msgstr "Լեզու"
+
+#: .\cookbook\templates\settings.html:67
+msgid "Style"
+msgstr "Ոճ"
+
+#: .\cookbook\templates\settings.html:79
+msgid "API Token"
+msgstr "API ժետոն"
+
+#: .\cookbook\templates\settings.html:80
+msgid ""
+"You can use both basic authentication and token based authentication to "
+"access the REST API."
+msgstr ""
+"Դուք կարող եք օգտագործել ինչպես հասարակ այնպես էլ ժետոնով նույնականացում "
+"REST API-ին հասանելիության համար։"
+
+#: .\cookbook\templates\settings.html:92
+msgid ""
+"Use the token as an Authorization header prefixed by the word token as shown"
+" in the following examples:"
+msgstr ""
+"Օգտագործեք ժետոնը որպես Թույլտվության խորագիր, նախածանցված բառ ժետոնով, "
+"ինչպես ցույց է տրված հետևյալ օրինակում․"
+
+#: .\cookbook\templates\settings.html:94
+msgid "or"
+msgstr "կամ"
+
+#: .\cookbook\templates\setup.html:6 .\cookbook\templates\system.html:5
+msgid "Cookbook Setup"
+msgstr "Խոհարարական գրքի կարգավորում"
+
+#: .\cookbook\templates\setup.html:14
+msgid "Setup"
+msgstr "Կարգավորում"
+
+#: .\cookbook\templates\setup.html:15
+msgid ""
+"To start using this application you must first create a superuser account."
+msgstr ""
+"Այս ծրագիրն օգտագործելու համար նախ պետք է ստեղծեք սուպեր-օգտատերի հաշիվ"
+
+#: .\cookbook\templates\setup.html:20
+msgid "Create Superuser account"
+msgstr "Ստեղծել սուպեր-օգտատերի հաշիվ"
+
+#: .\cookbook\templates\shopping_list.html:75
+msgid "Shopping Recipes"
+msgstr "Գնումների բաղադրատոմսեր"
+
+#: .\cookbook\templates\shopping_list.html:79
+msgid "No recipes selected"
+msgstr "Բաղադրատոմս ընտրված չէ"
+
+#: .\cookbook\templates\shopping_list.html:145
+msgid "Entry Mode"
+msgstr "Գրառման ռեժիմ"
+
+#: .\cookbook\templates\shopping_list.html:153
+msgid "Add Entry"
+msgstr "Ավելացնել գրառում"
+
+#: .\cookbook\templates\shopping_list.html:168
+msgid "Amount"
+msgstr "Քանակ"
+
+#: .\cookbook\templates\shopping_list.html:224
+msgid "Supermarket"
+msgstr "Սուպերմարկետ"
+
+#: .\cookbook\templates\shopping_list.html:234
+msgid "Select Supermarket"
+msgstr "Ընտրել Սուպերմարկետ"
+
+#: .\cookbook\templates\shopping_list.html:258
+msgid "Select User"
+msgstr "Ընտրել օգտատեր"
+
+#: .\cookbook\templates\shopping_list.html:277
+msgid "Finished"
+msgstr "Ավարտված է"
+
+#: .\cookbook\templates\shopping_list.html:290
+msgid "You are offline, shopping list might not syncronize."
+msgstr "Դուք ցանցից դուրս եք, գնումների ցուցակը կարող է չսինքրոնիզացվել։"
+
+#: .\cookbook\templates\shopping_list.html:353
+msgid "Copy/Export"
+msgstr "Պատճենել/Արտահանել"
+
+#: .\cookbook\templates\shopping_list.html:357
+msgid "List Prefix"
+msgstr "Ցուցակի նախածանց"
+
+#: .\cookbook\templates\shopping_list.html:696
+msgid "There was an error creating a resource!"
+msgstr "Ռեսուրսը ստեղծելիս սխալ է գրանցվել"
+
+#: .\cookbook\templates\socialaccount\connections.html:4
+#: .\cookbook\templates\socialaccount\connections.html:7
+msgid "Account Connections"
+msgstr "Հաշվի կապեր"
+
+#: .\cookbook\templates\socialaccount\connections.html:10
+msgid ""
+"You can sign in to your account using any of the following third party\n"
+" accounts:"
+msgstr ""
+"Դուք կարող եք մուտք գործել ձեր հաշիվ օգտագործելով հետևյալ երրորդ կողմի\n"
+" հաշիվները․"
+
+#: .\cookbook\templates\socialaccount\connections.html:36
+msgid "Remove"
+msgstr "Հեռացնել"
+
+#: .\cookbook\templates\socialaccount\connections.html:44
+msgid ""
+"You currently have no social network accounts connected to this account."
+msgstr "Դուք այս հաշվին կապված սոցիալական հաշիվներ չունեք "
+
+#: .\cookbook\templates\socialaccount\connections.html:47
+msgid "Add a 3rd Party Account"
+msgstr "Ավելացնել 3րդ կողմի հաշիվ"
+
+#: .\cookbook\templates\stats.html:4
+msgid "Stats"
+msgstr "Վիճակագրություն"
+
+#: .\cookbook\templates\stats.html:19
+msgid "Number of objects"
+msgstr "Օբյեկտների քանակը"
+
+#: .\cookbook\templates\stats.html:30
+msgid "Recipe Imports"
+msgstr "Բաղադրատոմսի ներմուծումներ"
+
+#: .\cookbook\templates\stats.html:38
+msgid "Objects stats"
+msgstr "Օբյեկտների վիճակագրություն"
+
+#: .\cookbook\templates\stats.html:41
+msgid "Recipes without Keywords"
+msgstr "Առանց բանալի բառերի բաղադրատոմսեր"
+
+#: .\cookbook\templates\stats.html:43
+msgid "External Recipes"
+msgstr "Արտաքին բաղադրատոմսեր"
+
+#: .\cookbook\templates\stats.html:45
+msgid "Internal Recipes"
+msgstr "Ներքին բաղադրատոմսեր"
+
+#: .\cookbook\templates\system.html:21 .\cookbook\views\lists.py:128
+msgid "Invite Links"
+msgstr "Հրավերի հղումներ"
+
+#: .\cookbook\templates\system.html:22
+msgid "Show Links"
+msgstr "Ցուցադրել հղումները"
+
+#: .\cookbook\templates\system.html:27
+msgid "Backup & Restore"
+msgstr "Կրկնօրինակում և վերականգնում "
+
+#: .\cookbook\templates\system.html:28
+msgid "Download Backup"
+msgstr "Ներբեռնել կրկնօրինակը"
+
+#: .\cookbook\templates\system.html:49
+msgid "System Information"
+msgstr "Համակարգի տեղեկություն"
+
+#: .\cookbook\templates\system.html:51
+msgid ""
+"\n"
+" Django Recipes is an open source free software application. It can be found on\n"
+" GitHub.\n"
+" Changelogs can be found here.\n"
+" "
+msgstr ""
+"\n"
+" Django Բաղադրատոմսերը բաց աղբյուրով անվճար ծրագիր է։ Այն կարող եք գտնել \n"
+" GitHub-ում։\n"
+" Փոփոխությունների մատյանը կարող եք գտնել այստեղ։\n"
+" "
+
+#: .\cookbook\templates\system.html:65
+msgid "Media Serving"
+msgstr "Մեդիայի մատուցում"
+
+#: .\cookbook\templates\system.html:66 .\cookbook\templates\system.html:81
+#: .\cookbook\templates\system.html:97
+msgid "Warning"
+msgstr "Զգուշացում"
+
+#: .\cookbook\templates\system.html:66 .\cookbook\templates\system.html:81
+#: .\cookbook\templates\system.html:97 .\cookbook\templates\system.html:112
+msgid "Ok"
+msgstr "Լավ է"
+
+#: .\cookbook\templates\system.html:68
+msgid ""
+"Serving media files directly using gunicorn/python is not recommend!\n"
+" Please follow the steps described\n"
+" here to update\n"
+" your installation.\n"
+" "
+msgstr ""
+"Մեդիա ֆայլերի մատուցումը gunicorn/python-ի կիրառմամբ խորհուրդ չէ տրվում։\n"
+" Խնդրում ենք օգտագործել քայլերը նկարագրված\n"
+" այստեղ ձեր տեղադրումը\n"
+" թարմացնելու համար։\n"
+" "
+
+#: .\cookbook\templates\system.html:74 .\cookbook\templates\system.html:90
+#: .\cookbook\templates\system.html:105 .\cookbook\templates\system.html:119
+msgid "Everything is fine!"
+msgstr "Ամեն բան նորմալ է։"
+
+#: .\cookbook\templates\system.html:79
+msgid "Secret Key"
+msgstr "Գաղտնի բանալի"
+
+#: .\cookbook\templates\system.html:83
+msgid ""
+"\n"
+" You do not have a SECRET_KEY configured in your .env file. Django defaulted to the\n"
+" standard key\n"
+" provided with the installation which is publicly know and insecure! Please set\n"
+" SECRET_KEY int the .env configuration file.\n"
+" "
+msgstr ""
+"\n"
+" Դուք չունեք SECRET_KEY մատնանշված ձեր .env ֆայլում. Django-ն օգտագործում է\n"
+" ստանդարտ բանալի\n"
+" տրված ծրագրի ներդրման ժամանակ, ինչը հանրային է և ոչ անվտանգ։ Խնդրում ենք մատնանշել\n"
+" SECRET_KEY բանալի .env Ֆայլում։\n"
+" "
+
+#: .\cookbook\templates\system.html:95
+msgid "Debug Mode"
+msgstr "Վրիպակների վերացման ռեժիմ"
+
+#: .\cookbook\templates\system.html:99
+msgid ""
+"\n"
+" This application is still running in debug mode. This is most likely not needed. Turn of debug mode by\n"
+" setting\n"
+" DEBUG=0 int the .env configuration file.\n"
+" "
+msgstr ""
+"\n"
+" Այս ծրագիրը դեռ աշխատում է վրիպակների վերացման ռեժիմում։ Սա հավանաբար անհրաժեշտ չէ։ Անժատեք այս ռեժիմը\n"
+" սահմանելով\n"
+" DEBUG=0.env կազմաձևումների ֆայլում։\n"
+" "
+
+#: .\cookbook\templates\system.html:110
+msgid "Database"
+msgstr "Շտեմարան"
+
+#: .\cookbook\templates\system.html:112
+msgid "Info"
+msgstr "Տեղեկություն"
+
+#: .\cookbook\templates\system.html:114
+msgid ""
+"\n"
+" This application is not running with a Postgres database backend. This is ok but not recommended as some\n"
+" features only work with postgres databases.\n"
+" "
+msgstr ""
+"\n"
+" Այս ծրագիրը չի աշխատում Postgres շտեմարան բեքենդով։ Դա նորմալ է, բայց խորհուրդ չի տրվում որովհետև որոշ\n"
+" հատկություններ աշխատում են միայն postgres շտեմարանների հետ։\n"
+" "
+
+#: .\cookbook\templates\url_import.html:5
+msgid "URL Import"
+msgstr "URL ներմուծում"
+
+#: .\cookbook\templates\url_import.html:23
+msgid "Enter website URL"
+msgstr "Մուտքագրեք վեբկայքի URL-ը"
+
+#: .\cookbook\templates\url_import.html:44
+msgid "Recipe Name"
+msgstr "Բաղադրատոմսի անուն"
+
+#: .\cookbook\templates\url_import.html:104
+#: .\cookbook\templates\url_import.html:136
+#: .\cookbook\templates\url_import.html:192
+msgid "Select one"
+msgstr "Ընտրել մեկը"
+
+#: .\cookbook\templates\url_import.html:203
+msgid "All Keywords"
+msgstr "Բոլոր բանալի բառերը"
+
+#: .\cookbook\templates\url_import.html:206
+msgid "Import all keywords, not only the ones already existing."
+msgstr "Ներմուծել բոլոր բանալի բառերը, ոչ միայն արդեն գոյություն ունեցողները"
+
+#: .\cookbook\templates\url_import.html:233
+msgid "Information"
+msgstr "Տեղեկություն"
+
+#: .\cookbook\templates\url_import.html:235
+msgid ""
+" Only websites containing ld+json or microdata information can currently\n"
+" be imported. Most big recipe pages support this. If you site cannot be imported but\n"
+" you think\n"
+" it probably has some kind of structured data feel free to post an example in the\n"
+" github issues."
+msgstr ""
+" Ներկայումս միայն ld+json կամ microdata տեղեկություն պարունակող կայքերից կարելի է\n"
+" ներմուծել։ Բաղադրատոմսերի մեծ կայքերը հիմնականում պարունակում են դա։ Եթե ձեր կայքը հնարավոր չէ ներմուծել, բայց\n"
+" կարծում եք\n"
+" այն հավանաբար ունի ինչ-որ տեսակի կառուցվածքավորված տվյալ, կարող եք տեղեկացնել մեզ ստեղծելով\n"
+" github-ի խնդիր։"
+
+#: .\cookbook\templates\url_import.html:243
+msgid "Google ld+json Info"
+msgstr "Google ld+json-ի տեղեկություն"
+
+#: .\cookbook\templates\url_import.html:246
+msgid "GitHub Issues"
+msgstr "GitHub-ի խնդիրներ"
+
+#: .\cookbook\templates\url_import.html:248
+msgid "Recipe Markup Specification"
+msgstr "Բաղադրատոմսի Markup բնութագրեր"
+
+#: .\cookbook\views\api.py:104
+msgid "Parameter filter_list incorrectly formatted"
+msgstr "filter_list պարամետրը սխալ է ձևավորված"
+
+#: .\cookbook\views\api.py:117
+msgid "Preference for given user already exists"
+msgstr "Այս օգտատերի նախապատվությունն արդեն գոյություն ունի"
+
+#: .\cookbook\views\api.py:416 .\cookbook\views\views.py:265
+msgid "This feature is not available in the demo version!"
+msgstr "Այս հատկությունը հասանելի չէ փորձնական տարբերակում։"
+
+#: .\cookbook\views\api.py:439
+msgid "Sync successful!"
+msgstr "Սինքրոնիզացիան հաջողված է"
+
+#: .\cookbook\views\api.py:444
+msgid "Error synchronizing with Storage"
+msgstr "Պահոցի հետ սինքրոնիզացիայի սխալ"
+
+#: .\cookbook\views\api.py:510
+msgid "The requested page could not be found."
+msgstr "Պահանջվող էջը չի գտնվել"
+
+#: .\cookbook\views\api.py:519
+msgid ""
+"The requested page refused to provide any information (Status Code 403)."
+msgstr ""
+"Պահանջվող էջը մերժեց տրամադրել որևէ տեղեկություն (Կարգավիճակի ծածկագիր 403)"
+
+#: .\cookbook\views\data.py:101
+#, python-format
+msgid "Batch edit done. %(count)d recipe was updated."
+msgid_plural "Batch edit done. %(count)d Recipes where updated."
+msgstr[0] "Խմբային խմբագրումն ավարտված է։ %(count)d բաղադրատոմս թարմացված է"
+msgstr[1] "Խմբային խմբագրումն ավարտված է։ %(count)d բաղադրատոմս թարմացված է։"
+
+#: .\cookbook\views\delete.py:72
+msgid "Monitor"
+msgstr "Վերահսկել"
+
+#: .\cookbook\views\delete.py:96 .\cookbook\views\lists.py:109
+#: .\cookbook\views\new.py:83
+msgid "Storage Backend"
+msgstr "Պահոցի բեքենդ"
+
+#: .\cookbook\views\delete.py:106
+msgid ""
+"Could not delete this storage backend as it is used in at least one monitor."
+msgstr "Չենք կարող ջնջել պահոցի այս բեքենդը, քանի որ այն օգտագործվում է։"
+
+#: .\cookbook\views\delete.py:129 .\cookbook\views\edit.py:196
+#: .\cookbook\views\new.py:144
+msgid "Recipe Book"
+msgstr "Բաղադրատոմսի գիրք"
+
+#: .\cookbook\views\delete.py:154
+msgid "Bookmarks"
+msgstr "Էջանիշեր"
+
+#: .\cookbook\views\delete.py:176 .\cookbook\views\new.py:214
+msgid "Invite Link"
+msgstr "Հրավերի հղում"
+
+#: .\cookbook\views\edit.py:100
+msgid "Food"
+msgstr "Սննդամթերք"
+
+#: .\cookbook\views\edit.py:110
+msgid "You cannot edit this storage!"
+msgstr "Դուք կարող եք խմբագրել այս պահոցը։"
+
+#: .\cookbook\views\edit.py:131
+msgid "Storage saved!"
+msgstr "Պահոցը պահպանված է"
+
+#: .\cookbook\views\edit.py:137
+msgid "There was an error updating this storage backend!"
+msgstr "Պահոցի այս բեքեբդի թարմացման ժամանակ սխալ է գրանցվել։"
+
+#: .\cookbook\views\edit.py:148
+msgid "Storage"
+msgstr "Պահոց"
+
+#: .\cookbook\views\edit.py:245
+msgid "Changes saved!"
+msgstr "Փոփոխությունները պահպանված են"
+
+#: .\cookbook\views\edit.py:253
+msgid "Error saving changes!"
+msgstr "Փոփոխությունների պահպանման սխալ"
+
+#: .\cookbook\views\edit.py:289
+msgid "Units merged!"
+msgstr "Միավորները միավորված են"
+
+#: .\cookbook\views\edit.py:295 .\cookbook\views\edit.py:317
+msgid "Cannot merge with the same object!"
+msgstr "Հնարավոր չէ միավորել նույն օբյեկտի հետ"
+
+#: .\cookbook\views\edit.py:311
+msgid "Foods merged!"
+msgstr "Սննդամթերքները միավորված են"
+
+#: .\cookbook\views\import_export.py:42
+msgid "Importing is not implemented for this provider"
+msgstr "Ներմուծումն այս պրովայդերի համար իրականացված չէ"
+
+#: .\cookbook\views\import_export.py:58
+msgid "Exporting is not implemented for this provider"
+msgstr "Արտահանումն այս պրովայդերի համար իրականացված չէ"
+
+#: .\cookbook\views\lists.py:42
+msgid "Import Log"
+msgstr "Ներմուծման մատյան"
+
+#: .\cookbook\views\lists.py:55
+msgid "Discovery"
+msgstr "Բացահայտել"
+
+#: .\cookbook\views\lists.py:92
+msgid "Shopping Lists"
+msgstr "Գնումների ցուցակներ"
+
+#: .\cookbook\views\new.py:107
+msgid "Imported new recipe!"
+msgstr "Բաղադրատոմսը ներմուծված է"
+
+#: .\cookbook\views\new.py:114
+msgid "There was an error importing this recipe!"
+msgstr "Այս բաղադրատոմսի ներմուծման ժամանակ սխալ է գրանցվել։"
+
+#: .\cookbook\views\views.py:117
+msgid "You do not have the required permissions to perform this action!"
+msgstr "Դուք չունեք բավարար թույլտվություն այս գործողության համար։"
+
+#: .\cookbook\views\views.py:136
+msgid "Comment saved!"
+msgstr "Մեկնաբանությունը պահպանված է"
+
+#: .\cookbook\views\views.py:152
+msgid "This recipe is already linked to the book!"
+msgstr "Բաղադրատոմսն արդեն կապված է գրքին"
+
+#: .\cookbook\views\views.py:158
+msgid "Bookmark saved!"
+msgstr "Էջանիշը պահպանված է"
+
+#: .\cookbook\views\views.py:380
+msgid ""
+"The setup page can only be used to create the first user! If you have "
+"forgotten your superuser credentials please consult the django documentation"
+" on how to reset passwords."
+msgstr ""
+"Կարգավորման էջը կարող է օգտագործվել միայն առաջին օգտագործողին ստեղծելու "
+"համար։ Եթե մոռացել եք ձեր սուպեր-օգտատերի գաղտնաբառը, խնդրում ենք ստուգել "
+"django-ի փաստաթղթերը գաղտնաբառը վերականգնելու ցուցումների համար։"
+
+#: .\cookbook\views\views.py:388 .\cookbook\views\views.py:435
+msgid "Passwords dont match!"
+msgstr "Գաղտնաբառերը չեն համընկնում"
+
+#: .\cookbook\views\views.py:402 .\cookbook\views\views.py:449
+msgid "User has been created, please login!"
+msgstr "Օգտատերը ստեղծված է, խնդրում ենք մուտք գործել։"
+
+#: .\cookbook\views\views.py:419
+msgid "Malformed Invite Link supplied!"
+msgstr "Հրավերի արատավոր հղում է տրամադրվել։"
+
+#: .\cookbook\views\views.py:470
+msgid "Invite Link not valid or already used!"
+msgstr "Հրավերի հղումը վավեր չէ, կամ արդեն օգտագործվել է"
diff --git a/cookbook/locale/it/LC_MESSAGES/django.mo b/cookbook/locale/it/LC_MESSAGES/django.mo
index 934b7a1b..85a17ed0 100644
Binary files a/cookbook/locale/it/LC_MESSAGES/django.mo and b/cookbook/locale/it/LC_MESSAGES/django.mo differ
diff --git a/cookbook/locale/it/LC_MESSAGES/django.po b/cookbook/locale/it/LC_MESSAGES/django.po
index 6b829d94..c603e02f 100644
--- a/cookbook/locale/it/LC_MESSAGES/django.po
+++ b/cookbook/locale/it/LC_MESSAGES/django.po
@@ -2,11 +2,11 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR , YEAR.
-#
+#
# Translators:
# Alessandro Spallina , 2020
# Oliver Thomas Cervera , 2021
-#
+#
#, fuzzy
msgid ""
msgstr ""
@@ -15,12 +15,11 @@ msgstr ""
"POT-Creation-Date: 2021-02-09 18:01+0100\n"
"PO-Revision-Date: 2020-06-02 19:28+0000\n"
"Last-Translator: Oliver Thomas Cervera , 2021\n"
-"Language-Team: Italian (https://www.transifex.com/django-recipes/"
-"teams/110507/it/)\n"
-"Language: it\n"
+"Language-Team: Italian (https://www.transifex.com/django-recipes/teams/110507/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: .\cookbook\filters.py:22 .\cookbook\templates\base.html:87
@@ -35,8 +34,8 @@ msgid ""
"Color of the top navigation bar. Not all colors work with all themes, just "
"try them out!"
msgstr ""
-"Colore della barra di navigazione in alto. Non tutti i colori funzionano con "
-"tutti i temi, provali e basta!"
+"Colore della barra di navigazione in alto. Non tutti i colori funzionano con"
+" tutti i temi, provali e basta!"
#: .\cookbook\forms.py:45
msgid "Default Unit to be used when inserting a new ingredient into a recipe."
@@ -81,15 +80,15 @@ msgid ""
"mobile data. If lower than instance limit it is reset when saving."
msgstr ""
"L'impostazione su 0 disabiliterà la sincronizzazione automatica. Quando si "
-"visualizza una lista della spesa, la lista viene aggiornata ogni tot secondi "
-"impostati per sincronizzare le modifiche che qualcun altro potrebbe aver "
-"fatto. Utile per gli acquisti con più persone, ma potrebbe utilizzare un po' "
-"di dati mobili. Se inferiore al limite di istanza viene ripristinato durante "
-"il salvataggio."
+"visualizza una lista della spesa, la lista viene aggiornata ogni tot secondi"
+" impostati per sincronizzare le modifiche che qualcun altro potrebbe aver "
+"fatto. Utile per gli acquisti con più persone, ma potrebbe utilizzare un po'"
+" di dati mobili. Se inferiore al limite di istanza viene ripristinato "
+"durante il salvataggio."
#: .\cookbook\forms.py:55
msgid "Makes the navbar stick to the top of the page."
-msgstr ""
+msgstr "Fissa la barra di navigazione nella parte superiore della pagina."
#: .\cookbook\forms.py:71
msgid ""
@@ -128,10 +127,8 @@ msgid "Storage UID"
msgstr "UID di archiviazione"
#: .\cookbook\forms.py:117
-#, fuzzy
-#| msgid "Number of Days"
msgid "Number of servings"
-msgstr "Numero di giorni"
+msgstr "Porzioni"
#: .\cookbook\forms.py:128
msgid ""
@@ -143,7 +140,7 @@ msgstr ""
#: .\cookbook\forms.py:143
msgid "Default"
-msgstr ""
+msgstr "Predefinito"
#: .\cookbook\forms.py:162
msgid "New Unit"
@@ -192,11 +189,11 @@ msgstr "Lascia vuoto per nextcloud e inserisci l'api token per dropbox."
#: .\cookbook\forms.py:244
msgid ""
-"Leave empty for dropbox and enter only base url for nextcloud (/remote."
-"php/webdav/ is added automatically)"
+"Leave empty for dropbox and enter only base url for nextcloud "
+"(/remote.php/webdav/ is added automatically)"
msgstr ""
-"Lascia vuoto per dropbox e inserisci solo l'url base per nextcloud (/"
-"remote.php/webdav/ è aggiunto automaticamente)"
+"Lascia vuoto per dropbox e inserisci solo l'url base per nextcloud "
+"(/remote.php/webdav/ è aggiunto automaticamente)"
#: .\cookbook\forms.py:263
msgid "Search String"
@@ -219,11 +216,11 @@ msgstr ""
#: .\cookbook\forms.py:313
#: .\cookbook\templates\forms\edit_internal_recipe.html:377
msgid ""
-"You can use markdown to format this field. See the docs here"
+"You can use markdown to format this field. See the docs here"
msgstr ""
-"Puoi usare markdown per formattare questo campo. Guarda la documentazione qui"
+"Puoi usare markdown per formattare questo campo. Guarda la documentazione qui"
#: .\cookbook\forms.py:328
msgid "A username is not required, if left blank the new user can choose one."
@@ -238,11 +235,11 @@ msgstr ""
#: .\cookbook\helper\permission_helper.py:242 .\cookbook\views\data.py:32
#: .\cookbook\views\views.py:106 .\cookbook\views\views.py:218
msgid "You do not have the required permissions to view this page!"
-msgstr "Non hai i permessi richiesti per visualizzare questa pagina!"
+msgstr "Non hai i permessi necessari per visualizzare questa pagina!"
#: .\cookbook\helper\permission_helper.py:151
msgid "You are not logged in and therefore cannot view this page!"
-msgstr "Non sei loggato e quindi non puoi visualizzare questa pagina!"
+msgstr "Non hai fatto l'accesso e quindi non puoi visualizzare questa pagina!"
#: .\cookbook\helper\permission_helper.py:161
#: .\cookbook\helper\permission_helper.py:177
@@ -258,8 +255,8 @@ msgstr ""
#: .\cookbook\helper\recipe_url_import.py:53
msgid ""
-"The requested site does not provide any recognized data format to import the "
-"recipe from."
+"The requested site does not provide any recognized data format to import the"
+" recipe from."
msgstr ""
"Il sito richiesto non fornisce un formato di dati riconosciuto da cui "
"importare la ricetta."
@@ -273,6 +270,8 @@ msgid ""
"Importer expected a .zip file. Did you choose the correct importer type for "
"your data ?"
msgstr ""
+"La procedura di import necessita di un file .zip. Hai scelto il tipo di "
+"importazione corretta per i tuoi dati?"
#: .\cookbook\integration\safron.py:23
#: .\cookbook\templates\forms\edit_internal_recipe.html:65
@@ -282,10 +281,8 @@ msgid "Servings"
msgstr "Porzioni"
#: .\cookbook\integration\safron.py:25
-#, fuzzy
-#| msgid "Waiting time ~"
msgid "Waiting time"
-msgstr "Tempo di Attesa ~"
+msgstr "Tempo di cottura"
#: .\cookbook\integration\safron.py:27
#: .\cookbook\templates\forms\edit_internal_recipe.html:59
@@ -300,7 +297,7 @@ msgstr "Ricettario"
#: .\cookbook\integration\safron.py:31
msgid "Section"
-msgstr ""
+msgstr "Selezione"
#: .\cookbook\migrations\0047_auto_20200602_1133.py:12
msgid "Breakfast"
@@ -396,37 +393,35 @@ msgstr "Login"
#: .\cookbook\templates\account\login.html:13
#: .\cookbook\templates\account\login.html:28
msgid "Sign In"
-msgstr ""
+msgstr "Accedi"
#: .\cookbook\templates\account\login.html:38
msgid "Social Login"
-msgstr ""
+msgstr "Login con social network"
#: .\cookbook\templates\account\login.html:39
msgid "You can use any of the following providers to sign in."
-msgstr ""
+msgstr "Puoi usare uno dei seguenti provider per accedere."
#: .\cookbook\templates\account\logout.html:5
#: .\cookbook\templates\account\logout.html:9
#: .\cookbook\templates\account\logout.html:18
msgid "Sign Out"
-msgstr ""
+msgstr "Esci"
#: .\cookbook\templates\account\logout.html:11
-#, fuzzy
-#| msgid "Are you sure that you want to merge these two units?"
msgid "Are you sure you want to sign out?"
-msgstr "Sei sicuro di volere unire queste due unità di misura?"
+msgstr "Sei sicuro di voler uscire?"
#: .\cookbook\templates\account\password_reset.html:5
#: .\cookbook\templates\account\password_reset_done.html:5
msgid "Password Reset"
-msgstr ""
+msgstr "Recupero password"
#: .\cookbook\templates\account\password_reset.html:9
#: .\cookbook\templates\account\password_reset_done.html:9
msgid "Password reset is not implemented for the time being!"
-msgstr ""
+msgstr "Il recupero della password non è stato ancora implementato!"
#: .\cookbook\templates\account\signup.html:5
msgid "Register"
@@ -461,7 +456,7 @@ msgstr "Parola chiave"
#: .\cookbook\templates\base.html:100
msgid "Batch Edit"
-msgstr "Modifica di massa"
+msgstr "Modifica in blocco"
#: .\cookbook\templates\base.html:105
msgid "Storage Data"
@@ -531,17 +526,17 @@ msgstr "Logout"
#: .\cookbook\templates\batch\edit.html:6
msgid "Batch edit Category"
-msgstr "Modifica di massa per categoria"
+msgstr "Modifica in blocco per categoria"
#: .\cookbook\templates\batch\edit.html:15
msgid "Batch edit Recipes"
-msgstr "Modifica di massa per ricette"
+msgstr "Modifica in blocco per ricette"
#: .\cookbook\templates\batch\edit.html:20
msgid "Add the specified keywords to all recipes containing a word"
msgstr ""
-"Aggiungi a tutte le ricette che contengono una determinata stringa le parole "
-"chiave desiderate "
+"Aggiungi le parole chiave che desideri a tutte le ricette che contengono una"
+" determinata stringa"
#: .\cookbook\templates\batch\monitor.html:6 .\cookbook\views\edit.py:66
msgid "Sync"
@@ -556,12 +551,12 @@ msgid ""
"On this Page you can manage all storage folder locations that should be "
"monitored and synced."
msgstr ""
-"In questa pagina puoi gestire i percorsi delle cartelle di archiviazione che "
-"devono essere monitorate e sincronizzate."
+"In questa pagina puoi gestire i percorsi delle cartelle di archiviazione che"
+" devono essere monitorate e sincronizzate."
#: .\cookbook\templates\batch\monitor.html:16
msgid "The path must be in the following format"
-msgstr "Il path deve essere nel formato seguente"
+msgstr "Il percorso deve essere nel formato seguente"
#: .\cookbook\templates\batch\monitor.html:27
msgid "Sync Now!"
@@ -641,23 +636,19 @@ msgstr "Modifica Ricetta"
#: .\cookbook\templates\forms\edit_internal_recipe.html:62
msgid "Waiting Time"
-msgstr "Tempo di Attesa"
+msgstr "Tempo di cottura"
#: .\cookbook\templates\forms\edit_internal_recipe.html:68
-#, fuzzy
-#| msgid "Servings"
msgid "Servings Text"
-msgstr "Porzioni"
+msgstr "Nome delle porzioni"
#: .\cookbook\templates\forms\edit_internal_recipe.html:79
msgid "Select Keywords"
msgstr "Seleziona parole chiave"
#: .\cookbook\templates\forms\edit_internal_recipe.html:93
-#, fuzzy
-#| msgid "Nutrition"
msgid "Description"
-msgstr "Nutrienti"
+msgstr "Descrizione"
#: .\cookbook\templates\forms\edit_internal_recipe.html:108
msgid "Nutrition"
@@ -773,7 +764,7 @@ msgstr "Abilita Quantità"
#: .\cookbook\templates\forms\edit_internal_recipe.html:348
msgid "Copy Template Reference"
-msgstr ""
+msgstr "Copia riferimento template"
#: .\cookbook\templates\forms\edit_internal_recipe.html:374
#: .\cookbook\templates\url_import.html:177
@@ -821,19 +812,14 @@ msgstr "Modifica Ingredienti"
#: .\cookbook\templates\forms\ingredients.html:16
msgid ""
"\n"
-" The following form can be used if, accidentally, two (or more) units "
-"or ingredients where created that should be\n"
+" The following form can be used if, accidentally, two (or more) units or ingredients where created that should be\n"
" the same.\n"
-" It merges two units or ingredients and updates all recipes using "
-"them.\n"
+" It merges two units or ingredients and updates all recipes using them.\n"
" "
msgstr ""
"\n"
-" Questo modulo può essere utilizzato se, accidentalmente, sono stati "
-"creati due (o più) unità di misura o ingredienti che dovrebbero essere lo "
-"stesso. \n"
-"Unisce due unità di misura o ingredienti e aggiorna tutte le ricette che li "
-"utilizzano."
+" Questo modulo può essere utilizzato se, accidentalmente, sono stati creati due (o più) unità di misura o ingredienti che dovrebbero essere lo stesso. \n"
+"Unisce due unità di misura o ingredienti e aggiorna tutte le ricette che li utilizzano."
#: .\cookbook\templates\forms\ingredients.html:24
#: .\cookbook\templates\stats.html:26
@@ -955,19 +941,15 @@ msgstr "Avviso di Sicurezza"
#: .\cookbook\templates\include\storage_backend_warning.html:5
msgid ""
"\n"
-" The Password and Token field are stored as plain text "
-"inside the database.\n"
-" This is necessary because they are needed to make API requests, but "
-"it also increases the risk of\n"
+" The Password and Token field are stored as plain text inside the database.\n"
+" This is necessary because they are needed to make API requests, but it also increases the risk of\n"
" someone stealing it. \n"
-" To limit the possible damage tokens or accounts with limited access "
-"can be used.\n"
+" To limit the possible damage tokens or accounts with limited access can be used.\n"
" "
msgstr ""
"\n"
"I campi Password e Token sono salvati in chiaro nel database.\n"
-"È necessario perché servono per fare richieste API, ma questo aumenta il "
-"rischio che\n"
+"È necessario perché servono per fare richieste API, ma questo aumenta il rischio che\n"
"qualcuno possa impossessarsene. \n"
"Per liminare il danno puoi usare account con accesso limitato o i token."
@@ -1012,29 +994,19 @@ msgstr "Informazioni su Markdown"
#: .\cookbook\templates\markdown_info.html:14
msgid ""
"\n"
-" Markdown is lightweight markup language that can be used to format "
-"plain text easily.\n"
-" This site uses the Python Markdown library to\n"
-" convert your text into nice looking HTML. Its full markdown "
-"documentation can be found\n"
-" here.\n"
-" An incomplete but most likely sufficient documentation can be found "
-"below.\n"
+" Markdown is lightweight markup language that can be used to format plain text easily.\n"
+" This site uses the Python Markdown library to\n"
+" convert your text into nice looking HTML. Its full markdown documentation can be found\n"
+" here.\n"
+" An incomplete but most likely sufficient documentation can be found below.\n"
" "
msgstr ""
"\n"
-" Markdown è un linguaggio di markup molto leggero che può essere "
-"utilizzato per formattare facilmente del testo.\n"
-" Questo sito utilizza la libreria Python Markdown per\n"
-" convertire il tuo testo in HTML formattato. È possibile trovare la "
-"documentazione completa del markdown\n"
-" qui.\n"
-" Di seguito è possibile trovare una documentazione incompleta ma molto "
-"probabilmente sufficiente."
+" Markdown è un linguaggio di markup molto leggero che può essere utilizzato per formattare facilmente del testo.\n"
+" Questo sito utilizza la libreria Python Markdown per\n"
+" convertire il tuo testo in HTML formattato. È possibile trovare la documentazione completa del markdown\n"
+" qui.\n"
+" Di seguito è possibile trovare una documentazione incompleta ma molto probabilmente sufficiente."
#: .\cookbook\templates\markdown_info.html:25
msgid "Headers"
@@ -1134,19 +1106,15 @@ msgid "Tables"
msgstr "Tabelle"
#: .\cookbook\templates\markdown_info.html:153
-#, fuzzy
-#| msgid ""
-#| "Markdown tables are hard to create by hand. It is recommended to use a "
-#| "table editor like this one."
msgid ""
-"Markdown tables are hard to create by hand. It is recommended to use a table "
-"editor like this one."
+"Markdown tables are hard to create by hand. It is recommended to use a table"
+" editor like this one."
msgstr ""
-"Le tabelle in markdown sono difficili da creare a mano. È raccomandato "
-"utilizzare un editor di tabelle come questo."
+"Le tabelle in markdown sono difficili da creare a mano. Si raccomanda "
+"l'utilizzo di un editor di come questo."
#: .\cookbook\templates\markdown_info.html:155
#: .\cookbook\templates\markdown_info.html:157
@@ -1180,23 +1148,22 @@ msgstr "Titolo"
#: .\cookbook\templates\meal_plan.html:141
msgid "Note (optional)"
-msgstr "Note (opzionale)"
+msgstr "Nota (opzionale)"
#: .\cookbook\templates\meal_plan.html:143
msgid ""
-"You can use markdown to format this field. See the docs here"
+"You can use markdown to format this field. See the docs "
+"here"
msgstr ""
-"Puoi usare markdown per formattare questo campo. Guarda la documentazione "
-"qui"
+"Puoi usare markdown per formattare questo campo. Guarda la documentazione qui"
#: .\cookbook\templates\meal_plan.html:147
#: .\cookbook\templates\meal_plan.html:251
-#, fuzzy
-#| msgid "Servings"
msgid "Serving Count"
-msgstr "Porzioni"
+msgstr "Numero di porzioni"
#: .\cookbook\templates\meal_plan.html:153
msgid "Create only note"
@@ -1231,8 +1198,8 @@ msgstr "Correzione giorni feriali"
#: .\cookbook\templates\meal_plan.html:209
msgid ""
-"Number of days starting from the first day of the week to offset the default "
-"view."
+"Number of days starting from the first day of the week to offset the default"
+" view."
msgstr ""
"Numero di giorni a partire dal primo giorno della settimana per correggere "
"la visualizzazione predefinita."
@@ -1274,98 +1241,40 @@ msgid "Meal Plan Help"
msgstr "Aiuto per il piano alimentare"
#: .\cookbook\templates\meal_plan.html:344
-#, fuzzy
-#| msgid ""
-#| "\n"
-#| "
The meal plan module allows planning of "
-#| "meals both with recipes or just notes.
\n"
-#| "
Simply select a recipe from the list of "
-#| "recently viewed recipes or search the one you\n"
-#| " want and drag it to the desired plan "
-#| "position. You can also add a note and a title and\n"
-#| " then drag the recipe to create a plan "
-#| "entry with a custom title and note. Creating only\n"
-#| " Notes is possible by dragging the create "
-#| "note box into the plan.
\n"
-#| "
Click on a recipe in order to open the "
-#| "detail view. Here you can also add it to the\n"
-#| " shopping list. You can also add all "
-#| "recipes of a day to the shopping list by\n"
-#| " clicking the shopping cart at the top of "
-#| "the table.
\n"
-#| "
Since a common use case is to plan meals "
-#| "together you can define\n"
-#| " users you want to share your plan with in "
-#| "the settings.\n"
-#| "
\n"
-#| "
You can also edit the types of meals you "
-#| "want to plan. If you share your plan with\n"
-#| " someone with\n"
-#| " different meals, their meal types will "
-#| "appear in your list as well. To prevent\n"
-#| " duplicates (e.g. Other and Misc.)\n"
-#| " name your meal types the same as the "
-#| "users you share your meals with and they will be\n"
-#| " merged.
\n"
-#| " "
msgid ""
"\n"
-"
The meal plan module allows planning of meals "
-"both with recipes and notes.
\n"
-"
Simply select a recipe from the list of "
-"recently viewed recipes or search the one you\n"
-" want and drag it to the desired plan "
-"position. You can also add a note and a title and\n"
-" then drag the recipe to create a plan entry "
-"with a custom title and note. Creating only\n"
-" Notes is possible by dragging the create "
-"note box into the plan.
\n"
-"
Click on a recipe in order to open the "
-"detailed view. There you can also add it to the\n"
-" shopping list. You can also add all recipes "
-"of a day to the shopping list by\n"
-" clicking the shopping cart at the top of the "
-"table.
\n"
-"
Since a common use case is to plan meals "
-"together you can define\n"
-" users you want to share your plan with in "
-"the settings.\n"
+"
The meal plan module allows planning of meals both with recipes and notes.
\n"
+"
Simply select a recipe from the list of recently viewed recipes or search the one you\n"
+" want and drag it to the desired plan position. You can also add a note and a title and\n"
+" then drag the recipe to create a plan entry with a custom title and note. Creating only\n"
+" Notes is possible by dragging the create note box into the plan.
\n"
+"
Click on a recipe in order to open the detailed view. There you can also add it to the\n"
+" shopping list. You can also add all recipes of a day to the shopping list by\n"
+" clicking the shopping cart at the top of the table.
\n"
+"
Since a common use case is to plan meals together you can define\n"
+" users you want to share your plan with in the settings.\n"
"
\n"
-"
You can also edit the types of meals you want "
-"to plan. If you share your plan with\n"
+"
You can also edit the types of meals you want to plan. If you share your plan with\n"
" someone with\n"
-" different meals, their meal types will "
-"appear in your list as well. To prevent\n"
+" different meals, their meal types will appear in your list as well. To prevent\n"
" duplicates (e.g. Other and Misc.)\n"
-" name your meal types the same as the users "
-"you share your meals with and they will be\n"
+" name your meal types the same as the users you share your meals with and they will be\n"
" merged.
\n"
" "
msgstr ""
"\n"
-"
Il modulo del piano alimentare consente di pianificare i pasti sia con "
-"ricette che con semplici note.
\n"
+"
Il modulo del piano alimentare consente di pianificare i pasti sia con ricette che con semplici note.
\n"
"
Seleziona una ricetta dalla lista delle ricette recenti o cercane una,\n"
-"quindi spostala sulla posizione desiderata. Puoi anche aggiungere una nota e "
-"un titolo e\n"
-"poi trascinare la ricetta per creare una voce nel piano con un titolo e una "
-"nota personalizzata. Si possono anche creare\n"
+"quindi spostala sulla posizione desiderata. Puoi anche aggiungere una nota e un titolo e\n"
+"poi trascinare la ricetta per creare una voce nel piano con un titolo e una nota personalizzata. Si possono anche creare\n"
"delle note trascinando la casella della nota nel piano.
\n"
-"
Clicca su una ricetta per aprire la pagina dei dettagli. Qui potrai anche "
-"aggiungerla alla lista della spesa. Puoi anche aggiungere tutte le ricette "
-"di un giorno alla lista della spesa, basterà cliccare sul carrello sopra la "
-"tabella.
\n"
-"
Dato che è comune pianificare i pasti con qualcun altro, nelle "
-"impostazioni puoi scegliere gli utenti con i quali condividere il tuo piano."
-"
\n"
-"
Puoi anche modificare i tipi di pasto che vuoi pianificare. Se condividi "
-"il piano con\n"
+"
Clicca su una ricetta per aprire la vista dettagliata. Qui potrai anche aggiungerla alla lista della spesa. Puoi anche aggiungere tutte le ricette di un giorno alla lista della spesa, basterà cliccare sul carrello sopra la tabella.
\n"
+"
Dato che è comune pianificare i pasti con altre persone, nelle impostazioni puoi scegliere gli utenti con i quali condividere il tuo piano.
\n"
+"
Puoi anche modificare i tipi di pasto che vuoi pianificare. Se condividi il piano con\n"
"qualcuno\n"
-"con pasti differenti, i loro tipi di pasto appariranno anche nella tua "
-"lista. Per prevenire\n"
+"con pasti differenti, i loro tipi di pasto appariranno anche nella tua lista. Per evitare\n"
"duplicati (es. Altri e Varie)\n"
-"dai nomi ai tuoi tipi di pasto uguali ai tuoi utenti in modo che verranno "
-"uniti.
"
+"dai nomi ai tuoi tipi di pasto uguali ai tuoi utenti in modo che verranno uniti.
"
#: .\cookbook\templates\meal_plan_entry.html:6
msgid "Meal Plan View"
@@ -1382,27 +1291,32 @@ msgstr "Altri pasti di questo giorno"
#: .\cookbook\templates\no_groups_info.html:5
#: .\cookbook\templates\offline.html:6
msgid "Offline"
-msgstr ""
+msgstr "Non in linea"
#: .\cookbook\templates\no_groups_info.html:12
msgid "No Permissions"
-msgstr ""
+msgstr "Nessun permesso"
#: .\cookbook\templates\no_groups_info.html:15
msgid ""
"You do not have any groups and therefor cannot use this application. Please "
"contact your administrator."
msgstr ""
+"Non fai parte di un gruppo e questo non ti consente di usare l'applicazione."
+" Contatta il tuo amministratore."
#: .\cookbook\templates\offline.html:19
msgid "You are currently offline!"
-msgstr ""
+msgstr "Al momento sei offline!"
#: .\cookbook\templates\offline.html:20
msgid ""
"The recipes listed below are available for offline viewing because you have "
"recently viewed them. Keep in mind that data might be outdated."
msgstr ""
+"Le ricette qui sotto sono disponibili per essere consultate quando sei "
+"offline perché le hai aperte di recente. Ricorda che queste informazioni "
+"potrebbero non essere aggiornate."
#: .\cookbook\templates\recipe_view.html:21 .\cookbook\templates\stats.html:47
msgid "Comments"
@@ -1427,7 +1341,7 @@ msgstr "Tempo di preparazione circa"
#: .\cookbook\templates\recipes_table.html:52
#: .\cookbook\templates\url_import.html:60
msgid "Waiting time ca."
-msgstr "Tempo di attesa circa"
+msgstr "Tempo di cottura circa"
#: .\cookbook\templates\recipes_table.html:55
msgid "External"
@@ -1447,7 +1361,7 @@ msgstr "Account"
#: .\cookbook\templates\settings.html:38
msgid "Link social account"
-msgstr ""
+msgstr "Collega account social"
#: .\cookbook\templates\settings.html:42
msgid "Language"
@@ -1471,8 +1385,8 @@ msgstr ""
#: .\cookbook\templates\settings.html:92
msgid ""
-"Use the token as an Authorization header prefixed by the word token as shown "
-"in the following examples:"
+"Use the token as an Authorization header prefixed by the word token as shown"
+" in the following examples:"
msgstr ""
"Usa il token come header Authorization preceduto dalla parola Token come "
"negli esempi seguenti:"
@@ -1509,13 +1423,11 @@ msgstr "Nessuna ricetta selezionata"
#: .\cookbook\templates\shopping_list.html:145
msgid "Entry Mode"
-msgstr ""
+msgstr "Modalità di inserimento"
#: .\cookbook\templates\shopping_list.html:153
-#, fuzzy
-#| msgid "New Entry"
msgid "Add Entry"
-msgstr "Nuovo Campo"
+msgstr "Aggiungi voce"
#: .\cookbook\templates\shopping_list.html:168
msgid "Amount"
@@ -1523,13 +1435,11 @@ msgstr "Quantità"
#: .\cookbook\templates\shopping_list.html:224
msgid "Supermarket"
-msgstr ""
+msgstr "Supermercato"
#: .\cookbook\templates\shopping_list.html:234
-#, fuzzy
-#| msgid "Select User"
msgid "Select Supermarket"
-msgstr "Seleziona utente"
+msgstr "Seleziona supermercato"
#: .\cookbook\templates\shopping_list.html:258
msgid "Select User"
@@ -1558,26 +1468,27 @@ msgstr "Si è verificato un errore durante la creazione di una risorsa!"
#: .\cookbook\templates\socialaccount\connections.html:4
#: .\cookbook\templates\socialaccount\connections.html:7
msgid "Account Connections"
-msgstr ""
+msgstr "Collegamenti dell'account"
#: .\cookbook\templates\socialaccount\connections.html:10
msgid ""
"You can sign in to your account using any of the following third party\n"
" accounts:"
msgstr ""
+"Puoi accedere al tuo account usando uno dei seguenti account di terze parti:"
#: .\cookbook\templates\socialaccount\connections.html:36
msgid "Remove"
-msgstr ""
+msgstr "Rimuovi"
#: .\cookbook\templates\socialaccount\connections.html:44
msgid ""
"You currently have no social network accounts connected to this account."
-msgstr ""
+msgstr "Non hai account di social network collegati a questo account."
#: .\cookbook\templates\socialaccount\connections.html:47
msgid "Add a 3rd Party Account"
-msgstr ""
+msgstr "Aggiungi un account di terze parti"
#: .\cookbook\templates\stats.html:4
msgid "Stats"
@@ -1630,18 +1541,14 @@ msgstr "Informazioni di sistema"
#: .\cookbook\templates\system.html:51
msgid ""
"\n"
-" Django Recipes is an open source free software application. It can "
-"be found on\n"
+" Django Recipes is an open source free software application. It can be found on\n"
" GitHub.\n"
-" Changelogs can be found here.\n"
+" Changelogs can be found here.\n"
" "
msgstr ""
"\n"
-"Django Recipes è una applicazione gratuita e open source. È disponibile su "
-"GitHub.\n"
-"Le ultime novità sono disponibili qui."
+"Django Recipes è una applicazione gratuita e open source. È disponibile su GitHub.\n"
+"Le ultime novità sono disponibili qui."
#: .\cookbook\templates\system.html:65
msgid "Media Serving"
@@ -1661,16 +1568,13 @@ msgstr "Ok"
msgid ""
"Serving media files directly using gunicorn/python is not recommend!\n"
" Please follow the steps described\n"
-" here to update\n"
+" here to update\n"
" your installation.\n"
" "
msgstr ""
-"Erogare i file multimediali usando gunicorn/python non è raccomandato"
-"b>!\n"
+"Erogare i file multimediali usando gunicorn/python non è raccomandato!\n"
"Segui i passi descritti\n"
-"qui "
-"per aggiornare la tua installazione."
+"qui per aggiornare la tua installazione."
#: .\cookbook\templates\system.html:74 .\cookbook\templates\system.html:90
#: .\cookbook\templates\system.html:105 .\cookbook\templates\system.html:119
@@ -1684,18 +1588,14 @@ msgstr "Chiave segreta"
#: .\cookbook\templates\system.html:83
msgid ""
"\n"
-" You do not have a SECRET_KEY configured in your "
-".env file. Django defaulted to the\n"
+" You do not have a SECRET_KEY configured in your .env file. Django defaulted to the\n"
" standard key\n"
-" provided with the installation which is publicly know and "
-"insecure! Please set\n"
-" SECRET_KEY int the .env configuration "
-"file.\n"
+" provided with the installation which is publicly know and insecure! Please set\n"
+" SECRET_KEY int the .env configuration file.\n"
" "
msgstr ""
"\n"
-"Non hai inserito una SECRET_KEY nel file .env. "
-"Django ha dovuto usare la chiave standard\n"
+"Non hai inserito una SECRET_KEY nel file .env. Django ha dovuto usare la chiave standard\n"
"dell'installazione che è pubblica e insicura! Sei pregato di aggiungere una\n"
"SECRET_KEY nel file di configurazione .env."
@@ -1706,16 +1606,13 @@ msgstr "Modalità di debug"
#: .\cookbook\templates\system.html:99
msgid ""
"\n"
-" This application is still running in debug mode. This is most "
-"likely not needed. Turn of debug mode by\n"
+" This application is still running in debug mode. This is most likely not needed. Turn of debug mode by\n"
" setting\n"
-" DEBUG=0 int the .env configuration "
-"file.\n"
+" DEBUG=0 int the .env configuration file.\n"
" "
msgstr ""
"\n"
-"Questa applicazione è in esecuzione in modalità di debug. Probabilmente non "
-"è necessario, spegni la modalità di debug \n"
+"Questa applicazione è in esecuzione in modalità di debug. Probabilmente non è necessario, spegni la modalità di debug \n"
"configurando\n"
"DEBUG=0 nel file di configurazione.env."
@@ -1730,14 +1627,12 @@ msgstr "Info"
#: .\cookbook\templates\system.html:114
msgid ""
"\n"
-" This application is not running with a Postgres database "
-"backend. This is ok but not recommended as some\n"
+" This application is not running with a Postgres database backend. This is ok but not recommended as some\n"
" features only work with postgres databases.\n"
" "
msgstr ""
"\n"
-"Questa applicazione non sta girando su un database Postgres. Non è "
-"raccomandato perché alcune\n"
+"Questa applicazione non sta girando su un database Postgres. Non è raccomandato perché alcune\n"
"funzionalità sono disponibili solo con un database Posgres."
#: .\cookbook\templates\url_import.html:5
@@ -1773,18 +1668,14 @@ msgstr "Info"
#: .\cookbook\templates\url_import.html:235
msgid ""
" Only websites containing ld+json or microdata information can currently\n"
-" be imported. Most big recipe pages "
-"support this. If you site cannot be imported but\n"
+" be imported. Most big recipe pages support this. If you site cannot be imported but\n"
" you think\n"
-" it probably has some kind of structured "
-"data feel free to post an example in the\n"
+" it probably has some kind of structured data feel free to post an example in the\n"
" github issues."
msgstr ""
-"Possono essere importati solo i siti che contengono informazioni Id+json o "
-"microdata.\n"
+"Possono essere importati solo i siti che contengono informazioni Id+json o microdata.\n"
"I maggiori siti di ricette di solito sono supportati.\n"
-"Se questo sito non può essere importato ma credi che abbia una qualche tipo "
-"di struttura dati, puoi inviare un esempio nella sezione Issues su GitHub."
+"Se questo sito non può essere importato ma credi che abbia una qualche tipo di struttura dati, puoi inviare un esempio nella sezione Issues su GitHub."
#: .\cookbook\templates\url_import.html:243
msgid "Google ld+json Info"
@@ -1808,7 +1699,7 @@ msgstr "La preferenza per l'utente fornito esiste già"
#: .\cookbook\views\api.py:416 .\cookbook\views\views.py:265
msgid "This feature is not available in the demo version!"
-msgstr ""
+msgstr "Questa funzione non è disponibile nella versione demo!"
#: .\cookbook\views\api.py:439
msgid "Sync successful!"
@@ -1832,9 +1723,10 @@ msgstr ""
#, python-format
msgid "Batch edit done. %(count)d recipe was updated."
msgid_plural "Batch edit done. %(count)d Recipes where updated."
-msgstr[0] "Modifica di massa completata. %(count)d ricetta è stata aggiornata."
+msgstr[0] ""
+"Modifica di massa completata. %(count)d ricetta è stata aggiornata."
msgstr[1] ""
-"Modifica di massa completata. %(count)d ricette sono state aggiornate."
+"Modifica in blocco completata. %(count)d ricette sono state aggiornate."
#: .\cookbook\views\delete.py:72
msgid "Monitor"
@@ -1901,7 +1793,7 @@ msgstr "Le unità sono state unite!"
#: .\cookbook\views\edit.py:295 .\cookbook\views\edit.py:317
msgid "Cannot merge with the same object!"
-msgstr ""
+msgstr "Non è possibile unirlo con lo stesso oggetto!"
#: .\cookbook\views\edit.py:311
msgid "Foods merged!"
@@ -1909,11 +1801,11 @@ msgstr "Gli alimenti sono stati uniti!"
#: .\cookbook\views\import_export.py:42
msgid "Importing is not implemented for this provider"
-msgstr ""
+msgstr "Questo provider non permette l'importazione"
#: .\cookbook\views\import_export.py:58
msgid "Exporting is not implemented for this provider"
-msgstr ""
+msgstr "Questo provider non permette l'esportazione"
#: .\cookbook\views\lists.py:42
msgid "Import Log"
@@ -1937,7 +1829,7 @@ msgstr "Si è verificato un errore durante l'importazione di questa ricetta!"
#: .\cookbook\views\views.py:117
msgid "You do not have the required permissions to perform this action!"
-msgstr "Non hai i permessi necessari per effettuare questa operazione!"
+msgstr "Non hai i permessi necessari per completare questa operazione!"
#: .\cookbook\views\views.py:136
msgid "Comment saved!"
@@ -1945,7 +1837,7 @@ msgstr "Commento salvato!"
#: .\cookbook\views\views.py:152
msgid "This recipe is already linked to the book!"
-msgstr ""
+msgstr "Questa ricetta è già collegata al libro!"
#: .\cookbook\views\views.py:158
msgid "Bookmark saved!"
@@ -1954,8 +1846,8 @@ msgstr "Preferito salvato!"
#: .\cookbook\views\views.py:380
msgid ""
"The setup page can only be used to create the first user! If you have "
-"forgotten your superuser credentials please consult the django documentation "
-"on how to reset passwords."
+"forgotten your superuser credentials please consult the django documentation"
+" on how to reset passwords."
msgstr ""
"La pagina di configurazione può essere usata solo per creare il primo "
"utente! Se hai dimenticato le credenziali del tuo super utente controlla la "
@@ -1976,158 +1868,3 @@ msgstr "È stato fornito un link di invito non valido!"
#: .\cookbook\views\views.py:470
msgid "Invite Link not valid or already used!"
msgstr "Il link di invito non è valido o è stato già usato!"
-
-#~ msgid "Export Base64 encoded image?"
-#~ msgstr "Esportare immagini codificate in Base64?"
-
-#~ msgid "Download export directly or show on page?"
-#~ msgstr "Scaricare l'esportazione direttamente o mostrare sulla pagina?"
-
-#~ msgid "Simply paste a JSON export into this textarea and click import."
-#~ msgstr ""
-#~ "Semplicemente incolla un'esportazione JSON in questa area di testo e "
-#~ "clicca su importa."
-
-#~ msgid "Scaling factor for recipe."
-#~ msgstr "Fattore di ridimensionamento per le ricette."
-
-#~ msgid "Exported Recipe"
-#~ msgstr "Ricette Esportate"
-
-#~ msgid "Copy to clipboard"
-#~ msgstr "Copia negli appunti"
-
-#~ msgid "Copied!"
-#~ msgstr "Copiato!"
-
-#~ msgid "Copy list to clipboard"
-#~ msgstr "Copia la lista negli appunti"
-
-#~ msgid "Error"
-#~ msgstr "Errore"
-
-#~ msgid "There was an error loading the recipe!"
-#~ msgstr "Si è verificato un errore durante il caricamento della ricetta!"
-
-#~ msgid "Updated"
-#~ msgstr "Caricato"
-
-#~ msgid "Changes saved successfully!"
-#~ msgstr "Cambiamenti salvati con successo!"
-
-#~ msgid "There was an error updating the recipe!"
-#~ msgstr "Si è verificato un errore durante l'aggiornamento della ricetta!"
-
-#~ msgid "Are you sure that you want to delete this ingredient?"
-#~ msgstr "Sei sicuro di voler eliminare questo ingrediente?"
-
-#~ msgid "Are you sure that you want to delete this step?"
-#~ msgstr "Sei sicuro di voler eliminare questo step?"
-
-#~ msgid "There was an error loading a resource!"
-#~ msgstr "Si è verificato un errore durante il caricamento di una risorsa!"
-
-#~ msgid "Recipe Multiplier"
-#~ msgstr "Moltiplicatore di Ricetta"
-
-#~ msgid ""
-#~ "When deleting a meal type all entries using that type will be deleted as "
-#~ "well. Deletion will apply when configuration is saved. Do you want to "
-#~ "proceed?"
-#~ msgstr ""
-#~ "Quando elimi un tipo di pasto tutte le voci che usano quel tipo verranno "
-#~ "eliminate. L'eliminazione avviene quando la configurazione viene salvata. "
-#~ "Vuoi procedere?"
-
-#~ msgid "Add to Book"
-#~ msgstr "Aggiungi a libro"
-
-#~ msgid "Add to Plan"
-#~ msgstr "Aggiungi a piano"
-
-#~ msgid "Print"
-#~ msgstr "Stampa"
-
-#~ msgid "Share"
-#~ msgstr "Condividi"
-
-#~ msgid "in"
-#~ msgstr "in"
-
-#~ msgid "Preparation time ~"
-#~ msgstr "Tempo di preparazione ~"
-
-#~ msgid "Minutes"
-#~ msgstr "Minuti"
-
-#~ msgid "View external recipe"
-#~ msgstr "Mostra ricetta esterna"
-
-#~ msgid "External recipe image"
-#~ msgstr "Immagine ricetta esterna"
-
-#~ msgid "External recipe"
-#~ msgstr "Ricetta Esterna"
-
-#~ msgid ""
-#~ "\n"
-#~ " This is an external recipe, which "
-#~ "means you can only view it by opening the link\n"
-#~ " above.\n"
-#~ " You can convert this recipe to a "
-#~ "fancy recipe by pressing the convert button. The\n"
-#~ " original\n"
-#~ " file\n"
-#~ " will still be accessible.\n"
-#~ " "
-#~ msgstr ""
-#~ "\n"
-#~ "Questa è una ricetta esterna, che significa puoi solo aprirla con il "
-#~ "link \n"
-#~ "qui sopra.\n"
-#~ "Puoi convertire questa ricetta ad una più bella cliccando il tasto "
-#~ "Converti.\n"
-#~ "Il\n"
-#~ "file \n"
-#~ "originale\n"
-#~ "sarà sempre accessibile."
-
-#~ msgid "Convert now!"
-#~ msgstr "Converti ora!"
-
-#~ msgid "Your username and password didn't match. Please try again."
-#~ msgstr ""
-#~ "La combinazione inserita di username e password non è valida. Riprova."
-
-#~ msgid "There was an error updating a resource!"
-#~ msgstr "Si è verificato un errore durante l'aggiornamento di una risorsa!"
-
-#~ msgid "Object created successfully!"
-#~ msgstr "Oggetto creato con successo!"
-
-#~ msgid "Please enter a valid food"
-#~ msgstr "Inserisci un alimento valido"
-
-#~ msgid "Already importing the selected recipe, please wait!"
-#~ msgstr "L'importazione della ricetta selezionata è già in corso, attendere!"
-
-#~ msgid "An error occurred while trying to import this recipe!"
-#~ msgstr ""
-#~ "Si è verificato un errore durante il tentativo d'importazione di questa "
-#~ "ricetta!"
-
-#~ msgid "Recipe imported successfully!"
-#~ msgstr "Ricetta importata con successo!"
-
-#~ msgid "Something went wrong during the import!"
-#~ msgstr "Qualcosa è andato storto durante l'importazione!"
-
-#~ msgid "Could not parse the supplied JSON!"
-#~ msgstr "Impossibile analizzare il codice JSON!"
-
-#~ msgid ""
-#~ "External recipes cannot be exported, please share the file directly or "
-#~ "select an internal recipe."
-#~ msgstr ""
-#~ "Le ricette esterne non possono esportate, condividi direttamente il file "
-#~ "oppure seleziona una ricetta interna."
diff --git a/cookbook/locale/nl/LC_MESSAGES/django.mo b/cookbook/locale/nl/LC_MESSAGES/django.mo
index bf4df2e7..8db2801c 100644
Binary files a/cookbook/locale/nl/LC_MESSAGES/django.mo and b/cookbook/locale/nl/LC_MESSAGES/django.mo differ
diff --git a/cookbook/locale/nl/LC_MESSAGES/django.po b/cookbook/locale/nl/LC_MESSAGES/django.po
index 63ed5447..ac7b8e42 100644
--- a/cookbook/locale/nl/LC_MESSAGES/django.po
+++ b/cookbook/locale/nl/LC_MESSAGES/django.po
@@ -2,12 +2,12 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR , YEAR.
-#
+#
# Translators:
# 31a3ead7f9b1ec8ada1a36808eee4069_988cec9 <9478557dfb8b6cd81570ee9e754f1719_904168>, 2020
# Frank Engbers , 2020
# kampsj , 2021
-#
+#
#, fuzzy
msgid ""
msgstr ""
@@ -16,12 +16,11 @@ msgstr ""
"POT-Creation-Date: 2021-02-09 18:01+0100\n"
"PO-Revision-Date: 2020-06-02 19:28+0000\n"
"Last-Translator: kampsj , 2021\n"
-"Language-Team: Dutch (https://www.transifex.com/django-recipes/teams/110507/"
-"nl/)\n"
-"Language: nl\n"
+"Language-Team: Dutch (https://www.transifex.com/django-recipes/teams/110507/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: .\cookbook\filters.py:22 .\cookbook\templates\base.html:87
@@ -88,7 +87,7 @@ msgstr ""
#: .\cookbook\forms.py:55
msgid "Makes the navbar stick to the top of the page."
-msgstr ""
+msgstr "Zet de navbar vast aan de bovenkant van de pagina."
#: .\cookbook\forms.py:71
msgid ""
@@ -127,10 +126,8 @@ msgid "Storage UID"
msgstr "Opslag UID"
#: .\cookbook\forms.py:117
-#, fuzzy
-#| msgid "Number of Days"
msgid "Number of servings"
-msgstr "Aantal dagen"
+msgstr "Porties"
#: .\cookbook\forms.py:128
msgid ""
@@ -142,7 +139,7 @@ msgstr ""
#: .\cookbook\forms.py:143
msgid "Default"
-msgstr ""
+msgstr "Standaard waarde"
#: .\cookbook\forms.py:162
msgid "New Unit"
@@ -190,11 +187,11 @@ msgstr "Laat leeg voor nextcloud en vul de api token in voor dropbox."
#: .\cookbook\forms.py:244
msgid ""
-"Leave empty for dropbox and enter only base url for nextcloud (/remote."
-"php/webdav/ is added automatically)"
+"Leave empty for dropbox and enter only base url for nextcloud "
+"(/remote.php/webdav/ is added automatically)"
msgstr ""
-"Laat leeg voor dropbox en vul enkel de base url voor nextcloud in. (/"
-"remote.php/webdav/ wordt automatisch toegevoegd.)"
+"Laat leeg voor dropbox en vul enkel de base url voor nextcloud in. "
+"(/remote.php/webdav/ wordt automatisch toegevoegd.)"
#: .\cookbook\forms.py:263
msgid "Search String"
@@ -211,17 +208,17 @@ msgstr "Je moet minimaal één recept of titel te specificeren."
#: .\cookbook\forms.py:312
msgid "You can list default users to share recipes with in the settings."
msgstr ""
-"Je kan in de instellingen standaard gebruikers in stellen om de recepten met "
-"te delen."
+"Je kan in de instellingen standaard gebruikers in stellen om de recepten met"
+" te delen."
#: .\cookbook\forms.py:313
#: .\cookbook\templates\forms\edit_internal_recipe.html:377
msgid ""
-"You can use markdown to format this field. See the docs here"
+"You can use markdown to format this field. See the docs here"
msgstr ""
-"Je kunt markdown gebruiken om dit veld te op te maken. Bekijk de documentatie hier."
+"Je kunt markdown gebruiken om dit veld te op te maken. Bekijk de documentatie hier."
#: .\cookbook\forms.py:328
msgid "A username is not required, if left blank the new user can choose one."
@@ -257,8 +254,8 @@ msgstr ""
#: .\cookbook\helper\recipe_url_import.py:53
msgid ""
-"The requested site does not provide any recognized data format to import the "
-"recipe from."
+"The requested site does not provide any recognized data format to import the"
+" recipe from."
msgstr ""
"De opgevraagde site biedt geen bekend gegevensformaat aan om het recept van "
"te importeren."
@@ -272,6 +269,7 @@ msgid ""
"Importer expected a .zip file. Did you choose the correct importer type for "
"your data ?"
msgstr ""
+"De importtool verwachtte een .zip bestand. Heb je het juiste type gekozen?"
#: .\cookbook\integration\safron.py:23
#: .\cookbook\templates\forms\edit_internal_recipe.html:65
@@ -281,8 +279,6 @@ msgid "Servings"
msgstr "Porties"
#: .\cookbook\integration\safron.py:25
-#, fuzzy
-#| msgid "Waiting time ~"
msgid "Waiting time"
msgstr "Wachttijd"
@@ -299,7 +295,7 @@ msgstr "Kookboek"
#: .\cookbook\integration\safron.py:31
msgid "Section"
-msgstr ""
+msgstr "Sectie"
#: .\cookbook\migrations\0047_auto_20200602_1133.py:12
msgid "Breakfast"
@@ -395,37 +391,35 @@ msgstr "Inloggen"
#: .\cookbook\templates\account\login.html:13
#: .\cookbook\templates\account\login.html:28
msgid "Sign In"
-msgstr ""
+msgstr "Log in"
#: .\cookbook\templates\account\login.html:38
msgid "Social Login"
-msgstr ""
+msgstr "Socials login"
#: .\cookbook\templates\account\login.html:39
msgid "You can use any of the following providers to sign in."
-msgstr ""
+msgstr "Je kan een van de volgende providers gebruiken om in te loggen."
#: .\cookbook\templates\account\logout.html:5
#: .\cookbook\templates\account\logout.html:9
#: .\cookbook\templates\account\logout.html:18
msgid "Sign Out"
-msgstr ""
+msgstr "Log uit"
#: .\cookbook\templates\account\logout.html:11
-#, fuzzy
-#| msgid "Are you sure that you want to merge these two units?"
msgid "Are you sure you want to sign out?"
-msgstr "Weet je zeker dat je deze twee eenheden wil samenvoegen?"
+msgstr "Weet je zeker dat je uit wil loggen?"
#: .\cookbook\templates\account\password_reset.html:5
#: .\cookbook\templates\account\password_reset_done.html:5
msgid "Password Reset"
-msgstr ""
+msgstr "Wachtwoord reset"
#: .\cookbook\templates\account\password_reset.html:9
#: .\cookbook\templates\account\password_reset_done.html:9
msgid "Password reset is not implemented for the time being!"
-msgstr ""
+msgstr "Wachtwoord reset is nog niet geïmplementeerd!"
#: .\cookbook\templates\account\signup.html:5
msgid "Register"
@@ -555,8 +549,8 @@ msgid ""
"On this Page you can manage all storage folder locations that should be "
"monitored and synced."
msgstr ""
-"Op deze pagina kaan je alle opslag mappen die gesynchroniseerd en gemonitord "
-"worden beheren."
+"Op deze pagina kaan je alle opslag mappen die gesynchroniseerd en gemonitord"
+" worden beheren."
#: .\cookbook\templates\batch\monitor.html:16
msgid "The path must be in the following format"
@@ -643,20 +637,16 @@ msgid "Waiting Time"
msgstr "Wachttijd"
#: .\cookbook\templates\forms\edit_internal_recipe.html:68
-#, fuzzy
-#| msgid "Servings"
msgid "Servings Text"
-msgstr "Porties"
+msgstr "Porties tekst"
#: .\cookbook\templates\forms\edit_internal_recipe.html:79
msgid "Select Keywords"
msgstr "Selecteer sleutelwoorden"
#: .\cookbook\templates\forms\edit_internal_recipe.html:93
-#, fuzzy
-#| msgid "Nutrition"
msgid "Description"
-msgstr "Voedingswaarde"
+msgstr "Beschrijving"
#: .\cookbook\templates\forms\edit_internal_recipe.html:108
msgid "Nutrition"
@@ -772,7 +762,7 @@ msgstr "Hoeveelheid inschakelen"
#: .\cookbook\templates\forms\edit_internal_recipe.html:348
msgid "Copy Template Reference"
-msgstr ""
+msgstr "Kopieer sjabloon referentie"
#: .\cookbook\templates\forms\edit_internal_recipe.html:374
#: .\cookbook\templates\url_import.html:177
@@ -820,18 +810,14 @@ msgstr "Ingrediënten bewerken"
#: .\cookbook\templates\forms\ingredients.html:16
msgid ""
"\n"
-" The following form can be used if, accidentally, two (or more) units "
-"or ingredients where created that should be\n"
+" The following form can be used if, accidentally, two (or more) units or ingredients where created that should be\n"
" the same.\n"
-" It merges two units or ingredients and updates all recipes using "
-"them.\n"
+" It merges two units or ingredients and updates all recipes using them.\n"
" "
msgstr ""
"\n"
-"Het volgende formulier kan worden gebruikt wanneer per ongeluk twee (of "
-"meer) eenheden of ingrediënten zijn gecreëerd dat eigenlijk hetzelfde zijn.\n"
-"Het doet de twee eenheden of ingrediënten samenvoegen en alle bijbehorende "
-"recepten updaten."
+"Het volgende formulier kan worden gebruikt wanneer per ongeluk twee (of meer) eenheden of ingrediënten zijn gecreëerd dat eigenlijk hetzelfde zijn.\n"
+"Het doet de twee eenheden of ingrediënten samenvoegen en alle bijbehorende recepten updaten."
#: .\cookbook\templates\forms\ingredients.html:24
#: .\cookbook\templates\stats.html:26
@@ -953,22 +939,16 @@ msgstr "Veiligheidswaarschuwing"
#: .\cookbook\templates\include\storage_backend_warning.html:5
msgid ""
"\n"
-" The Password and Token field are stored as plain text "
-"inside the database.\n"
-" This is necessary because they are needed to make API requests, but "
-"it also increases the risk of\n"
+" The Password and Token field are stored as plain text inside the database.\n"
+" This is necessary because they are needed to make API requests, but it also increases the risk of\n"
" someone stealing it. \n"
-" To limit the possible damage tokens or accounts with limited access "
-"can be used.\n"
+" To limit the possible damage tokens or accounts with limited access can be used.\n"
" "
msgstr ""
"\n"
-"Het wachtwoord en token veld worden als plain text in de "
-"database opgeslagen.\n"
-"Dit is benodigd omdat deze benodigd zijn voor de API requests, Echter "
-"verhoogd dit ook het risico van diefstal. \n"
-"Om mogelijke schade te beperken kunt u gebruik maken van account met "
-"gelimiteerde toegang."
+"Het wachtwoord en token veld worden als plain text in de database opgeslagen.\n"
+"Dit is benodigd omdat deze benodigd zijn voor de API requests, Echter verhoogd dit ook het risico van diefstal. \n"
+"Om mogelijke schade te beperken kunt u gebruik maken van account met gelimiteerde toegang."
#: .\cookbook\templates\index.html:29
msgid "Search recipe ..."
@@ -1011,26 +991,17 @@ msgstr "Markdown informatie"
#: .\cookbook\templates\markdown_info.html:14
msgid ""
"\n"
-" Markdown is lightweight markup language that can be used to format "
-"plain text easily.\n"
-" This site uses the Python Markdown library to\n"
-" convert your text into nice looking HTML. Its full markdown "
-"documentation can be found\n"
-" here.\n"
-" An incomplete but most likely sufficient documentation can be found "
-"below.\n"
+" Markdown is lightweight markup language that can be used to format plain text easily.\n"
+" This site uses the Python Markdown library to\n"
+" convert your text into nice looking HTML. Its full markdown documentation can be found\n"
+" here.\n"
+" An incomplete but most likely sufficient documentation can be found below.\n"
" "
msgstr ""
"\n"
-"Markdown is een lichtgewicht opmaak taal die gebruikt kan worden om tekst "
-"eenvoudig op te maken.\n"
-"Deze site gebruikt de Python Markdown bibliotheek\n"
-"om je tekst in mooi uitziende HTML om te zetten. De volledige documentatie "
-"kan hiergevonden worden.\n"
+"Markdown is een lichtgewicht opmaak taal die gebruikt kan worden om tekst eenvoudig op te maken.\n"
+"Deze site gebruikt de Python Markdown bibliotheek\n"
+"om je tekst in mooi uitziende HTML om te zetten. De volledige documentatie kan hiergevonden worden.\n"
"Onvolledige, maar waarschijnlijk voldoende, informatie staat hieronder."
#: .\cookbook\templates\markdown_info.html:25
@@ -1130,19 +1101,15 @@ msgid "Tables"
msgstr "Tabellen"
#: .\cookbook\templates\markdown_info.html:153
-#, fuzzy
-#| msgid ""
-#| "Markdown tables are hard to create by hand. It is recommended to use a "
-#| "table editor like this one."
msgid ""
-"Markdown tables are hard to create by hand. It is recommended to use a table "
-"editor like this one."
+"Markdown tables are hard to create by hand. It is recommended to use a table"
+" editor like this one."
msgstr ""
-"Het is lastig om markdown tabellen handmatig te creëren. Het is geadviseerd "
-"dat u een tabel bewerker zoals deze gebruikt."
+"Het is lastig om met de hand Markdown tabellen te maken. Het wordt "
+"aangeraden om een tabel editor zoals deze te gebruiken."
#: .\cookbook\templates\markdown_info.html:155
#: .\cookbook\templates\markdown_info.html:157
@@ -1180,18 +1147,18 @@ msgstr "Notitie (optioneel)"
#: .\cookbook\templates\meal_plan.html:143
msgid ""
-"You can use markdown to format this field. See the docs here"
+"You can use markdown to format this field. See the docs "
+"here"
msgstr ""
-"Je kan markdown gebruiken om dit veld op te maken. Zie de documentatie"
+"Je kan markdown gebruiken om dit veld op te maken. Zie de documentatie"
#: .\cookbook\templates\meal_plan.html:147
#: .\cookbook\templates\meal_plan.html:251
-#, fuzzy
-#| msgid "Servings"
msgid "Serving Count"
-msgstr "Porties"
+msgstr "Portie teller"
#: .\cookbook\templates\meal_plan.html:153
msgid "Create only note"
@@ -1226,8 +1193,8 @@ msgstr "Weekdag aanpassing"
#: .\cookbook\templates\meal_plan.html:209
msgid ""
-"Number of days starting from the first day of the week to offset the default "
-"view."
+"Number of days starting from the first day of the week to offset the default"
+" view."
msgstr ""
"Aantal dagen startende met de eerste dag van de week om het standaard "
"overzicht aan te passen."
@@ -1269,94 +1236,37 @@ msgid "Meal Plan Help"
msgstr "Maaltijdplanner hulp"
#: .\cookbook\templates\meal_plan.html:344
-#, fuzzy
-#| msgid ""
-#| "\n"
-#| "
The meal plan module allows planning of "
-#| "meals both with recipes or just notes.
\n"
-#| "
Simply select a recipe from the list of "
-#| "recently viewed recipes or search the one you\n"
-#| " want and drag it to the desired plan "
-#| "position. You can also add a note and a title and\n"
-#| " then drag the recipe to create a plan "
-#| "entry with a custom title and note. Creating only\n"
-#| " Notes is possible by dragging the create "
-#| "note box into the plan.
\n"
-#| "
Click on a recipe in order to open the "
-#| "detail view. Here you can also add it to the\n"
-#| " shopping list. You can also add all "
-#| "recipes of a day to the shopping list by\n"
-#| " clicking the shopping cart at the top of "
-#| "the table.
\n"
-#| "
Since a common use case is to plan meals "
-#| "together you can define\n"
-#| " users you want to share your plan with in "
-#| "the settings.\n"
-#| "
\n"
-#| "
You can also edit the types of meals you "
-#| "want to plan. If you share your plan with\n"
-#| " someone with\n"
-#| " different meals, their meal types will "
-#| "appear in your list as well. To prevent\n"
-#| " duplicates (e.g. Other and Misc.)\n"
-#| " name your meal types the same as the "
-#| "users you share your meals with and they will be\n"
-#| " merged.
\n"
-#| " "
msgid ""
"\n"
-"
The meal plan module allows planning of meals "
-"both with recipes and notes.
\n"
-"
Simply select a recipe from the list of "
-"recently viewed recipes or search the one you\n"
-" want and drag it to the desired plan "
-"position. You can also add a note and a title and\n"
-" then drag the recipe to create a plan entry "
-"with a custom title and note. Creating only\n"
-" Notes is possible by dragging the create "
-"note box into the plan.
\n"
-"
Click on a recipe in order to open the "
-"detailed view. There you can also add it to the\n"
-" shopping list. You can also add all recipes "
-"of a day to the shopping list by\n"
-" clicking the shopping cart at the top of the "
-"table.
\n"
-"
Since a common use case is to plan meals "
-"together you can define\n"
-" users you want to share your plan with in "
-"the settings.\n"
+"
The meal plan module allows planning of meals both with recipes and notes.
\n"
+"
Simply select a recipe from the list of recently viewed recipes or search the one you\n"
+" want and drag it to the desired plan position. You can also add a note and a title and\n"
+" then drag the recipe to create a plan entry with a custom title and note. Creating only\n"
+" Notes is possible by dragging the create note box into the plan.
\n"
+"
Click on a recipe in order to open the detailed view. There you can also add it to the\n"
+" shopping list. You can also add all recipes of a day to the shopping list by\n"
+" clicking the shopping cart at the top of the table.
\n"
+"
Since a common use case is to plan meals together you can define\n"
+" users you want to share your plan with in the settings.\n"
"
\n"
-"
You can also edit the types of meals you want "
-"to plan. If you share your plan with\n"
+"
You can also edit the types of meals you want to plan. If you share your plan with\n"
" someone with\n"
-" different meals, their meal types will "
-"appear in your list as well. To prevent\n"
+" different meals, their meal types will appear in your list as well. To prevent\n"
" duplicates (e.g. Other and Misc.)\n"
-" name your meal types the same as the users "
-"you share your meals with and they will be\n"
+" name your meal types the same as the users you share your meals with and they will be\n"
" merged.
\n"
" "
msgstr ""
"\n"
-"
De maaltijdplanner maakt het mogelijk maaltijden op basis van recepten of "
-"notities te plannen.
\n"
-"
Selecteer een recept uit de lijst van recent bekeken recepten of zoek het "
-"recept dat je wil en sleep het naar de gewenste positie. Je kan ook eerst "
-"een notitie en titel toevoegen en dan het recept naar de gewenste positie "
-"slepen om een maaltijdplan met een aangepaste titel en notitie te maken. "
-"Alleen notities aanmaken is ook mogelijk door 'Maak notitie' in het "
-"maaltijdplan te slepen.
\n"
-"
Klik op een recept om het te openen en de details te bekijken. Hier kan "
-"je het ook aan de boodschappenlijst toevoegen door op het winkelwagentje "
-"bovenaan de tabel te klikken.
\n"
-"
Omdat maaltijden vaak gezamenlijk worden gepland kan je in de "
-"instellingen gebruikers aangeven met wie je het maaltijdplan wil delen.
\n"
-"
Je kan ook de soort maaltijden die je wil plannen bewerken. Als je jouw "
-"plan deelt met iemand met andere soorten, dan zullen deze ook in jouw lijst "
-"verschijnen. Gelijknamige soorten worden samengevoegd. Zorg er daarom voor "
-"dat de gebruikte soorten overeenkomen met de gebruiker met wie je je "
-"maaltijdplannen deelt. Dit voorkomt dubbelingen (zoals Overige en "
-"Willekeurig).
"
+"
De maaltijdplan module maakt plannen van maaltijden met recepten en notities mogelijk.
\n"
+"
Selecteer een recept van de lijst recent bekeken recepten of zoek naar\n"
+"het gewenste recept en sleep het naar de juiste positie in het maaltijdplan. Je kan ook eerst een notitie en titel toevoegen en dan het recept naar de juiste positie slepen om een unieke maaltijdplan inschrijving te maken.\n"
+"Alleen notities aanmaken is mogelijk door het Maak notitie vlak in het maaltijdplan te slepen.
\n"
+"
Klik op een recept om de gedetailleerde weergave te openen. Daar kan je het ook toevoegen aan je boodschappenlijst.\n"
+"Je kan ook alle recepten van een dag aan je boodschappenlijst toevoegen door op het winkelwagentje boven aan de tabel te klikken.
\n"
+"
Omdat maaltijden samen gepland kunnen worden kan je in de instellingen kiezen met welke gebruikers je je maaltijd plan wil delen.\n"
+"
\n"
+"
Je kan ook het type maaltijd dat je wil plannen bewerken. Als je een maaltijdplan deelt met iemand met andere maaltijden, dan zullen hun maaltijdtypes ook in jouw lijst verschijnen. Geef, om dubbelingen (zoals Overig en Anders) te voorkomen, je maaltijdtypes daarom dezelfde naam als de gebruikers waarmee je maaltijdplannen deelt. In dat geval worden de maaltijden samengevoegd.
")})}},E=S,T=Object(v["a"])(E,h,j,!1,null,null,null),$=T.exports,P=i("c1df"),M=i.n(P);s["default"].prototype.moment=M.a;var z={name:"Step",mixins:[u["a"]],components:{Ingredient:g,CompileComponent:$},props:{step:Object,ingredient_factor:Number,index:Number,recipe:Object,start_time:String},data:function(){return{details_visible:!0,set_time_input:""}},mounted:function(){this.set_time_input=M()(this.start_time).add(this.step.time_offset,"minutes").format("yyyy-MM-DDTHH:mm")},methods:{calculateAmount:function(e){return Object(u["d"])(e,this.ingredient_factor)},updateTime:function(){var e=M()(this.set_time_input).add(-1*this.step.time_offset,"minutes").format("yyyy-MM-DDTHH:mm");this.$emit("update-start-time",e),this.closePopover()},closePopover:function(){this.$refs["id_reactive_popover_".concat(this.step.id)].$emit("close")},openPopover:function(){this.$refs["id_reactive_popover_".concat(this.step.id)].$emit("open")}}},N=z,D=Object(v["a"])(N,l,d,!1,null,null,null),R=D.exports,U=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("div",{staticClass:"dropdown"},[e._m(0),i("div",{staticClass:"dropdown-menu dropdown-menu-right",attrs:{"aria-labelledby":"dropdownMenuLink"}},[i("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("edit_recipe",e.recipe.id)}},[i("i",{staticClass:"fas fa-pencil-alt fa-fw"}),e._v(" "+e._s(e._("Edit")))]),e.recipe.internal?e._e():i("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("edit_convert_recipe",e.recipe.id)}},[i("i",{staticClass:"fas fa-exchange-alt fa-fw"}),e._v(" "+e._s(e._("Convert to internal recipe")))]),i("button",{staticClass:"dropdown-item",on:{click:function(t){return e.$bvModal.show("id_modal_add_book")}}},[i("i",{staticClass:"fas fa-bookmark fa-fw"}),e._v(" "+e._s(e._("Add to Book"))+" ")]),e.recipe.internal?i("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("view_shopping")+"?r=["+e.recipe.id+","+e.servings_value+"]",target:"_blank",rel:"noopener noreferrer"}},[i("i",{staticClass:"fas fa-shopping-cart fa-fw"}),e._v(" "+e._s(e._("Add to Shopping"))+" ")]):e._e(),i("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("new_meal_plan")+"?recipe="+e.recipe.id,target:"_blank",rel:"noopener noreferrer"}},[i("i",{staticClass:"fas fa-calendar fa-fw"}),e._v(" "+e._s(e._("Add to Plan"))+" ")]),i("button",{staticClass:"dropdown-item",on:{click:function(t){return e.$bvModal.show("id_modal_cook_log")}}},[i("i",{staticClass:"fas fa-clipboard-list fa-fw"}),e._v(" "+e._s(e._("Log Cooking"))+" ")]),i("button",{staticClass:"dropdown-item",attrs:{onclick:"window.print()"}},[i("i",{staticClass:"fas fa-print fa-fw"}),e._v(" "+e._s(e._("Print"))+" ")]),i("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("view_export")+"?r="+e.recipe.id,target:"_blank",rel:"noopener noreferrer"}},[i("i",{staticClass:"fas fa-file-export fa-fw"}),e._v(" "+e._s(e._("Export")))]),e.recipe.internal?i("a",{staticClass:"dropdown-item",attrs:{href:e.resolveDjangoUrl("new_share_link",e.recipe.id),target:"_blank",rel:"noopener noreferrer"}},[i("i",{staticClass:"fas fa-share-alt fa-fw"}),e._v(" "+e._s(e._("Share")))]):e._e()])]),i("cook-log",{attrs:{recipe:e.recipe}})],1)},H=[function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("a",{staticClass:"btn shadow-none",attrs:{href:"#",role:"button",id:"dropdownMenuLink","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}},[i("i",{staticClass:"fas fa-ellipsis-v"})])}],I=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("b-modal",{staticClass:"modal",attrs:{id:"id_modal_cook_log",title:e._("Log Recipe Cooking"),"ok-title":e._("Save"),"cancel-title":e._("Close")},on:{ok:function(t){return e.logCook()}}},[i("p",[e._v(e._s(e._("All fields are optional and can be left empty.")))]),i("form",[i("label",{attrs:{for:"id_log_servings"}},[e._v(e._s(e._("Servings")))]),i("input",{directives:[{name:"model",rawName:"v-model",value:e.logObject.servings,expression:"logObject.servings"}],staticClass:"form-control",attrs:{type:"number",id:"id_log_servings"},domProps:{value:e.logObject.servings},on:{input:function(t){t.target.composing||e.$set(e.logObject,"servings",t.target.value)}}}),i("label",{staticStyle:{"margin-top":"2vh"}},[e._v(e._s(e._("Rating"))+" - "),i("span",{attrs:{id:"id_rating_show"}},[e._v(e._s(e.logObject.rating)+"/5")])]),i("b-form-rating",{model:{value:e.logObject.rating,callback:function(t){e.$set(e.logObject,"rating",t)},expression:"logObject.rating"}}),i("label",{staticStyle:{"margin-top":"2vh"},attrs:{for:"id_date"}},[e._v(e._s(e._("Date")))]),i("input",{directives:[{name:"model",rawName:"v-model",value:e.logObject.created_at,expression:"logObject.created_at"}],staticClass:"form-control",attrs:{type:"datetime-local",id:"id_date"},domProps:{value:e.logObject.created_at},on:{input:function(t){t.target.composing||e.$set(e.logObject,"created_at",t.target.value)}}})],1)])],1)},A=[];s["default"].prototype.moment=M.a,s["default"].use(c["a"]);var L={name:"CookLog",mixins:[u["a"]],props:{recipe:Object},data:function(){return{logObject:{recipe:this.recipe.id,servings:0,rating:0,created_at:M()().format("yyyy-MM-DDTHH:mm")}}},methods:{logCook:function(){Object(o["e"])(this.logObject)}}},B=L,V=Object(v["a"])(B,I,A,!1,null,null,null),F=V.exports,q={name:"RecipeContextMenu",mixins:[u["b"],u["a"]],components:{CookLog:F},data:function(){return{servings_value:0}},props:{recipe:Object,servings:{type:Number,default:-1}},mounted:function(){this.servings_value=-1===this.servings?this.recipe.servings:this.servings}},J=q,K=Object(v["a"])(J,U,H,!1,null,null,null),G=K.exports,X=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("iframe",{staticStyle:{border:"none"},attrs:{src:e.pdfUrl,width:"100%",height:"700px"}})])},W=[],Q={name:"PdfViewer",mixins:[u["b"]],props:{recipe:Object},computed:{pdfUrl:function(){return"/static/pdfjs/viewer.html?file="+Object(u["g"])("api_get_recipe_file",this.recipe.id)}}},Y=Q,Z=Object(v["a"])(Y,X,W,!1,null,null,null),ee=Z.exports,te=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticStyle:{"text-align":"center"}},[i("b-img",{attrs:{src:e.pdfUrl,alt:e._("External Recipe Image")}})],1)},ie=[],se={name:"ImageViewer",mixins:[u["a"]],props:{recipe:Object},computed:{pdfUrl:function(){return Object(u["g"])("api_get_recipe_file",this.recipe.id)}}},ae=se,ne=Object(v["a"])(ae,te,ie,!1,null,null,null),re=ne.exports,ce=function(){var e=this,t=e.$createElement,i=e._self._c||t;return null!==e.recipe.nutrition?i("div",[i("div",{staticClass:"card border-success"},[i("div",{staticClass:"card-body"},[i("div",{staticClass:"row"},[i("div",{staticClass:"col-12"},[i("h4",{staticClass:"card-title"},[i("i",{staticClass:"fas fa-carrot"}),e._v(" "+e._s(e._("Nutrition")))])])]),i("div",{staticClass:"row"},[i("div",{staticClass:"col-6"},[i("i",{staticClass:"fas fa-fire fa-fw text-primary"}),e._v(" "+e._s(e._("Calories"))+" ")]),i("div",{staticClass:"col-6"},[i("span",{domProps:{innerHTML:e._s(e.calculateAmount(e.recipe.nutrition.calories))}}),e._v(" kcal ")])]),i("div",{staticClass:"row"},[i("div",{staticClass:"col-6"},[i("i",{staticClass:"fas fa-bread-slice fa-fw text-primary"}),e._v(" "+e._s(e._("Carbohydrates"))+" ")]),i("div",{staticClass:"col-6"},[i("span",{domProps:{innerHTML:e._s(e.calculateAmount(e.recipe.nutrition.carbohydrates))}}),e._v(" g ")])]),i("div",{staticClass:"row"},[i("div",{staticClass:"col-6"},[i("i",{staticClass:"fas fa-cheese fa-fw text-primary"}),e._v(" "+e._s(e._("Fats"))+" ")]),i("div",{staticClass:"col-6"},[i("span",{domProps:{innerHTML:e._s(e.calculateAmount(e.recipe.nutrition.fats))}}),e._v(" g ")])]),i("div",{staticClass:"row"},[i("div",{staticClass:"col-6"},[i("i",{staticClass:"fas fa-drumstick-bite fa-fw text-primary"}),e._v(" "+e._s(e._("Proteins"))+" ")]),i("div",{staticClass:"col-6"},[i("span",{domProps:{innerHTML:e._s(e.calculateAmount(e.recipe.nutrition.proteins))}}),e._v(" g ")])])])])]):e._e()},oe=[],le={name:"Nutrition",mixins:[u["a"]],props:{recipe:Object,ingredient_factor:Number},methods:{calculateAmount:function(e){return Object(u["d"])(e,this.ingredient_factor)}}},de=le,ue=Object(v["a"])(de,ce,oe,!1,null,null,null),pe=ue.exports,fe=function(){var e=this,t=e.$createElement,i=e._self._c||t;return e.recipe.keywords.length>0?i("div",e._l(e.recipe.keywords,(function(t){return i("small",{key:t.id,staticStyle:{padding:"2px"}},[e._v(" "+e._s(t.icon)+" "+e._s(t.name)+" ")])})),0):e._e()},me=[],_e={name:"Keywords",props:{recipe:Object}},ve=_e,be=Object(v["a"])(ve,fe,me,!1,null,null,null),ge=be.exports,he=i("d76c"),je=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",[i("b-modal",{staticClass:"modal",attrs:{id:"id_modal_add_book",title:e._("Add to Book"),"ok-title":e._("Add"),"cancel-title":e._("Close")},on:{ok:function(t){return e.addToBook()}}},[i("multiselect",{attrs:{options:e.books,"preserve-search":!0,placeholder:e._("Select Book"),label:"name","track-by":"id",id:"id_books",multiple:!1},on:{"search-change":e.loadBook},model:{value:e.selected_book,callback:function(t){e.selected_book=t},expression:"selected_book"}})],1)],1)},ye=[],Ce=i("8e5f"),ke=i.n(Ce);s["default"].prototype.moment=M.a,s["default"].use(c["a"]);var we={name:"AddRecipeToBook",mixins:[u["a"]],components:{Multiselect:ke.a},props:{recipe:Object},data:function(){return{books:[],selected_book:null}},mounted:function(){this.loadBook("")},methods:{loadBook:function(e){var t=this;Object(o["b"])(e).then((function(e){t.books=e}))},addToBook:function(){Object(o["a"])({recipe:this.recipe.id,book:this.selected_book.id})}}},xe=we,Oe=(i("60bc"),Object(v["a"])(xe,je,ye,!1,null,null,null)),Se=Oe.exports;s["default"].prototype.moment=M.a,s["default"].use(c["a"]);var Ee={name:"RecipeView",mixins:[u["a"],u["b"],u["c"]],components:{PdfViewer:ee,ImageViewer:re,Ingredient:g,Step:R,RecipeContextMenu:G,Nutrition:pe,Keywords:ge,LoadingSpinner:he["a"],AddRecipeToBook:Se},computed:{ingredient_factor:function(){return this.servings/this.recipe.servings}},data:function(){return{loading:!0,recipe:void 0,ingredient_count:0,servings:1,start_time:""}},mounted:function(){this.loadRecipe(window.RECIPE_ID)},methods:{loadRecipe:function(e){var t=this;Object(o["d"])(e).then((function(e){0!==window.USER_SERVINGS&&(e.servings=window.USER_SERVINGS),t.servings=e.servings;var i,s=0,a=Object(r["a"])(e.steps);try{for(a.s();!(i=a.n()).done;){var n=i.value;t.ingredient_count+=n.ingredients.length;var c,o=Object(r["a"])(n.ingredients);try{for(o.s();!(c=o.n()).done;){var l=c.value;t.$set(l,"checked",!1)}}catch(d){o.e(d)}finally{o.f()}n.time_offset=s,s+=n.time}}catch(d){a.e(d)}finally{a.f()}s>0&&(t.start_time=M()().format("yyyy-MM-DDTHH:mm")),t.recipe=e,t.loading=!1}))},updateStartTime:function(e){this.start_time=e},updateIngredientCheckedState:function(e){var t,i=Object(r["a"])(this.recipe.steps);try{for(i.s();!(t=i.n()).done;){var s,a=t.value,n=Object(r["a"])(a.ingredients);try{for(n.s();!(s=n.n()).done;){var c=s.value;c.id===e.id&&this.$set(c,"checked",!c.checked)}}catch(o){n.e(o)}finally{n.f()}}}catch(o){i.e(o)}finally{i.f()}}}},Te=Ee,$e=Object(v["a"])(Te,a,n,!1,null,null,null),Pe=$e.exports;s["default"].config.productionTip=!1,new s["default"]({render:function(e){return e(Pe)}}).$mount("#app")},4678:function(e,t,i){var s={"./af":"2bfb","./af.js":"2bfb","./ar":"8e73","./ar-dz":"a356","./ar-dz.js":"a356","./ar-kw":"423e","./ar-kw.js":"423e","./ar-ly":"1cfd","./ar-ly.js":"1cfd","./ar-ma":"0a84","./ar-ma.js":"0a84","./ar-sa":"8230","./ar-sa.js":"8230","./ar-tn":"6d83","./ar-tn.js":"6d83","./ar.js":"8e73","./az":"485c","./az.js":"485c","./be":"1fc1","./be.js":"1fc1","./bg":"84aa","./bg.js":"84aa","./bm":"a7fa","./bm.js":"a7fa","./bn":"9043","./bn-bd":"9686","./bn-bd.js":"9686","./bn.js":"9043","./bo":"d26a","./bo.js":"d26a","./br":"6887","./br.js":"6887","./bs":"2554","./bs.js":"2554","./ca":"d716","./ca.js":"d716","./cs":"3c0d","./cs.js":"3c0d","./cv":"03ec","./cv.js":"03ec","./cy":"9797","./cy.js":"9797","./da":"0f14","./da.js":"0f14","./de":"b469","./de-at":"b3eb","./de-at.js":"b3eb","./de-ch":"bb71","./de-ch.js":"bb71","./de.js":"b469","./dv":"598a","./dv.js":"598a","./el":"8d47","./el.js":"8d47","./en-au":"0e6b","./en-au.js":"0e6b","./en-ca":"3886","./en-ca.js":"3886","./en-gb":"39a6","./en-gb.js":"39a6","./en-ie":"e1d3","./en-ie.js":"e1d3","./en-il":"7333","./en-il.js":"7333","./en-in":"ec2e","./en-in.js":"ec2e","./en-nz":"6f50","./en-nz.js":"6f50","./en-sg":"b7e9","./en-sg.js":"b7e9","./eo":"65db","./eo.js":"65db","./es":"898b","./es-do":"0a3c","./es-do.js":"0a3c","./es-mx":"b5b7","./es-mx.js":"b5b7","./es-us":"55c9","./es-us.js":"55c9","./es.js":"898b","./et":"ec18","./et.js":"ec18","./eu":"0ff2","./eu.js":"0ff2","./fa":"8df4","./fa.js":"8df4","./fi":"81e9","./fi.js":"81e9","./fil":"d69a","./fil.js":"d69a","./fo":"0721","./fo.js":"0721","./fr":"9f26","./fr-ca":"d9f8","./fr-ca.js":"d9f8","./fr-ch":"0e49","./fr-ch.js":"0e49","./fr.js":"9f26","./fy":"7118","./fy.js":"7118","./ga":"5120","./ga.js":"5120","./gd":"f6b4","./gd.js":"f6b4","./gl":"8840","./gl.js":"8840","./gom-deva":"aaf2","./gom-deva.js":"aaf2","./gom-latn":"0caa","./gom-latn.js":"0caa","./gu":"e0c5","./gu.js":"e0c5","./he":"c7aa","./he.js":"c7aa","./hi":"dc4d","./hi.js":"dc4d","./hr":"4ba9","./hr.js":"4ba9","./hu":"5b14","./hu.js":"5b14","./hy-am":"d6b6","./hy-am.js":"d6b6","./id":"5038","./id.js":"5038","./is":"0558","./is.js":"0558","./it":"6e98","./it-ch":"6f12","./it-ch.js":"6f12","./it.js":"6e98","./ja":"079e","./ja.js":"079e","./jv":"b540","./jv.js":"b540","./ka":"201b","./ka.js":"201b","./kk":"6d79","./kk.js":"6d79","./km":"e81d","./km.js":"e81d","./kn":"3e92","./kn.js":"3e92","./ko":"22f8","./ko.js":"22f8","./ku":"2421","./ku.js":"2421","./ky":"9609","./ky.js":"9609","./lb":"440c","./lb.js":"440c","./lo":"b29d","./lo.js":"b29d","./lt":"26f9","./lt.js":"26f9","./lv":"b97c","./lv.js":"b97c","./me":"293c","./me.js":"293c","./mi":"688b","./mi.js":"688b","./mk":"6909","./mk.js":"6909","./ml":"02fb","./ml.js":"02fb","./mn":"958b","./mn.js":"958b","./mr":"39bd","./mr.js":"39bd","./ms":"ebe4","./ms-my":"6403","./ms-my.js":"6403","./ms.js":"ebe4","./mt":"1b45","./mt.js":"1b45","./my":"8689","./my.js":"8689","./nb":"6ce3","./nb.js":"6ce3","./ne":"3a39","./ne.js":"3a39","./nl":"facd","./nl-be":"db29","./nl-be.js":"db29","./nl.js":"facd","./nn":"b84c","./nn.js":"b84c","./oc-lnc":"167b","./oc-lnc.js":"167b","./pa-in":"f3ff","./pa-in.js":"f3ff","./pl":"8d57","./pl.js":"8d57","./pt":"f260","./pt-br":"d2d4","./pt-br.js":"d2d4","./pt.js":"f260","./ro":"972c","./ro.js":"972c","./ru":"957c","./ru.js":"957c","./sd":"6784","./sd.js":"6784","./se":"ffff","./se.js":"ffff","./si":"eda5","./si.js":"eda5","./sk":"7be6","./sk.js":"7be6","./sl":"8155","./sl.js":"8155","./sq":"c8f3","./sq.js":"c8f3","./sr":"cf1e","./sr-cyrl":"13e9","./sr-cyrl.js":"13e9","./sr.js":"cf1e","./ss":"52bd","./ss.js":"52bd","./sv":"5fbd","./sv.js":"5fbd","./sw":"74dc","./sw.js":"74dc","./ta":"3de5","./ta.js":"3de5","./te":"5cbb","./te.js":"5cbb","./tet":"576c","./tet.js":"576c","./tg":"3b1b","./tg.js":"3b1b","./th":"10e8","./th.js":"10e8","./tk":"5aff","./tk.js":"5aff","./tl-ph":"0f38","./tl-ph.js":"0f38","./tlh":"cf755","./tlh.js":"cf755","./tr":"0e81","./tr.js":"0e81","./tzl":"cf51","./tzl.js":"cf51","./tzm":"c109","./tzm-latn":"b53d","./tzm-latn.js":"b53d","./tzm.js":"c109","./ug-cn":"6117","./ug-cn.js":"6117","./uk":"ada2","./uk.js":"ada2","./ur":"5294","./ur.js":"5294","./uz":"2e8c","./uz-latn":"010e","./uz-latn.js":"010e","./uz.js":"2e8c","./vi":"2921","./vi.js":"2921","./x-pseudo":"fd7e","./x-pseudo.js":"fd7e","./yo":"7f33","./yo.js":"7f33","./zh-cn":"5c3a","./zh-cn.js":"5c3a","./zh-hk":"49ab","./zh-hk.js":"49ab","./zh-mo":"3a6c","./zh-mo.js":"3a6c","./zh-tw":"90ea","./zh-tw.js":"90ea"};function a(e){var t=n(e);return i(t)}function n(e){if(!i.o(s,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return s[e]}a.keys=function(){return Object.keys(s)},a.resolve=n,e.exports=a,a.id="4678"},"7c15":function(e,t,i){"use strict";i.d(t,"d",(function(){return r})),i.d(t,"c",(function(){return c})),i.d(t,"e",(function(){return o})),i.d(t,"b",(function(){return l})),i.d(t,"a",(function(){return d}));var s=i("bc3a"),a=i.n(s),n=i("fa7d");function r(e){var t=Object(n["g"])("api:recipe-detail",e);return void 0!==window.SHARE_UID&&(t+="?share="+window.SHARE_UID),a.a.get(t).then((function(e){return e.data})).catch((function(e){u(e,"There was an error loading a resource!","danger")}))}function c(e){var t=Object(n["g"])("api:importlog-detail",e);return a.a.get(t).then((function(e){return e.data})).catch((function(e){u(e,"There was an error loading a resource!","danger")}))}function o(e){return a.a.post(Object(n["g"])("api:cooklog-list"),e).then((function(e){Object(n["f"])("Saved","Cook Log entry saved!","success")})).catch((function(e){u(e,"There was an error creating a resource!","danger")}))}function l(e){return a.a.get(Object(n["g"])("api:recipebook-list")+"?query="+e).then((function(e){return e.data})).catch((function(e){u(e,"There was an error creating a resource!","danger")}))}function d(e){return a.a.post(Object(n["g"])("api:recipebookentry-list"),e).then((function(e){Object(n["f"])("Saved","Recipe Book entry saved!","success")})).catch((function(e){u(e,"There was an error creating a resource!","danger")}))}function u(e,t){if("response"in e){console.log(e.response);var i="statusText"in e.response?e.response.statusText:Object(n["e"])("Error");t+="\n\n"+JSON.stringify(e.response.data),Object(n["f"])(i,t,"danger")}else Object(n["f"])("Error",t,"danger"),console.log(e)}a.a.defaults.xsrfCookieName="csrftoken",a.a.defaults.xsrfHeaderName="X-CSRFTOKEN"},d76c:function(e,t,i){"use strict";var s=function(){var e=this,t=e.$createElement;e._self._c;return e._m(0)},a=[function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"row"},[i("div",{staticClass:"col",staticStyle:{"text-align":"center"}},[i("i",{staticClass:"fas fa-spinner fa-spin fa-10x"})])])}],n={name:"LoadingSpinner",props:{recipe:Object}},r=n,c=i("2877"),o=Object(c["a"])(r,s,a,!1,null,null,null);t["a"]=o.exports},fa7d:function(e,t,i){"use strict";i.d(t,"c",(function(){return n})),i.d(t,"f",(function(){return r})),i.d(t,"a",(function(){return c})),i.d(t,"e",(function(){return o})),i.d(t,"b",(function(){return l})),i.d(t,"g",(function(){return d})),i.d(t,"d",(function(){return p}));i("99af");var s=i("59e4");function a(e,t,i){var s=Math.floor(e),a=1,n=s+1,r=1;if(e!==s)while(a<=t&&r<=t){var c=(s+n)/(a+r);if(e===c){a+r<=t?(a+=r,s+=n,r=t+1):a>r?r=t+1:a=t+1;break}et&&(a=r,s=n),!i)return[0,s,a];var o=Math.floor(s/a);return[o,s-o*a,a]}var n={methods:{makeToast:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return r(e,t,i)}}};function r(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=new s["a"];a.$bvToast.toast(t,{title:e,variant:i,toaster:"b-toaster-top-center",solid:!0})}var c={methods:{_:function(e){return o(e)}}};function o(e){return window.gettext(e)}var l={methods:{resolveDjangoUrl:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return d(e,t)}}};function d(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return null!==t?window.Urls[e](t):window.Urls[e]()}function u(e){return window.USER_PREF[e]}function p(e,t){if(u("use_fractions")){var i="",s=a(e*t,9,!0);return s[0]>0&&(i+=s[0]),s[1]>0&&(i+=" ".concat(s[1],"⁄").concat(s[2],"")),i}return f(e*t)}function f(e){var t=u("user_fractions")?u("user_fractions"):2;return+(Math.round(e+"e+".concat(t))+"e-".concat(t))}}});
\ No newline at end of file
diff --git a/cookbook/templates/import_response.html b/cookbook/templates/import_response.html
new file mode 100644
index 00000000..e47ef734
--- /dev/null
+++ b/cookbook/templates/import_response.html
@@ -0,0 +1,34 @@
+{% extends "base.html" %}
+{% load render_bundle from webpack_loader %}
+{% load static %}
+{% load i18n %}
+{% load l10n %}
+
+{% block title %}{% trans 'Import' %}{% endblock %}
+
+{% block content %}
+
+
+
+
+
+
+{% endblock %}
+
+
+{% block script %}
+
+
+ {% if debug %}
+
+ {% else %}
+
+ {% endif %}
+
+
+
+ {% render_bundle 'chunk-vendors' %}
+ {% render_bundle 'import_response_view' %}
+{% endblock %}
\ No newline at end of file
diff --git a/cookbook/templates/no_groups_info.html b/cookbook/templates/no_groups_info.html
index 53b5f04c..1059e11a 100644
--- a/cookbook/templates/no_groups_info.html
+++ b/cookbook/templates/no_groups_info.html
@@ -2,7 +2,7 @@
{% load static %}
{% load i18n %}
-{% block title %}{% trans "Offline" %}{% endblock %}
+{% block title %}{% trans "No Permissions" %}{% endblock %}
{% block content %}
@@ -12,7 +12,12 @@
{% trans 'No Permissions' %}
- {% trans 'You do not have any groups and therefor cannot use this application. Please contact your administrator.' %}
+
+
+ {% trans 'You do not have any groups and therefor cannot use this application.' %}
+ {% trans 'Please contact your administrator.' %}
+
+
diff --git a/cookbook/templates/no_perm_info.html b/cookbook/templates/no_perm_info.html
new file mode 100644
index 00000000..a2cb50cc
--- /dev/null
+++ b/cookbook/templates/no_perm_info.html
@@ -0,0 +1,20 @@
+{% extends "base.html" %}
+{% load static %}
+{% load i18n %}
+
+{% block title %}{% trans "No Permission" %}{% endblock %}
+
+
+{% block content %}
+
+
+
+
{% trans 'No Permission' %}
+
+
+ {% trans 'You do not have the required permissions to view this page or perform this action.' %} {% trans 'Please contact your administrator.' %}
+
+