diff --git a/.env.template b/.env.template index eb798a1dd..9b09e8a38 100644 --- a/.env.template +++ b/.env.template @@ -86,8 +86,10 @@ GUNICORN_MEDIA=0 # EMAIL_HOST_PASSWORD= # EMAIL_USE_TLS=0 # EMAIL_USE_SSL=0 -# DEFAULT_FROM_EMAIL= # email sender address (default 'webmaster@localhost') -# ACCOUNT_EMAIL_SUBJECT_PREFIX= # prefix used for account related emails (default "[Tandoor Recipes] ") +# email sender address (default 'webmaster@localhost') +# DEFAULT_FROM_EMAIL= +# prefix used for account related emails (default "[Tandoor Recipes] ") +# ACCOUNT_EMAIL_SUBJECT_PREFIX= # allow authentication via reverse proxy (e.g. authelia), leave off if you dont know what you are doing # see docs for more information https://vabene1111.github.io/recipes/features/authentication/ diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 260a5e3bf..7e7723c90 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -3,7 +3,6 @@ on: push: branches: - master - - develop jobs: deploy: diff --git a/CONTRIBUTERS.md b/CONTRIBUTERS.md index 1a5c56ffd..0c0c46351 100644 --- a/CONTRIBUTERS.md +++ b/CONTRIBUTERS.md @@ -1,7 +1,10 @@ +# Contributers + Many thanks to everyone who contributed to this project! If you add something or help out feel free to add yourself to this list. ## Code/Features + Please have a look at the [list of pull requests](https://github.com/vabene1111/recipes/pulls) for a complete list of contributions. Below are some of the larger contributions made yet. @@ -20,46 +23,61 @@ Below are some of the larger contributions made yet. ## Translations -### Catalan +### Catalan + [Rubenix](https://www.transifex.com/user/profile/rubenix/) ### Dutch -[D0T1X](https://www.transifex.com/user/profile/D0T1X/) -[ikbenfrank](https://www.transifex.com/user/profile/ikbenfrank/) -[kampsj](https://www.transifex.com/user/profile/kampsj/) + +[D0T1X](https://www.transifex.com/user/profile/D0T1X/) +[ikbenfrank](https://www.transifex.com/user/profile/ikbenfrank/) +[kampsj](https://www.transifex.com/user/profile/kampsj/) ### French -[jt117](https://www.transifex.com/user/profile/jt117/) -[nerdinator](https://www.transifex.com/user/profile/nerdinator/) -[agaume](https://www.transifex.com/user/profile/agaume/) + +[jt117](https://www.transifex.com/user/profile/jt117/) +[nerdinator](https://www.transifex.com/user/profile/nerdinator/) +[agaume](https://www.transifex.com/user/profile/agaume/) ### German + [eTaurus](https://www.transifex.com/user/profile/eTaurus/) [l0c4lh057](https://www.transifex.com/user/profile/l0c4lh057/) -[hyperbit00] +[hyperbit00](https://github.com/hyperbit00) ### Hungarian + [igazka](https://www.transifex.com/user/profile/igazka/) ### Italian -[SK3LA](https://www.transifex.com/user/profile/SK3LA/) -[auanasgheps](https://www.transifex.com/user/profile/auanasgheps/) + +[SK3LA](https://www.transifex.com/user/profile/SK3LA/) +[auanasgheps](https://www.transifex.com/user/profile/auanasgheps/) ### Latvian + [melkypie](https://github.com/melkypie) ### Portuguese -[hds](https://www.transifex.com/user/profile/hds/) -[mlopezifu](https://www.transifex.com/user/profile/mlopezifu/) -[stormsz](https://www.transifex.com/user/profile/stormsz/) +[hds](https://www.transifex.com/user/profile/hds/) +[mlopezifu](https://www.transifex.com/user/profile/mlopezifu/) +[stormsz](https://www.transifex.com/user/profile/stormsz/) + +### Russian + +[amillerr](https://github.com/amillerr) ### Spanish -[albertocp](https://www.transifex.com/user/profile/albertocp/) -[alfa5](https://www.transifex.com/user/profile/alfa5/) -[mlopezifu](https://www.transifex.com/user/profile/mlopezifu/) -[sergio.laya](https://www.transifex.com/user/profile/sergio.laya/) +[albertocp](https://www.transifex.com/user/profile/albertocp/) +[alfa5](https://www.transifex.com/user/profile/alfa5/) +[mlopezifu](https://www.transifex.com/user/profile/mlopezifu/) +[sergio.laya](https://www.transifex.com/user/profile/sergio.laya/) + +### Swedish + +[makanz](https://github.com/makanz) ### Turkish diff --git a/cookbook/forms.py b/cookbook/forms.py index 4f966f00a..239b17012 100644 --- a/cookbook/forms.py +++ b/cookbook/forms.py @@ -49,7 +49,7 @@ class UserPreferenceForm(forms.ModelForm): fields = ( 'default_unit', 'use_fractions', 'use_kj', 'theme', 'nav_color', 'sticky_navbar', 'default_page', 'show_recent', 'search_style', - 'plan_share', 'ingredient_decimals', 'comments', + 'plan_share', 'ingredient_decimals', 'comments', 'left_handed', ) labels = { @@ -65,7 +65,8 @@ class UserPreferenceForm(forms.ModelForm): 'plan_share': _('Plan sharing'), 'ingredient_decimals': _('Ingredient decimal places'), 'shopping_auto_sync': _('Shopping list auto sync period'), - 'comments': _('Comments') + 'comments': _('Comments'), + 'left_handed': _('Left-handed mode') } help_texts = { @@ -89,6 +90,7 @@ class UserPreferenceForm(forms.ModelForm): 'sticky_navbar': _('Makes the navbar stick to the top of the page.'), # noqa: E501 'mealplan_autoadd_shopping': _('Automatically add meal plan ingredients to shopping list.'), 'mealplan_autoexclude_onhand': _('Exclude ingredients that are on hand.'), + 'left_handed': _('Will optimize the UI for use with your left hand.') } widgets = { diff --git a/cookbook/integration/nextcloud_cookbook.py b/cookbook/integration/nextcloud_cookbook.py index 912ad733a..c302aff50 100644 --- a/cookbook/integration/nextcloud_cookbook.py +++ b/cookbook/integration/nextcloud_cookbook.py @@ -43,7 +43,8 @@ class NextcloudCookbook(Integration): if 'keywords' in recipe_json: try: for x in recipe_json['keywords'].split(','): - recipe.keywords.add(Keyword.objects.get_or_create(space=self.request.space, name=x)[0]) + if x.strip() != '': + recipe.keywords.add(Keyword.objects.get_or_create(space=self.request.space, name=x)[0]) except Exception: pass diff --git a/cookbook/integration/recipesage.py b/cookbook/integration/recipesage.py index d5292456f..29bf0eb4e 100644 --- a/cookbook/integration/recipesage.py +++ b/cookbook/integration/recipesage.py @@ -77,14 +77,13 @@ class RecipeSage(Integration): } for s in recipe.steps.all(): - if s.type != Step.TIME: - data['recipeInstructions'].append({ - '@type': 'HowToStep', - 'text': s.instruction - }) + data['recipeInstructions'].append({ + '@type': 'HowToStep', + 'text': s.instruction + }) - for i in s.ingredients.all(): - data['recipeIngredient'].append(f'{float(i.amount)} {i.unit} {i.food}') + for i in s.ingredients.all(): + data['recipeIngredient'].append(f'{float(i.amount)} {i.unit} {i.food}') return data diff --git a/cookbook/integration/rezkonv.py b/cookbook/integration/rezkonv.py index 37beb4bc4..c0bfcc8ef 100644 --- a/cookbook/integration/rezkonv.py +++ b/cookbook/integration/rezkonv.py @@ -12,33 +12,33 @@ class RezKonv(Integration): ingredients = [] directions = [] - for line in file.replace('\r', '').split('\n'): + for line in file.replace('\r', '').replace('\n\n', '\n').split('\n'): if 'Titel:' in line: title = line.replace('Titel:', '').strip() if 'Kategorien:' in line: tags = line.replace('Kategorien:', '').strip() - if ingredient_mode and ('quelle' in line.lower() or 'source' in line.lower()): + if ingredient_mode and ( + 'quelle' in line.lower() or 'source' in line.lower() or (line == '' and len(ingredients) > 0)): ingredient_mode = False + direction_mode = True if ingredient_mode: if line != '' and '===' not in line and 'Zubereitung' not in line: ingredients.append(line.strip()) if direction_mode: if line.strip() != '' and line.strip() != '=====': directions.append(line.strip()) - if 'Zutaten:' in line: + if 'Zutaten:' in line or 'Ingredients' in line or 'Menge:' in line: ingredient_mode = True - if 'Zubereitung:' in line: - ingredient_mode = False - direction_mode = True - recipe = Recipe.objects.create(name=title, created_by=self.request.user, internal=True, space=self.request.space) + 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(), space=self.request.space) recipe.keywords.add(keyword) step = Step.objects.create( - instruction='\n'.join(directions) + '\n\n', space=self.request.space, + instruction=' \n'.join(directions) + '\n\n', space=self.request.space, ) ingredient_parser = IngredientParser(self.request, True) @@ -60,7 +60,8 @@ class RezKonv(Integration): def split_recipe_file(self, file): recipe_list = [] current_recipe = '' - encoding_list = ['windows-1250', 'latin-1'] #TODO build algorithm to try trough encodings and fail if none work, use for all importers + encoding_list = ['windows-1250', + 'latin-1'] # TODO build algorithm to try trough encodings and fail if none work, use for all importers encoding = 'windows-1250' for fl in file.readlines(): try: diff --git a/cookbook/integration/saffron.py b/cookbook/integration/saffron.py index 0bfc4fbb3..a7ec34f10 100644 --- a/cookbook/integration/saffron.py +++ b/cookbook/integration/saffron.py @@ -71,11 +71,10 @@ class Saffron(Integration): recipeInstructions = [] recipeIngredient = [] for s in recipe.steps.all(): - if s.type != Step.TIME: - recipeInstructions.append(s.instruction) + recipeInstructions.append(s.instruction) - for i in s.ingredients.all(): - recipeIngredient.append(f'{float(i.amount)} {i.unit} {i.food}') + for i in s.ingredients.all(): + recipeIngredient.append(f'{float(i.amount)} {i.unit} {i.food}') data += "Ingredients: \n" for ingredient in recipeIngredient: diff --git a/cookbook/locale/ca/LC_MESSAGES/django.po b/cookbook/locale/ca/LC_MESSAGES/django.po index 682a4338c..662a9d12d 100644 --- a/cookbook/locale/ca/LC_MESSAGES/django.po +++ b/cookbook/locale/ca/LC_MESSAGES/django.po @@ -8,21 +8,21 @@ # gimy16 , 2021 # Miguel Canteras , 2021 # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-02-11 08:52+0100\n" -"PO-Revision-Date: 2020-06-02 19:28+0000\n" -"Last-Translator: Miguel Canteras , 2021\n" -"Language-Team: Catalan (https://www.transifex.com/django-recipes/" -"teams/110507/ca/)\n" +"PO-Revision-Date: 2022-04-10 09:51+0000\n" +"Last-Translator: Rubens \n" +"Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.10.1\n" #: .\cookbook\filters.py:23 .\cookbook\templates\forms\ingredients.html:34 #: .\cookbook\templates\space.html:50 .\cookbook\templates\stats.html:28 @@ -31,66 +31,52 @@ msgid "Ingredients" msgstr "Ingredients" #: .\cookbook\forms.py:56 -#, fuzzy -#| msgid "Default" msgid "Default unit" -msgstr "Per defecte" +msgstr "Unitat per defecte" #: .\cookbook\forms.py:57 -#, fuzzy -#| msgid "System Information" msgid "Use fractions" -msgstr "Informació de Sistema" +msgstr "Usa fraccions" #: .\cookbook\forms.py:58 msgid "Use KJ" -msgstr "" +msgstr "Usa KJ" #: .\cookbook\forms.py:59 msgid "Theme" -msgstr "" +msgstr "Tema" #: .\cookbook\forms.py:60 msgid "Navbar color" -msgstr "" +msgstr "Color barra" #: .\cookbook\forms.py:61 msgid "Sticky navbar" -msgstr "" +msgstr "Barra Sticky" #: .\cookbook\forms.py:62 -#, fuzzy -#| msgid "Default" msgid "Default page" -msgstr "Per defecte" +msgstr "Pàgina per defecte" #: .\cookbook\forms.py:63 -#, fuzzy -#| msgid "Shopping Recipes" msgid "Show recent recipes" -msgstr "Llista de Compra de Receptes" +msgstr "Mostra Receptes Recents" #: .\cookbook\forms.py:64 -#, fuzzy -#| msgid "Search" msgid "Search style" -msgstr "Cerca" +msgstr "Estil de Cerca" #: .\cookbook\forms.py:65 msgid "Plan sharing" -msgstr "" +msgstr "Comparteix pla" #: .\cookbook\forms.py:66 -#, fuzzy -#| msgid "Ingredients" msgid "Ingredient decimal places" -msgstr "Ingredients" +msgstr "Decimals Ingredients" #: .\cookbook\forms.py:67 -#, fuzzy -#| msgid "Shopping list currently empty" msgid "Shopping list auto sync period" -msgstr "La llista de la compra està buida actualment" +msgstr "Auto-sincronització Llista compra" #: .\cookbook\forms.py:68 .\cookbook\templates\recipe_view.html:21 #: .\cookbook\templates\space.html:77 .\cookbook\templates\stats.html:47 @@ -103,7 +89,7 @@ msgid "" "try them out!" msgstr "" "Color de la barra de navegació superior. No tots els colors funcionen amb " -"tots els temes, només cal provar-los." +"tots els temes, cal provar-los!" #: .\cookbook\forms.py:74 msgid "Default Unit to be used when inserting a new ingredient into a recipe." @@ -121,23 +107,17 @@ msgstr "" #: .\cookbook\forms.py:78 msgid "Display nutritional energy amounts in joules instead of calories" -msgstr "" +msgstr "Mostra quantitats nutricionals d'energia en joules" #: .\cookbook\forms.py:79 -#, fuzzy -#| msgid "" -#| "Users with whom newly created meal plan/shopping list entries should be " -#| "shared by default." msgid "Users with whom newly created meal plans should be shared by default." msgstr "" -"Els usuaris que han creat elements d'un pla de menjars/llistat de compra " -"s'haurien de compartir per defecte." +"Els usuaris que han creat elements d'un pla de menjars s'haurien de " +"compartir per defecte." #: .\cookbook\forms.py:80 -#, fuzzy -#| msgid "Open Shopping List" msgid "Users with whom to share shopping lists." -msgstr "Llista de la Compra Oberta" +msgstr "Usuaris amb qui compartir llistes de la compra." #: .\cookbook\forms.py:82 msgid "Show recently viewed recipes on search page." @@ -166,15 +146,17 @@ msgstr "" #: .\cookbook\forms.py:89 msgid "Makes the navbar stick to the top of the page." -msgstr "" +msgstr "Barra de navegació s'enganxi a la part superior de la pàgina." #: .\cookbook\forms.py:90 .\cookbook\forms.py:496 msgid "Automatically add meal plan ingredients to shopping list." msgstr "" +"Afegeix automàticament els ingredients del pla d'àpats a la llista de la " +"compra." #: .\cookbook\forms.py:91 msgid "Exclude ingredients that are on hand." -msgstr "" +msgstr "Exclou els ingredients que hi ha a mà." #: .\cookbook\forms.py:108 msgid "" @@ -221,10 +203,12 @@ msgid "" "To prevent duplicates recipes with the same name as existing ones are " "ignored. Check this box to import everything." msgstr "" +"Per evitar duplicats, s'ignoren les receptes amb el mateix nom que les " +"existents. Marqueu aquesta casella per importar-ho tot." #: .\cookbook\forms.py:197 msgid "Add your comment: " -msgstr "Afegir el teu comentari:" +msgstr "Afegir el teu comentari: " #: .\cookbook\forms.py:212 msgid "Leave empty for dropbox and enter app password for nextcloud." @@ -250,7 +234,7 @@ msgstr "Emmagatzematge" #: .\cookbook\forms.py:268 msgid "Active" -msgstr "" +msgstr "Actiu" #: .\cookbook\forms.py:274 msgid "Search String" @@ -280,189 +264,207 @@ msgstr "" #: .\cookbook\forms.py:363 msgid "Maximum number of users for this space reached." -msgstr "" +msgstr "Nombre màxim d'usuaris assolit per a aquest espai." #: .\cookbook\forms.py:369 msgid "Email address already taken!" -msgstr "" +msgstr "Adreça de correu electrònic existent!" #: .\cookbook\forms.py:377 msgid "" "An email address is not required but if present the invite link will be sent " "to the user." msgstr "" +"No cal una adreça de correu electrònic, però si està present, s'enviarà " +"l'enllaç d'invitació a l'usuari." #: .\cookbook\forms.py:392 msgid "Name already taken." -msgstr "" +msgstr "Nom agafat." #: .\cookbook\forms.py:403 msgid "Accept Terms and Privacy" -msgstr "" +msgstr "Accepteu les condicions i la privadesa" #: .\cookbook\forms.py:435 msgid "" "Determines how fuzzy a search is if it uses trigram similarity matching (e." "g. low values mean more typos are ignored)." msgstr "" +"Determina com de difusa és una cerca si utilitza la concordança de similitud " +"de trigrama (p. ex., els valors baixos signifiquen que s'ignoren més errors " +"ortogràfics)." #: .\cookbook\forms.py:445 msgid "" "Select type method of search. Click here for " "full description of choices." msgstr "" +"Seleccioneu el tipus de mètode de cerca. Feu clic aquí per obtenir una descripció completa de les opcions." #: .\cookbook\forms.py:446 msgid "" "Use fuzzy matching on units, keywords and ingredients when editing and " "importing recipes." msgstr "" +"Utilitzeu la concordança difusa en unitats, paraules clau i ingredients quan " +"editeu i importeu receptes." #: .\cookbook\forms.py:448 msgid "" "Fields to search ignoring accents. Selecting this option can improve or " "degrade search quality depending on language" msgstr "" +"Camps per cercar ignorant els accents. La selecció d'aquesta opció pot " +"millorar o degradar la qualitat de la cerca en funció de l'idioma" #: .\cookbook\forms.py:450 msgid "" "Fields to search for partial matches. (e.g. searching for 'Pie' will return " "'pie' and 'piece' and 'soapie')" msgstr "" +"Camps per cercar coincidències parcials. (p. ex., en cercar \"Pastís\" " +"tornarà \"pastís\" i \"peça\" i \"sabó\")" #: .\cookbook\forms.py:452 msgid "" "Fields to search for beginning of word matches. (e.g. searching for 'sa' " "will return 'salad' and 'sandwich')" msgstr "" +"Camps per cercar l'inici de les coincidències de paraula. (p. ex., en cercar " +"\"sa\" es tornarà \"amanida\" i \"entrepà\")" #: .\cookbook\forms.py:454 msgid "" "Fields to 'fuzzy' search. (e.g. searching for 'recpie' will find 'recipe'.) " "Note: this option will conflict with 'web' and 'raw' methods of search." msgstr "" +"Camps per a la cerca \"difusa\". (per exemple, si cerqueu \"recpie\" " +"trobareu \"recepta\".) Nota: aquesta opció entrarà en conflicte amb els " +"mètodes de cerca \"web\" i \"cru\"." #: .\cookbook\forms.py:456 msgid "" "Fields to full text search. Note: 'web', 'phrase', and 'raw' search methods " "only function with fulltext fields." msgstr "" +"Camps per a la cerca de text complet. Nota: els mètodes de cerca \"web\", " +"\"frase\" i \"en brut\" només funcionen amb camps de text complet." #: .\cookbook\forms.py:460 -#, fuzzy -#| msgid "Search" msgid "Search Method" -msgstr "Cerca" +msgstr "Mètode de cerca" #: .\cookbook\forms.py:461 msgid "Fuzzy Lookups" -msgstr "" +msgstr "Cerques difuses" #: .\cookbook\forms.py:462 msgid "Ignore Accent" -msgstr "" +msgstr "Ignora Accents" #: .\cookbook\forms.py:463 msgid "Partial Match" -msgstr "" +msgstr "Cerca Parcial" #: .\cookbook\forms.py:464 msgid "Starts With" -msgstr "" +msgstr "Comença amb" #: .\cookbook\forms.py:465 -#, fuzzy -#| msgid "Search" msgid "Fuzzy Search" -msgstr "Cerca" +msgstr "Cerca Difusa" #: .\cookbook\forms.py:466 -#, fuzzy -#| msgid "Text" msgid "Full Text" -msgstr "Text" +msgstr "Text Sencer" #: .\cookbook\forms.py:491 msgid "" "Users will see all items you add to your shopping list. They must add you " "to see items on their list." msgstr "" +"Els usuaris veuran tots els articles que afegiu a la vostra llista de la " +"compra. Us han d'afegir per veure els elements de la seva llista." #: .\cookbook\forms.py:497 msgid "" "When adding a meal plan to the shopping list (manually or automatically), " "include all related recipes." msgstr "" +"Quan afegiu un pla d'àpats a la llista de la compra (de manera manual o " +"automàtica), inclou totes les receptes relacionades." #: .\cookbook\forms.py:498 msgid "" "When adding a meal plan to the shopping list (manually or automatically), " "exclude ingredients that are on hand." msgstr "" +"Quan afegiu un pla d'àpats a la llista de la compra (manual o automàticament)" +", excloeu els ingredients que teniu a mà." #: .\cookbook\forms.py:499 msgid "Default number of hours to delay a shopping list entry." msgstr "" +"Nombre d'hores per defecte per retardar l'entrada d'una llista de la compra." #: .\cookbook\forms.py:500 msgid "Filter shopping list to only include supermarket categories." msgstr "" +"Filtreu la llista de compres per incloure només categories de supermercats." #: .\cookbook\forms.py:501 msgid "Days of recent shopping list entries to display." -msgstr "" +msgstr "Dies de les entrades recents de la llista de la compra per mostrar." #: .\cookbook\forms.py:502 msgid "Mark food 'On Hand' when checked off shopping list." -msgstr "" +msgstr "Marca el menjar com a \"A mà\" quan marqueu la llista de la compra." #: .\cookbook\forms.py:503 msgid "Delimiter to use for CSV exports." -msgstr "" +msgstr "Delimitador per a les exportacions CSV." #: .\cookbook\forms.py:504 msgid "Prefix to add when copying list to the clipboard." -msgstr "" +msgstr "Prefix per afegir en copiar la llista al porta-retalls." #: .\cookbook\forms.py:508 -#, fuzzy -#| msgid "Shopping List" msgid "Share Shopping List" -msgstr "Llista de la Compra" +msgstr "Compartir Llista de la Compra" #: .\cookbook\forms.py:509 msgid "Autosync" -msgstr "" +msgstr "Autosync" #: .\cookbook\forms.py:510 msgid "Auto Add Meal Plan" -msgstr "" +msgstr "Afegeix automàticament un pla d'àpats" #: .\cookbook\forms.py:511 msgid "Exclude On Hand" -msgstr "" +msgstr "Exclou a mà" #: .\cookbook\forms.py:512 msgid "Include Related" -msgstr "" +msgstr "Incloure Relacionats" #: .\cookbook\forms.py:513 msgid "Default Delay Hours" -msgstr "" +msgstr "Hores de retard per defecte" #: .\cookbook\forms.py:514 -#, fuzzy -#| msgid "Select Supermarket" msgid "Filter to Supermarket" -msgstr "Seleccioni supermercat" +msgstr "Filtrar a supermercat" #: .\cookbook\forms.py:515 msgid "Recent Days" -msgstr "" +msgstr "Dies recents" #: .\cookbook\forms.py:516 msgid "CSV Delimiter" -msgstr "" +msgstr "Delimitador CSV" #: .\cookbook\forms.py:517 .\cookbook\templates\shopping_list.html:322 msgid "List Prefix" @@ -470,38 +472,36 @@ msgstr "Prefix de Llista" #: .\cookbook\forms.py:518 msgid "Auto On Hand" -msgstr "" +msgstr "Auto a mà" #: .\cookbook\forms.py:528 msgid "Reset Food Inheritance" -msgstr "" +msgstr "Restablir Herència Alimentària" #: .\cookbook\forms.py:529 msgid "Reset all food to inherit the fields configured." -msgstr "" +msgstr "Restableix tots els aliments per heretar els camps configurats." #: .\cookbook\forms.py:541 -#, fuzzy -#| msgid "Food that should be replaced." msgid "Fields on food that should be inherited by default." -msgstr "Menjar que s’hauria de substituir." +msgstr "Camps dels aliments que s'han d'heretar per defecte." #: .\cookbook\forms.py:542 -#, fuzzy -#| msgid "Show recently viewed recipes on search page." msgid "Show recipe counts on search filters" -msgstr "Mostra les receptes vistes recentment a la pàgina de cerca." +msgstr "Mostra el recompte de receptes als filtres de cerca" #: .\cookbook\helper\AllAuthCustomAdapter.py:36 msgid "" "In order to prevent spam, the requested email was not send. Please wait a " "few minutes and try again." msgstr "" +"Per evitar spam, no s'ha enviat el correu electrònic sol·licitat. Espereu " +"uns minuts i torneu-ho a provar." #: .\cookbook\helper\permission_helper.py:136 #: .\cookbook\helper\permission_helper.py:159 .\cookbook\views\views.py:148 msgid "You are not logged in and therefore cannot view this page!" -msgstr "No heu iniciat la sessió i, per tant, no podeu veure aquesta pàgina." +msgstr "No heu iniciat la sessió, no podeu veure aquesta pàgina." #: .\cookbook\helper\permission_helper.py:140 #: .\cookbook\helper\permission_helper.py:146 @@ -524,56 +524,53 @@ msgstr "" #: .\cookbook\helper\recipe_search.py:486 msgid "One of queryset or hash_key must be provided" -msgstr "" +msgstr "S'ha de proporcionar una de queryset o hash_key" #: .\cookbook\helper\shopping_helper.py:148 -#, fuzzy -#| msgid "You must provide at least a recipe or a title." msgid "You must supply a servings size" -msgstr "Has de proporcionar com a mínim una recepta o un títol." +msgstr "Heu de proporcionar una mida de porcions" #: .\cookbook\helper\template_helper.py:61 #: .\cookbook\helper\template_helper.py:63 msgid "Could not parse template code." -msgstr "" +msgstr "No s'ha pogut analitzar el codi de la plantilla." #: .\cookbook\integration\integration.py:213 msgid "" "Importer expected a .zip file. Did you choose the correct importer type for " "your data ?" msgstr "" +"S'esperava un fitxer .zip. Heu escollit el tipus d'importador correcte per a " +"les vostres dades?" #: .\cookbook\integration\integration.py:216 msgid "" "An unexpected error occurred during the import. Please make sure you have " "uploaded a valid file." msgstr "" +"S'ha produït un error inesperat durant la importació. Assegureu-vos que heu " +"penjat un fitxer vàlid." #: .\cookbook\integration\integration.py:221 msgid "The following recipes were ignored because they already existed:" -msgstr "" +msgstr "Les receptes següents s'han ignorat perquè ja existien:" #: .\cookbook\integration\integration.py:225 -#, fuzzy, python-format -#| msgid "Imported new recipe!" +#, python-format msgid "Imported %s recipes." -msgstr "Nova Recepta importada!" +msgstr "%s Receptes Importades." #: .\cookbook\integration\paprika.py:46 -#, fuzzy -#| msgid "Note" msgid "Notes" -msgstr "Nota" +msgstr "Notes" #: .\cookbook\integration\paprika.py:49 -#, fuzzy -#| msgid "Information" msgid "Nutritional Information" -msgstr "Informació" +msgstr "Informació Nutricional" #: .\cookbook\integration\paprika.py:53 .\cookbook\templates\url_import.html:42 msgid "Source" -msgstr "" +msgstr "Font" #: .\cookbook\integration\saffron.py:23 #: .\cookbook\templates\url_import.html:231 @@ -601,19 +598,21 @@ msgstr "Secció" #: .\cookbook\management\commands\rebuildindex.py:14 msgid "Rebuilds full text search index on Recipe" -msgstr "" +msgstr "Reconstrueix l'índex de cerca de text complet a Recipta" #: .\cookbook\management\commands\rebuildindex.py:18 msgid "Only Postgresql databases use full text search, no index to rebuild" msgstr "" +"Només les bases de dades Postgresql utilitzen la cerca de text complet, " +"sense índex per reconstruir" #: .\cookbook\management\commands\rebuildindex.py:29 msgid "Recipe index rebuild complete." -msgstr "" +msgstr "S'ha completat la reconstrucció de l'índex de receptes." #: .\cookbook\management\commands\rebuildindex.py:31 msgid "Recipe index rebuild failed." -msgstr "" +msgstr "Reconstrucció de l'índex de receptes fallida." #: .\cookbook\migrations\0047_auto_20200602_1133.py:14 msgid "Breakfast" @@ -636,6 +635,8 @@ msgid "" "Maximum file storage for space in MB. 0 for unlimited, -1 to disable file " "upload." msgstr "" +"Emmagatzematge màxim de fitxers per espai en MB. 0 per il·limitat, -1 per " +"desactivar la càrrega de fitxers." #: .\cookbook\models.py:300 .\cookbook\templates\search.html:7 #: .\cookbook\templates\shopping_list.html:53 @@ -668,80 +669,80 @@ msgstr "Nova" #: .\cookbook\models.py:513 msgid " is part of a recipe step and cannot be deleted" -msgstr "" +msgstr " forma part d'un pas de recepta i no es pot suprimir" #: .\cookbook\models.py:1065 .\cookbook\templates\search_info.html:28 msgid "Simple" -msgstr "" +msgstr "Simple" #: .\cookbook\models.py:1066 .\cookbook\templates\search_info.html:33 msgid "Phrase" -msgstr "" +msgstr "Frase" #: .\cookbook\models.py:1067 .\cookbook\templates\search_info.html:38 msgid "Web" -msgstr "" +msgstr "Web" #: .\cookbook\models.py:1068 .\cookbook\templates\search_info.html:47 msgid "Raw" -msgstr "" +msgstr "Cru" #: .\cookbook\models.py:1106 -#, fuzzy -#| msgid "Food" msgid "Food Alias" -msgstr "Menjar" +msgstr "Alies Menjar" #: .\cookbook\models.py:1106 -#, fuzzy -#| msgid "Units" msgid "Unit Alias" -msgstr "Unitats" +msgstr "Àlies Unitat" #: .\cookbook\models.py:1106 -#, fuzzy -#| msgid "Keywords" msgid "Keyword Alias" -msgstr "Paraules clau" +msgstr "Àlies Paraula clau" #: .\cookbook\serializer.py:180 msgid "A user is required" -msgstr "" +msgstr "Usuari requerit" #: .\cookbook\serializer.py:200 msgid "File uploads are not enabled for this Space." -msgstr "" +msgstr "Càrregues de fitxers no habilitades en aquest espai." #: .\cookbook\serializer.py:211 msgid "You have reached your file upload limit." -msgstr "" +msgstr "Límit de càrrega de fitxers Assolit." #: .\cookbook\serializer.py:977 msgid "Existing shopping list to update" -msgstr "" +msgstr "Llista de la compra existent a actualitzar" #: .\cookbook\serializer.py:979 msgid "" "List of ingredient IDs from the recipe to add, if not provided all " "ingredients will be added." msgstr "" +"Llista d'ingredients IDs de la recepta per afegir, si no es proporciona, " +"s'afegiran tots els ingredients." #: .\cookbook\serializer.py:980 msgid "" "Providing a list_recipe ID and servings of 0 will delete that shopping list." msgstr "" +"Proporcionant un list_recipe ID i porcions de 0, se suprimirà aquesta llista " +"de la compra." #: .\cookbook\serializer.py:988 msgid "Amount of food to add to the shopping list" -msgstr "" +msgstr "Quantitat de menjar per afegir a la llista de la compra" #: .\cookbook\serializer.py:989 msgid "ID of unit to use for the shopping list" -msgstr "" +msgstr "ID de la unitat a utilitzar per a la llista de la compra" #: .\cookbook\serializer.py:990 msgid "When set to true will delete all food from active shopping lists." msgstr "" +"Quan s'estableix a true, se suprimirà tots els aliments de les llistes de " +"compra actives." #: .\cookbook\tables.py:35 .\cookbook\templates\generic\edit_template.html:6 #: .\cookbook\templates\generic\edit_template.html:14 @@ -778,7 +779,7 @@ msgstr "Reporta Errada" #: .\cookbook\templates\account\email.html:6 #: .\cookbook\templates\account\email.html:17 msgid "E-mail Addresses" -msgstr "" +msgstr "Adreces Email" #: .\cookbook\templates\account\email.html:12 #: .\cookbook\templates\account\password_change.html:11 @@ -791,33 +792,31 @@ msgstr "Opcions" #: .\cookbook\templates\account\email.html:13 msgid "Email" -msgstr "" +msgstr "Email" #: .\cookbook\templates\account\email.html:19 msgid "The following e-mail addresses are associated with your account:" -msgstr "" +msgstr "Adreces de correu electrònic estan associades al vostre compte:" #: .\cookbook\templates\account\email.html:36 msgid "Verified" -msgstr "" +msgstr "Verificat" #: .\cookbook\templates\account\email.html:38 msgid "Unverified" -msgstr "" +msgstr "No Verificat" #: .\cookbook\templates\account\email.html:40 msgid "Primary" -msgstr "" +msgstr "Primari" #: .\cookbook\templates\account\email.html:47 -#, fuzzy -#| msgid "Make Header" msgid "Make Primary" -msgstr "Crea Capçalera" +msgstr "Crea Primari" #: .\cookbook\templates\account\email.html:49 msgid "Re-send Verification" -msgstr "" +msgstr "Reenvia Verificació" #: .\cookbook\templates\account\email.html:50 #: .\cookbook\templates\generic\delete_template.html:56 @@ -826,33 +825,34 @@ msgid "Remove" msgstr "Eliminar" #: .\cookbook\templates\account\email.html:58 -#, fuzzy -#| msgid "Warning" msgid "Warning:" -msgstr "Advertència" +msgstr "Advertència:" #: .\cookbook\templates\account\email.html:58 msgid "" "You currently do not have any e-mail address set up. You should really add " "an e-mail address so you can receive notifications, reset your password, etc." msgstr "" +"Actualment no teniu cap adreça d'email configurada. Hauríes d'afegir una " +"adreça perquè pugueu rebre notificacions, restablir la vostra contrasenya, " +"etc." #: .\cookbook\templates\account\email.html:64 msgid "Add E-mail Address" -msgstr "" +msgstr "Afegir Email" #: .\cookbook\templates\account\email.html:69 msgid "Add E-mail" -msgstr "" +msgstr "Afegir Email" #: .\cookbook\templates\account\email.html:79 msgid "Do you really want to remove the selected e-mail address?" -msgstr "" +msgstr "Eliminar l'adreça de correu electrònic seleccionada?" #: .\cookbook\templates\account\email_confirm.html:6 #: .\cookbook\templates\account\email_confirm.html:10 msgid "Confirm E-mail Address" -msgstr "" +msgstr "Confirma Email" #: .\cookbook\templates\account\email_confirm.html:16 #, python-format @@ -862,6 +862,10 @@ msgid "" "for user %(user_display)s\n" " ." msgstr "" +"Si us plau, confirma\n" +" %(email)s és una adreça " +"d'email per a l'usuari %(user_display)s\n" +" ." #: .\cookbook\templates\account\email_confirm.html:22 #: .\cookbook\templates\generic\delete_template.html:71 @@ -875,6 +879,9 @@ msgid "" " issue a new e-mail confirmation " "request." msgstr "" +"Enllaç de confirmació d'email ha caducat o no és vàlid. Si us plau\n" +" emet una nova sol·licitud de " +"confirmació d'email." #: .\cookbook\templates\account\login.html:8 .\cookbook\templates\base.html:289 msgid "Login" @@ -885,41 +892,41 @@ msgstr "Iniciar Sessió" #: .\cookbook\templates\account\signup.html:69 #: .\cookbook\templates\account\signup_closed.html:15 msgid "Sign In" -msgstr "" +msgstr "Inicia Sessió" #: .\cookbook\templates\account\login.html:34 #: .\cookbook\templates\socialaccount\signup.html:8 #: .\cookbook\templates\socialaccount\signup.html:57 msgid "Sign Up" -msgstr "" +msgstr "Donar Alta" #: .\cookbook\templates\account\login.html:39 #: .\cookbook\templates\account\login.html:41 #: .\cookbook\templates\account\password_reset.html:29 msgid "Reset My Password" -msgstr "" +msgstr "Restablir Clau" #: .\cookbook\templates\account\login.html:40 msgid "Lost your password?" -msgstr "" +msgstr "Clau Oblidada?" #: .\cookbook\templates\account\login.html:52 msgid "Social Login" -msgstr "" +msgstr "Accés Social" #: .\cookbook\templates\account\login.html:53 msgid "You can use any of the following providers to sign in." -msgstr "" +msgstr "Pots utilitzar els proveïdors següents per iniciar sessió." #: .\cookbook\templates\account\logout.html:5 #: .\cookbook\templates\account\logout.html:9 #: .\cookbook\templates\account\logout.html:18 msgid "Sign Out" -msgstr "" +msgstr "Tanca Sessió" #: .\cookbook\templates\account\logout.html:11 msgid "Are you sure you want to sign out?" -msgstr "" +msgstr "Segur que vols tancar sessió?" #: .\cookbook\templates\account\password_change.html:6 #: .\cookbook\templates\account\password_change.html:16 @@ -928,51 +935,45 @@ msgstr "" #: .\cookbook\templates\account\password_reset_from_key.html:13 #: .\cookbook\templates\account\password_reset_from_key_done.html:7 #: .\cookbook\templates\account\password_reset_from_key_done.html:13 -#, fuzzy -#| msgid "Changes saved!" msgid "Change Password" -msgstr "Canvis desats!" +msgstr "Canvia clau" #: .\cookbook\templates\account\password_change.html:12 #: .\cookbook\templates\account\password_set.html:12 #: .\cookbook\templates\settings.html:76 -#, fuzzy -#| msgid "Settings" msgid "Password" -msgstr "Opcions" +msgstr "Clau" #: .\cookbook\templates\account\password_change.html:22 msgid "Forgot Password?" -msgstr "" +msgstr "Clau Oblidada?" #: .\cookbook\templates\account\password_reset.html:7 #: .\cookbook\templates\account\password_reset.html:13 #: .\cookbook\templates\account\password_reset_done.html:7 #: .\cookbook\templates\account\password_reset_done.html:10 msgid "Password Reset" -msgstr "" +msgstr "Restablir Clau" #: .\cookbook\templates\account\password_reset.html:24 msgid "" "Forgotten your password? Enter your e-mail address below, and we'll send you " "an e-mail allowing you to reset it." -msgstr "" +msgstr "Clau Oblidada? Introduïu el email i rebràs un correu per restablir-la." #: .\cookbook\templates\account\password_reset.html:32 msgid "Password reset is disabled on this instance." -msgstr "" +msgstr "Deshabilitat el restabliment de Clau." #: .\cookbook\templates\account\password_reset_done.html:16 msgid "" "We have sent you an e-mail. Please contact us if you do not receive it " "within a few minutes." -msgstr "" +msgstr "Email enviat." #: .\cookbook\templates\account\password_reset_from_key.html:13 -#, fuzzy -#| msgid "API Token" msgid "Bad Token" -msgstr "Token API" +msgstr "Token incorrecte" #: .\cookbook\templates\account\password_reset_from_key.html:25 #, python-format @@ -982,53 +983,52 @@ msgid "" " Please request a new " "password reset." msgstr "" +"Enllaç de restabliment invàlid, possiblement perquè ja utilitzat.\n" +" Sol·liciteu un nou " +"restabliment de Clau." #: .\cookbook\templates\account\password_reset_from_key.html:33 -#, fuzzy -#| msgid "Changes saved!" msgid "change password" -msgstr "Canvis desats!" +msgstr "canvia clau" #: .\cookbook\templates\account\password_reset_from_key.html:36 #: .\cookbook\templates\account\password_reset_from_key_done.html:19 msgid "Your password is now changed." -msgstr "" +msgstr "Clau Canviada." #: .\cookbook\templates\account\password_set.html:6 #: .\cookbook\templates\account\password_set.html:16 #: .\cookbook\templates\account\password_set.html:21 msgid "Set Password" -msgstr "" +msgstr "Establir Clau" #: .\cookbook\templates\account\signup.html:6 msgid "Register" msgstr "Registre" #: .\cookbook\templates\account\signup.html:12 -#, fuzzy -#| msgid "Create your Account" msgid "Create an Account" msgstr "Crear Compte" #: .\cookbook\templates\account\signup.html:42 #: .\cookbook\templates\socialaccount\signup.html:33 msgid "I accept the follwoing" -msgstr "" +msgstr "Accepto el Següent" #: .\cookbook\templates\account\signup.html:45 #: .\cookbook\templates\socialaccount\signup.html:36 msgid "Terms and Conditions" -msgstr "" +msgstr "Termes i Condicions" #: .\cookbook\templates\account\signup.html:48 #: .\cookbook\templates\socialaccount\signup.html:39 msgid "and" -msgstr "" +msgstr "i" #: .\cookbook\templates\account\signup.html:52 #: .\cookbook\templates\socialaccount\signup.html:43 msgid "Privacy Policy" -msgstr "" +msgstr "Política de Privadesa" #: .\cookbook\templates\account\signup.html:65 msgid "Create User" @@ -1036,21 +1036,21 @@ msgstr "Crear Usuari" #: .\cookbook\templates\account\signup.html:69 msgid "Already have an account?" -msgstr "" +msgstr "Ja tens un Compte?" #: .\cookbook\templates\account\signup_closed.html:5 #: .\cookbook\templates\account\signup_closed.html:11 msgid "Sign Up Closed" -msgstr "" +msgstr "Inicis Tancats" #: .\cookbook\templates\account\signup_closed.html:13 msgid "We are sorry, but the sign up is currently closed." -msgstr "" +msgstr "Inicis de Sessió tancats temporalment." #: .\cookbook\templates\api_info.html:5 .\cookbook\templates\base.html:279 #: .\cookbook\templates\rest_framework\api.html:11 msgid "API Documentation" -msgstr "Documentació API " +msgstr "Documentació API" #: .\cookbook\templates\base.html:86 msgid "Shopping" @@ -1061,10 +1061,8 @@ msgid "Keyword" msgstr "Paraula Clau" #: .\cookbook\templates\base.html:125 .\cookbook\views\lists.py:114 -#, fuzzy -#| msgid "Food" msgid "Foods" -msgstr "Menjar" +msgstr "Menjars" #: .\cookbook\templates\base.html:137 #: .\cookbook\templates\forms\ingredients.html:24 @@ -1080,22 +1078,16 @@ msgid "Supermarket" msgstr "Supermercat" #: .\cookbook\templates\base.html:163 -#, fuzzy -#| msgid "Supermarket" msgid "Supermarket Category" -msgstr "Supermercat" +msgstr "Categoria de Supermercat" #: .\cookbook\templates\base.html:175 .\cookbook\views\lists.py:180 -#, fuzzy -#| msgid "Information" msgid "Automations" -msgstr "Informació" +msgstr "Automatitzacions" #: .\cookbook\templates\base.html:189 .\cookbook\views\lists.py:200 -#, fuzzy -#| msgid "File ID" msgid "Files" -msgstr "ID d'Arxiu" +msgstr "Arxius" #: .\cookbook\templates\base.html:201 msgid "Batch Edit" @@ -1131,10 +1123,8 @@ msgstr "Receptes Externes" #: .\cookbook\templates\base.html:262 .\cookbook\templates\space.html:8 #: .\cookbook\templates\space.html:20 .\cookbook\templates\space.html:150 -#, fuzzy -#| msgid "Settings" msgid "Space Settings" -msgstr "Opcions" +msgstr "Opcions d'espai" #: .\cookbook\templates\base.html:267 .\cookbook\templates\system.html:13 msgid "System" @@ -1154,7 +1144,7 @@ msgstr "GitHub" #: .\cookbook\templates\base.html:277 msgid "Translate Tandoor" -msgstr "" +msgstr "Tradueix Tandoor" #: .\cookbook\templates\base.html:281 msgid "API Browser" @@ -1162,7 +1152,7 @@ msgstr "Navegador API" #: .\cookbook\templates\base.html:284 msgid "Log out" -msgstr "" +msgstr "Tanca sessió" #: .\cookbook\templates\batch\edit.html:6 msgid "Batch edit Category" @@ -1176,7 +1166,7 @@ msgstr "Edició per lots de Receptes" msgid "Add the specified keywords to all recipes containing a word" msgstr "" "Afegiu les paraules clau especificades a totes les receptes que continguin " -"la paraula" +"una paraula" #: .\cookbook\templates\batch\monitor.html:6 .\cookbook\views\edit.py:82 msgid "Sync" @@ -1184,7 +1174,7 @@ msgstr "Sync" #: .\cookbook\templates\batch\monitor.html:10 msgid "Manage watched Folders" -msgstr "Gestiona les carpetes de descoibriment" +msgstr "Gestiona les carpetes de descobriment" #: .\cookbook\templates\batch\monitor.html:14 msgid "" @@ -1213,23 +1203,19 @@ msgstr "Desa" #: .\cookbook\templates\batch\monitor.html:21 msgid "Manage External Storage" -msgstr "" +msgstr "Gestiona Emmagatzematge Extern" #: .\cookbook\templates\batch\monitor.html:28 msgid "Sync Now!" msgstr "Sincronitza Ara!" #: .\cookbook\templates\batch\monitor.html:29 -#, fuzzy -#| msgid "Shopping Recipes" msgid "Show Recipes" -msgstr "Llista de Compra de Receptes" +msgstr "Mostra Receptes" #: .\cookbook\templates\batch\monitor.html:30 -#, fuzzy -#| msgid "Show Links" msgid "Show Log" -msgstr "Mostra Enllaços" +msgstr "Mostra Logs" #: .\cookbook\templates\batch\waiting.html:4 #: .\cookbook\templates\batch\waiting.html:10 @@ -1276,9 +1262,12 @@ msgid "" " " msgstr "" "\n" -"Es pot utilitzar el següent formulari si, de manera accidental dues (o més) " -"unitats o ingredients es van crear hi haurien de ser el mateix.\n" -"Combina dues unitats o ingredients i actualitza totes les receptes amb ells" +" Es pot utilitzar el següent formulari si, de manera accidental dues (" +"o més) unitats o ingredients es van crear haurien\n" +" de ser el mateix.\n" +" Combina dues unitats o ingredients i actualitza totes les receptes " +"amb ells\n" +" " #: .\cookbook\templates\forms\ingredients.html:26 msgid "Are you sure that you want to merge these two units?" @@ -1296,19 +1285,19 @@ msgstr "Estàs segur que vols combinar aquests dos ingredients?" #: .\cookbook\templates\generic\delete_template.html:21 #, python-format msgid "Are you sure you want to delete the %(title)s: %(object)s " -msgstr "Segur que vols esborrar el %(title)s:%(object)s" +msgstr "Segur que vols esborrar el %(title)s:%(object)s " #: .\cookbook\templates\generic\delete_template.html:26 msgid "Protected" -msgstr "" +msgstr "Protegit" #: .\cookbook\templates\generic\delete_template.html:41 msgid "Cascade" -msgstr "" +msgstr "Cascada" #: .\cookbook\templates\generic\delete_template.html:72 msgid "Cancel" -msgstr "" +msgstr "Cancel·la" #: .\cookbook\templates\generic\edit_template.html:32 msgid "View" @@ -1325,10 +1314,8 @@ msgstr "Llista" #: .\cookbook\templates\generic\list_template.html:33 #: .\cookbook\templates\shopping_list.html:33 -#, fuzzy -#| msgid "Open Shopping List" msgid "Try the new shopping list" -msgstr "Llista de la Compra Oberta" +msgstr "Prova la nova Llista de la Compra" #: .\cookbook\templates\generic\list_template.html:45 msgid "Filter" @@ -1403,12 +1390,14 @@ msgid "" " " msgstr "" "\n" -"Es camps contrasenya i testimoni s’emmagatzemen com a text pla a la base de dades.\n" -"Això és necessari perquè són necessaris per fer sol·licituds API, però també " -"augmenta el risc que\n" -"algú el robi
\n" -"Per limitar el possible dany de fitxes o comptes amb accés limitat." +" Es camps contrasenya i testimoni s’emmagatzemen com a text " +"pla a la base de dades.\n" +" Això és necessari perquè són necessaris per fer sol·licituds API, " +"però també augmenta el risc que\n" +" algú el robi
\n" +" Per limitar el possible dany de fitxes o comptes amb accés " +"limitat.\n" +" " #: .\cookbook\templates\index.html:29 msgid "Search recipe ..." @@ -1486,10 +1475,8 @@ msgstr "" #: .\cookbook\templates\markdown_info.html:57 #: .\cookbook\templates\markdown_info.html:73 -#, fuzzy -#| msgid "or by leaving a blank line inbetween." msgid "or by leaving a blank line in between." -msgstr "o bé deixant una línia en blanc entremig." +msgstr "o deixant una línia en blanc entremig." #: .\cookbook\templates\markdown_info.html:59 #: .\cookbook\templates\markdown_info.html:74 @@ -1511,16 +1498,12 @@ msgid "Lists" msgstr "Llistes" #: .\cookbook\templates\markdown_info.html:85 -#, fuzzy -#| msgid "" -#| "Lists can ordered or unorderd. It is important to leave a blank line " -#| "before the list!" msgid "" "Lists can ordered or unordered. It is important to leave a blank line " "before the list!" msgstr "" -"Les llistes es poden ordenar o desordenades. És important deixar una " -"línia en blanc abans de la llista!" +"Les llistes es poden ordenar o desordenar. És important deixar una línia " +"en blanc abans de la llista!" #: .\cookbook\templates\markdown_info.html:87 #: .\cookbook\templates\markdown_info.html:108 @@ -1578,6 +1561,10 @@ msgid "" "editor like this one." msgstr "" +"Les taules de rebaixes són difícils de crear a mà. Es recomana utilitzar un " +"editor de taules com\n" +"aquest." #: .\cookbook\templates\markdown_info.html:155 #: .\cookbook\templates\markdown_info.html:157 @@ -1598,7 +1585,7 @@ msgstr "Cel·la" #: .\cookbook\templates\meal_plan_entry.html:6 msgid "Meal Plan View" -msgstr "Vista del pla de menjars" +msgstr "Vista Pla de menjars" #: .\cookbook\templates\meal_plan_entry.html:18 msgid "Created by" @@ -1616,7 +1603,7 @@ msgstr "Darrera cocció" #: .\cookbook\templates\meal_plan_entry.html:50 msgid "Never cooked before." -msgstr "No cuinat abans" +msgstr "No cuinat abans." #: .\cookbook\templates\meal_plan_entry.html:76 msgid "Other meals on this day" @@ -1625,91 +1612,92 @@ msgstr "Altres menjars en aquest dia" #: .\cookbook\templates\no_groups_info.html:5 #: .\cookbook\templates\no_groups_info.html:12 msgid "No Permissions" -msgstr "" +msgstr "Sense Permisos" #: .\cookbook\templates\no_groups_info.html:17 -#, fuzzy -#| msgid "You are not logged in and therefore cannot view this page!" msgid "You do not have any groups and therefor cannot use this application." -msgstr "No heu iniciat la sessió i, per tant, no podeu veure aquesta pàgina." +msgstr "No teniu cap grup i, per tant, no podeu utilitzar aquesta aplicació." #: .\cookbook\templates\no_groups_info.html:18 #: .\cookbook\templates\no_perm_info.html:15 msgid "Please contact your administrator." -msgstr "" +msgstr "Contacta amb l'administrador." #: .\cookbook\templates\no_perm_info.html:5 #: .\cookbook\templates\no_perm_info.html:12 msgid "No Permission" -msgstr "" +msgstr "Sense Permisos" #: .\cookbook\templates\no_perm_info.html:15 -#, fuzzy -#| msgid "You do not have the required permissions to perform this action!" msgid "" "You do not have the required permissions to view this page or perform this " "action." -msgstr "No teniu els permisos necessaris per dur a terme aquesta acció!" +msgstr "No teniu els permisos necessaris per dur a terme aquesta acció." #: .\cookbook\templates\no_space_info.html:6 #: .\cookbook\templates\no_space_info.html:13 msgid "No Space" -msgstr "" +msgstr "Sense Espai" #: .\cookbook\templates\no_space_info.html:17 msgid "" "Recipes, foods, shopping lists and more are organized in spaces of one or " "more people." msgstr "" +"Receptes, aliments, llistes de la compra i més s'organitzen en espais d'una " +"o més persones." #: .\cookbook\templates\no_space_info.html:18 msgid "" "You can either be invited into an existing space or create your own one." -msgstr "" +msgstr "Pots ser convidat a un espai existent o crear el teu propi." #: .\cookbook\templates\no_space_info.html:31 #: .\cookbook\templates\no_space_info.html:40 msgid "Join Space" -msgstr "" +msgstr "uneix-te a l'espai" #: .\cookbook\templates\no_space_info.html:34 msgid "Join an existing space." -msgstr "" +msgstr "Unir-se a espai existent." #: .\cookbook\templates\no_space_info.html:35 msgid "" "To join an existing space either enter your invite token or click on the " "invite link the space owner send you." msgstr "" +"Per unir-vos a un espai existent, introduïu el vostre token d'invitació o " +"feu clic a l'enllaç d'invitació." #: .\cookbook\templates\no_space_info.html:48 #: .\cookbook\templates\no_space_info.html:56 -#, fuzzy -#| msgid "Create User" msgid "Create Space" -msgstr "Crear Usuari" +msgstr "Crear Espai" #: .\cookbook\templates\no_space_info.html:51 msgid "Create your own recipe space." -msgstr "" +msgstr "Crear el propi espai de recepta." #: .\cookbook\templates\no_space_info.html:52 msgid "Start your own recipe space and invite other users to it." -msgstr "" +msgstr "Inicieu el vostre propi espai de receptes i convideu altres usuaris." #: .\cookbook\templates\offline.html:6 msgid "Offline" -msgstr "" +msgstr "Desconnectat" #: .\cookbook\templates\offline.html:19 msgid "You are currently offline!" -msgstr "" +msgstr "Estàs desconnectat!" #: .\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 "" +"Les receptes a continuació estan disponibles per a la visualització fora de " +"línia perquè les heu vist recentment. Tingueu en compte que les dades poden " +"estar obsoletes." #: .\cookbook\templates\recipe_view.html:26 msgid "by" @@ -1746,15 +1734,13 @@ msgstr "Registre de Cuines" #: .\cookbook\templates\rest_framework\api.html:5 msgid "Recipe Home" -msgstr "Receptes" +msgstr "Receptari" #: .\cookbook\templates\search_info.html:5 #: .\cookbook\templates\search_info.html:9 #: .\cookbook\templates\settings.html:172 -#, fuzzy -#| msgid "Search String" msgid "Search Settings" -msgstr "Cerca Cadena" +msgstr "Cerca Opcions" #: .\cookbook\templates\search_info.html:10 msgid "" @@ -1769,10 +1755,8 @@ msgid "" msgstr "" #: .\cookbook\templates\search_info.html:19 -#, fuzzy -#| msgid "Search" msgid "Search Methods" -msgstr "Cerca" +msgstr "Mètodes de Cerca" #: .\cookbook\templates\search_info.html:23 msgid "" @@ -1854,10 +1838,8 @@ msgid "" msgstr "" #: .\cookbook\templates\search_info.html:69 -#, fuzzy -#| msgid "Search Recipe" msgid "Search Fields" -msgstr "Cerca Recepta" +msgstr "Camps de Cerca" #: .\cookbook\templates\search_info.html:73 msgid "" @@ -1895,10 +1877,8 @@ msgid "" msgstr "" #: .\cookbook\templates\search_info.html:95 -#, fuzzy -#| msgid "Search" msgid "Search Index" -msgstr "Cerca" +msgstr "Índex de Cerca" #: .\cookbook\templates\search_info.html:99 msgid "" @@ -1919,48 +1899,36 @@ msgstr "Compte" #: .\cookbook\templates\settings.html:35 msgid "Preferences" -msgstr "" +msgstr "Preferències" #: .\cookbook\templates\settings.html:42 -#, fuzzy -#| msgid "Settings" msgid "API-Settings" -msgstr "Opcions" +msgstr "Opcions API" #: .\cookbook\templates\settings.html:49 -#, fuzzy -#| msgid "Search String" msgid "Search-Settings" -msgstr "Cerca Cadena" +msgstr "Cerca-Opcions" #: .\cookbook\templates\settings.html:56 -#, fuzzy -#| msgid "Search String" msgid "Shopping-Settings" -msgstr "Cerca Cadena" +msgstr "Compres-Opcions" #: .\cookbook\templates\settings.html:65 -#, fuzzy -#| msgid "Settings" msgid "Name Settings" -msgstr "Opcions" +msgstr "Noms Opcions" #: .\cookbook\templates\settings.html:73 -#, fuzzy -#| msgid "Settings" msgid "Account Settings" -msgstr "Opcions" +msgstr "Opcions de Compte" #: .\cookbook\templates\settings.html:75 -#, fuzzy -#| msgid "Settings" msgid "Emails" -msgstr "Opcions" +msgstr "Emails" #: .\cookbook\templates\settings.html:78 #: .\cookbook\templates\socialaccount\connections.html:11 msgid "Social" -msgstr "" +msgstr "Social" #: .\cookbook\templates\settings.html:91 msgid "Language" @@ -1999,22 +1967,28 @@ msgid "" "There are many options to configure the search depending on your personal " "preferences." msgstr "" +"Hi ha moltes opcions per configurar la cerca en funció de les vostres " +"preferències personals." #: .\cookbook\templates\settings.html:174 msgid "" "Usually you do not need to configure any of them and can just stick " "with either the default or one of the following presets." msgstr "" +"Normalment no cal configurar cap d'ells i només podeu quedar-vos amb " +"el valor predeterminat o amb un dels següents valors predefinits." #: .\cookbook\templates\settings.html:175 msgid "" "If you do want to configure the search you can read about the different " "options here." msgstr "" +"Si vols configurar la cerca, pots llegir les diferents opcions aquí." #: .\cookbook\templates\settings.html:180 msgid "Fuzzy" -msgstr "" +msgstr "Difusa" #: .\cookbook\templates\settings.html:181 msgid "" @@ -2022,35 +1996,37 @@ msgid "" "return more results than needed to make sure you find what you are looking " "for." msgstr "" +"Trobeu el que necessiteu encara que la cerca o la recepta contingui errors " +"d'ortografia. Pot ser que tornin més resultats dels necessaris." #: .\cookbook\templates\settings.html:182 msgid "This is the default behavior" -msgstr "" +msgstr "Comportament per Defecte" #: .\cookbook\templates\settings.html:183 #: .\cookbook\templates\settings.html:191 msgid "Apply" -msgstr "" +msgstr "Aplicar" #: .\cookbook\templates\settings.html:188 msgid "Precise" -msgstr "" +msgstr "Precisar" #: .\cookbook\templates\settings.html:189 msgid "" "Allows fine control over search results but might not return results if too " "many spelling mistakes are made." msgstr "" +"Permet un control minuciós sobre els resultats de la cerca, però és possible " +"que no es tornin si hi han errors ortogràfics." #: .\cookbook\templates\settings.html:190 msgid "Perfect for large Databases" -msgstr "" +msgstr "Perfecte per BBDD Grans" #: .\cookbook\templates\settings.html:207 -#, fuzzy -#| msgid "Shopping List" msgid "Shopping Settings" -msgstr "Llista de la Compra" +msgstr "Opcions de Compra" #: .\cookbook\templates\setup.html:6 .\cookbook\templates\system.html:5 msgid "Cookbook Setup" @@ -2087,15 +2063,15 @@ msgstr "Llista de Compra de Receptes" #: .\cookbook\templates\shopping_list.html:74 msgid "No recipes selected" -msgstr "Recepta no sel·leccionada" +msgstr "Receptes no seleccionades" #: .\cookbook\templates\shopping_list.html:131 msgid "Entry Mode" -msgstr "" +msgstr "Mode entrada" #: .\cookbook\templates\shopping_list.html:139 msgid "Add Entry" -msgstr "" +msgstr "Afegir Entrada" #: .\cookbook\templates\shopping_list.html:152 msgid "Amount" @@ -2120,22 +2096,19 @@ msgstr "Selecciona Menjar" #: .\cookbook\templates\shopping_list.html:218 msgid "Select Supermarket" -msgstr "Seleccioni supermercat" +msgstr "Selecciona Supermercat" #: .\cookbook\templates\shopping_list.html:242 msgid "Select User" -msgstr "Selecciona usuari" +msgstr "Selecciona Usuari" #: .\cookbook\templates\shopping_list.html:258 msgid "Finished" msgstr "Acabat" #: .\cookbook\templates\shopping_list.html:267 -#, fuzzy -#| msgid "You are offline, shopping list might not syncronize." msgid "You are offline, shopping list might not synchronize." -msgstr "" -"Estàs fora de línia, és possible que la llista de compra no es sincronitzi." +msgstr "Fora de línia, és possible que la llista de compra no es sincronitzi." #: .\cookbook\templates\shopping_list.html:318 msgid "Copy/Export" @@ -2144,7 +2117,7 @@ msgstr "Copia/Exporta" #: .\cookbook\templates\socialaccount\connections.html:4 #: .\cookbook\templates\socialaccount\connections.html:15 msgid "Account Connections" -msgstr "" +msgstr "Connexions de Compte" #: .\cookbook\templates\socialaccount\connections.html:18 msgid "" @@ -2155,15 +2128,15 @@ msgstr "" #: .\cookbook\templates\socialaccount\connections.html:52 msgid "" "You currently have no social network accounts connected to this account." -msgstr "" +msgstr "Sense xarxes socials connectades al compte." #: .\cookbook\templates\socialaccount\connections.html:55 msgid "Add a 3rd Party Account" -msgstr "" +msgstr "Afegir Compte de tercers" #: .\cookbook\templates\socialaccount\signup.html:5 msgid "Signup" -msgstr "" +msgstr "Registre" #: .\cookbook\templates\socialaccount\signup.html:10 #, python-format @@ -2188,15 +2161,15 @@ msgstr "" #: .\cookbook\templates\socialaccount\snippets\provider_list.html:119 #: .\cookbook\templates\socialaccount\snippets\provider_list.html:127 msgid "Sign in using" -msgstr "" +msgstr "Registrar emprant" #: .\cookbook\templates\space.html:25 msgid "Space:" -msgstr "" +msgstr "Espai:" #: .\cookbook\templates\space.html:26 msgid "Manage Subscription" -msgstr "" +msgstr "Administra Subscripció" #: .\cookbook\templates\space.html:34 .\cookbook\templates\stats.html:19 msgid "Number of objects" @@ -2220,57 +2193,47 @@ msgstr "Receptes Internes" #: .\cookbook\templates\space.html:89 msgid "Members" -msgstr "" +msgstr "Membres" #: .\cookbook\templates\space.html:95 -#, fuzzy -#| msgid "Invite Links" msgid "Invite User" -msgstr "Enllaços Invitació" +msgstr "Convida Usuari" #: .\cookbook\templates\space.html:107 msgid "User" -msgstr "" +msgstr "Usuari" #: .\cookbook\templates\space.html:108 msgid "Groups" -msgstr "" +msgstr "Grups" #: .\cookbook\templates\space.html:119 -#, fuzzy -#| msgid "Admin" msgid "admin" msgstr "Admin" #: .\cookbook\templates\space.html:120 msgid "user" -msgstr "" +msgstr "usuari" #: .\cookbook\templates\space.html:121 msgid "guest" -msgstr "" +msgstr "convidat" #: .\cookbook\templates\space.html:122 -#, fuzzy -#| msgid "Remove" msgid "remove" -msgstr "Eliminar" +msgstr "elimina" #: .\cookbook\templates\space.html:126 msgid "Update" -msgstr "" +msgstr "Actualitza" #: .\cookbook\templates\space.html:130 -#, fuzzy -#| msgid "You cannot edit this storage!" msgid "You cannot edit yourself." -msgstr "No podeu editar aquest emmagatzematge." +msgstr "No et pot editar a tu mateix." #: .\cookbook\templates\space.html:136 -#, fuzzy -#| msgid "There are no recipes in this book yet." msgid "There are no members in your space yet!" -msgstr "Encara no hi ha receptes en aquest llibre." +msgstr "No hi ha membres en aquest espai!" #: .\cookbook\templates\space.html:143 .\cookbook\templates\system.html:21 #: .\cookbook\views\lists.py:85 @@ -2304,15 +2267,16 @@ msgid "" " " msgstr "" "\n" -"Django Recipes és una aplicació de programari lliure de codi obert. Es pot " -"trobar a\n" -" GitHub.\n" -" Els registres de canvis es poden trobar aquí." +" Django Recipes és una aplicació de programari lliure de codi obert. " +"Es pot trobar a\n" +" GitHub.\n" +" Els registres de canvis es poden trobar aquí.\n" +" " #: .\cookbook\templates\system.html:48 msgid "Media Serving" -msgstr "Publicació de Suports" +msgstr "Servei Mitjans" #: .\cookbook\templates\system.html:49 .\cookbook\templates\system.html:64 #: .\cookbook\templates\system.html:80 @@ -2371,7 +2335,7 @@ msgstr "" #: .\cookbook\templates\system.html:78 msgid "Debug Mode" -msgstr "Mode de depuració" +msgstr "Mode Depuració" #: .\cookbook\templates\system.html:82 msgid "" @@ -2416,31 +2380,27 @@ msgstr "Importació d’URL" #: .\cookbook\templates\url_import.html:33 msgid "Drag me to your bookmarks to import recipes from anywhere" -msgstr "" +msgstr "Arrossega als marcadors per importar receptes des de qualsevol lloc" #: .\cookbook\templates\url_import.html:34 -#, fuzzy -#| msgid "Bookmark saved!" msgid "Bookmark Me!" -msgstr "Marcador desat!" +msgstr "Marca'm!" #: .\cookbook\templates\url_import.html:38 msgid "URL" -msgstr "" +msgstr "URL" #: .\cookbook\templates\url_import.html:40 msgid "App" -msgstr "" +msgstr "App" #: .\cookbook\templates\url_import.html:44 msgid "Text" msgstr "Text" #: .\cookbook\templates\url_import.html:46 -#, fuzzy -#| msgid "File ID" msgid "File" -msgstr "ID d'Arxiu" +msgstr "Arxiu" #: .\cookbook\templates\url_import.html:64 msgid "Enter website URL" @@ -2449,20 +2409,20 @@ msgstr "Introduïu l'URL del lloc web" #: .\cookbook\templates\url_import.html:104 msgid "Select recipe files to import or drop them here..." msgstr "" +"Seleccioneu fitxers de receptes per importar-los o deixeu-los anar aquí..." #: .\cookbook\templates\url_import.html:125 msgid "Paste json or html source here to load recipe." -msgstr "" +msgstr "Enganxa json o html aquí per carregar la recepta." #: .\cookbook\templates\url_import.html:153 -#, fuzzy -#| msgid "View Recipe" msgid "Preview Recipe Data" -msgstr "Veure Recepta" +msgstr "Previsualitzar dades Recepta" #: .\cookbook\templates\url_import.html:154 msgid "Drag recipe attributes from the right into the appropriate box below." msgstr "" +"Arrossega atributs de la recepta des de la dreta al quadre corresponent." #: .\cookbook\templates\url_import.html:163 #: .\cookbook\templates\url_import.html:180 @@ -2475,43 +2435,39 @@ msgstr "" #: .\cookbook\templates\url_import.html:307 #: .\cookbook\templates\url_import.html:358 msgid "Clear Contents" -msgstr "" +msgstr "Neteja comentaris" #: .\cookbook\templates\url_import.html:165 msgid "Text dragged here will be appended to the name." -msgstr "" +msgstr "Text arrossegat aquí s'afegirà al nom." #: .\cookbook\templates\url_import.html:178 msgid "Description" -msgstr "" +msgstr "Descripció" #: .\cookbook\templates\url_import.html:182 msgid "Text dragged here will be appended to the description." -msgstr "" +msgstr "Text arrossegat aquí s'afegirà a la descripció." #: .\cookbook\templates\url_import.html:199 msgid "Keywords dragged here will be appended to current list" -msgstr "" +msgstr "Paraules clau arrossegades aquí s'afegiran a la llista actual" #: .\cookbook\templates\url_import.html:214 msgid "Image" -msgstr "" +msgstr "Imatge" #: .\cookbook\templates\url_import.html:246 -#, fuzzy -#| msgid "Preparation Time" msgid "Prep Time" -msgstr "Temps de preparació" +msgstr "Temps preparació" #: .\cookbook\templates\url_import.html:261 -#, fuzzy -#| msgid "Time" msgid "Cook Time" -msgstr "Temps" +msgstr "Temps Cocció" #: .\cookbook\templates\url_import.html:282 msgid "Ingredients dragged here will be appended to current list." -msgstr "" +msgstr "Ingredients arrossegats aquí s'afegiran a la llista actual." #: .\cookbook\templates\url_import.html:304 #: .\cookbook\templates\url_import.html:579 @@ -2522,54 +2478,48 @@ msgstr "Instruccions" msgid "" "Recipe instructions dragged here will be appended to current instructions." msgstr "" +"Instruccions de la recepta arrossegades aquí s'afegiran a les instruccions " +"actuals." #: .\cookbook\templates\url_import.html:332 -#, fuzzy -#| msgid "Discovered Recipes" msgid "Discovered Attributes" -msgstr "Receptes Descobertes" +msgstr "Atributs Descoberts" #: .\cookbook\templates\url_import.html:334 msgid "" "Drag recipe attributes from below into the appropriate box on the left. " "Click any node to display its full properties." msgstr "" +"Arrossega atributs de la recepta des de sota al quadre corresponent de " +"l'esquerra. Feu clic a qualsevol node per mostrar les seves propietats." #: .\cookbook\templates\url_import.html:351 -#, fuzzy -#| msgid "Show as header" msgid "Show Blank Field" -msgstr "Mostra com a capçalera" +msgstr "Mostra Camp en Blanc" #: .\cookbook\templates\url_import.html:356 msgid "Blank Field" -msgstr "" +msgstr "Camp en Blanc" #: .\cookbook\templates\url_import.html:360 msgid "Items dragged to Blank Field will be appended." -msgstr "" +msgstr "S'afegiran Elements arrossegats al camp en blanc." #: .\cookbook\templates\url_import.html:407 -#, fuzzy -#| msgid "Delete Step" msgid "Delete Text" -msgstr "Esborra Pas" +msgstr "Esborra Text" #: .\cookbook\templates\url_import.html:420 -#, fuzzy -#| msgid "Delete Recipe" msgid "Delete image" -msgstr "Esborra Recepta" +msgstr "Esborra Imatge" #: .\cookbook\templates\url_import.html:436 msgid "Recipe Name" msgstr "Nom de la Recepta" #: .\cookbook\templates\url_import.html:440 -#, fuzzy -#| msgid "Recipe Markup Specification" msgid "Recipe Description" -msgstr "Especificació de marcatge de receptes" +msgstr "Descripció de Recepta" #: .\cookbook\templates\url_import.html:504 #: .\cookbook\templates\url_import.html:536 @@ -2582,10 +2532,8 @@ msgid "Note" msgstr "Nota" #: .\cookbook\templates\url_import.html:597 -#, fuzzy -#| msgid "All Keywords" msgid "Add Keyword" -msgstr "Totes les paraules clau" +msgstr "Afegir paraula clau" #: .\cookbook\templates\url_import.html:610 msgid "All Keywords" @@ -2631,106 +2579,112 @@ msgid "Recipe Markup Specification" msgstr "Especificació de marcatge de receptes" #: .\cookbook\views\api.py:88 .\cookbook\views\api.py:174 -#, fuzzy -#| msgid "Parameter filter_list incorrectly formatted" msgid "Parameter updated_at incorrectly formatted" -msgstr "El paràmetre filter_list té un format incorrecte" +msgstr "El paràmetre updated_at té un format incorrecte" #: .\cookbook\views\api.py:194 .\cookbook\views\api.py:295 #, python-brace-format msgid "No {self.basename} with id {pk} exists" -msgstr "" +msgstr "No {self.basename} amb id {pk} existeix" #: .\cookbook\views\api.py:198 msgid "Cannot merge with the same object!" -msgstr "" +msgstr "No es pot fusionar amb el mateix objecte!" #: .\cookbook\views\api.py:205 #, python-brace-format msgid "No {self.basename} with id {target} exists" -msgstr "" +msgstr "No {self.basename} amb id {target} existeix" #: .\cookbook\views\api.py:210 msgid "Cannot merge with child object!" -msgstr "" +msgstr "No es pot combinar amb l'objecte fill!" #: .\cookbook\views\api.py:243 #, python-brace-format msgid "{source.name} was merged successfully with {target.name}" -msgstr "" +msgstr "{source.name} s'ha fusionat amb {target.name}" #: .\cookbook\views\api.py:248 #, python-brace-format msgid "An error occurred attempting to merge {source.name} with {target.name}" -msgstr "" +msgstr "Error en intentar combinar {source.name} amb {target.name}" #: .\cookbook\views\api.py:304 #, python-brace-format msgid "{child.name} was moved successfully to the root." -msgstr "" +msgstr "{child.name} s'ha mogut correctament a l'arrel." #: .\cookbook\views\api.py:307 .\cookbook\views\api.py:325 msgid "An error occurred attempting to move " -msgstr "" +msgstr "Error a l'intentar moure " #: .\cookbook\views\api.py:310 msgid "Cannot move an object to itself!" -msgstr "" +msgstr "No es pot moure un objecte cap a si mateix!" #: .\cookbook\views\api.py:316 #, python-brace-format msgid "No {self.basename} with id {parent} exists" -msgstr "" +msgstr "No existeix {self.basename} amb identificador {parent}" #: .\cookbook\views\api.py:322 #, python-brace-format msgid "{child.name} was moved successfully to parent {parent.name}" -msgstr "" +msgstr "{child.name} s'ha mogut correctament al pare {parent.name}" #: .\cookbook\views\api.py:474 #, python-brace-format msgid "{obj.name} was removed from the shopping list." -msgstr "" +msgstr "{obj.name} eliminat de la llista de la compra." #: .\cookbook\views\api.py:479 .\cookbook\views\api.py:729 #: .\cookbook\views\api.py:742 #, python-brace-format msgid "{obj.name} was added to the shopping list." -msgstr "" +msgstr "Afegit {obj.name} a la llista de la compra." #: .\cookbook\views\api.py:591 msgid "ID of recipe a step is part of. For multiple repeat parameter." -msgstr "" +msgstr "ID de recepta forma part d'un pas. Per a múltiples repeteix paràmetre." #: .\cookbook\views\api.py:592 msgid "Query string matched (fuzzy) against object name." -msgstr "" +msgstr "La cadena de consulta coincideix (difusa) amb el nom de l'objecte." #: .\cookbook\views\api.py:635 msgid "" "Query string matched (fuzzy) against recipe name. In the future also " "fulltext search." msgstr "" +"Cadena de consulta coincideix (difusa) amb el nom de la recepta. En el futur " +"també cerca text complet." #: .\cookbook\views\api.py:636 msgid "ID of keyword a recipe should have. For multiple repeat parameter." msgstr "" +"ID de la paraula clau que hauria de tenir una recepta. Per a múltiples " +"repeteix paràmetre." #: .\cookbook\views\api.py:637 msgid "ID of food a recipe should have. For multiple repeat parameter." msgstr "" +"ID d'aliments que ha de tenir una recepta. Per a múltiples repeteix " +"paràmetres." #: .\cookbook\views\api.py:638 msgid "ID of unit a recipe should have." -msgstr "" +msgstr "ID d'unitat que hauria de tenir una recepta." #: .\cookbook\views\api.py:639 msgid "Rating a recipe should have. [0 - 5]" -msgstr "" +msgstr "Valoració que hauria de tenir una recepta. [0 - 5]" #: .\cookbook\views\api.py:640 msgid "ID of book a recipe should be in. For multiple repeat parameter." msgstr "" +"ID del llibre hauria d'haver-hi en una recepta. Per al paràmetre de " +"repetició múltiple." #: .\cookbook\views\api.py:641 msgid "" @@ -2782,6 +2736,7 @@ msgstr "" #: .\cookbook\views\edit.py:129 .\cookbook\views\new.py:95 msgid "This feature is not yet available in the hosted version of tandoor!" msgstr "" +"Aquesta funció encara no està disponible a la versió allotjada de tandoor!" #: .\cookbook\views\api.py:971 msgid "Sync successful!" @@ -2793,7 +2748,7 @@ msgstr "Error de sincronització amb emmagatzematge" #: .\cookbook\views\api.py:1055 msgid "Nothing to do." -msgstr "" +msgstr "Res a fer." #: .\cookbook\views\api.py:1070 msgid "The requested site provided malformed data and cannot be read." @@ -2814,29 +2769,27 @@ msgstr "" #: .\cookbook\views\api.py:1109 msgid "Connection Refused." -msgstr "" +msgstr "Connexió Refusada." #: .\cookbook\views\api.py:1118 -#, fuzzy -#| msgid "The requested page could not be found." msgid "No usable data could be found." -msgstr "No s'ha pogut trobar la pàgina sol·licitada." +msgstr "No s'han trobat dades utilitzables." #: .\cookbook\views\api.py:1134 msgid "I couldn't find anything to do." -msgstr "" +msgstr "No es pot trobar res a fer." #: .\cookbook\views\data.py:34 .\cookbook\views\data.py:129 #: .\cookbook\views\edit.py:49 .\cookbook\views\import_export.py:81 #: .\cookbook\views\new.py:33 msgid "You have reached the maximum number of recipes for your space." -msgstr "" +msgstr "Has arribat al nombre màxim de receptes per al vostre espai." #: .\cookbook\views\data.py:38 .\cookbook\views\data.py:133 #: .\cookbook\views\edit.py:53 .\cookbook\views\import_export.py:85 #: .\cookbook\views\new.py:37 msgid "You have more users than allowed in your space." -msgstr "" +msgstr "Tens més usuaris dels permesos al teu espai." #: .\cookbook\views\data.py:111 #, python-format @@ -2896,13 +2849,15 @@ msgstr "Error al desar canvis!" #: .\cookbook\views\import_export.py:107 .\cookbook\views\import_export.py:143 msgid "Importing is not implemented for this provider" -msgstr "" +msgstr "Importació no implementada en aquest proveïdor" #: .\cookbook\views\import_export.py:130 msgid "" "The PDF Exporter is not enabled on this instance as it is still in an " "experimental state." msgstr "" +"L'exportador de PDF no està habilitat en aquesta instància perquè encara es " +"troba en un estat experimental." #: .\cookbook\views\lists.py:25 msgid "Import Log" @@ -2917,26 +2872,20 @@ msgid "Shopping Lists" msgstr "Llistes de Compra" #: .\cookbook\views\lists.py:148 -#, fuzzy -#| msgid "Supermarket" msgid "Supermarkets" -msgstr "Supermercat" +msgstr "Supermercats" #: .\cookbook\views\lists.py:164 -#, fuzzy -#| msgid "Shopping Recipes" msgid "Shopping Categories" -msgstr "Llista de Compra de Receptes" +msgstr "Categories de Compres" #: .\cookbook\views\lists.py:217 msgid "Steps" msgstr "Passos" #: .\cookbook\views\lists.py:232 -#, fuzzy -#| msgid "Shopping List" msgid "New Shopping List" -msgstr "Llista de la Compra" +msgstr "Nova Llista de Compra" #: .\cookbook\views\new.py:126 msgid "Imported new recipe!" @@ -2948,57 +2897,62 @@ msgstr "S'ha produït un error en importar la recepta!" #: .\cookbook\views\new.py:212 msgid "Hello" -msgstr "" +msgstr "Hola" #: .\cookbook\views\new.py:212 msgid "You have been invited by " -msgstr "" +msgstr "Convidat per " #: .\cookbook\views\new.py:213 msgid " to join their Tandoor Recipes space " -msgstr "" +msgstr " per unir-se al seu espai de Receptes " #: .\cookbook\views\new.py:214 msgid "Click the following link to activate your account: " -msgstr "" +msgstr "Click per activar el teu compte: " #: .\cookbook\views\new.py:215 msgid "" "If the link does not work use the following code to manually join the space: " msgstr "" +"Si l'enllaç no funciona, utilitzeu el codi següent per unir-vos a l'espai: " #: .\cookbook\views\new.py:216 msgid "The invitation is valid until " -msgstr "" +msgstr "Invitació vàlida fins " #: .\cookbook\views\new.py:217 msgid "" "Tandoor Recipes is an Open Source recipe manager. Check it out on GitHub " msgstr "" +"Tandoor Recipes és un gestor de receptes de codi obert. Comprova a GitHub " #: .\cookbook\views\new.py:220 msgid "Tandoor Recipes Invite" -msgstr "" +msgstr "Invitació de receptes Tandoor" #: .\cookbook\views\new.py:227 msgid "Invite link successfully send to user." -msgstr "" +msgstr "Enllaç d'invitació enviat a l'usuari." #: .\cookbook\views\new.py:230 msgid "" "You have send to many emails, please share the link manually or wait a few " "hours." msgstr "" +"Masses emails enviats, compartiu l'enllaç manualment o espereu unes hores." #: .\cookbook\views\new.py:232 msgid "Email could not be sent to user. Please share the link manually." -msgstr "" +msgstr "No es pot enviar email a l'usuari. Comparteix l'enllaç manualment." #: .\cookbook\views\views.py:126 msgid "" "You have successfully created your own recipe space. Start by adding some " "recipes or invite other people to join you." msgstr "" +"Espai de Receptes creat correctament. Comenceu afegint algunes receptes o " +"convida altres persones a unir-se." #: .\cookbook\views\views.py:174 msgid "You do not have the required permissions to perform this action!" @@ -3010,21 +2964,23 @@ msgstr "Comentari Desat!" #: .\cookbook\views\views.py:276 msgid "This feature is not available in the demo version!" -msgstr "" +msgstr "Funció no està disponible a la versió de demostració!" #: .\cookbook\views\views.py:335 msgid "You must select at least one field to search!" -msgstr "" +msgstr "Heu de seleccionar almenys un camp per cercar!" #: .\cookbook\views\views.py:340 msgid "" "To use this search method you must select at least one full text search " "field!" msgstr "" +"Per utilitzar aquest mètode de cerca, heu de seleccionar almenys un camp de " +"cerca de text complet!" #: .\cookbook\views\views.py:344 msgid "Fuzzy search is not compatible with this search method!" -msgstr "" +msgstr "Cerca difusa no és compatible amb aquest mètode de cerca!" #: .\cookbook\views\views.py:473 msgid "" @@ -3049,14 +3005,12 @@ msgid "Malformed Invite Link supplied!" msgstr "S'ha proporcionat un enllaç d'invitació mal format." #: .\cookbook\views\views.py:519 -#, fuzzy -#| msgid "You are not logged in and therefore cannot view this page!" msgid "You are already member of a space and therefore cannot join this one." -msgstr "No heu iniciat la sessió i, per tant, no podeu veure aquesta pàgina." +msgstr "Ja ets membre d'un espai, no pots unir-te a aquest." #: .\cookbook\views\views.py:530 msgid "Successfully joined space." -msgstr "" +msgstr "Unit correctament a l'espai." #: .\cookbook\views\views.py:536 msgid "Invite Link not valid or already used!" @@ -3067,12 +3021,16 @@ msgid "" "Reporting share links is not enabled for this instance. Please notify the " "page administrator to report problems." msgstr "" +"Notificació d'enllaços compartits no activada en aquesta instància. Aviseu " +"l'administrador per informar dels problemes." #: .\cookbook\views\views.py:623 msgid "" "Recipe sharing link has been disabled! For additional information please " "contact the page administrator." msgstr "" +"L'enllaç per compartir receptes s'ha desactivat! Per obtenir informació " +"addicional, poseu-vos en contacte amb l'administrador." #~ msgid "Time" #~ msgstr "Temps" diff --git a/cookbook/locale/de/LC_MESSAGES/django.po b/cookbook/locale/de/LC_MESSAGES/django.po index dbe9ba5ff..0f9c05294 100644 --- a/cookbook/locale/de/LC_MESSAGES/django.po +++ b/cookbook/locale/de/LC_MESSAGES/django.po @@ -1469,10 +1469,10 @@ msgid "" msgstr "" "\n" " 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.\n" " " diff --git a/cookbook/locale/nl/LC_MESSAGES/django.po b/cookbook/locale/nl/LC_MESSAGES/django.po index f4b15112a..c21ef24a4 100644 --- a/cookbook/locale/nl/LC_MESSAGES/django.po +++ b/cookbook/locale/nl/LC_MESSAGES/django.po @@ -13,10 +13,10 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-02-11 08:52+0100\n" -"PO-Revision-Date: 2022-02-09 01:31+0000\n" +"PO-Revision-Date: 2022-04-05 10:31+0000\n" "Last-Translator: Jesse \n" -"Language-Team: Dutch \n" +"Language-Team: Dutch \n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -291,10 +291,6 @@ msgstr "" "(lage waarden betekenen bijvoorbeeld dat meer typefouten genegeerd worden)." #: .\cookbook\forms.py:445 -#, fuzzy -#| msgid "" -#| "Select type method of search. Click here " -#| "for full desciption of choices." msgid "" "Select type method of search. Click here for " "full description of choices." @@ -368,8 +364,6 @@ msgid "Partial Match" msgstr "Gedeeltelijke overeenkomst" #: .\cookbook\forms.py:464 -#, fuzzy -#| msgid "Starts Wtih" msgid "Starts With" msgstr "Begint met" @@ -529,10 +523,8 @@ msgid "One of queryset or hash_key must be provided" msgstr "Er moet een queryset of hash_key opgegeven worden" #: .\cookbook\helper\shopping_helper.py:148 -#, fuzzy -#| msgid "You must supply a created_by" msgid "You must supply a servings size" -msgstr "Je moet een created_by aanleveren" +msgstr "Je moet een portiegrootte aanleveren" #: .\cookbook\helper\template_helper.py:61 #: .\cookbook\helper\template_helper.py:63 @@ -604,11 +596,9 @@ msgid "Rebuilds full text search index on Recipe" msgstr "Herbouwt de volledige tekst zoekindex van Recept" #: .\cookbook\management\commands\rebuildindex.py:18 -#, fuzzy -#| msgid "Only Postgress databases use full text search, no index to rebuild" msgid "Only Postgresql databases use full text search, no index to rebuild" msgstr "" -"Alleen Postgress databases gebruiken volledige tekst zoekmethoden, geen " +"Alleen Postgresql databases gebruiken volledige tekst zoekmethoden, geen " "index aanwezig om te herbouwen" #: .\cookbook\management\commands\rebuildindex.py:29 @@ -732,18 +722,22 @@ msgstr "" msgid "" "Providing a list_recipe ID and servings of 0 will delete that shopping list." msgstr "" +"Als je een list_recipe ID en portiegrootte van 0 opgeeft wordt dat " +"boodschappenlijstje verwijderd." #: .\cookbook\serializer.py:988 msgid "Amount of food to add to the shopping list" -msgstr "" +msgstr "Hoeveelheid eten om aan het boodschappenlijstje toe te voegen" #: .\cookbook\serializer.py:989 msgid "ID of unit to use for the shopping list" -msgstr "" +msgstr "ID of eenheid om te gebruik voor het boodschappenlijstje" #: .\cookbook\serializer.py:990 msgid "When set to true will delete all food from active shopping lists." msgstr "" +"Wanneer ingesteld op waar, wordt al het voedsel van actieve " +"boodschappenlijstjes verwijderd." #: .\cookbook\tables.py:35 .\cookbook\templates\generic\edit_template.html:6 #: .\cookbook\templates\generic\edit_template.html:14 @@ -1480,8 +1474,6 @@ msgstr "" #: .\cookbook\templates\markdown_info.html:57 #: .\cookbook\templates\markdown_info.html:73 -#, fuzzy -#| msgid "or by leaving a blank line inbetween." msgid "or by leaving a blank line in between." msgstr "of door een witregel te gebruiken." @@ -1505,10 +1497,6 @@ msgid "Lists" msgstr "Lijsten" #: .\cookbook\templates\markdown_info.html:85 -#, fuzzy -#| msgid "" -#| "Lists can ordered or unorderd. It is important to leave a blank line " -#| "before the list!" msgid "" "Lists can ordered or unordered. It is important to leave a blank line " "before the list!" @@ -1806,15 +1794,6 @@ msgstr "" " " #: .\cookbook\templates\search_info.html:29 -#, fuzzy -#| msgid "" -#| " \n" -#| " Simple searches ignore punctuation and common words such as " -#| "'the', 'a', 'and'. And will treat seperate words as required.\n" -#| " Searching for 'apple or flour' will return any recipe that " -#| "includes both 'apple' and 'flour' anywhere in the fields that have been " -#| "selected for a full text search.\n" -#| " " msgid "" " \n" " Simple searches ignore punctuation and common words such as " @@ -1851,23 +1830,6 @@ msgstr "" " " #: .\cookbook\templates\search_info.html:39 -#, fuzzy -#| msgid "" -#| " \n" -#| " Web searches simulate functionality found on many web search " -#| "sites supporting special syntax.\n" -#| " Placing quotes around several words will convert those words " -#| "into a phrase.\n" -#| " 'or' is recongized as searching for the word (or phrase) " -#| "immediately before 'or' OR the word (or phrase) directly after.\n" -#| " '-' is recognized as searching for recipes that do not " -#| "include the word (or phrase) that comes immediately after. \n" -#| " For example searching for 'apple pie' or cherry -butter will " -#| "return any recipe that includes the phrase 'apple pie' or the word " -#| "'cherry' \n" -#| " in any field included in the full text search but exclude any " -#| "recipe that has the word 'butter' in any field included.\n" -#| " " msgid "" " \n" " Web searches simulate functionality found on many web search " @@ -1913,19 +1875,6 @@ msgstr "" " " #: .\cookbook\templates\search_info.html:59 -#, fuzzy -#| msgid "" -#| " \n" -#| " Another approach to searching that also requires Postgresql " -#| "is fuzzy search or trigram similarity. A trigram is a group of three " -#| "consecutive characters.\n" -#| " For example searching for 'apple' will create x trigrams " -#| "'app', 'ppl', 'ple' and will create a score of how closely words match " -#| "the generated trigrams.\n" -#| " One benefit of searching trigams is that a search for " -#| "'sandwich' will find mispelled words such as 'sandwhich' that would be " -#| "missed by other methods.\n" -#| " " msgid "" " \n" " Another approach to searching that also requires Postgresql is " @@ -2061,10 +2010,8 @@ msgid "Search-Settings" msgstr "Zoek instellingen" #: .\cookbook\templates\settings.html:56 -#, fuzzy -#| msgid "Search-Settings" msgid "Shopping-Settings" -msgstr "Zoek instellingen" +msgstr "Boodschappen instellingen" #: .\cookbook\templates\settings.html:65 msgid "Name Settings" @@ -2180,10 +2127,8 @@ msgid "Perfect for large Databases" msgstr "Perfect voor grote databases" #: .\cookbook\templates\settings.html:207 -#, fuzzy -#| msgid "Shopping List" msgid "Shopping Settings" -msgstr "Boodschappenlijst" +msgstr "Boodschappen instellingen" #: .\cookbook\templates\setup.html:6 .\cookbook\templates\system.html:5 msgid "Cookbook Setup" @@ -2263,8 +2208,6 @@ msgid "Finished" msgstr "Afgerond" #: .\cookbook\templates\shopping_list.html:267 -#, fuzzy -#| msgid "You are offline, shopping list might not syncronize." msgid "You are offline, shopping list might not synchronize." msgstr "Je bent offline, de boodschappenlijst synchroniseert mogelijk niet." @@ -2804,93 +2747,113 @@ msgstr "{child.name} is succesvol verplaatst naar {parent.name}" #: .\cookbook\views\api.py:474 #, python-brace-format msgid "{obj.name} was removed from the shopping list." -msgstr "" +msgstr "{obj.name} is verwijderd van het boodschappenlijstje." #: .\cookbook\views\api.py:479 .\cookbook\views\api.py:729 #: .\cookbook\views\api.py:742 #, python-brace-format msgid "{obj.name} was added to the shopping list." -msgstr "" +msgstr "{obj.name} is toegevoegd aan het boodschappenlijstje." #: .\cookbook\views\api.py:591 msgid "ID of recipe a step is part of. For multiple repeat parameter." msgstr "" +"ID van het recept waar de stap onderdeel van is. Herhaal parameter voor " +"meerdere." #: .\cookbook\views\api.py:592 msgid "Query string matched (fuzzy) against object name." -msgstr "" +msgstr "Zoekterm komt overeen (fuzzy) met object naam." #: .\cookbook\views\api.py:635 msgid "" "Query string matched (fuzzy) against recipe name. In the future also " "fulltext search." msgstr "" +"Zoekterm komt overeen (fuzzy) met recept naam. In de toekomst wordt zoeken " +"op volledige tekst ondersteund." #: .\cookbook\views\api.py:636 msgid "ID of keyword a recipe should have. For multiple repeat parameter." msgstr "" +"ID van etiket dat een recept moet hebben. Herhaal parameter voor meerdere." #: .\cookbook\views\api.py:637 msgid "ID of food a recipe should have. For multiple repeat parameter." msgstr "" +"ID van ingrediënt dat een recept moet hebben. Herhaal parameter voor " +"meerdere." #: .\cookbook\views\api.py:638 msgid "ID of unit a recipe should have." -msgstr "" +msgstr "ID van eenheid dat een recept moet hebben." #: .\cookbook\views\api.py:639 msgid "Rating a recipe should have. [0 - 5]" -msgstr "" +msgstr "Waardering die een recept moet hebben. [0 - 5]" #: .\cookbook\views\api.py:640 msgid "ID of book a recipe should be in. For multiple repeat parameter." msgstr "" +"ID van boek dat een recept moet hebben. Herhaal parameter voor meerdere." #: .\cookbook\views\api.py:641 msgid "" "If recipe should have all (AND=false) or any (OR=true) of the " "provided keywords." msgstr "" +"Als een recept alle moet hebben (AND=onwaar) of sommige (OR=waar) van " +"de gegeven zoektermen." #: .\cookbook\views\api.py:642 msgid "" "If recipe should have all (AND=false) or any (OR=true) of the " "provided foods." msgstr "" +"Als een recept alle moet hebben (AND=onwaar) of sommige (OR=waar) van " +"de gegeven ingrediënten." #: .\cookbook\views\api.py:643 msgid "" "If recipe should be in all (AND=false) or any (OR=true) of the " "provided books." msgstr "" +"Als een recept alle moet hebben (AND=onwaar) of sommige (OR=waar) van " +"de gegeven boeken." #: .\cookbook\views\api.py:644 msgid "If only internal recipes should be returned. [true/false]" msgstr "" +"Wanneer alleen interne recepten gevonden moeten worden. [waar/onwaar]" #: .\cookbook\views\api.py:645 msgid "Returns the results in randomized order. [true/false]" -msgstr "" +msgstr "Geeft de resultaten in willekeurige volgorde weer. [waar/onwaar]" #: .\cookbook\views\api.py:646 msgid "Returns new results first in search results. [true/false]" -msgstr "" +msgstr "Geeft nieuwe resultaten eerst weer. [waar/onwaar]" #: .\cookbook\views\api.py:784 msgid "" "Returns the shopping list entry with a primary key of id. Multiple values " "allowed." msgstr "" +"Geeft het boodschappenlijstje item met een primaire sleutel van id. " +"Meerdere waarden toegestaan." #: .\cookbook\views\api.py:787 msgid "" "Filter shopping list entries on checked. [true, false, both, recent]
- recent includes unchecked items and recently completed items." msgstr "" +"Filter boodschappenlijstjes op aangevinkt. [waar,onwaar,beide,recent]" +"
- recent bevat niet aangevinkte en recent voltooide items." #: .\cookbook\views\api.py:789 msgid "Returns the shopping list entries sorted by supermarket category order." msgstr "" +"Geeft items op boodschappenlijstjes gesorteerd per supermarktcategorie weer." #: .\cookbook\views\api.py:949 .\cookbook\views\data.py:42 #: .\cookbook\views\edit.py:129 .\cookbook\views\new.py:95 @@ -2929,11 +2892,9 @@ msgstr "" #: .\cookbook\views\api.py:1109 msgid "Connection Refused." -msgstr "" +msgstr "Verbinding geweigerd." #: .\cookbook\views\api.py:1118 -#, fuzzy -#| msgid "No useable data could be found." msgid "No usable data could be found." msgstr "Er is geen bruikbare data gevonden." @@ -3017,6 +2978,8 @@ msgid "" "The PDF Exporter is not enabled on this instance as it is still in an " "experimental state." msgstr "" +"De PDF exporter is niet ingeschakeld op deze instantie gezien het in een " +"experimentele staat is." #: .\cookbook\views\lists.py:25 msgid "Import Log" diff --git a/cookbook/locale/ru/LC_MESSAGES/django.po b/cookbook/locale/ru/LC_MESSAGES/django.po index 595faa5f7..844b78bae 100644 --- a/cookbook/locale/ru/LC_MESSAGES/django.po +++ b/cookbook/locale/ru/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-09-13 22:40+0200\n" -"PO-Revision-Date: 2021-10-23 09:06+0000\n" -"Last-Translator: rustam \n" +"PO-Revision-Date: 2022-04-07 19:32+0000\n" +"Last-Translator: Artem Aksenov \n" "Language-Team: Russian \n" "Language: ru\n" @@ -18,14 +18,14 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.8\n" +"X-Generator: Weblate 4.10.1\n" #: .\cookbook\filters.py:23 .\cookbook\templates\base.html:125 #: .\cookbook\templates\forms\ingredients.html:34 #: .\cookbook\templates\space.html:43 .\cookbook\templates\stats.html:28 #: .\cookbook\templates\url_import.html:270 msgid "Ingredients" -msgstr "ингредиенты" +msgstr "Ингредиенты" #: .\cookbook\forms.py:50 msgid "" @@ -95,14 +95,14 @@ msgstr "" #: .\cookbook\forms.py:103 .\cookbook\forms.py:334 #: .\cookbook\templates\url_import.html:154 msgid "Name" -msgstr "Имя" +msgstr "Название" #: .\cookbook\forms.py:104 .\cookbook\forms.py:335 #: .\cookbook\templates\space.html:39 .\cookbook\templates\stats.html:24 #: .\cookbook\templates\url_import.html:188 #: .\cookbook\templates\url_import.html:573 .\cookbook\views\lists.py:112 msgid "Keywords" -msgstr "Ключевые поля" +msgstr "Ключевые слова" #: .\cookbook\forms.py:105 msgid "Preparation time in minutes" diff --git a/cookbook/locale/sv/LC_MESSAGES/django.po b/cookbook/locale/sv/LC_MESSAGES/django.po index 2145ba6f8..5137fb7eb 100644 --- a/cookbook/locale/sv/LC_MESSAGES/django.po +++ b/cookbook/locale/sv/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-04-11 15:09+0200\n" -"PO-Revision-Date: 2022-03-29 20:36+0000\n" -"Last-Translator: Marcus Alsterfjord \n" +"PO-Revision-Date: 2022-04-17 00:31+0000\n" +"Last-Translator: Oskar Stenberg <01ste02@gmail.com>\n" "Language-Team: Swedish \n" "Language: sv\n" @@ -44,7 +44,7 @@ msgid "" "to fractions automatically)" msgstr "" "Aktiverar stöd för bråktal till mängd av ingredienser. Ersätter decimaltal " -"med bråktal, exempel 0.5 med ½." +"med bråktal, exempel 0.5 med ½" #: .\cookbook\forms.py:48 msgid "" @@ -72,6 +72,11 @@ 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 "" +"Inställning satt till 0 inaktiverar automatisk synkronisering. När du tittar " +"på en inköpslista uppdateras listan varje sekund för att synkronisera " +"ändringar som någon annan kan ha gjort. Användbart när du handlar med flera " +"personer men kan använda lite mobildata. Om den är lägre än instansgränsen " +"återställs den när du sparar." #: .\cookbook\forms.py:56 msgid "Makes the navbar stick to the top of the page." @@ -121,6 +126,8 @@ msgid "" "To prevent duplicates recipes with the same name as existing ones are " "ignored. Check this box to import everything." msgstr "" +"För att förhindra att dubbletter ignoreras för recept med samma namn som " +"befintliga. Markera den här rutan för att importera allt." #: .\cookbook\forms.py:149 msgid "New Unit" @@ -197,7 +204,7 @@ msgid "" "\">docs here" msgstr "" "Du kan använda markdown för att formatera detta fält. Se dokumentation här för mer information." +"markdown/\">dokumentation här" #: .\cookbook\forms.py:393 msgid "A username is not required, if left blank the new user can choose one." @@ -376,7 +383,7 @@ msgstr "Redigera" #: .\cookbook\templates\meal_plan.html:277 #: .\cookbook\templates\recipes_table.html:90 msgid "Delete" -msgstr "Ta bort" +msgstr "Radera" #: .\cookbook\tables.py:144 msgid "Link" @@ -531,7 +538,7 @@ msgstr "Github" #: .\cookbook\templates\base.html:162 msgid "API Browser" -msgstr "" +msgstr "API-browser" #: .\cookbook\templates\base.html:165 msgid "Logout" @@ -852,12 +859,12 @@ msgstr "Enheter" #: .\cookbook\templates\forms\ingredients.html:26 msgid "Are you sure that you want to merge these two units?" -msgstr "Är du säker på att du vill sätta ihop dessa två enheter?" +msgstr "Är du säker på att du vill slå samman dessa två enheter?" #: .\cookbook\templates\forms\ingredients.html:31 #: .\cookbook\templates\forms\ingredients.html:40 msgid "Merge" -msgstr "Slå ihop" +msgstr "Slå samman" #: .\cookbook\templates\forms\ingredients.html:36 msgid "Are you sure that you want to merge these two ingredients?" @@ -967,6 +974,15 @@ msgid "" "can be used.\n" " " msgstr "" +"\n" +" Fältet Lösenord och token lagras som oformaterad text " +"i databasen.\n" +" Detta är nödvändigt eftersom de behövs för att göra API-" +"förfrågningar, men det ökar också risken för\n" +" någon som stjäl den.
\n" +" För att begränsa möjlig skada kan tokens eller konton med begränsad " +"åtkomst användas.\n" +" " #: .\cookbook\templates\index.html:29 msgid "Search recipe ..." @@ -1004,7 +1020,7 @@ msgstr "Logga in för att se recept" #: .\cookbook\templates\markdown_info.html:5 #: .\cookbook\templates\markdown_info.html:13 msgid "Markdown Info" -msgstr "" +msgstr "Markdown information" #: .\cookbook\templates\markdown_info.html:14 msgid "" @@ -1021,6 +1037,18 @@ msgid "" "below.\n" " " msgstr "" +"\n" +" Markdown är ett lätt märkningsspråk som kan användas för att enkelt " +"formatera vanlig text.\n" +" Den här webbplatsen använder Python Markdown-biblioteket för att\n" +" konvertera din text till snygg HTML. Dess fullständiga markdown-" +"dokumentation finns\n" +" här.\n" +" En ofullständig men troligen tillräcklig dokumentation finns nedan." +"\n" +" " #: .\cookbook\templates\markdown_info.html:25 msgid "Headers" @@ -1034,11 +1062,13 @@ msgstr "Formatering" #: .\cookbook\templates\markdown_info.html:72 msgid "Line breaks are inserted by adding two spaces after the end of a line" msgstr "" +"Radbrytningar infogas genom att lägga till två blanksteg efter slutet av en " +"rad" #: .\cookbook\templates\markdown_info.html:57 #: .\cookbook\templates\markdown_info.html:73 msgid "or by leaving a blank line inbetween." -msgstr "" +msgstr "eller genom att lämna en tom rad däremellan." #: .\cookbook\templates\markdown_info.html:59 #: .\cookbook\templates\markdown_info.html:74 @@ -1064,11 +1094,13 @@ msgid "" "Lists can ordered or unorderd. It is important to leave a blank line " "before the list!" msgstr "" +"Listor kan vara ordnade eller oordnade. Det är viktigt att lämna en tom " +"rad före listan!" #: .\cookbook\templates\markdown_info.html:87 #: .\cookbook\templates\markdown_info.html:108 msgid "Ordered List" -msgstr "" +msgstr "Ordnad lista" #: .\cookbook\templates\markdown_info.html:89 #: .\cookbook\templates\markdown_info.html:90 @@ -1077,12 +1109,12 @@ msgstr "" #: .\cookbook\templates\markdown_info.html:111 #: .\cookbook\templates\markdown_info.html:112 msgid "unordered list item" -msgstr "" +msgstr "oordnat listobjekt" #: .\cookbook\templates\markdown_info.html:93 #: .\cookbook\templates\markdown_info.html:114 msgid "Unordered List" -msgstr "" +msgstr "Oordnad lista" #: .\cookbook\templates\markdown_info.html:95 #: .\cookbook\templates\markdown_info.html:96 @@ -1091,22 +1123,24 @@ msgstr "" #: .\cookbook\templates\markdown_info.html:117 #: .\cookbook\templates\markdown_info.html:118 msgid "ordered list item" -msgstr "" +msgstr "ordnat listobjekt" #: .\cookbook\templates\markdown_info.html:125 msgid "Images & Links" -msgstr "" +msgstr "Bilder & länkar" #: .\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 "" +"Länkar kan formateras med Markdown. Denna applikation gör det också möjligt " +"att klistra in länkar direkt i markdown-fält utan någon formatering." #: .\cookbook\templates\markdown_info.html:132 #: .\cookbook\templates\markdown_info.html:145 msgid "This will become an image" -msgstr "" +msgstr "Detta kommer att bli en bild" #: .\cookbook\templates\markdown_info.html:152 msgid "Tables" @@ -1118,124 +1152,131 @@ msgid "" "editor like this one." msgstr "" +"Markdown-tabeller är svåra att skapa för hand. Vi rekommenderar att du " +"använder en tabellredigerare som denna." #: .\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 "" +msgstr "Tabell" #: .\cookbook\templates\markdown_info.html:155 #: .\cookbook\templates\markdown_info.html:172 msgid "Header" -msgstr "" +msgstr "Sidhuvud" #: .\cookbook\templates\markdown_info.html:157 #: .\cookbook\templates\markdown_info.html:178 msgid "Cell" -msgstr "" +msgstr "Cell" #: .\cookbook\templates\meal_plan.html:101 msgid "New Entry" -msgstr "" +msgstr "Ny post" #: .\cookbook\templates\meal_plan.html:113 #: .\cookbook\templates\shopping_list.html:52 msgid "Search Recipe" -msgstr "" +msgstr "Sök recept" #: .\cookbook\templates\meal_plan.html:139 msgid "Title" -msgstr "" +msgstr "Titel" #: .\cookbook\templates\meal_plan.html:141 msgid "Note (optional)" -msgstr "" +msgstr "Anmärkning (valfritt)" #: .\cookbook\templates\meal_plan.html:143 msgid "" "You can use markdown to format this field. See the docs here" msgstr "" +"Du kan använda markdown för att formatera det här fältet. Se dokumenten här" #: .\cookbook\templates\meal_plan.html:147 #: .\cookbook\templates\meal_plan.html:251 msgid "Serving Count" -msgstr "" +msgstr "Antal portioner" #: .\cookbook\templates\meal_plan.html:153 msgid "Create only note" -msgstr "" +msgstr "Skapa endast notering" #: .\cookbook\templates\meal_plan.html:168 #: .\cookbook\templates\shopping_list.html:7 #: .\cookbook\templates\shopping_list.html:29 #: .\cookbook\templates\shopping_list.html:705 msgid "Shopping List" -msgstr "" +msgstr "Inköpslista" #: .\cookbook\templates\meal_plan.html:172 msgid "Shopping list currently empty" -msgstr "" +msgstr "Inköpslistan är för närvarande tom" #: .\cookbook\templates\meal_plan.html:175 msgid "Open Shopping List" -msgstr "" +msgstr "Öppna inköpslistan" #: .\cookbook\templates\meal_plan.html:189 msgid "Plan" -msgstr "" +msgstr "Planen" #: .\cookbook\templates\meal_plan.html:196 msgid "Number of Days" -msgstr "" +msgstr "Antal dagar" #: .\cookbook\templates\meal_plan.html:206 msgid "Weekday offset" -msgstr "" +msgstr "Veckodagsförskjutning" #: .\cookbook\templates\meal_plan.html:209 msgid "" "Number of days starting from the first day of the week to offset the default " "view." msgstr "" +"Antal dagar från den första dagen i veckan för att kompensera för " +"standardvyn." #: .\cookbook\templates\meal_plan.html:217 #: .\cookbook\templates\meal_plan.html:294 msgid "Edit plan types" -msgstr "" +msgstr "Redigera plantyper" #: .\cookbook\templates\meal_plan.html:219 msgid "Show help" -msgstr "" +msgstr "Visa hjälp" #: .\cookbook\templates\meal_plan.html:220 msgid "Week iCal export" -msgstr "" +msgstr "Vecka iCal-export" #: .\cookbook\templates\meal_plan.html:264 #: .\cookbook\templates\meal_plan_entry.html:18 msgid "Created by" -msgstr "" +msgstr "Skapad av" #: .\cookbook\templates\meal_plan.html:270 #: .\cookbook\templates\meal_plan_entry.html:20 #: .\cookbook\templates\shopping_list.html:250 msgid "Shared with" -msgstr "" +msgstr "Delad med" #: .\cookbook\templates\meal_plan.html:280 msgid "Add to Shopping" -msgstr "" +msgstr "Lägg till i inköpslista" #: .\cookbook\templates\meal_plan.html:323 msgid "New meal type" -msgstr "" +msgstr "Ny måltidstyp" #: .\cookbook\templates\meal_plan.html:338 msgid "Meal Plan Help" -msgstr "" +msgstr "Hjälp med måltidsplaner" #: .\cookbook\templates\meal_plan.html:344 msgid "" @@ -1272,273 +1313,319 @@ msgid "" " merged.

\n" " " msgstr "" +"\n" +"

Målplansmodulen tillåter planering av " +"måltider både med recept och anteckningar.

\n" +"

Välj bara ett recept från listan över nyligen " +"visade recept eller sök på det du\n" +" vill och dra den till önskad planposition. " +"Du kan också lägga till en anteckning och en titel och\n" +" dra sedan receptet för att skapa en planpost " +"med en anpassad titel och anteckning. Skapar endast\n" +" Anteckningar är möjligt genom att dra rutan " +"Skapa anteckningar till planen.

\n" +"

Klicka på ett recept för att öppna den " +"detaljerade vyn. Där kan du också lägga till den i\n" +" inköpslista. Du kan också lägga till alla " +"recept för en dag till inköpslistan genom att\n" +" klicka på kundvagnen högst upp i " +"tabellen.

\n" +"

Eftersom ett vanligt fall är att planera " +"måltider tillsammans kan du definiera\n" +" användare som du vill dela din plan med i " +"inställningarna.\n" +"

\n" +"

Du kan också redigera de typer av måltider du " +"vill planera. Om du delar din plan med\n" +" någon med\n" +" olika måltider, kommer deras måltidstyper " +"också att visas i din lista. Att förebygga\n" +" dubbletter (t.ex. Övrigt och Övrigt)\n" +" namnge dina måltidstyper på samma sätt som " +"användarna du delar dina måltider med och då kommer de att bli\n" +" sammanslagna.

\n" +" " #: .\cookbook\templates\meal_plan_entry.html:6 msgid "Meal Plan View" -msgstr "" +msgstr "Vy över måltidsplan" #: .\cookbook\templates\meal_plan_entry.html:50 msgid "Never cooked before." -msgstr "" +msgstr "Aldrig lagat mat förut." #: .\cookbook\templates\meal_plan_entry.html:76 msgid "Other meals on this day" -msgstr "" +msgstr "Andra måltider denna dag" #: .\cookbook\templates\no_groups_info.html:5 #: .\cookbook\templates\no_groups_info.html:12 msgid "No Permissions" -msgstr "" +msgstr "Inga behörigheter" #: .\cookbook\templates\no_groups_info.html:17 msgid "You do not have any groups and therefor cannot use this application." -msgstr "" +msgstr "Du har inga grupper och kan därför inte använda denna applikation." #: .\cookbook\templates\no_groups_info.html:18 #: .\cookbook\templates\no_perm_info.html:15 #: .\cookbook\templates\no_space_info.html:15 msgid "Please contact your administrator." -msgstr "" +msgstr "Kontakta din administratör." #: .\cookbook\templates\no_perm_info.html:5 #: .\cookbook\templates\no_perm_info.html:12 msgid "No Permission" -msgstr "" +msgstr "Ingen behörighet" #: .\cookbook\templates\no_perm_info.html:15 msgid "" "You do not have the required permissions to view this page or perform this " "action." msgstr "" +"Du har inte de nödvändiga behörigheterna för att visa den här sidan eller " +"utföra den här åtgärden." #: .\cookbook\templates\no_space_info.html:5 #: .\cookbook\templates\no_space_info.html:12 msgid "No Space" -msgstr "" +msgstr "Inget utrymme" #: .\cookbook\templates\no_space_info.html:15 msgid "You are not a member of any space." -msgstr "" +msgstr "Du är inte medlem i något utrymme." #: .\cookbook\templates\offline.html:6 msgid "Offline" -msgstr "" +msgstr "Offline" #: .\cookbook\templates\offline.html:19 msgid "You are currently offline!" -msgstr "" +msgstr "Du är för närvarande 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 "" +"Recepten nedan är tillgängliga för offlinevisning eftersom du nyligen har " +"tittat på dem. Tänk på att data kan vara inaktuella." #: .\cookbook\templates\recipe_view.html:21 .\cookbook\templates\stats.html:47 msgid "Comments" -msgstr "" +msgstr "Kommentarer" #: .\cookbook\templates\recipe_view.html:44 .\cookbook\views\delete.py:118 #: .\cookbook\views\edit.py:170 msgid "Comment" -msgstr "" +msgstr "Kommentar" #: .\cookbook\templates\recipes_table.html:19 #: .\cookbook\templates\recipes_table.html:23 #: .\cookbook\templates\url_import.html:69 msgid "Recipe Image" -msgstr "" +msgstr "Receptbild" #: .\cookbook\templates\recipes_table.html:51 #: .\cookbook\templates\url_import.html:74 msgid "Preparation time ca." -msgstr "" +msgstr "Förberedelsetid ca." #: .\cookbook\templates\recipes_table.html:57 #: .\cookbook\templates\url_import.html:79 msgid "Waiting time ca." -msgstr "" +msgstr "Väntetid ca." #: .\cookbook\templates\recipes_table.html:60 msgid "External" -msgstr "" +msgstr "Extern" #: .\cookbook\templates\recipes_table.html:86 msgid "Log Cooking" -msgstr "" +msgstr "Logga matlagning" #: .\cookbook\templates\rest_framework\api.html:5 msgid "Recipe Home" -msgstr "" +msgstr "Recept Hem" #: .\cookbook\templates\settings.html:22 msgid "Account" -msgstr "" +msgstr "Konto" #: .\cookbook\templates\settings.html:38 msgid "Link social account" -msgstr "" +msgstr "Länka socialt konto" #: .\cookbook\templates\settings.html:42 msgid "Language" -msgstr "" +msgstr "Språk" #: .\cookbook\templates\settings.html:67 msgid "Style" -msgstr "" +msgstr "Stil" #: .\cookbook\templates\settings.html:79 msgid "API Token" -msgstr "" +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 "" +"Du kan använda både grundläggande autentisering och tokenbaserad " +"autentisering för att komma åt 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 "" +"Använd token som en auktoriseringsrubrik med ordet token som prefix som " +"visas i följande exempel:" #: .\cookbook\templates\settings.html:94 msgid "or" -msgstr "" +msgstr "eller" #: .\cookbook\templates\setup.html:6 .\cookbook\templates\system.html:5 msgid "Cookbook Setup" -msgstr "" +msgstr "Kokboksinställning" #: .\cookbook\templates\setup.html:14 msgid "Setup" -msgstr "" +msgstr "Konfiguration" #: .\cookbook\templates\setup.html:15 msgid "" "To start using this application you must first create a superuser account." msgstr "" +"För att börja använda denna applikation måste du först skapa ett " +"superanvändarkonto." #: .\cookbook\templates\setup.html:20 msgid "Create Superuser account" -msgstr "" +msgstr "Skapa ett superanvändarkonto" #: .\cookbook\templates\shopping_list.html:75 msgid "Shopping Recipes" -msgstr "" +msgstr "Shopping recept" #: .\cookbook\templates\shopping_list.html:79 msgid "No recipes selected" -msgstr "" +msgstr "Inga recept har valts" #: .\cookbook\templates\shopping_list.html:146 msgid "Entry Mode" -msgstr "" +msgstr "Ingångsläge" #: .\cookbook\templates\shopping_list.html:154 msgid "Add Entry" -msgstr "" +msgstr "Lägg till post" #: .\cookbook\templates\shopping_list.html:170 msgid "Amount" -msgstr "" +msgstr "Belopp" #: .\cookbook\templates\shopping_list.html:226 msgid "Supermarket" -msgstr "" +msgstr "Mataffär" #: .\cookbook\templates\shopping_list.html:236 msgid "Select Supermarket" -msgstr "" +msgstr "Välj mataffär" #: .\cookbook\templates\shopping_list.html:260 msgid "Select User" -msgstr "" +msgstr "Välj användare" #: .\cookbook\templates\shopping_list.html:279 msgid "Finished" -msgstr "" +msgstr "Avslutad" #: .\cookbook\templates\shopping_list.html:292 msgid "You are offline, shopping list might not syncronize." -msgstr "" +msgstr "Du är offline, inköpslistan kanske inte synkroniseras." #: .\cookbook\templates\shopping_list.html:357 msgid "Copy/Export" -msgstr "" +msgstr "Kopiera/exportera" #: .\cookbook\templates\shopping_list.html:361 msgid "List Prefix" -msgstr "" +msgstr "Lista prefix" #: .\cookbook\templates\shopping_list.html:708 msgid "There was an error creating a resource!" -msgstr "" +msgstr "Det gick inte att skapa en resurs!" #: .\cookbook\templates\socialaccount\connections.html:4 #: .\cookbook\templates\socialaccount\connections.html:7 msgid "Account Connections" -msgstr "" +msgstr "Kontokopplingar" #: .\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 kan logga in på ditt konto med någon av följande tredje parts\n" +" konton:" #: .\cookbook\templates\socialaccount\connections.html:36 msgid "Remove" -msgstr "" +msgstr "Ta bort" #: .\cookbook\templates\socialaccount\connections.html:44 msgid "" "You currently have no social network accounts connected to this account." msgstr "" +"Du har för närvarande inga sociala nätverkskonton kopplade till det här " +"kontot." #: .\cookbook\templates\socialaccount\connections.html:47 msgid "Add a 3rd Party Account" -msgstr "" +msgstr "Lägg till ett konto från tredje part" #: .\cookbook\templates\stats.html:4 msgid "Stats" -msgstr "" +msgstr "Statistik" #: .\cookbook\templates\stats.html:19 msgid "Number of objects" -msgstr "" +msgstr "Antal objekt" #: .\cookbook\templates\stats.html:30 msgid "Recipe Imports" -msgstr "" +msgstr "Receptimport" #: .\cookbook\templates\stats.html:38 msgid "Objects stats" -msgstr "" +msgstr "Objektstatistik" #: .\cookbook\templates\stats.html:41 msgid "Recipes without Keywords" -msgstr "" +msgstr "Recept utan nyckelord" #: .\cookbook\templates\stats.html:43 msgid "External Recipes" -msgstr "" +msgstr "Externa recept" #: .\cookbook\templates\stats.html:45 msgid "Internal Recipes" -msgstr "" +msgstr "Interna recept" #: .\cookbook\templates\system.html:21 .\cookbook\views\lists.py:115 msgid "Invite Links" -msgstr "" +msgstr "Inbjudningslänkar" #: .\cookbook\templates\system.html:22 msgid "Show Links" -msgstr "" +msgstr "Visa länkar" #: .\cookbook\templates\system.html:32 msgid "System Information" -msgstr "" +msgstr "Systeminformation" #: .\cookbook\templates\system.html:34 msgid "" @@ -1550,20 +1637,27 @@ msgid "" "recipes/releases\">here.\n" " " msgstr "" +"\n" +" Tandoor Recipes är ett gratisprogram med öppen källkod. Den finns " +"på\n" +" GitHub.\n" +" Ändringsloggar finns här.\n" +" " #: .\cookbook\templates\system.html:48 msgid "Media Serving" -msgstr "" +msgstr "Mediaservering" #: .\cookbook\templates\system.html:49 .\cookbook\templates\system.html:64 #: .\cookbook\templates\system.html:80 msgid "Warning" -msgstr "" +msgstr "Varning" #: .\cookbook\templates\system.html:49 .\cookbook\templates\system.html:64 #: .\cookbook\templates\system.html:80 .\cookbook\templates\system.html:95 msgid "Ok" -msgstr "" +msgstr "Ok" #: .\cookbook\templates\system.html:51 msgid "" @@ -1574,15 +1668,21 @@ msgid "" " your installation.\n" " " msgstr "" +"Att visa mediafiler direkt med gunicorn/python rekommenderas inte!\n" +" Följ stegen som beskrivs\n" +" här för att uppdatera\n" +" din installation.\n" +" " #: .\cookbook\templates\system.html:57 .\cookbook\templates\system.html:73 #: .\cookbook\templates\system.html:88 .\cookbook\templates\system.html:102 msgid "Everything is fine!" -msgstr "" +msgstr "Allting är bra!" #: .\cookbook\templates\system.html:62 msgid "Secret Key" -msgstr "" +msgstr "Hemlig nyckel" #: .\cookbook\templates\system.html:66 msgid "" @@ -1596,10 +1696,19 @@ msgid "" "file.\n" " " msgstr "" +"\n" +" Du har inte en SECRET_KEY konfigurerad i din ." +"env-fil. Django ställde som standard till\n" +" standardnyckel\n" +" försedd med installationen som är allmänt känd och osäker! " +"Vänligen ställ in\n" +" SECRET_KEY i konfigurationsfilen .env." +"\n" +" " #: .\cookbook\templates\system.html:78 msgid "Debug Mode" -msgstr "" +msgstr "Felsökningsläge" #: .\cookbook\templates\system.html:82 msgid "" @@ -1611,14 +1720,20 @@ msgid "" "file.\n" " " msgstr "" +"\n" +" Denna applikation körs fortfarande i felsökningsläge. Detta " +"behövs sannolikt inte. Stäng av felsökningsläget med\n" +" att sätta\n" +" DEBUG=0 i konfigurationsfilen .env.\n" +" " #: .\cookbook\templates\system.html:93 msgid "Database" -msgstr "" +msgstr "Databas" #: .\cookbook\templates\system.html:95 msgid "Info" -msgstr "" +msgstr "Info" #: .\cookbook\templates\system.html:97 msgid "" @@ -1628,44 +1743,49 @@ msgid "" " features only work with postgres databases.\n" " " msgstr "" +"\n" +" Denna applikation körs inte med en Postgres-databasbackend. " +"Detta är ok men rekommenderas inte då vissa\n" +" funktioner bara fungerar med postgres-databaser.\n" +" " #: .\cookbook\templates\url_import.html:5 msgid "URL Import" -msgstr "" +msgstr "URL-import" #: .\cookbook\templates\url_import.html:23 msgid "Enter website URL" -msgstr "" +msgstr "Ange webbadress" #: .\cookbook\templates\url_import.html:36 msgid "Enter json directly" -msgstr "" +msgstr "Ange json direkt" #: .\cookbook\templates\url_import.html:57 msgid "Recipe Name" -msgstr "" +msgstr "Receptnamn" #: .\cookbook\templates\url_import.html:62 msgid "Recipe Description" -msgstr "" +msgstr "Receptbeskrivning" #: .\cookbook\templates\url_import.html:123 #: .\cookbook\templates\url_import.html:155 #: .\cookbook\templates\url_import.html:211 msgid "Select one" -msgstr "" +msgstr "Välj en" #: .\cookbook\templates\url_import.html:225 msgid "All Keywords" -msgstr "" +msgstr "Alla nyckelord" #: .\cookbook\templates\url_import.html:228 msgid "Import all keywords, not only the ones already existing." -msgstr "" +msgstr "Importera alla sökord, inte bara de som redan finns." #: .\cookbook\templates\url_import.html:255 msgid "Information" -msgstr "" +msgstr "Information" #: .\cookbook\templates\url_import.html:257 msgid "" @@ -1677,157 +1797,168 @@ msgid "" "data feel free to post an example in the\n" " github issues." msgstr "" +" Endast webbplatser som innehåller ld+json- eller mikrodatainformation kan " +"för närvarande\n" +" importeras. De flesta stora receptsidor " +"stödjer detta. Om din webbplats inte kan importeras men\n" +" tror du\n" +" den har förmodligen någon form av " +"strukturerad data, posta gärna ett exempel i\n" +" github issues." #: .\cookbook\templates\url_import.html:265 msgid "Google ld+json Info" -msgstr "" +msgstr "Google ld+json info" #: .\cookbook\templates\url_import.html:268 msgid "GitHub Issues" -msgstr "" +msgstr "GitHub Issues" #: .\cookbook\templates\url_import.html:270 msgid "Recipe Markup Specification" -msgstr "" +msgstr "Specifikation för receptmärkning" #: .\cookbook\views\api.py:71 msgid "Parameter updated_at incorrectly formatted" -msgstr "" +msgstr "Parameter updated_at felaktigt formaterad" #: .\cookbook\views\api.py:455 .\cookbook\views\views.py:226 msgid "This feature is not available in the demo version!" -msgstr "" +msgstr "Denna funktion är inte tillgänglig i demoversionen!" #: .\cookbook\views\api.py:478 msgid "Sync successful!" -msgstr "" +msgstr "Synkroniseringen lyckades!" #: .\cookbook\views\api.py:483 msgid "Error synchronizing with Storage" -msgstr "" +msgstr "Fel vid synkronisering med lagring" #: .\cookbook\views\api.py:556 .\cookbook\views\api.py:576 msgid "The requested page could not be found." -msgstr "" +msgstr "Sidan kunde inte hittas." #: .\cookbook\views\api.py:585 msgid "" "The requested page refused to provide any information (Status Code 403)." -msgstr "" +msgstr "Den begärda sidan vägrade att ge någon information (Statuskod 403)." #: .\cookbook\views\api.py:611 msgid "Could not parse correctly..." -msgstr "" +msgstr "Kunde inte tolka korrekt..." #: .\cookbook\views\data.py:94 #, python-format msgid "Batch edit done. %(count)d recipe was updated." msgid_plural "Batch edit done. %(count)d Recipes where updated." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Batchredigering klar. %(count)d recept uppdaterades." +msgstr[1] "Batchredigering klar. %(count)d recept uppdaterades." #: .\cookbook\views\delete.py:72 msgid "Monitor" -msgstr "" +msgstr "Övervaka" #: .\cookbook\views\delete.py:96 .\cookbook\views\lists.py:102 #: .\cookbook\views\new.py:86 msgid "Storage Backend" -msgstr "" +msgstr "Backend för lagring" #: .\cookbook\views\delete.py:106 msgid "" "Could not delete this storage backend as it is used in at least one monitor." msgstr "" +"Det gick inte att ta bort denna lagringsbackend eftersom den används i minst " +"en övervakning." #: .\cookbook\views\delete.py:129 .\cookbook\views\edit.py:204 #: .\cookbook\views\new.py:144 msgid "Recipe Book" -msgstr "" +msgstr "Receptbok" #: .\cookbook\views\delete.py:141 msgid "Bookmarks" -msgstr "" +msgstr "Bokmärken" #: .\cookbook\views\delete.py:163 .\cookbook\views\new.py:214 msgid "Invite Link" -msgstr "" +msgstr "Inbjudningslänk" #: .\cookbook\views\edit.py:110 msgid "Food" -msgstr "" +msgstr "Livsmedel" #: .\cookbook\views\edit.py:119 msgid "You cannot edit this storage!" -msgstr "" +msgstr "Du kan inte redigera denna lagring!" #: .\cookbook\views\edit.py:139 msgid "Storage saved!" -msgstr "" +msgstr "Lagring sparad!" #: .\cookbook\views\edit.py:145 msgid "There was an error updating this storage backend!" -msgstr "" +msgstr "Det uppstod ett fel när denna lagringsbackend skulle uppdateras!" #: .\cookbook\views\edit.py:156 msgid "Storage" -msgstr "" +msgstr "Lagring" #: .\cookbook\views\edit.py:252 msgid "Changes saved!" -msgstr "" +msgstr "Ändringar sparade!" #: .\cookbook\views\edit.py:256 msgid "Error saving changes!" -msgstr "" +msgstr "Det gick inte att spara ändringar!" #: .\cookbook\views\edit.py:289 msgid "Units merged!" -msgstr "" +msgstr "Enheter sammanslagna!" #: .\cookbook\views\edit.py:291 .\cookbook\views\edit.py:307 msgid "Cannot merge with the same object!" -msgstr "" +msgstr "Kan inte slås samman med samma objekt!" #: .\cookbook\views\edit.py:305 msgid "Foods merged!" -msgstr "" +msgstr "Livsmedel sammanslagna!" #: .\cookbook\views\import_export.py:73 msgid "Importing is not implemented for this provider" -msgstr "" +msgstr "Importering är inte implementerad för denna leverantör" #: .\cookbook\views\import_export.py:92 msgid "Exporting is not implemented for this provider" -msgstr "" +msgstr "Export är inte implementerat för denna leverantör" #: .\cookbook\views\lists.py:40 msgid "Import Log" -msgstr "" +msgstr "Import logg" #: .\cookbook\views\lists.py:53 msgid "Discovery" -msgstr "" +msgstr "Upptäck" #: .\cookbook\views\lists.py:85 msgid "Shopping Lists" -msgstr "" +msgstr "Inköpslistor" #: .\cookbook\views\new.py:111 msgid "Imported new recipe!" -msgstr "" +msgstr "Importerat nytt recept!" #: .\cookbook\views\new.py:114 msgid "There was an error importing this recipe!" -msgstr "" +msgstr "Det uppstod ett fel när det här receptet skulle importeras!" #: .\cookbook\views\views.py:123 msgid "You do not have the required permissions to perform this action!" msgstr "" +"Du har inte de nödvändiga behörigheterna för att utföra den här åtgärden!" #: .\cookbook\views\views.py:134 msgid "Comment saved!" -msgstr "" +msgstr "Kommentaren sparad!" #: .\cookbook\views\views.py:326 msgid "" @@ -1835,19 +1966,22 @@ msgid "" "forgotten your superuser credentials please consult the django documentation " "on how to reset passwords." msgstr "" +"Inställningssidan kan endast användas för att skapa den första användaren! " +"Om du har glömt dina superanvändaruppgifter, vänligen läs django-" +"dokumentationen om hur du återställer lösenord." #: .\cookbook\views\views.py:333 .\cookbook\views\views.py:378 msgid "Passwords dont match!" -msgstr "" +msgstr "Lösenord matchar inte!" #: .\cookbook\views\views.py:349 .\cookbook\views\views.py:385 msgid "User has been created, please login!" -msgstr "" +msgstr "Användaren har skapats, vänligen logga in!" #: .\cookbook\views\views.py:365 msgid "Malformed Invite Link supplied!" -msgstr "" +msgstr "Felaktig inbjudningslänk!" #: .\cookbook\views\views.py:405 msgid "Invite Link not valid or already used!" -msgstr "" +msgstr "Inbjudningslänken är inte giltig eller redan använd!" diff --git a/cookbook/managers.py b/cookbook/managers.py index 636ed896c..5bfc60e43 100644 --- a/cookbook/managers.py +++ b/cookbook/managers.py @@ -16,6 +16,7 @@ DICTIONARY = { 'it': 'italian', # 'lv': 'Latvian', 'es': 'spanish', + 'sv': 'swedish', } diff --git a/cookbook/serializer.py b/cookbook/serializer.py index bf9fc7385..c1e64a300 100644 --- a/cookbook/serializer.py +++ b/cookbook/serializer.py @@ -42,7 +42,8 @@ class ExtendedRecipeMixin(serializers.ModelSerializer): api_serializer = None # extended values are computationally expensive and not needed in normal circumstances try: - if str2bool(self.context['request'].query_params.get('extended', False)) and self.__class__ == api_serializer: + if str2bool( + self.context['request'].query_params.get('extended', False)) and self.__class__ == api_serializer: return fields except (AttributeError, KeyError) as e: pass @@ -96,7 +97,8 @@ class CustomOnHandField(serializers.Field): shared_users = getattr(request, '_shared_users', None) if shared_users is None: try: - shared_users = [x.id for x in list(self.context['request'].user.get_shopping_share())] + [self.context['request'].user.id] + shared_users = [x.id for x in list(self.context['request'].user.get_shopping_share())] + [ + self.context['request'].user.id] except AttributeError: # Anonymous users (using share links) don't have shared users shared_users = [] return obj.onhand_users.filter(id__in=shared_users).exists() @@ -170,7 +172,8 @@ class FoodInheritFieldSerializer(WritableNestedModelSerializer): class UserPreferenceSerializer(WritableNestedModelSerializer): - food_inherit_default = FoodInheritFieldSerializer(source='space.food_inherit', many=True, allow_null=True, required=False, read_only=True) + food_inherit_default = FoodInheritFieldSerializer(source='space.food_inherit', many=True, allow_null=True, + required=False, read_only=True) plan_share = UserNameSerializer(many=True, allow_null=True, required=False, read_only=True) shopping_share = UserNameSerializer(many=True, allow_null=True, required=False) food_children_exist = serializers.SerializerMethodField('get_food_children_exist') @@ -189,9 +192,12 @@ class UserPreferenceSerializer(WritableNestedModelSerializer): class Meta: model = UserPreference fields = ( - 'user', 'theme', 'nav_color', 'default_unit', 'default_page', 'use_fractions', 'use_kj', 'search_style', 'show_recent', 'plan_share', - 'ingredient_decimals', 'comments', 'shopping_auto_sync', 'mealplan_autoadd_shopping', 'food_inherit_default', 'default_delay', - 'mealplan_autoinclude_related', 'mealplan_autoexclude_onhand', 'shopping_share', 'shopping_recent_days', 'csv_delim', 'csv_prefix', + 'user', 'theme', 'nav_color', 'default_unit', 'default_page', 'use_fractions', 'use_kj', 'search_style', + 'show_recent', 'plan_share', + 'ingredient_decimals', 'comments', 'shopping_auto_sync', 'mealplan_autoadd_shopping', + 'food_inherit_default', 'default_delay', + 'mealplan_autoinclude_related', 'mealplan_autoexclude_onhand', 'shopping_share', 'shopping_recent_days', + 'csv_delim', 'csv_prefix', 'filter_to_supermarket', 'shopping_add_onhand', 'left_handed', 'food_children_exist' ) @@ -393,7 +399,6 @@ class FoodSimpleSerializer(serializers.ModelSerializer): class Meta: model = Food fields = ('id', 'name') - read_only_fields = ['id', 'name'] class FoodSerializer(UniqueFieldsMixin, WritableNestedModelSerializer, ExtendedRecipeMixin): @@ -416,7 +421,8 @@ class FoodSerializer(UniqueFieldsMixin, WritableNestedModelSerializer, ExtendedR shared_users = getattr(request, '_shared_users', None) if shared_users is None: try: - shared_users = [x.id for x in list(self.context['request'].user.get_shopping_share())] + [self.context['request'].user.id] + shared_users = [x.id for x in list(self.context['request'].user.get_shopping_share())] + [ + self.context['request'].user.id] except AttributeError: shared_users = [] filter = Q(id__in=obj.substitute.all()) @@ -487,11 +493,15 @@ class FoodSerializer(UniqueFieldsMixin, WritableNestedModelSerializer, ExtendedR read_only_fields = ('id', 'numchild', 'parent', 'image', 'numrecipe') -class IngredientSerializer(WritableNestedModelSerializer): - food = FoodSerializer(allow_null=True) +class IngredientSimpleSerializer(WritableNestedModelSerializer): + food = FoodSimpleSerializer(allow_null=True) unit = UnitSerializer(allow_null=True) + used_in_recipes = serializers.SerializerMethodField('get_used_in_recipes') amount = CustomDecimalField() + def get_used_in_recipes(self, obj): + return list(Recipe.objects.filter(steps__ingredients=obj.id).values('id', 'name')) + def create(self, validated_data): validated_data['space'] = self.context['request'].space return super().create(validated_data) @@ -504,10 +514,14 @@ class IngredientSerializer(WritableNestedModelSerializer): model = Ingredient fields = ( 'id', 'food', 'unit', 'amount', 'note', 'order', - 'is_header', 'no_amount', 'original_text' + 'is_header', 'no_amount', 'original_text', 'used_in_recipes', ) +class IngredientSerializer(IngredientSimpleSerializer): + food = FoodSerializer(allow_null=True) + + class StepSerializer(WritableNestedModelSerializer, ExtendedRecipeMixin): ingredients = IngredientSerializer(many=True) ingredients_markdown = serializers.SerializerMethodField('get_ingredients_markdown') @@ -702,7 +716,8 @@ class RecipeBookEntrySerializer(serializers.ModelSerializer): def create(self, validated_data): book = validated_data['book'] recipe = validated_data['recipe'] - if not book.get_owner() == self.context['request'].user and not self.context['request'].user in book.get_shared(): + if not book.get_owner() == self.context['request'].user and not self.context[ + 'request'].user in book.get_shared(): raise NotFound(detail=None, code=None) obj, created = RecipeBookEntry.objects.get_or_create(book=book, recipe=recipe) return obj @@ -731,7 +746,7 @@ class MealPlanSerializer(SpacedModelSerializer, WritableNestedModelSerializer): def create(self, validated_data): validated_data['created_by'] = self.context['request'].user mealplan = super().create(validated_data) - if self.context['request'].data.get('addshopping', False): + if self.context['request'].data.get('addshopping', False) and self.context['request'].data.get('recipe', None): SLR = RecipeShoppingEditor(user=validated_data['created_by'], space=validated_data['space']) SLR.create(mealplan=mealplan, servings=validated_data['servings']) return mealplan @@ -755,13 +770,14 @@ class ShoppingListRecipeSerializer(serializers.ModelSerializer): def get_name(self, obj): if not isinstance(value := obj.servings, Decimal): value = Decimal(value) - value = value.quantize(Decimal(1)) if value == value.to_integral() else value.normalize() # strips trailing zero + value = value.quantize( + Decimal(1)) if value == value.to_integral() else value.normalize() # strips trailing zero return ( - obj.name - or getattr(obj.mealplan, 'title', None) - or (d := getattr(obj.mealplan, 'date', None)) and ': '.join([obj.mealplan.recipe.name, str(d)]) - or obj.recipe.name - ) + f' ({value:.2g})' + obj.name + or getattr(obj.mealplan, 'title', None) + or (d := getattr(obj.mealplan, 'date', None)) and ': '.join([obj.mealplan.recipe.name, str(d)]) + or obj.recipe.name + ) + f' ({value:.2g})' def update(self, instance, validated_data): # TODO remove once old shopping list @@ -832,7 +848,8 @@ class ShoppingListEntrySerializer(WritableNestedModelSerializer): class Meta: model = ShoppingListEntry fields = ( - 'id', 'list_recipe', 'food', 'unit', 'ingredient', 'ingredient_note', 'amount', 'order', 'checked', 'recipe_mealplan', + 'id', 'list_recipe', 'food', 'unit', 'ingredient', 'ingredient_note', 'amount', 'order', 'checked', + 'recipe_mealplan', 'created_by', 'created_at', 'completed_at', 'delay_until' ) read_only_fields = ('id', 'created_by', 'created_at',) @@ -930,7 +947,10 @@ class ExportLogSerializer(serializers.ModelSerializer): class Meta: model = ExportLog - fields = ('id', 'type', 'msg', 'running', 'total_recipes', 'exported_recipes', 'cache_duration', 'possibly_not_expired', 'created_by', 'created_at') + fields = ( + 'id', 'type', 'msg', 'running', 'total_recipes', 'exported_recipes', 'cache_duration', + 'possibly_not_expired', + 'created_by', 'created_at') read_only_fields = ('created_by',) @@ -1042,10 +1062,12 @@ class RecipeExportSerializer(WritableNestedModelSerializer): class RecipeShoppingUpdateSerializer(serializers.ModelSerializer): - list_recipe = serializers.IntegerField(write_only=True, allow_null=True, required=False, help_text=_("Existing shopping list to update")) + list_recipe = serializers.IntegerField(write_only=True, allow_null=True, required=False, + help_text=_("Existing shopping list to update")) ingredients = serializers.IntegerField(write_only=True, allow_null=True, required=False, help_text=_( "List of ingredient IDs from the recipe to add, if not provided all ingredients will be added.")) - servings = serializers.IntegerField(default=1, write_only=True, allow_null=True, required=False, help_text=_("Providing a list_recipe ID and servings of 0 will delete that shopping list.")) + servings = serializers.IntegerField(default=1, write_only=True, allow_null=True, required=False, help_text=_( + "Providing a list_recipe ID and servings of 0 will delete that shopping list.")) class Meta: model = Recipe @@ -1053,9 +1075,12 @@ class RecipeShoppingUpdateSerializer(serializers.ModelSerializer): class FoodShoppingUpdateSerializer(serializers.ModelSerializer): - amount = serializers.IntegerField(write_only=True, allow_null=True, required=False, help_text=_("Amount of food to add to the shopping list")) - unit = serializers.IntegerField(write_only=True, allow_null=True, required=False, help_text=_("ID of unit to use for the shopping list")) - delete = serializers.ChoiceField(choices=['true'], write_only=True, allow_null=True, allow_blank=True, help_text=_("When set to true will delete all food from active shopping lists.")) + amount = serializers.IntegerField(write_only=True, allow_null=True, required=False, + help_text=_("Amount of food to add to the shopping list")) + unit = serializers.IntegerField(write_only=True, allow_null=True, required=False, + help_text=_("ID of unit to use for the shopping list")) + delete = serializers.ChoiceField(choices=['true'], write_only=True, allow_null=True, allow_blank=True, + help_text=_("When set to true will delete all food from active shopping lists.")) class Meta: model = Recipe diff --git a/cookbook/static/css/app.min.css b/cookbook/static/css/app.min.css index a100e2c28..2167eb22d 100644 --- a/cookbook/static/css/app.min.css +++ b/cookbook/static/css/app.min.css @@ -1,3 +1,15 @@ +.brand-icon { + height: 40px; +} + +@media (max-width: 991.98px) { + .menu-dropdown-text { + font-size: 14px; + font-weight: 200; + } +} + + .spinner-tandoor { animation: rotation 3s infinite linear; content: url("../assets/spinner.svg"); diff --git a/cookbook/templates/base.html b/cookbook/templates/base.html index 4b10cf766..625a96fec 100644 --- a/cookbook/templates/base.html +++ b/cookbook/templates/base.html @@ -56,21 +56,46 @@ {% block extra_head %} {% endblock %} + + -