mirror of
https://github.com/mealie-recipes/mealie.git
synced 2026-02-25 01:03:13 -05:00
Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
894162a669 | ||
|
|
347af7d417 | ||
|
|
cac1699aeb | ||
|
|
d577966bfb | ||
|
|
c663efde09 | ||
|
|
9e568a1182 | ||
|
|
fc38ef2ba9 | ||
|
|
323a8100db | ||
|
|
01d3d5d325 | ||
|
|
3f52c66f02 | ||
|
|
566f744220 | ||
|
|
561b50ba45 | ||
|
|
4228c9e753 | ||
|
|
2a5c3f6457 | ||
|
|
389f8b4279 | ||
|
|
f2b71e981e | ||
|
|
ec7e3a5103 | ||
|
|
6f0183cc4b |
@@ -12,7 +12,7 @@ repos:
|
||||
exclude: ^tests/data/
|
||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||
# Ruff version.
|
||||
rev: v0.12.9
|
||||
rev: v0.12.10
|
||||
hooks:
|
||||
- id: ruff
|
||||
- id: ruff-format
|
||||
|
||||
@@ -131,7 +131,7 @@ For custom mapping variables (e.g. OPENAI_CUSTOM_HEADERS) you should pass values
|
||||
| OPENAI_ENABLE_IMAGE_SERVICES | True | Whether to enable OpenAI image services, such as creating recipes via image. Leave this enabled unless your custom model doesn't support it, or you want to reduce costs |
|
||||
| OPENAI_WORKERS | 2 | Number of OpenAI workers per request. Higher values may increase processing speed, but will incur additional API costs |
|
||||
| OPENAI_SEND_DATABASE_DATA | True | Whether to send Mealie data to OpenAI to improve request accuracy. This will incur additional API costs |
|
||||
| OPENAI_REQUEST_TIMEOUT | 60 | The number of seconds to wait for an OpenAI request to complete before cancelling the request. Leave this empty unless you're running into timeout issues on slower hardware |
|
||||
| OPENAI_REQUEST_TIMEOUT | 300 | The number of seconds to wait for an OpenAI request to complete before cancelling the request. Leave this empty unless you're running into timeout issues on slower hardware |
|
||||
|
||||
### Theming
|
||||
|
||||
|
||||
@@ -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.1.0`
|
||||
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
|
||||
|
||||
|
||||
@@ -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.1.0 # (3)
|
||||
image: ghcr.io/mealie-recipes/mealie:v3.1.1 # (3)
|
||||
container_name: mealie
|
||||
restart: always
|
||||
ports:
|
||||
|
||||
@@ -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.1.0 # (3)
|
||||
image: ghcr.io/mealie-recipes/mealie:v3.1.1 # (3)
|
||||
container_name: mealie
|
||||
restart: always
|
||||
ports:
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
</div>
|
||||
<BaseButton
|
||||
v-if="listItem.labelId && listItem.food && listItem.labelId !== listItem.food.labelId"
|
||||
size="small"
|
||||
small
|
||||
color="info"
|
||||
:icon="$globals.icons.tagArrowRight"
|
||||
:text="$t('shopping-list.save-label')"
|
||||
|
||||
@@ -106,15 +106,7 @@
|
||||
persistent-hint
|
||||
lazy-validation
|
||||
@blur="emitBlur"
|
||||
>
|
||||
<template #item="{ item }">
|
||||
<v-list-item
|
||||
v-bind="props"
|
||||
:title="item.raw.text"
|
||||
:subtitle="item.raw.description"
|
||||
/>
|
||||
</template>
|
||||
</v-select>
|
||||
/>
|
||||
|
||||
<!-- Color Picker -->
|
||||
<div
|
||||
|
||||
@@ -10,8 +10,9 @@
|
||||
:min="min"
|
||||
:max="max"
|
||||
type="number"
|
||||
size="small"
|
||||
variant="plain"
|
||||
density="compact"
|
||||
style="width: 60px;"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -150,7 +150,10 @@ export function useShoppingListCrud(
|
||||
|
||||
loadingCounter.value += 1;
|
||||
|
||||
// make sure it's inserted into the end of the list, which may have been updated
|
||||
// ensure list id is set to the current list, which may not have loaded yet in the factory
|
||||
createListItemData.value.shoppingListId = shoppingList.value.id;
|
||||
|
||||
// ensure item is inserted into the end of the list, which may have been updated
|
||||
createListItemData.value.position = shoppingList.value?.listItems?.length
|
||||
? (shoppingList.value.listItems.reduce((a, b) => (a.position || 0) > (b.position || 0) ? a : b).position || 0) + 1
|
||||
: 0;
|
||||
|
||||
@@ -9,7 +9,7 @@ export const LOCALES = [
|
||||
{
|
||||
name: "简体中文 (Chinese simplified)",
|
||||
value: "zh-CN",
|
||||
progress: 35,
|
||||
progress: 38,
|
||||
dir: "ltr",
|
||||
},
|
||||
{
|
||||
@@ -129,13 +129,13 @@ export const LOCALES = [
|
||||
{
|
||||
name: "Íslenska (Icelandic)",
|
||||
value: "is-IS",
|
||||
progress: 2,
|
||||
progress: 3,
|
||||
dir: "ltr",
|
||||
},
|
||||
{
|
||||
name: "Magyar (Hungarian)",
|
||||
value: "hu-HU",
|
||||
progress: 40,
|
||||
progress: 41,
|
||||
dir: "ltr",
|
||||
},
|
||||
{
|
||||
@@ -159,7 +159,7 @@ export const LOCALES = [
|
||||
{
|
||||
name: "Français (French)",
|
||||
value: "fr-FR",
|
||||
progress: 52,
|
||||
progress: 55,
|
||||
dir: "ltr",
|
||||
},
|
||||
{
|
||||
@@ -171,7 +171,7 @@ export const LOCALES = [
|
||||
{
|
||||
name: "Belge (Belgian)",
|
||||
value: "fr-BE",
|
||||
progress: 36,
|
||||
progress: 41,
|
||||
dir: "ltr",
|
||||
},
|
||||
{
|
||||
@@ -225,7 +225,7 @@ export const LOCALES = [
|
||||
{
|
||||
name: "Čeština (Czech)",
|
||||
value: "cs-CZ",
|
||||
progress: 39,
|
||||
progress: 41,
|
||||
dir: "ltr",
|
||||
},
|
||||
{
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"about": {
|
||||
"about": "O aplikaci",
|
||||
"about-mealie": "O Mealie",
|
||||
"about-mealie": "O aplikaci Mealie",
|
||||
"api-docs": "Dokumentace API",
|
||||
"api-port": "API port",
|
||||
"api-port": "Port API",
|
||||
"application-mode": "Režim aplikace",
|
||||
"database-type": "Database Type",
|
||||
"database-url": "URL databáze",
|
||||
"database-url": "Adresa URL databáze",
|
||||
"default-group": "Výchozí skupina",
|
||||
"default-household": "Výchozí domácnost",
|
||||
"demo": "Demo",
|
||||
@@ -14,7 +14,7 @@
|
||||
"development": "Vývoj",
|
||||
"docs": "Dokumentace",
|
||||
"download-log": "Stáhnout log",
|
||||
"download-recipe-json": "Poslední scrapovaný JSON",
|
||||
"download-recipe-json": "Poslední získaný JSON",
|
||||
"github": "GitHub",
|
||||
"log-lines": "Řádky logů",
|
||||
"not-demo": "Není demo",
|
||||
@@ -22,7 +22,7 @@
|
||||
"production": "Produkce",
|
||||
"support": "Podpora",
|
||||
"version": "Verze",
|
||||
"unknown-version": "neznámá",
|
||||
"unknown-version": "neznámé",
|
||||
"sponsor": "Sponzor"
|
||||
},
|
||||
"asset": {
|
||||
@@ -30,7 +30,7 @@
|
||||
"code": "Kód",
|
||||
"file": "Soubor",
|
||||
"image": "Obrázek",
|
||||
"new-asset": "Nový zdroj",
|
||||
"new-asset": "Nový prostředek",
|
||||
"pdf": "PDF",
|
||||
"recipe": "Recept",
|
||||
"show-assets": "Zobrazit zdroje",
|
||||
@@ -69,7 +69,7 @@
|
||||
"new-notification": "Nové oznámení",
|
||||
"event-notifiers": "Notifikace událostí",
|
||||
"apprise-url-skipped-if-blank": "Apprise URL (přeskočeno pokud je prázdné)",
|
||||
"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": "Jelikož adresa URL obvykle obsahuje citlivé informace, zůstává toto pole při úpravách záměrně prázdné. Zadejte novou adresu URL, chcete-li ji změnit. V opačném případě ponechejte pole prázdné.",
|
||||
"enable-notifier": "Povolit notifikaci",
|
||||
"what-events": "K jakým událostem by se měl tento oznamovatel přihlásit?",
|
||||
"user-events": "Uživatelské události",
|
||||
@@ -81,7 +81,7 @@
|
||||
"category-events": "Události kategorie",
|
||||
"when-a-new-user-joins-your-group": "Když se nový uživatel připojí do vaší skupiny",
|
||||
"recipe-events": "Události receptu",
|
||||
"label-events": "Label Events"
|
||||
"label-events": "Události štítků"
|
||||
},
|
||||
"general": {
|
||||
"add": "Přidat",
|
||||
@@ -474,7 +474,7 @@
|
||||
"comment": "Komentář",
|
||||
"comments": "Komentáře",
|
||||
"delete-confirmation": "Opravdu chcete smazat tento recept?",
|
||||
"admin-delete-confirmation": "You're about to delete a recipe that isn't yours using admin permissions. Are you sure?",
|
||||
"admin-delete-confirmation": "Chystáte se odstranit recept, který nepoužívá oprávnění správce. Opravdu chcete pokračovat?",
|
||||
"delete-recipe": "Smazat recept",
|
||||
"description": "Popis",
|
||||
"disable-amount": "Nezobrazovat množství ingrediencí",
|
||||
@@ -551,7 +551,7 @@
|
||||
"failed-to-add-to-list": "Přidání do seznamu se nezdařilo",
|
||||
"yield": "Úroda",
|
||||
"yields-amount-with-text": "Pro {amount} {text}",
|
||||
"yield-text": "Yield Text",
|
||||
"yield-text": "Text porcí",
|
||||
"quantity": "Množství",
|
||||
"choose-unit": "Vybrat jednotku",
|
||||
"press-enter-to-create": "Stiskněte enter pro vytvoření",
|
||||
@@ -582,14 +582,14 @@
|
||||
"made-this": "Toto jsem uvařil",
|
||||
"how-did-it-turn-out": "Jak to dopadlo?",
|
||||
"user-made-this": "{user} udělal toto",
|
||||
"added-to-timeline": "Added to timeline",
|
||||
"failed-to-add-to-timeline": "Failed to add to timeline",
|
||||
"failed-to-update-recipe": "Failed to update recipe",
|
||||
"added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
|
||||
"added-to-timeline": "Přidáno na časovou osu",
|
||||
"failed-to-add-to-timeline": "Přidání na časovou osu selhalo",
|
||||
"failed-to-update-recipe": "Aktualizace receptu selhala",
|
||||
"added-to-timeline-but-failed-to-add-image": "Přidáno na časovou osu, ale přidání obrázku selhalo",
|
||||
"api-extras-description": "Recepty jsou klíčovým rysem rozhraní pro API Mealie. Umožňují vytvářet vlastní klíče/hodnoty JSON v rámci receptu pro odkazy na aplikace třetích stran. Tyto klíče můžete použít pro poskytnutí informací, například pro aktivaci automatizace nebo vlastních zpráv pro přenos do požadovaného zařízení.",
|
||||
"message-key": "Klíč zprávy",
|
||||
"parse": "Analyzovat",
|
||||
"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": "Zdá se, že vaše ingredience doposud nebyly analyzovány. Kliknutím na tlačítko „{parse}“ níže, abyste rozložili ingredience do strukturovaných jídel.",
|
||||
"attach-images-hint": "Přiložit obrázky přetažením jich do editoru",
|
||||
"drop-image": "Vložit obrázek",
|
||||
"enable-ingredient-amounts-to-use-this-feature": "Chcete-li tuto funkci používat, povolte množství ingrediencí",
|
||||
@@ -607,10 +607,10 @@
|
||||
"create-recipe-from-an-image": "Vytvořit recept z obrázku",
|
||||
"create-recipe-from-an-image-description": "Vytvořte recept nahráním obrázku. Mealie se pokusí z obrázku extrahovat text pomocí AI a vytvořit z něj recept.",
|
||||
"crop-and-rotate-the-image": "Oříznout a otočit obrázek tak, aby byl viditelný pouze text a aby byl ve správné orientaci.",
|
||||
"create-from-images": "Create from Images",
|
||||
"create-from-images": "Vytvořit z obrázků",
|
||||
"should-translate-description": "Přeložit recept do mého jazyka",
|
||||
"please-wait-image-procesing": "Počkejte prosím, obrázek se zpracovává. Může to chvíli trvat.",
|
||||
"please-wait-images-processing": "Please wait, the images are processing. This may take some time.",
|
||||
"please-wait-images-processing": "Počkejte prosím, probíhá zpracování obrázků. Může to chvíli trvat.",
|
||||
"bulk-url-import": "Hromadný import adres URL",
|
||||
"debug-scraper": "Ladící Scraper",
|
||||
"create-a-recipe-by-providing-the-name-all-recipes-must-have-unique-names": "Vytvořte recept zadáním názvu. Všechny recepty musí mít jedinečná jména.",
|
||||
@@ -646,8 +646,8 @@
|
||||
"debug": "Ladit",
|
||||
"tree-view": "Stromové zobrazení",
|
||||
"recipe-servings": "Počet porcí",
|
||||
"recipe-yield": "Recipe Yield",
|
||||
"recipe-yield-text": "Recipe Yield Text",
|
||||
"recipe-yield": "Počet porcí receptu",
|
||||
"recipe-yield-text": "Text porcí receptu",
|
||||
"unit": "Jednotka",
|
||||
"upload-image": "Nahrát obrázek",
|
||||
"screen-awake": "Udržovat obrazovku vzhůru",
|
||||
@@ -659,15 +659,15 @@
|
||||
"explanation": "Chcete-li použít analyzátor ingrediencí, klikněte na tlačítko \"Analyzovat vše\" pro zahájení procesu. Jakmile budou zpracované suroviny k dispozici, můžete zkontrolovat položky a ověřit, že byly správně analyzovány. Skóre důvěry modelu se zobrazuje vpravo od názvu položky. Toto skóre je průměrem všech jednotlivých skóre a nemusí být vždy zcela přesné.",
|
||||
"alerts-explainer": "Upozornění se zobrazí v případě, že je nalezena odpovídající potravina nebo jednotka, ale v databázi neexistuje.",
|
||||
"select-parser": "Vyberte analyzátor",
|
||||
"natural-language-processor": "Natural Language Processor",
|
||||
"brute-parser": "Brute Parser",
|
||||
"natural-language-processor": "Procesor přirozeného jazyka",
|
||||
"brute-parser": "Analýza hrubou silou",
|
||||
"openai-parser": "Analyzátor OpenAI",
|
||||
"parse-all": "Parsovat vše",
|
||||
"no-unit": "Žádná jednotka",
|
||||
"missing-unit": "Vytvořit chybějící jednotku: {unit}",
|
||||
"missing-food": "Vytvořit chybějící jídlo: {food}",
|
||||
"this-unit-could-not-be-parsed-automatically": "This unit could not be parsed automatically",
|
||||
"this-food-could-not-be-parsed-automatically": "This food could not be parsed automatically",
|
||||
"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",
|
||||
"no-food": "Žádné jídlo"
|
||||
},
|
||||
"reset-servings-count": "Resetovat počet porcí",
|
||||
@@ -675,8 +675,8 @@
|
||||
"upload-another-image": "Nahrát další obrázek",
|
||||
"upload-images": "Nahrát obrázky",
|
||||
"upload-more-images": "Nahrát více obrázků",
|
||||
"set-as-cover-image": "Set as recipe cover image",
|
||||
"cover-image": "Cover image"
|
||||
"set-as-cover-image": "Nastavit recept jako úvodní obrázek",
|
||||
"cover-image": "Úvodní obrázek"
|
||||
},
|
||||
"recipe-finder": {
|
||||
"recipe-finder": "Vyhledávač receptů",
|
||||
@@ -1137,7 +1137,7 @@
|
||||
"create-alias": "Vytvořit alias",
|
||||
"manage-aliases": "Spravovat aliasy",
|
||||
"seed-data": "Seed Data",
|
||||
"seed": "Seed",
|
||||
"seed": "Zdroj",
|
||||
"data-management": "Správa dat",
|
||||
"data-management-description": "Vyberte datovou sadu, ve které chcete provést změny.",
|
||||
"select-data": "Vybrat data",
|
||||
@@ -1169,7 +1169,7 @@
|
||||
"group-details": "Podrobnosti o skupině",
|
||||
"group-details-description": "Než vytvoříte svůj účet, musíte vytvořit skupinu. Vaše skupina bude obsahovat pouze vás, ale později budete moct přizvat jiné uživatele. Členové vaší skupiny mohou sdílet jídelníčky, nákupní seznamy, recepty a další!",
|
||||
"use-seed-data": "Použít Seed 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 obdržíte se sbírkou potravin, jednotek a štítků. Můžete je uložit ve své skupině, abyste mohli lépe organizovat svoje recepty. Ty jsou přeloženy do jazyka, který jste právě vybrali. Tato data můžete kdykoli doplnit nebo změnit.",
|
||||
"account-details": "Podrobnosti účtu"
|
||||
},
|
||||
"validation": {
|
||||
|
||||
@@ -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": {
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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 l’ai cuisiné",
|
||||
"how-did-it-turn-out": "C’était bon ?",
|
||||
"user-made-this": "{user} l’a cuisiné",
|
||||
"added-to-timeline": "Ajouté à l’historique",
|
||||
"failed-to-add-to-timeline": "Ajout dans l’historique en échec",
|
||||
"failed-to-update-recipe": "Impossible de mettre à jour la recette",
|
||||
"added-to-timeline-but-failed-to-add-image": "Ajouté à l’historique, mais impossible d’ajouter l’image",
|
||||
"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 l’API 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 à l’appareil souhaité.",
|
||||
"message-key": "Clé de message",
|
||||
"parse": "Analyser",
|
||||
@@ -607,10 +607,10 @@
|
||||
"create-recipe-from-an-image": "Créer une recette à partir d’une image",
|
||||
"create-recipe-from-an-image-description": "Créez une recette en téléchargeant une image de celle-ci. Mealie utilisera l’IA pour tenter d’extraire le texte et de créer une recette.",
|
||||
"crop-and-rotate-the-image": "Rogner et pivoter l’image pour que seul le texte soit visible, et qu’il soit dans la bonne orientation.",
|
||||
"create-from-images": "Créer à partir d’images",
|
||||
"create-from-images": "Créer à partir d’une image",
|
||||
"should-translate-description": "Traduire la recette dans ma langue",
|
||||
"please-wait-image-procesing": "Veuillez patienter, l’image 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 d’autres personnes plus tard. Les membres de votre groupe peuvent partager leur menu de la semaine, leurs listes d’achat, 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": {
|
||||
|
||||
@@ -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 d’autres personnes plus tard. Les membres de votre groupe peuvent partager leur menu de la semaine, leurs listes d’achat, 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": {
|
||||
|
||||
@@ -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,80 +142,80 @@
|
||||
"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": "Já",
|
||||
"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",
|
||||
"copy": "Copy",
|
||||
"color": "Color",
|
||||
"timestamp": "Timestamp",
|
||||
"transfer": "Færa",
|
||||
"copy": "Afrita",
|
||||
"color": "Litur",
|
||||
"timestamp": "Tímastimpill",
|
||||
"last-made": "Last Made",
|
||||
"learn-more": "Learn More",
|
||||
"learn-more": "Læra meira",
|
||||
"this-feature-is-currently-inactive": "This feature is currently inactive",
|
||||
"clipboard-not-supported": "Clipboard not supported",
|
||||
"copied-to-clipboard": "Copied to clipboard",
|
||||
"your-browser-does-not-support-clipboard": "Your browser does not support clipboard",
|
||||
"copied-items-to-clipboard": "No item copied to clipboard|One item copied to clipboard|Copied {count} items to clipboard",
|
||||
"actions": "Actions",
|
||||
"selected-count": "Selected: {count}",
|
||||
"actions": "Aðgerðir",
|
||||
"selected-count": "Valið: {count}",
|
||||
"export-all": "Export All",
|
||||
"refresh": "Refresh",
|
||||
"upload-file": "Upload File",
|
||||
"created-on-date": "Created on: {0}",
|
||||
"refresh": "Endurhlaða",
|
||||
"upload-file": "Hlaða upp skrá",
|
||||
"created-on-date": "Búið til: {0}",
|
||||
"unsaved-changes": "You have unsaved changes. Do you want to save before leaving? Okay to save, Cancel to discard changes.",
|
||||
"clipboard-copy-failure": "Failed to copy to the clipboard.",
|
||||
"confirm-delete-generic-items": "Are you sure you want to delete the following items?",
|
||||
"organizers": "Organizers",
|
||||
"caution": "Caution",
|
||||
"caution": "Varúð",
|
||||
"show-advanced": "Show Advanced",
|
||||
"add-field": "Add Field",
|
||||
"date-created": "Date Created",
|
||||
@@ -226,19 +226,19 @@
|
||||
"cannot-delete-default-group": "Cannot delete default group",
|
||||
"cannot-delete-group-with-users": "Cannot delete group with users",
|
||||
"confirm-group-deletion": "Confirm Group Deletion",
|
||||
"create-group": "Create Group",
|
||||
"error-updating-group": "Error updating group",
|
||||
"group": "Group",
|
||||
"group-deleted": "Group deleted",
|
||||
"group-deletion-failed": "Group deletion failed",
|
||||
"create-group": "Búa til hóp",
|
||||
"error-updating-group": "Villa í að uppfæra hóp",
|
||||
"group": "Hópur",
|
||||
"group-deleted": "Hóp eytt",
|
||||
"group-deletion-failed": "Villa í að eyða hóp",
|
||||
"group-id-with-value": "Group ID: {groupID}",
|
||||
"group-name": "Group Name",
|
||||
"group-not-found": "Group not found",
|
||||
"group-name": "Nafn hóps",
|
||||
"group-not-found": "Fann ekki hóp",
|
||||
"group-token": "Group Token",
|
||||
"group-with-value": "Group: {groupID}",
|
||||
"groups": "Groups",
|
||||
"groups": "Hópar",
|
||||
"manage-groups": "Manage Groups",
|
||||
"user-group": "User Group",
|
||||
"user-group": "Notendahópur",
|
||||
"user-group-created": "User Group Created",
|
||||
"user-group-creation-failed": "User Group Creation Failed",
|
||||
"settings": {
|
||||
@@ -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": "Sýna næringargildi innihalds",
|
||||
"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",
|
||||
@@ -272,7 +272,7 @@
|
||||
"disable-organizing-recipe-ingredients-by-units-and-food-description": "Hides the Food, Unit, and Amount fields for ingredients and treats ingredients as plain text fields",
|
||||
"general-preferences": "General Preferences",
|
||||
"group-recipe-preferences": "Group Recipe Preferences",
|
||||
"report": "Report",
|
||||
"report": "Skýrsla",
|
||||
"report-with-id": "Report ID: {id}",
|
||||
"group-management": "Group Management",
|
||||
"admin-group-management": "Admin Group Management",
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "mealie",
|
||||
"version": "3.1.0",
|
||||
"version": "3.1.1",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "nuxt dev",
|
||||
|
||||
@@ -4,8 +4,8 @@ import { alert } from "~/composables/use-toast";
|
||||
export default defineNuxtPlugin(() => {
|
||||
const tokenName = useRuntimeConfig().public.AUTH_TOKEN;
|
||||
const axiosInstance = axios.create({
|
||||
// timeout removed to allow backend to handle timeouts
|
||||
baseURL: "/", // api calls already pass with /api
|
||||
timeout: 10000,
|
||||
headers: {
|
||||
Authorization: "Bearer " + useCookie(tokenName).value,
|
||||
},
|
||||
|
||||
@@ -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",
|
||||
@@ -55,11 +55,10 @@ export default defineNuxtPlugin(async (nuxtApp) => {
|
||||
info: theme?.lightInfo ?? "#1976d2",
|
||||
warning: theme?.lightWarning ?? "#FF6D00",
|
||||
error: theme?.lightError ?? "#EF5350",
|
||||
background: "#1E1E1E",
|
||||
},
|
||||
},
|
||||
light: {
|
||||
dark: false,
|
||||
dark: {
|
||||
dark: true,
|
||||
colors: {
|
||||
primary: theme?.darkPrimary ?? "#E58325",
|
||||
accent: theme?.darkAccent ?? "#007A99",
|
||||
@@ -68,6 +67,7 @@ export default defineNuxtPlugin(async (nuxtApp) => {
|
||||
info: theme?.darkInfo ?? "#1976d2",
|
||||
warning: theme?.darkWarning ?? "#FF6D00",
|
||||
error: theme?.darkError ?? "#EF5350",
|
||||
background: "#1E1E1E",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
@@ -4,7 +4,6 @@ type FormFieldType = "text" | "textarea" | "list" | "select" | "object" | "boole
|
||||
|
||||
export interface FormSelectOption {
|
||||
text: string;
|
||||
description?: string;
|
||||
}
|
||||
|
||||
export interface FormField {
|
||||
|
||||
@@ -398,7 +398,7 @@ class AppSettings(AppLoggingSettings):
|
||||
Sending database data may increase accuracy in certain requests,
|
||||
but will incur additional API costs
|
||||
"""
|
||||
OPENAI_REQUEST_TIMEOUT: int = 60
|
||||
OPENAI_REQUEST_TIMEOUT: int = 300
|
||||
"""
|
||||
The number of seconds to wait for an OpenAI request to complete before cancelling the request
|
||||
"""
|
||||
@@ -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
|
||||
|
||||
@@ -7,10 +7,10 @@
|
||||
"recipe-created": "Recept byl vytvořen",
|
||||
"recipe-defaults": {
|
||||
"ingredient-note": "1 hrnek mouky",
|
||||
"step-text": "Kroky receptu stejně jako další pole v receptu podporují markdown syntaxi.\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"
|
||||
},
|
||||
"servings-text": {
|
||||
"makes": "Makes",
|
||||
"makes": "Vytvoří",
|
||||
"serves": "Porce",
|
||||
"serving": "Porce",
|
||||
"servings": "Porcí",
|
||||
@@ -24,17 +24,17 @@
|
||||
"user": {
|
||||
"user-updated": "Uživatel aktualizován",
|
||||
"password-updated": "Heslo aktualizováno",
|
||||
"invalid-current-password": "Nesprávné aktuální heslo",
|
||||
"ldap-update-password-unavailable": "Nelze aktualizovat heslo, uživatel je řízen pomocí LDAP"
|
||||
"invalid-current-password": "Nesprávné současné heslo",
|
||||
"ldap-update-password-unavailable": "Nelze aktualizovat heslo, uživatel je spravován protokolem LDAP"
|
||||
},
|
||||
"group": {
|
||||
"report-deleted": "Report odstraněn."
|
||||
"report-deleted": "Sestava odstraněna."
|
||||
},
|
||||
"exceptions": {
|
||||
"permission_denied": "K provedení této akce nemáte oprávnění",
|
||||
"no-entry-found": "Požadovaný zdroj nebyl nalezen",
|
||||
"permission_denied": "Nemáte oprávnění k provedení této akce",
|
||||
"no-entry-found": "Požadovaný prostředek nebyl nalezen",
|
||||
"integrity-error": "Chyba integrity databáze",
|
||||
"username-conflict-error": "Toto uživatelské jméno je již obsazeno",
|
||||
"username-conflict-error": "Toto uživatelské jméno je již používáno",
|
||||
"email-conflict-error": "Tento e-mail je již používán"
|
||||
},
|
||||
"notifications": {
|
||||
@@ -47,7 +47,7 @@
|
||||
},
|
||||
"datetime": {
|
||||
"year": "rok|roky",
|
||||
"day": "den|dny",
|
||||
"day": "den|dny|dnů",
|
||||
"hour": "hodina|hodiny|hodin",
|
||||
"minute": "minuta|minuty|minut",
|
||||
"second": "sekunda|sekundy|sekund",
|
||||
@@ -56,10 +56,10 @@
|
||||
},
|
||||
"emails": {
|
||||
"password": {
|
||||
"subject": "Mealie Zapomenuté heslo",
|
||||
"subject": "Zapomenuté heslo Mealie",
|
||||
"header_text": "Zapomenuté heslo",
|
||||
"message_top": "Požádali jste o obnovení hesla.",
|
||||
"message_bottom": "Pro obnovení hesla klikněte na tlačítko výše.",
|
||||
"message_bottom": "Hesla obnovíte kliknutím na tlačítko výše.",
|
||||
"button_text": "Obnovit heslo"
|
||||
},
|
||||
"invitation": {
|
||||
@@ -73,7 +73,7 @@
|
||||
"subject": "Zkušební e-mail z Mealie",
|
||||
"header_text": "Zkušební e-mail",
|
||||
"message_top": "Toto je zkušební email.",
|
||||
"message_bottom": "Pro otestování e-mailu klikněte na tlačítko výše.",
|
||||
"message_bottom": "E-mail otestujete kliknutím na tlačítko výše.",
|
||||
"button_text": "Otevřít Mealie"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "žlutá cibule",
|
||||
"plural_name": "yellow onions"
|
||||
"plural_name": "cibule"
|
||||
},
|
||||
"celery": {
|
||||
"aliases": [],
|
||||
@@ -65,7 +65,7 @@
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "jalapeño",
|
||||
"plural_name": "jalapenoes"
|
||||
"plural_name": "chalapeňos"
|
||||
},
|
||||
"avocado": {
|
||||
"aliases": [],
|
||||
@@ -105,7 +105,7 @@
|
||||
},
|
||||
"chile pepper": {
|
||||
"aliases": [
|
||||
"capsicum"
|
||||
"paprička"
|
||||
],
|
||||
"description": "",
|
||||
"name": "chilli paprička",
|
||||
@@ -114,8 +114,8 @@
|
||||
"sweet potato": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "sweet potato",
|
||||
"plural_name": "sweet potatoes"
|
||||
"name": "batát",
|
||||
"plural_name": "batáty"
|
||||
},
|
||||
"broccoli": {
|
||||
"aliases": [],
|
||||
@@ -126,14 +126,14 @@
|
||||
"heart of palm": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "heart of palm",
|
||||
"plural_name": "heart of palms"
|
||||
"name": "palmetto",
|
||||
"plural_name": "palmetta"
|
||||
},
|
||||
"baby green": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "baby green",
|
||||
"plural_name": "baby greens"
|
||||
"name": "zelený list",
|
||||
"plural_name": "zelené listy"
|
||||
},
|
||||
"pumpkin": {
|
||||
"aliases": [],
|
||||
@@ -151,13 +151,13 @@
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "zelí",
|
||||
"plural_name": "cabbages"
|
||||
"plural_name": "hlávkové zelí"
|
||||
},
|
||||
"asparagu": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "asparagu",
|
||||
"plural_name": "asparagus"
|
||||
"name": "chřest",
|
||||
"plural_name": "chřest"
|
||||
},
|
||||
"kale": {
|
||||
"aliases": [],
|
||||
@@ -168,8 +168,8 @@
|
||||
"arugula": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "arugula",
|
||||
"plural_name": "arugulas"
|
||||
"name": "rukola",
|
||||
"plural_name": "rukola"
|
||||
},
|
||||
"leek": {
|
||||
"aliases": [],
|
||||
@@ -192,38 +192,38 @@
|
||||
"butternut squash": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "butternut squash",
|
||||
"plural_name": "butternut squashes"
|
||||
"name": "máslová dýně",
|
||||
"plural_name": "máslové dýně"
|
||||
},
|
||||
"romaine": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "romaine",
|
||||
"plural_name": "romaines"
|
||||
"name": "římský salát",
|
||||
"plural_name": "římský salát"
|
||||
},
|
||||
"beetroot": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "beetroot",
|
||||
"plural_name": "beetroots"
|
||||
"name": "červená řepa",
|
||||
"plural_name": "červené řepy"
|
||||
},
|
||||
"brussels sprout": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "růžičková kapusta",
|
||||
"plural_name": "brussels sprouts"
|
||||
"plural_name": "růžičková kapusta"
|
||||
},
|
||||
"fennel": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "fenykl",
|
||||
"plural_name": "fennels"
|
||||
"plural_name": "fenykly"
|
||||
},
|
||||
"sun dried tomato": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "sun dried tomato",
|
||||
"plural_name": "sun dried tomatoes"
|
||||
"name": "sušené rajče",
|
||||
"plural_name": "sušená rajčata"
|
||||
},
|
||||
"radish": {
|
||||
"aliases": [],
|
||||
@@ -241,88 +241,88 @@
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "artyčok",
|
||||
"plural_name": "artichokes"
|
||||
"plural_name": "artyčoky"
|
||||
},
|
||||
"new potato": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "new potato",
|
||||
"name": "nové brambory",
|
||||
"plural_name": "nové brambory"
|
||||
},
|
||||
"summer squash": {
|
||||
"aliases": [
|
||||
"courgette",
|
||||
"gem squash"
|
||||
"cuketa",
|
||||
"tykev"
|
||||
],
|
||||
"description": "",
|
||||
"name": "summer squash",
|
||||
"plural_name": "summer squashes"
|
||||
"name": "letní dýně",
|
||||
"plural_name": "letní dýně"
|
||||
},
|
||||
"mixed green": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "mixed green",
|
||||
"plural_name": "mixed greens"
|
||||
"name": "míchaná listová zelenina",
|
||||
"plural_name": "míchaná listová zelenina"
|
||||
},
|
||||
"parsnip": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "parsnip",
|
||||
"plural_name": "parsnips"
|
||||
"name": "pastinák",
|
||||
"plural_name": "pastináky"
|
||||
},
|
||||
"baby carrot": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "baby carrot",
|
||||
"plural_name": "baby carrots"
|
||||
"name": "baby karotka",
|
||||
"plural_name": "baby karotky"
|
||||
},
|
||||
"mixed vegetable": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "mixed vegetable",
|
||||
"plural_name": "mixed vegetables"
|
||||
"name": "zeleninová směs",
|
||||
"plural_name": "zeleninové směsi"
|
||||
},
|
||||
"poblano pepper": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "poblano pepper",
|
||||
"plural_name": "poblano peppers"
|
||||
"name": "paprika poblano",
|
||||
"plural_name": "papriky poblano"
|
||||
},
|
||||
"sweet pepper": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "sweet pepper",
|
||||
"plural_name": "sweet peppers"
|
||||
"name": "sladká paprika",
|
||||
"plural_name": "sladké papriky"
|
||||
},
|
||||
"serrano pepper": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "serrano pepper",
|
||||
"plural_name": "serrano peppers"
|
||||
"name": "paprika serrano",
|
||||
"plural_name": "papriky serrano"
|
||||
},
|
||||
"cayenne pepper": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "cayenne pepper",
|
||||
"plural_name": "cayenne peppers"
|
||||
"name": "kajenský pepř",
|
||||
"plural_name": "kajenské pepře"
|
||||
},
|
||||
"green tomato": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "green tomato",
|
||||
"plural_name": "green tomatoes"
|
||||
"name": "zelené rajče",
|
||||
"plural_name": "zelená rajčata"
|
||||
},
|
||||
"watercress": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "watercress",
|
||||
"plural_name": "watercress"
|
||||
"name": "řeřicha",
|
||||
"plural_name": "řerichy"
|
||||
},
|
||||
"iceberg": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "iceberg",
|
||||
"plural_name": "icebergs"
|
||||
"name": "ledový salát",
|
||||
"plural_name": "ledové saláty"
|
||||
},
|
||||
"mashed potato": {
|
||||
"aliases": [],
|
||||
@@ -339,8 +339,8 @@
|
||||
"chard": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "chard",
|
||||
"plural_name": "chards"
|
||||
"name": "mangold",
|
||||
"plural_name": "mangoldy"
|
||||
},
|
||||
"pimiento": {
|
||||
"aliases": [],
|
||||
@@ -351,7 +351,7 @@
|
||||
"spaghetti squash": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "spaghetti squash",
|
||||
"name": "špagetová dýně",
|
||||
"plural_name": "spaghetti squashes"
|
||||
},
|
||||
"butter lettuce": {
|
||||
@@ -363,8 +363,8 @@
|
||||
"hash brown": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "hash brown",
|
||||
"plural_name": "hash browns"
|
||||
"name": "bramborák",
|
||||
"plural_name": "bramboráky"
|
||||
},
|
||||
"napa cabbage": {
|
||||
"aliases": [
|
||||
@@ -377,14 +377,14 @@
|
||||
"celeriac": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "celeriac",
|
||||
"plural_name": "celeriacs"
|
||||
"name": "celer",
|
||||
"plural_name": "celery"
|
||||
},
|
||||
"water chestnut": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "water chestnut",
|
||||
"plural_name": "water chestnuts"
|
||||
"name": "vodní kaštan",
|
||||
"plural_name": "vodní kaštany"
|
||||
},
|
||||
"turnip": {
|
||||
"aliases": [],
|
||||
@@ -401,8 +401,8 @@
|
||||
"bok choy": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "bok choy",
|
||||
"plural_name": "bok choy"
|
||||
"name": "brukev čínská",
|
||||
"plural_name": "brukve čínské"
|
||||
},
|
||||
"okra": {
|
||||
"aliases": [],
|
||||
@@ -413,26 +413,26 @@
|
||||
"acorn squash": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "acorn squash",
|
||||
"plural_name": "acorn squashes"
|
||||
"name": "žaludová dýně",
|
||||
"plural_name": "žaludové dýně"
|
||||
},
|
||||
"corn cob": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "corn cob",
|
||||
"plural_name": "corn cobs"
|
||||
"name": "kukuřičný klas",
|
||||
"plural_name": "kukuřičné klasy"
|
||||
},
|
||||
"radicchio": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "radicchio",
|
||||
"plural_name": "radicchio"
|
||||
"name": "červená čekanka",
|
||||
"plural_name": "červené čekanky"
|
||||
},
|
||||
"pearl onion": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "pearl onion",
|
||||
"plural_name": "pearl onions"
|
||||
"name": "perlová cibulka",
|
||||
"plural_name": "perlové cibulky"
|
||||
},
|
||||
"tenderstem broccoli": {
|
||||
"aliases": [],
|
||||
@@ -443,8 +443,8 @@
|
||||
"plantain": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "plantain",
|
||||
"plural_name": "plantains"
|
||||
"name": "zeleninový banán",
|
||||
"plural_name": "zeleninové banány"
|
||||
},
|
||||
"leaf lettuce": {
|
||||
"aliases": [],
|
||||
@@ -473,28 +473,28 @@
|
||||
"endive": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "endive",
|
||||
"plural_name": "endives"
|
||||
"name": "čekanka",
|
||||
"plural_name": "čekanky"
|
||||
},
|
||||
"habanero pepper": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "habanero pepper",
|
||||
"plural_name": "habanero peppers"
|
||||
"name": "paprička habanero",
|
||||
"plural_name": "papričky habanero"
|
||||
},
|
||||
"corn husk": {
|
||||
"aliases": [
|
||||
"maize"
|
||||
"kukuřice"
|
||||
],
|
||||
"description": "",
|
||||
"name": "corn husk",
|
||||
"plural_name": "corn husks"
|
||||
"name": "kukuřičná slupka",
|
||||
"plural_name": "kukuřičné slupky"
|
||||
},
|
||||
"collard green": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "collard green",
|
||||
"plural_name": "collard greens"
|
||||
"name": "list kapusty",
|
||||
"plural_name": "kapustové listy"
|
||||
},
|
||||
"french-fried onion": {
|
||||
"aliases": [],
|
||||
@@ -719,8 +719,8 @@
|
||||
"pomegranate": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "pomegranate",
|
||||
"plural_name": "pomegranates"
|
||||
"name": "granátové jablko",
|
||||
"plural_name": "granátová jablka"
|
||||
},
|
||||
"watermelon": {
|
||||
"aliases": [],
|
||||
@@ -737,8 +737,8 @@
|
||||
"dried apricot": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "dried apricot",
|
||||
"plural_name": "dried apricots"
|
||||
"name": "sušená meruňka",
|
||||
"plural_name": "sušené meruňky"
|
||||
},
|
||||
"kiwi": {
|
||||
"aliases": [],
|
||||
@@ -749,8 +749,8 @@
|
||||
"grapefruit": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "grapefruit",
|
||||
"plural_name": "grapefruits"
|
||||
"name": "grep",
|
||||
"plural_name": "grepy"
|
||||
},
|
||||
"plum": {
|
||||
"aliases": [],
|
||||
@@ -767,13 +767,13 @@
|
||||
"apricot": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "apricot",
|
||||
"plural_name": "apricots"
|
||||
"name": "meruňka",
|
||||
"plural_name": "meruňky"
|
||||
},
|
||||
"currant": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "currant",
|
||||
"name": "rybíz",
|
||||
"plural_name": "currants"
|
||||
},
|
||||
"mandarin": {
|
||||
@@ -791,8 +791,8 @@
|
||||
"cantaloupe": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "cantaloupe",
|
||||
"plural_name": "cantaloupes"
|
||||
"name": "cukrový meloun",
|
||||
"plural_name": "cukrové melouny"
|
||||
},
|
||||
"sultana": {
|
||||
"aliases": [],
|
||||
@@ -803,20 +803,20 @@
|
||||
"passion fruit": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "passion fruit",
|
||||
"plural_name": "passion fruits"
|
||||
"name": "mučenka",
|
||||
"plural_name": "mučenky"
|
||||
},
|
||||
"papaya": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "papaya",
|
||||
"plural_name": "papayas"
|
||||
"name": "papája",
|
||||
"plural_name": "papáji"
|
||||
},
|
||||
"tamarind": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "tamarind",
|
||||
"plural_name": "tamarinds"
|
||||
"plural_name": "tamarindy"
|
||||
},
|
||||
"nectarine": {
|
||||
"aliases": [],
|
||||
@@ -833,8 +833,8 @@
|
||||
"chestnut": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "chestnut",
|
||||
"plural_name": "chestnuts"
|
||||
"name": "kaštan",
|
||||
"plural_name": "kaštany"
|
||||
},
|
||||
"meyer lemon": {
|
||||
"aliases": [],
|
||||
@@ -851,20 +851,20 @@
|
||||
"dried fruit": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "dried fruit",
|
||||
"plural_name": "dried fruits"
|
||||
"name": "sušené ovoce",
|
||||
"plural_name": "sušené ovoce"
|
||||
},
|
||||
"clementine": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "clementine",
|
||||
"plural_name": "clementines"
|
||||
"name": "mandarinka",
|
||||
"plural_name": "mandarinky"
|
||||
},
|
||||
"persimmon": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "persimmon",
|
||||
"plural_name": "persimmons"
|
||||
"name": "kaki",
|
||||
"plural_name": "kaki"
|
||||
},
|
||||
"melon": {
|
||||
"aliases": [],
|
||||
@@ -899,13 +899,13 @@
|
||||
"guava": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "guava",
|
||||
"name": "guáve",
|
||||
"plural_name": "guavas"
|
||||
},
|
||||
"banana chip": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "banana chip",
|
||||
"name": "sušený banán",
|
||||
"plural_name": "banana chips"
|
||||
},
|
||||
"kumquat": {
|
||||
@@ -7815,7 +7815,7 @@
|
||||
"rice flour": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "rice flour",
|
||||
"name": "rýžová mouka",
|
||||
"plural_name": "rice flours"
|
||||
},
|
||||
"desiccated coconut": {
|
||||
@@ -7827,7 +7827,7 @@
|
||||
"tapioca starch": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "tapioca starch",
|
||||
"name": "tapiokový škrob",
|
||||
"plural_name": "tapioca starches"
|
||||
},
|
||||
"yellow cake mix": {
|
||||
@@ -7839,13 +7839,13 @@
|
||||
"chickpea flour": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "chickpea flour",
|
||||
"name": "cizrnová mouka",
|
||||
"plural_name": "chickpea flours"
|
||||
},
|
||||
"xanthan gum": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "xanthan gum",
|
||||
"name": "xanthanová guma",
|
||||
"plural_name": "xanthan gums"
|
||||
},
|
||||
"oat flour": {
|
||||
@@ -7914,7 +7914,7 @@
|
||||
"jello": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "jello",
|
||||
"name": "želé",
|
||||
"plural_name": "jelloes"
|
||||
},
|
||||
"butterscotch chip": {
|
||||
@@ -7950,13 +7950,13 @@
|
||||
"pectin": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "pectin",
|
||||
"name": "pektin",
|
||||
"plural_name": "pectins"
|
||||
},
|
||||
"rye flour": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "rye flour",
|
||||
"name": "žitná mouka",
|
||||
"plural_name": "rye flours"
|
||||
},
|
||||
"psyllium husk": {
|
||||
@@ -7998,7 +7998,7 @@
|
||||
"marzipan": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "marzipan",
|
||||
"name": "marcipán",
|
||||
"plural_name": "marzipans"
|
||||
},
|
||||
"coffee bean": {
|
||||
|
||||
@@ -517,8 +517,8 @@
|
||||
"broccoli rabe": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "broccoli rabe",
|
||||
"plural_name": "broccoli rabes"
|
||||
"name": "rapini",
|
||||
"plural_name": "rapini"
|
||||
},
|
||||
"rutabaga": {
|
||||
"aliases": [],
|
||||
@@ -648,7 +648,7 @@
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "æble",
|
||||
"plural_name": "apples"
|
||||
"plural_name": "æbler"
|
||||
},
|
||||
"banana": {
|
||||
"aliases": [],
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -455,8 +455,8 @@
|
||||
"pepperoncini": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "pepperoncini",
|
||||
"plural_name": "pepperoncinis"
|
||||
"name": "peperoncini",
|
||||
"plural_name": "peperoncini"
|
||||
},
|
||||
"baby bok choy": {
|
||||
"aliases": [],
|
||||
|
||||
@@ -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": {
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
"bell pepper": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "papryka słodka",
|
||||
"name": "słodka papryka",
|
||||
"plural_name": "słodka papryka"
|
||||
},
|
||||
"carrot": {
|
||||
@@ -2879,14 +2879,14 @@
|
||||
"duck egg": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "duck egg",
|
||||
"plural_name": "duck eggs"
|
||||
"name": "jajo kacze",
|
||||
"plural_name": "jaja kacze"
|
||||
},
|
||||
"salted egg": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "salted egg",
|
||||
"plural_name": "salted eggs"
|
||||
"name": "solone jajko",
|
||||
"plural_name": "solone jajka"
|
||||
},
|
||||
"skyr": {
|
||||
"aliases": [],
|
||||
@@ -3041,7 +3041,7 @@
|
||||
"strawberry milk": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "strawberry milk",
|
||||
"name": "mleko truskawkowe",
|
||||
"plural_name": "strawberry milks"
|
||||
},
|
||||
"ayran": {
|
||||
@@ -3225,8 +3225,8 @@
|
||||
"cashew butter": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "cashew butter",
|
||||
"plural_name": "cashew butter"
|
||||
"name": "krem z nerkowca",
|
||||
"plural_name": "krem z nerkowca"
|
||||
},
|
||||
"tempeh": {
|
||||
"aliases": [],
|
||||
@@ -3243,8 +3243,8 @@
|
||||
"coconut yogurt": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "coconut yogurt",
|
||||
"plural_name": "coconut yogurts"
|
||||
"name": "jogurt kokosowy",
|
||||
"plural_name": "jogurty kokosowe"
|
||||
},
|
||||
"non-dairy yogurt": {
|
||||
"aliases": [],
|
||||
@@ -3267,7 +3267,7 @@
|
||||
"oat milk": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "oat milk",
|
||||
"name": "mleko owsiane",
|
||||
"plural_name": "oat milks"
|
||||
},
|
||||
"nut butter": {
|
||||
@@ -3279,8 +3279,8 @@
|
||||
"rice milk": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "rice milk",
|
||||
"plural_name": "rice milks"
|
||||
"name": "mleko ryżowe",
|
||||
"plural_name": "mleka ryżowe"
|
||||
},
|
||||
"vegan sour cream": {
|
||||
"aliases": [],
|
||||
@@ -3303,13 +3303,13 @@
|
||||
"soy yogurt": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "soy yogurt",
|
||||
"name": "jogurt sojowy",
|
||||
"plural_name": "soy yogurts"
|
||||
},
|
||||
"vegan mozzarella": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "vegan mozzarella",
|
||||
"name": "wegańska mozzarella",
|
||||
"plural_name": "vegan mozzarellas"
|
||||
},
|
||||
"non-dairy creamer": {
|
||||
@@ -3321,19 +3321,19 @@
|
||||
"vegan sausage": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "vegan sausage",
|
||||
"name": "Wegańska kiełbasa",
|
||||
"plural_name": "vegan sausages"
|
||||
},
|
||||
"coconut whipped cream": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "coconut whipped cream",
|
||||
"name": "Kokosowa bita śmietana",
|
||||
"plural_name": "coconut whipped creams"
|
||||
},
|
||||
"smoked tofu": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "smoked tofu",
|
||||
"name": "wędzony tofu",
|
||||
"plural_name": "smoked tofus"
|
||||
},
|
||||
"coconut powder": {
|
||||
@@ -3507,7 +3507,7 @@
|
||||
"vegetarian hot dog": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "vegetarian hot dog",
|
||||
"name": "wegetariański hot dog",
|
||||
"plural_name": "vegetarian hot dogs"
|
||||
},
|
||||
"hazelnut milk": {
|
||||
@@ -3621,7 +3621,7 @@
|
||||
"vegan nutella": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "vegan nutella",
|
||||
"name": "wegańska nutella",
|
||||
"plural_name": "vegan nutellas"
|
||||
},
|
||||
"vegan tzatziki": {
|
||||
@@ -3639,7 +3639,7 @@
|
||||
"cricket flour": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "cricket flour",
|
||||
"name": "",
|
||||
"plural_name": "cricket flours"
|
||||
},
|
||||
"macadamia butter": {
|
||||
@@ -3763,7 +3763,7 @@
|
||||
"ham": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "ham",
|
||||
"name": "szynka",
|
||||
"plural_name": "hams"
|
||||
},
|
||||
"pork chop": {
|
||||
@@ -3793,7 +3793,7 @@
|
||||
"sausage": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "sausage",
|
||||
"name": "kiełbasa",
|
||||
"plural_name": "sausages"
|
||||
},
|
||||
"beef roast": {
|
||||
|
||||
@@ -2643,7 +2643,7 @@
|
||||
"buttermilk": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "buttermilk",
|
||||
"name": "Leite de manteiga",
|
||||
"plural_name": "buttermilks"
|
||||
},
|
||||
"yogurt": {
|
||||
@@ -2688,7 +2688,7 @@
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "leite condensado",
|
||||
"plural_name": "condensed milks"
|
||||
"plural_name": "Leite condensado"
|
||||
},
|
||||
"half and half": {
|
||||
"aliases": [],
|
||||
@@ -5001,7 +5001,7 @@
|
||||
"smoked trout": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "truta defumada",
|
||||
"name": "Truta defumada",
|
||||
"plural_name": "trutas defumadas"
|
||||
},
|
||||
"caviar": {
|
||||
@@ -5515,7 +5515,7 @@
|
||||
"crab": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "caranguejo",
|
||||
"name": "Caranguejo",
|
||||
"plural_name": "crabs"
|
||||
},
|
||||
"scallop": {
|
||||
@@ -8136,8 +8136,8 @@
|
||||
"coconut chip": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "chip de coco",
|
||||
"plural_name": "chips de coco"
|
||||
"name": "Chip de coco",
|
||||
"plural_name": "Chips de coco"
|
||||
},
|
||||
"quinoa flour": {
|
||||
"aliases": [],
|
||||
@@ -8998,7 +8998,7 @@
|
||||
"coconut rice": {
|
||||
"aliases": [],
|
||||
"description": "",
|
||||
"name": "arroz de coco",
|
||||
"name": "Arroz de coco",
|
||||
"plural_name": "arrozes de coco"
|
||||
},
|
||||
"amaranth flake": {
|
||||
|
||||
@@ -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": "avokádo",
|
||||
"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": [],
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[
|
||||
{
|
||||
"name": "Ovoce a Zelenina"
|
||||
"name": "Ovoce a zelenina"
|
||||
},
|
||||
{
|
||||
"name": "Zrna"
|
||||
@@ -21,7 +21,7 @@
|
||||
"name": "Nápoje"
|
||||
},
|
||||
{
|
||||
"name": "Pečené jídlo"
|
||||
"name": "Pečené pokrmy"
|
||||
},
|
||||
{
|
||||
"name": "Konzervované jídlo"
|
||||
@@ -39,13 +39,13 @@
|
||||
"name": "Mražené Potraviny"
|
||||
},
|
||||
{
|
||||
"name": "Zdravá Strava"
|
||||
"name": "Zdravá strava"
|
||||
},
|
||||
{
|
||||
"name": "Domácí"
|
||||
},
|
||||
{
|
||||
"name": "Masné Výrobky"
|
||||
"name": "Masné výrobky"
|
||||
},
|
||||
{
|
||||
"name": "Svačiny"
|
||||
|
||||
@@ -18,10 +18,10 @@
|
||||
"abbreviation": "š"
|
||||
},
|
||||
"fluid-ounce": {
|
||||
"name": "dutá unce",
|
||||
"name": "tekutá unce",
|
||||
"plural_name": "tekuté unce",
|
||||
"description": "",
|
||||
"abbreviation": "fl oz"
|
||||
"abbreviation": "tek. unce"
|
||||
},
|
||||
"pint": {
|
||||
"name": "pinta",
|
||||
@@ -64,7 +64,7 @@
|
||||
"name": "unce",
|
||||
"plural_name": "uncí",
|
||||
"description": "",
|
||||
"abbreviation": "oz"
|
||||
"abbreviation": "unce"
|
||||
},
|
||||
"gram": {
|
||||
"name": "gram",
|
||||
@@ -103,8 +103,8 @@
|
||||
"abbreviation": ""
|
||||
},
|
||||
"head": {
|
||||
"name": "hlava",
|
||||
"plural_name": "hlav",
|
||||
"name": "hlávka",
|
||||
"plural_name": "hlávky",
|
||||
"description": "",
|
||||
"abbreviation": ""
|
||||
},
|
||||
@@ -115,7 +115,7 @@
|
||||
"abbreviation": ""
|
||||
},
|
||||
"can": {
|
||||
"name": "plechovka",
|
||||
"name": "konzerva",
|
||||
"plural_name": "konzerv",
|
||||
"description": "",
|
||||
"abbreviation": ""
|
||||
|
||||
@@ -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": ""
|
||||
},
|
||||
|
||||
@@ -135,9 +135,7 @@ class OpenAIService(BaseService):
|
||||
)
|
||||
return "\n".join(content_parts)
|
||||
|
||||
async def _get_raw_response(
|
||||
self, prompt: str, content: list[dict], temperature=0.2, force_json_response=True
|
||||
) -> ChatCompletion:
|
||||
async def _get_raw_response(self, prompt: str, content: list[dict], force_json_response=True) -> ChatCompletion:
|
||||
client = self.get_client()
|
||||
return await client.chat.completions.create(
|
||||
messages=[
|
||||
@@ -151,7 +149,6 @@ class OpenAIService(BaseService):
|
||||
},
|
||||
],
|
||||
model=self.model,
|
||||
temperature=temperature,
|
||||
response_format={"type": "json_object"} if force_json_response else NOT_GIVEN,
|
||||
)
|
||||
|
||||
@@ -161,7 +158,6 @@ class OpenAIService(BaseService):
|
||||
message: str,
|
||||
*,
|
||||
images: list[OpenAIImageBase] | None = None,
|
||||
temperature=0.2,
|
||||
force_json_response=True,
|
||||
) -> str | None:
|
||||
"""Send data to OpenAI and return the response message content"""
|
||||
@@ -174,7 +170,7 @@ class OpenAIService(BaseService):
|
||||
for image in images or []:
|
||||
user_messages.append(image.build_message())
|
||||
|
||||
response = await self._get_raw_response(prompt, user_messages, temperature, force_json_response)
|
||||
response = await self._get_raw_response(prompt, user_messages, force_json_response)
|
||||
if not response.choices:
|
||||
return None
|
||||
return response.choices[0].message.content
|
||||
|
||||
52
poetry.lock
generated
52
poetry.lock
generated
@@ -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.2"
|
||||
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.2-py3-none-any.whl", hash = "sha256:54d3457b2c8d7303a1bc002a058de46bdd8f37a8117751c7cf4ed4438051f151"},
|
||||
{file = "openai-1.100.2.tar.gz", hash = "sha256:787b4c3c8a65895182c58c424f790c25c790cc9a0330e34f73d55b6ee5a00e32"},
|
||||
{file = "openai-1.101.0-py3-none-any.whl", hash = "sha256:6539a446cce154f8d9fb42757acdfd3ed9357ab0d34fcac11096c461da87133b"},
|
||||
{file = "openai-1.101.0.tar.gz", hash = "sha256:29f56df2236069686e64aca0e13c24a4ec310545afb25ef7da2ab1a18523f22d"},
|
||||
]
|
||||
|
||||
[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]]
|
||||
|
||||
@@ -3,7 +3,7 @@ authors = ["Hayden <hay-kot@pm.me>"]
|
||||
description = "A Recipe Manager"
|
||||
license = "AGPL"
|
||||
name = "mealie"
|
||||
version = "3.1.0"
|
||||
version = "3.1.1"
|
||||
include = [
|
||||
# Explicit include to override .gitignore when packaging the frontend
|
||||
{ path = "mealie/frontend/**/*", format = ["sdist", "wheel"] }
|
||||
|
||||
Reference in New Issue
Block a user