Merge branch 'mealie-next' into fix/not-found-when-recipe-image-is-changed

This commit is contained in:
Michael Genson 2025-08-07 11:43:03 -05:00 committed by GitHub
commit d5bb85aaa6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
27 changed files with 744 additions and 734 deletions

View file

@ -12,7 +12,7 @@ repos:
exclude: ^tests/data/
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.12.5
rev: v0.12.7
hooks:
- id: ruff
- id: ruff-format

View file

@ -1,5 +1,8 @@
# Installing with PostgreSQL
!!! Warning
When upgrading postgresql major versions, manual steps are required [Postgres#37](https://github.com/docker-library/postgres/issues/37).
PostgreSQL might be considered if you need to support many concurrent users. In addition, some features are only enabled on PostgreSQL, such as fuzzy search.
**For Environment Variable Configuration, see** [Backend Configuration](./backend-config.md)
@ -38,7 +41,7 @@ services:
postgres:
container_name: postgres
image: postgres:15
image: postgres:17
restart: always
volumes:
- mealie-pgdata:/var/lib/postgresql/data
@ -46,6 +49,7 @@ services:
POSTGRES_PASSWORD: mealie
POSTGRES_USER: mealie
PGUSER: mealie
POSTGRES_DB: mealie
healthcheck:
test: ["CMD", "pg_isready"]
interval: 30s

View file

@ -69,7 +69,7 @@ export const LOCALES = [
{
name: "Português (Portuguese)",
value: "pt-PT",
progress: 37,
progress: 38,
dir: "ltr",
},
{
@ -81,7 +81,7 @@ export const LOCALES = [
{
name: "Polski (Polish)",
value: "pl-PL",
progress: 37,
progress: 39,
dir: "ltr",
},
{
@ -147,7 +147,7 @@ export const LOCALES = [
{
name: "עברית (Hebrew)",
value: "he-IL",
progress: 67,
progress: 73,
dir: "rtl",
},
{
@ -159,7 +159,7 @@ export const LOCALES = [
{
name: "Français (French)",
value: "fr-FR",
progress: 49,
progress: 50,
dir: "ltr",
},
{
@ -189,7 +189,7 @@ export const LOCALES = [
{
name: "Español (Spanish)",
value: "es-ES",
progress: 40,
progress: 41,
dir: "ltr",
},
{
@ -207,25 +207,25 @@ export const LOCALES = [
{
name: "Ελληνικά (Greek)",
value: "el-GR",
progress: 38,
progress: 39,
dir: "ltr",
},
{
name: "Deutsch (German)",
value: "de-DE",
progress: 64,
progress: 65,
dir: "ltr",
},
{
name: "Dansk (Danish)",
value: "da-DK",
progress: 38,
progress: 39,
dir: "ltr",
},
{
name: "Čeština (Czech)",
value: "cs-CZ",
progress: 39,
progress: 40,
dir: "ltr",
},
{

View file

@ -587,7 +587,7 @@
"api-extras-description": "Rezepte-Extras sind ein Hauptmerkmal der Mealie API. Sie ermöglichen es dir, benutzerdefinierte JSON Key-Value-Paare zu einem Rezept zu erstellen, um Drittanbieter-Anwendungen zu steuern. Du kannst diese dazu verwenden, um Automatisierungen auszulösen oder benutzerdefinierte Nachrichten an bestimmte Geräte zu senden.",
"message-key": "Nachrichten-Schlüssel",
"parse": "Parsen",
"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": "Es scheint als ob deine Zutaten noch nicht eingelesen wurden. Klick unten auf \"{parse}\" um deine Zutaten einzulesen.",
"attach-images-hint": "Bilder durch Ziehen & Ablegen in den Editor hinzufügen",
"drop-image": "Bild hier ablegen",
"enable-ingredient-amounts-to-use-this-feature": "Aktiviere Zutatenmengen, um diese Funktion zu nutzen",

View file

@ -587,7 +587,7 @@
"api-extras-description": "Los extras de las recetas son una característica clave de la API de Mealie. Permiten crear pares json clave/valor personalizados dentro de una receta para acceder desde aplicaciones de terceros. Puede utilizar estas claves para almacenar información, para activar la automatización o mensajes personalizados para transmitir al dispositivo deseado.",
"message-key": "Clave de mensaje",
"parse": "Analizar",
"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": "Parece que tus ingredientes no han sido analizados aún. Haz clic en el botón \"{parse}\" de abajo para analizarlos y convertirlos en alimentos estructurados.",
"attach-images-hint": "Adjuntar imágenes arrastrando y soltando en el editor",
"drop-image": "Soltar imagen",
"enable-ingredient-amounts-to-use-this-feature": "Habilitar la cantidad de ingredientes para usar esta característica",

View file

@ -113,7 +113,7 @@
"get": "Envoyer",
"home": "Accueil",
"image": "Image",
"image-upload-failed": "Le téléchargement de limage a échoué",
"image-upload-failed": "Le téléversement de limage a échoué",
"import": "Importer",
"json": "JSON",
"keyword": "Mot-clé",
@ -207,7 +207,7 @@
"selected-count": "Sélectionné : {count}",
"export-all": "Exporter tout",
"refresh": "Actualiser",
"upload-file": "Transférer un fichier",
"upload-file": "Téléverser un fichier",
"created-on-date": "Créé le {0}",
"unsaved-changes": "Vous avez des modifications non enregistrées. Voulez-vous enregistrer avant de partir? OK pour enregistrer, Annuler pour ignorer les modifications.",
"clipboard-copy-failure": "Échec de la copie dans le presse-papiers.",
@ -472,7 +472,7 @@
"comment": "Commentaire",
"comments": "Commentaires",
"delete-confirmation": "Voulez-vous vraiment supprimer cette recette?",
"admin-delete-confirmation": "You're about to delete a recipe that isn't yours using admin permissions. Are you sure?",
"admin-delete-confirmation": "Vous êtes sur le point de supprimer une recette qui n'est pas la vôtre en utilisant les permissions d'administrateur. Êtes-vous sûr(e) ?",
"delete-recipe": "Supprimer la recette",
"description": "Description",
"disable-amount": "Désactiver les quantités des ingrédients",
@ -587,7 +587,7 @@
"api-extras-description": "Les suppléments des recettes sont une fonctionnalité clé de lAPI Mealie. Ils permettent de créer des paires JSON clé/valeur personnalisées dans une recette, qui peuvent être référencées depuis des applications tierces. Ces clés peuvent être utilisées par exemple pour déclencher des tâches automatisées ou des messages personnalisés à transmettre à lappareil souhaité.",
"message-key": "Clé de message",
"parse": "Analyser",
"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": "Il semble que vos ingrédients ne soient pas encore analysés. Cliquez sur le bouton \"{parse}\" ci-dessous pour analyser vos ingrédients en aliments structurés.",
"attach-images-hint": "Ajouter des images en les glissant-déposant dans l'éditeur",
"drop-image": "Déposer l'image",
"enable-ingredient-amounts-to-use-this-feature": "Activez les quantités d'ingrédients pour utiliser cette fonctionnalité",
@ -664,8 +664,8 @@
"no-unit": "Pas d'unité",
"missing-unit": "Créer une unité manquante : {unit}",
"missing-food": "Créer un aliment manquant : {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": "Cette unité n'a pas pu être analysée automatiquement",
"this-food-could-not-be-parsed-automatically": "Cet aliment n'a pas pu être analysé automatiquement",
"no-food": "Aucun aliment"
},
"reset-servings-count": "Réinitialiser le nombre de portions",

View file

@ -665,7 +665,7 @@
"missing-unit": "Opprett manglende enhet: {unit}",
"missing-food": "Opprett manglende mat: {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-food-could-not-be-parsed-automatically": "Denne maten kunne ikke leses automatisk",
"no-food": "Ingen matvarer"
},
"reset-servings-count": "Nullstill antall porsjoner",

View file

@ -472,7 +472,7 @@
"comment": "Komentarz",
"comments": "Komentarze",
"delete-confirmation": "Czy jesteś pewien, że chcesz usunąć ten przepis?",
"admin-delete-confirmation": "You're about to delete a recipe that isn't yours using admin permissions. Are you sure?",
"admin-delete-confirmation": "Zamierzasz usunąć przepis, który nie należy do Ciebie, używając uprawnień administratora. Czy jesteś pewien?",
"delete-recipe": "Usuń przepis",
"description": "Opis",
"disable-amount": "Wyłącz ilości składników",
@ -580,14 +580,14 @@
"made-this": "Ugotowałem to",
"how-did-it-turn-out": "Jak się to udało?",
"user-made-this": "{user} ugotował(a) to",
"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": "Dodano do osi czasu",
"failed-to-add-to-timeline": "Nie udało się dodać do osi czasu",
"failed-to-update-recipe": "Nie udało się zaktualizować przepisu",
"added-to-timeline-but-failed-to-add-image": "Dodano do osi czasu, ale nie udało się dodać obrazu",
"api-extras-description": "Dodatki w przepisach są kluczową cechą API Mealie. Pozwalają na tworzenie niestandardowych par kluczy/wartości JSON w przepisie do odwoływania się przez zewnętrzne aplikacje. Możesz użyć tych kluczy do wyzwalania automatyzacji lub przekazywania niestandardowych wiadomości do twoich wybranych urządzeń.",
"message-key": "Klucz Wiadomości",
"parse": "Analizuj",
"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": "Wygląda na to, że Twoje składniki nie zostały jeszcze przeanalizowane. Kliknij przycisk \"{parse}\" poniżej, aby przetworzyć składniki w ustrukturyzowane jedzenie.",
"attach-images-hint": "Dołącz obrazy przeciągając i upuszczając je do edytora",
"drop-image": "Upuść zdjęcie",
"enable-ingredient-amounts-to-use-this-feature": "Włącz ilości składników, aby użyć tej funkcji",
@ -608,7 +608,7 @@
"create-from-images": "Utwórz przepis z obrazów",
"should-translate-description": "Przetłumacz przepis na mój język",
"please-wait-image-procesing": "Proszę czekać, obraz jest przetwarzany. To może chwilę potrwać.",
"please-wait-images-processing": "Please wait, the images are processing. This may take some time.",
"please-wait-images-processing": "Proszę czekać, obrazy są przetwarzane. To może chwilę potrwać.",
"bulk-url-import": "Import Zbiorczy z URL",
"debug-scraper": "Debuguj Scraper",
"create-a-recipe-by-providing-the-name-all-recipes-must-have-unique-names": "Utwórz przepis, podając nazwę. Wszystkie przepisy muszą mieć unikalne nazwy.",
@ -664,15 +664,15 @@
"no-unit": "Brak jednostki",
"missing-unit": "Utwórz brakującą jednostkę: {unit}",
"missing-food": "Utwórz brakującą potrawę: {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": "Nie można przetworzyć tej jednostki automatycznie",
"this-food-could-not-be-parsed-automatically": "Nie można przetworzyć tego jedzenia automatycznie",
"no-food": "Brak potrawy"
},
"reset-servings-count": "Zresetuj liczbę porcji",
"not-linked-ingredients": "Dodatkowe składniki",
"upload-another-image": "Upload another image",
"upload-images": "Upload images",
"upload-more-images": "Upload more images"
"upload-another-image": "Prześlij kolejny obraz",
"upload-images": "Prześlij obraz",
"upload-more-images": "Prześlij więcej obrazów"
},
"recipe-finder": {
"recipe-finder": "Wyszukiwarka przepisów",

View file

@ -472,7 +472,7 @@
"comment": "Комментарий",
"comments": "Комментарии",
"delete-confirmation": "Вы уверены, что хотите удалить этот рецепт?",
"admin-delete-confirmation": "You're about to delete a recipe that isn't yours using admin permissions. Are you sure?",
"admin-delete-confirmation": "Вы собираетесь удалить рецепт созданный не вами используя права администратора. Вы уверены?",
"delete-recipe": "Удалить рецепт",
"description": "Описание",
"disable-amount": "Не показывать кол-во ингредиентов",
@ -580,14 +580,14 @@
"made-this": "Я приготовил это",
"how-did-it-turn-out": "Что получилось?",
"user-made-this": "{user} приготовил это",
"added-to-timeline": "Added to timeline",
"failed-to-add-to-timeline": "Failed to add to timeline",
"added-to-timeline": "Добавлено в ленту",
"failed-to-add-to-timeline": "Не удалось добавить в ленту",
"failed-to-update-recipe": "Не удалось обновить рецепт",
"added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"added-to-timeline-but-failed-to-add-image": "Добавлено в ленту, но не удалось загрузить изображение",
"api-extras-description": "Дополнения к рецептам являются ключевым элементом Mealie API. Они позволяют создавать пользовательские пары json ключ/значение в рецепте для ссылания на другие приложения. Вы можете использовать эти ключи, чтобы сохранить нужную информацию, например, для автоматизаций или уведомлений на ваши устройства.",
"message-key": "Ключ сообщения",
"parse": "Обработать",
"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": "Похоже, ваши ингредиенты не разобраны. Нажмите кнопку \"{parse}\" чтобы разобрать ваши ингредиенты в структурированный список.",
"attach-images-hint": "Прикрепляйте изображения, перетаскивая их в редактор",
"drop-image": "Перетащите изображение",
"enable-ingredient-amounts-to-use-this-feature": "Включите количество ингредиентов для использования этой функции",
@ -604,8 +604,8 @@
"import-with-zip": "Импорт из .zip",
"create-recipe-from-an-image": "Создать рецепт из изображения",
"create-recipe-from-an-image-description": "Создайте рецепт, загрузив изображение. Mealie попытается извлечь текст из изображения с помощью ИИ и создать рецепт из него.",
"crop-and-rotate-the-image": "Crop and rotate the image so that only the text is visible, and it's in the correct orientation.",
"create-from-images": "Create from Images",
"crop-and-rotate-the-image": "Обрежьте и поверните изображение так, чтобы виден был только текст в нужной ориентации.",
"create-from-images": "Создать из изображений",
"should-translate-description": "Перевести рецепт на мой язык",
"please-wait-image-procesing": "Подождите, идет обработка изображения.",
"please-wait-images-processing": "Пожалуйста, подождите, изображения обрабатываются. Это может занять некоторое время.",
@ -640,7 +640,7 @@
"recipe-debugger": "Отладчик рецептов",
"recipe-debugger-description": "Вставьте сюда URL рецепта, который вы хотите отладить. Рецепт по указанному URL-адресу будет отсканирован и результаты сканирования будут указаны ниже. Если вы не видите никаких возвращенных данных, то сайт, который вы пытаетесь обработать, не поддерживается Mealie или библиотекой сканера.",
"use-openai": "Использовать OpenAI",
"recipe-debugger-use-openai-description": "Use OpenAI to parse the results instead of relying on the scraper library. When creating a recipe via URL, this is done automatically if the scraper library fails, but you may test it manually here.",
"recipe-debugger-use-openai-description": "Использовать OpenAI для разбора результатов вместо использования скрейпера. При создании рецепта по URL это делается автоматически, если скрейпер не справляется, но вы можете протестировать его здесь вручную.",
"debug": "Отладка",
"tree-view": "В виде дерева",
"recipe-servings": "Порции",
@ -672,7 +672,7 @@
"not-linked-ingredients": "Дополнительные ингредиенты",
"upload-another-image": "Upload another image",
"upload-images": "Загрузить изображения",
"upload-more-images": "Upload more images"
"upload-more-images": "Загрузить больше изображений"
},
"recipe-finder": {
"recipe-finder": "Поиск рецептов",
@ -1313,12 +1313,12 @@
"account-summary-description": "Вот сводка информации о вашей группе.",
"group-statistics": "Статистика группы",
"group-statistics-description": "Статистика вашей группы дает некоторую информацию о том, как вы используете Mealie.",
"household-statistics": "Household Statistics",
"household-statistics": "Статистика домохозяйства",
"household-statistics-description": "Your Household Statistics provide some insight how you're using Mealie.",
"storage-capacity": "Емкость хранилища",
"storage-capacity-description": "Указанный размер хранилища - это подсчёт размера изображений и приложений рецептов загруженных вами.",
"personal": "Личное",
"personal-description": "These are settings that are personal to you. Changes here won't affect other users.",
"personal-description": "Это персональные настройки. Изменения здесь не повлияют на других пользователей.",
"user-settings": "Настройки пользователя",
"user-settings-description": "Управляйте вашими настройками, меняйте пароль и обновляйте адрес электронной почты.",
"api-tokens-description": "Управляйте вашими API-токенами для доступа сторонних приложений.",

View file

@ -437,9 +437,9 @@
"upload-individual-zip-file": "Nahrať súbor .zip exportovaný z inej Mealie inštalácie.",
"url-form-hint": "Okopírujte a zložte odkaz z vašej obľúbenej webstránky",
"view-scraped-data": "Náhľad získaných údajov",
"trim-whitespace-description": "Vymažte medzery a prázdne riadky na začiatku a na konci",
"trim-prefix-description": "Vymažte prvé písmeno z každého riadku",
"split-by-numbered-line-description": "Pokus rozdeliť odsek pomocou výrazu '1)' alebo '1.'",
"trim-whitespace-description": "Vymazať medzery a prázdne riadky na začiatku a na konci",
"trim-prefix-description": "Vymazať prvé písmeno z každého riadku",
"split-by-numbered-line-description": "Pokúsiť sa rozdeliť odsek pomocou vzoru '1)' alebo '1.'",
"import-by-url": "Importovať recept z URL",
"create-manually": "Vytvoriť recept manuálne",
"make-recipe-image": "Nastaviť ako obrázok receptu"
@ -579,10 +579,10 @@
"open-timeline": "Otvoriť časovú os",
"made-this": "Toto som uvaril",
"how-did-it-turn-out": "Ako to dopadlo?",
"user-made-this": "{user} toto uvaril/-a",
"added-to-timeline": "Added to timeline",
"failed-to-add-to-timeline": "Failed to add to timeline",
"failed-to-update-recipe": "Failed to update recipe",
"user-made-this": "{user} toto uvaril(a)",
"added-to-timeline": "Pridané na časovú os",
"failed-to-add-to-timeline": "Pridanie na časovú os skončilo chybou",
"failed-to-update-recipe": "Recept sa nepodarilo aktualizovať",
"added-to-timeline-but-failed-to-add-image": "Added to timeline, but failed to add image",
"api-extras-description": "API dolnky receptov sú kľúčovou funkcionalitou Mealie API. Umožňujú používateľom vytvárať vlastné JSON páry kľúč/hodnota v rámci receptu, a využiť v aplikáciách tretích strán. Údaje uložené pod jednotlivými kľúčmi je možné využiť napríklad ako spúšťač automatizovaných procesov, či pri zasielaní vlastných správ do vami zvolených zariadení.",
"message-key": "Kľúč správy",
@ -605,7 +605,7 @@
"create-recipe-from-an-image": "Vytvoriť recept z obrázka",
"create-recipe-from-an-image-description": "Vytvoriť recept nahraním fotografie jedla. Mealie sa pokúsi previesť obrázok na text pomocou AI a vytvorí k nemu recept.",
"crop-and-rotate-the-image": "Orežte a otočte obrázok tak, aby bol viditeľný iba text a aby mal správnu orientáciu.",
"create-from-images": "Create from Images",
"create-from-images": "Vytvoriť z obrázka",
"should-translate-description": "Preložiť recept do môjho jazyka",
"please-wait-image-procesing": "Čakajte, prosím. Obrázok sa spracováva. Môže to chvíľku trvať.",
"please-wait-images-processing": "Please wait, the images are processing. This may take some time.",
@ -614,12 +614,12 @@
"create-a-recipe-by-providing-the-name-all-recipes-must-have-unique-names": "Vytvoriť recept zadaním názvu. Všetky recepty musia mať jedinečné názvy.",
"new-recipe-names-must-be-unique": "Názvy nových receptov musia byť jedinečné",
"scrape-recipe": "Scrapovať recept",
"scrape-recipe-description": "Stiahne recept zo zadaného url odkazu. Zadajte url stránky, z ktorej chcete stiahnuť recept, a Mealie sa pokúsi recept stiahnuť a vložiť do vašej zbierky.",
"scrape-recipe-description": "Stiahne recept zo zadanej adresy URL. Zadajte URL adresu stránky, z ktorej chcete stiahnuť recept, a Mealie sa pokúsi recept stiahnuť a vložiť do vašej zbierky.",
"scrape-recipe-have-a-lot-of-recipes": "Máte množstvo receptov, ktoré by ste chceli naraz zoscrapovať?",
"scrape-recipe-suggest-bulk-importer": "Vyskúšajte hromadný importér",
"scrape-recipe-have-raw-html-or-json-data": "Máte surové údaje HTML alebo JSON?",
"scrape-recipe-you-can-import-from-raw-data-directly": "Môžete importovať priamo nespracované údaje",
"import-original-keywords-as-tags": "Importuj pôvodné kľúčové slová ako tagy",
"import-original-keywords-as-tags": "Importovať pôvodné kľúčové slová ako štítky",
"stay-in-edit-mode": "Zostať v režime editovania",
"import-from-zip": "Importovať zo Zip-súboru",
"import-from-zip-description": "Importovať recept exportovaný z inej Mealie inštalácie.",
@ -632,7 +632,7 @@
"upload-a-png-image-from-a-recipe-book": "Nahraj png-obrázok z kuchárky",
"recipe-bulk-importer": "Hromadný importér receptov",
"recipe-bulk-importer-description": "Hromadný importér receptov umožňuje importovať veľké množstvo receptov prechádzaním stránok na backende, pričom celá úloha beží na pozadí. Toto je užitočné napríklad pri počiatočnej migrácii na Mealie, alebo ak chcete importovať veľké množstvo receptov naraz.",
"set-categories-and-tags": "Zadaj kategórie a tagy",
"set-categories-and-tags": "Nastavte kategórie a štítky",
"bulk-imports": "Hromadné importy",
"bulk-import-process-has-started": "Hromadný import bol spustený",
"bulk-import-process-has-failed": "Hromadný import zlyhal",
@ -671,8 +671,8 @@
"reset-servings-count": "Resetovať počet porcií",
"not-linked-ingredients": "Ďalšie suroviny",
"upload-another-image": "Upload another image",
"upload-images": "Upload images",
"upload-more-images": "Upload more images"
"upload-images": "Nahrať obrázky",
"upload-more-images": "Nahrať ďalšie obrázky"
},
"recipe-finder": {
"recipe-finder": "Hľadač receptov",
@ -720,7 +720,7 @@
"backup-deleted": "Záloha bola odstránená",
"restore-success": "Obnovenie bolo úspešné",
"restore-fail": "Obnovenie zlyhalo. Ďalšie podrobnosti nájdete v denníkoch servera",
"backup-tag": "Označenie zálohy",
"backup-tag": "Štítok zálohy",
"create-heading": "Vytvoriť zálohu",
"delete-backup": "Odstrániť zálohu",
"error-creating-backup-see-log-file": "Vytvorenie zálohy zlyhalo. Pozrite prosím súbor záznamu",
@ -789,8 +789,8 @@
"theme-saved": "Motív bol uložený",
"theme-updated": "Motív bol aktualizovaný",
"warning": "Upozornenie",
"light-mode": "Svetlá téma",
"dark-mode": "Tmavá téma"
"light-mode": "Svetlý motív",
"dark-mode": "Tmavý motív"
},
"token": {
"active-tokens": "Aktívne kľúče",
@ -1115,10 +1115,10 @@
"recipe-columns": "Stĺpce receptu",
"data-exports-description": "V tejto sekcii sa nachádzajú odkazy na aktuálne dostupné exporty pripravené na stiahnutie. Platnosť týchto odkazov je však časovo obmedzená, v prípade záujmu na to prosím nezabudnite.",
"data-exports": "Export dát",
"tag": "Tag",
"tag": "Štítok",
"categorize": "Kategorizovať",
"update-settings": "Aktualizovať nastavenia",
"tag-recipes": "Tagovať recepty",
"tag-recipes": "Oštítkovať recepty",
"categorize-recipes": "Kategorizovať recepty",
"export-recipes": "Exportovať recepty",
"delete-recipes": "Odstrániť recepty",

View file

@ -136,6 +136,30 @@
v-if="!edit"
class="py-2"
>
<!-- Create Item -->
<div v-if="createEditorOpen">
<ShoppingListItemEditor
v-model="createListItemData"
class="my-4"
:labels="allLabels || []"
:units="allUnits || []"
:foods="allFoods || []"
:allow-delete="false"
@delete="createEditorOpen = false"
@cancel="createEditorOpen = false"
@save="createListItem"
/>
</div>
<div v-else class="d-flex justify-end">
<BaseButton
create
@click="createEditorOpen = true"
>
{{ $t('general.add') }}
</BaseButton>
</div>
<!-- View without Label grouping -->
<div v-if="!preferences.viewByLabel">
<VueDraggable
v-model="listItems.unchecked"
@ -222,29 +246,6 @@
</div>
</div>
<!-- Create Item -->
<div v-if="createEditorOpen">
<ShoppingListItemEditor
v-model="createListItemData"
class="my-4"
:labels="allLabels || []"
:units="allUnits || []"
:foods="allFoods || []"
:allow-delete="false"
@delete="createEditorOpen = false"
@cancel="createEditorOpen = false"
@save="createListItem"
/>
</div>
<div v-else class="d-flex justify-end">
<BaseButton
create
@click="createEditorOpen = true"
>
{{ $t('general.add') }}
</BaseButton>
</div>
<!-- Reorder Labels -->
<BaseDialog
v-model="reorderLabelsDialog"

View file

@ -10,8 +10,8 @@
"step-text": "Шаги рецепта, как и другие поля на странице рецепта, поддерживают синтаксис Markdown.\n\n**Добавить ссылку**\n\n[Моя Ссылка](https://demo.mealie.io)\n"
},
"servings-text": {
"makes": "Makes",
"serves": "Serves",
"makes": "Получается",
"serves": "Порций",
"serving": "Порция",
"servings": "Порции",
"yield": "Выход",

View file

@ -4,7 +4,7 @@
},
"recipe": {
"unique-name-error": "Názov receptu musí byť unikátny",
"recipe-created": "Recept bol vytvorený",
"recipe-created": "Vytvorený recept",
"recipe-defaults": {
"ingredient-note": "1 šálka múky",
"step-text": "Kroky receptu, ako aj ďalšie polia na stránke receptu podporujú markdown syntax.\n\n**Pridanie odkazu**\n\n[Môj odkaz](https://demo.mealie.io)\n"

View file

@ -4255,14 +4255,14 @@
"country ham": {
"aliases": [],
"description": "",
"name": "country ham",
"plural_name": "country hams"
"name": "Landschinken",
"plural_name": "Landschinken"
},
"boneless ham": {
"aliases": [],
"description": "",
"name": "boneless ham",
"plural_name": "boneless hams"
"name": "Entbeinter Schinken",
"plural_name": "Entbeinter Schinken"
},
"mortadella": {
"aliases": [],
@ -4297,8 +4297,8 @@
"smoked pork chop": {
"aliases": [],
"description": "",
"name": "smoked pork chop",
"plural_name": "smoked pork chops"
"name": "Geräuchertes Schweinekotelett",
"plural_name": "Geräucherte Schweinekoteletten"
},
"lamb neck": {
"aliases": [],
@ -4333,8 +4333,8 @@
"steak tip": {
"aliases": [],
"description": "",
"name": "steak tip",
"plural_name": "steak tips"
"name": "Steak Spitze",
"plural_name": "Steak Spitzen"
},
"veal chop": {
"aliases": [],
@ -4452,7 +4452,7 @@
"aliases": [],
"description": "",
"name": "Entbeintes Hühnerfleisch",
"plural_name": "boneless chickens"
"plural_name": "Entbeintes Hühnerfleisch"
},
"chicken liver": {
"aliases": [],
@ -4463,8 +4463,8 @@
"cornish hen": {
"aliases": [],
"description": "",
"name": "cornish hen",
"plural_name": "cornish hens"
"name": "Kornisches Huhn",
"plural_name": "Kornische Hühner"
},
"deli turkey": {
"aliases": [],
@ -4475,8 +4475,8 @@
"smoked turkey": {
"aliases": [],
"description": "",
"name": "smoked turkey",
"plural_name": "smoked turkeys"
"name": "Geräucherter Truthahn",
"plural_name": "Geräucherte Truthähne"
},
"turkey meat": {
"aliases": [],
@ -6227,8 +6227,8 @@
"saffron strand": {
"aliases": [],
"description": "",
"name": "saffron strand",
"plural_name": "saffron strands"
"name": "Safranfaden",
"plural_name": "Safranfäden"
},
"guajillo pepper": {
"aliases": [],
@ -6251,8 +6251,8 @@
"lemon thyme": {
"aliases": [],
"description": "",
"name": "lemon thyme",
"plural_name": "lemon thymes"
"name": "Zitronenthymian",
"plural_name": "Zitronenthymian"
},
"galangal": {
"aliases": [],
@ -6490,7 +6490,7 @@
"sugar syrup": {
"aliases": [],
"description": "sugar free sweetner",
"name": "sugar syrup",
"name": "Zuckersirup",
"plural_name": "sugar syrups"
},
"isomalt": {
@ -6736,7 +6736,7 @@
"rice syrup": {
"aliases": [],
"description": "",
"name": "rice syrup",
"name": "Reissirup",
"plural_name": "Zuckerrohr-Sirup"
},
"manuka honey": {
@ -6874,7 +6874,7 @@
"malt syrup": {
"aliases": [],
"description": "",
"name": "malt syrup",
"name": "Malzsirup",
"plural_name": "malt syrups"
},
"hot honey": {
@ -12196,8 +12196,8 @@
"canned corn": {
"aliases": [],
"description": "",
"name": "canned corn",
"plural_name": "canned corns"
"name": "Dosenmais",
"plural_name": "Dosenmais"
},
"canned kidney bean": {
"aliases": [],
@ -12238,8 +12238,8 @@
"sauerkraut": {
"aliases": [],
"description": "",
"name": "sauerkraut",
"plural_name": "sauerkrauts"
"name": "Sauerkraut",
"plural_name": "Sauerkraut"
},
"creamed corn": {
"aliases": [],
@ -12280,8 +12280,8 @@
"kimchi": {
"aliases": [],
"description": "",
"name": "kimchi",
"plural_name": "kimchis"
"name": "Kimchi",
"plural_name": "Kimchi"
},
"canned mandarin orange": {
"aliases": [],
@ -12826,8 +12826,8 @@
"steak sauce": {
"aliases": [],
"description": "",
"name": "steak sauce",
"plural_name": "steak sauces"
"name": "Steaksauce",
"plural_name": "Steaksaucen"
},
"chunky peanut butter": {
"aliases": [],
@ -12838,8 +12838,8 @@
"tzatziki": {
"aliases": [],
"description": "",
"name": "tzatziki",
"plural_name": "tzatzikis"
"name": "Tsatsiki",
"plural_name": "Tsatsiki"
},
"taco sauce": {
"aliases": [],
@ -12862,20 +12862,20 @@
"béchamel sauce": {
"aliases": [],
"description": "",
"name": "béchamel sauce",
"plural_name": "béchamel sauces"
"name": "Béchamelsauce",
"plural_name": "Béchamelsaucen"
},
"horseradish sauce": {
"aliases": [],
"description": "",
"name": "horseradish sauce",
"plural_name": "horseradish sauces"
"name": "Meerrettichsauce",
"plural_name": "Meerrettichsaucen"
},
"plum sauce": {
"aliases": [],
"description": "",
"name": "plum sauce",
"plural_name": "plum sauces"
"name": "Pflaumensauce",
"plural_name": "Pflaumensaucen"
},
"garlic butter": {
"aliases": [],
@ -12886,14 +12886,14 @@
"hollandaise sauce": {
"aliases": [],
"description": "",
"name": "hollandaise sauce",
"plural_name": "hollandaise sauces"
"name": "Hollandaise",
"plural_name": "Hollandaise"
},
"cocktail sauce": {
"aliases": [],
"description": "",
"name": "cocktail sauce",
"plural_name": "cocktail sauces"
"name": "Cocktailsauce",
"plural_name": "Cocktailsaucen"
},
"cheese dip": {
"aliases": [],
@ -12958,8 +12958,8 @@
"mustard sauce": {
"aliases": [],
"description": "",
"name": "mustard sauce",
"plural_name": "mustard sauces"
"name": "Senfsauce",
"plural_name": "Senfsaucen"
},
"sun-dried tomato paste": {
"aliases": [],
@ -13024,8 +13024,8 @@
"schezwan sauce": {
"aliases": [],
"description": "",
"name": "schezwan sauce",
"plural_name": "schezwan sauces"
"name": "Szechuan-Sauce",
"plural_name": "Szechuan-Saucen"
},
"mushroom gravy": {
"aliases": [],

View file

@ -162,8 +162,8 @@
"kale": {
"aliases": [],
"description": "",
"name": "kale",
"plural_name": "kales"
"name": "col rizada",
"plural_name": "coles rizadas"
},
"arugula": {
"aliases": [],
@ -192,14 +192,14 @@
"butternut squash": {
"aliases": [],
"description": "",
"name": "butternut squash",
"plural_name": "butternut squashes"
"name": "calabaza",
"plural_name": "calabazas"
},
"romaine": {
"aliases": [],
"description": "",
"name": "romaine",
"plural_name": "romaines"
"name": "lechuga romana",
"plural_name": "lechugas romanas"
},
"beetroot": {
"aliases": [],
@ -222,8 +222,8 @@
"sun dried tomato": {
"aliases": [],
"description": "",
"name": "sun dried tomato",
"plural_name": "sun dried tomatoes"
"name": "tomate seco",
"plural_name": "tomates secos"
},
"radish": {
"aliases": [],
@ -252,7 +252,7 @@
"summer squash": {
"aliases": [
"calabacín",
"gem squash"
"zapallito redondo"
],
"description": "",
"name": "summer squash",
@ -261,14 +261,14 @@
"mixed green": {
"aliases": [],
"description": "",
"name": "mixed green",
"plural_name": "mixed greens"
"name": "mezcla de hojas verdes",
"plural_name": "mezclas de hojas verdes"
},
"parsnip": {
"aliases": [],
"description": "",
"name": "parsnip",
"plural_name": "parsnips"
"name": "chirivía",
"plural_name": "chirivías"
},
"baby carrot": {
"aliases": [],
@ -432,19 +432,19 @@
"aliases": [],
"description": "",
"name": "cebolla perla",
"plural_name": "pearl onions"
"plural_name": "cebollitas perla"
},
"tenderstem broccoli": {
"aliases": [],
"description": "",
"name": "tenderstem broccoli",
"plural_name": "tenderstem broccolis"
"name": "brócoli tierno",
"plural_name": "brócolis tiernos"
},
"plantain": {
"aliases": [],
"description": "",
"name": "plantain",
"plural_name": "plantains"
"name": "plátano macho",
"plural_name": "plátanos machos"
},
"leaf lettuce": {
"aliases": [],
@ -455,8 +455,8 @@
"pepperoncini": {
"aliases": [],
"description": "",
"name": "pepperoncini",
"plural_name": "pepperoncinis"
"name": "ají pepperoncini",
"plural_name": "ajís pepperoncini"
},
"baby bok choy": {
"aliases": [],
@ -487,8 +487,8 @@
"maíz"
],
"description": "",
"name": "corn husk",
"plural_name": "corn husks"
"name": "hoja de maíz",
"plural_name": "hojas de maíz"
},
"collard green": {
"aliases": [],

File diff suppressed because it is too large Load diff

View file

@ -246,8 +246,8 @@
"new potato": {
"aliases": [],
"description": "",
"name": "new potato",
"plural_name": "new potatoes"
"name": "pataca nova",
"plural_name": "patacas novas"
},
"summer squash": {
"aliases": [
@ -755,14 +755,14 @@
"plum": {
"aliases": [],
"description": "",
"name": "plum",
"plural_name": "plums"
"name": "ameixa",
"plural_name": "ameixas"
},
"fig": {
"aliases": [],
"description": "",
"name": "fig",
"plural_name": "figs"
"name": "figo",
"plural_name": "figos"
},
"apricot": {
"aliases": [],
@ -773,8 +773,8 @@
"currant": {
"aliases": [],
"description": "",
"name": "currant",
"plural_name": "currants"
"name": "grosella",
"plural_name": "grosellas"
},
"mandarin": {
"aliases": [],
@ -785,8 +785,8 @@
"prune": {
"aliases": [],
"description": "",
"name": "prune",
"plural_name": "prunes"
"name": "ameixa seca",
"plural_name": "ameixas secas"
},
"cantaloupe": {
"aliases": [],
@ -815,26 +815,26 @@
"tamarind": {
"aliases": [],
"description": "",
"name": "tamarind",
"plural_name": "tamarinds"
"name": "tamarindo",
"plural_name": "tamarindos"
},
"nectarine": {
"aliases": [],
"description": "",
"name": "nectarine",
"plural_name": "nectarines"
"name": "nectarina",
"plural_name": "nectarinas"
},
"dried fig": {
"aliases": [],
"description": "",
"name": "dried fig",
"plural_name": "dried figs"
"name": "figo seco",
"plural_name": "figos secos"
},
"chestnut": {
"aliases": [],
"description": "",
"name": "chestnut",
"plural_name": "chestnuts"
"name": "castaña",
"plural_name": "castañas"
},
"meyer lemon": {
"aliases": [],
@ -857,20 +857,20 @@
"clementine": {
"aliases": [],
"description": "",
"name": "clementine",
"plural_name": "clementines"
"name": "clementina",
"plural_name": "clementinas"
},
"persimmon": {
"aliases": [],
"description": "",
"name": "persimmon",
"plural_name": "persimmons"
"name": "caqui",
"plural_name": "caquis"
},
"melon": {
"aliases": [],
"description": "",
"name": "melon",
"plural_name": "melons"
"name": "melón",
"plural_name": "melóns"
},
"tangerine": {
"aliases": [],
@ -887,8 +887,8 @@
"dried apple": {
"aliases": [],
"description": "",
"name": "dried apple",
"plural_name": "dried apples"
"name": "mazá seca",
"plural_name": "mazás secas"
},
"quince": {
"aliases": [],
@ -899,8 +899,8 @@
"guava": {
"aliases": [],
"description": "",
"name": "guava",
"plural_name": "guavas"
"name": "goiaba",
"plural_name": "goiabas"
},
"banana chip": {
"aliases": [],
@ -1043,8 +1043,8 @@
"sweet lime": {
"aliases": [],
"description": "",
"name": "sweet lime",
"plural_name": "sweet limes"
"name": "lima doce",
"plural_name": "limas doces"
},
"custard-apple": {
"aliases": [],
@ -1157,8 +1157,8 @@
"loquat": {
"aliases": [],
"description": "",
"name": "loquat",
"plural_name": "loquats"
"name": "néspera",
"plural_name": "nésperas"
},
"crabapple": {
"aliases": [],
@ -1251,8 +1251,8 @@
"portobello mushroom": {
"aliases": [],
"description": "",
"name": "portobello mushroom",
"plural_name": "portobello mushrooms"
"name": "cogumelo portobello",
"plural_name": "cogumelos portobello"
},
"wild mushroom": {
"aliases": [],
@ -1453,8 +1453,8 @@
"strawberry": {
"aliases": [],
"description": "",
"name": "strawberry",
"plural_name": "strawberries"
"name": "amorodo",
"plural_name": "amorodos"
},
"blueberry": {
"aliases": [],
@ -1727,8 +1727,8 @@
"almond": {
"aliases": [],
"description": "",
"name": "almond",
"plural_name": "almonds"
"name": "améndoa",
"plural_name": "améndoas"
},
"sesame seed": {
"aliases": [],
@ -1799,8 +1799,8 @@
"sunflower seed": {
"aliases": [],
"description": "",
"name": "sunflower seed",
"plural_name": "sunflower seeds"
"name": "semente de xirasol",
"plural_name": "sementes de xirasol"
},
"macadamia": {
"aliases": [],
@ -2202,7 +2202,7 @@
"aliases": [],
"description": "",
"name": "manchego",
"plural_name": "manchegoes"
"plural_name": "manchegos"
},
"italian cheese blend": {
"aliases": [],
@ -2711,8 +2711,8 @@
"margarine": {
"aliases": [],
"description": "",
"name": "margarine",
"plural_name": "margarines"
"name": "margarina",
"plural_name": "margarinas"
},
"creme fraiche": {
"aliases": [],
@ -2753,8 +2753,8 @@
"dulce de leche": {
"aliases": [],
"description": "",
"name": "dulce de leche",
"plural_name": "dulce de leche"
"name": "doce de leite",
"plural_name": "doces de leite"
},
"custard": {
"aliases": [],
@ -2777,14 +2777,14 @@
"sherbet": {
"aliases": [],
"description": "",
"name": "sherbet",
"plural_name": "sherbets"
"name": "sorvete",
"plural_name": "sorvetes"
},
"chocolate milk": {
"aliases": [],
"description": "",
"name": "chocolate milk",
"plural_name": "chocolate milks"
"name": "leite con chocolate",
"plural_name": "leites con chocolate"
},
"liquid egg substitute": {
"aliases": [],
@ -2873,8 +2873,8 @@
"cajeta": {
"aliases": [],
"description": "",
"name": "cajeta",
"plural_name": "cajetas"
"name": "doce de leite de cabra",
"plural_name": "doces de leite de cabra"
},
"duck egg": {
"aliases": [],

View file

@ -9034,8 +9034,8 @@
"vegetable fried rice": {
"aliases": [],
"description": "",
"name": "vegetable fried rice",
"plural_name": "vegetable fried rices"
"name": "אורז מטוגן עם ירקות",
"plural_name": "אורז מטוגן עם ירקות"
},
"grünkern": {
"aliases": [],
@ -9046,8 +9046,8 @@
"jeera rice": {
"aliases": [],
"description": "",
"name": "jeera rice",
"plural_name": "jeera rices"
"name": "אורז ג׳ירה",
"plural_name": "אורז ג׳ירה"
},
"fonio": {
"aliases": [],
@ -9098,8 +9098,8 @@
"green bean": {
"aliases": [],
"description": "",
"name": "green bean",
"plural_name": "green beans"
"name": "שעועית ירוקה",
"plural_name": "שעועית ירוקה"
},
"chickpea": {
"aliases": [],
@ -9116,8 +9116,8 @@
"kidney bean": {
"aliases": [],
"description": "",
"name": "kidney bean",
"plural_name": "kidney beans"
"name": "שעועית אדומה",
"plural_name": "שעועית אדומה"
},
"white bean": {
"aliases": [],
@ -9164,14 +9164,14 @@
"bean sprout": {
"aliases": [],
"description": "",
"name": "bean sprout",
"plural_name": "bean sprouts"
"name": "נבט שעועית",
"plural_name": "נבטי שעועית"
},
"edamame": {
"aliases": [],
"description": "",
"name": "edamame",
"plural_name": "edamames"
"name": "אדממה",
"plural_name": "אדממה"
},
"green lentil": {
"aliases": [],
@ -9206,8 +9206,8 @@
"black-eyed pea": {
"aliases": [],
"description": "",
"name": "black-eyed pea",
"plural_name": "black-eyed peas"
"name": "לוביה (שעועית העין השחורה)",
"plural_name": "לוביה (שעועית העין השחורה)"
},
"moong dal": {
"aliases": [],
@ -9230,8 +9230,8 @@
"red bean": {
"aliases": [],
"description": "",
"name": "red bean",
"plural_name": "red beans"
"name": "שעועית אדומה",
"plural_name": "שעועית אדומה"
},
"mung bean sprout": {
"aliases": [],
@ -9356,8 +9356,8 @@
"black soybean": {
"aliases": [],
"description": "",
"name": "black soybean",
"plural_name": "black soybeans"
"name": "פול סויה שחור",
"plural_name": "פולי סויה שחורים"
},
"field pea": {
"aliases": [],
@ -9386,8 +9386,8 @@
"soy sprout": {
"aliases": [],
"description": "",
"name": "soy sprout",
"plural_name": "soy sprouts"
"name": "נבט סויה",
"plural_name": "נבטי סויה"
},
"honey bean": {
"aliases": [],
@ -9734,14 +9734,14 @@
"rotelle": {
"aliases": [],
"description": "",
"name": "rotelle",
"plural_name": "rotelles"
"name": "רוטלה",
"plural_name": "רוטלה"
},
"shirataki noodle": {
"aliases": [],
"description": "",
"name": "shirataki noodle",
"plural_name": "shirataki noodles"
"name": "איטריית שיראטאקי",
"plural_name": "איטריות שיראטאקי"
},
"chicken raman": {
"aliases": [],
@ -9752,8 +9752,8 @@
"pierogi": {
"aliases": [],
"description": "",
"name": "pierogi",
"plural_name": "pierogis"
"name": "פירוגי",
"plural_name": "פירוגי"
},
"soup pasta": {
"aliases": [],
@ -9800,8 +9800,8 @@
"beef ravioli": {
"aliases": [],
"description": "",
"name": "beef ravioli",
"plural_name": "beef raviolis"
"name": "רביולי בקר",
"plural_name": "רביולי בקר"
},
"hakka noodle": {
"aliases": [],
@ -9884,8 +9884,8 @@
"fregola": {
"aliases": [],
"description": "",
"name": "fregola",
"plural_name": "fregolas"
"name": "פרגולה",
"plural_name": "פרגולה"
},
"beef tortellini": {
"aliases": [],
@ -10156,8 +10156,8 @@
"dry-roasted peanut": {
"aliases": [],
"description": "",
"name": "dry-roasted peanut",
"plural_name": "dry-roasted peanuts"
"name": "בוטן בטיגון ללא שמן",
"plural_name": "בוטנים בטיגון ללא שמן"
},
"potato chip": {
"aliases": [],
@ -10258,8 +10258,8 @@
"potato bread": {
"aliases": [],
"description": "",
"name": "potato bread",
"plural_name": "potato breads"
"name": "לחם מקמח תפוחי אדמה",
"plural_name": "לחמים מקמח תפוחי אדמה"
},
"muffin": {
"aliases": [],
@ -10270,8 +10270,8 @@
"breadstick": {
"aliases": [],
"description": "",
"name": "breadstick",
"plural_name": "breadsticks"
"name": "גריסיני",
"plural_name": "גריסיני"
},
"focaccia": {
"aliases": [],
@ -10492,8 +10492,8 @@
"pretzel bun": {
"aliases": [],
"description": "",
"name": "pretzel bun",
"plural_name": "pretzel buns"
"name": "לחמניית פרצל",
"plural_name": "לחמניות פרצל"
},
"roti bread": {
"aliases": [],
@ -10676,8 +10676,8 @@
"frying oil": {
"aliases": [],
"description": "",
"name": "frying oil",
"plural_name": "frying oils"
"name": "שמן טיגון",
"plural_name": "שמן טיגון"
},
"sunflower oil": {
"aliases": [],
@ -10720,8 +10720,8 @@
"corn oil": {
"aliases": [],
"description": "",
"name": "corn oil",
"plural_name": "corn oils"
"name": "שמן תירס",
"plural_name": "שמני תירס"
},
"virgin coconut oil": {
"aliases": [],
@ -10738,8 +10738,8 @@
"mustard oil": {
"aliases": [],
"description": "",
"name": "mustard oil",
"plural_name": "mustard oils"
"name": "שמן חרדל",
"plural_name": "שמני חרדל"
},
"walnut oil": {
"aliases": [],
@ -10750,8 +10750,8 @@
"garlic oil": {
"aliases": [],
"description": "",
"name": "garlic oil",
"plural_name": "garlic oils"
"name": "שמן שום",
"plural_name": "שמני שום"
},
"truffle oil": {
"aliases": [],
@ -10780,8 +10780,8 @@
"salad oil": {
"aliases": [],
"description": "",
"name": "salad oil",
"plural_name": "salad oils"
"name": "שמן לסלט",
"plural_name": "שמנים לסלט"
},
"duck fat": {
"aliases": [],
@ -10798,8 +10798,8 @@
"soybean oil": {
"aliases": [],
"description": "",
"name": "soybean oil",
"plural_name": "soybean oils"
"name": "שמן פולי סויה",
"plural_name": "שמני פולי סויה"
},
"butter-flavored cooking spray": {
"aliases": [],
@ -11258,8 +11258,8 @@
"spicy mayo": {
"aliases": [],
"description": "",
"name": "spicy mayo",
"plural_name": "spicy mayoes"
"name": "מיונז חריף",
"plural_name": "מיונז חריף"
},
"poppyseed dressing": {
"aliases": [],
@ -11330,8 +11330,8 @@
"garlic mayonnaise": {
"aliases": [],
"description": "",
"name": "garlic mayonnaise",
"plural_name": "garlic mayonnaises"
"name": "מיונז שום",
"plural_name": "מיונז שום"
},
"brown rice vinegar": {
"aliases": [],
@ -11664,14 +11664,14 @@
"wasabi": {
"aliases": [],
"description": "",
"name": "wasabi",
"plural_name": "wasabis"
"name": "ווסאבי",
"plural_name": "ווסאבי"
},
"honey mustard": {
"aliases": [],
"description": "",
"name": "honey mustard",
"plural_name": "honey mustards"
"name": "חרדל דבש",
"plural_name": "חרדל דבש"
},
"mango chutney": {
"aliases": [],
@ -12060,8 +12060,8 @@
"banana ketchup": {
"aliases": [],
"description": "",
"name": "banana ketchup",
"plural_name": "banana ketchups"
"name": "קטשופ בננה",
"plural_name": "קטשופ בננות"
},
"chili puree": {
"aliases": [],
@ -12154,8 +12154,8 @@
"pickle": {
"aliases": [],
"description": "",
"name": "pickle",
"plural_name": "pickles"
"name": "מלפפון חמוץ",
"plural_name": "מלפפונים חמוצים"
},
"canned pineapple": {
"aliases": [],
@ -12172,8 +12172,8 @@
"canned anchovy": {
"aliases": [],
"description": "",
"name": "canned anchovy",
"plural_name": "canned anchovies"
"name": "אנשובי משומר",
"plural_name": "אנשובי משומר"
},
"roasted red pepper": {
"aliases": [],
@ -12190,14 +12190,14 @@
"canned artichoke": {
"aliases": [],
"description": "",
"name": "canned artichoke",
"plural_name": "canned artichokes"
"name": "ארטישוק משומר",
"plural_name": "ארטישוקים משומרים"
},
"canned corn": {
"aliases": [],
"description": "",
"name": "canned corn",
"plural_name": "canned corns"
"name": "גרעיני תירס",
"plural_name": "גרעיני תירס"
},
"canned kidney bean": {
"aliases": [],

View file

@ -547,8 +547,8 @@
"microgreen": {
"aliases": [],
"description": "",
"name": "microgreen",
"plural_name": "microgreens"
"name": "mikrozöld",
"plural_name": "mikrozöldek"
},
"boston lettuce": {
"aliases": [],
@ -767,8 +767,8 @@
"apricot": {
"aliases": [],
"description": "",
"name": "apricot",
"plural_name": "apricots"
"name": "sárgabarack",
"plural_name": "sárgabarackok"
},
"currant": {
"aliases": [],
@ -780,7 +780,7 @@
"aliases": [],
"description": "",
"name": "mandarin",
"plural_name": "mandarins"
"plural_name": "mandarinok"
},
"prune": {
"aliases": [],
@ -803,14 +803,14 @@
"passion fruit": {
"aliases": [],
"description": "",
"name": "passion fruit",
"plural_name": "passion fruits"
"name": "maracuja",
"plural_name": ""
},
"papaya": {
"aliases": [],
"description": "",
"name": "papaya",
"plural_name": "papayas"
"name": "papaja",
"plural_name": "papaják"
},
"tamarind": {
"aliases": [],

View file

@ -2631,7 +2631,7 @@
"heavy cream": {
"aliases": [],
"description": "",
"name": "heavy cream",
"name": "volle room",
"plural_name": "heavy creams"
},
"sour cream": {

View file

@ -648,19 +648,19 @@
"aliases": [],
"description": "",
"name": "eple",
"plural_name": "apples"
"plural_name": "epler"
},
"banana": {
"aliases": [],
"description": "",
"name": "banan",
"plural_name": "bananas"
"plural_name": "bananer"
},
"orange": {
"aliases": [],
"description": "",
"name": "appelsin",
"plural_name": "oranges"
"plural_name": "appelsiner"
},
"raisin": {
"aliases": [],
@ -678,13 +678,13 @@
"aliases": [],
"description": "",
"name": "mango",
"plural_name": "mangoes"
"plural_name": "mango"
},
"peach": {
"aliases": [],
"description": "",
"name": "fersken",
"plural_name": "peaches"
"plural_name": "fersken"
},
"date": {
"aliases": [],
@ -702,7 +702,7 @@
"aliases": [],
"description": "",
"name": "craisin",
"plural_name": "craisins"
"plural_name": "tranebær"
},
"pear": {
"aliases": [],
@ -732,30 +732,30 @@
"aliases": [],
"description": "",
"name": "rabarbra",
"plural_name": "rhubarbs"
"plural_name": "rabarbra"
},
"dried apricot": {
"aliases": [],
"description": "",
"name": "dried apricot",
"plural_name": "dried apricots"
"name": "tørket aprikos",
"plural_name": "tørket aprikos"
},
"kiwi": {
"aliases": [],
"description": "",
"name": "kiwi",
"plural_name": "kiwis"
"plural_name": "kiwi"
},
"grapefruit": {
"aliases": [],
"description": "",
"name": "grapefruit",
"plural_name": "grapefruits"
"plural_name": "grapefrukt"
},
"plum": {
"aliases": [],
"description": "",
"name": "plum",
"name": "plomme",
"plural_name": "plums"
},
"fig": {
@ -780,7 +780,7 @@
"aliases": [],
"description": "",
"name": "mandarin",
"plural_name": "mandarins"
"plural_name": "mandariner"
},
"prune": {
"aliases": [],

View file

@ -5,7 +5,7 @@
"aliases": [],
"description": "",
"name": "czosnek",
"plural_name": "garlics"
"plural_name": "czosnek"
},
"onion": {
"aliases": [],
@ -17,7 +17,7 @@
"aliases": [],
"description": "",
"name": "papryka słodka",
"plural_name": "bell peppers"
"plural_name": "słodka papryka"
},
"carrot": {
"aliases": [],
@ -28,14 +28,14 @@
"scallion": {
"aliases": [],
"description": "",
"name": "scallion",
"plural_name": "scallions"
"name": "Cebula dymka",
"plural_name": "Cebule dymki"
},
"zucchini": {
"aliases": [],
"description": "",
"name": "cukinia",
"plural_name": "zucchinis"
"plural_name": "Cukinie"
},
"potato": {
"aliases": [],
@ -52,38 +52,38 @@
"yellow onion": {
"aliases": [],
"description": "",
"name": "yellow onion",
"plural_name": "yellow onions"
"name": "żółta cebula",
"plural_name": "żółte cebule"
},
"celery": {
"aliases": [],
"description": "",
"name": "celery",
"plural_name": "celeries"
"name": "seler naciowy",
"plural_name": "selery naciowe"
},
"jalapeno": {
"aliases": [],
"description": "",
"name": "jalapeno",
"plural_name": "jalapenoes"
"name": "papryka jalapenio",
"plural_name": "papryki jalapenio"
},
"avocado": {
"aliases": [],
"description": "",
"name": "awokado",
"plural_name": "avocados"
"plural_name": "awokado"
},
"shallot": {
"aliases": [],
"description": "",
"name": "szalotka",
"plural_name": "shallots"
"plural_name": "szalotki"
},
"cherry tomato": {
"aliases": [],
"description": "",
"name": "cherry tomato",
"plural_name": "cherry tomatoes"
"name": "pomidor koktajlowy",
"plural_name": "pomidory koktajlowe"
},
"cucumber": {
"aliases": [],
@ -100,28 +100,28 @@
"sweet corn": {
"aliases": [],
"description": "",
"name": "sweet corn",
"plural_name": "sweet corns"
"name": "kukurydza cukrowa",
"plural_name": "kukurydze cukrowe"
},
"chile pepper": {
"aliases": [
"capsicum"
"papryka ostra"
],
"description": "",
"name": "chile pepper",
"plural_name": "chile peppers"
"name": "papryczka chili",
"plural_name": "papryczki chili"
},
"sweet potato": {
"aliases": [],
"description": "",
"name": "sweet potato",
"plural_name": "sweet potatoes"
"name": "batat",
"plural_name": "bataty"
},
"broccoli": {
"aliases": [],
"description": "",
"name": "broccoli",
"plural_name": "broccolis"
"name": "brokół",
"plural_name": "brokóły"
},
"heart of palm": {
"aliases": [],
@ -138,56 +138,56 @@
"pumpkin": {
"aliases": [],
"description": "",
"name": "pumpkin",
"plural_name": "pumpkins"
"name": "dynia",
"plural_name": "dynie"
},
"cauliflower": {
"aliases": [],
"description": "",
"name": "cauliflower",
"plural_name": "cauliflowers"
"name": "kalafior",
"plural_name": "kalafiory"
},
"cabbage": {
"aliases": [],
"description": "",
"name": "cabbage",
"plural_name": "cabbages"
"name": "kapusta",
"plural_name": "kapusty"
},
"asparagu": {
"aliases": [],
"description": "",
"name": "asparagu",
"plural_name": "asparagus"
"name": "szparag",
"plural_name": "szparagi"
},
"kale": {
"aliases": [],
"description": "",
"name": "kale",
"plural_name": "kales"
"name": "jarmuż",
"plural_name": "jarmuże"
},
"arugula": {
"aliases": [],
"description": "",
"name": "arugula",
"plural_name": "arugulas"
"name": "rukola",
"plural_name": "rukole"
},
"leek": {
"aliases": [],
"description": "",
"name": "leek",
"plural_name": "leeks"
"name": "por",
"plural_name": "pory"
},
"eggplant": {
"aliases": [],
"description": "",
"name": "eggplant",
"plural_name": "eggplants"
"name": "bakłażan",
"plural_name": "bakłażany"
},
"lettuce": {
"aliases": [],
"description": "",
"name": "lettuce",
"plural_name": "lettuces"
"name": "sałata",
"plural_name": "sałaty"
},
"butternut squash": {
"aliases": [],
@ -204,8 +204,8 @@
"beetroot": {
"aliases": [],
"description": "",
"name": "beetroot",
"plural_name": "beetroots"
"name": "burak",
"plural_name": "buraki"
},
"brussels sprout": {
"aliases": [],
@ -228,20 +228,20 @@
"radish": {
"aliases": [],
"description": "",
"name": "radish",
"plural_name": "radishes"
"name": "rzodkiewka",
"plural_name": "rzodkiewki"
},
"red cabbage": {
"aliases": [],
"description": "",
"name": "red cabbage",
"plural_name": "red cabbages"
"name": "czerwona kapusta",
"plural_name": "czerwone kapusty"
},
"artichoke": {
"aliases": [],
"description": "",
"name": "artichoke",
"plural_name": "artichokes"
"name": "karczoch",
"plural_name": "karczochy"
},
"new potato": {
"aliases": [],
@ -261,14 +261,14 @@
"mixed green": {
"aliases": [],
"description": "",
"name": "mixed green",
"plural_name": "mixed greens"
"name": "mieszanka zieleniny",
"plural_name": "mieszanka zielenin"
},
"parsnip": {
"aliases": [],
"description": "",
"name": "parsnip",
"plural_name": "parsnips"
"name": "pasternak",
"plural_name": "pasternaki"
},
"baby carrot": {
"aliases": [],
@ -279,8 +279,8 @@
"mixed vegetable": {
"aliases": [],
"description": "",
"name": "mixed vegetable",
"plural_name": "mixed vegetables"
"name": "mieszanka warzywna",
"plural_name": "mieszanki warzywne"
},
"poblano pepper": {
"aliases": [],
@ -321,8 +321,8 @@
"iceberg": {
"aliases": [],
"description": "",
"name": "iceberg",
"plural_name": "icebergs"
"name": "sałata lodowa",
"plural_name": "sałaty lodowe"
},
"mashed potato": {
"aliases": [],
@ -333,14 +333,14 @@
"horseradish": {
"aliases": [],
"description": "",
"name": "horseradish",
"plural_name": "horseradishes"
"name": "chrzan",
"plural_name": "chrzany"
},
"chard": {
"aliases": [],
"description": "",
"name": "chard",
"plural_name": "chards"
"name": "botwina",
"plural_name": "botwiny"
},
"pimiento": {
"aliases": [],
@ -377,8 +377,8 @@
"celeriac": {
"aliases": [],
"description": "",
"name": "celeriac",
"plural_name": "celeriacs"
"name": "seler korzeniowy",
"plural_name": "selery korzeniowe"
},
"water chestnut": {
"aliases": [],
@ -419,8 +419,8 @@
"corn cob": {
"aliases": [],
"description": "",
"name": "corn cob",
"plural_name": "corn cobs"
"name": "kolba kukurydzy",
"plural_name": "kolby kukurydzy"
},
"radicchio": {
"aliases": [],
@ -559,8 +559,8 @@
"kohlrabi": {
"aliases": [],
"description": "",
"name": "kohlrabi",
"plural_name": "kohlrabis"
"name": "kalarepa",
"plural_name": "kalarepy"
},
"fresno chile": {
"aliases": [],
@ -628,75 +628,75 @@
"foods": {
"tomato": {
"aliases": [],
"description": "Yes they are a fruit",
"name": "tomato",
"plural_name": "tomatoes"
"description": "Tak, to są owoce",
"name": "pomidor",
"plural_name": "pomidory"
},
"lemon": {
"aliases": [],
"description": "",
"name": "lemon",
"plural_name": "lemons"
"name": "cytryna",
"plural_name": "cytryny"
},
"lime": {
"aliases": [],
"description": "",
"name": "lime",
"plural_name": "limes"
"name": "limonka",
"plural_name": "limonki"
},
"apple": {
"aliases": [],
"description": "",
"name": "apple",
"plural_name": "apples"
"name": "jabłko",
"plural_name": "jabłka"
},
"banana": {
"aliases": [],
"description": "",
"name": "banana",
"plural_name": "bananas"
"name": "banan",
"plural_name": "banany"
},
"orange": {
"aliases": [],
"description": "",
"name": "orange",
"plural_name": "oranges"
"name": "pomarańcza",
"plural_name": "pomarańcze"
},
"raisin": {
"aliases": [],
"description": "",
"name": "raisin",
"plural_name": "raisins"
"name": "rodzynka",
"plural_name": "rodzynki"
},
"pineapple": {
"aliases": [],
"description": "",
"name": "pineapple",
"plural_name": "pineapples"
"name": "ananas",
"plural_name": "ananasy"
},
"mango": {
"aliases": [],
"description": "",
"name": "mango",
"plural_name": "mangoes"
"plural_name": "mango"
},
"peach": {
"aliases": [],
"description": "",
"name": "peach",
"plural_name": "peaches"
"name": "brzoskwinia",
"plural_name": "brzoskwinie"
},
"date": {
"aliases": [],
"description": "",
"name": "date",
"plural_name": "dates"
"name": "data",
"plural_name": "daty"
},
"coconut": {
"aliases": [],
"description": "",
"name": "coconut",
"plural_name": "coconuts"
"name": "kokos",
"plural_name": "kokosy"
},
"craisin": {
"aliases": [],
@ -707,74 +707,74 @@
"pear": {
"aliases": [],
"description": "",
"name": "pear",
"plural_name": "pears"
"name": "gruszka",
"plural_name": "gruszki"
},
"grape": {
"aliases": [],
"description": "",
"name": "grape",
"plural_name": "grapes"
"name": "winogron",
"plural_name": "winogrona"
},
"pomegranate": {
"aliases": [],
"description": "",
"name": "pomegranate",
"plural_name": "pomegranates"
"name": "granat",
"plural_name": "granaty"
},
"watermelon": {
"aliases": [],
"description": "",
"name": "watermelon",
"plural_name": "watermelons"
"name": "arbuz",
"plural_name": "arbuzy"
},
"rhubarb": {
"aliases": [],
"description": "",
"name": "rhubarb",
"plural_name": "rhubarbs"
"name": "rabarbar",
"plural_name": "rabarbary"
},
"dried apricot": {
"aliases": [],
"description": "",
"name": "dried apricot",
"plural_name": "dried apricots"
"name": "suszona morela",
"plural_name": "suszone morele"
},
"kiwi": {
"aliases": [],
"description": "",
"name": "kiwi",
"plural_name": "kiwis"
"plural_name": "kiwi"
},
"grapefruit": {
"aliases": [],
"description": "",
"name": "grapefruit",
"plural_name": "grapefruits"
"name": "grejpfrut",
"plural_name": "grejpfruty"
},
"plum": {
"aliases": [],
"description": "",
"name": "plum",
"plural_name": "plums"
"name": "śliwka",
"plural_name": "śliwki"
},
"fig": {
"aliases": [],
"description": "",
"name": "fig",
"plural_name": "figs"
"name": "figa",
"plural_name": "figi"
},
"apricot": {
"aliases": [],
"description": "",
"name": "apricot",
"plural_name": "apricots"
"name": "morela",
"plural_name": "morele"
},
"currant": {
"aliases": [],
"description": "",
"name": "currant",
"plural_name": "currants"
"name": "porzeczka",
"plural_name": "porzeczki"
},
"mandarin": {
"aliases": [],
@ -803,14 +803,14 @@
"passion fruit": {
"aliases": [],
"description": "",
"name": "passion fruit",
"plural_name": "passion fruits"
"name": "marakuja",
"plural_name": "marakuje"
},
"papaya": {
"aliases": [],
"description": "",
"name": "papaya",
"plural_name": "papayas"
"name": "papaja",
"plural_name": "papaje"
},
"tamarind": {
"aliases": [],
@ -821,14 +821,14 @@
"nectarine": {
"aliases": [],
"description": "",
"name": "nectarine",
"plural_name": "nectarines"
"name": "nektarynka",
"plural_name": "nektarynki"
},
"dried fig": {
"aliases": [],
"description": "",
"name": "dried fig",
"plural_name": "dried figs"
"name": "suszona figa",
"plural_name": "suszone figi"
},
"chestnut": {
"aliases": [],
@ -870,7 +870,7 @@
"aliases": [],
"description": "",
"name": "melon",
"plural_name": "melons"
"plural_name": "melony"
},
"tangerine": {
"aliases": [],

View file

@ -17,7 +17,7 @@
"aliases": [],
"description": "",
"name": "болгарский перец",
"plural_name": "болгарских перца"
"plural_name": "болгарских перцев"
},
"carrot": {
"aliases": [],
@ -76,36 +76,36 @@
"shallot": {
"aliases": [],
"description": "",
"name": "шалот",
"plural_name": "шалот"
"name": "лук-шалот",
"plural_name": "лука-шалот"
},
"cherry tomato": {
"aliases": [],
"description": "",
"name": "помидор Черри",
"plural_name": "помидоры Черри"
"name": "помидор черри",
"plural_name": "помидоров черри"
},
"cucumber": {
"aliases": [],
"description": "",
"name": "огурец",
"plural_name": "огурцы"
"plural_name": "огурцов"
},
"spinach": {
"aliases": [],
"description": "",
"name": "шпинат",
"plural_name": "шпинат"
"plural_name": "шпината"
},
"sweet corn": {
"aliases": [],
"description": "",
"name": "сладкая кукуруза",
"plural_name": "сладкая кукуруза"
"plural_name": "сладкой кукурузы"
},
"chile pepper": {
"aliases": [
"стручковый перец"
"стручкового перца"
],
"description": "",
"name": "перец чили",
@ -115,7 +115,7 @@
"aliases": [],
"description": "",
"name": "батат",
"plural_name": "батат"
"plural_name": "батата"
},
"broccoli": {
"aliases": [],
@ -133,7 +133,7 @@
"aliases": [],
"description": "",
"name": "молодая зелень",
"plural_name": "молодая зелень"
"plural_name": "молодой зелени"
},
"pumpkin": {
"aliases": [],
@ -151,55 +151,55 @@
"aliases": [],
"description": "",
"name": "капуста",
"plural_name": "капуста"
"plural_name": "капусты"
},
"asparagu": {
"aliases": [],
"description": "",
"name": "спаржа",
"plural_name": "спаржа"
"plural_name": "спаржи"
},
"kale": {
"aliases": [],
"description": "",
"name": "кудрявая капуста",
"plural_name": "кудрявая капуста"
"plural_name": "кудрявой капусты"
},
"arugula": {
"aliases": [],
"description": "",
"name": "руккола",
"plural_name": "руккола"
"plural_name": "рукколы"
},
"leek": {
"aliases": [],
"description": "",
"name": "лук-порей",
"plural_name": "лук-порей"
"plural_name": "лука-порей"
},
"eggplant": {
"aliases": [],
"description": "",
"name": "баклажан",
"plural_name": "баклажаны"
"plural_name": "баклажана"
},
"lettuce": {
"aliases": [],
"description": "",
"name": "салат - латук",
"plural_name": "салат - латук"
"plural_name": "салата - латук"
},
"butternut squash": {
"aliases": [],
"description": "",
"name": "мускатная тыква",
"plural_name": "мускатная тыква"
"plural_name": "мускатной тыквы"
},
"romaine": {
"aliases": [],
"description": "",
"name": "римский салат",
"plural_name": "римский салат"
"plural_name": "римского салата"
},
"beetroot": {
"aliases": [],
@ -211,47 +211,47 @@
"aliases": [],
"description": "",
"name": "брюссельская капуста",
"plural_name": "брюссельская капуста"
"plural_name": "брюссельской капусты"
},
"fennel": {
"aliases": [],
"description": "",
"name": "фенхель",
"plural_name": "фенхель"
"plural_name": "фенхеля"
},
"sun dried tomato": {
"aliases": [],
"description": "",
"name": "вяленый помидор",
"plural_name": "вяленые помидоры"
"plural_name": "вяленых помидор"
},
"radish": {
"aliases": [],
"description": "",
"name": "редис",
"plural_name": "редис"
"plural_name": "редиса"
},
"red cabbage": {
"aliases": [],
"description": "",
"name": "красная капуста",
"plural_name": "красная капуста"
"plural_name": "красной капусты"
},
"artichoke": {
"aliases": [],
"description": "",
"name": "артишок",
"plural_name": "артишоки"
"plural_name": "артишока"
},
"new potato": {
"aliases": [],
"description": "",
"name": "молодой картофель",
"plural_name": "молодой картофель"
"plural_name": "молодого картофеля"
},
"summer squash": {
"aliases": [
"кабачок",
"кабачка",
"гем-сквош"
],
"description": "",
@ -629,68 +629,68 @@
"tomato": {
"aliases": [],
"description": "Yes they are a fruit",
"name": "tomato",
"plural_name": "tomatoes"
"name": "помидор",
"plural_name": "помидоров"
},
"lemon": {
"aliases": [],
"description": "",
"name": "lemon",
"plural_name": "lemons"
"name": "лимон",
"plural_name": "лимонов"
},
"lime": {
"aliases": [],
"description": "",
"name": "lime",
"plural_name": "limes"
"name": "лайм",
"plural_name": "лаймов"
},
"apple": {
"aliases": [],
"description": "",
"name": "apple",
"plural_name": "apples"
"name": "яблоко",
"plural_name": "яблок"
},
"banana": {
"aliases": [],
"description": "",
"name": "banana",
"plural_name": "bananas"
"name": "банан",
"plural_name": "бананов"
},
"orange": {
"aliases": [],
"description": "",
"name": "orange",
"plural_name": "oranges"
"name": "апельсин",
"plural_name": "апельсинов"
},
"raisin": {
"aliases": [],
"description": "",
"name": "raisin",
"plural_name": "raisins"
"name": "изюм",
"plural_name": "изюма"
},
"pineapple": {
"aliases": [],
"description": "",
"name": "pineapple",
"plural_name": "pineapples"
"name": "ананас",
"plural_name": "ананасов"
},
"mango": {
"aliases": [],
"description": "",
"name": "mango",
"plural_name": "mangoes"
"name": "манго",
"plural_name": "манго"
},
"peach": {
"aliases": [],
"description": "",
"name": "peach",
"plural_name": "peaches"
"name": "персик",
"plural_name": "персиков"
},
"date": {
"aliases": [],
"description": "",
"name": "date",
"plural_name": "dates"
"name": "финик",
"plural_name": "фиников"
},
"coconut": {
"aliases": [],
@ -713,14 +713,14 @@
"grape": {
"aliases": [],
"description": "",
"name": "grape",
"plural_name": "grapes"
"name": "виноград",
"plural_name": "винограда"
},
"pomegranate": {
"aliases": [],
"description": "",
"name": "pomegranate",
"plural_name": "pomegranates"
"name": "гранат",
"plural_name": "граната"
},
"watermelon": {
"aliases": [],
@ -743,8 +743,8 @@
"kiwi": {
"aliases": [],
"description": "",
"name": "kiwi",
"plural_name": "kiwis"
"name": "киви",
"plural_name": "киви"
},
"grapefruit": {
"aliases": [],
@ -911,14 +911,14 @@
"kumquat": {
"aliases": [],
"description": "",
"name": "kumquat",
"plural_name": "kumquats"
"name": "кумкват",
"plural_name": "кумкватов"
},
"jackfruit": {
"aliases": [],
"description": "",
"name": "jackfruit",
"plural_name": "jackfruits"
"name": "джекфрут",
"plural_name": "джекфрутов"
},
"dragon fruit": {
"aliases": [],

View file

@ -1,31 +1,31 @@
{
"teaspoon": {
"name": "teelepel",
"plural_name": "teaspoons",
"plural_name": "teelepel",
"description": "",
"abbreviation": "tl"
},
"tablespoon": {
"name": "eetlepel",
"plural_name": "tablespoons",
"plural_name": "eetlepel",
"description": "",
"abbreviation": "el"
},
"cup": {
"name": "koppie",
"plural_name": "cups",
"plural_name": "koppie",
"description": "",
"abbreviation": "c"
},
"fluid-ounce": {
"name": "vloeistofons",
"plural_name": "fluid ounces",
"plural_name": "vloeistofons",
"description": "",
"abbreviation": "fl oz"
},
"pint": {
"name": "pint",
"plural_name": "pints",
"plural_name": "pint",
"description": "",
"abbreviation": "pt"
},

View file

@ -45,7 +45,7 @@
"name": "millilitre",
"plural_name": "millilitres",
"description": "",
"abbreviation": "mL"
"abbreviation": "ml"
},
"liter": {
"name": "litre",

View file

@ -70,7 +70,7 @@ class OpenAILocalImage(OpenAIImageBase):
)
with open(image, "rb") as f:
b64content = base64.b64encode(f.read()).decode("utf-8")
return f"data:image/jpg;base64,{b64content}"
return f"data:image/jpeg;base64,{b64content}"
class OpenAIService(BaseService):

19
poetry.lock generated
View file

@ -94,14 +94,14 @@ files = [
[[package]]
name = "apprise"
version = "1.9.3"
version = "1.9.4"
description = "Push Notifications that work with just about every platform!"
optional = false
python-versions = ">=3.6"
python-versions = ">=3.9"
groups = ["main"]
files = [
{file = "apprise-1.9.3-py3-none-any.whl", hash = "sha256:e9b5abb73244c21a30ee493860f8d4ae80665d225b1b436179d48db4f6fc5b9e"},
{file = "apprise-1.9.3.tar.gz", hash = "sha256:f583667ea35b8899cd46318c6cb26f0faf6a4605b119174c2523a012590c65a6"},
{file = "apprise-1.9.4-py3-none-any.whl", hash = "sha256:17dca8ad0a5b2063f6bae707979a51ca2cb374fcc66b0dd5c05a9d286dd40069"},
{file = "apprise-1.9.4.tar.gz", hash = "sha256:483122aee19a89a7b075ecd48ef11ae37d79744f7aeb450bcf985a9a6c28c988"},
]
[package.dependencies]
@ -112,6 +112,11 @@ PyYAML = "*"
requests = "*"
requests-oauthlib = "*"
[package.extras]
all-plugins = ["PGPy", "cryptography", "gntp", "paho-mqtt (!=2.0.*)", "smpplib"]
dev = ["babel", "coverage", "mock", "pytest", "pytest-cov", "pytest-mock", "ruff", "tox", "validate-pyproject"]
windows = ["pywin32"]
[[package]]
name = "astroid"
version = "3.3.8"
@ -1844,14 +1849,14 @@ signedtoken = ["cryptography (>=3.0.0)", "pyjwt (>=2.0.0,<3)"]
[[package]]
name = "openai"
version = "1.98.0"
version = "1.99.1"
description = "The official Python library for the openai API"
optional = false
python-versions = ">=3.8"
groups = ["main"]
files = [
{file = "openai-1.98.0-py3-none-any.whl", hash = "sha256:b99b794ef92196829120e2df37647722104772d2a74d08305df9ced5f26eae34"},
{file = "openai-1.98.0.tar.gz", hash = "sha256:3ee0fcc50ae95267fd22bd1ad095ba5402098f3df2162592e68109999f685427"},
{file = "openai-1.99.1-py3-none-any.whl", hash = "sha256:8eeccc69e0ece1357b51ca0d9fb21324afee09b20c3e5b547d02445ca18a4e03"},
{file = "openai-1.99.1.tar.gz", hash = "sha256:2c9d8e498c298f51bb94bcac724257a3a6cac6139ccdfc1186c6708f7a93120f"},
]
[package.dependencies]