Merge branch 'develop' into feature/spaces
# Conflicts: # cookbook/views/data.py # cookbook/views/views.py
This commit is contained in:
commit
29ab6cfb2d
@ -13,6 +13,7 @@ TIMEZONE=Europe/Berlin
|
||||
|
||||
# add only a database password if you want to run with the default postgres, otherwise change settings accordingly
|
||||
DB_ENGINE=django.db.backends.postgresql
|
||||
# DB_OPTIONS= {} # e.g. {"sslmode":"require"} to enable ssl
|
||||
POSTGRES_HOST=db_recipes
|
||||
POSTGRES_PORT=5432
|
||||
POSTGRES_USER=djangouser
|
||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -78,3 +78,4 @@ postgresql/
|
||||
|
||||
/docker-compose.override.yml
|
||||
vue/node_modules
|
||||
.vscode/
|
||||
|
@ -69,8 +69,10 @@ def find_recipe_json(ld_json, url, space):
|
||||
if 'recipeIngredient' in ld_json:
|
||||
# some pages have comma separated ingredients in a single array entry
|
||||
if (len(ld_json['recipeIngredient']) == 1
|
||||
and len(ld_json['recipeIngredient'][0]) > 30):
|
||||
and type(ld_json['recipeIngredient']) == list):
|
||||
ld_json['recipeIngredient'] = ld_json['recipeIngredient'][0].split(',') # noqa: E501
|
||||
elif type(ld_json['recipeIngredient']) == str:
|
||||
ld_json['recipeIngredient'] = ld_json['recipeIngredient'].split(',')
|
||||
|
||||
for x in ld_json['recipeIngredient']:
|
||||
if '\n' in x:
|
||||
@ -218,13 +220,15 @@ def find_recipe_json(ld_json, url, space):
|
||||
else:
|
||||
ld_json['prepTime'] = 0
|
||||
|
||||
ld_json['servings'] = 1
|
||||
try:
|
||||
if 'recipeYield' in ld_json:
|
||||
if type(ld_json['recipeYield']) == str:
|
||||
ld_json['servings'] = int(re.findall(r'\b\d+\b', ld_json['recipeYield'])[0])
|
||||
elif type(ld_json['recipeYield']) == list:
|
||||
ld_json['servings'] = int(re.findall(r'\b\d+\b', ld_json['recipeYield'][0])[0])
|
||||
except Exception as e:
|
||||
print(e)
|
||||
ld_json['servings'] = 1
|
||||
|
||||
for key in list(ld_json):
|
||||
if key not in [
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
cookbook/locale/hy/LC_MESSAGES/django.mo
Normal file
BIN
cookbook/locale/hy/LC_MESSAGES/django.mo
Normal file
Binary file not shown.
1880
cookbook/locale/hy/LC_MESSAGES/django.po
Normal file
1880
cookbook/locale/hy/LC_MESSAGES/django.po
Normal file
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@ -2,11 +2,11 @@
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Alessandro Spallina <alessandrospallina1@gmail.com>, 2020
|
||||
# Oliver Thomas Cervera <cervera93-10@yahoo.it>, 2021
|
||||
#
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
@ -15,12 +15,11 @@ msgstr ""
|
||||
"POT-Creation-Date: 2021-02-09 18:01+0100\n"
|
||||
"PO-Revision-Date: 2020-06-02 19:28+0000\n"
|
||||
"Last-Translator: Oliver Thomas Cervera <cervera93-10@yahoo.it>, 2021\n"
|
||||
"Language-Team: Italian (https://www.transifex.com/django-recipes/"
|
||||
"teams/110507/it/)\n"
|
||||
"Language: it\n"
|
||||
"Language-Team: Italian (https://www.transifex.com/django-recipes/teams/110507/it/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: it\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: .\cookbook\filters.py:22 .\cookbook\templates\base.html:87
|
||||
@ -35,8 +34,8 @@ msgid ""
|
||||
"Color of the top navigation bar. Not all colors work with all themes, just "
|
||||
"try them out!"
|
||||
msgstr ""
|
||||
"Colore della barra di navigazione in alto. Non tutti i colori funzionano con "
|
||||
"tutti i temi, provali e basta!"
|
||||
"Colore della barra di navigazione in alto. Non tutti i colori funzionano con"
|
||||
" tutti i temi, provali e basta!"
|
||||
|
||||
#: .\cookbook\forms.py:45
|
||||
msgid "Default Unit to be used when inserting a new ingredient into a recipe."
|
||||
@ -81,15 +80,15 @@ msgid ""
|
||||
"mobile data. If lower than instance limit it is reset when saving."
|
||||
msgstr ""
|
||||
"L'impostazione su 0 disabiliterà la sincronizzazione automatica. Quando si "
|
||||
"visualizza una lista della spesa, la lista viene aggiornata ogni tot secondi "
|
||||
"impostati per sincronizzare le modifiche che qualcun altro potrebbe aver "
|
||||
"fatto. Utile per gli acquisti con più persone, ma potrebbe utilizzare un po' "
|
||||
"di dati mobili. Se inferiore al limite di istanza viene ripristinato durante "
|
||||
"il salvataggio."
|
||||
"visualizza una lista della spesa, la lista viene aggiornata ogni tot secondi"
|
||||
" impostati per sincronizzare le modifiche che qualcun altro potrebbe aver "
|
||||
"fatto. Utile per gli acquisti con più persone, ma potrebbe utilizzare un po'"
|
||||
" di dati mobili. Se inferiore al limite di istanza viene ripristinato "
|
||||
"durante il salvataggio."
|
||||
|
||||
#: .\cookbook\forms.py:55
|
||||
msgid "Makes the navbar stick to the top of the page."
|
||||
msgstr ""
|
||||
msgstr "Fissa la barra di navigazione nella parte superiore della pagina."
|
||||
|
||||
#: .\cookbook\forms.py:71
|
||||
msgid ""
|
||||
@ -128,10 +127,8 @@ msgid "Storage UID"
|
||||
msgstr "UID di archiviazione"
|
||||
|
||||
#: .\cookbook\forms.py:117
|
||||
#, fuzzy
|
||||
#| msgid "Number of Days"
|
||||
msgid "Number of servings"
|
||||
msgstr "Numero di giorni"
|
||||
msgstr "Porzioni"
|
||||
|
||||
#: .\cookbook\forms.py:128
|
||||
msgid ""
|
||||
@ -143,7 +140,7 @@ msgstr ""
|
||||
|
||||
#: .\cookbook\forms.py:143
|
||||
msgid "Default"
|
||||
msgstr ""
|
||||
msgstr "Predefinito"
|
||||
|
||||
#: .\cookbook\forms.py:162
|
||||
msgid "New Unit"
|
||||
@ -192,11 +189,11 @@ msgstr "Lascia vuoto per nextcloud e inserisci l'api token per dropbox."
|
||||
|
||||
#: .\cookbook\forms.py:244
|
||||
msgid ""
|
||||
"Leave empty for dropbox and enter only base url for nextcloud (<code>/remote."
|
||||
"php/webdav/</code> is added automatically)"
|
||||
"Leave empty for dropbox and enter only base url for nextcloud "
|
||||
"(<code>/remote.php/webdav/</code> is added automatically)"
|
||||
msgstr ""
|
||||
"Lascia vuoto per dropbox e inserisci solo l'url base per nextcloud (<code>/"
|
||||
"remote.php/webdav/</code> è aggiunto automaticamente)"
|
||||
"Lascia vuoto per dropbox e inserisci solo l'url base per nextcloud "
|
||||
"(<code>/remote.php/webdav/</code> è aggiunto automaticamente)"
|
||||
|
||||
#: .\cookbook\forms.py:263
|
||||
msgid "Search String"
|
||||
@ -219,11 +216,11 @@ msgstr ""
|
||||
#: .\cookbook\forms.py:313
|
||||
#: .\cookbook\templates\forms\edit_internal_recipe.html:377
|
||||
msgid ""
|
||||
"You can use markdown to format this field. See the <a href=\"/docs/markdown/"
|
||||
"\">docs here</a>"
|
||||
"You can use markdown to format this field. See the <a "
|
||||
"href=\"/docs/markdown/\">docs here</a>"
|
||||
msgstr ""
|
||||
"Puoi usare markdown per formattare questo campo. Guarda la <a href=\"/docs/"
|
||||
"markdown/\">documentazione qui</a>"
|
||||
"Puoi usare markdown per formattare questo campo. Guarda la <a "
|
||||
"href=\"/docs/markdown/\">documentazione qui</a>"
|
||||
|
||||
#: .\cookbook\forms.py:328
|
||||
msgid "A username is not required, if left blank the new user can choose one."
|
||||
@ -258,8 +255,8 @@ msgstr ""
|
||||
|
||||
#: .\cookbook\helper\recipe_url_import.py:53
|
||||
msgid ""
|
||||
"The requested site does not provide any recognized data format to import the "
|
||||
"recipe from."
|
||||
"The requested site does not provide any recognized data format to import the"
|
||||
" recipe from."
|
||||
msgstr ""
|
||||
"Il sito richiesto non fornisce un formato di dati riconosciuto da cui "
|
||||
"importare la ricetta."
|
||||
@ -273,6 +270,8 @@ msgid ""
|
||||
"Importer expected a .zip file. Did you choose the correct importer type for "
|
||||
"your data ?"
|
||||
msgstr ""
|
||||
"La procedura di import necessita di un file .zip. Hai scelto il tipo di "
|
||||
"importazione corretta per i tuoi dati?"
|
||||
|
||||
#: .\cookbook\integration\safron.py:23
|
||||
#: .\cookbook\templates\forms\edit_internal_recipe.html:65
|
||||
@ -282,10 +281,8 @@ msgid "Servings"
|
||||
msgstr "Porzioni"
|
||||
|
||||
#: .\cookbook\integration\safron.py:25
|
||||
#, fuzzy
|
||||
#| msgid "Waiting time ~"
|
||||
msgid "Waiting time"
|
||||
msgstr "Tempo di Attesa ~"
|
||||
msgstr "Tempo di attesa"
|
||||
|
||||
#: .\cookbook\integration\safron.py:27
|
||||
#: .\cookbook\templates\forms\edit_internal_recipe.html:59
|
||||
@ -300,7 +297,7 @@ msgstr "Ricettario"
|
||||
|
||||
#: .\cookbook\integration\safron.py:31
|
||||
msgid "Section"
|
||||
msgstr ""
|
||||
msgstr "Selezione"
|
||||
|
||||
#: .\cookbook\migrations\0047_auto_20200602_1133.py:12
|
||||
msgid "Breakfast"
|
||||
@ -396,37 +393,35 @@ msgstr "Login"
|
||||
#: .\cookbook\templates\account\login.html:13
|
||||
#: .\cookbook\templates\account\login.html:28
|
||||
msgid "Sign In"
|
||||
msgstr ""
|
||||
msgstr "Accedi"
|
||||
|
||||
#: .\cookbook\templates\account\login.html:38
|
||||
msgid "Social Login"
|
||||
msgstr ""
|
||||
msgstr "Login con social network"
|
||||
|
||||
#: .\cookbook\templates\account\login.html:39
|
||||
msgid "You can use any of the following providers to sign in."
|
||||
msgstr ""
|
||||
msgstr "Puoi usare uno dei seguenti provider per accedere."
|
||||
|
||||
#: .\cookbook\templates\account\logout.html:5
|
||||
#: .\cookbook\templates\account\logout.html:9
|
||||
#: .\cookbook\templates\account\logout.html:18
|
||||
msgid "Sign Out"
|
||||
msgstr ""
|
||||
msgstr "Esci"
|
||||
|
||||
#: .\cookbook\templates\account\logout.html:11
|
||||
#, fuzzy
|
||||
#| msgid "Are you sure that you want to merge these two units?"
|
||||
msgid "Are you sure you want to sign out?"
|
||||
msgstr "Sei sicuro di volere unire queste due unità di misura?"
|
||||
msgstr "Sei sicuro di voler uscire?"
|
||||
|
||||
#: .\cookbook\templates\account\password_reset.html:5
|
||||
#: .\cookbook\templates\account\password_reset_done.html:5
|
||||
msgid "Password Reset"
|
||||
msgstr ""
|
||||
msgstr "Recupero password"
|
||||
|
||||
#: .\cookbook\templates\account\password_reset.html:9
|
||||
#: .\cookbook\templates\account\password_reset_done.html:9
|
||||
msgid "Password reset is not implemented for the time being!"
|
||||
msgstr ""
|
||||
msgstr "Il recupero della password non è stato ancora implementato!"
|
||||
|
||||
#: .\cookbook\templates\account\signup.html:5
|
||||
msgid "Register"
|
||||
@ -540,8 +535,8 @@ msgstr "Modifica di massa per ricette"
|
||||
#: .\cookbook\templates\batch\edit.html:20
|
||||
msgid "Add the specified keywords to all recipes containing a word"
|
||||
msgstr ""
|
||||
"Aggiungi a tutte le ricette che contengono una determinata stringa le parole "
|
||||
"chiave desiderate "
|
||||
"Aggiungi a tutte le ricette che contengono una determinata stringa le parole"
|
||||
" chiave desiderate "
|
||||
|
||||
#: .\cookbook\templates\batch\monitor.html:6 .\cookbook\views\edit.py:66
|
||||
msgid "Sync"
|
||||
@ -556,8 +551,8 @@ msgid ""
|
||||
"On this Page you can manage all storage folder locations that should be "
|
||||
"monitored and synced."
|
||||
msgstr ""
|
||||
"In questa pagina puoi gestire i percorsi delle cartelle di archiviazione che "
|
||||
"devono essere monitorate e sincronizzate."
|
||||
"In questa pagina puoi gestire i percorsi delle cartelle di archiviazione che"
|
||||
" devono essere monitorate e sincronizzate."
|
||||
|
||||
#: .\cookbook\templates\batch\monitor.html:16
|
||||
msgid "The path must be in the following format"
|
||||
@ -644,20 +639,16 @@ msgid "Waiting Time"
|
||||
msgstr "Tempo di Attesa"
|
||||
|
||||
#: .\cookbook\templates\forms\edit_internal_recipe.html:68
|
||||
#, fuzzy
|
||||
#| msgid "Servings"
|
||||
msgid "Servings Text"
|
||||
msgstr "Porzioni"
|
||||
msgstr "Nome delle porzioni"
|
||||
|
||||
#: .\cookbook\templates\forms\edit_internal_recipe.html:79
|
||||
msgid "Select Keywords"
|
||||
msgstr "Seleziona parole chiave"
|
||||
|
||||
#: .\cookbook\templates\forms\edit_internal_recipe.html:93
|
||||
#, fuzzy
|
||||
#| msgid "Nutrition"
|
||||
msgid "Description"
|
||||
msgstr "Nutrienti"
|
||||
msgstr "Descrizione"
|
||||
|
||||
#: .\cookbook\templates\forms\edit_internal_recipe.html:108
|
||||
msgid "Nutrition"
|
||||
@ -773,7 +764,7 @@ msgstr "Abilita Quantità"
|
||||
|
||||
#: .\cookbook\templates\forms\edit_internal_recipe.html:348
|
||||
msgid "Copy Template Reference"
|
||||
msgstr ""
|
||||
msgstr "Copia riferimento template"
|
||||
|
||||
#: .\cookbook\templates\forms\edit_internal_recipe.html:374
|
||||
#: .\cookbook\templates\url_import.html:177
|
||||
@ -821,19 +812,14 @@ msgstr "Modifica Ingredienti"
|
||||
#: .\cookbook\templates\forms\ingredients.html:16
|
||||
msgid ""
|
||||
"\n"
|
||||
" The following form can be used if, accidentally, two (or more) units "
|
||||
"or ingredients where created that should be\n"
|
||||
" The following form can be used if, accidentally, two (or more) units or ingredients where created that should be\n"
|
||||
" the same.\n"
|
||||
" It merges two units or ingredients and updates all recipes using "
|
||||
"them.\n"
|
||||
" It merges two units or ingredients and updates all recipes using them.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" Questo modulo può essere utilizzato se, accidentalmente, sono stati "
|
||||
"creati due (o più) unità di misura o ingredienti che dovrebbero essere lo "
|
||||
"stesso. \n"
|
||||
"Unisce due unità di misura o ingredienti e aggiorna tutte le ricette che li "
|
||||
"utilizzano."
|
||||
" Questo modulo può essere utilizzato se, accidentalmente, sono stati creati due (o più) unità di misura o ingredienti che dovrebbero essere lo stesso. \n"
|
||||
"Unisce due unità di misura o ingredienti e aggiorna tutte le ricette che li utilizzano."
|
||||
|
||||
#: .\cookbook\templates\forms\ingredients.html:24
|
||||
#: .\cookbook\templates\stats.html:26
|
||||
@ -955,19 +941,15 @@ msgstr "Avviso di Sicurezza"
|
||||
#: .\cookbook\templates\include\storage_backend_warning.html:5
|
||||
msgid ""
|
||||
"\n"
|
||||
" The <b>Password and Token</b> field are stored as <b>plain text</b> "
|
||||
"inside the database.\n"
|
||||
" This is necessary because they are needed to make API requests, but "
|
||||
"it also increases the risk of\n"
|
||||
" The <b>Password and Token</b> field are stored as <b>plain text</b> inside the database.\n"
|
||||
" This is necessary because they are needed to make API requests, but it also increases the risk of\n"
|
||||
" someone stealing it. <br/>\n"
|
||||
" To limit the possible damage tokens or accounts with limited access "
|
||||
"can be used.\n"
|
||||
" To limit the possible damage tokens or accounts with limited access can be used.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
"I campi <b>Password e Token</b> sono salvati <b>in chiaro</b> nel database.\n"
|
||||
"È necessario perché servono per fare richieste API, ma questo aumenta il "
|
||||
"rischio che\n"
|
||||
"È necessario perché servono per fare richieste API, ma questo aumenta il rischio che\n"
|
||||
"qualcuno possa impossessarsene.<br/>\n"
|
||||
"Per liminare il danno puoi usare account con accesso limitato o i token."
|
||||
|
||||
@ -1012,29 +994,19 @@ msgstr "Informazioni su Markdown"
|
||||
#: .\cookbook\templates\markdown_info.html:14
|
||||
msgid ""
|
||||
"\n"
|
||||
" Markdown is lightweight markup language that can be used to format "
|
||||
"plain text easily.\n"
|
||||
" This site uses the <a href=\"https://python-markdown.github.io/\" "
|
||||
"target=\"_blank\">Python Markdown</a> library to\n"
|
||||
" convert your text into nice looking HTML. Its full markdown "
|
||||
"documentation can be found\n"
|
||||
" <a href=\"https://daringfireball.net/projects/markdown/syntax\" "
|
||||
"target=\"_blank\">here</a>.\n"
|
||||
" An incomplete but most likely sufficient documentation can be found "
|
||||
"below.\n"
|
||||
" Markdown is lightweight markup language that can be used to format plain text easily.\n"
|
||||
" This site uses the <a href=\"https://python-markdown.github.io/\" target=\"_blank\">Python Markdown</a> library to\n"
|
||||
" convert your text into nice looking HTML. Its full markdown documentation can be found\n"
|
||||
" <a href=\"https://daringfireball.net/projects/markdown/syntax\" target=\"_blank\">here</a>.\n"
|
||||
" An incomplete but most likely sufficient documentation can be found below.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" Markdown è un linguaggio di markup molto leggero che può essere "
|
||||
"utilizzato per formattare facilmente del testo.\n"
|
||||
" Questo sito utilizza la libreria <a href=\"https://python-markdown."
|
||||
"github.io/\" target=\"_blank\">Python Markdown</a> per\n"
|
||||
" convertire il tuo testo in HTML formattato. È possibile trovare la "
|
||||
"documentazione completa del markdown\n"
|
||||
" <a href=\"https://daringfireball.net/projects/markdown/syntax\" target="
|
||||
"\"_blank\">qui</a>.\n"
|
||||
" Di seguito è possibile trovare una documentazione incompleta ma molto "
|
||||
"probabilmente sufficiente."
|
||||
" Markdown è un linguaggio di markup molto leggero che può essere utilizzato per formattare facilmente del testo.\n"
|
||||
" Questo sito utilizza la libreria <a href=\"https://python-markdown.github.io/\" target=\"_blank\">Python Markdown</a> per\n"
|
||||
" convertire il tuo testo in HTML formattato. È possibile trovare la documentazione completa del markdown\n"
|
||||
" <a href=\"https://daringfireball.net/projects/markdown/syntax\" target=\"_blank\">qui</a>.\n"
|
||||
" Di seguito è possibile trovare una documentazione incompleta ma molto probabilmente sufficiente."
|
||||
|
||||
#: .\cookbook\templates\markdown_info.html:25
|
||||
msgid "Headers"
|
||||
@ -1134,19 +1106,15 @@ msgid "Tables"
|
||||
msgstr "Tabelle"
|
||||
|
||||
#: .\cookbook\templates\markdown_info.html:153
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Markdown tables are hard to create by hand. It is recommended to use a "
|
||||
#| "table editor like <a href=\"https://www.tablesgenerator.com/"
|
||||
#| "markdown_tables\" target=\"_blank\">this</a> one."
|
||||
msgid ""
|
||||
"Markdown tables are hard to create by hand. It is recommended to use a table "
|
||||
"editor like <a href=\"https://www.tablesgenerator.com/markdown_tables\" rel="
|
||||
"\"noreferrer noopener\" target=\"_blank\">this one.</a>"
|
||||
"Markdown tables are hard to create by hand. It is recommended to use a table"
|
||||
" editor like <a href=\"https://www.tablesgenerator.com/markdown_tables\" "
|
||||
"rel=\"noreferrer noopener\" target=\"_blank\">this one.</a>"
|
||||
msgstr ""
|
||||
"Le tabelle in markdown sono difficili da creare a mano. È raccomandato "
|
||||
"utilizzare un editor di tabelle come <a href=\"https://www.tablesgenerator."
|
||||
"com/markdown_tables\" target=\"_blank\">questo</a>."
|
||||
"Le tabelle in markdown sono difficili da creare a mano. Si raccomanda "
|
||||
"l'utilizzo di un editor di come <a "
|
||||
"href=\"https://www.tablesgenerator.com/markdown_tables\" "
|
||||
"target=\"_blank\">questo</a>."
|
||||
|
||||
#: .\cookbook\templates\markdown_info.html:155
|
||||
#: .\cookbook\templates\markdown_info.html:157
|
||||
@ -1184,19 +1152,18 @@ msgstr "Note (opzionale)"
|
||||
|
||||
#: .\cookbook\templates\meal_plan.html:143
|
||||
msgid ""
|
||||
"You can use markdown to format this field. See the <a href=\"/docs/markdown/"
|
||||
"\" target=\"_blank\" rel=\"noopener noreferrer\">docs here</a>"
|
||||
"You can use markdown to format this field. See the <a "
|
||||
"href=\"/docs/markdown/\" target=\"_blank\" rel=\"noopener noreferrer\">docs "
|
||||
"here</a>"
|
||||
msgstr ""
|
||||
"Puoi usare markdown per formattare questo campo. Guarda la <a href=\"/docs/"
|
||||
"markdown/\" target=\"_blank\" rel=\"noopener noreferrer\">documentazione "
|
||||
"qui</a>"
|
||||
"Puoi usare markdown per formattare questo campo. Guarda la <a "
|
||||
"href=\"/docs/markdown/\" target=\"_blank\" rel=\"noopener "
|
||||
"noreferrer\">documentazione qui</a>"
|
||||
|
||||
#: .\cookbook\templates\meal_plan.html:147
|
||||
#: .\cookbook\templates\meal_plan.html:251
|
||||
#, fuzzy
|
||||
#| msgid "Servings"
|
||||
msgid "Serving Count"
|
||||
msgstr "Porzioni"
|
||||
msgstr "Numero di porzioni"
|
||||
|
||||
#: .\cookbook\templates\meal_plan.html:153
|
||||
msgid "Create only note"
|
||||
@ -1231,8 +1198,8 @@ msgstr "Correzione giorni feriali"
|
||||
|
||||
#: .\cookbook\templates\meal_plan.html:209
|
||||
msgid ""
|
||||
"Number of days starting from the first day of the week to offset the default "
|
||||
"view."
|
||||
"Number of days starting from the first day of the week to offset the default"
|
||||
" view."
|
||||
msgstr ""
|
||||
"Numero di giorni a partire dal primo giorno della settimana per correggere "
|
||||
"la visualizzazione predefinita."
|
||||
@ -1274,98 +1241,40 @@ msgid "Meal Plan Help"
|
||||
msgstr "Aiuto per il piano alimentare"
|
||||
|
||||
#: .\cookbook\templates\meal_plan.html:344
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "\n"
|
||||
#| " <p>The meal plan module allows planning of "
|
||||
#| "meals both with recipes or just notes.</p>\n"
|
||||
#| " <p>Simply select a recipe from the list of "
|
||||
#| "recently viewed recipes or search the one you\n"
|
||||
#| " want and drag it to the desired plan "
|
||||
#| "position. You can also add a note and a title and\n"
|
||||
#| " then drag the recipe to create a plan "
|
||||
#| "entry with a custom title and note. Creating only\n"
|
||||
#| " Notes is possible by dragging the create "
|
||||
#| "note box into the plan.</p>\n"
|
||||
#| " <p>Click on a recipe in order to open the "
|
||||
#| "detail view. Here you can also add it to the\n"
|
||||
#| " shopping list. You can also add all "
|
||||
#| "recipes of a day to the shopping list by\n"
|
||||
#| " clicking the shopping cart at the top of "
|
||||
#| "the table.</p>\n"
|
||||
#| " <p>Since a common use case is to plan meals "
|
||||
#| "together you can define\n"
|
||||
#| " users you want to share your plan with in "
|
||||
#| "the settings.\n"
|
||||
#| " </p>\n"
|
||||
#| " <p>You can also edit the types of meals you "
|
||||
#| "want to plan. If you share your plan with\n"
|
||||
#| " someone with\n"
|
||||
#| " different meals, their meal types will "
|
||||
#| "appear in your list as well. To prevent\n"
|
||||
#| " duplicates (e.g. Other and Misc.)\n"
|
||||
#| " name your meal types the same as the "
|
||||
#| "users you share your meals with and they will be\n"
|
||||
#| " merged.</p>\n"
|
||||
#| " "
|
||||
msgid ""
|
||||
"\n"
|
||||
" <p>The meal plan module allows planning of meals "
|
||||
"both with recipes and notes.</p>\n"
|
||||
" <p>Simply select a recipe from the list of "
|
||||
"recently viewed recipes or search the one you\n"
|
||||
" want and drag it to the desired plan "
|
||||
"position. You can also add a note and a title and\n"
|
||||
" then drag the recipe to create a plan entry "
|
||||
"with a custom title and note. Creating only\n"
|
||||
" Notes is possible by dragging the create "
|
||||
"note box into the plan.</p>\n"
|
||||
" <p>Click on a recipe in order to open the "
|
||||
"detailed view. There you can also add it to the\n"
|
||||
" shopping list. You can also add all recipes "
|
||||
"of a day to the shopping list by\n"
|
||||
" clicking the shopping cart at the top of the "
|
||||
"table.</p>\n"
|
||||
" <p>Since a common use case is to plan meals "
|
||||
"together you can define\n"
|
||||
" users you want to share your plan with in "
|
||||
"the settings.\n"
|
||||
" <p>The meal plan module allows planning of meals both with recipes and notes.</p>\n"
|
||||
" <p>Simply select a recipe from the list of recently viewed recipes or search the one you\n"
|
||||
" want and drag it to the desired plan position. You can also add a note and a title and\n"
|
||||
" then drag the recipe to create a plan entry with a custom title and note. Creating only\n"
|
||||
" Notes is possible by dragging the create note box into the plan.</p>\n"
|
||||
" <p>Click on a recipe in order to open the detailed view. There you can also add it to the\n"
|
||||
" shopping list. You can also add all recipes of a day to the shopping list by\n"
|
||||
" clicking the shopping cart at the top of the table.</p>\n"
|
||||
" <p>Since a common use case is to plan meals together you can define\n"
|
||||
" users you want to share your plan with in the settings.\n"
|
||||
" </p>\n"
|
||||
" <p>You can also edit the types of meals you want "
|
||||
"to plan. If you share your plan with\n"
|
||||
" <p>You can also edit the types of meals you want to plan. If you share your plan with\n"
|
||||
" someone with\n"
|
||||
" different meals, their meal types will "
|
||||
"appear in your list as well. To prevent\n"
|
||||
" different meals, their meal types will appear in your list as well. To prevent\n"
|
||||
" duplicates (e.g. Other and Misc.)\n"
|
||||
" name your meal types the same as the users "
|
||||
"you share your meals with and they will be\n"
|
||||
" name your meal types the same as the users you share your meals with and they will be\n"
|
||||
" merged.</p>\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
"<p>Il modulo del piano alimentare consente di pianificare i pasti sia con "
|
||||
"ricette che con semplici note.</p>\n"
|
||||
"<p>Il modulo del piano alimentare consente di pianificare i pasti sia con ricette che con semplici note.</p>\n"
|
||||
"<p>Seleziona una ricetta dalla lista delle ricette recenti o cercane una,\n"
|
||||
"quindi spostala sulla posizione desiderata. Puoi anche aggiungere una nota e "
|
||||
"un titolo e\n"
|
||||
"poi trascinare la ricetta per creare una voce nel piano con un titolo e una "
|
||||
"nota personalizzata. Si possono anche creare\n"
|
||||
"quindi spostala sulla posizione desiderata. Puoi anche aggiungere una nota e un titolo e\n"
|
||||
"poi trascinare la ricetta per creare una voce nel piano con un titolo e una nota personalizzata. Si possono anche creare\n"
|
||||
"delle note trascinando la casella della nota nel piano.</p>\n"
|
||||
"<p>Clicca su una ricetta per aprire la pagina dei dettagli. Qui potrai anche "
|
||||
"aggiungerla alla lista della spesa. Puoi anche aggiungere tutte le ricette "
|
||||
"di un giorno alla lista della spesa, basterà cliccare sul carrello sopra la "
|
||||
"tabella.</p>\n"
|
||||
"<p>Dato che è comune pianificare i pasti con qualcun altro, nelle "
|
||||
"impostazioni puoi scegliere gli utenti con i quali condividere il tuo piano."
|
||||
"</p>\n"
|
||||
"<p>Puoi anche modificare i tipi di pasto che vuoi pianificare. Se condividi "
|
||||
"il piano con\n"
|
||||
"<p>Clicca su una ricetta per aprire la vista dettagliata. Qui potrai anche aggiungerla alla lista della spesa. Puoi anche aggiungere tutte le ricette di un giorno alla lista della spesa, basterà cliccare sul carrello sopra la tabella.</p>\n"
|
||||
"<p>Dato che è comune pianificare i pasti con altre persone, nelle impostazioni puoi scegliere gli utenti con i quali condividere il tuo piano.</p>\n"
|
||||
"<p>Puoi anche modificare i tipi di pasto che vuoi pianificare. Se condividi il piano con\n"
|
||||
"qualcuno\n"
|
||||
"con pasti differenti, i loro tipi di pasto appariranno anche nella tua "
|
||||
"lista. Per prevenire\n"
|
||||
"con pasti differenti, i loro tipi di pasto appariranno anche nella tua lista. Per evitare\n"
|
||||
"duplicati (es. Altri e Varie)\n"
|
||||
"dai nomi ai tuoi tipi di pasto uguali ai tuoi utenti in modo che verranno "
|
||||
"uniti.</p>"
|
||||
"dai nomi ai tuoi tipi di pasto uguali ai tuoi utenti in modo che verranno uniti.</p>"
|
||||
|
||||
#: .\cookbook\templates\meal_plan_entry.html:6
|
||||
msgid "Meal Plan View"
|
||||
@ -1382,27 +1291,32 @@ msgstr "Altri pasti di questo giorno"
|
||||
#: .\cookbook\templates\no_groups_info.html:5
|
||||
#: .\cookbook\templates\offline.html:6
|
||||
msgid "Offline"
|
||||
msgstr ""
|
||||
msgstr "Non in linea"
|
||||
|
||||
#: .\cookbook\templates\no_groups_info.html:12
|
||||
msgid "No Permissions"
|
||||
msgstr ""
|
||||
msgstr "Nessun permesso"
|
||||
|
||||
#: .\cookbook\templates\no_groups_info.html:15
|
||||
msgid ""
|
||||
"You do not have any groups and therefor cannot use this application. Please "
|
||||
"contact your administrator."
|
||||
msgstr ""
|
||||
"Non fai parte di un gruppo e questo non ti consente di usare l'applicazione."
|
||||
" Contatta il tuo amministratore."
|
||||
|
||||
#: .\cookbook\templates\offline.html:19
|
||||
msgid "You are currently offline!"
|
||||
msgstr ""
|
||||
msgstr "Al momento sei offline!"
|
||||
|
||||
#: .\cookbook\templates\offline.html:20
|
||||
msgid ""
|
||||
"The recipes listed below are available for offline viewing because you have "
|
||||
"recently viewed them. Keep in mind that data might be outdated."
|
||||
msgstr ""
|
||||
"Le ricette qui sotto sono disponibili per essere consultate quando sei "
|
||||
"offline perché le hai aperte di recente. Ricorda che queste informazioni "
|
||||
"potrebbero non essere aggiornate."
|
||||
|
||||
#: .\cookbook\templates\recipe_view.html:21 .\cookbook\templates\stats.html:47
|
||||
msgid "Comments"
|
||||
@ -1447,7 +1361,7 @@ msgstr "Account"
|
||||
|
||||
#: .\cookbook\templates\settings.html:38
|
||||
msgid "Link social account"
|
||||
msgstr ""
|
||||
msgstr "Collega account social"
|
||||
|
||||
#: .\cookbook\templates\settings.html:42
|
||||
msgid "Language"
|
||||
@ -1471,8 +1385,8 @@ msgstr ""
|
||||
|
||||
#: .\cookbook\templates\settings.html:92
|
||||
msgid ""
|
||||
"Use the token as an Authorization header prefixed by the word token as shown "
|
||||
"in the following examples:"
|
||||
"Use the token as an Authorization header prefixed by the word token as shown"
|
||||
" in the following examples:"
|
||||
msgstr ""
|
||||
"Usa il token come header Authorization preceduto dalla parola Token come "
|
||||
"negli esempi seguenti:"
|
||||
@ -1509,13 +1423,11 @@ msgstr "Nessuna ricetta selezionata"
|
||||
|
||||
#: .\cookbook\templates\shopping_list.html:145
|
||||
msgid "Entry Mode"
|
||||
msgstr ""
|
||||
msgstr "Modalità di inserimento"
|
||||
|
||||
#: .\cookbook\templates\shopping_list.html:153
|
||||
#, fuzzy
|
||||
#| msgid "New Entry"
|
||||
msgid "Add Entry"
|
||||
msgstr "Nuovo Campo"
|
||||
msgstr "Aggiungi voce"
|
||||
|
||||
#: .\cookbook\templates\shopping_list.html:168
|
||||
msgid "Amount"
|
||||
@ -1523,13 +1435,11 @@ msgstr "Quantità"
|
||||
|
||||
#: .\cookbook\templates\shopping_list.html:224
|
||||
msgid "Supermarket"
|
||||
msgstr ""
|
||||
msgstr "Supermercato"
|
||||
|
||||
#: .\cookbook\templates\shopping_list.html:234
|
||||
#, fuzzy
|
||||
#| msgid "Select User"
|
||||
msgid "Select Supermarket"
|
||||
msgstr "Seleziona utente"
|
||||
msgstr "Seleziona supermercato"
|
||||
|
||||
#: .\cookbook\templates\shopping_list.html:258
|
||||
msgid "Select User"
|
||||
@ -1558,26 +1468,27 @@ msgstr "Si è verificato un errore durante la creazione di una risorsa!"
|
||||
#: .\cookbook\templates\socialaccount\connections.html:4
|
||||
#: .\cookbook\templates\socialaccount\connections.html:7
|
||||
msgid "Account Connections"
|
||||
msgstr ""
|
||||
msgstr "Collegamenti dell'account"
|
||||
|
||||
#: .\cookbook\templates\socialaccount\connections.html:10
|
||||
msgid ""
|
||||
"You can sign in to your account using any of the following third party\n"
|
||||
" accounts:"
|
||||
msgstr ""
|
||||
"Puoi accedere al tuo account usando uno dei seguenti account di terze parti:"
|
||||
|
||||
#: .\cookbook\templates\socialaccount\connections.html:36
|
||||
msgid "Remove"
|
||||
msgstr ""
|
||||
msgstr "Rimuovi"
|
||||
|
||||
#: .\cookbook\templates\socialaccount\connections.html:44
|
||||
msgid ""
|
||||
"You currently have no social network accounts connected to this account."
|
||||
msgstr ""
|
||||
msgstr "Non hai account di social network collegati a questo account."
|
||||
|
||||
#: .\cookbook\templates\socialaccount\connections.html:47
|
||||
msgid "Add a 3rd Party Account"
|
||||
msgstr ""
|
||||
msgstr "Aggiungi un account di terze parti"
|
||||
|
||||
#: .\cookbook\templates\stats.html:4
|
||||
msgid "Stats"
|
||||
@ -1630,18 +1541,14 @@ msgstr "Informazioni di sistema"
|
||||
#: .\cookbook\templates\system.html:51
|
||||
msgid ""
|
||||
"\n"
|
||||
" Django Recipes is an open source free software application. It can "
|
||||
"be found on\n"
|
||||
" Django Recipes is an open source free software application. It can be found on\n"
|
||||
" <a href=\"https://github.com/vabene1111/recipes\">GitHub</a>.\n"
|
||||
" Changelogs can be found <a href=\"https://github.com/vabene1111/"
|
||||
"recipes/releases\">here</a>.\n"
|
||||
" Changelogs can be found <a href=\"https://github.com/vabene1111/recipes/releases\">here</a>.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Django Recipes è una applicazione gratuita e open source. È disponibile su "
|
||||
"<a href=\"https://github.com/vabene1111/recipes\">GitHub</a>.\n"
|
||||
"Le ultime novità sono disponibili <a href=\"https://github.com/vabene1111/"
|
||||
"recipes/releases\">qui</a>."
|
||||
"Django Recipes è una applicazione gratuita e open source. È disponibile su <a href=\"https://github.com/vabene1111/recipes\">GitHub</a>.\n"
|
||||
"Le ultime novità sono disponibili <a href=\"https://github.com/vabene1111/recipes/releases\">qui</a>."
|
||||
|
||||
#: .\cookbook\templates\system.html:65
|
||||
msgid "Media Serving"
|
||||
@ -1661,16 +1568,13 @@ msgstr "Ok"
|
||||
msgid ""
|
||||
"Serving media files directly using gunicorn/python is <b>not recommend</b>!\n"
|
||||
" Please follow the steps described\n"
|
||||
" <a href=\"https://github.com/vabene1111/recipes/releases/"
|
||||
"tag/0.8.1\">here</a> to update\n"
|
||||
" <a href=\"https://github.com/vabene1111/recipes/releases/tag/0.8.1\">here</a> to update\n"
|
||||
" your installation.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"Erogare i file multimediali usando gunicorn/python <b>non è raccomandato</"
|
||||
"b>!\n"
|
||||
"Erogare i file multimediali usando gunicorn/python <b>non è raccomandato</b>!\n"
|
||||
"Segui i passi descritti\n"
|
||||
"<a href=\"https://github.com/vabene1111/recipes/releases/tag/0.8.1\">qui</a> "
|
||||
"per aggiornare la tua installazione."
|
||||
"<a href=\"https://github.com/vabene1111/recipes/releases/tag/0.8.1\">qui</a> per aggiornare la tua installazione."
|
||||
|
||||
#: .\cookbook\templates\system.html:74 .\cookbook\templates\system.html:90
|
||||
#: .\cookbook\templates\system.html:105 .\cookbook\templates\system.html:119
|
||||
@ -1684,18 +1588,14 @@ msgstr "Chiave segreta"
|
||||
#: .\cookbook\templates\system.html:83
|
||||
msgid ""
|
||||
"\n"
|
||||
" You do not have a <code>SECRET_KEY</code> configured in your "
|
||||
"<code>.env</code> file. Django defaulted to the\n"
|
||||
" You do not have a <code>SECRET_KEY</code> configured in your <code>.env</code> file. Django defaulted to the\n"
|
||||
" standard key\n"
|
||||
" provided with the installation which is publicly know and "
|
||||
"insecure! Please set\n"
|
||||
" <code>SECRET_KEY</code> int the <code>.env</code> configuration "
|
||||
"file.\n"
|
||||
" provided with the installation which is publicly know and insecure! Please set\n"
|
||||
" <code>SECRET_KEY</code> int the <code>.env</code> configuration file.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Non hai inserito una <code>SECRET_KEY</code> nel file <code>.env</code>. "
|
||||
"Django ha dovuto usare la chiave standard\n"
|
||||
"Non hai inserito una <code>SECRET_KEY</code> nel file <code>.env</code>. Django ha dovuto usare la chiave standard\n"
|
||||
"dell'installazione che è pubblica e insicura! Sei pregato di aggiungere una\n"
|
||||
"<code>SECRET_KEY</code> nel file di configurazione <code>.env</code>."
|
||||
|
||||
@ -1706,16 +1606,13 @@ msgstr "Modalità di debug"
|
||||
#: .\cookbook\templates\system.html:99
|
||||
msgid ""
|
||||
"\n"
|
||||
" This application is still running in debug mode. This is most "
|
||||
"likely not needed. Turn of debug mode by\n"
|
||||
" This application is still running in debug mode. This is most likely not needed. Turn of debug mode by\n"
|
||||
" setting\n"
|
||||
" <code>DEBUG=0</code> int the <code>.env</code> configuration "
|
||||
"file.\n"
|
||||
" <code>DEBUG=0</code> int the <code>.env</code> configuration file.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Questa applicazione è in esecuzione in modalità di debug. Probabilmente non "
|
||||
"è necessario, spegni la modalità di debug \n"
|
||||
"Questa applicazione è in esecuzione in modalità di debug. Probabilmente non è necessario, spegni la modalità di debug \n"
|
||||
"configurando\n"
|
||||
"<code>DEBUG=0</code> nel file di configurazione<code>.env</code>."
|
||||
|
||||
@ -1730,14 +1627,12 @@ msgstr "Info"
|
||||
#: .\cookbook\templates\system.html:114
|
||||
msgid ""
|
||||
"\n"
|
||||
" This application is not running with a Postgres database "
|
||||
"backend. This is ok but not recommended as some\n"
|
||||
" This application is not running with a Postgres database backend. This is ok but not recommended as some\n"
|
||||
" features only work with postgres databases.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Questa applicazione non sta girando su un database Postgres. Non è "
|
||||
"raccomandato perché alcune\n"
|
||||
"Questa applicazione non sta girando su un database Postgres. Non è raccomandato perché alcune\n"
|
||||
"funzionalità sono disponibili solo con un database Posgres."
|
||||
|
||||
#: .\cookbook\templates\url_import.html:5
|
||||
@ -1773,18 +1668,14 @@ msgstr "Info"
|
||||
#: .\cookbook\templates\url_import.html:235
|
||||
msgid ""
|
||||
" Only websites containing ld+json or microdata information can currently\n"
|
||||
" be imported. Most big recipe pages "
|
||||
"support this. If you site cannot be imported but\n"
|
||||
" be imported. Most big recipe pages support this. If you site cannot be imported but\n"
|
||||
" you think\n"
|
||||
" it probably has some kind of structured "
|
||||
"data feel free to post an example in the\n"
|
||||
" it probably has some kind of structured data feel free to post an example in the\n"
|
||||
" github issues."
|
||||
msgstr ""
|
||||
"Possono essere importati solo i siti che contengono informazioni Id+json o "
|
||||
"microdata.\n"
|
||||
"Possono essere importati solo i siti che contengono informazioni Id+json o microdata.\n"
|
||||
"I maggiori siti di ricette di solito sono supportati.\n"
|
||||
"Se questo sito non può essere importato ma credi che abbia una qualche tipo "
|
||||
"di struttura dati, puoi inviare un esempio nella sezione Issues su GitHub."
|
||||
"Se questo sito non può essere importato ma credi che abbia una qualche tipo di struttura dati, puoi inviare un esempio nella sezione Issues su GitHub."
|
||||
|
||||
#: .\cookbook\templates\url_import.html:243
|
||||
msgid "Google ld+json Info"
|
||||
@ -1808,7 +1699,7 @@ msgstr "La preferenza per l'utente fornito esiste già"
|
||||
|
||||
#: .\cookbook\views\api.py:416 .\cookbook\views\views.py:265
|
||||
msgid "This feature is not available in the demo version!"
|
||||
msgstr ""
|
||||
msgstr "Questa funzione non è disponibile nella versione demo!"
|
||||
|
||||
#: .\cookbook\views\api.py:439
|
||||
msgid "Sync successful!"
|
||||
@ -1832,7 +1723,8 @@ msgstr ""
|
||||
#, python-format
|
||||
msgid "Batch edit done. %(count)d recipe was updated."
|
||||
msgid_plural "Batch edit done. %(count)d Recipes where updated."
|
||||
msgstr[0] "Modifica di massa completata. %(count)d ricetta è stata aggiornata."
|
||||
msgstr[0] ""
|
||||
"Modifica di massa completata. %(count)d ricetta è stata aggiornata."
|
||||
msgstr[1] ""
|
||||
"Modifica di massa completata. %(count)d ricette sono state aggiornate."
|
||||
|
||||
@ -1901,7 +1793,7 @@ msgstr "Le unità sono state unite!"
|
||||
|
||||
#: .\cookbook\views\edit.py:295 .\cookbook\views\edit.py:317
|
||||
msgid "Cannot merge with the same object!"
|
||||
msgstr ""
|
||||
msgstr "Non è possibile unirlo con lo stesso oggetto!"
|
||||
|
||||
#: .\cookbook\views\edit.py:311
|
||||
msgid "Foods merged!"
|
||||
@ -1909,11 +1801,11 @@ msgstr "Gli alimenti sono stati uniti!"
|
||||
|
||||
#: .\cookbook\views\import_export.py:42
|
||||
msgid "Importing is not implemented for this provider"
|
||||
msgstr ""
|
||||
msgstr "Questo provider non permette l'importazione"
|
||||
|
||||
#: .\cookbook\views\import_export.py:58
|
||||
msgid "Exporting is not implemented for this provider"
|
||||
msgstr ""
|
||||
msgstr "Questo provider non permette l'esportazione"
|
||||
|
||||
#: .\cookbook\views\lists.py:42
|
||||
msgid "Import Log"
|
||||
@ -1945,7 +1837,7 @@ msgstr "Commento salvato!"
|
||||
|
||||
#: .\cookbook\views\views.py:152
|
||||
msgid "This recipe is already linked to the book!"
|
||||
msgstr ""
|
||||
msgstr "Questa ricetta è già collegata al libro!"
|
||||
|
||||
#: .\cookbook\views\views.py:158
|
||||
msgid "Bookmark saved!"
|
||||
@ -1954,8 +1846,8 @@ msgstr "Preferito salvato!"
|
||||
#: .\cookbook\views\views.py:380
|
||||
msgid ""
|
||||
"The setup page can only be used to create the first user! If you have "
|
||||
"forgotten your superuser credentials please consult the django documentation "
|
||||
"on how to reset passwords."
|
||||
"forgotten your superuser credentials please consult the django documentation"
|
||||
" on how to reset passwords."
|
||||
msgstr ""
|
||||
"La pagina di configurazione può essere usata solo per creare il primo "
|
||||
"utente! Se hai dimenticato le credenziali del tuo super utente controlla la "
|
||||
@ -1976,158 +1868,3 @@ msgstr "È stato fornito un link di invito non valido!"
|
||||
#: .\cookbook\views\views.py:470
|
||||
msgid "Invite Link not valid or already used!"
|
||||
msgstr "Il link di invito non è valido o è stato già usato!"
|
||||
|
||||
#~ msgid "Export Base64 encoded image?"
|
||||
#~ msgstr "Esportare immagini codificate in Base64?"
|
||||
|
||||
#~ msgid "Download export directly or show on page?"
|
||||
#~ msgstr "Scaricare l'esportazione direttamente o mostrare sulla pagina?"
|
||||
|
||||
#~ msgid "Simply paste a JSON export into this textarea and click import."
|
||||
#~ msgstr ""
|
||||
#~ "Semplicemente incolla un'esportazione JSON in questa area di testo e "
|
||||
#~ "clicca su importa."
|
||||
|
||||
#~ msgid "Scaling factor for recipe."
|
||||
#~ msgstr "Fattore di ridimensionamento per le ricette."
|
||||
|
||||
#~ msgid "Exported Recipe"
|
||||
#~ msgstr "Ricette Esportate"
|
||||
|
||||
#~ msgid "Copy to clipboard"
|
||||
#~ msgstr "Copia negli appunti"
|
||||
|
||||
#~ msgid "Copied!"
|
||||
#~ msgstr "Copiato!"
|
||||
|
||||
#~ msgid "Copy list to clipboard"
|
||||
#~ msgstr "Copia la lista negli appunti"
|
||||
|
||||
#~ msgid "Error"
|
||||
#~ msgstr "Errore"
|
||||
|
||||
#~ msgid "There was an error loading the recipe!"
|
||||
#~ msgstr "Si è verificato un errore durante il caricamento della ricetta!"
|
||||
|
||||
#~ msgid "Updated"
|
||||
#~ msgstr "Caricato"
|
||||
|
||||
#~ msgid "Changes saved successfully!"
|
||||
#~ msgstr "Cambiamenti salvati con successo!"
|
||||
|
||||
#~ msgid "There was an error updating the recipe!"
|
||||
#~ msgstr "Si è verificato un errore durante l'aggiornamento della ricetta!"
|
||||
|
||||
#~ msgid "Are you sure that you want to delete this ingredient?"
|
||||
#~ msgstr "Sei sicuro di voler eliminare questo ingrediente?"
|
||||
|
||||
#~ msgid "Are you sure that you want to delete this step?"
|
||||
#~ msgstr "Sei sicuro di voler eliminare questo step?"
|
||||
|
||||
#~ msgid "There was an error loading a resource!"
|
||||
#~ msgstr "Si è verificato un errore durante il caricamento di una risorsa!"
|
||||
|
||||
#~ msgid "Recipe Multiplier"
|
||||
#~ msgstr "Moltiplicatore di Ricetta"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "When deleting a meal type all entries using that type will be deleted as "
|
||||
#~ "well. Deletion will apply when configuration is saved. Do you want to "
|
||||
#~ "proceed?"
|
||||
#~ msgstr ""
|
||||
#~ "Quando elimi un tipo di pasto tutte le voci che usano quel tipo verranno "
|
||||
#~ "eliminate. L'eliminazione avviene quando la configurazione viene salvata. "
|
||||
#~ "Vuoi procedere?"
|
||||
|
||||
#~ msgid "Add to Book"
|
||||
#~ msgstr "Aggiungi a libro"
|
||||
|
||||
#~ msgid "Add to Plan"
|
||||
#~ msgstr "Aggiungi a piano"
|
||||
|
||||
#~ msgid "Print"
|
||||
#~ msgstr "Stampa"
|
||||
|
||||
#~ msgid "Share"
|
||||
#~ msgstr "Condividi"
|
||||
|
||||
#~ msgid "in"
|
||||
#~ msgstr "in"
|
||||
|
||||
#~ msgid "Preparation time ~"
|
||||
#~ msgstr "Tempo di preparazione ~"
|
||||
|
||||
#~ msgid "Minutes"
|
||||
#~ msgstr "Minuti"
|
||||
|
||||
#~ msgid "View external recipe"
|
||||
#~ msgstr "Mostra ricetta esterna"
|
||||
|
||||
#~ msgid "External recipe image"
|
||||
#~ msgstr "Immagine ricetta esterna"
|
||||
|
||||
#~ msgid "External recipe"
|
||||
#~ msgstr "Ricetta Esterna"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
#~ " This is an external recipe, which "
|
||||
#~ "means you can only view it by opening the link\n"
|
||||
#~ " above.\n"
|
||||
#~ " You can convert this recipe to a "
|
||||
#~ "fancy recipe by pressing the convert button. The\n"
|
||||
#~ " original\n"
|
||||
#~ " file\n"
|
||||
#~ " will still be accessible.\n"
|
||||
#~ " "
|
||||
#~ msgstr ""
|
||||
#~ "\n"
|
||||
#~ "Questa è una ricetta esterna, che significa puoi solo aprirla con il "
|
||||
#~ "link \n"
|
||||
#~ "qui sopra.\n"
|
||||
#~ "Puoi convertire questa ricetta ad una più bella cliccando il tasto "
|
||||
#~ "Converti.\n"
|
||||
#~ "Il\n"
|
||||
#~ "file \n"
|
||||
#~ "originale\n"
|
||||
#~ "sarà sempre accessibile."
|
||||
|
||||
#~ msgid "Convert now!"
|
||||
#~ msgstr "Converti ora!"
|
||||
|
||||
#~ msgid "Your username and password didn't match. Please try again."
|
||||
#~ msgstr ""
|
||||
#~ "La combinazione inserita di username e password non è valida. Riprova."
|
||||
|
||||
#~ msgid "There was an error updating a resource!"
|
||||
#~ msgstr "Si è verificato un errore durante l'aggiornamento di una risorsa!"
|
||||
|
||||
#~ msgid "Object created successfully!"
|
||||
#~ msgstr "Oggetto creato con successo!"
|
||||
|
||||
#~ msgid "Please enter a valid food"
|
||||
#~ msgstr "Inserisci un alimento valido"
|
||||
|
||||
#~ msgid "Already importing the selected recipe, please wait!"
|
||||
#~ msgstr "L'importazione della ricetta selezionata è già in corso, attendere!"
|
||||
|
||||
#~ msgid "An error occurred while trying to import this recipe!"
|
||||
#~ msgstr ""
|
||||
#~ "Si è verificato un errore durante il tentativo d'importazione di questa "
|
||||
#~ "ricetta!"
|
||||
|
||||
#~ msgid "Recipe imported successfully!"
|
||||
#~ msgstr "Ricetta importata con successo!"
|
||||
|
||||
#~ msgid "Something went wrong during the import!"
|
||||
#~ msgstr "Qualcosa è andato storto durante l'importazione!"
|
||||
|
||||
#~ msgid "Could not parse the supplied JSON!"
|
||||
#~ msgstr "Impossibile analizzare il codice JSON!"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "External recipes cannot be exported, please share the file directly or "
|
||||
#~ "select an internal recipe."
|
||||
#~ msgstr ""
|
||||
#~ "Le ricette esterne non possono esportate, condividi direttamente il file "
|
||||
#~ "oppure seleziona una ricetta interna."
|
||||
|
File diff suppressed because one or more lines are too long
@ -77,6 +77,9 @@
|
||||
:hide-selected="true"
|
||||
:preserve-search="true"
|
||||
placeholder="{% trans 'Select Keywords' %}"
|
||||
tag-placeholder="{% trans 'Add Keyword' %}"
|
||||
:taggable="true"
|
||||
@tag="addKeyword"
|
||||
label="label"
|
||||
track-by="id"
|
||||
id="id_keywords"
|
||||
@ -667,6 +670,10 @@
|
||||
this.units.push(new_unit.unit)
|
||||
this.recipe.steps[step].ingredients[id] = new_unit
|
||||
},
|
||||
addKeyword: function (tag) {
|
||||
let new_keyword = {'label':tag,'name':tag}
|
||||
this.recipe.keywords.push(new_keyword)
|
||||
},
|
||||
searchKeywords: function (query) {
|
||||
this.keywords_loading = true
|
||||
this.$http.get("{% url 'api:keyword-list' %}" + '?query=' + query + '&limit=10').then((response) => {
|
||||
|
@ -542,6 +542,7 @@
|
||||
this.loadShoppingList()
|
||||
|
||||
{% if recipes %}
|
||||
|
||||
this.loading = true
|
||||
this.edit_mode = true
|
||||
let loadingRecipes = []
|
||||
@ -605,6 +606,7 @@
|
||||
})
|
||||
},
|
||||
loadInitialRecipe: function (recipe, servings) {
|
||||
servings = 1 //TODO temporary until i can actually fix the servings for this #453
|
||||
return this.$http.get('{% url 'api:recipe-detail' 123456 %}'.replace('123456', recipe)).then((response) => {
|
||||
this.addRecipeToList(response.data, servings)
|
||||
}).catch((err) => {
|
||||
|
@ -190,6 +190,9 @@
|
||||
:hide-selected="true"
|
||||
:preserve-search="true"
|
||||
placeholder="{% trans 'Select one' %}"
|
||||
tag-placeholder="{% trans 'Add Keyword' %}"
|
||||
:taggable="true"
|
||||
@tag="addKeyword"
|
||||
label="text"
|
||||
track-by="id"
|
||||
id="id_keywords"
|
||||
@ -357,6 +360,10 @@
|
||||
this.units.push(new_unit.unit)
|
||||
this.recipe_data.recipeIngredient[index] = new_unit
|
||||
},
|
||||
addKeyword: function (tag) {
|
||||
let new_keyword = {'text':tag,'id':null}
|
||||
this.recipe_data.keywords.push(new_keyword)
|
||||
},
|
||||
openUnitSelect: function (id) {
|
||||
let index = id.replace('unit_', '')
|
||||
if (this.recipe_data.recipeIngredient[index].unit !== null) {
|
||||
|
@ -4,7 +4,6 @@ from cookbook.models import Keyword
|
||||
from cookbook.tests.views.test_views import TestViews
|
||||
from django.urls import reverse
|
||||
|
||||
|
||||
class TestApiKeyword(TestViews):
|
||||
|
||||
def setUp(self):
|
||||
@ -63,6 +62,26 @@ class TestApiKeyword(TestViews):
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertEqual(response['name'], 'new')
|
||||
|
||||
def test_keyword_add(self):
|
||||
r = self.user_client_1.post(
|
||||
reverse('api:keyword-list'),
|
||||
{'name': 'test'},
|
||||
content_type='application/json'
|
||||
)
|
||||
response = json.loads(r.content)
|
||||
self.assertEqual(r.status_code, 201)
|
||||
self.assertEqual(response['name'], 'test')
|
||||
|
||||
def test_keyword_add_duplicate(self):
|
||||
r = self.user_client_1.post(
|
||||
reverse('api:keyword-list'),
|
||||
{'name': self.keyword_1.name},
|
||||
content_type='application/json'
|
||||
)
|
||||
response = json.loads(r.content)
|
||||
self.assertEqual(r.status_code, 201)
|
||||
self.assertEqual(response['name'], self.keyword_1.name)
|
||||
|
||||
def test_keyword_delete(self):
|
||||
r = self.user_client_1.delete(
|
||||
reverse(
|
||||
|
14
cookbook/tests/other/test_edits_recipe.py
Normal file → Executable file
14
cookbook/tests/other/test_edits_recipe.py
Normal file → Executable file
@ -11,15 +11,15 @@ class TestEditsRecipe(TestBase):
|
||||
def test_ld_json(self):
|
||||
test_list = [
|
||||
{'file': 'cookbook/tests/resources/websites/ld_json_1.html', 'result_length': 3237},
|
||||
{'file': 'cookbook/tests/resources/websites/ld_json_2.html', 'result_length': 1510},
|
||||
{'file': 'cookbook/tests/resources/websites/ld_json_3.html', 'result_length': 1629},
|
||||
{'file': 'cookbook/tests/resources/websites/ld_json_2.html', 'result_length': 1525},
|
||||
{'file': 'cookbook/tests/resources/websites/ld_json_3.html', 'result_length': 1644},
|
||||
{'file': 'cookbook/tests/resources/websites/ld_json_4.html', 'result_length': 1744},
|
||||
{'file': 'cookbook/tests/resources/websites/ld_json_itemList.html', 'result_length': 3206},
|
||||
{'file': 'cookbook/tests/resources/websites/ld_json_itemList.html', 'result_length': 3222},
|
||||
{'file': 'cookbook/tests/resources/websites/ld_json_multiple.html', 'result_length': 1621},
|
||||
{'file': 'cookbook/tests/resources/websites/micro_data_1.html', 'result_length': 1079},
|
||||
{'file': 'cookbook/tests/resources/websites/micro_data_2.html', 'result_length': 1438},
|
||||
{'file': 'cookbook/tests/resources/websites/micro_data_3.html', 'result_length': 1148},
|
||||
{'file': 'cookbook/tests/resources/websites/micro_data_4.html', 'result_length': 4396},
|
||||
{'file': 'cookbook/tests/resources/websites/micro_data_1.html', 'result_length': 1094},
|
||||
{'file': 'cookbook/tests/resources/websites/micro_data_2.html', 'result_length': 1453},
|
||||
{'file': 'cookbook/tests/resources/websites/micro_data_3.html', 'result_length': 1163},
|
||||
{'file': 'cookbook/tests/resources/websites/micro_data_4.html', 'result_length': 4411},
|
||||
]
|
||||
|
||||
for test in test_list:
|
||||
|
@ -35,6 +35,7 @@ docker-compose:
|
||||
environment:
|
||||
# all the other env
|
||||
- SCRIPT_NAME=/<sub path>
|
||||
- JS_REVERSE_SCRIPT_PREFIX=/<sub path>/
|
||||
- STATIC_URL=/<www path>/static/
|
||||
- MEDIA_URL=/<www path>/media/
|
||||
labels:
|
||||
@ -56,4 +57,4 @@ apache:
|
||||
|
||||
I used two paths `<sub path>` and `<www path>` for simplicity. In my case I have `<sub path> = recipes` and `<www path> = serve/recipes`. One could also change the matching rules of traefik to have everything under one path.
|
||||
|
||||
I left out the TLS config in this example for simplicty.
|
||||
I left out the TLS config in this example for simplicty.
|
||||
|
@ -176,6 +176,7 @@ WSGI_APPLICATION = 'recipes.wsgi.application'
|
||||
DATABASES = {
|
||||
'default': {
|
||||
'ENGINE': os.getenv('DB_ENGINE') if os.getenv('DB_ENGINE') else 'django.db.backends.sqlite3',
|
||||
'OPTIONS': ast.literal_eval(os.getenv('DB_OPTIONS')) if os.getenv('DB_OPTIONS') else {},
|
||||
'HOST': os.getenv('POSTGRES_HOST'),
|
||||
'PORT': os.getenv('POSTGRES_PORT'),
|
||||
'USER': os.getenv('POSTGRES_USER'),
|
||||
@ -212,6 +213,7 @@ USE_L10N = True
|
||||
USE_TZ = True
|
||||
|
||||
LANGUAGES = [
|
||||
('hy', _('Armenian ')),
|
||||
('ca', _('Catalan')),
|
||||
('cs', _('Czech')),
|
||||
('nl', _('Dutch')),
|
||||
@ -229,6 +231,8 @@ LANGUAGES = [
|
||||
# path for django_js_reverse to generate the javascript file containing all urls. Only done because the default command (collectstatic_js_reverse) fails to update the manifest
|
||||
JS_REVERSE_OUTPUT_PATH = os.path.join(BASE_DIR, "cookbook/static/django_js_reverse")
|
||||
|
||||
JS_REVERSE_SCRIPT_PREFIX = os.getenv('JS_REVERSE_SCRIPT_PREFIX', os.getenv('SCRIPT_NAME', ''))
|
||||
|
||||
STATIC_URL = os.getenv('STATIC_URL', '/static/')
|
||||
STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles")
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
bleach==3.3.0
|
||||
bleach-whitelist==0.0.11
|
||||
Django==3.1.6
|
||||
Django==3.1.7
|
||||
django-annoying==0.10.6
|
||||
django-autocomplete-light==3.8.1
|
||||
django-autocomplete-light==3.8.2
|
||||
django-cleanup==5.1.0
|
||||
django-crispy-forms==1.11.0
|
||||
django-crispy-forms==1.11.1
|
||||
django-emoji-picker==0.0.6
|
||||
django-filter==2.4.0
|
||||
django-tables2==2.3.4
|
||||
@ -12,7 +12,7 @@ djangorestframework==3.12.2
|
||||
drf-writable-nested==0.6.2
|
||||
gunicorn==20.0.4
|
||||
lxml==4.6.2
|
||||
Markdown==3.3.3
|
||||
Markdown==3.3.4
|
||||
Pillow==8.1.0
|
||||
psycopg2-binary==2.8.6
|
||||
python-dotenv==0.15.0
|
||||
|
@ -24,7 +24,7 @@
|
||||
<hr/>
|
||||
<div class="row">
|
||||
<div class="col col-md-3">
|
||||
<div class="row d-flex" style="padding-left: 16px;height: 100%">
|
||||
<div class="row d-flex" style="padding-left: 16px">
|
||||
<div class="my-auto" style="padding-right: 4px">
|
||||
<i class="fas fa-user-clock fa-2x text-primary"></i>
|
||||
</div>
|
||||
@ -36,7 +36,7 @@
|
||||
</div>
|
||||
|
||||
<div class="col col-md-3">
|
||||
<div class="row d-flex" style="height: 100%">
|
||||
<div class="row d-flex">
|
||||
<div class="my-auto" style="padding-right: 4px">
|
||||
<i class="far fa-clock fa-2x text-primary"></i>
|
||||
</div>
|
||||
@ -48,7 +48,7 @@
|
||||
</div>
|
||||
|
||||
<div class="col col-md-4 col-10">
|
||||
<div class="row d-flex" style="padding-left: 16px;height: 100%">
|
||||
<div class="row d-flex" style="padding-left: 16px">
|
||||
<div class="my-auto" style="padding-right: 4px">
|
||||
<i class="fas fa-pizza-slice fa-2x text-primary"></i>
|
||||
</div>
|
||||
|
Loading…
Reference in New Issue
Block a user