Compare commits

...

3 Commits

Author SHA1 Message Date
mealie-commit-bot[bot]
3166060644 chore: bump version to v3.9.1 2025-12-30 01:56:10 +00:00
Michael Genson
bde7cf6f9d fix: Revert extended touch on shopping list (#6794) 2025-12-29 19:24:03 -06:00
Hayden
8ea9bb19f6 chore(l10n): New Crowdin updates (#6792) 2025-12-29 17:11:05 -06:00
10 changed files with 173 additions and 176 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: 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! 1. Take a backup just in case!
2. Replace the image for the API container with `ghcr.io/mealie-recipes/mealie:v3.9.0` 2. Replace the image for the API container with `ghcr.io/mealie-recipes/mealie:v3.9.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. 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 4. Restart the container

View File

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

View File

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

View File

@@ -7,23 +7,18 @@
no-gutters no-gutters
class="flex-nowrap align-center" class="flex-nowrap align-center"
> >
<v-card <v-col :cols="itemLabelCols">
flat <div class="d-flex align-center flex-nowrap">
link
class="grow"
@click="() => {
listItem.checked = !listItem.checked
$emit('checked', listItem)
}"
>
<div class="d-flex align-center flex-nowrap grow">
<v-checkbox <v-checkbox
v-model="listItem.checked" v-model="listItem.checked"
hide-details hide-details
density="compact" density="compact"
class="mt-0 flex-shrink-0" class="mt-0 flex-shrink-0"
color="null" color="null"
@change="$emit('checked', listItem)" @click="() => {
listItem.checked = !listItem.checked
$emit('checked', listItem)
}"
/> />
<div <div
class="ml-2 text-truncate" class="ml-2 text-truncate"
@@ -33,7 +28,12 @@
<RecipeIngredientListItem :ingredient="listItem" /> <RecipeIngredientListItem :ingredient="listItem" />
</div> </div>
</div> </div>
</v-card> </v-col>
<v-spacer />
<v-col
cols="auto"
class="text-right"
>
<div <div
v-if="!listItem.checked" v-if="!listItem.checked"
style="min-width: 72px" style="min-width: 72px"
@@ -105,6 +105,7 @@
</v-list> </v-list>
</v-menu> </v-menu>
</div> </div>
</v-col>
</v-row> </v-row>
<v-row <v-row
v-if="!listItem.checked && recipeList && recipeList.length && displayRecipeRefs" v-if="!listItem.checked && recipeList && recipeList.length && displayRecipeRefs"
@@ -313,8 +314,4 @@ export default defineNuxtComponent({
.strike-through { .strike-through {
text-decoration: line-through !important; text-decoration: line-through !important;
} }
.grow {
flex-grow: 1;
}
</style> </style>

View File

@@ -342,9 +342,9 @@
"breakfast": "Snídaně", "breakfast": "Snídaně",
"lunch": "Oběd", "lunch": "Oběd",
"dinner": "Večeře", "dinner": "Večeře",
"snack": "Snack", "snack": "Svačina",
"drink": "Drink", "drink": "Nápoje",
"dessert": "Dessert", "dessert": "Dezerty",
"type-any": "Libovolné", "type-any": "Libovolné",
"day-any": "Libovolný", "day-any": "Libovolný",
"editor": "Editor", "editor": "Editor",
@@ -403,7 +403,7 @@
"title": "Recepty Tandoor" "title": "Recepty Tandoor"
}, },
"cookn": { "cookn": {
"description-long": "Mealie can import recipes from DVO Cook'n X3. Export a cookbook or menu in the \"Cook'n\" format, rename the export extension to .zip, then upload the .zip below.", "description-long": "Mealie může importovat recept z DVO Cook'n X3. Exportujte kuchařku nebo menu ve formátu \"Cook'n\", přejmenujte rozšíření exportu na .zip, poté nahrajte .zip níže.",
"title": "DVO Cook'n X3" "title": "DVO Cook'n X3"
}, },
"recipe-data-migrations": "Migrace dat receptů", "recipe-data-migrations": "Migrace dat receptů",
@@ -445,7 +445,7 @@
"upload-a-recipe": "Nahrát recept", "upload-a-recipe": "Nahrát recept",
"upload-individual-zip-file": "Nahrát individuální .zip soubor exportovaný z jiné instance Mealie.", "upload-individual-zip-file": "Nahrát individuální .zip soubor exportovaný z jiné instance Mealie.",
"url-form-hint": "Zkopírujte a vložte odkaz z vaší oblíbené stránky s recepty", "url-form-hint": "Zkopírujte a vložte odkaz z vaší oblíbené stránky s recepty",
"copy-and-paste-the-source-url-of-your-data-optional": "Copy and paste the source URL of your data (optional)", "copy-and-paste-the-source-url-of-your-data-optional": "Zkopírujte a vložte zdrojovou adresu URL vašich dat (volitelné)",
"view-scraped-data": "Zobrazit scrapovaná data", "view-scraped-data": "Zobrazit scrapovaná data",
"trim-whitespace-description": "Oříznout počáteční a koncové mezery stejně jako prázdné řádky", "trim-whitespace-description": "Oříznout počáteční a koncové mezery stejně jako prázdné řádky",
"trim-prefix-description": "Oříznout první znak z každé řádky", "trim-prefix-description": "Oříznout první znak z každé řádky",
@@ -453,8 +453,8 @@
"import-by-url": "Importovat recept podle URL", "import-by-url": "Importovat recept podle URL",
"create-manually": "Vytvořit recept ručně", "create-manually": "Vytvořit recept ručně",
"make-recipe-image": "Nastavit jako obrázek receptu", "make-recipe-image": "Nastavit jako obrázek receptu",
"add-food": "Add Food", "add-food": "Přidat jídlo",
"add-recipe": "Add Recipe" "add-recipe": "Přidat recept"
}, },
"page": { "page": {
"404-page-not-found": "404 Stránka nebyla nalezena", "404-page-not-found": "404 Stránka nebyla nalezena",
@@ -521,9 +521,9 @@
"recipe-deleted": "Recept smazán", "recipe-deleted": "Recept smazán",
"recipe-image": "Obrázek receptu", "recipe-image": "Obrázek receptu",
"recipe-image-updated": "Obrázek receptu aktualizován", "recipe-image-updated": "Obrázek receptu aktualizován",
"delete-image": "Delete Recipe Image", "delete-image": "Smazat recept",
"delete-image-confirmation": "Are you sure you want to delete this recipe image?", "delete-image-confirmation": "Opravdu chcete smazat tento recept?",
"recipe-image-deleted": "Recipe image deleted", "recipe-image-deleted": "Recept smazán",
"recipe-name": "Název receptu", "recipe-name": "Název receptu",
"recipe-settings": "Nastavení receptu", "recipe-settings": "Nastavení receptu",
"recipe-update-failed": "Aktualizace receptu se nezdařila", "recipe-update-failed": "Aktualizace receptu se nezdařila",
@@ -569,7 +569,7 @@
"choose-unit": "Vybrat jednotku", "choose-unit": "Vybrat jednotku",
"press-enter-to-create": "Stiskněte enter pro vytvoření", "press-enter-to-create": "Stiskněte enter pro vytvoření",
"choose-food": "Zvolte jídlo", "choose-food": "Zvolte jídlo",
"choose-recipe": "Choose Recipe", "choose-recipe": "Vybrat recept",
"notes": "Poznámky", "notes": "Poznámky",
"toggle-section": "Přidat/odebrat název sekce", "toggle-section": "Přidat/odebrat název sekce",
"see-original-text": "Zobrazit původní text", "see-original-text": "Zobrazit původní text",
@@ -597,7 +597,7 @@
"made-this": "Toto jsem uvařil", "made-this": "Toto jsem uvařil",
"how-did-it-turn-out": "Jak to dopadlo?", "how-did-it-turn-out": "Jak to dopadlo?",
"user-made-this": "{user} udělal toto", "user-made-this": "{user} udělal toto",
"made-for-recipe": "Made for {recipe}", "made-for-recipe": "Vytvořeno pro {recipe}",
"added-to-timeline": "Přidáno na časovou osu", "added-to-timeline": "Přidáno na časovou osu",
"failed-to-add-to-timeline": "Přidání na časovou osu selhalo", "failed-to-add-to-timeline": "Přidání na časovou osu selhalo",
"failed-to-update-recipe": "Aktualizace receptu selhala", "failed-to-update-recipe": "Aktualizace receptu selhala",
@@ -637,11 +637,11 @@
"scrape-recipe-suggest-bulk-importer": "Vyzkoušejte hromadný import", "scrape-recipe-suggest-bulk-importer": "Vyzkoušejte hromadný import",
"scrape-recipe-have-raw-html-or-json-data": "Máte surová data HTML nebo JSON?", "scrape-recipe-have-raw-html-or-json-data": "Máte surová data HTML nebo JSON?",
"scrape-recipe-you-can-import-from-raw-data-directly": "Můžete importovat přímo ze surových dat", "scrape-recipe-you-can-import-from-raw-data-directly": "Můžete importovat přímo ze surových dat",
"scrape-recipe-website-being-blocked": "Website being blocked?", "scrape-recipe-website-being-blocked": "Webové stránky jsou blokovány?",
"scrape-recipe-try-importing-raw-html-instead": "Try importing the raw HTML instead.", "scrape-recipe-try-importing-raw-html-instead": "Zkuste namísto toho importovat raw HTML.",
"import-original-keywords-as-tags": "Importovat původní klíčová slova jako štítky", "import-original-keywords-as-tags": "Importovat původní klíčová slova jako štítky",
"stay-in-edit-mode": "Zůstat v režimu úprav", "stay-in-edit-mode": "Zůstat v režimu úprav",
"parse-recipe-ingredients-after-import": "Parse recipe ingredients after import", "parse-recipe-ingredients-after-import": "Po importu analyzovat ingredience receptu",
"import-from-zip": "Importovat ze zipu", "import-from-zip": "Importovat ze zipu",
"import-from-zip-description": "Importovat jeden recept, který byl exportován z jiné instance Mealie.", "import-from-zip-description": "Importovat jeden recept, který byl exportován z jiné instance Mealie.",
"import-from-html-or-json": "Importovat z HTML nebo JSON", "import-from-html-or-json": "Importovat z HTML nebo JSON",
@@ -688,12 +688,12 @@
"this-unit-could-not-be-parsed-automatically": "Tuto jednotku nelze analyzovat automaticky", "this-unit-could-not-be-parsed-automatically": "Tuto jednotku nelze analyzovat automaticky",
"this-food-could-not-be-parsed-automatically": "Toto jídlo nelze analyzovat automaticky", "this-food-could-not-be-parsed-automatically": "Toto jídlo nelze analyzovat automaticky",
"no-food": "Žádné jídlo", "no-food": "Žádné jídlo",
"review-parsed-ingredients": "Review parsed ingredients", "review-parsed-ingredients": "Zkontrolovat analyzované ingredience",
"confidence-score": "Confidence Score", "confidence-score": "Skóre spolehlivosti",
"ingredient-parser-description": "Your ingredients have been successfully parsed. Please review the ingredients we're not sure about.", "ingredient-parser-description": "Vaše suroviny byly úspěšně analyzovány. Prosím zkontrolujte ingredience, o kterých si nejsme jisti.",
"ingredient-parser-final-review-description": "Once all ingredients have been reviewed, you'll have one more chance to review all ingredients before applying the changes to your recipe.", "ingredient-parser-final-review-description": "Jakmile budou všechny ingredience zkontrolovány, budete mít ještě jednu šanci zkontrolovat všechny ingredience před použitím změn ve vašem receptu.",
"add-text-as-alias-for-item": "Add \"{text}\" as alias for {item}", "add-text-as-alias-for-item": "Přidat \"{text}\" jako alias pro {item}",
"delete-item": "Delete Item" "delete-item": "Odstranit položku"
}, },
"reset-servings-count": "Resetovat počet porcí", "reset-servings-count": "Resetovat počet porcí",
"not-linked-ingredients": "Další ingredience", "not-linked-ingredients": "Další ingredience",
@@ -702,9 +702,9 @@
"upload-more-images": "Nahrát více obrázků", "upload-more-images": "Nahrát více obrázků",
"set-as-cover-image": "Nastavit recept jako úvodní obrázek", "set-as-cover-image": "Nastavit recept jako úvodní obrázek",
"cover-image": "Úvodní obrázek", "cover-image": "Úvodní obrázek",
"include-linked-recipes": "Include Linked Recipes", "include-linked-recipes": "Zahrnout připojené recepty",
"include-linked-recipe-ingredients": "Include Linked Recipe Ingredients", "include-linked-recipe-ingredients": "Zahrnout připojené ingredience",
"toggle-recipe": "Toggle Recipe" "toggle-recipe": "Přidat/odebrat název sekce"
}, },
"recipe-finder": { "recipe-finder": {
"recipe-finder": "Vyhledávač receptů", "recipe-finder": "Vyhledávač receptů",
@@ -742,7 +742,7 @@
"advanced": "Pokročilé", "advanced": "Pokročilé",
"auto-search": "Automatické vyhledávání", "auto-search": "Automatické vyhledávání",
"no-results": "Nebyly nalezeny žádné výsledky", "no-results": "Nebyly nalezeny žádné výsledky",
"type-to-search": "Type to search..." "type-to-search": "Zadejte hledaný výraz..."
}, },
"settings": { "settings": {
"add-a-new-theme": "Přidat nový motiv", "add-a-new-theme": "Přidat nový motiv",
@@ -1081,8 +1081,8 @@
"forgot-password": "Zapomenuté heslo", "forgot-password": "Zapomenuté heslo",
"forgot-password-text": "Zadejte prosím svou e-mailovou adresu a my vám zašleme odkaz pro obnovení hesla.", "forgot-password-text": "Zadejte prosím svou e-mailovou adresu a my vám zašleme odkaz pro obnovení hesla.",
"changes-reflected-immediately": "Změny tohoto uživatele budou okamžitě zohledněny.", "changes-reflected-immediately": "Změny tohoto uživatele budou okamžitě zohledněny.",
"default-activity": "Default Activity", "default-activity": "Výchozí aktivita",
"default-activity-hint": "Select which page you'd like to navigate to upon logging in from this device" "default-activity-hint": "Vyberte stránku, na kterou chcete přejít po přihlášení z tohoto zařízení"
}, },
"language-dialog": { "language-dialog": {
"translated": "přeloženo", "translated": "přeloženo",
@@ -1430,11 +1430,11 @@
} }
}, },
"validators": { "validators": {
"required": "This Field is Required", "required": "Toto pole je povinné",
"invalid-email": "Email Must Be Valid", "invalid-email": "E-mail musí být platný",
"invalid-url": "Must Be A Valid URL", "invalid-url": "Musí být platná URL adresa",
"no-whitespace": "No Whitespace Allowed", "no-whitespace": "Prázdný prostor není povolen",
"min-length": "Must Be At Least {min} Characters", "min-length": "Musí být alespoň {min} znaků",
"max-length": "Must Be At Most {max} Characters" "max-length": "Musí být nejvíce {max} znaků"
} }
} }

View File

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

View File

@@ -5,7 +5,7 @@
"recipe": { "recipe": {
"unique-name-error": "Názvy receptů musí být jedinečné", "unique-name-error": "Názvy receptů musí být jedinečné",
"recipe-created": "Recept byl vytvořen", "recipe-created": "Recept byl vytvořen",
"recipe-image-deleted": "Recipe image deleted", "recipe-image-deleted": "Recept smazán",
"recipe-defaults": { "recipe-defaults": {
"ingredient-note": "1 hrnek mouky", "ingredient-note": "1 hrnek mouky",
"step-text": "Kroky receptu stejně jako další pole v receptu podporují syntaxi markdown.\n\n**Přidat odkaz**\n\n[Můj odkaz](https://demo.mealie.io)\n" "step-text": "Kroky receptu stejně jako další pole v receptu podporují syntaxi markdown.\n\n**Přidat odkaz**\n\n[Můj odkaz](https://demo.mealie.io)\n"
@@ -33,7 +33,7 @@
}, },
"exceptions": { "exceptions": {
"permission_denied": "Nemáte oprávnění k provedení této akce", "permission_denied": "Nemáte oprávnění k provedení této akce",
"recursive-recipe-link": "A recipe cannot reference itself, either directly or indirectly", "recursive-recipe-link": "Recept se nemůže sám sebe přímo ani nepřímo odkazovat",
"no-entry-found": "Požadovaný prostředek nebyl nalezen", "no-entry-found": "Požadovaný prostředek nebyl nalezen",
"integrity-error": "Chyba integrity databáze", "integrity-error": "Chyba integrity databáze",
"username-conflict-error": "Toto uživatelské jméno je již používáno", "username-conflict-error": "Toto uživatelské jméno je již používáno",
@@ -46,7 +46,7 @@
"generic-updated-with-url": "{name} byl aktualizován, {url}", "generic-updated-with-url": "{name} byl aktualizován, {url}",
"generic-duplicated": "{name} byl duplikován", "generic-duplicated": "{name} byl duplikován",
"generic-deleted": "{name} byl odstraněn", "generic-deleted": "{name} byl odstraněn",
"logged-out": "Logged out" "logged-out": "Odhlášení"
}, },
"datetime": { "datetime": {
"year": "rok|roky", "year": "rok|roky",

View File

@@ -340,7 +340,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "chard", "name": "chard",
"plural_name": "chards" "plural_name": "chard"
}, },
"pimiento": { "pimiento": {
"aliases": [], "aliases": [],
@@ -2626,7 +2626,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "milk", "name": "milk",
"plural_name": "milks" "plural_name": "milk"
}, },
"heavy cream": { "heavy cream": {
"aliases": [], "aliases": [],
@@ -2644,7 +2644,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "buttermilk", "name": "buttermilk",
"plural_name": "buttermilks" "plural_name": "buttermilk"
}, },
"yogurt": { "yogurt": {
"aliases": [], "aliases": [],
@@ -2688,7 +2688,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "condensed milk", "name": "condensed milk",
"plural_name": "condensed milks" "plural_name": "condensed milk"
}, },
"half and half": { "half and half": {
"aliases": [], "aliases": [],
@@ -2700,7 +2700,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "sweetened condensed milk", "name": "sweetened condensed milk",
"plural_name": "sweetened condensed milks" "plural_name": "sweetened condensed milk"
}, },
"ice cream": { "ice cream": {
"aliases": [], "aliases": [],
@@ -2730,7 +2730,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "milk powder", "name": "milk powder",
"plural_name": "milk powders" "plural_name": "milk powder"
}, },
"curd": { "curd": {
"aliases": [], "aliases": [],
@@ -2784,7 +2784,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "chocolate milk", "name": "chocolate milk",
"plural_name": "chocolate milks" "plural_name": "chocolate milk"
}, },
"liquid egg substitute": { "liquid egg substitute": {
"aliases": [], "aliases": [],
@@ -2814,7 +2814,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "buttermilk powder", "name": "buttermilk powder",
"plural_name": "buttermilk powders" "plural_name": "buttermilk powder"
}, },
"frozen yogurt": { "frozen yogurt": {
"aliases": [], "aliases": [],
@@ -2832,7 +2832,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "milk cream", "name": "milk cream",
"plural_name": "milk creams" "plural_name": "milk cream"
}, },
"coffee creamer": { "coffee creamer": {
"aliases": [], "aliases": [],
@@ -2850,7 +2850,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "goat milk", "name": "goat milk",
"plural_name": "goat milks" "plural_name": "goat milk"
}, },
"cheese curd": { "cheese curd": {
"aliases": [], "aliases": [],
@@ -2862,7 +2862,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "sour milk", "name": "sour milk",
"plural_name": "sour milks" "plural_name": "sour milk"
}, },
"ganache": { "ganache": {
"aliases": [], "aliases": [],
@@ -2904,7 +2904,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "raw milk", "name": "raw milk",
"plural_name": "raw milks" "plural_name": "raw milk"
}, },
"lime curd": { "lime curd": {
"aliases": [], "aliases": [],
@@ -3024,7 +3024,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "chocolate milk powder", "name": "chocolate milk powder",
"plural_name": "chocolate milk powders" "plural_name": "chocolate milk powder"
}, },
"liquid rennet": { "liquid rennet": {
"aliases": [], "aliases": [],
@@ -3035,14 +3035,14 @@
"sheeps milk yoghurt": { "sheeps milk yoghurt": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "sheeps milk yoghurt", "name": "sheep's milk yoghurt",
"plural_name": "sheeps milk yoghurts" "plural_name": "sheep's milk yoghurt"
}, },
"strawberry milk": { "strawberry milk": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "strawberry milk", "name": "strawberry milk",
"plural_name": "strawberry milks" "plural_name": "strawberry milk"
}, },
"ayran": { "ayran": {
"aliases": [], "aliases": [],
@@ -3078,7 +3078,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "sheep milk", "name": "sheep milk",
"plural_name": "sheep milks" "plural_name": "sheep milk"
}, },
"starter culture": { "starter culture": {
"aliases": [], "aliases": [],
@@ -3102,7 +3102,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "vanilla milk", "name": "vanilla milk",
"plural_name": "vanilla milks" "plural_name": "vanilla milk"
}, },
"yoplait whip": { "yoplait whip": {
"aliases": [], "aliases": [],
@@ -3114,7 +3114,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "buffalo milk", "name": "buffalo milk",
"plural_name": "buffalo milks" "plural_name": "buffalo milk"
}, },
"goat kefir": { "goat kefir": {
"aliases": [], "aliases": [],
@@ -3136,13 +3136,13 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "coconut milk", "name": "coconut milk",
"plural_name": "coconut milks" "plural_name": "coconut milk"
}, },
"almond milk": { "almond milk": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "almond milk", "name": "almond milk",
"plural_name": "almond milks" "plural_name": "almond milk"
}, },
"almond butter": { "almond butter": {
"aliases": [], "aliases": [],
@@ -3172,13 +3172,13 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "non-dairy milk", "name": "non-dairy milk",
"plural_name": "non-dairy milks" "plural_name": "non-dairy milk"
}, },
"soy milk": { "soy milk": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "soy milk", "name": "soy milk",
"plural_name": "soy milks" "plural_name": "soy milk"
}, },
"extra firm tofu": { "extra firm tofu": {
"aliases": [], "aliases": [],
@@ -3262,13 +3262,13 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "cashew milk", "name": "cashew milk",
"plural_name": "cashew milks" "plural_name": "cashew milk"
}, },
"oat milk": { "oat milk": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "oat milk", "name": "oat milk",
"plural_name": "oat milks" "plural_name": "oat milk"
}, },
"nut butter": { "nut butter": {
"aliases": [], "aliases": [],
@@ -3358,7 +3358,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "coconut milk powder", "name": "coconut milk powder",
"plural_name": "coconut milk powders" "plural_name": "coconut milk powder"
}, },
"non-dairy whipped topping": { "non-dairy whipped topping": {
"aliases": [], "aliases": [],
@@ -3370,7 +3370,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "nut milk", "name": "nut milk",
"plural_name": "nut milks" "plural_name": "nut milk"
}, },
"non-dairy cream": { "non-dairy cream": {
"aliases": [], "aliases": [],
@@ -3388,7 +3388,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "condensed coconut milk", "name": "condensed coconut milk",
"plural_name": "condensed coconut milks" "plural_name": "condensed coconut milk"
}, },
"vegan ground beef": { "vegan ground beef": {
"aliases": [], "aliases": [],
@@ -3442,7 +3442,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "hemp milk", "name": "hemp milk",
"plural_name": "hemp milks" "plural_name": "hemp milk"
}, },
"vegan beef": { "vegan beef": {
"aliases": [], "aliases": [],
@@ -3490,7 +3490,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "almond-coconut milk", "name": "almond-coconut milk",
"plural_name": "almond-coconut milks" "plural_name": "almond-coconut milk"
}, },
"banana blossom": { "banana blossom": {
"aliases": [], "aliases": [],
@@ -3514,7 +3514,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "hazelnut milk", "name": "hazelnut milk",
"plural_name": "hazelnut milks" "plural_name": "hazelnut milk"
}, },
"maple almond butter": { "maple almond butter": {
"aliases": [], "aliases": [],
@@ -3531,8 +3531,8 @@
"almond-milk yogurt": { "almond-milk yogurt": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "almond-milk yogurt", "name": "almond-milk yoghurt",
"plural_name": "almond-milk yogurts" "plural_name": "almond-milk yoghurt"
}, },
"almond creamer": { "almond creamer": {
"aliases": [], "aliases": [],
@@ -3544,7 +3544,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "soy milk powder", "name": "soy milk powder",
"plural_name": "soy milk powders" "plural_name": "soy milk powder"
}, },
"vegan cream cheese frosting": { "vegan cream cheese frosting": {
"aliases": [], "aliases": [],
@@ -3592,7 +3592,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "flax milk", "name": "flax milk",
"plural_name": "flax milks" "plural_name": "flax milk"
}, },
"hazelnut creamer": { "hazelnut creamer": {
"aliases": [], "aliases": [],
@@ -3670,7 +3670,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "macadamia milk", "name": "macadamia milk",
"plural_name": "macadamia milks" "plural_name": "macadamia milk"
}, },
"vegan taco meat": { "vegan taco meat": {
"aliases": [], "aliases": [],
@@ -3694,7 +3694,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "banana milk", "name": "banana milk",
"plural_name": "banana milks" "plural_name": "banana milk"
}, },
"soy quark": { "soy quark": {
"aliases": [], "aliases": [],
@@ -3718,7 +3718,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "walnut milk", "name": "walnut milk",
"plural_name": "walnut milks" "plural_name": "walnut milk"
}, },
"latik": { "latik": {
"aliases": [], "aliases": [],
@@ -6995,7 +6995,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "buttermilk syrup", "name": "buttermilk syrup",
"plural_name": "buttermilk syrups" "plural_name": "buttermilk syrup"
}, },
"chocolate sugar": { "chocolate sugar": {
"aliases": [], "aliases": [],
@@ -7275,13 +7275,13 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "garlic & herb seasoning", "name": "garlic & herb seasoning",
"plural_name": "garlic & herb seasonings" "plural_name": "garlic & herb seasoning"
}, },
"garlic-pepper seasoning": { "garlic-pepper seasoning": {
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "garlic-pepper seasoning", "name": "garlic-pepper seasoning",
"plural_name": "garlic-pepper seasonings" "plural_name": "garlic-pepper seasoning"
}, },
"pickling salt": { "pickling salt": {
"aliases": [], "aliases": [],
@@ -11331,7 +11331,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "garlic mayonnaise", "name": "garlic mayonnaise",
"plural_name": "garlic mayonnaises" "plural_name": "garlic mayonnaise"
}, },
"brown rice vinegar": { "brown rice vinegar": {
"aliases": [], "aliases": [],
@@ -11355,7 +11355,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "buttermilk ranch dressing", "name": "buttermilk ranch dressing",
"plural_name": "buttermilk ranch dressings" "plural_name": "buttermilk ranch dressing"
}, },
"cilantro dressing": { "cilantro dressing": {
"aliases": [], "aliases": [],
@@ -11575,7 +11575,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "ginger-garlic paste", "name": "ginger-garlic paste",
"plural_name": "ginger-garlic pastes" "plural_name": "ginger-garlic paste"
}, },
"brown mustard": { "brown mustard": {
"aliases": [], "aliases": [],
@@ -11641,7 +11641,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "chili-garlic sauce", "name": "chili-garlic sauce",
"plural_name": "chili-garlic sauces" "plural_name": "chili-garlic sauce"
}, },
"tamarind paste": { "tamarind paste": {
"aliases": [], "aliases": [],
@@ -11755,7 +11755,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "chili-garlic paste", "name": "chili-garlic paste",
"plural_name": "chili-garlic pastes" "plural_name": "chili-garlic paste"
}, },
"bonito flake": { "bonito flake": {
"aliases": [], "aliases": [],
@@ -13187,7 +13187,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "garlic spread", "name": "garlic spread",
"plural_name": "garlic spreads" "plural_name": "garlic spread"
}, },
"black pepper sauce": { "black pepper sauce": {
"aliases": [], "aliases": [],
@@ -15264,7 +15264,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "malted milk powder", "name": "malted milk powder",
"plural_name": "malted milk powders" "plural_name": "malted milk powder"
}, },
"mango juice": { "mango juice": {
"aliases": [], "aliases": [],
@@ -16018,7 +16018,7 @@
"aliases": [], "aliases": [],
"description": "", "description": "",
"name": "cannabis milk", "name": "cannabis milk",
"plural_name": "cannabis milks" "plural_name": "cannabis milk"
}, },
"malt extract": { "malt extract": {
"aliases": [], "aliases": [],

View File

@@ -1,6 +1,6 @@
[project] [project]
name = "mealie" name = "mealie"
version = "3.9.0" version = "3.9.1"
description = "A Recipe Manager" description = "A Recipe Manager"
authors = [{ name = "Hayden", email = "hay-kot@pm.me" }] authors = [{ name = "Hayden", email = "hay-kot@pm.me" }]
license = "AGPL-3.0-only" license = "AGPL-3.0-only"

2
uv.lock generated
View File

@@ -811,7 +811,7 @@ wheels = [
[[package]] [[package]]
name = "mealie" name = "mealie"
version = "3.9.0" version = "3.9.1"
source = { editable = "." } source = { editable = "." }
dependencies = [ dependencies = [
{ name = "aiofiles" }, { name = "aiofiles" },