mirror of
https://github.com/TandoorRecipes/recipes.git
synced 2025-12-28 12:39:36 -05:00
Compare commits
46 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cd2c4b35df | ||
|
|
d1d4cec00f | ||
|
|
6940f405eb | ||
|
|
3e6f7a554a | ||
|
|
4df451a540 | ||
|
|
fd06d67218 | ||
|
|
f546a4d382 | ||
|
|
c2ecf7ef57 | ||
|
|
b9771d7c11 | ||
|
|
d5b53d2bca | ||
|
|
f502cd47e1 | ||
|
|
358fab9a8f | ||
|
|
445e78825a | ||
|
|
e7d9824520 | ||
|
|
c9ebbdd4ec | ||
|
|
85fa211390 | ||
|
|
3f5db2cb03 | ||
|
|
79227b347e | ||
|
|
ffe0c22b3e | ||
|
|
25e5faf135 | ||
|
|
a6f8a9ef06 | ||
|
|
05b51e83a6 | ||
|
|
5625a9ae4f | ||
|
|
8e60a1954b | ||
|
|
52d2d75fe9 | ||
|
|
edb669ab36 | ||
|
|
e9ed28b44d | ||
|
|
343373bf4d | ||
|
|
698ede9eb6 | ||
|
|
3ae73f7cad | ||
|
|
340d36c628 | ||
|
|
703f782be1 | ||
|
|
2ef4514987 | ||
|
|
a89411aeec | ||
|
|
0cf89ca33c | ||
|
|
68ceada28b | ||
|
|
192ca44d89 | ||
|
|
3204aaf161 | ||
|
|
6cf6791fe6 | ||
|
|
6ebb18a932 | ||
|
|
7bde1bf44f | ||
|
|
3075ec066f | ||
|
|
3ddc3c3768 | ||
|
|
7b7b726ec5 | ||
|
|
83cf03a10b | ||
|
|
7b56719716 |
2
.github/workflows/ci.yml
vendored
2
.github/workflows/ci.yml
vendored
@@ -16,7 +16,7 @@ jobs:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: awalsh128/cache-apt-pkgs-action@v1.4.3
|
||||
with:
|
||||
packages: libsasl2-dev python3-dev libldap2-dev libssl-dev
|
||||
packages: libsasl2-dev python3-dev libxml2-dev libxmlsec1-dev libxslt-dev libxmlsec1-openssl libldap2-dev libssl-dev gcc musl-dev postgresql-dev zlib-dev jpeg-dev libwebp-dev openssl-dev libffi-dev cargo openldap-dev python3-dev xmlsec-dev xmlsec build-base g++ curl
|
||||
version: 1.0
|
||||
|
||||
# Setup python & dependencies
|
||||
|
||||
3
boot.sh
3
boot.sh
@@ -41,6 +41,9 @@ if [ -f "${SOCIALACCOUNT_PROVIDERS_FILE}" ]; then
|
||||
export SOCIALACCOUNT_PROVIDERS=$(cat "$SOCIALACCOUNT_PROVIDERS_FILE")
|
||||
fi
|
||||
|
||||
if [ -f "${S3_SECRET_ACCESS_KEY_FILE}" ]; then
|
||||
export S3_SECRET_ACCESS_KEY=$(cat "$S3_SECRET_ACCESS_KEY_FILE")
|
||||
fi
|
||||
|
||||
echo "Waiting for database to be ready..."
|
||||
|
||||
|
||||
@@ -113,7 +113,7 @@ class RecipeShoppingEditor():
|
||||
if not self.servings:
|
||||
self.servings = getattr(self.mealplan, 'servings', None) or getattr(self.recipe, 'servings', 1.0)
|
||||
|
||||
self._shopping_list_recipe = ShoppingListRecipe.objects.create(recipe=self.recipe, mealplan=self.mealplan, servings=self.servings)
|
||||
self._shopping_list_recipe = ShoppingListRecipe.objects.create(recipe=self.recipe, mealplan=self.mealplan, servings=self.servings, space=self.space, created_by=self.created_by)
|
||||
|
||||
if ingredients:
|
||||
self._add_ingredients(ingredients=ingredients)
|
||||
|
||||
@@ -13,7 +13,7 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-08-01 15:04+0200\n"
|
||||
"PO-Revision-Date: 2025-03-12 09:58+0000\n"
|
||||
"PO-Revision-Date: 2025-04-29 02:39+0000\n"
|
||||
"Last-Translator: Nico G <aprops@gmail.com>\n"
|
||||
"Language-Team: Catalan <http://translate.tandoor.dev/projects/tandoor/"
|
||||
"recipes-backend/ca/>\n"
|
||||
@@ -252,7 +252,7 @@ msgstr ""
|
||||
#: .\cookbook\helper\permission_helper.py:164
|
||||
#: .\cookbook\helper\permission_helper.py:187 .\cookbook\views\views.py:117
|
||||
msgid "You are not logged in and therefore cannot view this page!"
|
||||
msgstr "No heu iniciat la sessió, no podeu veure aquesta pàgina."
|
||||
msgstr "No heu iniciat la sessió, no podeu veure aquesta pàgina!"
|
||||
|
||||
#: .\cookbook\helper\permission_helper.py:168
|
||||
#: .\cookbook\helper\permission_helper.py:174
|
||||
@@ -284,10 +284,8 @@ msgid "You have more users than allowed in your space."
|
||||
msgstr "Tens més usuaris dels permesos al teu espai."
|
||||
|
||||
#: .\cookbook\helper\recipe_url_import.py:310
|
||||
#, fuzzy
|
||||
#| msgid "Use fractions"
|
||||
msgid "reverse rotation"
|
||||
msgstr "Utilitza fraccions"
|
||||
msgstr "Direcció inversa"
|
||||
|
||||
#: .\cookbook\helper\recipe_url_import.py:311
|
||||
msgid "careful rotation"
|
||||
@@ -391,7 +389,7 @@ msgstr "Temps de preparació"
|
||||
|
||||
#: .\cookbook\integration\saffron.py:29 .\cookbook\templates\index.html:7
|
||||
msgid "Cookbook"
|
||||
msgstr "Receptari"
|
||||
msgstr "Llibre de receptes"
|
||||
|
||||
#: .\cookbook\integration\saffron.py:31
|
||||
msgid "Section"
|
||||
@@ -436,10 +434,8 @@ msgid "Other"
|
||||
msgstr "Altres"
|
||||
|
||||
#: .\cookbook\migrations\0190_auto_20230525_1506.py:17
|
||||
#, fuzzy
|
||||
#| msgid "Fats"
|
||||
msgid "Fat"
|
||||
msgstr "Greixos"
|
||||
msgstr "Greix"
|
||||
|
||||
#: .\cookbook\migrations\0190_auto_20230525_1506.py:17
|
||||
#: .\cookbook\migrations\0190_auto_20230525_1506.py:18
|
||||
@@ -548,10 +544,8 @@ msgid "Instruction Replace"
|
||||
msgstr "Substituir les Instruccions"
|
||||
|
||||
#: .\cookbook\models.py:1472
|
||||
#, fuzzy
|
||||
#| msgid "New Unit"
|
||||
msgid "Never Unit"
|
||||
msgstr "Nova Unitat"
|
||||
msgstr "Mai unitats"
|
||||
|
||||
#: .\cookbook\models.py:1473
|
||||
msgid "Transpose Words"
|
||||
@@ -562,10 +556,8 @@ msgid "Food Replace"
|
||||
msgstr "Aliment equivalent"
|
||||
|
||||
#: .\cookbook\models.py:1475
|
||||
#, fuzzy
|
||||
#| msgid "Description"
|
||||
msgid "Unit Replace"
|
||||
msgstr "Descripció"
|
||||
msgstr "Reemplaçar la descripció"
|
||||
|
||||
#: .\cookbook\models.py:1476
|
||||
msgid "Name Replace"
|
||||
@@ -577,10 +569,8 @@ msgid "Recipe"
|
||||
msgstr "Recepta"
|
||||
|
||||
#: .\cookbook\models.py:1504
|
||||
#, fuzzy
|
||||
#| msgid "Foods"
|
||||
msgid "Food"
|
||||
msgstr "Menjars"
|
||||
msgstr "Menjar o aliment"
|
||||
|
||||
#: .\cookbook\models.py:1505 .\cookbook\templates\base.html:149
|
||||
msgid "Keyword"
|
||||
@@ -1013,10 +1003,8 @@ msgstr "Historial"
|
||||
#: .\cookbook\templates\base.html:263
|
||||
#: .\cookbook\templates\ingredient_editor.html:7
|
||||
#: .\cookbook\templates\ingredient_editor.html:13
|
||||
#, fuzzy
|
||||
#| msgid "Ingredients"
|
||||
msgid "Ingredient Editor"
|
||||
msgstr "Ingredients"
|
||||
msgstr "Editor d'ingredients"
|
||||
|
||||
#: .\cookbook\templates\base.html:275
|
||||
#: .\cookbook\templates\export_response.html:7
|
||||
@@ -1029,10 +1017,8 @@ msgid "Properties"
|
||||
msgstr "Propietats"
|
||||
|
||||
#: .\cookbook\templates\base.html:301 .\cookbook\views\lists.py:255
|
||||
#, fuzzy
|
||||
#| msgid "Account Connections"
|
||||
msgid "Unit Conversions"
|
||||
msgstr "Connexions de Compte"
|
||||
msgstr "Conversió d'unitats"
|
||||
|
||||
#: .\cookbook\templates\base.html:318 .\cookbook\templates\index.html:47
|
||||
msgid "Import Recipe"
|
||||
@@ -1052,10 +1038,8 @@ msgid "Space Settings"
|
||||
msgstr "Opcions d'espai"
|
||||
|
||||
#: .\cookbook\templates\base.html:340
|
||||
#, fuzzy
|
||||
#| msgid "External Recipes"
|
||||
msgid "External Connectors"
|
||||
msgstr "Receptes Externes"
|
||||
msgstr "Connectors Externs"
|
||||
|
||||
#: .\cookbook\templates\base.html:345 .\cookbook\templates\system.html:13
|
||||
msgid "System"
|
||||
@@ -1067,10 +1051,8 @@ msgstr "Admin"
|
||||
|
||||
#: .\cookbook\templates\base.html:351
|
||||
#: .\cookbook\templates\space_overview.html:25
|
||||
#, fuzzy
|
||||
#| msgid "No Space"
|
||||
msgid "Your Spaces"
|
||||
msgstr "Sense Espai"
|
||||
msgstr "El teu espai"
|
||||
|
||||
#: .\cookbook\templates\base.html:362
|
||||
#: .\cookbook\templates\space_overview.html:6
|
||||
@@ -1121,7 +1103,7 @@ msgstr ""
|
||||
|
||||
#: .\cookbook\templates\batch\monitor.html:6 .\cookbook\views\edit.py:75
|
||||
msgid "Sync"
|
||||
msgstr "Sync"
|
||||
msgstr "Sincronitzar"
|
||||
|
||||
#: .\cookbook\templates\batch\monitor.html:10
|
||||
msgid "Manage watched Folders"
|
||||
@@ -1337,14 +1319,16 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Markdown és un llenguatge de marcatge lleuger que es pot utilitzar per donar "
|
||||
"format a text pla de forma senzilla.\n"
|
||||
" Markdown és un llenguatge de marcatge lleuger que es pot utilitzar "
|
||||
"per donar format a text pla de forma senzilla.\n"
|
||||
"Aquest lloc utilitza la biblioteca <a href=\"https://python-markdown.github."
|
||||
"io/\" target=\"_blank\"> Python Markown</a> per convertir el teu text en un "
|
||||
"bonic format HTML. La documentació completa de Markdown es pot trobar <a "
|
||||
"href=\"https://daringfireball.net/projects/markdown/syntax\" target=\"_blank"
|
||||
"\">aquí</a>.\n"
|
||||
"Pots trobar informació incompleta, encara que suficient més avall."
|
||||
"io/\" target=\"_blank\"> Python Markown</a> \n"
|
||||
"per convertir el teu text en un bonic format HTML. La documentació completa "
|
||||
"de Markdown es pot trobar\n"
|
||||
" <a href=\"https://daringfireball.net/projects/markdown/syntax\" target="
|
||||
"\"_blank\">aquí</a>.\n"
|
||||
"Pots trobar informació incompleta, encara que suficient més avall.\n"
|
||||
" "
|
||||
|
||||
#: .\cookbook\templates\markdown_info.html:25
|
||||
msgid "Headers"
|
||||
@@ -1450,9 +1434,8 @@ msgid ""
|
||||
"\"noreferrer noopener\" target=\"_blank\">this one.</a>"
|
||||
msgstr ""
|
||||
"Les taules de rebaixes són difícils de crear a mà. Es recomana utilitzar un "
|
||||
"editor de taules com\n"
|
||||
"<a href=\"https://www.tablesgenerator.com/markdown_tables\" rel=\"noreferrer "
|
||||
"noopener\" target=\"_blank\">aquest.</a>"
|
||||
"editor de taules com <a href=\"https://www.tablesgenerator.com/"
|
||||
"markdown_tables\" rel=\"noreferrer noopener\" target=\"_blank\">aquest.</a>"
|
||||
|
||||
#: .\cookbook\templates\markdown_info.html:155
|
||||
#: .\cookbook\templates\markdown_info.html:157
|
||||
@@ -1519,10 +1502,8 @@ msgid "Back"
|
||||
msgstr "Enrere"
|
||||
|
||||
#: .\cookbook\templates\property_editor.html:7
|
||||
#, fuzzy
|
||||
#| msgid "Ingredients"
|
||||
msgid "Property Editor"
|
||||
msgstr "Ingredients"
|
||||
msgstr "Editor de propietats"
|
||||
|
||||
#: .\cookbook\templates\recipe_view.html:36
|
||||
msgid "Comments"
|
||||
@@ -1539,7 +1520,7 @@ msgstr "Comentari"
|
||||
|
||||
#: .\cookbook\templates\rest_framework\api.html:5
|
||||
msgid "Recipe Home"
|
||||
msgstr "Receptari"
|
||||
msgstr "Pàgina d'inici"
|
||||
|
||||
#: .\cookbook\templates\search_info.html:5
|
||||
#: .\cookbook\templates\search_info.html:9
|
||||
@@ -1887,17 +1868,15 @@ msgstr "Crear compte de superusuari"
|
||||
|
||||
#: .\cookbook\templates\socialaccount\authentication_error.html:7
|
||||
#: .\cookbook\templates\socialaccount\authentication_error.html:23
|
||||
#, fuzzy
|
||||
#| msgid "Social Login"
|
||||
msgid "Social Network Login Failure"
|
||||
msgstr "Accés Social"
|
||||
msgstr "Error d'inici de sessió mitjançant l'inici de sessió social"
|
||||
|
||||
#: .\cookbook\templates\socialaccount\authentication_error.html:25
|
||||
#, fuzzy
|
||||
#| msgid "An error occurred attempting to move "
|
||||
msgid ""
|
||||
"An error occurred while attempting to login via your social network account."
|
||||
msgstr "Error a l'intentar moure "
|
||||
msgstr ""
|
||||
"S'ha produït un error en intentar iniciar sessió mitjançant el teu compte de "
|
||||
"xarxa social."
|
||||
|
||||
#: .\cookbook\templates\socialaccount\connections.html:4
|
||||
#: .\cookbook\templates\socialaccount\connections.html:15
|
||||
@@ -1928,7 +1907,7 @@ msgstr "Afegir Compte de tercers"
|
||||
#: .\cookbook\templates\socialaccount\login.html:5
|
||||
#: .\cookbook\templates\socialaccount\signup.html:5
|
||||
msgid "Signup"
|
||||
msgstr "Registre"
|
||||
msgstr "Registrar"
|
||||
|
||||
#: .\cookbook\templates\socialaccount\login.html:9
|
||||
#, python-format
|
||||
@@ -1985,10 +1964,8 @@ msgid "Sign in using"
|
||||
msgstr "Registrar emprant"
|
||||
|
||||
#: .\cookbook\templates\space_manage.html:7
|
||||
#, fuzzy
|
||||
#| msgid "Members"
|
||||
msgid "Space Management"
|
||||
msgstr "Membres"
|
||||
msgstr "Gestiona de l'espai"
|
||||
|
||||
#: .\cookbook\templates\space_manage.html:26
|
||||
msgid "Space:"
|
||||
@@ -1999,10 +1976,8 @@ msgid "Manage Subscription"
|
||||
msgstr "Administra Subscripció"
|
||||
|
||||
#: .\cookbook\templates\space_overview.html:13 .\cookbook\views\delete.py:184
|
||||
#, fuzzy
|
||||
#| msgid "Space:"
|
||||
msgid "Space"
|
||||
msgstr "Espai:"
|
||||
msgstr "Espai"
|
||||
|
||||
#: .\cookbook\templates\space_overview.html:17
|
||||
msgid ""
|
||||
@@ -2022,10 +1997,8 @@ msgid "Owner"
|
||||
msgstr "Propietari"
|
||||
|
||||
#: .\cookbook\templates\space_overview.html:57
|
||||
#, fuzzy
|
||||
#| msgid "Create Space"
|
||||
msgid "Leave Space"
|
||||
msgstr "Crear Espai"
|
||||
msgstr "Abandonar l'espai"
|
||||
|
||||
#: .\cookbook\templates\space_overview.html:78
|
||||
#: .\cookbook\templates\space_overview.html:88
|
||||
@@ -2118,11 +2091,12 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
"No es recomana publicar fitxers multimèdia directament mitjançant "
|
||||
"<b>gunicorn / python.</b>\n"
|
||||
"<b>gunicorn / python</b>!\n"
|
||||
"Seguiu els passos descrits\n"
|
||||
"<a href=\"https://github.com/vabene1111/recipes/releases/tag/0.8.1\">aquí</"
|
||||
"a> per actualitzar\n"
|
||||
"la vostra instal·lació."
|
||||
"la vostra instal·lació.\n"
|
||||
" "
|
||||
|
||||
#: .\cookbook\templates\system.html:55 .\cookbook\templates\system.html:70
|
||||
#: .\cookbook\templates\system.html:83 .\cookbook\templates\system.html:94
|
||||
@@ -2147,12 +2121,13 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
"No teniu un <code>SECRET_KEY </code>configurat al fitxer<code> .env.</code> "
|
||||
"Django per defecte ha estat\n"
|
||||
" No teniu un <code>SECRET_KEY </code>configurat al fitxer<code> ."
|
||||
"env.</code> Django per defecte ha estat\n"
|
||||
"clau estàndard\n"
|
||||
"subministrat amb la instal·lació que és coneguda i insegura públicament. "
|
||||
"Estableix-ho\n"
|
||||
"<code>SECRET_KEY</code> al fitxer de configuració<code> .env.</code>"
|
||||
"<code>SECRET_KEY</code> al fitxer de configuració<code> .env.</code>\n"
|
||||
" "
|
||||
|
||||
#: .\cookbook\templates\system.html:73
|
||||
msgid "Debug Mode"
|
||||
@@ -2169,10 +2144,11 @@ msgid ""
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Aquesta aplicació encara s’executa en mode de depuració. És probable que "
|
||||
"això no sigui necessari. Activa el mode de depuració\n"
|
||||
" Aquesta aplicació encara s’executa en mode de depuració. És "
|
||||
"probable que això no sigui necessari. Activa el mode de depuració\n"
|
||||
"configuració\n"
|
||||
"<code>DEBUG = 0</code> al fitxer de configuració<code> .env.</code>"
|
||||
"<code>DEBUG = 0</code> al fitxer de configuració<code> .env.</code>\n"
|
||||
" "
|
||||
|
||||
#: .\cookbook\templates\system.html:86
|
||||
msgid "Allowed Hosts"
|
||||
@@ -2186,6 +2162,11 @@ msgid ""
|
||||
"this.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" La vostra configuració permet tots els amfitrions, això està bé "
|
||||
"en algunes instal·lacions, però en general cal evitar-ho. Consulteu la "
|
||||
"documentació sobre aquest tema.\n"
|
||||
" "
|
||||
|
||||
#: .\cookbook\templates\system.html:97
|
||||
msgid "Database"
|
||||
@@ -2196,10 +2177,8 @@ msgid "Info"
|
||||
msgstr "Info"
|
||||
|
||||
#: .\cookbook\templates\system.html:110 .\cookbook\templates\system.html:127
|
||||
#, fuzzy
|
||||
#| msgid "Use fractions"
|
||||
msgid "Migrations"
|
||||
msgstr "Utilitza fraccions"
|
||||
msgstr "Migracions"
|
||||
|
||||
#: .\cookbook\templates\system.html:116
|
||||
msgid ""
|
||||
@@ -2212,24 +2191,30 @@ msgid ""
|
||||
"issue.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" Les migracions de dades no haurien de fallar mai!\n"
|
||||
" Els errors de migració podrien provocar problemes operatius "
|
||||
"importants a l'aplicació.\n"
|
||||
" Si una migració falla, assegureu-vos que teniu l'última versió "
|
||||
"i, si és així, publiqueu el registre de migració i la visió general a "
|
||||
"continuació en un tiquet de GitHub.\n"
|
||||
" "
|
||||
|
||||
#: .\cookbook\templates\system.html:182
|
||||
msgid "False"
|
||||
msgstr ""
|
||||
msgstr "Fals"
|
||||
|
||||
#: .\cookbook\templates\system.html:182
|
||||
msgid "True"
|
||||
msgstr ""
|
||||
msgstr "Cert"
|
||||
|
||||
#: .\cookbook\templates\system.html:207
|
||||
msgid "Hide"
|
||||
msgstr ""
|
||||
msgstr "Amagar"
|
||||
|
||||
#: .\cookbook\templates\system.html:210
|
||||
#, fuzzy
|
||||
#| msgid "Show Log"
|
||||
msgid "Show"
|
||||
msgstr "Mostra Logs"
|
||||
msgstr "Mostra"
|
||||
|
||||
#: .\cookbook\templates\url_import.html:8
|
||||
msgid "URL Import"
|
||||
@@ -2304,16 +2289,17 @@ msgstr "Afegit {obj.name} a la llista de la compra."
|
||||
#: .\cookbook\views\api.py:742
|
||||
msgid "Filter meal plans from date (inclusive) in the format of YYYY-MM-DD."
|
||||
msgstr ""
|
||||
"Filtrar els plans d'àpats des de la data (inclosa) en el format AAAA-MM-DD."
|
||||
|
||||
#: .\cookbook\views\api.py:743
|
||||
msgid "Filter meal plans to date (inclusive) in the format of YYYY-MM-DD."
|
||||
msgstr ""
|
||||
msgstr "Filtreu els plans de menús actuals (inclosos) en el format AAAA-MM-DD."
|
||||
|
||||
#: .\cookbook\views\api.py:744
|
||||
#, fuzzy
|
||||
#| msgid "ID of recipe a step is part of. For multiple repeat parameter."
|
||||
msgid "Filter meal plans with MealType ID. For multiple repeat parameter."
|
||||
msgstr "ID de recepta forma part d'un pas. Per a múltiples repeteix paràmetre."
|
||||
msgstr ""
|
||||
"Filtra els plans d'àpats amb MealType ID. Per a múltiples paràmetres de "
|
||||
"repetició."
|
||||
|
||||
#: .\cookbook\views\api.py:872
|
||||
msgid "ID of recipe a step is part of. For multiple repeat parameter."
|
||||
@@ -2332,34 +2318,40 @@ msgstr ""
|
||||
"també cerca text complet."
|
||||
|
||||
#: .\cookbook\views\api.py:910
|
||||
#, fuzzy
|
||||
#| msgid "ID of keyword a recipe should have. For multiple repeat parameter."
|
||||
msgid ""
|
||||
"ID of keyword a recipe should have. For multiple repeat parameter. "
|
||||
"Equivalent to keywords_or"
|
||||
msgstr ""
|
||||
"ID de la paraula clau que hauria de tenir una recepta. Per a múltiples "
|
||||
"repeteix paràmetre."
|
||||
"repeteix paràmetre. Equivalent a keywords_or"
|
||||
|
||||
#: .\cookbook\views\api.py:911
|
||||
msgid ""
|
||||
"Keyword IDs, repeat for multiple. Return recipes with any of the keywords"
|
||||
msgstr ""
|
||||
"Identificadors (IDs) de paraules clau, Paraules clau d'identificació, "
|
||||
"repetiu-ne per a múltiples. Retorna receptes amb qualsevol paraula clau"
|
||||
|
||||
#: .\cookbook\views\api.py:912
|
||||
msgid ""
|
||||
"Keyword IDs, repeat for multiple. Return recipes with all of the keywords."
|
||||
msgstr ""
|
||||
"Paraules clau d'identificació (IDs), repetiu-ne per a múltiples. Torna "
|
||||
"receptes que contenen totes les paraules clau."
|
||||
|
||||
#: .\cookbook\views\api.py:913
|
||||
msgid ""
|
||||
"Keyword IDs, repeat for multiple. Exclude recipes with any of the keywords."
|
||||
msgstr ""
|
||||
"Identificador (ID) de les paraules clau, repetiu-ne per a diversos. Exclou "
|
||||
"les receptes que continguin alguna de les paraules clau."
|
||||
|
||||
#: .\cookbook\views\api.py:914
|
||||
msgid ""
|
||||
"Keyword IDs, repeat for multiple. Exclude recipes with all of the keywords."
|
||||
msgstr ""
|
||||
"Identificació (ID) de les paraules clau, repetiu-ne per a diversos. Exclou "
|
||||
"les receptes que continguin alguna de les paraules clau."
|
||||
|
||||
#: .\cookbook\views\api.py:915
|
||||
msgid "ID of food a recipe should have. For multiple repeat parameter."
|
||||
@@ -2370,18 +2362,26 @@ msgstr ""
|
||||
#: .\cookbook\views\api.py:916
|
||||
msgid "Food IDs, repeat for multiple. Return recipes with any of the foods"
|
||||
msgstr ""
|
||||
"ID dels aliments, repeteix-lo per a múltiples. Retorna les receptes que "
|
||||
"continguin més d'un aliment"
|
||||
|
||||
#: .\cookbook\views\api.py:917
|
||||
msgid "Food IDs, repeat for multiple. Return recipes with all of the foods."
|
||||
msgstr ""
|
||||
"ID d'aliments, repetiu-ho per a múltiples. Retorna receptes amb tots els "
|
||||
"aliments."
|
||||
|
||||
#: .\cookbook\views\api.py:918
|
||||
msgid "Food IDs, repeat for multiple. Exclude recipes with any of the foods."
|
||||
msgstr ""
|
||||
"ID d'aliments, repetiu-ho per a múltiples. Exclou receptes que contingui "
|
||||
"algun dels aliments."
|
||||
|
||||
#: .\cookbook\views\api.py:919
|
||||
msgid "Food IDs, repeat for multiple. Exclude recipes with all of the foods."
|
||||
msgstr ""
|
||||
"Identificació (ID) dels aliments, repetiu-ne per a diversos. Exclou les "
|
||||
"receptes que continguin tots els aliments."
|
||||
|
||||
#: .\cookbook\views\api.py:920
|
||||
msgid "ID of unit a recipe should have."
|
||||
@@ -2392,6 +2392,8 @@ msgid ""
|
||||
"Rating a recipe should have or greater. [0 - 5] Negative value filters "
|
||||
"rating less than."
|
||||
msgstr ""
|
||||
"Tingues en compte que una recepta hauria de tenir o ser superior. [0 - 5] Un "
|
||||
"valor negatiu filtra una puntuació inferior a."
|
||||
|
||||
#: .\cookbook\views\api.py:922
|
||||
msgid "ID of book a recipe should be in. For multiple repeat parameter."
|
||||
@@ -2402,70 +2404,94 @@ msgstr ""
|
||||
#: .\cookbook\views\api.py:923
|
||||
msgid "Book IDs, repeat for multiple. Return recipes with any of the books"
|
||||
msgstr ""
|
||||
"Identificadors de llibre (IDs), repeteix per a diversos. Retorna receptes "
|
||||
"amb qualsevol dels llibres"
|
||||
|
||||
#: .\cookbook\views\api.py:924
|
||||
msgid "Book IDs, repeat for multiple. Return recipes with all of the books."
|
||||
msgstr ""
|
||||
"Identificador (IDs) de llibres, repetiu-ho per a diversos. Torna receptes "
|
||||
"amb tots els llibres."
|
||||
|
||||
#: .\cookbook\views\api.py:925
|
||||
msgid "Book IDs, repeat for multiple. Exclude recipes with any of the books."
|
||||
msgstr ""
|
||||
"ID del llibre. Es pot especificar diverses vegades. Exclou les receptes dels "
|
||||
"llibres amb l'ID especificat."
|
||||
|
||||
#: .\cookbook\views\api.py:926
|
||||
msgid "Book IDs, repeat for multiple. Exclude recipes with all of the books."
|
||||
msgstr ""
|
||||
"ID dels llibres, es pot especificar diverses vegades. Exclou les receptes "
|
||||
"amb tots els llibres amb les ID especificades."
|
||||
|
||||
#: .\cookbook\views\api.py:927
|
||||
msgid "If only internal recipes should be returned. [true/<b>false</b>]"
|
||||
msgstr ""
|
||||
msgstr "Només cal retornar les receptes internes. [sí/<b>no</b>]"
|
||||
|
||||
#: .\cookbook\views\api.py:928
|
||||
msgid "Returns the results in randomized order. [true/<b>false</b>]"
|
||||
msgstr ""
|
||||
msgstr "Retorna resultats en ordre aleatori. [sí/<b>no</b>]"
|
||||
|
||||
#: .\cookbook\views\api.py:929
|
||||
msgid "Returns new results first in search results. [true/<b>false</b>]"
|
||||
msgstr ""
|
||||
"En primer lloc, retorna nous resultats als resultats de la cerca. [cert/"
|
||||
"<b>fals</b>]"
|
||||
|
||||
#: .\cookbook\views\api.py:930
|
||||
msgid ""
|
||||
"Filter recipes cooked X times or more. Negative values returns cooked less "
|
||||
"than X times"
|
||||
msgstr ""
|
||||
"Filtra les receptes cuinades X vegades o més. Els valors negatius retornen "
|
||||
"les receptes cuinades menys de X vegades"
|
||||
|
||||
#: .\cookbook\views\api.py:931
|
||||
msgid ""
|
||||
"Filter recipes last cooked on or after YYYY-MM-DD. Prepending - filters on "
|
||||
"or before date."
|
||||
msgstr ""
|
||||
"Filtra les receptes que s'han cuinat per última vegada el AAAA-MM-DD o "
|
||||
"després. Prefixació: filtra la data exacta o abans de la data."
|
||||
|
||||
#: .\cookbook\views\api.py:932
|
||||
msgid ""
|
||||
"Filter recipes created on or after YYYY-MM-DD. Prepending - filters on or "
|
||||
"before date."
|
||||
msgstr ""
|
||||
"Filtra les receptes que s'han creat el AAAA-MM-DD o després. Prefixació: "
|
||||
"filtra la data exacta o abans de la data."
|
||||
|
||||
#: .\cookbook\views\api.py:933
|
||||
msgid ""
|
||||
"Filter recipes updated on or after YYYY-MM-DD. Prepending - filters on or "
|
||||
"before date."
|
||||
msgstr ""
|
||||
"Filtra les receptes que s'han actualitzat el AAAA-MM-DD o després. "
|
||||
"Prefixació: filtra la data exacta o abans de la data."
|
||||
|
||||
#: .\cookbook\views\api.py:934
|
||||
msgid ""
|
||||
"Filter recipes lasts viewed on or after YYYY-MM-DD. Prepending - filters on "
|
||||
"or before date."
|
||||
msgstr ""
|
||||
"Filtra les receptes que s'han visitat per última vegada el AAAA-MM-DD o "
|
||||
"després. Prefixació: filtra la data exacta o abans de la data."
|
||||
|
||||
#: .\cookbook\views\api.py:935
|
||||
msgid "Filter recipes that can be made with OnHand food. [true/<b>false</b>]"
|
||||
msgstr ""
|
||||
"Filtra receptes que poden elaborar-se amb aliments disponibles. [true/"
|
||||
"<b>false</b>]"
|
||||
|
||||
#: .\cookbook\views\api.py:1122
|
||||
msgid ""
|
||||
"Returns the shopping list entry with a primary key of id. Multiple values "
|
||||
"allowed."
|
||||
msgstr ""
|
||||
"Retorna l'entrada de la llista de la compra amb una clau primària "
|
||||
"d'identificador. Es permeten diversos valors."
|
||||
|
||||
#: .\cookbook\views\api.py:1125
|
||||
msgid ""
|
||||
@@ -2473,20 +2499,27 @@ msgid ""
|
||||
"b>]<br> - recent includes unchecked items and recently "
|
||||
"completed items."
|
||||
msgstr ""
|
||||
"Filtreu les entrades de la llista de compres per marcades. [cert, fals, "
|
||||
"ambdues, <b>recent</b>]<br> -recent inclou elements no "
|
||||
"marcats i elements completats recentment."
|
||||
|
||||
#: .\cookbook\views\api.py:1128
|
||||
msgid "Returns the shopping list entries sorted by supermarket category order."
|
||||
msgstr ""
|
||||
"Retorna les entrades de la llista de la compra ordenades per comanda de "
|
||||
"categoria de supermercat."
|
||||
|
||||
#: .\cookbook\views\api.py:1210
|
||||
msgid "Filter for entries with the given recipe"
|
||||
msgstr ""
|
||||
msgstr "Filtrar les entrades amb la recepta especificada"
|
||||
|
||||
#: .\cookbook\views\api.py:1292
|
||||
msgid ""
|
||||
"Return the Automations matching the automation type. Multiple values "
|
||||
"allowed."
|
||||
msgstr ""
|
||||
"Retorna l'entrada de la llista de la compra amb una clau primària de "
|
||||
"l'identificador. Es permeten múltiples valors."
|
||||
|
||||
#: .\cookbook\views\api.py:1415
|
||||
msgid "Nothing to do."
|
||||
@@ -2494,7 +2527,7 @@ msgstr "Res a fer."
|
||||
|
||||
#: .\cookbook\views\api.py:1445
|
||||
msgid "Invalid Url"
|
||||
msgstr ""
|
||||
msgstr "Url Invàlida"
|
||||
|
||||
#: .\cookbook\views\api.py:1449
|
||||
msgid "Connection Refused."
|
||||
@@ -2502,7 +2535,7 @@ msgstr "Connexió Refusada."
|
||||
|
||||
#: .\cookbook\views\api.py:1451
|
||||
msgid "Bad URL Schema."
|
||||
msgstr ""
|
||||
msgstr "Esquema URL erroni."
|
||||
|
||||
#: .\cookbook\views\api.py:1474
|
||||
msgid "No usable data could be found."
|
||||
@@ -2510,7 +2543,7 @@ msgstr "No s'han trobat dades utilitzables."
|
||||
|
||||
#: .\cookbook\views\api.py:1549
|
||||
msgid "File is above space limit"
|
||||
msgstr ""
|
||||
msgstr "El fitxer supera el límit d'emmagatzematge"
|
||||
|
||||
#: .\cookbook\views\api.py:1566 .\cookbook\views\import_export.py:114
|
||||
msgid "Importing is not implemented for this provider"
|
||||
@@ -2525,7 +2558,7 @@ msgstr ""
|
||||
|
||||
#: .\cookbook\views\api.py:1671
|
||||
msgid "Sync successful!"
|
||||
msgstr "Sincronització correcte"
|
||||
msgstr "Sincronització correcta!"
|
||||
|
||||
#: .\cookbook\views\api.py:1674
|
||||
msgid "Error synchronizing with Storage"
|
||||
@@ -2556,42 +2589,36 @@ msgstr ""
|
||||
"almenys un monitor."
|
||||
|
||||
#: .\cookbook\views\delete.py:135
|
||||
#, fuzzy
|
||||
#| msgid "Storage Backend"
|
||||
msgid "Connectors Config Backend"
|
||||
msgstr "Backend d'emmagatzematge"
|
||||
msgstr "Back-end de configuració de connectors"
|
||||
|
||||
#: .\cookbook\views\delete.py:157
|
||||
msgid "Invite Link"
|
||||
msgstr "Enllaç de invitació"
|
||||
|
||||
#: .\cookbook\views\delete.py:168
|
||||
#, fuzzy
|
||||
#| msgid "Members"
|
||||
msgid "Space Membership"
|
||||
msgstr "Membres"
|
||||
msgstr "Membres de l'espai"
|
||||
|
||||
#: .\cookbook\views\edit.py:84
|
||||
msgid "You cannot edit this storage!"
|
||||
msgstr "No podeu editar aquest emmagatzematge."
|
||||
msgstr "No podeu editar aquest emmagatzematge!"
|
||||
|
||||
#: .\cookbook\views\edit.py:108
|
||||
msgid "Storage saved!"
|
||||
msgstr "Emmagatzematge desat."
|
||||
msgstr "Emmagatzematge desat!"
|
||||
|
||||
#: .\cookbook\views\edit.py:110
|
||||
msgid "There was an error updating this storage backend!"
|
||||
msgstr "S'ha produït un error en actualitzar aquest backend d'emmagatzematge."
|
||||
msgstr "S'ha produït un error en actualitzar aquest backend d'emmagatzematge!"
|
||||
|
||||
#: .\cookbook\views\edit.py:134
|
||||
#, fuzzy
|
||||
#| msgid "Changes saved!"
|
||||
msgid "Config saved!"
|
||||
msgstr "Canvis desats!"
|
||||
msgstr "Configuració desada!"
|
||||
|
||||
#: .\cookbook\views\edit.py:142
|
||||
msgid "ConnectorConfig"
|
||||
msgstr ""
|
||||
msgstr "Configuració del connector"
|
||||
|
||||
#: .\cookbook\views\edit.py:198
|
||||
msgid "Changes saved!"
|
||||
@@ -2622,10 +2649,8 @@ msgid "Shopping List"
|
||||
msgstr "Llista de la Compra"
|
||||
|
||||
#: .\cookbook\views\lists.py:77 .\cookbook\views\new.py:98
|
||||
#, fuzzy
|
||||
#| msgid "Storage Backend"
|
||||
msgid "Connector Config Backend"
|
||||
msgstr "Backend d'emmagatzematge"
|
||||
msgstr "Configuració del backend per a connectors"
|
||||
|
||||
#: .\cookbook\views\lists.py:91
|
||||
msgid "Invite Links"
|
||||
@@ -2640,10 +2665,8 @@ msgid "Shopping Categories"
|
||||
msgstr "Categories de Compres"
|
||||
|
||||
#: .\cookbook\views\lists.py:202
|
||||
#, fuzzy
|
||||
#| msgid "Filter"
|
||||
msgid "Custom Filters"
|
||||
msgstr "Filtre"
|
||||
msgstr "Filtres personalitzats"
|
||||
|
||||
#: .\cookbook\views\lists.py:239
|
||||
msgid "Steps"
|
||||
@@ -2651,13 +2674,11 @@ msgstr "Passos"
|
||||
|
||||
#: .\cookbook\views\lists.py:270
|
||||
msgid "Property Types"
|
||||
msgstr ""
|
||||
msgstr "Tipus de propietat"
|
||||
|
||||
#: .\cookbook\views\new.py:86
|
||||
#, fuzzy
|
||||
#| msgid "This feature is not available in the demo version!"
|
||||
msgid "This feature is not enabled by the server admin!"
|
||||
msgstr "Funció no està disponible a la versió de demostració!"
|
||||
msgstr "Aquesta funció no està activada per l'administrador del servidor!"
|
||||
|
||||
#: .\cookbook\views\new.py:123
|
||||
msgid "Imported new recipe!"
|
||||
@@ -2673,11 +2694,9 @@ msgid "This feature is not available in the demo version!"
|
||||
msgstr "Funció no està disponible a la versió de demostració!"
|
||||
|
||||
#: .\cookbook\views\views.py:74
|
||||
#, fuzzy
|
||||
#| msgid "You have reached the maximum number of recipes for your space."
|
||||
msgid ""
|
||||
"You have the reached the maximum amount of spaces that can be owned by you."
|
||||
msgstr "Has arribat al nombre màxim de receptes per al vostre espai."
|
||||
msgstr "Has assolit la quantitat màxima d'espais que pots tenir."
|
||||
|
||||
#: .\cookbook\views\views.py:89
|
||||
msgid ""
|
||||
@@ -2715,47 +2734,36 @@ msgstr "Cerca difusa no és compatible amb aquest mètode de cerca!"
|
||||
#, python-format
|
||||
msgid "PostgreSQL %(v)s is deprecated. Upgrade to a fully supported version!"
|
||||
msgstr ""
|
||||
"PostgreSQL %(v)s està obsolet. Actualitza a una versió totalment compatible!"
|
||||
|
||||
#: .\cookbook\views\views.py:309
|
||||
#, python-format
|
||||
msgid "You are running PostgreSQL %(v1)s. PostgreSQL %(v2)s is recommended"
|
||||
msgstr ""
|
||||
msgstr "Estàs fent servir PostgreSQL %(v1)s. Es recomana PostgreSQL %(v2)s"
|
||||
|
||||
#: .\cookbook\views\views.py:313
|
||||
msgid "Unable to determine PostgreSQL version."
|
||||
msgstr ""
|
||||
msgstr "No es pot determinar la versió de PostgreSQL."
|
||||
|
||||
#: .\cookbook\views\views.py:317
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "\n"
|
||||
#| " This application is not running with a Postgres database "
|
||||
#| "backend. This is ok but not recommended as some\n"
|
||||
#| " features only work with postgres databases.\n"
|
||||
#| " "
|
||||
msgid ""
|
||||
"This application is not running with a Postgres database backend. This is ok "
|
||||
"but not recommended as some features only work with postgres databases."
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Aquesta aplicació no s’executa amb un backend de base de dades Postgres. "
|
||||
"Això està bé, però no es recomana com alguns\n"
|
||||
"les funcions només funcionen amb bases de dades postgres."
|
||||
"Aquesta aplicació no s'executa amb un backend de base de dades Postgres. "
|
||||
"Això està bé, però no es recomanable, ja que algunes funcions només "
|
||||
"funcionen amb bases de dades Postgres."
|
||||
|
||||
#: .\cookbook\views\views.py:360
|
||||
#, fuzzy
|
||||
#| 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."
|
||||
msgid ""
|
||||
"The setup page can only be used to create the first "
|
||||
"user! If you have forgotten your superuser credentials "
|
||||
"please consult the django documentation on how to reset passwords."
|
||||
msgstr ""
|
||||
"La pàgina de configuració només es pot utilitzar per crear el primer usuari. "
|
||||
"Si heu oblidat les vostres credencials de superusuari, consulteu la "
|
||||
"documentació de django sobre com restablir les contrasenyes."
|
||||
"La pàgina de configuració només es pot utilitzar per crear el primer "
|
||||
"usuari! Si heu oblidat les vostres credencials de "
|
||||
"superusuari, consulteu la documentació de django sobre com restablir les "
|
||||
"contrasenyes."
|
||||
|
||||
#: .\cookbook\views\views.py:369
|
||||
msgid "Passwords dont match!"
|
||||
@@ -2767,7 +2775,7 @@ msgstr "L'usuari s'ha creat, si us plau inicieu la sessió!"
|
||||
|
||||
#: .\cookbook\views\views.py:393
|
||||
msgid "Malformed Invite Link supplied!"
|
||||
msgstr "S'ha proporcionat un enllaç d'invitació mal format."
|
||||
msgstr "S'ha proporcionat un enllaç d'invitació amb un format incorrecte!"
|
||||
|
||||
#: .\cookbook\views\views.py:410
|
||||
msgid "Successfully joined space."
|
||||
@@ -2775,7 +2783,7 @@ msgstr "Unit correctament a l'espai."
|
||||
|
||||
#: .\cookbook\views\views.py:416
|
||||
msgid "Invite Link not valid or already used!"
|
||||
msgstr "L'enllaç d'invitació no és vàlid o ja s'ha utilitzat."
|
||||
msgstr "L'enllaç d'invitació no és vàlid o ja s'ha utilitzat!"
|
||||
|
||||
#: .\cookbook\views\views.py:432
|
||||
msgid ""
|
||||
@@ -2795,7 +2803,7 @@ msgstr ""
|
||||
|
||||
#: .\cookbook\views\views.py:451
|
||||
msgid "Manage recipes, shopping list, meal plans and more."
|
||||
msgstr ""
|
||||
msgstr "Gestiona receptes, llistes de la compra, menús setmanals i molt més."
|
||||
|
||||
#: .\cookbook\views\views.py:458
|
||||
msgid "Plan"
|
||||
@@ -2803,17 +2811,15 @@ msgstr "Pla"
|
||||
|
||||
#: .\cookbook\views\views.py:458
|
||||
msgid "View your meal Plan"
|
||||
msgstr ""
|
||||
msgstr "Veure la planificació de menús"
|
||||
|
||||
#: .\cookbook\views\views.py:459
|
||||
msgid "View your cookbooks"
|
||||
msgstr ""
|
||||
msgstr "Veure els meus llibres de receptes"
|
||||
|
||||
#: .\cookbook\views\views.py:460
|
||||
#, fuzzy
|
||||
#| msgid "New Shopping List"
|
||||
msgid "View your shopping lists"
|
||||
msgstr "Nova Llista de Compra"
|
||||
msgstr "Veure la teva llista de la compra"
|
||||
|
||||
#~ msgid "Default unit"
|
||||
#~ msgstr "Unitat per defecte"
|
||||
|
||||
@@ -12,7 +12,7 @@ msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-08-01 15:04+0200\n"
|
||||
"PO-Revision-Date: 2024-12-09 00:58+0000\n"
|
||||
"PO-Revision-Date: 2025-05-18 10:58+0000\n"
|
||||
"Last-Translator: Vincenzo Reale <smart2128vr@gmail.com>\n"
|
||||
"Language-Team: Italian <http://translate.tandoor.dev/projects/tandoor/"
|
||||
"recipes-backend/it/>\n"
|
||||
@@ -1439,7 +1439,7 @@ msgid ""
|
||||
"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. Si raccomanda "
|
||||
"Le tabelle in markdown sono difficili da creare a mano. Si consiglia "
|
||||
"l'utilizzo di un editor di tabelle come <a href=\"https://www.tablesgenerator"
|
||||
".com/markdown_tables\" rel=\"noreferrer noopener\" target=\"_blank\""
|
||||
">questo.</a>"
|
||||
@@ -2098,7 +2098,7 @@ msgid ""
|
||||
" your installation.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"<b>Non è raccomandato</b> erogare i file multimediali con gunicorn/python!\n"
|
||||
"<b>Non è consigliato</b> erogare i file multimediali con gunicorn/python!\n"
|
||||
" Segui i passi descritti\n"
|
||||
" <a href=\"https://github.com/vabene1111/recipes/releases/tag/0.8."
|
||||
"1\">qui</a> per aggiornare\n"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,24 @@
|
||||
# Generated by Django 4.2.18 on 2025-03-14 10:50
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('cookbook', '0219_connectorconfig_supports_description_field'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='shoppinglistrecipe',
|
||||
name='created_by',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='shoppinglistrecipe',
|
||||
name='space',
|
||||
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='cookbook.space'),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,42 @@
|
||||
# Generated by Django 4.2.18 on 2025-03-14 10:50
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
from django.db.models import F, Count
|
||||
from django_scopes import scopes_disabled
|
||||
|
||||
|
||||
def add_space_and_owner_to_shopping_list_recipe(apps, schema_editor):
|
||||
print('migrating shopping list recipe space attribute, this might take a while ...')
|
||||
with scopes_disabled():
|
||||
ShoppingListRecipe = apps.get_model('cookbook', 'ShoppingListRecipe')
|
||||
|
||||
# delete all shopping list recipes that do not have entries as those are of no use anyway
|
||||
ShoppingListRecipe.objects.annotate(entry_count=Count('entries')).filter(entry_count__lte=0).delete()
|
||||
|
||||
shopping_list_recipes = ShoppingListRecipe.objects.all().prefetch_related('entries')
|
||||
update_list = []
|
||||
|
||||
for slr in shopping_list_recipes:
|
||||
if entry := slr.entries.first():
|
||||
if entry.space and entry.created_by:
|
||||
slr.space = entry.space
|
||||
slr.created_by = entry.created_by
|
||||
update_list.append(slr)
|
||||
else:
|
||||
print(slr, 'missing data on entry')
|
||||
else:
|
||||
print(slr, 'missing entry')
|
||||
|
||||
ShoppingListRecipe.objects.bulk_update(update_list, ['space', 'created_by'], batch_size=500)
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
dependencies = [
|
||||
('cookbook', '0220_shoppinglistrecipe_created_by_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(add_space_and_owner_to_shopping_list_recipe),
|
||||
]
|
||||
@@ -0,0 +1,26 @@
|
||||
# Generated by Django 4.2.18 on 2025-03-14 12:41
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('cookbook', '0221_migrate_shoppinglistrecipe_space_created_by'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='shoppinglistrecipe',
|
||||
name='created_by',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='shoppinglistrecipe',
|
||||
name='space',
|
||||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cookbook.space'),
|
||||
),
|
||||
]
|
||||
@@ -1179,31 +1179,18 @@ class MealPlan(ExportModelOperationsMixin('meal_plan'), models.Model, Permission
|
||||
|
||||
class ShoppingListRecipe(ExportModelOperationsMixin('shopping_list_recipe'), models.Model, PermissionModelMixin):
|
||||
name = models.CharField(max_length=32, blank=True, default='')
|
||||
recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE, null=True, blank=True) # TODO make required after old shoppinglist deprecated
|
||||
servings = models.DecimalField(default=1, max_digits=8, decimal_places=4)
|
||||
recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE, null=True, blank=True)
|
||||
mealplan = models.ForeignKey(MealPlan, on_delete=models.CASCADE, null=True, blank=True)
|
||||
|
||||
objects = ScopedManager(space='recipe__space')
|
||||
created_by = models.ForeignKey(User, on_delete=models.CASCADE)
|
||||
space = models.ForeignKey(Space, on_delete=models.CASCADE)
|
||||
|
||||
@staticmethod
|
||||
def get_space_key():
|
||||
return 'recipe', 'space'
|
||||
|
||||
def get_space(self):
|
||||
return self.recipe.space
|
||||
objects = ScopedManager(space='space')
|
||||
|
||||
def __str__(self):
|
||||
return f'Shopping list recipe {self.id} - {self.recipe}'
|
||||
|
||||
def get_owner(self):
|
||||
try:
|
||||
if not self.entries.exists():
|
||||
return 'orphan'
|
||||
else:
|
||||
return getattr(self.entries.first(), 'created_by', None)
|
||||
except AttributeError:
|
||||
return None
|
||||
|
||||
|
||||
class ShoppingListEntry(ExportModelOperationsMixin('shopping_list_entry'), models.Model, PermissionModelMixin):
|
||||
list_recipe = models.ForeignKey(ShoppingListRecipe, on_delete=models.CASCADE, null=True, blank=True, related_name='entries')
|
||||
|
||||
@@ -1093,6 +1093,7 @@ class ShoppingListRecipeSerializer(serializers.ModelSerializer):
|
||||
mealplan_from_date = serializers.ReadOnlyField(source='mealplan.from_date')
|
||||
mealplan_type = serializers.ReadOnlyField(source='mealplan.meal_type.name')
|
||||
servings = CustomDecimalField()
|
||||
created_by = UserSerializer(read_only=True)
|
||||
|
||||
def get_name(self, obj):
|
||||
if not isinstance(value := obj.servings, Decimal):
|
||||
@@ -1106,6 +1107,11 @@ class ShoppingListRecipeSerializer(serializers.ModelSerializer):
|
||||
or obj.recipe.name
|
||||
) + f' ({value:.2g})'
|
||||
|
||||
def create(self, validated_data):
|
||||
validated_data['space'] = self.context['request'].space
|
||||
validated_data['created_by'] = self.context['request'].user
|
||||
return super().create(validated_data)
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
# TODO remove once old shopping list
|
||||
if 'servings' in validated_data and self.context.get('view', None).__class__.__name__ != 'ShoppingListViewSet':
|
||||
@@ -1116,8 +1122,8 @@ class ShoppingListRecipeSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = ShoppingListRecipe
|
||||
fields = ('id', 'recipe_name', 'name', 'recipe', 'mealplan', 'servings', 'mealplan_note', 'mealplan_from_date',
|
||||
'mealplan_type')
|
||||
read_only_fields = ('id',)
|
||||
'mealplan_type', 'created_by')
|
||||
read_only_fields = ('id', 'created_by',)
|
||||
|
||||
|
||||
class ShoppingListEntrySerializer(WritableNestedModelSerializer):
|
||||
|
||||
@@ -12,7 +12,7 @@ DETAIL_URL = 'api:shoppinglistrecipe-detail'
|
||||
|
||||
@pytest.fixture()
|
||||
def obj_1(space_1, u1_s1, recipe_1_s1):
|
||||
r = ShoppingListRecipe.objects.create(recipe=recipe_1_s1, servings=1)
|
||||
r = ShoppingListRecipe.objects.create(recipe=recipe_1_s1, servings=1, space=space_1, created_by=auth.get_user(u1_s1))
|
||||
for ing in r.recipe.steps.first().ingredients.all():
|
||||
ShoppingListEntry.objects.create(list_recipe=r, ingredient=ing, food=ing.food, unit=ing.unit, amount=ing.amount, created_by=auth.get_user(u1_s1), space=space_1)
|
||||
return r
|
||||
|
||||
@@ -5,7 +5,20 @@ package by hhursev.
|
||||
|
||||
If you have the skills to add new sites or help resolve issues you are indirectly helping Tandoor.
|
||||
|
||||
## Unofficial mobile app
|
||||
## Unofficial mobile apps
|
||||
|
||||
### kitshn
|
||||
|
||||
Unofficial Tandoor recipes client
|
||||
|
||||
Maintained by [Aimo](https://github.com/aimok04/kitshn)
|
||||
|
||||
- Website: [https://kitshn.app/](https://kitshn.app/)
|
||||
- Appstores: [Apple](https://apps.apple.com/us/app/kitshn-for-tandoor/id6740168361), [Android](https://play.google.com/store/apps/details?id=de.kitshn.android)
|
||||
|
||||
|
||||
|
||||
### Untare (discontinued)
|
||||
|
||||
Maintained by [phantomate](https://github.com/phantomate/Untare)
|
||||
|
||||
|
||||
@@ -440,6 +440,13 @@ S3_SECRET_ACCESS_KEY=
|
||||
S3_BUCKET_NAME=
|
||||
```
|
||||
|
||||
Alternatively you can point to a file containing the S3_SECRET_ACCESS_KEY value. If using containers make sure the file is
|
||||
persistent and available inside the container.
|
||||
|
||||
```
|
||||
S3_SECRET_ACCESS_KEY_FILE=/path/to/file.txt
|
||||
```
|
||||
|
||||
Optional settings (only copy the ones you need)
|
||||
|
||||
```
|
||||
|
||||
@@ -7,9 +7,9 @@ While intermediate updates can be skipped when updating please make sure to
|
||||
For all setups using Docker the updating process look something like this
|
||||
|
||||
0. Before updating it is recommended to **create a [backup](/system/backup)!**
|
||||
1. Stop the container using `docker-compose down`
|
||||
2. Pull the latest image using `docker-compose pull`
|
||||
3. Start the container again using `docker-compose up -d`
|
||||
1. Stop the container using `docker compose down`
|
||||
2. Pull the latest image using `docker compose pull`
|
||||
3. Start the container again using `docker compose up -d`
|
||||
|
||||
## Manual
|
||||
|
||||
@@ -45,49 +45,50 @@ docker ps -a --format 'table {{.ID}}\t{{.Names}}\t{{.Image}}\t{{.Status}}' | awk
|
||||
docker exec -t {{database_container}} pg_dumpall -U {{djangouser}} > ~/tandoor.sql
|
||||
```
|
||||
|
||||
3. Stop the postgres container
|
||||
3. Stop the tandoor application
|
||||
``` bash
|
||||
docker stop {{database_container}} {{tandoor_container}}
|
||||
docker compose down
|
||||
```
|
||||
|
||||
4. Rename the tandoor volume
|
||||
|
||||
``` bash
|
||||
sudo mv ~/.docker/compose/postgres ~/.docker/compose/postgres.old
|
||||
mv ./postgresql ./postgresql.old
|
||||
```
|
||||
|
||||
5. Update image tag on postgres container.
|
||||
5. Update image tag on postgres container in the docker-compose.yaml
|
||||
|
||||
``` yaml
|
||||
db_recipes:
|
||||
restart: always
|
||||
image: postgres:16-alpine
|
||||
volumes:
|
||||
- ./postgresql:/var/lib/postgresql/data
|
||||
env_file:
|
||||
- ./.env
|
||||
```
|
||||
``` yaml
|
||||
db_recipes:
|
||||
restart: always
|
||||
image: postgres:16-alpine
|
||||
volumes:
|
||||
- ./postgresql:/var/lib/postgresql/data
|
||||
env_file:
|
||||
- ./.env
|
||||
```
|
||||
|
||||
6. Pull and rebuild container.
|
||||
6. Pull and rebuild database container
|
||||
|
||||
``` bash
|
||||
docker-compose pull && docker-compose up -d
|
||||
```
|
||||
``` bash
|
||||
docker compose pull && docker compose up -d db_recipes
|
||||
```
|
||||
|
||||
7. Import the database export
|
||||
|
||||
``` bash
|
||||
cat ~/tandoor.sql | sudo docker exec -i {{database_container}} psql postgres -U {{djangouser}}
|
||||
```
|
||||
8. Install postgres extensions
|
||||
``` bash
|
||||
docker exec -it {{database_container}} psql postgres -U {{djangouser}}
|
||||
```
|
||||
``` bash
|
||||
cat ~/tandoor.sql | docker exec -i {{database_container}} psql postgres -U {{djangouser}}
|
||||
```
|
||||
|
||||
8. Install postgres extensions
|
||||
``` bash
|
||||
docker exec -it {{database_container}} psql postgres -U {{djangouser}}
|
||||
```
|
||||
then
|
||||
``` psql
|
||||
CREATE EXTENSION IF NOT EXISTS unaccent;
|
||||
CREATE EXTENSION IF NOT EXISTS pg_trgm;
|
||||
```
|
||||
``` psql
|
||||
CREATE EXTENSION IF NOT EXISTS unaccent;
|
||||
CREATE EXTENSION IF NOT EXISTS pg_trgm;
|
||||
```
|
||||
|
||||
If anything fails, go back to the old postgres version and data directory and try again.
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Django==4.2.20
|
||||
Django==4.2.22
|
||||
cryptography===44.0.1
|
||||
django-annoying==0.10.6
|
||||
django-cleanup==8.0.0
|
||||
@@ -10,13 +10,13 @@ drf-writable-nested==0.7.1
|
||||
django-oauth-toolkit==2.4.0
|
||||
django-debug-toolbar==4.3.0
|
||||
bleach==6.2.0
|
||||
gunicorn==22.0.0
|
||||
gunicorn==23.0.0
|
||||
lxml==5.3.1
|
||||
Markdown==3.5.1
|
||||
Pillow==11.1.0
|
||||
psycopg2-binary==2.9.9
|
||||
psycopg2-binary==2.9.10
|
||||
python-dotenv==1.0.0
|
||||
requests==2.32.3
|
||||
requests==2.32.4
|
||||
six==1.16.0
|
||||
webdavclient3==3.14.6
|
||||
whitenoise==6.8.2
|
||||
@@ -41,7 +41,7 @@ django-hCaptcha==0.2.0
|
||||
python-ldap==3.4.4
|
||||
django-auth-ldap==4.6.0
|
||||
pyppeteer==2.0.0
|
||||
pytubefix==8.12.2
|
||||
pytubefix==8.13.1
|
||||
aiohttp==3.10.11
|
||||
inflection==0.5.1
|
||||
redis==5.2.1
|
||||
|
||||
@@ -318,7 +318,7 @@
|
||||
"shopping_share_desc": "Els usuaris veuran tots els elements de la teva llista de compres. Perquè puguis veure les seves t'han d'afegir.",
|
||||
"shopping_auto_sync_desc": "Establiu 0 per deshabilitar la sincronització automàtica. Quan es mostra una llista de compres aquesta es guarda de forma automàtica cada pocs segons per recarregar els canvis d'altres usuaris. És útil per a llistes compartides, però utilitza més dades mòbils.",
|
||||
"mealplan_autoadd_shopping_desc": "Afegir automàticament tots els ingredients del Pla d'Àpats a la llista de compres.",
|
||||
"mealplan_autoexclude_onhand_desc": "",
|
||||
"mealplan_autoexclude_onhand_desc": "En afegir alguna cosa a la llista de la compra (manualment o automàticament), excloure aquells ingredients que ja estan en possessió.",
|
||||
"mealplan_autoinclude_related_desc": "Si afegiu a un pla d'àpats a la llista de compres (de forma manual o automàticament), incloureu totes les receptes relacionades.",
|
||||
"default_delay_desc": "Nombre d’hores per defecte per retardar l’entrada de la llista de compres.",
|
||||
"filter_to_supermarket": "Filtrar per supermercat",
|
||||
@@ -396,35 +396,35 @@
|
||||
"left_handed": "Mode Esquerrà",
|
||||
"left_handed_help": "Optimitzarà la interfície d’usuari per utilitzar-la amb la mà esquerra.",
|
||||
"show_step_ingredients_setting": "Mostra els Ingredients al costat dels passo de la recepta",
|
||||
"show_step_ingredients_setting_help": "",
|
||||
"show_step_ingredients": "",
|
||||
"hide_step_ingredients": "",
|
||||
"Custom Filter": "",
|
||||
"shared_with": "",
|
||||
"sort_by": "",
|
||||
"asc": "",
|
||||
"desc": "",
|
||||
"date_viewed": "",
|
||||
"last_cooked": "",
|
||||
"times_cooked": "",
|
||||
"date_created": "",
|
||||
"show_sortby": "",
|
||||
"search_rank": "",
|
||||
"make_now": "",
|
||||
"Created": "",
|
||||
"Updated": "",
|
||||
"Unchanged": "",
|
||||
"Error": "",
|
||||
"make_now_count": "",
|
||||
"recipe_filter": "",
|
||||
"book_filter_help": "",
|
||||
"review_shopping": "",
|
||||
"view_recipe": "",
|
||||
"copy_to_new": "",
|
||||
"recipe_name": "",
|
||||
"paste_ingredients_placeholder": "",
|
||||
"paste_ingredients": "",
|
||||
"ingredient_list": "",
|
||||
"show_step_ingredients_setting_help": "Afegir la taula d'ingredients al costat dels passos de la recepta. S'aplica al moment de la creació. Pot anul·lar-se des de la vista d'edició de la recepta.",
|
||||
"show_step_ingredients": "Mostrar els ingredients de cada pas",
|
||||
"hide_step_ingredients": "No mostrar els ingredients per passos",
|
||||
"Custom Filter": "Filtre Personalitzat",
|
||||
"shared_with": "Compartit amb",
|
||||
"sort_by": "Ordenar per",
|
||||
"asc": "Ordre ascendent",
|
||||
"desc": "Ordre descendent",
|
||||
"date_viewed": "Darreres Vistes",
|
||||
"last_cooked": "Cuinades últimament",
|
||||
"times_cooked": "Nombre de cops elaborada",
|
||||
"date_created": "Data de creació",
|
||||
"show_sortby": "Mostrar \"Ordenar per\"",
|
||||
"search_rank": "Buscar per puntuació",
|
||||
"make_now": "Cuinar Ara",
|
||||
"Created": "Creada",
|
||||
"Updated": "Actualitzada",
|
||||
"Unchanged": "Sense Canvis",
|
||||
"Error": "Error",
|
||||
"make_now_count": "Com a màxim els ingredients que falten",
|
||||
"recipe_filter": "Filtre de receptes",
|
||||
"book_filter_help": "Incloure les receptes del filtre de receptes a més de les assignades manualment.",
|
||||
"review_shopping": "Comprova els elements de la llista abans de desar",
|
||||
"view_recipe": "Veure la recepta",
|
||||
"copy_to_new": "Copiar nova recepta",
|
||||
"recipe_name": "Nom de la recepta",
|
||||
"paste_ingredients_placeholder": "Enganxar aquí la llista d'ingredients...",
|
||||
"paste_ingredients": "Enganxar els ingredients",
|
||||
"ingredient_list": "Llista d'ingredients",
|
||||
"explain": "Explicar",
|
||||
"filter": "Filtre",
|
||||
"Website": "Lloc Web",
|
||||
@@ -440,21 +440,21 @@
|
||||
"Nav_Text_Mode": "Mode de navegació per text",
|
||||
"Nav_Text_Mode_Help": "Es comporta de forma diferent per cada tema.",
|
||||
"Nav_Color_Help": "Canviar el color de navegació.",
|
||||
"Space_Cosmetic_Settings": "",
|
||||
"Use_Kj": "",
|
||||
"Comments_setting": "",
|
||||
"click_image_import": "",
|
||||
"no_more_images_found": "",
|
||||
"import_duplicates": "",
|
||||
"paste_json": "",
|
||||
"Click_To_Edit": "",
|
||||
"search_no_recipes": "",
|
||||
"search_import_help_text": "",
|
||||
"search_create_help_text": "",
|
||||
"warning_duplicate_filter": "",
|
||||
"reset_children": "",
|
||||
"reset_children_help": "",
|
||||
"reset_food_inheritance": "",
|
||||
"Space_Cosmetic_Settings": "Un administrador de l'espai podria canviar algunes configuracions estètiques i tindrien prioritat sobre la configuració dels usuaris per a aquest espai.",
|
||||
"Use_Kj": "Utilitzar kJ en comptes de kcal",
|
||||
"Comments_setting": "Mostrar comentaris",
|
||||
"click_image_import": "Fes clic a la imatge que vols importar per a aquesta recepta",
|
||||
"no_more_images_found": "No s'han trobat imatges addicionals en aquest lloc web.",
|
||||
"import_duplicates": "Per evitar duplicats, s'ignoraran les receptes amb el mateix nom. Marqueu la casella per importar-ho tot.",
|
||||
"paste_json": "Enganxeu una font json o html per carregar la recepta.",
|
||||
"Click_To_Edit": "Clic per editar",
|
||||
"search_no_recipes": "No s'ha trobat cap recepta!",
|
||||
"search_import_help_text": "Importar una recepta d'un web extern o aplicació.",
|
||||
"search_create_help_text": "Crear una nova recepta directament a Tandoor.",
|
||||
"warning_duplicate_filter": "Avís: A causa de limitacions tècniques, tenir múltiples filtres de la mateixa combinació (i/o/no - and/or/not) pot causar resultats inesperats.",
|
||||
"reset_children": "Restableix les herències i els fills o dependències",
|
||||
"reset_children_help": "Sobreescriure tots els fills amb valors de camps heretats. Els camps heretats dels fills seran establerts a Camps Heretats llevat que s'hagi determinat uns Camps Heretats dels Fills.",
|
||||
"reset_food_inheritance": "Restablir les herències/dependències",
|
||||
"reset_food_inheritance_info": "Restablir tots els valors dels camps dels aliments heretats i els seus parents.",
|
||||
"substitute_help": "Els substituts es tenen en compte quan es busquen receptes que es poden fer amb ingredients disponibles.",
|
||||
"substitute_siblings_help": "Tots els aliments que comparteixen un pare amb aquest aliment es consideren substituts.",
|
||||
@@ -486,85 +486,87 @@
|
||||
"Change_Password": "Canviar contrasenya",
|
||||
"Social_Authentication": "Identificació amb Xarxes Socials",
|
||||
"Random Recipes": "Receptes Aleatòries",
|
||||
"parameter_count": "",
|
||||
"select_keyword": "",
|
||||
"add_keyword": "",
|
||||
"select_file": "",
|
||||
"select_recipe": "",
|
||||
"select_unit": "",
|
||||
"select_food": "",
|
||||
"remove_selection": "",
|
||||
"empty_list": "",
|
||||
"Select": "",
|
||||
"Supermarkets": "",
|
||||
"User": "",
|
||||
"Username": "",
|
||||
"First_name": "",
|
||||
"Last_name": "",
|
||||
"Keyword": "",
|
||||
"Advanced": "",
|
||||
"Page": "",
|
||||
"Single": "",
|
||||
"Multiple": "",
|
||||
"Reset": "",
|
||||
"Disabled": "",
|
||||
"Disable": "",
|
||||
"Enable": "",
|
||||
"Options": "",
|
||||
"Create Food": "",
|
||||
"create_food_desc": "",
|
||||
"additional_options": "",
|
||||
"Importer_Help": "",
|
||||
"Documentation": "",
|
||||
"Select_App_To_Import": "",
|
||||
"Import_Supported": "",
|
||||
"Export_Supported": "",
|
||||
"Import_Not_Yet_Supported": "",
|
||||
"Export_Not_Yet_Supported": "",
|
||||
"Import_Result_Info": "",
|
||||
"Recipes_In_Import": "",
|
||||
"Toggle": "",
|
||||
"total": "",
|
||||
"Import_Error": "",
|
||||
"Warning_Delete_Supermarket_Category": "",
|
||||
"New_Supermarket": "",
|
||||
"New_Supermarket_Category": "",
|
||||
"Are_You_Sure": "",
|
||||
"Valid Until": "",
|
||||
"Split_All_Steps": "",
|
||||
"Combine_All_Steps": "",
|
||||
"Plural": "",
|
||||
"plural_short": "",
|
||||
"g": "",
|
||||
"kg": "",
|
||||
"ounce": "",
|
||||
"pound": "",
|
||||
"ml": "",
|
||||
"l": "",
|
||||
"fluid_ounce": "",
|
||||
"pint": "",
|
||||
"quart": "",
|
||||
"gallon": "",
|
||||
"tbsp": "",
|
||||
"tsp": "",
|
||||
"imperial_fluid_ounce": "",
|
||||
"imperial_pint": "",
|
||||
"imperial_quart": "",
|
||||
"imperial_gallon": "",
|
||||
"imperial_tbsp": "",
|
||||
"imperial_tsp": "",
|
||||
"Choose_Category": "",
|
||||
"Back": "",
|
||||
"Use_Plural_Unit_Always": "",
|
||||
"Use_Plural_Unit_Simple": "",
|
||||
"Use_Plural_Food_Always": "",
|
||||
"Use_Plural_Food_Simple": "",
|
||||
"plural_usage_info": "",
|
||||
"Create Recipe": "",
|
||||
"Import Recipe": "",
|
||||
"Never_Unit": "",
|
||||
"Transpose_Words": "",
|
||||
"Name_Replace": "",
|
||||
"parameter_count": "Paràmetre {count}",
|
||||
"select_keyword": "Seleccionar paraula clau",
|
||||
"add_keyword": "Afegir Paraula Clau",
|
||||
"select_file": "Seleccionar Arxiu",
|
||||
"select_recipe": "Seleccionar Recepta",
|
||||
"select_unit": "Seleccionar Unitat",
|
||||
"select_food": "Seleccionar Aliment",
|
||||
"remove_selection": "Desseleccionar",
|
||||
"empty_list": "La llista és buida.",
|
||||
"Select": "Seleccionar",
|
||||
"Supermarkets": "Supermercats",
|
||||
"User": "Usuari",
|
||||
"Username": "Nom d'Usuari",
|
||||
"First_name": "Nom",
|
||||
"Last_name": "Cognoms",
|
||||
"Keyword": "Paraula clau",
|
||||
"Advanced": "Avançat",
|
||||
"Page": "Pàgina",
|
||||
"Single": "Únic/a",
|
||||
"Multiple": "Múltiple",
|
||||
"Reset": "Restablir",
|
||||
"Disabled": "Desactivat",
|
||||
"Disable": "Desactivar",
|
||||
"Enable": "Activat",
|
||||
"Options": "Opcions",
|
||||
"Create Food": "Crear aliment/ingredient",
|
||||
"create_food_desc": "Crear un aliment i vincular-lo a aquesta recepta.",
|
||||
"additional_options": "Opcions addicionals",
|
||||
"Importer_Help": "Més informació i ajuda amb aquest importador:",
|
||||
"Documentation": "Documentació",
|
||||
"Select_App_To_Import": "Seleccioneu una aplicació des de la qual importar",
|
||||
"Import_Supported": "Importació suportada",
|
||||
"Export_Supported": "Exportació suportada",
|
||||
"Import_Not_Yet_Supported": "Importació encara no suportada",
|
||||
"Export_Not_Yet_Supported": "Exportació encara no suportada",
|
||||
"Import_Result_Info": "{imported} de {total} receptes s'han importat",
|
||||
"Recipes_In_Import": "Receptes al fitxer d'importació",
|
||||
"Toggle": "Alternar",
|
||||
"total": "total",
|
||||
"Import_Error": "S'ha produït un error durant la importació. Si us plau, amplia els detalls a la part inferior de la pàgina per veure'l.",
|
||||
"Warning_Delete_Supermarket_Category": "Si suprimiu una categoria de supermercat, també se suprimiran totes les relacions alimentàries. N'estàs segur?",
|
||||
"New_Supermarket": "Crear nou supermercat",
|
||||
"New_Supermarket_Category": "Crear nova categoria de supermercat",
|
||||
"Are_You_Sure": "N'estàs segur?",
|
||||
"Valid Until": "Vàlid fins",
|
||||
"Split_All_Steps": "Dividir totes les files en passos separats.",
|
||||
"Combine_All_Steps": "Combinar tots els passos en un sol camp.",
|
||||
"Plural": "Plural",
|
||||
"plural_short": "Plural",
|
||||
"g": "gram [g] (mètric, pes)",
|
||||
"kg": "Kilogram [kg] (mètric, pes)",
|
||||
"ounce": "unça [oz] (pes)",
|
||||
"pound": "lliura (pes)",
|
||||
"ml": "mil·lilitre [ml] (mètrica, volum)",
|
||||
"l": "litre [l] (mètric, volum)",
|
||||
"fluid_ounce": "unça líquida [fl oz] (US, volum)",
|
||||
"pint": "pinta [pt] (EUA, volum)",
|
||||
"quart": "quart de galó [qt] (US, volum)",
|
||||
"gallon": "galó [gal] (US, volum)",
|
||||
"tbsp": "cullerada sopera [tbsp] (US, volum)",
|
||||
"tsp": "culleradeta [tsp] (US, volum)",
|
||||
"imperial_fluid_ounce": "unça líquida imperial [imp fl oz] (Regne Unit, volum)",
|
||||
"imperial_pint": "Pinta imperial [imp pt] (Regne Unit, volum)",
|
||||
"imperial_quart": "quart de galó imperial [imp qt] (Regne Unit, volum)",
|
||||
"imperial_gallon": "galó imperial [imp gal] (Regne Unit, volum)",
|
||||
"imperial_tbsp": "cullerada sopera imperial [imp tbsp] (Regne Unit, volum)",
|
||||
"imperial_tsp": "culleradeta imperial [imp tsp] (Regne Unit, volum)",
|
||||
"Choose_Category": "Escull Categoria",
|
||||
"Back": "Enrere",
|
||||
"Use_Plural_Unit_Always": "Utilitzar sempre el plural per a les unitats",
|
||||
"Use_Plural_Unit_Simple": "Utilitzar la forma plural per les unitats de forma dinàmica",
|
||||
"Use_Plural_Food_Always": "Fer servir sempre la forma plural pels aliments",
|
||||
"Use_Plural_Food_Simple": "Utilitzar la forma plural per als aliments de manera dinàmica",
|
||||
"plural_usage_info": "Utilitzar la forma plural per a les unitats i els aliments d'aquest grup.",
|
||||
"Create Recipe": "Crear una recepta",
|
||||
"Import Recipe": "Importar Recepta",
|
||||
"Never_Unit": "No posar unitats mai",
|
||||
"Transpose_Words": "Transposar paraules",
|
||||
"Name_Replace": "Substituir el Nom",
|
||||
"Food_Replace": "Aliment equivalent",
|
||||
"Unit_Replace": "Substituir unitat"
|
||||
"Unit_Replace": "Substituir unitat",
|
||||
"DefaultPage": "Pàgina per defecte",
|
||||
"us_cup": "tassa [cup] (US, Volume)"
|
||||
}
|
||||
|
||||
@@ -415,5 +415,41 @@
|
||||
"err_importing_recipe": "Ocorreu um erro ao importar a receita!",
|
||||
"recipe_property_info": "Você também pode adicionar propriedades aos alimentos para calculá-los automaticamente de acordo com sua receita!",
|
||||
"open_data_help_text": "O projeto Tandoor Open Data fornece dados contribuídos pela comunidade. Este campo é preenchido automaticamente ao importá-lo e permite atualizações no futuro.",
|
||||
"per_serving": "por porção"
|
||||
"per_serving": "por porção",
|
||||
"property_type_fdc_hint": "Somente tipos de propriedade com um ID FDC podem puxar dados da base de dados FDC automaticamente",
|
||||
"Data_Import_Info": "Melhore seu Espaço importando uma lista curada de comidas, unidades e mais para melhorar sua coleção de receitas.",
|
||||
"converted_amount": "Quantidade convertida",
|
||||
"Properties": "Propriedades",
|
||||
"created_by": "Criado por",
|
||||
"FDC_ID": "ID FDC",
|
||||
"FDC_ID_help": "ID database FDC",
|
||||
"Input": "Input",
|
||||
"Undo": "Desfazer",
|
||||
"NoMoreUndo": "Nenhuma alteração para ser desfeita.",
|
||||
"StartDate": "Data de início",
|
||||
"EndDate": "Data fim",
|
||||
"Welcome": "Bem-vindo",
|
||||
"Open_Data_Slug": "Slug do Open Data",
|
||||
"Open_Data_Import": "Importação do Open Data",
|
||||
"Properties_Food_Amount": "Proriedades Quantidade de Comida",
|
||||
"Properties_Food_Unit": "Propriedades Unidade de Comida",
|
||||
"Shopping_input_placeholder": "Ex: Batata/100 Batatas/100 g Batatas",
|
||||
"Property": "Propriedade",
|
||||
"Property_Editor": "Propriedade Editor",
|
||||
"Conversion": "Conversão",
|
||||
"FDC_Search": "Pesquisa FDC",
|
||||
"Update_Existing_Data": "Atualizar dados existentes",
|
||||
"Use_Metric": "Usar sistema Métrico",
|
||||
"converted_unit": "Unidade convertida",
|
||||
"Learn_More": "Aprenda mais",
|
||||
"Calculator": "Calculadora",
|
||||
"base_unit": "Unidade base",
|
||||
"base_amount": "Quantidade base",
|
||||
"Datatype": "Tipo de dados",
|
||||
"Number of Objects": "Número de objetos",
|
||||
"Alignment": "Alinhamento",
|
||||
"Delete_All": "Apagar todos",
|
||||
"CustomImageHelp": "Fazer upload de uma image para mostrar na visão geral do espaço.",
|
||||
"CustomTheme": "Tema customizado",
|
||||
"CustomThemeHelp": "Substituir os estilos do tema selecionado com o upload de um arquivo CSS customizado."
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"warning_feature_beta": "Este recurso está atualmente em um estado BETA (teste). Por favor, espere bugs e possíveis mudanças no futuro (possivelmente perdendo dados relacionados a esta funcionalidade) ao usar este recurso.",
|
||||
"warning_feature_beta": "Este recurso está atualmente em fase de teste (BETA). Por favor, espere bugs e possíveis mudanças no futuro ao usar este recurso (possivelmente perdendo dados relacionados a esta funcionalidade).",
|
||||
"err_fetching_resource": "Ocorreu um erro ao buscar um recurso!",
|
||||
"err_creating_resource": "Ocorreu um erro ao criar um recurso!",
|
||||
"err_updating_resource": "Ocorreu um erro ao atualizar um recurso!",
|
||||
|
||||
@@ -473,5 +473,16 @@
|
||||
"plan_share_desc": "Выбранным пользователям будет автоматически предоставлен доступ к новым записям в Плане Питания.",
|
||||
"CustomTheme": "Пользовательская тема",
|
||||
"CustomThemeHelp": "Измените стили выбранной темы, загрузив собственный CSS-файл.",
|
||||
"Learn_More": "Узнать больше"
|
||||
"Learn_More": "Узнать больше",
|
||||
"OnHand_help": "Еда находится в инвентаре и не будет автоматически добавлена в список покупок. Статус «Под рукой» передается пользователям, совершающим покупки.",
|
||||
"csv_prefix_help": "Префикс для добавления при копировании списка в буфер обмена.",
|
||||
"csv_prefix_label": "Префикс списка",
|
||||
"mark_complete": "Пометить выполненным",
|
||||
"ignore_shopping_help": "Никогда не добавляйте продукты в список покупок (например, воду)",
|
||||
"shopping_add_onhand_desc": "Пометьте продукты «Под рукой», если они вычеркнуты из списка покупок.",
|
||||
"Number of Objects": "Количество (шт.)",
|
||||
"CustomLogoHelp": "Загрузите изображения разных размеров в форме квадрата, чтобы изменить логотип на вкладке браузера и в установленном веб-приложении.",
|
||||
"Update_Existing_Data": "Обновить данные",
|
||||
"Use_Metric": "Использовать метрическую систему",
|
||||
"Property_Editor": "Редактировать свойство"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"warning_feature_beta": "Ця функція зараз в БЕТІ (тестується). Будь ласка, очікуйте помилок і можливих порушень і майбутньому (можлива втрата даних), коли користуєтесь цією функцією.",
|
||||
"warning_feature_beta": "Наразі ця функціональність знаходиться в стані BETA (тестування). Будь ласка, будьте готові до помилок і можливих змін у майбутньому (можливо, втрата даних, пов'язаних з функціональністю) під час використання.",
|
||||
"err_fetching_resource": "Виникла помилка при отриманні ресурсу!",
|
||||
"err_creating_resource": "Виникла помилка при створенні ресурсу!",
|
||||
"err_updating_resource": "Виникла помилка при оновленні ресурсу!",
|
||||
@@ -21,19 +21,19 @@
|
||||
"convert_internal": "Конвертувати у внутрішній рецепт",
|
||||
"show_only_internal": "Показати тільки внутрішні рецепти",
|
||||
"show_split_screen": "Розділений перегляд",
|
||||
"Log_Recipe_Cooking": "",
|
||||
"Log_Recipe_Cooking": "Журнал приготування",
|
||||
"External_Recipe_Image": "Зображення Зовнішнього Рецепту",
|
||||
"Add_to_Shopping": "Додати до Покупок",
|
||||
"Add_to_Plan": "Додати до Плану",
|
||||
"Step_start_time": "Час початку кроку",
|
||||
"Sort_by_new": "",
|
||||
"Sort_by_new": "Сортувати за новими",
|
||||
"Table_of_Contents": "Зміст",
|
||||
"Recipes_per_page": "Кількість Рецептів на Сторінку",
|
||||
"Show_as_header": "",
|
||||
"Hide_as_header": "",
|
||||
"Show_as_header": "Показати як заголовок",
|
||||
"Hide_as_header": "Приховати як заголовок",
|
||||
"Add_nutrition_recipe": "Додати харчову цінність до рецепту",
|
||||
"Remove_nutrition_recipe": "Видалити харчову цінність з рецепта",
|
||||
"Copy_template_reference": "",
|
||||
"Copy_template_reference": "Скопіювати поссилання на шаблон",
|
||||
"Save_and_View": "Зберегти і Подивитися",
|
||||
"Manage_Books": "Управління Книжкою",
|
||||
"Meal_Plan": "План Харчування",
|
||||
@@ -42,7 +42,7 @@
|
||||
"Recipe_Image": "Зображення Рецепту",
|
||||
"Import_finished": "Імпорт закінчено",
|
||||
"View_Recipes": "Подивитися Рецепт",
|
||||
"Log_Cooking": "",
|
||||
"Log_Cooking": "Занотувати приготування",
|
||||
"New_Recipe": "Новий Рецепт",
|
||||
"Url_Import": "Імпорт за посиланням",
|
||||
"Reset_Search": "Скинути Пошук",
|
||||
@@ -60,14 +60,14 @@
|
||||
"Move_Down": "Перемістити вниз",
|
||||
"Step_Name": "Ім'я Кроку",
|
||||
"Step_Type": "Тип Кроку",
|
||||
"Make_Header": "",
|
||||
"Make_Ingredient": "",
|
||||
"Make_Header": "Створити Заголовок",
|
||||
"Make_Ingredient": "Створити Інгрідієнт",
|
||||
"Enable_Amount": "Включити Кількість",
|
||||
"Disable_Amount": "Виключити Кількість",
|
||||
"Ingredient Editor": "Редактор Інгредієнтів",
|
||||
"Add_Step": "Додати Крок",
|
||||
"Keywords": "Ключові слова",
|
||||
"Books": "Книжки",
|
||||
"Books": "Книги",
|
||||
"Proteins": "Білки",
|
||||
"Fats": "Жири",
|
||||
"Carbohydrates": "Вуглеводи",
|
||||
@@ -120,7 +120,7 @@
|
||||
"Download": "Скачати",
|
||||
"Create": "Створити",
|
||||
"Search Settings": "Налаштування Пошуку",
|
||||
"View": "",
|
||||
"View": "Перегляд",
|
||||
"Recipes": "Рецепти",
|
||||
"Move": "Перемістити",
|
||||
"Merge": "Об'єднати",
|
||||
@@ -129,8 +129,8 @@
|
||||
"move_confirmation": "Перемістити <i>{child}</i> до батька <i>{parent}</i>",
|
||||
"merge_confirmation": "Замінити <i>{source}</i> на <i>{target}</i>",
|
||||
"create_rule": "і створити автоматизацію",
|
||||
"move_selection": "",
|
||||
"merge_selection": "",
|
||||
"move_selection": "Вказати {type} в який перемістити {source}",
|
||||
"merge_selection": "Замінити всі згадування {source} згадуваннями {type}.",
|
||||
"Root": "Корінь",
|
||||
"Ignore_Shopping": "Ігнорувати Покупки",
|
||||
"Shopping_Category": "Категорія Покупок",
|
||||
@@ -139,9 +139,9 @@
|
||||
"Move_Food": "Перемістити Їжу",
|
||||
"New_Food": "Нова Їжа",
|
||||
"Hide_Food": "Сховати Їжу",
|
||||
"Food_Alias": "",
|
||||
"Unit_Alias": "",
|
||||
"Keyword_Alias": "",
|
||||
"Food_Alias": "Найменування Їжі",
|
||||
"Unit_Alias": "Найменування Одиниць",
|
||||
"Keyword_Alias": "Найменування Ключових Слів",
|
||||
"Delete_Food": "Видалити Їжу",
|
||||
"No_ID": "ID не знайдено, неможливо видалити.",
|
||||
"Meal_Plan_Days": "Майбутній план харчування",
|
||||
@@ -237,9 +237,9 @@
|
||||
"CountMore": "...+{count} більше",
|
||||
"IgnoreThis": "Ніколи {food} автоматично не додавати до покупок",
|
||||
"DelayFor": "Затримка на {hours} годин",
|
||||
"Warning": "Увага",
|
||||
"Warning": "Застереження",
|
||||
"NoCategory": "Жодна категорія не вибрана.",
|
||||
"InheritWarning": "",
|
||||
"InheritWarning": "{food} налаштовано на успадкування, зміни можуть не зберегтися.",
|
||||
"ShowDelayed": "Показати Відкладені Предмети",
|
||||
"Completed": "Виконано",
|
||||
"OfflineAlert": "Ви офлайн, список покупок може не синхронізуватися.",
|
||||
@@ -440,5 +440,46 @@
|
||||
"Default_Unit": "Одиниця замовчуванням",
|
||||
"recipe_property_info": "Ви також можете додати властивості до продуктів, щоб розрахувати їх автоматично на основі вашого рецепту!",
|
||||
"per_serving": "на порцію",
|
||||
"err_importing_recipe": "Виникла помилка при імпортуванні рецепту!"
|
||||
"err_importing_recipe": "Виникла помилка при імпортуванні рецепту!",
|
||||
"food_inherit_info": "Поля їжі, які повинні успадковуватися за змовчуванням.",
|
||||
"Property_Editor": "Редактор Властивостей",
|
||||
"FDC_ID": "FDC ID",
|
||||
"base_amount": "Базова Кількість",
|
||||
"Properties": "Властивості",
|
||||
"Alignment": "Вирівнювання",
|
||||
"Shopping_input_placeholder": "напр. Картопля/100 Картопли/100гр. Картоплі",
|
||||
"CustomTheme": "Власна Тема",
|
||||
"Property": "Властивість",
|
||||
"Conversion": "Конвертування",
|
||||
"CustomThemeHelp": "Переписати стили вибраної теми завантаживши власний CSS файл.",
|
||||
"CustomLogoHelp": "Завантажте квадратні зображення різних розмірів, щоб змінити логотип у вкладці браузера та встановленому веб-додатку.",
|
||||
"CustomImageHelp": "Завантажте зображення що буде показуватись у огляді простору.",
|
||||
"Input": "Ввід",
|
||||
"Undo": "Скасувати",
|
||||
"NoMoreUndo": "Відсутні зміни для скасування.",
|
||||
"StartDate": "Початкова дата",
|
||||
"EndDate": "Кінцева Дата",
|
||||
"created_by": "Створено",
|
||||
"CustomNavLogoHelp": "Завантажте зображення що буде використовуватись як логотип у навігаційній панелі.",
|
||||
"FDC_Search": "Пошук FDC",
|
||||
"converted_unit": "Конвертована Одиниця",
|
||||
"converted_amount": "Конвертована Кількість",
|
||||
"base_unit": "Базова Одиниця",
|
||||
"Datatype": "Тип данних",
|
||||
"Number of Objects": "Кількість Об'єктів",
|
||||
"FDC_ID_help": "Ідентифікатор Бази FDC",
|
||||
"open_data_help_text": "Проект Tandoor Open Data надає дані для Tandoor, надані спільнотою. Це поле заповнюється автоматично при імпорті даних і дозволяє оновлювати їх у майбутньому.",
|
||||
"Open_Data_Slug": "Open Data Slug",
|
||||
"Open_Data_Import": "Відкрити Імпорт Данних",
|
||||
"Properties_Food_Amount": "Властивості Кількості Їжі",
|
||||
"Properties_Food_Unit": "Властивості Їжі",
|
||||
"CustomLogos": "Власні Логотипи",
|
||||
"Calculator": "Калькулятор",
|
||||
"property_type_fdc_hint": "Тільки типи властивостей з ідентифікатором FDC можуть автоматично отримувати дані з бази даних FDC",
|
||||
"Data_Import_Info": "Покращуйте свій Простір, імпортуючи курований спільнотою список продуктів, одиниць виміру тощо, щоб вдосконалити свою колекцію рецептів.",
|
||||
"Update_Existing_Data": "Оновити Існуючі Данні",
|
||||
"Use_Metric": "Використовувати метричну систему",
|
||||
"Learn_More": "Дізнатися Більше",
|
||||
"Delete_All": "Видалити усе",
|
||||
"Welcome": "Вітаємо"
|
||||
}
|
||||
|
||||
@@ -156,6 +156,15 @@
|
||||
"@babel/highlight" "^7.22.13"
|
||||
chalk "^2.4.2"
|
||||
|
||||
"@babel/code-frame@^7.26.2":
|
||||
version "7.26.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85"
|
||||
integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==
|
||||
dependencies:
|
||||
"@babel/helper-validator-identifier" "^7.25.9"
|
||||
js-tokens "^4.0.0"
|
||||
picocolors "^1.0.0"
|
||||
|
||||
"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9":
|
||||
version "7.22.9"
|
||||
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730"
|
||||
@@ -385,6 +394,11 @@
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f"
|
||||
integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==
|
||||
|
||||
"@babel/helper-string-parser@^7.25.9":
|
||||
version "7.25.9"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c"
|
||||
integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==
|
||||
|
||||
"@babel/helper-validator-identifier@^7.22.15", "@babel/helper-validator-identifier@^7.22.5":
|
||||
version "7.22.15"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz#601fa28e4cc06786c18912dca138cec73b882044"
|
||||
@@ -395,6 +409,11 @@
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
|
||||
integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
|
||||
|
||||
"@babel/helper-validator-identifier@^7.25.9":
|
||||
version "7.25.9"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7"
|
||||
integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==
|
||||
|
||||
"@babel/helper-validator-option@^7.22.15":
|
||||
version "7.22.15"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040"
|
||||
@@ -410,13 +429,12 @@
|
||||
"@babel/types" "^7.22.17"
|
||||
|
||||
"@babel/helpers@^7.22.15":
|
||||
version "7.22.15"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.15.tgz#f09c3df31e86e3ea0b7ff7556d85cdebd47ea6f1"
|
||||
integrity sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==
|
||||
version "7.26.10"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.10.tgz#6baea3cd62ec2d0c1068778d63cb1314f6637384"
|
||||
integrity sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==
|
||||
dependencies:
|
||||
"@babel/template" "^7.22.15"
|
||||
"@babel/traverse" "^7.22.15"
|
||||
"@babel/types" "^7.22.15"
|
||||
"@babel/template" "^7.26.9"
|
||||
"@babel/types" "^7.26.10"
|
||||
|
||||
"@babel/highlight@^7.22.13":
|
||||
version "7.22.13"
|
||||
@@ -437,6 +455,13 @@
|
||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719"
|
||||
integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==
|
||||
|
||||
"@babel/parser@^7.26.9":
|
||||
version "7.26.10"
|
||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.10.tgz#e9bdb82f14b97df6569b0b038edd436839c57749"
|
||||
integrity sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==
|
||||
dependencies:
|
||||
"@babel/types" "^7.26.10"
|
||||
|
||||
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.15":
|
||||
version "7.22.15"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz#02dc8a03f613ed5fdc29fb2f728397c78146c962"
|
||||
@@ -1199,9 +1224,9 @@
|
||||
integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==
|
||||
|
||||
"@babel/runtime@^7.11.2", "@babel/runtime@^7.12.13", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4":
|
||||
version "7.22.15"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.15.tgz#38f46494ccf6cf020bd4eed7124b425e83e523b8"
|
||||
integrity sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==
|
||||
version "7.26.10"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.10.tgz#a07b4d8fa27af131a633d7b3524db803eb4764c2"
|
||||
integrity sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==
|
||||
dependencies:
|
||||
regenerator-runtime "^0.14.0"
|
||||
|
||||
@@ -1214,7 +1239,16 @@
|
||||
"@babel/parser" "^7.22.15"
|
||||
"@babel/types" "^7.22.15"
|
||||
|
||||
"@babel/traverse@^7.22.15", "@babel/traverse@^7.22.17", "@babel/traverse@^7.22.5", "@babel/traverse@^7.7.0":
|
||||
"@babel/template@^7.26.9":
|
||||
version "7.26.9"
|
||||
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.26.9.tgz#4577ad3ddf43d194528cff4e1fa6b232fa609bb2"
|
||||
integrity sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.26.2"
|
||||
"@babel/parser" "^7.26.9"
|
||||
"@babel/types" "^7.26.9"
|
||||
|
||||
"@babel/traverse@^7.22.17", "@babel/traverse@^7.22.5", "@babel/traverse@^7.7.0":
|
||||
version "7.23.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8"
|
||||
integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==
|
||||
@@ -1248,6 +1282,14 @@
|
||||
"@babel/helper-validator-identifier" "^7.22.20"
|
||||
to-fast-properties "^2.0.0"
|
||||
|
||||
"@babel/types@^7.26.10", "@babel/types@^7.26.9":
|
||||
version "7.26.10"
|
||||
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.10.tgz#396382f6335bd4feb65741eacfc808218f859259"
|
||||
integrity sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==
|
||||
dependencies:
|
||||
"@babel/helper-string-parser" "^7.25.9"
|
||||
"@babel/helper-validator-identifier" "^7.25.9"
|
||||
|
||||
"@codemirror/autocomplete@^6.0.0", "@codemirror/autocomplete@^6.13.0", "@codemirror/autocomplete@^6.7.1":
|
||||
version "6.13.0"
|
||||
resolved "https://registry.yarnpkg.com/@codemirror/autocomplete/-/autocomplete-6.13.0.tgz#fa7df3b2809863df0da4556f72ac4263ea4d7adb"
|
||||
@@ -6644,9 +6686,9 @@ http-parser-js@>=0.5.1:
|
||||
integrity sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==
|
||||
|
||||
http-proxy-middleware@^2.0.3:
|
||||
version "2.0.6"
|
||||
resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz#e1a4dd6979572c7ab5a4e4b55095d1f32a74963f"
|
||||
integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==
|
||||
version "2.0.9"
|
||||
resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz#e9e63d68afaa4eee3d147f39149ab84c0c2815ef"
|
||||
integrity sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==
|
||||
dependencies:
|
||||
"@types/http-proxy" "^1.17.8"
|
||||
http-proxy "^1.18.1"
|
||||
|
||||
Reference in New Issue
Block a user