From f5fb4e563d7fd1759272e455a81bf932ef361c5b Mon Sep 17 00:00:00 2001 From: Henning Bopp Date: Wed, 16 Aug 2023 21:19:38 +0200 Subject: [PATCH 1/9] Changed var-name in env, info in docs and processing in settings Also added a deprecation warning and changed the structure of the authentication.md Signed-off-by: Henning Bopp --- .env.template | 8 +++++--- docs/features/authentication.md | 18 ++++++++++-------- recipes/settings.py | 8 ++++++-- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/.env.template b/.env.template index a54e0fe0..5c4370fe 100644 --- a/.env.template +++ b/.env.template @@ -100,10 +100,12 @@ GUNICORN_MEDIA=0 # prefix used for account related emails (default "[Tandoor Recipes] ") # ACCOUNT_EMAIL_SUBJECT_PREFIX= -# allow authentication via reverse proxy (e.g. authelia), leave off if you dont know what you are doing -# see docs for more information https://docs.tandoor.dev/features/authentication/ +# allow authentication via the REMOTE-USER header (can be used for e.g. authelia). +# ATTENTION: Leave off if you don't know what you are doing! Enabling this without proper configuration will enable anybody +# to login with any username! +# See docs for additional information: https://docs.tandoor.dev/features/authentication/#reverse-proxy-authentication # when unset: 0 (false) -REVERSE_PROXY_AUTH=0 +REMOTE_USER_AUTH=0 # Default settings for spaces, apply per space and can be changed in the admin view # SPACE_DEFAULT_MAX_RECIPES=0 # 0=unlimited recipes diff --git a/docs/features/authentication.md b/docs/features/authentication.md index f218d662..e0f8f2f0 100644 --- a/docs/features/authentication.md +++ b/docs/features/authentication.md @@ -100,15 +100,17 @@ AUTH_LDAP_START_TLS=1 AUTH_LDAP_TLS_CACERTFILE=/etc/ssl/certs/own-ca.pem ``` -## Reverse Proxy Authentication +## External Authentication + +!!! warning "Security Impact" + If you just set `REMOTE_USER_AUTH=1` without any additional configuration, _anybody_ can authenticate with _any_ username! !!! Info "Community Contributed Tutorial" - This tutorial was provided by a community member. Since I do not use reverse proxy authentication, I cannot provide any - assistance should you choose to use this authentication method. + This tutorial was provided by a community member. We are not able to provide any support! Please only use, if you know what you are doing! -In order use proxy authentication you will need to: +In order use external authentication (i.e. using a proxy auth like Authelia, Authentik, etc.) you will need to: -1. Set `REVERSE_PROXY_AUTH=1` in the `.env` file +1. Set `REMOTE_USER_AUTH=1` in the `.env` file 2. Update your nginx configuration file Using any of the examples above will automatically generate a configuration file inside a docker volume. @@ -116,10 +118,10 @@ Use `docker volume inspect recipes_nginx` to find out where your volume is store !!! warning "Configuration File Volume" The nginx config volume is generated when the container is first run. You can change the volume to a bind mount in the - warning `docker-compose.yml`, but then you will need to manually create it. See section `Volumes vs Bind Mounts` below + `docker-compose.yml`, but then you will need to manually create it. See section `Volumes vs Bind Mounts` below for more information. -The following example shows a configuration for Authelia: +### Configuration Example for Authelia ``` server { @@ -161,7 +163,7 @@ server { } ``` -Please refer to the appropriate documentation on how to setup the reverse proxy, authentication, and networks. +Please refer to the appropriate documentation on how to set up the reverse proxy, authentication, and networks. Ensure users have been configured for Authelia, and that the endpoint recipes is pointed to is protected but available. diff --git a/recipes/settings.py b/recipes/settings.py index f7a4418e..9a36bfc1 100644 --- a/recipes/settings.py +++ b/recipes/settings.py @@ -46,7 +46,11 @@ INTERNAL_IPS = os.getenv('INTERNAL_IPS').split( # allow djangos wsgi server to server mediafiles GUNICORN_MEDIA = bool(int(os.getenv('GUNICORN_MEDIA', True))) -REVERSE_PROXY_AUTH = bool(int(os.getenv('REVERSE_PROXY_AUTH', False))) +if os.getenv('REVERSE_PROXY_AUTH') is not None: + print('DEPRECATION WARNING: Environment var "REVERSE_PROXY_AUTH" is deprecated. Please use "REMOTE_USER_AUTH".') + REMOTE_USER_AUTH = bool(int(os.getenv('REVERSE_PROXY_AUTH', False))) +else: + REMOTE_USER_AUTH = bool(int(os.getenv('REMOTE_USER_AUTH', False))) # default value for user preference 'comment' COMMENT_PREF_DEFAULT = bool(int(os.getenv('COMMENT_PREF_DEFAULT', True))) @@ -273,7 +277,7 @@ SITE_ID = int(os.getenv('ALLAUTH_SITE_ID', 1)) ACCOUNT_ADAPTER = 'cookbook.helper.AllAuthCustomAdapter' -if REVERSE_PROXY_AUTH: +if REMOTE_USER_AUTH: MIDDLEWARE.insert(8, 'recipes.middleware.CustomRemoteUser') AUTHENTICATION_BACKENDS.append( 'django.contrib.auth.backends.RemoteUserBackend') From 75612781daa0820468c88b1cd8bc2cc5d9fbe07d Mon Sep 17 00:00:00 2001 From: Alexandre Braure Date: Tue, 15 Aug 2023 20:52:34 +0000 Subject: [PATCH 2/9] Translated using Weblate (French) Currently translated at 90.6% (444 of 490 strings) Translation: Tandoor/Recipes Backend Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/fr/ --- cookbook/locale/fr/LC_MESSAGES/django.po | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/cookbook/locale/fr/LC_MESSAGES/django.po b/cookbook/locale/fr/LC_MESSAGES/django.po index ba6f4a97..39541067 100644 --- a/cookbook/locale/fr/LC_MESSAGES/django.po +++ b/cookbook/locale/fr/LC_MESSAGES/django.po @@ -14,10 +14,10 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-05-18 14:28+0200\n" -"PO-Revision-Date: 2023-04-12 11:55+0000\n" -"Last-Translator: noxonad \n" -"Language-Team: French \n" +"PO-Revision-Date: 2023-08-16 21:19+0000\n" +"Last-Translator: Alexandre Braure \n" +"Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -549,7 +549,7 @@ msgstr "Il est nécessaire de fournir soit le queryset, soit la clé de hachage" #, fuzzy #| msgid "Use fractions" msgid "reverse rotation" -msgstr "Utiliser les fractions" +msgstr "sens inverse" #: .\cookbook\helper\recipe_url_import.py:267 msgid "careful rotation" @@ -620,10 +620,8 @@ msgid "Imported %s recipes." msgstr "%s recettes importées." #: .\cookbook\integration\openeats.py:26 -#, fuzzy -#| msgid "Recipe Home" msgid "Recipe source:" -msgstr "Page d’accueil" +msgstr "Source de la recette :" #: .\cookbook\integration\paprika.py:49 msgid "Notes" From 7e9cef607504f3ec149a42543b3098a80d4b50d1 Mon Sep 17 00:00:00 2001 From: Bastian Date: Tue, 15 Aug 2023 20:33:15 +0000 Subject: [PATCH 3/9] Translated using Weblate (German) Currently translated at 98.0% (510 of 520 strings) Translation: Tandoor/Recipes Frontend Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/ --- vue/src/locales/de.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/vue/src/locales/de.json b/vue/src/locales/de.json index 338787df..4e10562b 100644 --- a/vue/src/locales/de.json +++ b/vue/src/locales/de.json @@ -507,5 +507,9 @@ "g": "Gramm [g] (metrisch, Gewicht)", "kg": "Kilogramm [kg] (metrisch, Gewicht)", "ounce": "Unze [oz] (Gewicht)", - "pound": "Pfund (Gewicht)" + "pound": "Pfund (Gewicht)", + "ml": "Milliliter", + "l": "Liter", + "tbsp": "Esslöffel", + "tsp": "Teelöffel" } From db4f2db236e959df68fbb8133bd31d1d4bd7872f Mon Sep 17 00:00:00 2001 From: Alexandre Braure Date: Tue, 15 Aug 2023 20:41:09 +0000 Subject: [PATCH 4/9] Translated using Weblate (French) Currently translated at 88.6% (461 of 520 strings) Translation: Tandoor/Recipes Frontend Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fr/ --- vue/src/locales/fr.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vue/src/locales/fr.json b/vue/src/locales/fr.json index 14593788..8d6cc648 100644 --- a/vue/src/locales/fr.json +++ b/vue/src/locales/fr.json @@ -460,5 +460,8 @@ "Unpin": "Détacher", "Split_All_Steps": "Diviser toutes les lignes en étapes séparées.", "Warning_Delete_Supermarket_Category": "Supprimer une catégorie de supermarché supprimera également toutes les relations avec les aliments. Êtes-vous sûr ?", - "Instruction_Replace": "Instruction Remplacer" + "Instruction_Replace": "Instruction Remplacer", + "recipe_property_info": "Vous pouvez également ajouter des propriétés aux aliments pour les calculer automatiquement en fonction de votre recette !", + "per_serving": "par portions", + "open_data_help_text": "Le projet «Tandoor Open Data» est une base de données fournit par la communauté. Ce champ est rempli automatiquement lors de l'importation des données et permet les mises à jour dans le futur." } From 8580aea43f2da905ba60ac04093e02309accf94c Mon Sep 17 00:00:00 2001 From: NeoID Date: Sat, 19 Aug 2023 08:42:45 +0000 Subject: [PATCH 5/9] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?= =?UTF-8?q?=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 71.4% (265 of 371 strings) Translation: Tandoor/Recipes Backend Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/nb_NO/ --- cookbook/locale/nb_NO/LC_MESSAGES/django.po | 143 ++++++++++++-------- 1 file changed, 85 insertions(+), 58 deletions(-) diff --git a/cookbook/locale/nb_NO/LC_MESSAGES/django.po b/cookbook/locale/nb_NO/LC_MESSAGES/django.po index af5ff980..efd5c85a 100644 --- a/cookbook/locale/nb_NO/LC_MESSAGES/django.po +++ b/cookbook/locale/nb_NO/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-04-11 15:09+0200\n" -"PO-Revision-Date: 2023-04-17 20:55+0000\n" -"Last-Translator: Espen Sellevåg \n" +"PO-Revision-Date: 2023-08-19 21:36+0000\n" +"Last-Translator: NeoID \n" "Language-Team: Norwegian Bokmål \n" "Language: nb_NO\n" @@ -31,6 +31,8 @@ msgid "" "Color of the top navigation bar. Not all colors work with all themes, just " "try them out!" msgstr "" +"Farge på toppnavigasjonslinjen. Ikke alle farger fungerer med alle temaer, " +"så bare prøv dem ut!" #: .\cookbook\forms.py:46 msgid "Default Unit to be used when inserting a new ingredient into a recipe." @@ -79,13 +81,15 @@ msgstr "" #: .\cookbook\forms.py:56 msgid "Makes the navbar stick to the top of the page." -msgstr "" +msgstr "Fest navigasjonslinjen til toppen av siden." #: .\cookbook\forms.py:72 msgid "" "Both fields are optional. If none are given the username will be displayed " "instead" msgstr "" +"Begge feltene er valgfrie. Hvis ingen blir oppgitt, vil brukernavnet vises i " +"stedet" #: .\cookbook\forms.py:93 .\cookbook\forms.py:315 #: .\cookbook\templates\forms\edit_internal_recipe.html:45 @@ -97,15 +101,15 @@ msgstr "Navn" #: .\cookbook\templates\forms\edit_internal_recipe.html:81 #: .\cookbook\templates\stats.html:24 .\cookbook\templates\url_import.html:202 msgid "Keywords" -msgstr "" +msgstr "Nøkkelord" #: .\cookbook\forms.py:95 msgid "Preparation time in minutes" -msgstr "" +msgstr "Forberedelsestid i minutter" #: .\cookbook\forms.py:96 msgid "Waiting time (cooking/baking) in minutes" -msgstr "" +msgstr "Ventetid (til matlaging/baking) i minutter" #: .\cookbook\forms.py:97 .\cookbook\forms.py:317 msgid "Path" @@ -124,6 +128,8 @@ msgid "" "To prevent duplicates recipes with the same name as existing ones are " "ignored. Check this box to import everything." msgstr "" +"For å unngå duplikater, blir oppskrifter med samme navn som eksisterende " +"ignorert. Merk av denne boksen for å importere alt." #: .\cookbook\forms.py:149 msgid "New Unit" @@ -131,7 +137,7 @@ msgstr "Ny enhet" #: .\cookbook\forms.py:150 msgid "New unit that other gets replaced by." -msgstr "" +msgstr "Ny enhet som erstatter den gamle." #: .\cookbook\forms.py:155 msgid "Old Unit" @@ -143,19 +149,19 @@ msgstr "Enhet som skal erstattes." #: .\cookbook\forms.py:172 msgid "New Food" -msgstr "" +msgstr "Ny matvare" #: .\cookbook\forms.py:173 msgid "New food that other gets replaced by." -msgstr "" +msgstr "Ny matvare som erstatter den gamle." #: .\cookbook\forms.py:178 msgid "Old Food" -msgstr "" +msgstr "Gammel matvare" #: .\cookbook\forms.py:179 msgid "Food that should be replaced." -msgstr "" +msgstr "Matvare som bør erstattes." #: .\cookbook\forms.py:197 msgid "Add your comment: " @@ -163,17 +169,19 @@ msgstr "Legg til din kommentar: " #: .\cookbook\forms.py:238 msgid "Leave empty for dropbox and enter app password for nextcloud." -msgstr "" +msgstr "La det stå tomt for Dropbox og skriv inn app-passordet for Nextcloud." #: .\cookbook\forms.py:245 msgid "Leave empty for nextcloud and enter api token for dropbox." -msgstr "" +msgstr "La det stå tomt for Nextcloud og skriv inn API-tokenet for Dropbox." #: .\cookbook\forms.py:253 msgid "" "Leave empty for dropbox and enter only base url for nextcloud (/remote." "php/webdav/ is added automatically)" msgstr "" +"La det stå tomt for Dropbox, og skriv bare inn grunn-URLen for Nextcloud " +"(/remote.php/webdav/ blir lagt til automatisk)" #: .\cookbook\forms.py:291 msgid "Search String" @@ -185,11 +193,12 @@ msgstr "Fil-ID" #: .\cookbook\forms.py:354 msgid "You must provide at least a recipe or a title." -msgstr "" +msgstr "Du må oppgi minst en oppskrift eller en tittel." #: .\cookbook\forms.py:367 msgid "You can list default users to share recipes with in the settings." msgstr "" +"Du kan liste opp standardbrukere for å dele oppskrifter innen innstillingene." #: .\cookbook\forms.py:368 #: .\cookbook\templates\forms\edit_internal_recipe.html:377 @@ -197,10 +206,14 @@ msgid "" "You can use markdown to format this field. See the docs here" msgstr "" +"Du kan bruke Markdown for å formatere dette feltet. Se dokumentasjonen her" #: .\cookbook\forms.py:393 msgid "A username is not required, if left blank the new user can choose one." msgstr "" +"Et brukernavn er ikke påkrevd. Hvis det blir stående tomt, kan den nye " +"brukeren velge ett selv." #: .\cookbook\helper\permission_helper.py:123 #: .\cookbook\helper\permission_helper.py:129 @@ -222,26 +235,30 @@ msgstr "Du er ikke innlogget og kan derfor ikke vise siden!" #: .\cookbook\helper\permission_helper.py:167 #: .\cookbook\helper\permission_helper.py:182 msgid "You cannot interact with this object as it is not owned by you!" -msgstr "" +msgstr "Du kan ikke samhandle med dette objektet, da det ikke tilhører deg!" #: .\cookbook\helper\recipe_url_import.py:40 .\cookbook\views\api.py:549 msgid "The requested site provided malformed data and cannot be read." msgstr "" +"Nettstedet du har forespurt, har levert feilformatert data som ikke kan " +"leses." #: .\cookbook\helper\recipe_url_import.py:54 msgid "" "The requested site does not provide any recognized data format to import the " "recipe from." msgstr "" +"Det forespurte nettstedet gir ingen gjenkjennelig dataformat som kan " +"importeres oppskriften fra." #: .\cookbook\helper\recipe_url_import.py:160 msgid "Imported from" -msgstr "" +msgstr "Importert fra" #: .\cookbook\helper\template_helper.py:60 #: .\cookbook\helper\template_helper.py:62 msgid "Could not parse template code." -msgstr "" +msgstr "Kunne ikke analysere mal-koden." #: .\cookbook\integration\integration.py:102 #: .\cookbook\templates\import.html:14 .\cookbook\templates\import.html:20 @@ -250,50 +267,52 @@ msgstr "" #: .\cookbook\templates\url_import.html:233 .\cookbook\views\delete.py:60 #: .\cookbook\views\edit.py:190 msgid "Import" -msgstr "" +msgstr "Importér" #: .\cookbook\integration\integration.py:131 msgid "" "Importer expected a .zip file. Did you choose the correct importer type for " "your data ?" msgstr "" +"Importøren forventet en .zip-fil. Har du valgt riktig type importør for " +"dataene dine?" #: .\cookbook\integration\integration.py:134 msgid "The following recipes were ignored because they already existed:" -msgstr "" +msgstr "Følgende oppskrifter ble ignorert fordi de allerede eksisterte:" #: .\cookbook\integration\integration.py:137 #, python-format msgid "Imported %s recipes." -msgstr "" +msgstr "Importerte %s oppskrifter." #: .\cookbook\integration\paprika.py:44 msgid "Notes" -msgstr "" +msgstr "Notater" #: .\cookbook\integration\paprika.py:47 msgid "Nutritional Information" -msgstr "" +msgstr "Næringsinformasjon" #: .\cookbook\integration\paprika.py:50 msgid "Source" -msgstr "" +msgstr "Kilde" #: .\cookbook\integration\safron.py:23 #: .\cookbook\templates\forms\edit_internal_recipe.html:75 #: .\cookbook\templates\include\log_cooking.html:16 #: .\cookbook\templates\url_import.html:84 msgid "Servings" -msgstr "" +msgstr "Porsjoner" #: .\cookbook\integration\safron.py:25 msgid "Waiting time" -msgstr "" +msgstr "Ventetid" #: .\cookbook\integration\safron.py:27 #: .\cookbook\templates\forms\edit_internal_recipe.html:69 msgid "Preparation Time" -msgstr "" +msgstr "Forberedelsestid" #: .\cookbook\integration\safron.py:29 .\cookbook\templates\base.html:71 #: .\cookbook\templates\forms\ingredients.html:7 @@ -329,7 +348,7 @@ msgstr "Søk" #: .\cookbook\templates\meal_plan.html:5 .\cookbook\views\delete.py:152 #: .\cookbook\views\edit.py:224 .\cookbook\views\new.py:188 msgid "Meal-Plan" -msgstr "" +msgstr "Måltidsplan" #: .\cookbook\models.py:112 .\cookbook\templates\base.html:82 msgid "Books" @@ -337,11 +356,11 @@ msgstr "Bøker" #: .\cookbook\models.py:119 msgid "Small" -msgstr "" +msgstr "Liten" #: .\cookbook\models.py:119 msgid "Large" -msgstr "" +msgstr "Stor" #: .\cookbook\models.py:327 #: .\cookbook\templates\forms\edit_internal_recipe.html:198 @@ -1109,22 +1128,24 @@ msgstr "" #: .\cookbook\templates\markdown_info.html:125 msgid "Images & Links" -msgstr "" +msgstr "Bilder og lenker" #: .\cookbook\templates\markdown_info.html:126 msgid "" "Links can be formatted with Markdown. This application also allows to paste " "links directly into markdown fields without any formatting." msgstr "" +"Lenker kan formateres med Markdown. Denne applikasjonen lar deg også lime " +"inn lenker direkte i Markdown-felt uten noen formatering." #: .\cookbook\templates\markdown_info.html:132 #: .\cookbook\templates\markdown_info.html:145 msgid "This will become an image" -msgstr "" +msgstr "Dette vil bli til et bilde" #: .\cookbook\templates\markdown_info.html:152 msgid "Tables" -msgstr "" +msgstr "Tabeller" #: .\cookbook\templates\markdown_info.html:153 msgid "" @@ -1132,124 +1153,130 @@ msgid "" "editor like this one." msgstr "" +"Markdown-tabeller er vanskelige å lage for hånd. Det anbefales å bruke en " +"tabellredigerer som denne." #: .\cookbook\templates\markdown_info.html:155 #: .\cookbook\templates\markdown_info.html:157 #: .\cookbook\templates\markdown_info.html:171 #: .\cookbook\templates\markdown_info.html:177 msgid "Table" -msgstr "" +msgstr "Tabell" #: .\cookbook\templates\markdown_info.html:155 #: .\cookbook\templates\markdown_info.html:172 msgid "Header" -msgstr "" +msgstr "Overskrift" #: .\cookbook\templates\markdown_info.html:157 #: .\cookbook\templates\markdown_info.html:178 msgid "Cell" -msgstr "" +msgstr "Celle" #: .\cookbook\templates\meal_plan.html:101 msgid "New Entry" -msgstr "" +msgstr "Ny oppføring" #: .\cookbook\templates\meal_plan.html:113 #: .\cookbook\templates\shopping_list.html:52 msgid "Search Recipe" -msgstr "" +msgstr "Søk oppskrift" #: .\cookbook\templates\meal_plan.html:139 msgid "Title" -msgstr "" +msgstr "Tittel" #: .\cookbook\templates\meal_plan.html:141 msgid "Note (optional)" -msgstr "" +msgstr "Merknad (valgfritt)" #: .\cookbook\templates\meal_plan.html:143 msgid "" "You can use markdown to format this field. See the docs here" msgstr "" +"Du kan bruke Markdown for å formatere dette feltet. Se dokumentasjonen " +"her" #: .\cookbook\templates\meal_plan.html:147 #: .\cookbook\templates\meal_plan.html:251 msgid "Serving Count" -msgstr "" +msgstr "Antall porsjoner" #: .\cookbook\templates\meal_plan.html:153 msgid "Create only note" -msgstr "" +msgstr "Opprett kun en merknad" #: .\cookbook\templates\meal_plan.html:168 #: .\cookbook\templates\shopping_list.html:7 #: .\cookbook\templates\shopping_list.html:29 #: .\cookbook\templates\shopping_list.html:705 msgid "Shopping List" -msgstr "" +msgstr "Handleliste" #: .\cookbook\templates\meal_plan.html:172 msgid "Shopping list currently empty" -msgstr "" +msgstr "Handlelisten er for øyeblikket tom" #: .\cookbook\templates\meal_plan.html:175 msgid "Open Shopping List" -msgstr "" +msgstr "Åpne handlelisten" #: .\cookbook\templates\meal_plan.html:189 msgid "Plan" -msgstr "" +msgstr "Plan" #: .\cookbook\templates\meal_plan.html:196 msgid "Number of Days" -msgstr "" +msgstr "Antall dager" #: .\cookbook\templates\meal_plan.html:206 msgid "Weekday offset" -msgstr "" +msgstr "Ukedagsforskyvning" #: .\cookbook\templates\meal_plan.html:209 msgid "" "Number of days starting from the first day of the week to offset the default " "view." -msgstr "" +msgstr "Antall dager fra den første dagen i uken for å endre standardvisningen." #: .\cookbook\templates\meal_plan.html:217 #: .\cookbook\templates\meal_plan.html:294 msgid "Edit plan types" -msgstr "" +msgstr "Rediger plantyper" #: .\cookbook\templates\meal_plan.html:219 msgid "Show help" -msgstr "" +msgstr "Vis hjelp" #: .\cookbook\templates\meal_plan.html:220 msgid "Week iCal export" -msgstr "" +msgstr "Uke iCal-eksport" #: .\cookbook\templates\meal_plan.html:264 #: .\cookbook\templates\meal_plan_entry.html:18 msgid "Created by" -msgstr "" +msgstr "Opprettet av" #: .\cookbook\templates\meal_plan.html:270 #: .\cookbook\templates\meal_plan_entry.html:20 #: .\cookbook\templates\shopping_list.html:250 msgid "Shared with" -msgstr "" +msgstr "Delt med" #: .\cookbook\templates\meal_plan.html:280 msgid "Add to Shopping" -msgstr "" +msgstr "Legg til i handlelisten" #: .\cookbook\templates\meal_plan.html:323 msgid "New meal type" -msgstr "" +msgstr "Ny måltidstype" #: .\cookbook\templates\meal_plan.html:338 msgid "Meal Plan Help" -msgstr "" +msgstr "Hjelp for måltidsplanen" #: .\cookbook\templates\meal_plan.html:344 msgid "" @@ -1289,7 +1316,7 @@ msgstr "" #: .\cookbook\templates\meal_plan_entry.html:6 msgid "Meal Plan View" -msgstr "" +msgstr "Visning av måltidsplanen" #: .\cookbook\templates\meal_plan_entry.html:50 msgid "Never cooked before." @@ -1297,7 +1324,7 @@ msgstr "" #: .\cookbook\templates\meal_plan_entry.html:76 msgid "Other meals on this day" -msgstr "" +msgstr "Andre måltider denne dagen" #: .\cookbook\templates\no_groups_info.html:5 #: .\cookbook\templates\no_groups_info.html:12 From 835c5a1d3ab5afd72ffd3bc191b02920a56fc70b Mon Sep 17 00:00:00 2001 From: Theodoros Grammenos Date: Sat, 19 Aug 2023 21:00:03 +0000 Subject: [PATCH 6/9] Translated using Weblate (Greek) Currently translated at 13.4% (70 of 520 strings) Translation: Tandoor/Recipes Frontend Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/el/ --- vue/src/locales/el.json | 126 ++++++++++++++++++++-------------------- 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/vue/src/locales/el.json b/vue/src/locales/el.json index 1a09fd97..be2f371c 100644 --- a/vue/src/locales/el.json +++ b/vue/src/locales/el.json @@ -1,70 +1,70 @@ { "warning_feature_beta": "Αυτή η λειτουργία βρίσκεται αυτήν τη στιγμή σε κατάσταση BETA (δοκιμαστική). Παρακαλούμε να αναμένετε σφάλματα και πιθανές αλλαγές που μπορεί να προκαλέσουν απώλεια δεδομένων που σχετίζονται με τις διάφορες λειτουργίες στο μέλλον.", - "err_fetching_resource": "", - "err_creating_resource": "", - "err_updating_resource": "", - "err_deleting_resource": "", - "err_deleting_protected_resource": "", - "err_moving_resource": "", - "err_merging_resource": "", - "success_fetching_resource": "", - "success_creating_resource": "", - "success_updating_resource": "", - "success_deleting_resource": "", - "success_moving_resource": "", - "success_merging_resource": "", - "file_upload_disabled": "", + "err_fetching_resource": "Παρουσιάστηκε ένα σφάλμα κατά τη λήψη ενός πόρου!", + "err_creating_resource": "Παρουσιάστηκε ένα σφάλμα κατά τη δημιουργία ενός πόρου!", + "err_updating_resource": "Παρουσιάστηκε ένα σφάλμα κατά την ενημέρωση ενός πόρου!", + "err_deleting_resource": "Παρουσιάστηκε ένα σφάλμα κατά τη διαγραφή ενός πόρου!", + "err_deleting_protected_resource": "Το αντικείμενο που προσπαθείτε να διαγράψετε είναι σε χρήση και δεν μπορεί να διαγραφεί.", + "err_moving_resource": "Παρουσιάστηκε ένα σφάλμα κατά τη μετακίνηση ενός πόρου!", + "err_merging_resource": "Παρουσιάστηκε ένα σφάλμα κατά τη συγχώνευση ενός πόρου!", + "success_fetching_resource": "Επιτυχής λήψη πόρου!", + "success_creating_resource": "Επιτυχής δημιουργία πόρου!", + "success_updating_resource": "Επιτυχής ενημέρωση πόρου!", + "success_deleting_resource": "Επιτυχής διαγραφή πόρου!", + "success_moving_resource": "Επιτυχής μετακίνηση πόρου!", + "success_merging_resource": "Επιτυχής συγχώνευση πόρου!", + "file_upload_disabled": "Το ανέβασμα αρχείων δεν είναι ενεργοποιημένο για τον χώρο σας.", "recipe_property_info": "", - "warning_space_delete": "", - "food_inherit_info": "", - "facet_count_info": "", - "step_time_minutes": "", - "confirm_delete": "", - "import_running": "", - "all_fields_optional": "", - "convert_internal": "", - "show_only_internal": "", - "show_split_screen": "", - "Log_Recipe_Cooking": "", - "External_Recipe_Image": "", - "Add_to_Shopping": "", - "Add_to_Plan": "", - "Step_start_time": "", - "Sort_by_new": "", - "Table_of_Contents": "", - "Recipes_per_page": "", - "Show_as_header": "", - "Hide_as_header": "", - "Add_nutrition_recipe": "", - "Remove_nutrition_recipe": "", + "warning_space_delete": "Μπορείτε να διαγράψετε τον χώρο σας μαζί με όλες τις συνταγές, τις λίστες αγορών, τα προγράμματα γευμάτων και οτιδήποτε άλλο έχετε δημιουργήσει. Η ενέργεια αυτή είναι μη αναστρέψιμη! Είστε σίγουροι ότι θέλετε να το κάνετε;", + "food_inherit_info": "Πεδία σε φαγητά τα οποία πρέπει να κληρονομούνται αυτόματα.", + "facet_count_info": "Εμφάνιση του αριθμού των συνταγών στα φίλτρα αναζήτησης.", + "step_time_minutes": "Χρόνος βήματος σε λεπτά", + "confirm_delete": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το {αντικείμενο};", + "import_running": "Εισαγωγή σε εξέλιξη, παρακαλώ περιμένετε!", + "all_fields_optional": "Όλα τα πεδία είναι προαιρετικά και μπορούν να μη συμπληρωθούν.", + "convert_internal": "Μετατροπή σε εσωτερική συνταγή", + "show_only_internal": "Εμφάνιση μόνο εσωτερικών συνταγών", + "show_split_screen": "Χωρισμένη οθόνη", + "Log_Recipe_Cooking": "Καταγραφή εκτέλεσης συνταγής", + "External_Recipe_Image": "Εξωτερική εικόνα συνταγής", + "Add_to_Shopping": "Προσθήκη στις αγορές", + "Add_to_Plan": "Προσθήκη στο πρόγραμμα", + "Step_start_time": "Χρόνος αρχής βήματος", + "Sort_by_new": "Ταξινόμηση κατά νέο", + "Table_of_Contents": "Πίνακας περιεχομένων", + "Recipes_per_page": "Συνταγές ανά σελίδα", + "Show_as_header": "Εμφάνιση ως κεφαλίδα", + "Hide_as_header": "Απόκρυψη ως κεφαλίδα", + "Add_nutrition_recipe": "Προσθήκη διατροφικής αξίας στη συνταγή", + "Remove_nutrition_recipe": "Αφαίρεση διατροφικής αξίας από τη συνταγή", "Copy_template_reference": "", - "per_serving": "", - "Save_and_View": "", - "Manage_Books": "", - "Meal_Plan": "", - "Select_Book": "", - "Select_File": "", - "Recipe_Image": "", - "Import_finished": "", - "View_Recipes": "", - "Log_Cooking": "", - "New_Recipe": "", - "Url_Import": "", - "Reset_Search": "", - "Recently_Viewed": "", - "Load_More": "", - "New_Keyword": "", - "Delete_Keyword": "", - "Edit_Keyword": "", - "Edit_Recipe": "", - "Move_Keyword": "", - "Merge_Keyword": "", - "Hide_Keywords": "", - "Hide_Recipes": "", - "Move_Up": "", - "Move_Down": "", - "Step_Name": "", - "Step_Type": "", + "per_serving": "ανά μερίδα", + "Save_and_View": "Αποθήκευση και προβολή", + "Manage_Books": "Διαχείριση βιβλίων", + "Meal_Plan": "Πρόγραμμα γευμάτων", + "Select_Book": "Επιλογή βιβλίου", + "Select_File": "Επιλογή αρχείου", + "Recipe_Image": "Εικόνα συνταγής", + "Import_finished": "Η εισαγωγή ολοκληρώθηκε", + "View_Recipes": "Προβολή συνταγών", + "Log_Cooking": "Καταγραφή μαγειρέματος", + "New_Recipe": "Νέα συνταγή", + "Url_Import": "Εισαγωγή Url", + "Reset_Search": "Επαναφορά αναζήτησης", + "Recently_Viewed": "Προβλήθηκαν πρόσφατα", + "Load_More": "Φόρτωση περισσότερων", + "New_Keyword": "Νέα λέξη-κλειδί", + "Delete_Keyword": "Διαγραφή λέξης-κλειδί", + "Edit_Keyword": "Τροποποίηση λέξης-κλειδί", + "Edit_Recipe": "Τροποποίηση συνταγής", + "Move_Keyword": "Μεταφορά λέξης-κλειδί", + "Merge_Keyword": "Συγχώνευση λέξης-κλειδί", + "Hide_Keywords": "Απόκρυψη λέξης-κλειδί", + "Hide_Recipes": "Απόκρυψη συνταγών", + "Move_Up": "Μετακίνηση πάνω", + "Move_Down": "Μετακίνηση κάτω", + "Step_Name": "Όνομα βήματος", + "Step_Type": "Είδος βήματος", "Make_Header": "", "Make_Ingredient": "", "Amount": "", From 2e606dc166faeac9ad7f17c343bb101f92edfc34 Mon Sep 17 00:00:00 2001 From: Theodoros Grammenos Date: Sun, 20 Aug 2023 09:05:54 +0000 Subject: [PATCH 7/9] Translated using Weblate (Greek) Currently translated at 54.9% (288 of 524 strings) Translation: Tandoor/Recipes Backend Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/el/ --- cookbook/locale/el/LC_MESSAGES/django.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cookbook/locale/el/LC_MESSAGES/django.po b/cookbook/locale/el/LC_MESSAGES/django.po index 4b569886..03e0ec40 100644 --- a/cookbook/locale/el/LC_MESSAGES/django.po +++ b/cookbook/locale/el/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-07-12 19:20+0200\n" -"PO-Revision-Date: 2023-06-25 14:19+0000\n" -"Last-Translator: sweeney \n" +"PO-Revision-Date: 2023-08-21 09:19+0000\n" +"Last-Translator: Theodoros Grammenos \n" "Language-Team: Greek \n" "Language: el\n" @@ -22,7 +22,7 @@ msgstr "" #: .\cookbook\filters.py:23 .\cookbook\templates\forms\ingredients.html:34 #: .\cookbook\templates\stats.html:28 msgid "Ingredients" -msgstr "Συστατικά" +msgstr "Υλικά" #: .\cookbook\forms.py:53 msgid "Default unit" @@ -66,7 +66,7 @@ msgstr "Κοινοποίηση προγράμματος" #: .\cookbook\forms.py:63 msgid "Ingredient decimal places" -msgstr "" +msgstr "Δεκαδικά ψηφία υλικών" #: .\cookbook\forms.py:64 msgid "Shopping list auto sync period" From c01081255b646ebb1d4adaee81cb95a3ea14fdc0 Mon Sep 17 00:00:00 2001 From: Theodoros Grammenos Date: Sun, 20 Aug 2023 09:11:13 +0000 Subject: [PATCH 8/9] Translated using Weblate (Greek) Currently translated at 62.5% (325 of 520 strings) Translation: Tandoor/Recipes Frontend Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/el/ --- vue/src/locales/el.json | 515 ++++++++++++++++++++-------------------- 1 file changed, 258 insertions(+), 257 deletions(-) diff --git a/vue/src/locales/el.json b/vue/src/locales/el.json index be2f371c..7ed4fb99 100644 --- a/vue/src/locales/el.json +++ b/vue/src/locales/el.json @@ -15,11 +15,11 @@ "success_merging_resource": "Επιτυχής συγχώνευση πόρου!", "file_upload_disabled": "Το ανέβασμα αρχείων δεν είναι ενεργοποιημένο για τον χώρο σας.", "recipe_property_info": "", - "warning_space_delete": "Μπορείτε να διαγράψετε τον χώρο σας μαζί με όλες τις συνταγές, τις λίστες αγορών, τα προγράμματα γευμάτων και οτιδήποτε άλλο έχετε δημιουργήσει. Η ενέργεια αυτή είναι μη αναστρέψιμη! Είστε σίγουροι ότι θέλετε να το κάνετε;", + "warning_space_delete": "Μπορείτε να διαγράψετε τον χώρο σας μαζί με όλες τις συνταγές, τις λίστες αγορών, τα προγράμματα γευμάτων και οτιδήποτε άλλο έχετε δημιουργήσει. Η ενέργεια αυτή είναι μη αναστρέψιμη! Θέλετε σίγουρα να το κάνετε;", "food_inherit_info": "Πεδία σε φαγητά τα οποία πρέπει να κληρονομούνται αυτόματα.", "facet_count_info": "Εμφάνιση του αριθμού των συνταγών στα φίλτρα αναζήτησης.", "step_time_minutes": "Χρόνος βήματος σε λεπτά", - "confirm_delete": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το {αντικείμενο};", + "confirm_delete": "Θέλετε σίγουρα να διαγράψετε αυτό το {object};", "import_running": "Εισαγωγή σε εξέλιξη, παρακαλώ περιμένετε!", "all_fields_optional": "Όλα τα πεδία είναι προαιρετικά και μπορούν να μη συμπληρωθούν.", "convert_internal": "Μετατροπή σε εσωτερική συνταγή", @@ -65,256 +65,256 @@ "Move_Down": "Μετακίνηση κάτω", "Step_Name": "Όνομα βήματος", "Step_Type": "Είδος βήματος", - "Make_Header": "", - "Make_Ingredient": "", - "Amount": "", - "Enable_Amount": "", - "Disable_Amount": "", - "Ingredient Editor": "", - "Description_Replace": "", - "Instruction_Replace": "", - "Auto_Sort": "", - "Auto_Sort_Help": "", - "Private_Recipe": "", - "Private_Recipe_Help": "", - "reusable_help_text": "", - "open_data_help_text": "", + "Make_Header": "Δημιουργία κεφαλίδας", + "Make_Ingredient": "Δημιουργία υλικού", + "Amount": "Ποσότητα", + "Enable_Amount": "Ενεργοποίηση ποσότητας", + "Disable_Amount": "Απενεργοποίηση ποσότητας", + "Ingredient Editor": "Επεξεργαστής συστατικών", + "Description_Replace": "Αλλαγή περιγραφής", + "Instruction_Replace": "Αλλαγή οδηγίας", + "Auto_Sort": "Αυτόματη ταξινόμηση", + "Auto_Sort_Help": "Μετακίνηση όλων των υλικών στο καταλληλότερο βήμα.", + "Private_Recipe": "Ιδιωτική συνταγή", + "Private_Recipe_Help": "Η συνταγή είναι ορατή μόνο σε εσάς και στα άτομα με τα οποία την μοιράζεστε.", + "reusable_help_text": "Ο σύνδεσμος πρόσκλησης μπορεί να χρησιμοποιηθεί από πολλαπλούς χρήστες.", + "open_data_help_text": "Μέσω του project Tandoor Open Data η κοινότητα παρέχει δεδομένα για το Tandoor. Αυτό το πεδίο συμπληρώνεται αυτόματα κατά την εισαγωγή του και επιτρέπει ενημερώσεις στο μέλλον.", "Open_Data_Slug": "", - "Open_Data_Import": "", - "Data_Import_Info": "", - "Update_Existing_Data": "", - "Use_Metric": "", - "Learn_More": "", - "converted_unit": "", - "converted_amount": "", - "base_unit": "", - "base_amount": "", - "Datatype": "", - "Number of Objects": "", - "Add_Step": "", + "Open_Data_Import": "Εισαγωγή ανοιχτών δεδομένων", + "Data_Import_Info": "Βελτιώστε τον χώρο και τη συλλογή συνταγών σας κάνοντας εισαγωγή μιας λίστας από φαγητά, μονάδες μέτρησης κ.α., επιμελημένη από την κοινότητα.", + "Update_Existing_Data": "Ενημέρωση υπαρχόντων δεδομένων", + "Use_Metric": "Χρήση μετρικών μονάδων μέτρησης", + "Learn_More": "Μάθετε περισσότερα", + "converted_unit": "Μετατρεπόμενη μονάδα μέτρησης", + "converted_amount": "Μετατρεπόμενη ποσότητα", + "base_unit": "Βασική μονάδα μέτρησης", + "base_amount": "Βασική ποσότητα", + "Datatype": "Τύπος δεδομένων", + "Number of Objects": "Αριθμός αντικειμένων", + "Add_Step": "Προσθήκη βήματος", "Keywords": "Λέξεις κλειδιά", "Books": "Βιβλία", - "Proteins": "", - "Fats": "", - "Carbohydrates": "", - "Calories": "", - "Energy": "", - "Nutrition": "", - "Date": "", - "Share": "", - "Automation": "", - "Parameter": "", - "Export": "", - "Copy": "", - "Rating": "", - "Close": "", - "Cancel": "", - "Link": "", - "Add": "", - "New": "", - "Note": "", - "Success": "", - "Failure": "", - "Protected": "", - "Ingredients": "", - "Supermarket": "", - "Categories": "", - "Category": "", - "Selected": "", - "min": "", + "Proteins": "Πρωτεΐνες", + "Fats": "Λιπαρά", + "Carbohydrates": "Υδατάνθρακες", + "Calories": "Θερμίδες", + "Energy": "Ενέργεια", + "Nutrition": "Διατροφική αξία", + "Date": "Ημερομηνία", + "Share": "Κοινοποίηση", + "Automation": "Αυτοματισμός", + "Parameter": "Παράμετρος", + "Export": "Εξαγωγή", + "Copy": "Αντιγραφή", + "Rating": "Βαθμολογία", + "Close": "Κλείσιμο", + "Cancel": "Ακύρωση", + "Link": "Σύνδεσμος", + "Add": "Προσθήκη", + "New": "Νέο", + "Note": "Σημείωση", + "Success": "Επιτυχία", + "Failure": "Αποτυχία", + "Protected": "Προστατευμένο", + "Ingredients": "Υλικά", + "Supermarket": "Supermarket", + "Categories": "Κατηγορίες", + "Category": "Κατηγορία", + "Selected": "Επιλεγμένο", + "min": "ελάχ", "Servings": "Μερίδες", - "Waiting": "", - "Preparation": "", + "Waiting": "Αναμονή", + "Preparation": "Προετοιμασία", "External": "", - "Size": "", - "Files": "", - "File": "", - "Edit": "", - "Image": "", - "Delete": "", - "Open": "", - "Ok": "", - "Save": "", - "Step": "", - "Search": "", - "Import": "", - "Print": "", + "Size": "Μέγεθος", + "Files": "Αρχεία", + "File": "Αρχείο", + "Edit": "Τροποποίηση", + "Image": "Εικόνα", + "Delete": "Διαγραφή", + "Open": "Άνοιγμα", + "Ok": "ΟΚ", + "Save": "Αποθήκευση", + "Step": "Βήμα", + "Search": "Αναζήτηση", + "Import": "Εισαγωγή", + "Print": "Εκτύπωση", "Settings": "Ρυθμίσεις", - "or": "", - "and": "", - "Information": "", - "Download": "", - "Create": "", - "Search Settings": "", - "View": "", - "Recipes": "", - "Move": "", - "Merge": "", - "Parent": "", - "Copy Link": "", - "Copy Token": "", - "delete_confirmation": "", - "move_confirmation": "", - "merge_confirmation": "", - "create_rule": "", - "move_selection": "", - "merge_selection": "", - "Root": "", - "Ignore_Shopping": "", - "Shopping_Category": "", - "Shopping_Categories": "", - "Edit_Food": "", - "Move_Food": "", - "New_Food": "", - "Hide_Food": "", - "Food_Alias": "", - "Unit_Alias": "", - "Keyword_Alias": "", - "Delete_Food": "", - "No_ID": "", - "Meal_Plan_Days": "", - "merge_title": "", - "move_title": "", + "or": "ή", + "and": "και", + "Information": "Πληροφορίες", + "Download": "Λήψη", + "Create": "Δημιουργία", + "Search Settings": "Επιλογές αναζήτησης", + "View": "Προβολή", + "Recipes": "Συνταγές", + "Move": "Μετακίνηση", + "Merge": "Συγχώνευση", + "Parent": "Γονέας", + "Copy Link": "Αντιγραφή συνδέσμου", + "Copy Token": "Αντιγραφή token", + "delete_confirmation": "Είστε σίγουροι ότι θέλετε να διαγράψετε το {source};", + "move_confirmation": "Μετακίνηση του {child} στο γονέα {parent}", + "merge_confirmation": "Αντικατάσταση του {source} με το {target}", + "create_rule": "και δημιουργία αυτοματισμού", + "move_selection": "Επιλέξτε έναν γονέα {type} για να μεταφέρετε το {source} σε αυτόν.", + "merge_selection": "Αντικατάσταση όλων των εμφανίσεων του {source} με το επιλεγμένο {type}.", + "Root": "Ρίζα", + "Ignore_Shopping": "Παράλειψη αγορών", + "Shopping_Category": "Κατηγορία αγορών", + "Shopping_Categories": "Κατηγορίες αγορών", + "Edit_Food": "Τροποποίηση φαγητού", + "Move_Food": "Μετακίνηση φαγητού", + "New_Food": "Νέο φαγητό", + "Hide_Food": "Απόκρυψη φαγητού", + "Food_Alias": "Ψευδώνυμο φαγητού", + "Unit_Alias": "Ψευδώνυμο μονάδας μέτρησης", + "Keyword_Alias": "Ψευδώνυμο λέξης-κλειδί", + "Delete_Food": "Διαγραφή φαγητού", + "No_ID": "Το ID δεν βρέθηκε, αδύνατη η διαγραφή.", + "Meal_Plan_Days": "Μελλοντικά προγράμματα γευμάτων", + "merge_title": "Συγχώνευση {type}", + "move_title": "Μετακίνηση {type}", "Food": "Φαγητό", - "Property": "", - "Conversion": "", - "Original_Text": "", - "Recipe_Book": "", - "del_confirmation_tree": "", - "delete_title": "", - "create_title": "", - "edit_title": "", - "Name": "", - "Properties": "", - "Type": "", - "Description": "", - "Recipe": "", - "tree_root": "", - "Icon": "", - "Unit": "", - "Decimals": "", - "Default_Unit": "", - "No_Results": "", - "New_Unit": "", - "Create_New_Shopping Category": "", - "Create_New_Food": "", - "Create_New_Keyword": "", - "Create_New_Unit": "", - "Create_New_Meal_Type": "", - "Create_New_Shopping_Category": "", - "and_up": "", - "and_down": "", - "Instructions": "", - "Unrated": "", - "Automate": "", - "Empty": "", - "Key_Ctrl": "", - "Key_Shift": "", - "Time": "", - "Text": "", - "Shopping_list": "", - "Added_by": "", - "Added_on": "", - "AddToShopping": "", - "IngredientInShopping": "", - "NotInShopping": "", - "OnHand": "", - "FoodOnHand": "", - "FoodNotOnHand": "", - "Undefined": "", - "Create_Meal_Plan_Entry": "", - "Edit_Meal_Plan_Entry": "", - "Title": "", - "Week": "", - "Month": "", - "Year": "", - "Planner": "", - "Planner_Settings": "", - "Period": "", - "Plan_Period_To_Show": "", - "Periods": "", - "Plan_Show_How_Many_Periods": "", - "Starting_Day": "", - "Meal_Types": "", - "Meal_Type": "", - "New_Entry": "", - "Clone": "", - "Drag_Here_To_Delete": "", - "Meal_Type_Required": "", - "Title_or_Recipe_Required": "", - "Color": "", - "New_Meal_Type": "", - "Use_Fractions": "", - "Use_Fractions_Help": "", - "AddFoodToShopping": "", - "RemoveFoodFromShopping": "", - "DeleteShoppingConfirm": "", + "Property": "Ιδιότητα", + "Conversion": "Μετατροπή", + "Original_Text": "Αρχικό κείμενο", + "Recipe_Book": "Βιβλίο συνταγών", + "del_confirmation_tree": "Θέλετε σίγουρα να διαγράψετε το {source} και όλα τα παιδιά του;", + "delete_title": "Διαγραφή {type}", + "create_title": "Νέο {type}", + "edit_title": "Τροποποίηση {type}", + "Name": "Όνομα", + "Properties": "Ιδιότητες", + "Type": "Είδος", + "Description": "Περιγραφή", + "Recipe": "Συνταγή", + "tree_root": "Ρίζα του δέντρου", + "Icon": "Εικονίδιο", + "Unit": "Μονάδα μέτρησης", + "Decimals": "Δεκαδικά", + "Default_Unit": "Προεπιλεγμένη μονάδα μέτρησης", + "No_Results": "Δεν υπάρχουν αποτελέσματα", + "New_Unit": "Νέα μονάδα μέτρησης", + "Create_New_Shopping Category": "Δημιουργία νέας κατηγορίας αγορών", + "Create_New_Food": "Προσθήκη νέου φαγητού", + "Create_New_Keyword": "Προσθήκη νέας λέξης-κλειδί", + "Create_New_Unit": "Προσθήκη νέας μονάδας μέτρησης", + "Create_New_Meal_Type": "Προσθήκη νέου είδους γεύματος", + "Create_New_Shopping_Category": "Προσθήκη νέας κατηγορίας αγορών", + "and_up": "και πάνω", + "and_down": "και κάτω", + "Instructions": "Οδηγίες", + "Unrated": "Χωρίς βαθμολογία", + "Automate": "Αυτοματοποίηση", + "Empty": "Κενό", + "Key_Ctrl": "Ctrl", + "Key_Shift": "Shift", + "Time": "Χρόνος", + "Text": "Κείμενο", + "Shopping_list": "Λίστα αγορών", + "Added_by": "Προστέθηκε από", + "Added_on": "Προστέθηκε στις", + "AddToShopping": "Προσθήκη στη λίστα αγορών", + "IngredientInShopping": "Αυτό το υλικό είναι στη λίστα αγορών.", + "NotInShopping": "Το { food} δεν είναι στη λίστα αγορών σας.", + "OnHand": "Τώρα διαθέσιμα", + "FoodOnHand": "Έχετε το {food} διαθέσιμο.", + "FoodNotOnHand": "Δεν έχετε το {food} διαθέσιμο.", + "Undefined": "Απροσδιόριστο", + "Create_Meal_Plan_Entry": "Δημιουργία εγγραφής στο πρόγραμμα γευμάτων", + "Edit_Meal_Plan_Entry": "Τροποποίηση εγγραφής στο πρόγραμμα γευμάτων", + "Title": "Τίτλος", + "Week": "Εβδομάδα", + "Month": "Μήνας", + "Year": "Έτος", + "Planner": "Σχεδιαστής", + "Planner_Settings": "Επιλογές σχεδιαστή", + "Period": "Περίοδος", + "Plan_Period_To_Show": "Εμφάνιση εβδομάδων, μηνών ή ετών", + "Periods": "Περίοδοι", + "Plan_Show_How_Many_Periods": "Πόσες περίοδοι να εμφανίζονται", + "Starting_Day": "Πρώτη μέρα της εβδομάδας", + "Meal_Types": "Είδη γευμάτων", + "Meal_Type": "Είδος γεύματος", + "New_Entry": "Νέα εγγραφή", + "Clone": "Αντιγραφή", + "Drag_Here_To_Delete": "Σύρετε εδώ για διαγραφή", + "Meal_Type_Required": "Το είδος του γεύματος είναι απαραίτητο", + "Title_or_Recipe_Required": "Η επιλογή τίτλου ή συνταγής είναι απαραίτητη", + "Color": "Χρώμα", + "New_Meal_Type": "Νέο είδος γεύματος", + "Use_Fractions": "Χρήση κλασμάτων", + "Use_Fractions_Help": "Αυτόματη μετατροπή δεκαδικών σε κλάσματα κατά την προβολή μιας συνταγής.", + "AddFoodToShopping": "Προσθήκη του {food} στη λίστα αγορών σας", + "RemoveFoodFromShopping": "Αφαίρεση του {food} από τη λίστα αγορών σας", + "DeleteShoppingConfirm": "Θέλετε σίγουρα να αφαιρέσετε όλα τα {food} από τη λίστα αγορών;", "IgnoredFood": "", - "Add_Servings_to_Shopping": "", - "Week_Numbers": "", - "Show_Week_Numbers": "", - "Export_As_ICal": "", - "Export_To_ICal": "", - "Cannot_Add_Notes_To_Shopping": "", - "Added_To_Shopping_List": "", - "Shopping_List_Empty": "", - "Next_Period": "", - "Previous_Period": "", - "Current_Period": "", - "Next_Day": "", - "Previous_Day": "", + "Add_Servings_to_Shopping": "Προσθήκη {servings} μερίδων στις αγορές", + "Week_Numbers": "Αριθμοί εδομάδων", + "Show_Week_Numbers": "Εμφάνιση αριθμών εβδομάδων;", + "Export_As_ICal": "Εξαγωγή της τρέχουσας περιόδου σε μορφή iCal", + "Export_To_ICal": "Εξαγωγή .ics", + "Cannot_Add_Notes_To_Shopping": "Δεν είναι δυνατή η προσθήκη σημειώσεων στη λίστα αγορών", + "Added_To_Shopping_List": "Προστέθηκε στη λίστα αγορών", + "Shopping_List_Empty": "Η λίστα αγορών σας είναι κενή, μπορείτε να προσθέσετε αντικείμενα από το μενού μιας εγγραφής στο πρόγραμμα γευμάτων (δεξί κλικ στην κάρτα ή αριστερό κλικ στο εικονίδιο του μενού)", + "Next_Period": "Επόμενη περίοδος", + "Previous_Period": "Προηγούμενη περίοδος", + "Current_Period": "Τρέχουσα περίοδος", + "Next_Day": "Επόμενη μέρα", + "Previous_Day": "Προηγούμενη μέρα", "Inherit": "", - "InheritFields": "", - "FoodInherit": "", - "ShowUncategorizedFood": "", - "GroupBy": "", - "Language": "", - "Theme": "", - "SupermarketCategoriesOnly": "", - "MoveCategory": "", - "CountMore": "", - "IgnoreThis": "", - "DelayFor": "", - "Warning": "", - "NoCategory": "", + "InheritFields": "Κληρονόμηση τιμών πεδίων", + "FoodInherit": "Πεδία φαγητών που κληρονομούνται", + "ShowUncategorizedFood": "Εμφάνιση απροσδιόριστων", + "GroupBy": "Ομαδοποίηση κατά", + "Language": "Γλώσσα", + "Theme": "Θέμα", + "SupermarketCategoriesOnly": "Μόνο κατηγορίες supermarket", + "MoveCategory": "Μετακίνηση σε: ", + "CountMore": "...+{count} περισσότερα", + "IgnoreThis": "Μην προσθέτεις αυτόματα το {food} στις αγορές", + "DelayFor": "Καθυστέρηση για {hours} ώρες", + "Warning": "Προειδοποίηση", + "NoCategory": "Δεν έχει επιλεγεί κατηγορία.", "InheritWarning": "", - "ShowDelayed": "", - "Completed": "", - "OfflineAlert": "", - "shopping_share": "", - "shopping_auto_sync": "", - "one_url_per_line": "", - "mealplan_autoadd_shopping": "", - "mealplan_autoexclude_onhand": "", - "mealplan_autoinclude_related": "", - "default_delay": "", - "plan_share_desc": "", - "shopping_share_desc": "", + "ShowDelayed": "Εμφάνιση αντικειμένων που έχουν καθυστερήσει", + "Completed": "Ολοκληρωμένο", + "OfflineAlert": "Είστε εκτός σύνδεσης, η λίστα αγορών μπορεί να μην συγχρονιστεί.", + "shopping_share": "Κοινοποίηση λίστας αγορών", + "shopping_auto_sync": "Αυτόματος συγχρονισμός", + "one_url_per_line": "Ένα URL ανά γραμμή", + "mealplan_autoadd_shopping": "Αυτόματη προσθήκη προγράμματος γευμάτων", + "mealplan_autoexclude_onhand": "Εξαίρεση διαθέσιμων φαγητών", + "mealplan_autoinclude_related": "Προσθήκη σχετικών συνταγών", + "default_delay": "Προεπιλεγμένες ώρες καθυστέρησης", + "plan_share_desc": "Οι νέες εγγραφές στο πρόγραμμα γευμάτων θα κοινοποιηθούν αυτόματα με τους επιλεγμένους χρήστες.", + "shopping_share_desc": "Οι χρήστες θα μπορούν να δουν όλα τα αντικείμενα που τοποθετείτε στη λίστα αγορών σας. Πρέπει να σας προσθέσουν για να δείτε τα αντικείμενα στη λίστα τους.", "shopping_auto_sync_desc": "", - "mealplan_autoadd_shopping_desc": "", - "mealplan_autoexclude_onhand_desc": "", - "mealplan_autoinclude_related_desc": "", - "default_delay_desc": "", + "mealplan_autoadd_shopping_desc": "Αυτόματη προθήκη συστατικών του προγράμματος γευμάτων στη λίστα αγορών.", + "mealplan_autoexclude_onhand_desc": "Κατά την προσθήκη ενός προγράμματος γευμάτων στη λίστα αγορών (χειροκίνητα ή αυτόματα), εξαίρεσε τυχόν υλικά που είναι διαθέσιμα.", + "mealplan_autoinclude_related_desc": "Κατά την προσθήκη ενός προγράμματος γευμάτων στη λίστα αγορών (χειροκίνητα ή αυτόματα), συμπερίλαβε όλες τις σχετικές συνταγές.", + "default_delay_desc": "Προεπιλεγμένος αριθμός ωρών καθυστέρησης μια εγγραφής στην λίστα αγορών.", "filter_to_supermarket": "", "Coming_Soon": "", - "Auto_Planner": "", - "New_Cookbook": "", - "Hide_Keyword": "", - "Hour": "", - "Hours": "", - "Day": "", - "Days": "", - "Second": "", - "Seconds": "", - "Clear": "", - "Users": "", - "Invites": "", - "err_move_self": "", + "Auto_Planner": "Αυτόματος προγραμματιστής", + "New_Cookbook": "Νέο βιβλίο μαγειρικής", + "Hide_Keyword": "Απόκρυψη λέξεων-κλειδί", + "Hour": "Ώρα", + "Hours": "Ώρες", + "Day": "Ημέρα", + "Days": "Ημέρες", + "Second": "Δευτερόλεπτο", + "Seconds": "Δευτερόλεπτα", + "Clear": "Εκκαθάριση", + "Users": "Χρήστες", + "Invites": "Προσκλήσεις", + "err_move_self": "Δεν είναι δυνατή η μετακίνηση ενός αντικειμένου στον εαυτό του", "nothing": "", - "err_merge_self": "", - "show_sql": "", - "filter_to_supermarket_desc": "", - "CategoryName": "", + "err_merge_self": "Δεν είναι δυνατή η συγχώνευση ενός αντικειμένου με τον εαυτό του", + "show_sql": "Εμφάνιση SQL", + "filter_to_supermarket_desc": "Αυτόματο φιλτράρισμα λίστας αγορών ώστε να περιέχει μόνο κατηγορίες για το επιλεγμένο supermarket.", + "CategoryName": "Όνομα κατηγορίας", "SupermarketName": "", "CategoryInstruction": "", "shopping_recent_days_desc": "", @@ -329,11 +329,11 @@ "csv_prefix_label": "", "copy_markdown_table": "", "in_shopping": "", - "DelayUntil": "", - "Pin": "", - "Unpin": "", + "DelayUntil": "Καθυστέρηση μέχρι", + "Pin": "Καρφίτσωμα", + "Unpin": "Αφαίρεση καρφιτσώματος", "PinnedConfirmation": "", - "UnpinnedConfirmation": "", + "UnpinnedConfirmation": "Η συνταγή {recipe} αφαιρέθηκε από τις καρφιτσωμένες.", "mark_complete": "", "QuickEntry": "", "shopping_add_onhand_desc": "", @@ -348,22 +348,22 @@ "ignore_shopping_help": "", "shopping_category_help": "", "food_recipe_help": "", - "Foods": "", - "Account": "", - "Cosmetic": "", - "API": "", + "Foods": "Φαγητά", + "Account": "Λογαριασμός", + "Cosmetic": "Κοσμητικό", + "API": "API", "enable_expert": "", "expert_mode": "", "simple_mode": "", - "advanced": "", - "fields": "", + "advanced": "Για προχωρημένους", + "fields": "Πεδία", "show_keywords": "", "show_foods": "", "show_books": "", "show_rating": "", "show_units": "", "show_filters": "", - "not": "", + "not": "όχι", "save_filter": "", "filter_name": "", "left_handed": "", @@ -371,8 +371,8 @@ "Custom Filter": "", "shared_with": "", "sort_by": "", - "asc": "", - "desc": "", + "asc": "Αύξουσα", + "desc": "Φθίνουσα", "date_viewed": "", "last_cooked": "", "times_cooked": "", @@ -390,16 +390,16 @@ "paste_ingredients": "", "ingredient_list": "", "explain": "", - "filter": "", - "Website": "", - "App": "", - "Message": "", + "filter": "Φίλτρο", + "Website": "Ιστοσελίδα", + "App": "Εφαρμογή", + "Message": "Μήνυμα", "Bookmarklet": "", "Sticky_Nav": "", "Sticky_Nav_Help": "", "Nav_Color": "", "Nav_Color_Help": "", - "Use_Kj": "", + "Use_Kj": "Χρήση kJ αντί για kcal", "Comments_setting": "", "click_image_import": "", "no_more_images_found": "", @@ -497,5 +497,6 @@ "Use_Plural_Food_Simple": "", "plural_usage_info": "", "Create Recipe": "", - "Import Recipe": "" + "Import Recipe": "", + "Welcome": "Καλώς ήρθατε" } From 2888b188199a8b8617ae9ab16e250d3e5d2ddbde Mon Sep 17 00:00:00 2001 From: Theodoros Grammenos Date: Mon, 21 Aug 2023 19:47:43 +0000 Subject: [PATCH 9/9] Translated using Weblate (Greek) Currently translated at 100.0% (520 of 520 strings) Translation: Tandoor/Recipes Frontend Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/el/ --- vue/src/locales/el.json | 386 +++++++++++++++++++++------------------- 1 file changed, 203 insertions(+), 183 deletions(-) diff --git a/vue/src/locales/el.json b/vue/src/locales/el.json index 7ed4fb99..afecfad4 100644 --- a/vue/src/locales/el.json +++ b/vue/src/locales/el.json @@ -14,7 +14,7 @@ "success_moving_resource": "Επιτυχής μετακίνηση πόρου!", "success_merging_resource": "Επιτυχής συγχώνευση πόρου!", "file_upload_disabled": "Το ανέβασμα αρχείων δεν είναι ενεργοποιημένο για τον χώρο σας.", - "recipe_property_info": "", + "recipe_property_info": "Μπορείτε επίσης να προσθέσετε ιδιότητες σε φαγητά ώστε να υπολογίζονται αυτόματα βάσει της συνταγής σας!", "warning_space_delete": "Μπορείτε να διαγράψετε τον χώρο σας μαζί με όλες τις συνταγές, τις λίστες αγορών, τα προγράμματα γευμάτων και οτιδήποτε άλλο έχετε δημιουργήσει. Η ενέργεια αυτή είναι μη αναστρέψιμη! Θέλετε σίγουρα να το κάνετε;", "food_inherit_info": "Πεδία σε φαγητά τα οποία πρέπει να κληρονομούνται αυτόματα.", "facet_count_info": "Εμφάνιση του αριθμού των συνταγών στα φίλτρα αναζήτησης.", @@ -37,7 +37,7 @@ "Hide_as_header": "Απόκρυψη ως κεφαλίδα", "Add_nutrition_recipe": "Προσθήκη διατροφικής αξίας στη συνταγή", "Remove_nutrition_recipe": "Αφαίρεση διατροφικής αξίας από τη συνταγή", - "Copy_template_reference": "", + "Copy_template_reference": "Αντιγραφή αναφοράς σε πρότυπο", "per_serving": "ανά μερίδα", "Save_and_View": "Αποθήκευση και προβολή", "Manage_Books": "Διαχείριση βιβλίων", @@ -79,7 +79,7 @@ "Private_Recipe_Help": "Η συνταγή είναι ορατή μόνο σε εσάς και στα άτομα με τα οποία την μοιράζεστε.", "reusable_help_text": "Ο σύνδεσμος πρόσκλησης μπορεί να χρησιμοποιηθεί από πολλαπλούς χρήστες.", "open_data_help_text": "Μέσω του project Tandoor Open Data η κοινότητα παρέχει δεδομένα για το Tandoor. Αυτό το πεδίο συμπληρώνεται αυτόματα κατά την εισαγωγή του και επιτρέπει ενημερώσεις στο μέλλον.", - "Open_Data_Slug": "", + "Open_Data_Slug": "Αναγνωριστικό (Slug) Open Data", "Open_Data_Import": "Εισαγωγή ανοιχτών δεδομένων", "Data_Import_Info": "Βελτιώστε τον χώρο και τη συλλογή συνταγών σας κάνοντας εισαγωγή μιας λίστας από φαγητά, μονάδες μέτρησης κ.α., επιμελημένη από την κοινότητα.", "Update_Existing_Data": "Ενημέρωση υπαρχόντων δεδομένων", @@ -125,7 +125,7 @@ "Servings": "Μερίδες", "Waiting": "Αναμονή", "Preparation": "Προετοιμασία", - "External": "", + "External": "Εξωτερική", "Size": "Μέγεθος", "Files": "Αρχεία", "File": "Αρχείο", @@ -217,10 +217,10 @@ "Added_on": "Προστέθηκε στις", "AddToShopping": "Προσθήκη στη λίστα αγορών", "IngredientInShopping": "Αυτό το υλικό είναι στη λίστα αγορών.", - "NotInShopping": "Το { food} δεν είναι στη λίστα αγορών σας.", + "NotInShopping": "Το φαγητό { food} δεν είναι στη λίστα αγορών σας.", "OnHand": "Τώρα διαθέσιμα", - "FoodOnHand": "Έχετε το {food} διαθέσιμο.", - "FoodNotOnHand": "Δεν έχετε το {food} διαθέσιμο.", + "FoodOnHand": "Έχετε το φαγητό {food} διαθέσιμο.", + "FoodNotOnHand": "Δεν έχετε το φαγητό {food} διαθέσιμο.", "Undefined": "Απροσδιόριστο", "Create_Meal_Plan_Entry": "Δημιουργία εγγραφής στο πρόγραμμα γευμάτων", "Edit_Meal_Plan_Entry": "Τροποποίηση εγγραφής στο πρόγραμμα γευμάτων", @@ -246,10 +246,10 @@ "New_Meal_Type": "Νέο είδος γεύματος", "Use_Fractions": "Χρήση κλασμάτων", "Use_Fractions_Help": "Αυτόματη μετατροπή δεκαδικών σε κλάσματα κατά την προβολή μιας συνταγής.", - "AddFoodToShopping": "Προσθήκη του {food} στη λίστα αγορών σας", - "RemoveFoodFromShopping": "Αφαίρεση του {food} από τη λίστα αγορών σας", - "DeleteShoppingConfirm": "Θέλετε σίγουρα να αφαιρέσετε όλα τα {food} από τη λίστα αγορών;", - "IgnoredFood": "", + "AddFoodToShopping": "Προσθήκη του φαγητού {food} στη λίστα αγορών σας", + "RemoveFoodFromShopping": "Αφαίρεση του φαγητού {food} από τη λίστα αγορών σας", + "DeleteShoppingConfirm": "Θέλετε σίγουρα να αφαιρέσετε τα {food} από τη λίστα αγορών;", + "IgnoredFood": "Το φαγητό {food} έχει ρυθμιστεί να αγνοεί τις αγορές.", "Add_Servings_to_Shopping": "Προσθήκη {servings} μερίδων στις αγορές", "Week_Numbers": "Αριθμοί εδομάδων", "Show_Week_Numbers": "Εμφάνιση αριθμών εβδομάδων;", @@ -263,7 +263,7 @@ "Current_Period": "Τρέχουσα περίοδος", "Next_Day": "Επόμενη μέρα", "Previous_Day": "Προηγούμενη μέρα", - "Inherit": "", + "Inherit": "Κληρονόμηση", "InheritFields": "Κληρονόμηση τιμών πεδίων", "FoodInherit": "Πεδία φαγητών που κληρονομούνται", "ShowUncategorizedFood": "Εμφάνιση απροσδιόριστων", @@ -273,11 +273,11 @@ "SupermarketCategoriesOnly": "Μόνο κατηγορίες supermarket", "MoveCategory": "Μετακίνηση σε: ", "CountMore": "...+{count} περισσότερα", - "IgnoreThis": "Μην προσθέτεις αυτόματα το {food} στις αγορές", + "IgnoreThis": "Να μην προστίθεται αυτόματα το φαγητό {food} στις αγορές", "DelayFor": "Καθυστέρηση για {hours} ώρες", "Warning": "Προειδοποίηση", "NoCategory": "Δεν έχει επιλεγεί κατηγορία.", - "InheritWarning": "", + "InheritWarning": "To φαγητό {food} έχει ρυθμιστεί να κληρονομεί, οι αλλαγές μπορεί να μην διατηρηθούν.", "ShowDelayed": "Εμφάνιση αντικειμένων που έχουν καθυστερήσει", "Completed": "Ολοκληρωμένο", "OfflineAlert": "Είστε εκτός σύνδεσης, η λίστα αγορών μπορεί να μην συγχρονιστεί.", @@ -290,13 +290,13 @@ "default_delay": "Προεπιλεγμένες ώρες καθυστέρησης", "plan_share_desc": "Οι νέες εγγραφές στο πρόγραμμα γευμάτων θα κοινοποιηθούν αυτόματα με τους επιλεγμένους χρήστες.", "shopping_share_desc": "Οι χρήστες θα μπορούν να δουν όλα τα αντικείμενα που τοποθετείτε στη λίστα αγορών σας. Πρέπει να σας προσθέσουν για να δείτε τα αντικείμενα στη λίστα τους.", - "shopping_auto_sync_desc": "", + "shopping_auto_sync_desc": "Θέτοντας το στο 0 θα απενεργοποιηθεί ο αυτόματος συγχρονισμός. Κατά την προβολή μιας λίστας, η λίστα ενημερώνεται ανά τα ορισμένα δευτερόλεπτα, ώστε να συγχρονιστούν τυχόν αλλαγές που έχουν κάνει άλλοι χρήστες. Η λειτουργία είναι χρήσιμη αν πραγματοποιούν αγορές πολλαπλοί χρήστες αλλά χρησιμοποιεί επιπλέον δεδομένα.", "mealplan_autoadd_shopping_desc": "Αυτόματη προθήκη συστατικών του προγράμματος γευμάτων στη λίστα αγορών.", "mealplan_autoexclude_onhand_desc": "Κατά την προσθήκη ενός προγράμματος γευμάτων στη λίστα αγορών (χειροκίνητα ή αυτόματα), εξαίρεσε τυχόν υλικά που είναι διαθέσιμα.", "mealplan_autoinclude_related_desc": "Κατά την προσθήκη ενός προγράμματος γευμάτων στη λίστα αγορών (χειροκίνητα ή αυτόματα), συμπερίλαβε όλες τις σχετικές συνταγές.", "default_delay_desc": "Προεπιλεγμένος αριθμός ωρών καθυστέρησης μια εγγραφής στην λίστα αγορών.", - "filter_to_supermarket": "", - "Coming_Soon": "", + "filter_to_supermarket": "Ταξινόμηση ανά Supermarket", + "Coming_Soon": "Σύντομα διαθέσιμο", "Auto_Planner": "Αυτόματος προγραμματιστής", "New_Cookbook": "Νέο βιβλίο μαγειρικής", "Hide_Keyword": "Απόκρυψη λέξεων-κλειδί", @@ -310,193 +310,213 @@ "Users": "Χρήστες", "Invites": "Προσκλήσεις", "err_move_self": "Δεν είναι δυνατή η μετακίνηση ενός αντικειμένου στον εαυτό του", - "nothing": "", + "nothing": "Καμία δράση", "err_merge_self": "Δεν είναι δυνατή η συγχώνευση ενός αντικειμένου με τον εαυτό του", "show_sql": "Εμφάνιση SQL", "filter_to_supermarket_desc": "Αυτόματο φιλτράρισμα λίστας αγορών ώστε να περιέχει μόνο κατηγορίες για το επιλεγμένο supermarket.", "CategoryName": "Όνομα κατηγορίας", - "SupermarketName": "", - "CategoryInstruction": "", - "shopping_recent_days_desc": "", - "shopping_recent_days": "", - "download_pdf": "", - "download_csv": "", - "csv_delim_help": "", - "csv_delim_label": "", - "SuccessClipboard": "", - "copy_to_clipboard": "", - "csv_prefix_help": "", - "csv_prefix_label": "", - "copy_markdown_table": "", - "in_shopping": "", + "SupermarketName": "Όνομα supermarket", + "CategoryInstruction": "Σύρετε κατηγορίες για να αλλάξετε τη σειρά με την οποία εμφανίζονται στη λίστα αγορών.", + "shopping_recent_days_desc": "Ημέρες πρόσφατων εγγραφών στη λίστα αγορών που προβάλλονται.", + "shopping_recent_days": "Πρόσφατες ημέρες", + "download_pdf": "Λήψη PDF", + "download_csv": "Λήψη CSV", + "csv_delim_help": "Χαρακτήρας διαχωρισμού για εξαγωγή σε CSV.", + "csv_delim_label": "Χαρακτήρας διαχωρισμού CSV", + "SuccessClipboard": "Η λίστα αγορών αντιγράφηκε στο πρόχειρο", + "copy_to_clipboard": "Αντιγραφή στο πρόχειρο", + "csv_prefix_help": "Πρόθεμα που προστίθεται κατά την αντιγραφή της λίστας στο πρόχειρο (clipboard).", + "csv_prefix_label": "Πρόθεμα λίστας", + "copy_markdown_table": "Αντιγραφή ως πίνακας Markdown", + "in_shopping": "Στη λίστα αγορών", "DelayUntil": "Καθυστέρηση μέχρι", "Pin": "Καρφίτσωμα", "Unpin": "Αφαίρεση καρφιτσώματος", - "PinnedConfirmation": "", + "PinnedConfirmation": "Η συνταγή {recipe} έχει καρφιτσωθεί.", "UnpinnedConfirmation": "Η συνταγή {recipe} αφαιρέθηκε από τις καρφιτσωμένες.", - "mark_complete": "", - "QuickEntry": "", - "shopping_add_onhand_desc": "", - "shopping_add_onhand": "", - "related_recipes": "", - "today_recipes": "", - "sql_debug": "", - "remember_search": "", - "remember_hours": "", - "tree_select": "", - "OnHand_help": "", - "ignore_shopping_help": "", - "shopping_category_help": "", - "food_recipe_help": "", + "mark_complete": "Σήμανση ως ολοκληρωμένο", + "QuickEntry": "Γρήγορη καταχώρηση", + "shopping_add_onhand_desc": "Χαρακτηρισμός ενός τροφίμου ως 'Διαθέσιμο' όταν τσεκαριστεί στη λίστα αγορών.", + "shopping_add_onhand": "Αυτόματα διαθέσιμο", + "related_recipes": "Σχετικές συνταγές", + "today_recipes": "Συνταγές της ημέρας", + "sql_debug": "Αποσφαλμάτωση SQL", + "remember_search": "Αποθήκευση αναζήτησης", + "remember_hours": "Ώρες αποθήκευσης", + "tree_select": "Χρήση επιλογής δέντρου", + "OnHand_help": "Το φαγητό είναι διαθέσιμο και δε θα προστεθεί αυτόματα στη λίστα αγορών. Η διαθεσιμότητα ενός φαγητού είναι κοινή για όλους τους χρήστες των αγορών.", + "ignore_shopping_help": "Το φαγητό να μην προστίθεται στη λίστα αγορών (π.χ. νερό)", + "shopping_category_help": "Τα supermarket μπορούν να διαταχθούν και φιλτραριστούν ανάλογα με την κατηγορία αγορών σύμφωνα με την διάταξη των διαδρόμων τους.", + "food_recipe_help": "Η σύνδεση μιας συνταγής εδώ θα συμπεριλάβει τη συνταγή που συνδέεται σε κάθε άλλη συνταγή που χρησιμοποιεί αυτό το φαγητό", "Foods": "Φαγητά", "Account": "Λογαριασμός", "Cosmetic": "Κοσμητικό", "API": "API", - "enable_expert": "", - "expert_mode": "", - "simple_mode": "", + "enable_expert": "Ενεργοποίηση λειτουργίας για προχωρημένους", + "expert_mode": "Λειτουργία για προχωρημένους", + "simple_mode": "Απλή λειτουργία", "advanced": "Για προχωρημένους", "fields": "Πεδία", - "show_keywords": "", - "show_foods": "", - "show_books": "", - "show_rating": "", - "show_units": "", - "show_filters": "", + "show_keywords": "Εμφάνιση λέξεων-κλειδί", + "show_foods": "Εμφάνιση φαγητών", + "show_books": "Εμφάνιση βιβλίων", + "show_rating": "Εμφάνιση βαθμολογίας", + "show_units": "Εμφάνιση μονάδων μέτρησης", + "show_filters": "Εμφάνιση φίλτρων", "not": "όχι", - "save_filter": "", - "filter_name": "", - "left_handed": "", - "left_handed_help": "", - "Custom Filter": "", - "shared_with": "", - "sort_by": "", + "save_filter": "Αποθήκευση φίλτρου", + "filter_name": "Όνομα φίλτρου", + "left_handed": "Έκδοση για αριστερόχειρες", + "left_handed_help": "Θα βελτιστοποιήσει το περιβάλλον χρήστη για χρήση με το αριστερό χέρι.", + "Custom Filter": "Προσαρμοσμένο φίλτρο", + "shared_with": "Διαμοιράζεται με", + "sort_by": "Ταξινόμηση κατά", "asc": "Αύξουσα", "desc": "Φθίνουσα", - "date_viewed": "", - "last_cooked": "", - "times_cooked": "", - "date_created": "", - "show_sortby": "", - "search_rank": "", - "make_now": "", - "recipe_filter": "", - "book_filter_help": "", - "review_shopping": "", - "view_recipe": "", - "copy_to_new": "", - "recipe_name": "", - "paste_ingredients_placeholder": "", - "paste_ingredients": "", - "ingredient_list": "", - "explain": "", + "date_viewed": "Προβλήθηκαν τελευταία", + "last_cooked": "Μαγειρεύτηκαν τελευταία", + "times_cooked": "Φορές που έχει μαγειρευτεί", + "date_created": "Ημερομηνία δημιουργίας", + "show_sortby": "Εμφάνιση ταξινόμησης κατά", + "search_rank": "Σειρά αναζήτησης", + "make_now": "Άμεσα διαθέσιμη", + "recipe_filter": "Φίλτρο συνταγών", + "book_filter_help": "Συμπερίλαβε συνταγές από το φίλτρο μαζί με αυτές που έχουν ανατεθεί χειροκίνητα.", + "review_shopping": "Ανασκόπηση εγγραφών στις αγορές πριν την αποθήκευση", + "view_recipe": "Εμφάνιση συνταγής", + "copy_to_new": "Αντιγραφή σε νέα συνταγή", + "recipe_name": "Όνομα συνταγής", + "paste_ingredients_placeholder": "Κάντε επικόλληση της λίστας υλικών εδώ...", + "paste_ingredients": "Επικόλληση υλικών", + "ingredient_list": "Λίστα υλικών", + "explain": "Επεξήγηση", "filter": "Φίλτρο", "Website": "Ιστοσελίδα", "App": "Εφαρμογή", "Message": "Μήνυμα", - "Bookmarklet": "", - "Sticky_Nav": "", - "Sticky_Nav_Help": "", - "Nav_Color": "", - "Nav_Color_Help": "", + "Bookmarklet": "Bookmarklet", + "Sticky_Nav": "Κολλητική πλοήγηση", + "Sticky_Nav_Help": "Μόνιμη εμφάνιση του μενού πλοήγησης στο πάνω μέρος της οθόνης.", + "Nav_Color": "Χρώμα πλοήγησης", + "Nav_Color_Help": "Αλλαγή χρώματος πλοήγησης.", "Use_Kj": "Χρήση kJ αντί για kcal", - "Comments_setting": "", - "click_image_import": "", - "no_more_images_found": "", - "import_duplicates": "", - "paste_json": "", - "Click_To_Edit": "", - "search_no_recipes": "", - "search_import_help_text": "", - "search_create_help_text": "", - "warning_duplicate_filter": "", - "reset_children": "", - "reset_children_help": "", - "reset_food_inheritance": "", - "reset_food_inheritance_info": "", - "substitute_help": "", - "substitute_siblings_help": "", - "substitute_children_help": "", - "substitute_siblings": "", - "substitute_children": "", - "SubstituteOnHand": "", - "ChildInheritFields": "", - "ChildInheritFields_help": "", - "InheritFields_help": "", - "show_ingredient_overview": "", - "Ingredient Overview": "", - "last_viewed": "", - "created_on": "", - "updatedon": "", - "Imported_From": "", - "advanced_search_settings": "", - "nothing_planned_today": "", - "no_pinned_recipes": "", - "Planned": "", - "Pinned": "", - "Imported": "", - "Quick actions": "", - "Ratings": "", - "Internal": "", - "Units": "", - "Manage_Emails": "", - "Change_Password": "", - "Social_Authentication": "", - "Random Recipes": "", - "parameter_count": "", - "select_keyword": "", - "add_keyword": "", - "select_file": "", - "select_recipe": "", - "select_unit": "", - "select_food": "", - "remove_selection": "", - "empty_list": "", - "Select": "", - "Supermarkets": "", - "User": "", - "Username": "", - "First_name": "", - "Last_name": "", + "Comments_setting": "Εμφάνιση σχολίων", + "click_image_import": "Κάντε κλικ στην εικόνα που θέλετε να εισάγετε για αυτή τη συνταγή", + "no_more_images_found": "Δεν βρέθηκαν επιπλέον εικόνες στην ιστοσελίδα.", + "import_duplicates": "Για να αποφευχθεί η δημιουργία διπλών συνταγών αγνοούνται συνταγές που έχουν ίδιο όνομα με υπάρχουσες. Τσεκάρετε το κουτί για να τις εισάγετε όλες.", + "paste_json": "Κάντε επικόλληση κώδικα html ή json για να εισάγετε τη συνταγή.", + "Click_To_Edit": "Κάντε κλικ για τροποποίηση", + "search_no_recipes": "Δεν βρέθηκαν συνταγές!", + "search_import_help_text": "Εισαγωγή συνταγής από μια ιστοσελίδα ή εφαρμογή.", + "search_create_help_text": "Δημιουργία νέας συνταγής απευθείας στο Tandoor.", + "warning_duplicate_filter": "Προειδοποίηση: Λόγω τεχνικών περιορισμών η ύπαρξη πολλαπλών φίλτρων με τους ίδιους συνδυασμούς (και/ή/όχι) μπορεί να οδηγήσει σε απρόσμενα αποτελέσματα.", + "reset_children": "Επαναφορά κληρονομικότητας παιδιών", + "reset_children_help": "Αντικατάσταση όλων των παιδιών με τιμές από τα επιλεγμένα πεδία. Τα πεδία που κληρονομούνται από τα παιδιά θα οριστούν να \"Κληρονομούν πεδία\" εκτός και αν έχει ενεργοποιηθεί η επιλογή \"Τα παιδιά κληρονομούν τα πεδία\".", + "reset_food_inheritance": "Επαναφορά κληρονομικότητας", + "reset_food_inheritance_info": "Επαναφορά όλων των φαγητών στα προεπιλεγμένα κληρονομούμενα πεδία και τις τιμές των γονέων τους.", + "substitute_help": "Τα υποκατάστατα εξετάζονται όταν αναζητούνται συνταγής που μπορούν να γίνουν με τα διαθέσιμα υλικά.", + "substitute_siblings_help": "Όλα τα φαγητά που μοιράζονται έναν γονέα αυτού του φαγητού θεωρούνται υποκατάστατα.", + "substitute_children_help": "Όλα τα φαγητά που είναι παιδιά αυτού του φαγητού θεωρούνται υποκατάστατα.", + "substitute_siblings": "Αδέρφια υποκατάστατα", + "substitute_children": "Παιδιά υποκατάστατα", + "SubstituteOnHand": "Έχετε διαθέσιμο ένα υποκατάστατο.", + "ChildInheritFields": "Τα παιδιά κληρονομούν τα πεδία", + "ChildInheritFields_help": "Τα παιδιά θα κληρονομούν αυτά τα πεδία από προεπιλογή.", + "InheritFields_help": "Οι τιμές αυτών των πεδίων θα κληρονομηθούν από τον γονέα (Εξαίρεση: οι κενές κατηγορίες αγορών δεν κληρονομούνται)", + "show_ingredient_overview": "Εμφάνιση λίστας υλικών στην αρχή της συνταγής.", + "Ingredient Overview": "Σύνοψη υλικών", + "last_viewed": "Προβλήθηκαν τελευταία", + "created_on": "Δημιουργήθηκε στις", + "updatedon": "Ενημερώθηκε στις", + "Imported_From": "Πηγή", + "advanced_search_settings": "Προχωρημένες ρυθμίσεις αναζήτησης", + "nothing_planned_today": "Δεν έχετε τίποτα προγραμματισμένο για σήμερα!", + "no_pinned_recipes": "Δεν έχετε καρφιτσωμένες συνταγές!", + "Planned": "Προγραμματισμένα", + "Pinned": "Καρφιτσωμένα", + "Imported": "Εισαγμένα", + "Quick actions": "Γρήγηορες δράσεις", + "Ratings": "Βαθμολογίες", + "Internal": "Εσωτερική", + "Units": "Μονάδες μέτρησης", + "Manage_Emails": "Διαχείριση email", + "Change_Password": "Αλλαγή κωδικού πρόσβασης", + "Social_Authentication": "Ταυτοποίηση μέσω κοινωνικών δικτύων", + "Random Recipes": "Τυχαίες συνταγές", + "parameter_count": "Παράμετρος {count}", + "select_keyword": "Επιλογή λέξης-κλειδί", + "add_keyword": "Προσθήκη λέξης-κλειδί", + "select_file": "Επιλογή αρχείου", + "select_recipe": "Επιλογή συνταγής", + "select_unit": "Επιλογή μονάδας μέτρησης", + "select_food": "Επιλογή φαγητού", + "remove_selection": "Αφαίρεση επιλογής", + "empty_list": "Η λίστα είναι άδεια.", + "Select": "Επιλογή", + "Supermarkets": "Supermarket", + "User": "Χρήστης", + "Username": "Όνομα χρήστη", + "First_name": "Όνομα", + "Last_name": "Επίθετο", "Keyword": "Λέξη κλειδί", - "Advanced": "", - "Page": "", - "Single": "", - "Multiple": "", - "Reset": "", - "Disabled": "", - "Disable": "", - "Options": "", - "Create Food": "", - "create_food_desc": "", - "additional_options": "", - "Importer_Help": "", - "Documentation": "", - "Select_App_To_Import": "", - "Import_Supported": "", - "Export_Supported": "", - "Import_Not_Yet_Supported": "", - "Export_Not_Yet_Supported": "", - "Import_Result_Info": "", - "Recipes_In_Import": "", - "Toggle": "", - "total": "", - "Import_Error": "", - "Warning_Delete_Supermarket_Category": "", - "New_Supermarket": "", - "New_Supermarket_Category": "", - "Are_You_Sure": "", - "Valid Until": "", - "Split_All_Steps": "", - "Combine_All_Steps": "", - "Plural": "", - "plural_short": "", - "Use_Plural_Unit_Always": "", - "Use_Plural_Unit_Simple": "", - "Use_Plural_Food_Always": "", - "Use_Plural_Food_Simple": "", - "plural_usage_info": "", - "Create Recipe": "", - "Import Recipe": "", - "Welcome": "Καλώς ήρθατε" + "Advanced": "Για προχωρημένους", + "Page": "Σελίδα", + "Single": "Ενικός", + "Multiple": "Πολλαπλές", + "Reset": "Επαναφορά", + "Disabled": "Απενεροποιημένο", + "Disable": "Απενεργοποίηση", + "Options": "Επιλογές", + "Create Food": "Δημιουργία φαγητού", + "create_food_desc": "Δημιουργία φαγητού και δημιουργία συνδέσμου σε αυτή τη συνταγή.", + "additional_options": "Επιπλέον επιλογές", + "Importer_Help": "Περισσότερες πληροφορίες και βοήθεια για αυτό το πρόγραμμα εισαγωγής:", + "Documentation": "Τεκμηρίωση", + "Select_App_To_Import": "Επιλέξτε μια εφαρμογή από την οποία θα γίνει εισαγωγή", + "Import_Supported": "Υποστηρίζεται εισαγωγή", + "Export_Supported": "Υποστηρίζεται εξαγωγή", + "Import_Not_Yet_Supported": "Η εισαγωγή δεν υποστηρίζεται ακόμη", + "Export_Not_Yet_Supported": "Η εξαγωγή δεν υποστηρίζεται ακόμη", + "Import_Result_Info": "Έγινε εισαγωγή {imported} από τις {total} συνταγές", + "Recipes_In_Import": "Συνταγές στο αρχείο εισαγωγής", + "Toggle": "Εναλλαγή", + "total": "σύνολο", + "Import_Error": "Συνέβη ένα σφάλμα κατά την εισαγωγή. Για να το δείτε, εμφανίστε τις λεπτομέρειες στο κάτω μέρος της σελίδας.", + "Warning_Delete_Supermarket_Category": "Η διαγραφή μιας κατηγορίας supermarket θα διαγράψει και όλες τις σχέσεις της με φαγητά. Είστε σίγουροι;", + "New_Supermarket": "Δημιουργία νέου supermarket", + "New_Supermarket_Category": "Δημιουργία νέας κατηγορίας supermarket", + "Are_You_Sure": "Είστε σίγουροι;", + "Valid Until": "Ισχύει έως", + "Split_All_Steps": "Διαχωρισμός όλων των γραμμών σε χωριστά βήματα.", + "Combine_All_Steps": "Συγχώνευση όλων των βημάτων σε ένα πεδίο.", + "Plural": "Πληθυντικός", + "plural_short": "πληθυντικός", + "Use_Plural_Unit_Always": "Να χρησιμοποιείται πάντα ο πληθυντικός για τη μονάδα μέτρησης", + "Use_Plural_Unit_Simple": "Να επιλέγεται δυναμικά ο πληθυντικός για τη μονάδα μέτρησης", + "Use_Plural_Food_Always": "Να χρησιμοποιείται πάντα ο πληθυντικός για το φαγητό", + "Use_Plural_Food_Simple": "Να επιλέγεται δυναμικά ο πληθυντικός για το φαγητό", + "plural_usage_info": "Χρήση του πληθυντικού για τις μονάδες μέτρησης και τα φαγητά μέσα σε αυτόν τον χώρο.", + "Create Recipe": "Δημιουργία συνταγής", + "Import Recipe": "Εισαγωγή συνταγής", + "Welcome": "Καλώς ήρθατε", + "kg": "κιλό [kg] (μετρικό, βάρος)", + "l": "λίτρο [l] (μετρικό, όγκος)", + "gallon": "γαλόνι [gal] (ΗΠΑ, όγκος)", + "imperial_fluid_ounce": "αυτοκρατορική υγρή ουγγιά [imp fl oz] (Ηνωμένο Βασίλειο, όγκος)", + "imperial_quart": "αυτοκρατορικό τέταρτο γαλονιού [imp qt] (Ηνωμένο Βασίλειο, όγκος)", + "imperial_tsp": "αυτοκρατορικό κουτάλι του γλυκού [imp tsp] (Ηνωμένο Βασίλειο, όγκος)", + "g": "γραμμάριο [g] (μετρικό, βάρος)", + "ounce": "ουγγιά [oz] (βάρος)", + "pound": "λίβρα (βάρος)", + "ml": "μιλιλίτρο [ml] (μετρικό, όγκος)", + "fluid_ounce": "υγρή ουγγιά [fl oz] (ΗΠΑ, όγκος)", + "pint": "πίντα [pt] (ΗΠΑ, όγκος)", + "quart": "τέταρτο γαλονιού (ΗΠΑ, όγκος)", + "tbsp": "κουτάλι της σούπας [tbsp] (ΗΠΑ, όγκος)", + "tsp": "κουτάλι του γλυκού [tsp] (ΗΠΑ, όγκος)", + "imperial_pint": "αυτοκρατορική πίντα [imp pt] (Ηνωμένο Βασίλειο, όγκος)", + "imperial_gallon": "αυτοκρατορικό γαλόνι [imp gal] (Ηνωμένο Βασίλειο, όγκος)", + "imperial_tbsp": "αυτοκρατορικό κουτάλι της σούπας [imp tbsp] (Ηνωμένο Βασίλειο, όγκος)", + "Choose_Category": "Επιλογή κατηγορίας", + "Back": "Πίσω" }