Compare commits

...

14 commits

Author SHA1 Message Date
DrDonoso
01d3d5d325
fix: theme dark/light are swapped (#6001)
Some checks are pending
CodeQL / Analyze (push) Waiting to run
Docker Nightly Production / Build Tagged Release (push) Blocked by required conditions
Docker Nightly Production / Backend Server Tests (push) Waiting to run
Docker Nightly Production / Frontend Tests (push) Waiting to run
Docker Nightly Production / Build Package (push) Waiting to run
Docker Nightly Production / Notify Discord (push) Blocked by required conditions
Build Containers / publish (push) Waiting to run
Release Drafter / ✏️ Draft release (push) Waiting to run
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
2025-08-22 18:27:57 +00:00
renovate[bot]
3f52c66f02
chore(deps): update dependency mkdocs-material to v9.6.18 (#6008)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-22 19:20:09 +02:00
Hayden
566f744220
chore(l10n): New Crowdin updates (#6009) 2025-08-22 17:33:12 +02:00
renovate[bot]
561b50ba45
chore(deps): update dependency ruff to v0.12.10 (#6004)
Some checks are pending
CodeQL / Analyze (push) Waiting to run
Docker Nightly Production / Backend Server Tests (push) Waiting to run
Docker Nightly Production / Frontend Tests (push) Waiting to run
Docker Nightly Production / Build Package (push) Waiting to run
Docker Nightly Production / Build Tagged Release (push) Blocked by required conditions
Docker Nightly Production / Notify Discord (push) Blocked by required conditions
Build Containers / publish (push) Waiting to run
Release Drafter / ✏️ Draft release (push) Waiting to run
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-22 11:21:46 +02:00
renovate[bot]
4228c9e753
fix(deps): update dependency openai to v1.101.0 (#6005)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-22 08:59:19 +02:00
Hayden
2a5c3f6457
chore(l10n): New Crowdin updates (#6006) 2025-08-22 08:30:41 +02:00
Hayden
389f8b4279
chore(l10n): New Crowdin updates (#5999)
Some checks are pending
CodeQL / Analyze (push) Waiting to run
Docker Nightly Production / Frontend Tests (push) Waiting to run
Docker Nightly Production / Build Package (push) Waiting to run
Docker Nightly Production / Backend Server Tests (push) Waiting to run
Docker Nightly Production / Build Tagged Release (push) Blocked by required conditions
Docker Nightly Production / Notify Discord (push) Blocked by required conditions
Build Containers / publish (push) Waiting to run
Release Drafter / ✏️ Draft release (push) Waiting to run
2025-08-21 17:42:31 +02:00
Hayden
f2b71e981e
chore(l10n): New Crowdin updates (#5995)
Some checks failed
CodeQL / Analyze (push) Has been cancelled
Docker Nightly Production / Backend Server Tests (push) Has been cancelled
Docker Nightly Production / Frontend Tests (push) Has been cancelled
Docker Nightly Production / Build Package (push) Has been cancelled
Build Containers / publish (push) Has been cancelled
Release Drafter / ✏️ Draft release (push) Has been cancelled
Docker Nightly Production / Build Tagged Release (push) Has been cancelled
Docker Nightly Production / Notify Discord (push) Has been cancelled
2025-08-20 08:05:17 +00:00
github-actions[bot]
ec7e3a5103
docs(auto): Update image tag, for release v3.1.1 (#5994)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-08-20 05:57:49 +00:00
eMerzh
6f0183cc4b
feat: Allow env_nested config with __ (#5616)
Some checks are pending
CodeQL / Analyze (push) Waiting to run
Docker Nightly Production / Build Tagged Release (push) Blocked by required conditions
Docker Nightly Production / Backend Server Tests (push) Waiting to run
Docker Nightly Production / Frontend Tests (push) Waiting to run
Docker Nightly Production / Build Package (push) Waiting to run
Docker Nightly Production / Notify Discord (push) Blocked by required conditions
Build Containers / publish (push) Waiting to run
Release Drafter / ✏️ Draft release (push) Waiting to run
2025-08-19 21:00:53 +00:00
renovate[bot]
12d38c89ea
fix(deps): update dependency requests to v2.32.5 (#5987)
Some checks are pending
CodeQL / Analyze (push) Waiting to run
Docker Nightly Production / Frontend Tests (push) Waiting to run
Docker Nightly Production / Build Package (push) Waiting to run
Docker Nightly Production / Build Tagged Release (push) Blocked by required conditions
Docker Nightly Production / Notify Discord (push) Blocked by required conditions
Docker Nightly Production / Backend Server Tests (push) Waiting to run
Build Containers / publish (push) Waiting to run
Release Drafter / ✏️ Draft release (push) Waiting to run
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-08-19 12:38:30 -05:00
renovate[bot]
492c9a948d
fix(deps): update dependency openai to v1.100.2 (#5993)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-19 19:23:24 +02:00
github-actions[bot]
a808c8a18b
docs(auto): Update image tag, for release 3.1.0 (#5992)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
2025-08-19 18:49:54 +02:00
Hayden
0c6483aefa
chore(l10n): New Crowdin updates (#5991) 2025-08-19 18:21:45 +02:00
23 changed files with 1488 additions and 1488 deletions

View file

@ -31,7 +31,7 @@ To deploy mealie on your local network, it is highly recommended to use Docker t
We've gone through a few versions of Mealie v1 deployment targets. We have settled on a single container deployment, and we've begun publishing the nightly container on github containers. If you're looking to move from the old nightly (split containers _or_ the omni image) to the new nightly, there are a few things you need to do:
1. Take a backup just in case!
2. Replace the image for the API container with `ghcr.io/mealie-recipes/mealie:v3.0.2`
2. Replace the image for the API container with `ghcr.io/mealie-recipes/mealie:v3.1.1`
3. Take the external port from the frontend container and set that as the port mapped to port `9000` on the new container. The frontend is now served on port 9000 from the new container, so it will need to be mapped for you to have access.
4. Restart the container

View file

@ -10,7 +10,7 @@ PostgreSQL might be considered if you need to support many concurrent users. In
```yaml
services:
mealie:
image: ghcr.io/mealie-recipes/mealie:v3.0.2 # (3)
image: ghcr.io/mealie-recipes/mealie:v3.1.1 # (3)
container_name: mealie
restart: always
ports:

View file

@ -11,7 +11,7 @@ SQLite is a popular, open source, self-contained, zero-configuration database th
```yaml
services:
mealie:
image: ghcr.io/mealie-recipes/mealie:v3.0.2 # (3)
image: ghcr.io/mealie-recipes/mealie:v3.1.1 # (3)
container_name: mealie
restart: always
ports:

View file

@ -69,7 +69,7 @@
"new-notification": "Ny notifikation",
"event-notifiers": "Notifikation om begivenheder",
"apprise-url-skipped-if-blank": "Informations link (sprunget over hvis ladet være tomt)",
"apprise-url-is-left-intentionally-blank": "Since Apprise URLs typically contain sensitive information, this field is left intentionally blank while editing. If you wish to update the URL, please enter the new one here, otherwise leave it blank to keep the current URL.",
"apprise-url-is-left-intentionally-blank": "Eftersom Apprise URL'er typisk indeholder følsomme oplysninger, er feltet bevidst tom imens du skriver. Hvis du ønsker at opdatere URL'en, kan du skrive en ny, ellers efterlad feltet tomt for at bevare den nuværende URL.",
"enable-notifier": "Aktiver Notifikationer",
"what-events": "Hvilke begivenheder skal denne anmelder abonnere på?",
"user-events": "Brugerhændelser",
@ -589,7 +589,7 @@
"api-extras-description": "Opskrifter ekstra er en central feature i Mealie API. De giver dig mulighed for at oprette brugerdefinerede JSON nøgle / værdi par inden for en opskrift, at henvise til fra 3. parts applikationer. Du kan bruge disse nøgler til at give oplysninger, for eksempel til at udløse automatiseringer eller brugerdefinerede beskeder til at videresende til din ønskede enhed.",
"message-key": "Beskednøgle",
"parse": "Behandl data",
"ingredients-not-parsed-description": "It looks like your ingredients aren't parsed yet. Click the \"{parse}\" button below to parse your ingredients into structured foods.",
"ingredients-not-parsed-description": "Det ser ud til at dine ingredienser ikke er klassificeret endnu. Klik på knappen \"{parse}\" nedenfor for at analysere ingredienserne til strukturerede fødevarer.",
"attach-images-hint": "Vedhæft billeder ved at trække dem ind i redigeringsværktøjet",
"drop-image": "Slet billede",
"enable-ingredient-amounts-to-use-this-feature": "Aktiver mængde af ingredienser for at bruge denne funktion",
@ -675,8 +675,8 @@
"upload-another-image": "Upload et andet billede",
"upload-images": "Upload billeder",
"upload-more-images": "Upload flere billeder",
"set-as-cover-image": "Set as recipe cover image",
"cover-image": "Cover image"
"set-as-cover-image": "Angiv som opskriftens coverbillede",
"cover-image": "Coverbillede"
},
"recipe-finder": {
"recipe-finder": "Opskriftssøger",
@ -1169,7 +1169,7 @@
"group-details": "Gruppeoplysninger",
"group-details-description": "Før du opretter en konto, skal du oprette en gruppe. Din gruppe vil kun indeholde dig, men du vil kunne invitere andre senere. Medlemmer i din gruppe kan dele madplaner, indkøbslister, opskrifter og meget mere!",
"use-seed-data": "Anved standard data",
"use-seed-data-description": "Mealie ships with a collection of Foods, Units, and Labels that can be used to populate your group with helpful data for organizing your recipes. These are translated into the language you currently have selected. You can always add to or modify this data later.",
"use-seed-data-description": "Mealie kommer med en samling af Fødevarer, Enheder, og Etiketter som kan blive brugt til at udfylde din gruppe med nyttig data til at organisere dine opskrifter. De er oversat til det sprog, du i øjeblikket har valgt. Du kan altid tilføje og ændre disse data senere.",
"account-details": "Kontodetaljer"
},
"validation": {

View file

@ -1359,7 +1359,7 @@
},
"cookbook": {
"cookbooks": "Kochbücher",
"description": "Kochbücher sind ein weiterer Weg, Rezepte zu organisieren, indem man verschiedene Filter erstellt. Das Erstellen eines Kochbuchs fügt einen Eintrag zur Seitenleiste hinzu und alle Rezepte, die den gewählten Filtern zustimmen, werden in dem Kochbuch angezeigt.",
"description": "Kochbücher sind ein weiterer Weg, Rezepte zu organisieren, indem man verschiedene Filter erstellt. Das Erstellen eines Kochbuchs fügt einen Eintrag zur Seitenleiste hinzu und alle Rezepte, die mit den gewählten Filtern übereinstimmen, werden in dem Kochbuch angezeigt.",
"hide-cookbooks-from-other-households": "Kochbücher von anderen Haushalten ausblenden",
"hide-cookbooks-from-other-households-description": "Wenn aktiviert, werden nur Kochbücher deines Haushalts in der Seitenleiste angezeigt",
"public-cookbook": "Öffentliches Kochbuch",

View file

@ -45,7 +45,7 @@
"category-filter": "Filtre par catégories",
"category-update-failed": "La mise à jour de la catégorie a échoué",
"category-updated": "Catégorie mise à jour",
"uncategorized-count": "{count} non catégorisée|{count} non catégorisées",
"uncategorized-count": "{count} non catégorisées",
"create-a-category": "Créer une catégorie",
"category-name": "Nom de la catégorie",
"category": "Catégorie"
@ -341,7 +341,7 @@
"meal-type": "Type de repas",
"breakfast": "Petit-déjeuner",
"lunch": "Déjeuner",
"dinner": "Dîner",
"dinner": "Souper",
"type-any": "Tous",
"day-any": "Tous",
"editor": "Éditeur",
@ -350,7 +350,7 @@
"meal-note": "Note du repas",
"note-only": "Note uniquement",
"random-meal": "Repas aléatoire",
"random-dinner": "Dîner aléatoire",
"random-dinner": "Souper aléatoire",
"random-side": "Accompagnement aléatoire",
"this-rule-will-apply": "Cette règle s'appliquera {dayCriteria} {mealTypeCriteria}.",
"to-all-days": "à tous les jours",
@ -381,7 +381,7 @@
"nextcloud": {
"description": "Importer des recettes depuis Nextcloud Cookbook",
"description-long": "Les recettes Nextcloud peuvent être importées depuis un fichier zip qui contient les données stockées dans Nextcloud. Consultez la structure de dossiers d'exemple ci-dessous pour vous assurer que vos recettes peuvent être importées.",
"title": "Nextcloud Cookbook"
"title": "Cookbook Nextcloud"
},
"copymethat": {
"description-long": "Mealie peut importer des recettes à partir de Copy Me That. Exportez vos recettes au format HTML, puis téléchargez le .zip ci-dessous.",
@ -582,10 +582,10 @@
"made-this": "Je lai cuisiné",
"how-did-it-turn-out": "Cétait bon?",
"user-made-this": "{user} la cuisiné",
"added-to-timeline": "Ajouté à lhistorique",
"failed-to-add-to-timeline": "Ajout dans lhistorique en échec",
"failed-to-update-recipe": "Impossible de mettre à jour la recette",
"added-to-timeline-but-failed-to-add-image": "Ajouté à lhistorique, mais impossible dajouter limage",
"added-to-timeline": "Ajouté à la ligne du temps",
"failed-to-add-to-timeline": "Impossible d'ajouter à la ligne du temps",
"failed-to-update-recipe": "Impossible de modifier la recette",
"added-to-timeline-but-failed-to-add-image": "Ajouté à la ligne du temps, mais impossible d'ajouter l'image",
"api-extras-description": "Les suppléments des recettes sont une fonctionnalité clé de lAPI Mealie. Ils permettent de créer des paires JSON clé/valeur personnalisées dans une recette, qui peuvent être référencées depuis des applications tierces. Ces clés peuvent être utilisées par exemple pour déclencher des tâches automatisées ou des messages personnalisés à transmettre à lappareil souhaité.",
"message-key": "Clé de message",
"parse": "Analyser",
@ -607,10 +607,10 @@
"create-recipe-from-an-image": "Créer une recette à partir dune image",
"create-recipe-from-an-image-description": "Créez une recette en téléchargeant une image de celle-ci. Mealie utilisera lIA pour tenter dextraire le texte et de créer une recette.",
"crop-and-rotate-the-image": "Rogner et pivoter limage pour que seul le texte soit visible, et quil soit dans la bonne orientation.",
"create-from-images": "Créer à partir dimages",
"create-from-images": "Créer à partir dune image",
"should-translate-description": "Traduire la recette dans ma langue",
"please-wait-image-procesing": "Veuillez patienter, limage est en cours de traitement. Cela peut prendre du temps.",
"please-wait-images-processing": "Veuillez patienter, les images sont en cours de traitement. Cela peut prendre un certain temps.",
"please-wait-images-processing": "Un peu de patience, les images sont en cours de traitement. Cela peut prendre un certain temps.",
"bulk-url-import": "Importation en masse d'URL",
"debug-scraper": "Déboguer le récupérateur",
"create-a-recipe-by-providing-the-name-all-recipes-must-have-unique-names": "Créer une recette en fournissant le nom. Toutes les recettes doivent avoir des noms uniques.",
@ -675,8 +675,8 @@
"upload-another-image": "Télécharger une autre image",
"upload-images": "Télécharger des images",
"upload-more-images": "Télécharger d'autres images",
"set-as-cover-image": "Set as recipe cover image",
"cover-image": "Cover image"
"set-as-cover-image": "Définir comme image de couverture de recette",
"cover-image": "Image de couverture"
},
"recipe-finder": {
"recipe-finder": "Recherche de recette",
@ -1169,7 +1169,7 @@
"group-details": "Détails du groupe",
"group-details-description": "Avant de créer un compte, vous devrez créer un groupe. Votre groupe ne contiendra que vous, mais vous pourrez inviter dautres personnes plus tard. Les membres de votre groupe peuvent partager leur menu de la semaine, leurs listes dachat, leurs recettes et plus encore!",
"use-seed-data": "Utiliser l'initialisation de données",
"use-seed-data-description": "Mealie ships with a collection of Foods, Units, and Labels that can be used to populate your group with helpful data for organizing your recipes. These are translated into the language you currently have selected. You can always add to or modify this data later.",
"use-seed-data-description": "Mealie propose une collection d'aliments, d'unités et d'étiquettes qui peuvent être utilisés pour remplir votre groupe avec des données utiles pour organiser vos recettes. Celles-ci sont traduites dans la langue que vous avez sélectionnée. Vous pouvez toujours ajouter ou modifier ces données plus tard.",
"account-details": "Détails du compte"
},
"validation": {

View file

@ -69,7 +69,7 @@
"new-notification": "Nouvelle notification",
"event-notifiers": "Notifications d'événements",
"apprise-url-skipped-if-blank": "URL Apprise (ignoré si vide)",
"apprise-url-is-left-intentionally-blank": "Since Apprise URLs typically contain sensitive information, this field is left intentionally blank while editing. If you wish to update the URL, please enter the new one here, otherwise leave it blank to keep the current URL.",
"apprise-url-is-left-intentionally-blank": "Comme les URL Apprise contiennent généralement des informations sensibles, ce champ est laissé intentionnellement vide lors de l'édition. Si vous souhaitez mettre à jour l'URL, veuillez entrer la nouvelle URL ici, sinon laisser vide pour conserver l'URL courante.",
"enable-notifier": "Activer la notification",
"what-events": "À quels événements cette notification doit-elle s'abonner ?",
"user-events": "Événements utilisateur",
@ -81,7 +81,7 @@
"category-events": "Événements de catégories",
"when-a-new-user-joins-your-group": "Lorsqu'un nouvel utilisateur rejoint votre groupe",
"recipe-events": "Événements de recette",
"label-events": "Label Events"
"label-events": "Étiquette des événements"
},
"general": {
"add": "Ajouter",
@ -675,8 +675,8 @@
"upload-another-image": "Télécharger une autre image",
"upload-images": "Télécharger des images",
"upload-more-images": "Télécharger d'autres images",
"set-as-cover-image": "Set as recipe cover image",
"cover-image": "Cover image"
"set-as-cover-image": "Définir comme image de couverture de la recette",
"cover-image": "Image de couverture"
},
"recipe-finder": {
"recipe-finder": "Recherche de recette",
@ -1169,7 +1169,7 @@
"group-details": "Détails du groupe",
"group-details-description": "Avant de créer un compte, vous devrez créer un groupe. Votre groupe ne contiendra que vous, mais vous pourrez inviter dautres personnes plus tard. Les membres de votre groupe peuvent partager leur menu de la semaine, leurs listes dachat, leurs recettes et plus encore!",
"use-seed-data": "Utiliser l'initialisation de données",
"use-seed-data-description": "Mealie ships with a collection of Foods, Units, and Labels that can be used to populate your group with helpful data for organizing your recipes. These are translated into the language you currently have selected. You can always add to or modify this data later.",
"use-seed-data-description": "Mealie est livrée avec une collection d'aliments, d'unités et d'étiquettes qui peuvent être utilisés pour remplir votre groupe avec des données utiles pour organiser vos recettes. Ceux-ci sont traduits dans la langue que vous avez sélectionnée. Vous pouvez toujours ajouter ou modifier ces données plus tard.",
"account-details": "Détails du compte"
},
"validation": {

View file

@ -69,7 +69,7 @@
"new-notification": "Ný tilkynning",
"event-notifiers": "Viðburðar tilkynningar",
"apprise-url-skipped-if-blank": "Apprise URL (sleppt ef tómt)",
"apprise-url-is-left-intentionally-blank": "Since Apprise URLs typically contain sensitive information, this field is left intentionally blank while editing. If you wish to update the URL, please enter the new one here, otherwise leave it blank to keep the current URL.",
"apprise-url-is-left-intentionally-blank": "Þar sem \"Apprise\" slóðir innihalda yfirleitt viðkvæmar upplýsingar, er þessum reit viljandi skilið eftir auðum við breytingar. Ef þú vilt uppfæra slóðina skaltu slá inn þá nýju hér, annars skaltu skilja reitinn eftir auðan til að halda núverandi slóð.",
"enable-notifier": "Virkja tilkynningar",
"what-events": "Hvaða viðburði ætti þessi tilkynnir að vera áskrifandi að?",
"user-events": "Notenda viðburðir",
@ -81,7 +81,7 @@
"category-events": "Flokka viðburðir",
"when-a-new-user-joins-your-group": "Þegar nýr notandi bætist við í þinn hóp",
"recipe-events": "Uppskriftar viðburðir",
"label-events": "Label Events"
"label-events": "Merkja viðburð"
},
"general": {
"add": "Bæta við",
@ -118,12 +118,12 @@
"image-upload-failed": "Upphal myndar mistókst",
"import": "Hlaða inn",
"json": "JSON",
"keyword": "Keyword",
"keyword": "Stikkorð",
"link-copied": "Hlekkur afritaður",
"loading": "Loading",
"loading": "Hleður",
"loading-events": "Hleð atburðum",
"loading-recipe": "Hleð uppskrift",
"loading-ocr-data": "Loading OCR data...",
"loading-ocr-data": "Hleður OCR gögnum...",
"loading-recipes": "Hleð uppskriftum",
"message": "Skilaboð",
"monday": "Mánudagur",
@ -134,7 +134,7 @@
"no-recipe-found": "Engin uppskrift finnst",
"ok": "Allt í lagi",
"options": "Valmöguleikar:",
"plural-name": "Plural Name",
"plural-name": "Nafn í fleirtölu",
"print": "Prenta",
"print-preferences": "Prent valmöguleikar",
"random": "Handahófskennt",
@ -142,56 +142,56 @@
"recent": "Nýlegt",
"recipe": "Uppskrift",
"recipes": "Uppskriftir",
"rename-object": "Rename {0}",
"rename-object": "Endurnefna {0}",
"reset": "Endurstilla",
"saturday": "Laugardagur",
"save": "Vista",
"settings": "Stillingar",
"share": "Deila",
"show-all": "Sýna allt",
"shuffle": "Shuffle",
"sort": "Sort",
"sort-ascending": "Sort Ascending",
"sort-descending": "Sort Descending",
"sort-alphabetically": "Alphabetical",
"status": "Status",
"subject": "Subject",
"submit": "Submit",
"success-count": "Success: {count}",
"sunday": "Sunday",
"system": "System",
"templates": "Templates:",
"test": "Test",
"themes": "Themes",
"thursday": "Thursday",
"title": "Title",
"token": "Token",
"tuesday": "Tuesday",
"type": "Type",
"update": "Update",
"updated": "Updated",
"upload": "Upload",
"shuffle": "Blanda",
"sort": "Raða",
"sort-ascending": "Raða í réttri röð",
"sort-descending": "Raða í öfugri röð",
"sort-alphabetically": "Stafrófsröð",
"status": "Staða",
"subject": "Efni",
"submit": "Staðfesta",
"success-count": "Tókst: {count}",
"sunday": "Sunnudagur",
"system": "Kerfi",
"templates": "Sniðmót:",
"test": "Próf",
"themes": "Þema",
"thursday": "Fimmtudagur",
"title": "Titill",
"token": "Tóki",
"tuesday": "Þriðjudagur",
"type": "Tegund",
"update": "Uppfærsla",
"updated": "Uppfært",
"upload": "Hlaða upp",
"url": "URL",
"view": "View",
"wednesday": "Wednesday",
"yes": "Yes",
"foods": "Foods",
"units": "Units",
"back": "Back",
"next": "Next",
"start": "Start",
"toggle-view": "Toggle View",
"date": "Date",
"id": "Id",
"owner": "Owner",
"change-owner": "Change Owner",
"date-added": "Date Added",
"none": "None",
"run": "Run",
"menu": "Menu",
"a-name-is-required": "A Name is Required",
"delete-with-name": "Delete {name}",
"confirm-delete-generic-with-name": "Are you sure you want to delete this {name}?",
"view": "Skoða",
"wednesday": "Miðvikudagur",
"yes": "",
"foods": "Matur",
"units": "Einingar",
"back": "Til baka",
"next": "Næst",
"start": "Byrja",
"toggle-view": "Skipta um sýn",
"date": "Dagsetning",
"id": "Eingildi",
"owner": "Eigandi",
"change-owner": "Breyta um eiganda",
"date-added": "Dagsetningu bætt við",
"none": "Ekkert",
"run": "Keyra",
"menu": "Matseðill",
"a-name-is-required": "Nafn er krafist",
"delete-with-name": "Eyða út {name}",
"confirm-delete-generic-with-name": "Ertu viss um að þú viljir eyða út {name}?",
"confirm-delete-own-admin-account": "Please note that you are trying to delete your own admin account! This action cannot be undone and will permanently delete your account?",
"organizer": "Organizer",
"transfer": "Transfer",
@ -249,20 +249,20 @@
"manage-members-description": "Manage the permissions of the members in your household. {manage} allows the user to access the data-management page, and {invite} allows the user to generate invitation links for other users. Group owners cannot change their own permissions.",
"manage": "Manage",
"manage-household": "Manage Household",
"invite": "Invite",
"looking-to-update-your-profile": "Looking to Update Your Profile?",
"default-recipe-preferences-description": "These are the default settings when a new recipe is created in your group. These can be changed for individual recipes in the recipe settings menu.",
"default-recipe-preferences": "Default Recipe Preferences",
"group-preferences": "Group Preferences",
"private-group": "Private Group",
"private-group-description": "Setting your group to private will disable all public view options. This overrides any individual public view settings",
"enable-public-access": "Enable Public Access",
"invite": "Bjóða",
"looking-to-update-your-profile": "Viltu uppfæra prófílinn þinn?",
"default-recipe-preferences-description": "Þetta eru sjálfgefnar stillingar þegar ný uppskrift er búin til í hópnum þínum. Hægt er að breyta þeim fyrir einstakar uppskriftir í stillingavalmynd uppskrifta.",
"default-recipe-preferences": "Sjálfgefnar stillingar uppskrifta",
"group-preferences": "Stillingar hóps",
"private-group": "Lokaður hópur",
"private-group-description": "Ef þú stillir hópinn þinn sem lokaðan hóp lokast á alla almennan aðgang. Þessi stilling hefur forgang fram yfir einstakar stillingar fyrir almenna sýn",
"enable-public-access": "Virkja almennan aðgang",
"enable-public-access-description": "Make group recipes public by default, and allow visitors to view recipes without logging-in",
"allow-users-outside-of-your-group-to-see-your-recipes": "Allow users outside of your group to see your recipes",
"allow-users-outside-of-your-group-to-see-your-recipes-description": "When enabled you can use a public share link to share specific recipes without authorizing the user. When disabled, you can only share recipes with users who are in your group or with a pre-generated private link",
"show-nutrition-information": "Show nutrition information",
"show-nutrition-information-description": "When enabled the nutrition information will be shown on the recipe if available. If there is no nutrition information available, the nutrition information will not be shown",
"show-recipe-assets": "Show recipe assets",
"show-recipe-assets": "Sýna skrár og efni uppskriftar",
"show-recipe-assets-description": "When enabled the recipe assets will be shown on the recipe if available",
"default-to-landscape-view": "Default to landscape view",
"default-to-landscape-view-description": "When enabled the recipe header section will be shown in landscape view",

View file

@ -1204,7 +1204,7 @@
},
"demo": {
"info_message_with_version": "这是{version} 版本的演示模式",
"demo_username": "{username}\n用户名:{username}",
"demo_username": "用户名:{username}",
"demo_password": "密码:{password}"
},
"ocr-editor": {

View file

@ -92,8 +92,8 @@ export default defineNuxtConfig({
light: {
primary: process.env.THEME_LIGHT_PRIMARY || "#E58325",
accent: process.env.THEME_LIGHT_ACCENT || "#007A99",
secondary: process.env.THEME_DARK_SECONDARY || "#973542",
success: process.env.THEME_DARK_SUCCESS || "#43A047",
secondary: process.env.THEME_LIGHT_SECONDARY || "#973542",
success: process.env.THEME_LIGHT_SUCCESS || "#43A047",
info: process.env.THEME_LIGHT_INFO || "#1976d2",
warning: process.env.THEME_LIGHT_WARNING || "#FF6D00",
error: process.env.THEME_LIGHT_ERROR || "#EF5350",

View file

@ -1,6 +1,6 @@
{
"name": "mealie",
"version": "3.0.2",
"version": "3.1.1",
"private": true,
"scripts": {
"dev": "nuxt dev",

View file

@ -45,8 +45,8 @@ export default defineNuxtPlugin(async (nuxtApp) => {
darken: 3,
},
themes: {
dark: {
dark: true,
light: {
dark: false,
colors: {
primary: theme?.lightPrimary ?? "#E58325",
accent: theme?.lightAccent ?? "#007A99",
@ -58,8 +58,8 @@ export default defineNuxtPlugin(async (nuxtApp) => {
background: "#1E1E1E",
},
},
light: {
dark: false,
dark: {
dark: true,
colors: {
primary: theme?.darkPrimary ?? "#E58325",
accent: theme?.darkAccent ?? "#007A99",

View file

@ -434,7 +434,7 @@ class AppSettings(AppLoggingSettings):
def WORKERS(self) -> int:
return max(1, self.WORKER_PER_CORE * self.UVICORN_WORKERS)
model_config = SettingsConfigDict(arbitrary_types_allowed=True, extra="allow")
model_config = SettingsConfigDict(arbitrary_types_allowed=True, extra="allow", env_nested_delimiter="__")
# ===============================================
# TLS

View file

@ -517,8 +517,8 @@
"broccoli rabe": {
"aliases": [],
"description": "",
"name": "broccoli rabe",
"plural_name": "broccoli rabes"
"name": "rapini",
"plural_name": "rapini"
},
"rutabaga": {
"aliases": [],

File diff suppressed because it is too large Load diff

View file

@ -1401,7 +1401,7 @@
"nameko": {
"aliases": [],
"description": "",
"name": "nameko",
"name": "cchampignon Nameko",
"plural_name": "namekoes"
},
"djon djon mushroom": {
@ -1413,7 +1413,7 @@
"mixed asian mushroom": {
"aliases": [],
"description": "",
"name": "mixed asian mushroom",
"name": "champignon mixte asiatique",
"plural_name": "mixed asian mushrooms"
},
"puffball": {
@ -3394,7 +3394,7 @@
"aliases": [],
"description": "",
"name": "boeuf haché végétalien",
"plural_name": "vegan ground beefs"
"plural_name": "bœufs hachés végétaliens"
},
"pulled oat": {
"aliases": [],
@ -3412,12 +3412,12 @@
"aliases": [],
"description": "",
"name": "soy curl",
"plural_name": "soy curls"
"plural_name": "bâtonnets de soja"
},
"vegan pesto": {
"aliases": [],
"description": "",
"name": "vegan pesto",
"name": "pesto végétalien",
"plural_name": "vegan pestoes"
},
"marinated tofu": {
@ -3472,7 +3472,7 @@
"aliases": [],
"description": "",
"name": "coconut paste",
"plural_name": "coconut pastes"
"plural_name": "pâtes de noix de coco"
},
"vegetable suet": {
"aliases": [],
@ -6383,8 +6383,8 @@
"espelette pepper": {
"aliases": [],
"description": "",
"name": "espelette pepper",
"plural_name": "espelette peppers"
"name": "piment d'espelette",
"plural_name": "piments d'Espelette"
},
"lemon verbena": {
"aliases": [],

View file

@ -455,8 +455,8 @@
"pepperoncini": {
"aliases": [],
"description": "",
"name": "pepperoncini",
"plural_name": "pepperoncinis"
"name": "peperoncini",
"plural_name": "peperoncini"
},
"baby bok choy": {
"aliases": [],

View file

@ -3764,7 +3764,7 @@
"aliases": [],
"description": "",
"name": "ham",
"plural_name": "hams"
"plural_name": "hammen"
},
"pork chop": {
"aliases": [],
@ -5097,7 +5097,7 @@
"herring": {
"aliases": [],
"description": "",
"name": "herring",
"name": "haring",
"plural_name": "herrings"
},
"salmon roe": {

View file

@ -4,14 +4,14 @@
"garlic": {
"aliases": [],
"description": "",
"name": "garlic",
"plural_name": "garlics"
"name": "cesnak",
"plural_name": "cesnaky"
},
"onion": {
"aliases": [],
"description": "",
"name": "onion",
"plural_name": "onions"
"name": "cibuľa",
"plural_name": "cibule"
},
"bell pepper": {
"aliases": [],
@ -22,32 +22,32 @@
"carrot": {
"aliases": [],
"description": "",
"name": "carrot",
"plural_name": "carrots"
"name": "mrkva",
"plural_name": "mrkvy"
},
"scallion": {
"aliases": [],
"description": "",
"name": "scallion",
"plural_name": "scallions"
"name": "jarná cibuľka",
"plural_name": "jarné cibuľky"
},
"zucchini": {
"aliases": [],
"description": "",
"name": "zucchini",
"plural_name": "zucchinis"
"name": "cuketa",
"plural_name": "cukety"
},
"potato": {
"aliases": [],
"description": "",
"name": "potato",
"plural_name": "potatoes"
"name": "zemiak",
"plural_name": "zemiaky"
},
"red onion": {
"aliases": [],
"description": "",
"name": "red onion",
"plural_name": "red onions"
"name": "červená cibuľa",
"plural_name": "červené cibule"
},
"yellow onion": {
"aliases": [],
@ -58,8 +58,8 @@
"celery": {
"aliases": [],
"description": "",
"name": "celery",
"plural_name": "celeries"
"name": "zeler",
"plural_name": "zelery"
},
"jalapeno": {
"aliases": [],
@ -70,38 +70,38 @@
"avocado": {
"aliases": [],
"description": "",
"name": "avocado",
"plural_name": "avocados"
"name": "avodo",
"plural_name": "avokáda"
},
"shallot": {
"aliases": [],
"description": "",
"name": "shallot",
"plural_name": "shallots"
"name": "šalotka",
"plural_name": "šalotky"
},
"cherry tomato": {
"aliases": [],
"description": "",
"name": "cherry tomato",
"plural_name": "cherry tomatoes"
"name": "cherry paradajka",
"plural_name": "cherry paradajky"
},
"cucumber": {
"aliases": [],
"description": "",
"name": "cucumber",
"plural_name": "cucumbers"
"name": "uhorka",
"plural_name": "uhorky"
},
"spinach": {
"aliases": [],
"description": "",
"name": "spinach",
"plural_name": "spinaches"
"name": "špenát",
"plural_name": "špenáty"
},
"sweet corn": {
"aliases": [],
"description": "",
"name": "sweet corn",
"plural_name": "sweet corns"
"name": "cukrová kukurica",
"plural_name": "cukrové kukurice"
},
"chile pepper": {
"aliases": [
@ -114,7 +114,7 @@
"sweet potato": {
"aliases": [],
"description": "",
"name": "sweet potato",
"name": "batat",
"plural_name": "sweet potatoes"
},
"broccoli": {
@ -205,37 +205,37 @@
"aliases": [],
"description": "",
"name": "beetroot",
"plural_name": "beetroots"
"plural_name": "cvikly"
},
"brussels sprout": {
"aliases": [],
"description": "",
"name": "brussels sprout",
"plural_name": "brussels sprouts"
"name": "ružičkový kel",
"plural_name": "ružičkové kely"
},
"fennel": {
"aliases": [],
"description": "",
"name": "fennel",
"plural_name": "fennels"
"name": "fenikel",
"plural_name": "fenikle"
},
"sun dried tomato": {
"aliases": [],
"description": "",
"name": "sun dried tomato",
"plural_name": "sun dried tomatoes"
"name": "sušená paradajka",
"plural_name": "sušené paradajky"
},
"radish": {
"aliases": [],
"description": "",
"name": "radish",
"plural_name": "radishes"
"name": "reďkovka",
"plural_name": "reďkovky"
},
"red cabbage": {
"aliases": [],
"description": "",
"name": "red cabbage",
"plural_name": "red cabbages"
"name": "červená kapusta",
"plural_name": "červené kapusty"
},
"artichoke": {
"aliases": [],

View file

@ -132,7 +132,7 @@
"baby green": {
"aliases": [],
"description": "",
"name": "baby green",
"name": "小白菜",
"plural_name": "baby greens"
},
"pumpkin": {
@ -255,7 +255,7 @@
"gem squash"
],
"description": "",
"name": "summer squash",
"name": "",
"plural_name": "summer squashes"
},
"mixed green": {
@ -407,7 +407,7 @@
"okra": {
"aliases": [],
"description": "",
"name": "okra",
"name": "秋葵",
"plural_name": "okra"
},
"acorn squash": {
@ -518,7 +518,7 @@
"aliases": [],
"description": "",
"name": "broccoli rabe",
"plural_name": "broccoli rabes"
"plural_name": ""
},
"rutabaga": {
"aliases": [],

View file

@ -9,7 +9,7 @@
"name": "cuillère à soupe",
"plural_name": "cuillères à soupe",
"description": "",
"abbreviation": "càS"
"abbreviation": "càs"
},
"cup": {
"name": "tasse",
@ -21,13 +21,13 @@
"name": "centilitre",
"plural_name": "onces liquides",
"description": "",
"abbreviation": "cL"
"abbreviation": "cl"
},
"pint": {
"name": "pinte",
"plural_name": "pintes",
"description": "",
"abbreviation": "pt"
"abbreviation": "pinte"
},
"quart": {
"name": "quart",
@ -57,7 +57,7 @@
"name": "livre",
"plural_name": "livres",
"description": "",
"abbreviation": "lb",
"abbreviation": "livre",
"plural_abbreviation": "livres"
},
"ounce": {
@ -92,7 +92,7 @@
},
"dash": {
"name": "trait",
"plural_name": "1/8 de cuillères à café",
"plural_name": "traits",
"description": "",
"abbreviation": ""
},

60
poetry.lock generated
View file

@ -1612,14 +1612,14 @@ pyyaml = ">=5.1"
[[package]]
name = "mkdocs-material"
version = "9.6.17"
version = "9.6.18"
description = "Documentation that simply works"
optional = false
python-versions = ">=3.8"
groups = ["dev"]
files = [
{file = "mkdocs_material-9.6.17-py3-none-any.whl", hash = "sha256:221dd8b37a63f52e580bcab4a7e0290e4a6f59bd66190be9c3d40767e05f9417"},
{file = "mkdocs_material-9.6.17.tar.gz", hash = "sha256:48ae7aec72a3f9f501a70be3fbd329c96ff5f5a385b67a1563e5ed5ce064affe"},
{file = "mkdocs_material-9.6.18-py3-none-any.whl", hash = "sha256:dbc1e146a0ecce951a4d84f97b816a54936cdc9e1edd1667fc6868878ac06701"},
{file = "mkdocs_material-9.6.18.tar.gz", hash = "sha256:a2eb253bcc8b66f8c6eaf8379c10ed6e9644090c2e2e9d0971c7722dc7211c05"},
]
[package.dependencies]
@ -1850,14 +1850,14 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"]
[[package]]
name = "openai"
version = "1.100.1"
version = "1.101.0"
description = "The official Python library for the openai API"
optional = false
python-versions = ">=3.8"
groups = ["main"]
files = [
{file = "openai-1.100.1-py3-none-any.whl", hash = "sha256:2e8224caaf3136c58e30e6b3984fd7a8e6da0931d2c36fbbb7d668e5c11db914"},
{file = "openai-1.100.1.tar.gz", hash = "sha256:3e9ae652903e5120514e544af2426334141404657cdcdb6dc6845fc243d66e66"},
{file = "openai-1.101.0-py3-none-any.whl", hash = "sha256:6539a446cce154f8d9fb42757acdfd3ed9357ab0d34fcac11096c461da87133b"},
{file = "openai-1.101.0.tar.gz", hash = "sha256:29f56df2236069686e64aca0e13c24a4ec310545afb25ef7da2ab1a18523f22d"},
]
[package.dependencies]
@ -3228,14 +3228,14 @@ files = [
[[package]]
name = "requests"
version = "2.32.4"
version = "2.32.5"
description = "Python HTTP for Humans."
optional = false
python-versions = ">=3.8"
python-versions = ">=3.9"
groups = ["main", "dev"]
files = [
{file = "requests-2.32.4-py3-none-any.whl", hash = "sha256:27babd3cda2a6d50b30443204ee89830707d396671944c998b5975b031ac2b2c"},
{file = "requests-2.32.4.tar.gz", hash = "sha256:27d0316682c8a29834d3264820024b62a36942083d52caf2f14c0591336d3422"},
{file = "requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6"},
{file = "requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf"},
]
[package.dependencies]
@ -3288,31 +3288,31 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"]
[[package]]
name = "ruff"
version = "0.12.9"
version = "0.12.10"
description = "An extremely fast Python linter and code formatter, written in Rust."
optional = false
python-versions = ">=3.7"
groups = ["dev"]
files = [
{file = "ruff-0.12.9-py3-none-linux_armv6l.whl", hash = "sha256:fcebc6c79fcae3f220d05585229463621f5dbf24d79fdc4936d9302e177cfa3e"},
{file = "ruff-0.12.9-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:aed9d15f8c5755c0e74467731a007fcad41f19bcce41cd75f768bbd687f8535f"},
{file = "ruff-0.12.9-py3-none-macosx_11_0_arm64.whl", hash = "sha256:5b15ea354c6ff0d7423814ba6d44be2807644d0c05e9ed60caca87e963e93f70"},
{file = "ruff-0.12.9-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d596c2d0393c2502eaabfef723bd74ca35348a8dac4267d18a94910087807c53"},
{file = "ruff-0.12.9-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1b15599931a1a7a03c388b9c5df1bfa62be7ede6eb7ef753b272381f39c3d0ff"},
{file = "ruff-0.12.9-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3d02faa2977fb6f3f32ddb7828e212b7dd499c59eb896ae6c03ea5c303575756"},
{file = "ruff-0.12.9-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:17d5b6b0b3a25259b69ebcba87908496e6830e03acfb929ef9fd4c58675fa2ea"},
{file = "ruff-0.12.9-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:72db7521860e246adbb43f6ef464dd2a532ef2ef1f5dd0d470455b8d9f1773e0"},
{file = "ruff-0.12.9-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a03242c1522b4e0885af63320ad754d53983c9599157ee33e77d748363c561ce"},
{file = "ruff-0.12.9-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fc83e4e9751e6c13b5046d7162f205d0a7bac5840183c5beebf824b08a27340"},
{file = "ruff-0.12.9-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:881465ed56ba4dd26a691954650de6ad389a2d1fdb130fe51ff18a25639fe4bb"},
{file = "ruff-0.12.9-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:43f07a3ccfc62cdb4d3a3348bf0588358a66da756aa113e071b8ca8c3b9826af"},
{file = "ruff-0.12.9-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:07adb221c54b6bba24387911e5734357f042e5669fa5718920ee728aba3cbadc"},
{file = "ruff-0.12.9-py3-none-musllinux_1_2_i686.whl", hash = "sha256:f5cd34fabfdea3933ab85d72359f118035882a01bff15bd1d2b15261d85d5f66"},
{file = "ruff-0.12.9-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:f6be1d2ca0686c54564da8e7ee9e25f93bdd6868263805f8c0b8fc6a449db6d7"},
{file = "ruff-0.12.9-py3-none-win32.whl", hash = "sha256:cc7a37bd2509974379d0115cc5608a1a4a6c4bff1b452ea69db83c8855d53f93"},
{file = "ruff-0.12.9-py3-none-win_amd64.whl", hash = "sha256:6fb15b1977309741d7d098c8a3cb7a30bc112760a00fb6efb7abc85f00ba5908"},
{file = "ruff-0.12.9-py3-none-win_arm64.whl", hash = "sha256:63c8c819739d86b96d500cce885956a1a48ab056bbcbc61b747ad494b2485089"},
{file = "ruff-0.12.9.tar.gz", hash = "sha256:fbd94b2e3c623f659962934e52c2bea6fc6da11f667a427a368adaf3af2c866a"},
{file = "ruff-0.12.10-py3-none-linux_armv6l.whl", hash = "sha256:8b593cb0fb55cc8692dac7b06deb29afda78c721c7ccfed22db941201b7b8f7b"},
{file = "ruff-0.12.10-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ebb7333a45d56efc7c110a46a69a1b32365d5c5161e7244aaf3aa20ce62399c1"},
{file = "ruff-0.12.10-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d59e58586829f8e4a9920788f6efba97a13d1fa320b047814e8afede381c6839"},
{file = "ruff-0.12.10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:822d9677b560f1fdeab69b89d1f444bf5459da4aa04e06e766cf0121771ab844"},
{file = "ruff-0.12.10-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:37b4a64f4062a50c75019c61c7017ff598cb444984b638511f48539d3a1c98db"},
{file = "ruff-0.12.10-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2c6f4064c69d2542029b2a61d39920c85240c39837599d7f2e32e80d36401d6e"},
{file = "ruff-0.12.10-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:059e863ea3a9ade41407ad71c1de2badfbe01539117f38f763ba42a1206f7559"},
{file = "ruff-0.12.10-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1bef6161e297c68908b7218fa6e0e93e99a286e5ed9653d4be71e687dff101cf"},
{file = "ruff-0.12.10-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4f1345fbf8fb0531cd722285b5f15af49b2932742fc96b633e883da8d841896b"},
{file = "ruff-0.12.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f68433c4fbc63efbfa3ba5db31727db229fa4e61000f452c540474b03de52a9"},
{file = "ruff-0.12.10-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:141ce3d88803c625257b8a6debf4a0473eb6eed9643a6189b68838b43e78165a"},
{file = "ruff-0.12.10-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:f3fc21178cd44c98142ae7590f42ddcb587b8e09a3b849cbc84edb62ee95de60"},
{file = "ruff-0.12.10-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:7d1a4e0bdfafcd2e3e235ecf50bf0176f74dd37902f241588ae1f6c827a36c56"},
{file = "ruff-0.12.10-py3-none-musllinux_1_2_i686.whl", hash = "sha256:e67d96827854f50b9e3e8327b031647e7bcc090dbe7bb11101a81a3a2cbf1cc9"},
{file = "ruff-0.12.10-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:ae479e1a18b439c59138f066ae79cc0f3ee250712a873d00dbafadaad9481e5b"},
{file = "ruff-0.12.10-py3-none-win32.whl", hash = "sha256:9de785e95dc2f09846c5e6e1d3a3d32ecd0b283a979898ad427a9be7be22b266"},
{file = "ruff-0.12.10-py3-none-win_amd64.whl", hash = "sha256:7837eca8787f076f67aba2ca559cefd9c5cbc3a9852fd66186f4201b87c1563e"},
{file = "ruff-0.12.10-py3-none-win_arm64.whl", hash = "sha256:cc138cc06ed9d4bfa9d667a65af7172b47840e1a98b02ce7011c391e54635ffc"},
{file = "ruff-0.12.10.tar.gz", hash = "sha256:189ab65149d11ea69a2d775343adf5f49bb2426fc4780f65ee33b423ad2e47f9"},
]
[[package]]

View file

@ -3,7 +3,7 @@ authors = ["Hayden <hay-kot@pm.me>"]
description = "A Recipe Manager"
license = "AGPL"
name = "mealie"
version = "3.0.2"
version = "3.1.1"
include = [
# Explicit include to override .gitignore when packaging the frontend
{ path = "mealie/frontend/**/*", format = ["sdist", "wheel"] }