improve import stepper

This commit is contained in:
vabene1111
2025-03-19 18:06:51 +01:00
parent a144f347f8
commit 8ae9de580d
33 changed files with 334 additions and 61 deletions

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"Access_Token": "",
"Actions": "",
"Activity": "",
@@ -19,6 +21,7 @@
"Advanced": "",
"AllRecipes": "",
"App": "",
"AppImportSubtitle": "",
"Are_You_Sure": "",
"Auto_Planner": "",
"Automate": "",
@@ -29,6 +32,7 @@
"BaseUnitHelp": "",
"Book": "",
"Bookmarklet": "",
"BookmarkletImportSubtitle": "",
"Books": "",
"Calories": "",
"Cancel": "",
@@ -361,6 +365,7 @@
"Unrated": "",
"Up": "",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "",
"Use_Plural_Food_Always": "",
"Use_Plural_Food_Simple": "",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"Access_Token": "",
"Actions": "",
"Activity": "",
@@ -19,6 +21,7 @@
"Advanced": "Разширено",
"AllRecipes": "",
"App": "Приложение",
"AppImportSubtitle": "",
"Are_You_Sure": "Сигурен ли си?",
"Auto_Planner": "Автоматичен плановик",
"Automate": "Автоматизация",
@@ -29,6 +32,7 @@
"BaseUnitHelp": "",
"Book": "",
"Bookmarklet": "Книжен пазар",
"BookmarkletImportSubtitle": "",
"Books": "Книги",
"Calories": "Калории",
"Cancel": "Откажи",
@@ -354,6 +358,7 @@
"Unrated": "Без оценка",
"Up": "",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "Импортиране на URL адрес",
"Use_Plural_Food_Always": "",
"Use_Plural_Food_Simple": "",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"API": "",
"Access_Token": "",
"Account": "",
@@ -23,6 +25,7 @@
"AllRecipes": "",
"Amount": "Quantitat",
"App": "",
"AppImportSubtitle": "",
"Are_You_Sure": "",
"Auto_Planner": "",
"Auto_Sort": "Ordeneu automàticament",
@@ -36,6 +39,7 @@
"BaseUnitHelp": "",
"Book": "",
"Bookmarklet": "",
"BookmarkletImportSubtitle": "",
"Books": "",
"Calculator": "",
"Calories": "",
@@ -452,6 +456,7 @@
"Update_Existing_Data": "",
"Updated": "",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "Importeu des d'url",
"Use_Fractions": "",
"Use_Fractions_Help": "",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"API": "API",
"Access_Token": "",
"Account": "Účet",
@@ -23,6 +25,7 @@
"AllRecipes": "",
"Amount": "Množství",
"App": "Aplikace",
"AppImportSubtitle": "",
"Are_You_Sure": "Jste si jistí?",
"Auto_Planner": "Automatický plánovač",
"Auto_Sort": "Automatické řazení",
@@ -36,6 +39,7 @@
"BaseUnitHelp": "",
"Book": "",
"Bookmarklet": "Skript v záložce",
"BookmarkletImportSubtitle": "",
"Books": "Kuchařky",
"Calculator": "Kalkulačka",
"Calories": "Kalorie",
@@ -445,6 +449,7 @@
"Up": "",
"Update_Existing_Data": "Aktualizovat existující data",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "Import pomocí URL odkazu",
"Use_Fractions": "Použít zlomky",
"Use_Fractions_Help": "Automaticky převézt desetinná čísla na zlomky při prohlížení repetu.",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"API": "API",
"Access_Token": "",
"Account": "Bruger",
@@ -23,6 +25,7 @@
"AllRecipes": "",
"Amount": "Mængde",
"App": "App",
"AppImportSubtitle": "",
"Are_You_Sure": "Er du sikker?",
"Auto_Planner": "Autoplanlægger",
"Auto_Sort": "Sortér automatisk",
@@ -36,6 +39,7 @@
"BaseUnitHelp": "",
"Book": "",
"Bookmarklet": "Bogmærke",
"BookmarkletImportSubtitle": "",
"Books": "Bøger",
"Calories": "Kalorier",
"Cancel": "Annuller",
@@ -423,6 +427,7 @@
"Up": "",
"Update_Existing_Data": "Opdaterer eksisterende data",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "Importer fra link",
"Use_Fractions": "Benyt brøker",
"Use_Fractions_Help": "Konverter automatisk decimaler til brøker når du viser en opskrift.",

View File

@@ -1,4 +1,6 @@
{
"AI": "AI",
"AIImportSubtitle": "Verwende AI um Fotos von Rezepten zu importieren.",
"API": "API",
"Access_Token": "Zugriffstoken",
"Account": "Konto",
@@ -25,6 +27,7 @@
"AllRecipes": "Alle Rezepte",
"Amount": "Menge",
"App": "App",
"AppImportSubtitle": "Importiere deine bestehende Rezeptdatenbank.",
"Are_You_Sure": "Bist du sicher?",
"Auto_Planner": "Smart Planen",
"Auto_Sort": "Automatisch sortieren",
@@ -38,6 +41,7 @@
"BaseUnitHelp": "Optionale Standardeinheit zur automatischen Umrechnung",
"Book": "Buch",
"Bookmarklet": "Lesezeichen",
"BookmarkletImportSubtitle": "Verwende ein Bookmarklet um von nicht öffentlichen Seiten zu importieren.",
"Books": "Kochbücher",
"Calculator": "Rechner",
"Calories": "Kalorien",
@@ -456,6 +460,7 @@
"Update_Existing_Data": "Vorhandene Daten aktualisieren",
"Updated": "Aktualisiert",
"UpgradeNow": "Jetzt Upgraden",
"UrlImportSubtitle": "Importiere Rezepte von tausenden unterstützten Seiten.",
"Url_Import": "URL Import",
"Use_Fractions": "Bruchschreibweise verwenden",
"Use_Fractions_Help": "Nachkommastellen automatisch in Bruchschreibweise konvertieren, wenn ein Rezept angeschaut wird.",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"API": "API",
"Access_Token": "",
"Account": "Λογαριασμός",
@@ -22,6 +24,7 @@
"AllRecipes": "",
"Amount": "Ποσότητα",
"App": "Εφαρμογή",
"AppImportSubtitle": "",
"Are_You_Sure": "Είστε σίγουροι;",
"Auto_Planner": "Αυτόματος προγραμματιστής",
"Auto_Sort": "Αυτόματη ταξινόμηση",
@@ -35,6 +38,7 @@
"BaseUnitHelp": "",
"Book": "",
"Bookmarklet": "Bookmarklet",
"BookmarkletImportSubtitle": "",
"Books": "Βιβλία",
"Calories": "Θερμίδες",
"Cancel": "Ακύρωση",
@@ -412,6 +416,7 @@
"Up": "",
"Update_Existing_Data": "Ενημέρωση υπαρχόντων δεδομένων",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "Εισαγωγή Url",
"Use_Fractions": "Χρήση κλασμάτων",
"Use_Fractions_Help": "Αυτόματη μετατροπή δεκαδικών σε κλάσματα κατά την προβολή μιας συνταγής.",

View File

@@ -1,4 +1,6 @@
{
"AI": "AI",
"AIImportSubtitle": "Use AI to import images of recipes.",
"API": "API",
"Access_Token": "Access Token",
"Account": "Account",
@@ -23,6 +25,7 @@
"AllRecipes": "All Recipes",
"Amount": "Amount",
"App": "App",
"AppImportSubtitle": "Import your existing recipe database.",
"Are_You_Sure": "Are you sure?",
"Auto_Planner": "Auto-Planner",
"Auto_Sort": "Auto Sort",
@@ -36,6 +39,7 @@
"BaseUnitHelp": "Standard unit for automatic unit conversion",
"Book": "Book",
"Bookmarklet": "Bookmarklet",
"BookmarkletImportSubtitle": "Use a bookmarklet to import from non public pages.",
"Books": "Books",
"Calculator": "Calculator",
"Calories": "Calories",
@@ -454,6 +458,7 @@
"Update_Existing_Data": "Update Existing Data",
"Updated": "Updated",
"UpgradeNow": "Upgrade now",
"UrlImportSubtitle": "Import recipes from thousands of suppported pages.",
"Url_Import": "Url Import",
"Use_Fractions": "Use Fractions",
"Use_Fractions_Help": "Automatically convert decimals to fractions when viewing a recipe.",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"API": "API",
"Access_Token": "",
"Account": "Cuenta",
@@ -23,6 +25,7 @@
"AllRecipes": "",
"Amount": "Cantidad",
"App": "Aplicación",
"AppImportSubtitle": "",
"Are_You_Sure": "Esta seguro?",
"Auto_Planner": "Planificador Automático",
"Auto_Sort": "Ordenar Automáticamente",
@@ -36,6 +39,7 @@
"BaseUnitHelp": "",
"Book": "",
"Bookmarklet": "Marcadores",
"BookmarkletImportSubtitle": "",
"Books": "Libros",
"Calculator": "Calculadora",
"Calories": "Calorias",
@@ -451,6 +455,7 @@
"Update_Existing_Data": "Actualizar Datos Existentes",
"Updated": "Actualizada",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "Importar desde url",
"Use_Fractions": "Use fracciones",
"Use_Fractions_Help": "Convertir automáticamente los decimales en fracciones al ver una receta.",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"Access_Token": "",
"Actions": "",
"Activity": "",
@@ -13,6 +15,7 @@
"Admin": "",
"Advanced Search Settings": "Tarkennetun Haun Asetukset",
"AllRecipes": "",
"AppImportSubtitle": "",
"Auto_Planner": "Automaattinen Suunnittelija",
"Automate": "Automatisoi",
"Automation": "Automaatio",
@@ -21,6 +24,7 @@
"BaseUnit": "",
"BaseUnitHelp": "",
"Book": "",
"BookmarkletImportSubtitle": "",
"Books": "Kirjat",
"Calories": "Kalorit",
"Cancel": "Peruuta",
@@ -275,6 +279,7 @@
"Unrated": "Luokittelematon",
"Up": "",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "URL Tuonti",
"Use_Plural_Food_Always": "",
"Use_Plural_Food_Simple": "",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"API": "API",
"Access_Token": "",
"Account": "Compte",
@@ -24,6 +26,7 @@
"AllRecipes": "",
"Amount": "Quantité",
"App": "Appli",
"AppImportSubtitle": "",
"Are_You_Sure": "Etes-vous sûr ?",
"Auto_Planner": "Planning Auto",
"Auto_Sort": "Tri automatique",
@@ -37,6 +40,7 @@
"BaseUnitHelp": "",
"Book": "",
"Bookmarklet": "Signet",
"BookmarkletImportSubtitle": "",
"Books": "Livres",
"Calculator": "Calculatrice",
"Calories": "Calories",
@@ -451,6 +455,7 @@
"Update_Existing_Data": "Mettre à jour les données existantes",
"Updated": "Mis à jour",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "Importation de lurl",
"Use_Fractions": "Utiliser les fractions",
"Use_Fractions_Help": "Convertir les décimales en fractions automatiquement lors de la visualisation dune recette.",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"API": "API",
"Access_Token": "",
"Account": "חשבון",
@@ -23,6 +25,7 @@
"AllRecipes": "",
"Amount": "כמות",
"App": "אפליקציה",
"AppImportSubtitle": "",
"Are_You_Sure": "בטוח?",
"Auto_Planner": "מתכנן אוטומטי",
"Auto_Sort": "סידור אוטומטי",
@@ -36,6 +39,7 @@
"BaseUnitHelp": "",
"Book": "",
"Bookmarklet": "סימניה",
"BookmarkletImportSubtitle": "",
"Books": "ספרים",
"Calculator": "מחשבון",
"Calories": "קלוריות",
@@ -453,6 +457,7 @@
"Update_Existing_Data": "עדכון מידע קיים",
"Updated": "עודכן",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "ייבוא מכתובת",
"Use_Fractions": "השתמש בשברים",
"Use_Fractions_Help": "המר אוטומטית מדצמילי לשברים כאשר צופים במתכון.",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"API": "API",
"Access_Token": "",
"Account": "Fiók",
@@ -23,6 +25,7 @@
"AllRecipes": "",
"Amount": "Összeg",
"App": "Applikáció",
"AppImportSubtitle": "",
"Are_You_Sure": "Biztos benne?",
"Auto_Planner": "Automatikus tervező",
"Auto_Sort": "Automatikus rendezés",
@@ -36,6 +39,7 @@
"BaseUnitHelp": "",
"Book": "",
"Bookmarklet": "Könyvjelző",
"BookmarkletImportSubtitle": "",
"Books": "Könyvek",
"Calories": "Kalóriák",
"Cancel": "Mégsem",
@@ -414,6 +418,7 @@
"Up": "",
"Update_Existing_Data": "Meglévő adatok frissítése",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "URL import",
"Use_Fractions": "Tört használata",
"Use_Fractions_Help": "A receptek megtekintésekor a tizedesjegyeket automatikusan törtekre konvertálja.",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"Access_Token": "",
"Actions": "",
"Activity": "",
@@ -12,12 +14,14 @@
"Admin": "",
"Advanced Search Settings": "Ընդլայնված փնտրման կարգավորումներ",
"AllRecipes": "",
"AppImportSubtitle": "",
"Automate": "Ավտոմատացնել",
"Available": "",
"AvailableCategories": "",
"BaseUnit": "",
"BaseUnitHelp": "",
"Book": "",
"BookmarkletImportSubtitle": "",
"Books": "",
"Calories": "",
"Cancel": "",
@@ -205,6 +209,7 @@
"UnitConversion": "",
"Up": "",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "URL ներմուծում",
"Use_Plural_Food_Always": "",
"Use_Plural_Food_Simple": "",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"API": "",
"Access_Token": "",
"Account": "",
@@ -21,6 +23,7 @@
"Advanced": "",
"AllRecipes": "",
"App": "",
"AppImportSubtitle": "",
"Are_You_Sure": "",
"Auto_Planner": "",
"Automate": "",
@@ -31,6 +34,7 @@
"BaseUnitHelp": "",
"Book": "",
"Bookmarklet": "",
"BookmarkletImportSubtitle": "",
"Books": "Buku",
"Calories": "Kalori",
"Cancel": "Batal",
@@ -386,6 +390,7 @@
"Unrated": "",
"Up": "",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "Impor Url",
"Use_Fractions": "",
"Use_Fractions_Help": "",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"API": "",
"Access_Token": "",
"Account": "",
@@ -23,6 +25,7 @@
"AllRecipes": "",
"Amount": "",
"App": "",
"AppImportSubtitle": "",
"Are_You_Sure": "",
"Auto_Planner": "",
"Auto_Sort": "",
@@ -36,6 +39,7 @@
"BaseUnitHelp": "",
"Book": "",
"Bookmarklet": "",
"BookmarkletImportSubtitle": "",
"Books": "",
"Calculator": "",
"Calories": "",
@@ -451,6 +455,7 @@
"Update_Existing_Data": "",
"Updated": "",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "",
"Use_Fractions": "",
"Use_Fractions_Help": "",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"API": "API",
"Access_Token": "",
"Account": "Account",
@@ -23,6 +25,7 @@
"AllRecipes": "",
"Amount": "Quantità",
"App": "Applicazione",
"AppImportSubtitle": "",
"Are_You_Sure": "Sei sicuro?",
"Auto_Planner": "Pianificazione automatica",
"Auto_Sort": "Ordinamento Automatico",
@@ -35,6 +38,7 @@
"BaseUnitHelp": "",
"Book": "",
"Bookmarklet": "Segnalibro",
"BookmarkletImportSubtitle": "",
"Books": "Libri",
"Calories": "Calorie",
"Cancel": "Annulla",
@@ -397,6 +401,7 @@
"Unrated": "Senza valutazione",
"Up": "",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "Importa da URL",
"Use_Fractions": "Usa frazioni",
"Use_Fractions_Help": "Converti automaticamente i decimali in frazioni quando apri una ricetta.",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"API": "",
"Access_Token": "",
"Account": "",
@@ -23,6 +25,7 @@
"AllRecipes": "",
"Amount": "Suma",
"App": "",
"AppImportSubtitle": "",
"Are_You_Sure": "",
"Auto_Planner": "",
"Auto_Sort": "",
@@ -36,6 +39,7 @@
"BaseUnitHelp": "",
"Book": "",
"Bookmarklet": "",
"BookmarkletImportSubtitle": "",
"Books": "",
"Calories": "",
"Cancel": "",
@@ -421,6 +425,7 @@
"Up": "",
"Update_Existing_Data": "",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "URL importavimas",
"Use_Fractions": "",
"Use_Fractions_Help": "",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"API": "API",
"Access_Token": "",
"Account": "",
@@ -23,6 +25,7 @@
"AllRecipes": "",
"Amount": "Mengde",
"App": "App",
"AppImportSubtitle": "",
"Are_You_Sure": "",
"Auto_Planner": "",
"Auto_Sort": "Sorter Automatisk",
@@ -35,6 +38,7 @@
"BaseUnitHelp": "",
"Book": "",
"Bookmarklet": "",
"BookmarkletImportSubtitle": "",
"Books": "Bøker",
"Calories": "Kalorier",
"Cancel": "Avbryt",
@@ -410,6 +414,7 @@
"Up": "",
"Update_Existing_Data": "Oppdater eksisterende data",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "Importer lenke",
"Use_Fractions": "Bruk deler",
"Use_Fractions_Help": "Automatisk konverter desimaler til deler når du ser på en oppskrift.",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"API": "API",
"Access_Token": "",
"Account": "Account",
@@ -24,6 +26,7 @@
"AllRecipes": "",
"Amount": "Hoeveelheid",
"App": "App",
"AppImportSubtitle": "",
"Are_You_Sure": "Weet je het zeker?",
"Auto_Planner": "Autoplanner",
"Auto_Sort": "Automatisch sorteren",
@@ -37,6 +40,7 @@
"BaseUnitHelp": "",
"Book": "",
"Bookmarklet": "Bladwijzer",
"BookmarkletImportSubtitle": "",
"Books": "Boeken",
"Calories": "Calorieën",
"Cancel": "Annuleer",
@@ -414,6 +418,7 @@
"Up": "",
"Update_Existing_Data": "Bestaande gegevens bijwerken",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "Importeer URL",
"Use_Fractions": "Gebruik Kommagetallen",
"Use_Fractions_Help": "Zet decimalen automatisch om naar breuken tijdens het bekijken van een recept.",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"API": "API",
"Access_Token": "",
"Account": "Konto",
@@ -24,6 +26,7 @@
"AllRecipes": "",
"Amount": "Ilość",
"App": "Aplikacja",
"AppImportSubtitle": "",
"Are_You_Sure": "Jesteś pewny?",
"Auto_Planner": "Plan automatyczny",
"Auto_Sort": "Auto sortowanie",
@@ -37,6 +40,7 @@
"BaseUnitHelp": "",
"Book": "",
"Bookmarklet": "Skryptozakładka",
"BookmarkletImportSubtitle": "",
"Books": "Książki",
"Calculator": "Kalkulator",
"Calories": "Kalorie",
@@ -454,6 +458,7 @@
"Update_Existing_Data": "Zaktualizuj istniejące dane",
"Updated": "Zaktualizowano",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "Importowanie URL",
"Use_Fractions": "Użyj ułamków",
"Use_Fractions_Help": "Automatycznie konwertuj ułamki dziesiętne na ułamki zwykłe podczas przeglądania przepisów.",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"Access_Token": "",
"Actions": "",
"Activity": "",
@@ -19,6 +21,7 @@
"Advanced": "Avançado",
"AllRecipes": "",
"Amount": "Quantidade",
"AppImportSubtitle": "",
"Auto_Planner": "",
"Auto_Sort": "Classificação automática",
"Auto_Sort_Help": "Mover todos os ingredientes para o passo mais indicado.",
@@ -29,6 +32,7 @@
"BaseUnit": "",
"BaseUnitHelp": "",
"Book": "",
"BookmarkletImportSubtitle": "",
"Books": "Livros",
"Calories": "Calorias",
"Cancel": "Cancelar",
@@ -348,6 +352,7 @@
"Unrated": "Sem classificação",
"Up": "",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "Importação de URL",
"Use_Fractions": "Usar frações",
"Use_Fractions_Help": "Converter automaticamente casas decimais para frações enquanto se visualiza uma receita.",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"API": "API",
"Access_Token": "",
"Account": "Conta",
@@ -23,6 +25,7 @@
"AllRecipes": "",
"Amount": "Quantidade",
"App": "Aplicação",
"AppImportSubtitle": "",
"Are_You_Sure": "Você tem certeza?",
"Auto_Planner": "Planejamento Automático",
"Auto_Sort": "Classificação automática",
@@ -35,6 +38,7 @@
"BaseUnit": "",
"BaseUnitHelp": "",
"Book": "",
"BookmarkletImportSubtitle": "",
"Books": "Livros",
"Calculator": "Calculadora",
"Calories": "Calorias",
@@ -430,6 +434,7 @@
"Up": "",
"Update_Existing_Data": "Atualizar Dados Existentes",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "Importar de URL",
"Use_Fractions": "Usar Frações",
"Use_Fractions_Help": "Automaticamente converter decimais para frações quando visualizando uma receita.",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"API": "API",
"Access_Token": "",
"Account": "Cont",
@@ -23,6 +25,7 @@
"AllRecipes": "",
"Amount": "Cantitate",
"App": "Aplicație",
"AppImportSubtitle": "",
"Are_You_Sure": "Sunteți sigur?",
"Auto_Planner": "Planificator automat",
"Auto_Sort": "Sortare automatizată",
@@ -35,6 +38,7 @@
"BaseUnitHelp": "",
"Book": "",
"Bookmarklet": "Marcaj",
"BookmarkletImportSubtitle": "",
"Books": "Cărți",
"Calories": "Calorii",
"Cancel": "Anulează",
@@ -401,6 +405,7 @@
"Unrated": "Neevaluat",
"Up": "",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "Importă URL",
"Use_Fractions": "Folosire fracțiuni",
"Use_Fractions_Help": "Convertiți automat zecimalele în fracții atunci când vizualizați o rețetă.",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"Access_Token": "",
"Actions": "",
"Activity": "",
@@ -19,6 +21,7 @@
"Advanced": "Расширенный",
"Advanced Search Settings": "",
"AllRecipes": "",
"AppImportSubtitle": "",
"Are_You_Sure": "Вы уверены?",
"Auto_Planner": "Автопланировщик",
"Automate": "Автоматизировать",
@@ -28,6 +31,7 @@
"BaseUnit": "",
"BaseUnitHelp": "",
"Book": "",
"BookmarkletImportSubtitle": "",
"Books": "Книги",
"Calories": "Каллории",
"Cancel": "Отменить",
@@ -329,6 +333,7 @@
"Unrated": "Без рейтинга",
"Up": "",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "Импорт гиперссылки",
"User": "Пользователь",
"View": "Просмотр",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"Access_Token": "",
"Actions": "",
"Activity": "",
@@ -17,6 +19,7 @@
"Advanced Search Settings": "",
"AllRecipes": "",
"Amount": "Količina",
"AppImportSubtitle": "",
"Auto_Planner": "Avto-planer",
"Auto_Sort": "Samodejno Razvrščanje",
"Auto_Sort_Help": "Vse sestavine prestavi v najprimernejši korak.",
@@ -27,6 +30,7 @@
"BaseUnit": "",
"BaseUnitHelp": "",
"Book": "",
"BookmarkletImportSubtitle": "",
"Books": "Knjige",
"Calories": "Kalorije",
"Cancel": "Prekini",
@@ -320,6 +324,7 @@
"Up": "",
"Update_Existing_Data": "Posodobitev Obstoječih Podatkov",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "URL uvoz",
"Use_Metric": "Uporaba Metričnih Enot",
"Use_Plural_Food_Always": "",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"API": "API",
"Access_Token": "",
"Account": "Konto",
@@ -24,6 +26,7 @@
"AllRecipes": "",
"Amount": "Mängd",
"App": "App",
"AppImportSubtitle": "",
"Are_You_Sure": "Är du säker?",
"Auto_Planner": "Autoplanera",
"Auto_Sort": "Automatisk Sortering",
@@ -37,6 +40,7 @@
"BaseUnitHelp": "",
"Book": "",
"Bookmarklet": "Bokmärke",
"BookmarkletImportSubtitle": "",
"Books": "Böcker",
"Calculator": "Räknare",
"Calories": "Kalorier",
@@ -454,6 +458,7 @@
"Update_Existing_Data": "Uppdatera existerande data",
"Updated": "Uppdaterad",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "Länk import",
"Use_Fractions": "Använd bråk",
"Use_Fractions_Help": "Konvertera automatiskt decimaler till bråktal när du visar ett recept.",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"API": "API",
"Access_Token": "",
"Account": "Hesap",
@@ -23,6 +25,7 @@
"AllRecipes": "",
"Amount": "Miktar",
"App": "Uygulama",
"AppImportSubtitle": "",
"Are_You_Sure": "Emin misin?",
"Auto_Planner": "Otomatik Planlayıcı",
"Auto_Sort": "Otomatik Sırala",
@@ -36,6 +39,7 @@
"BaseUnitHelp": "",
"Book": "",
"Bookmarklet": "Yer İmi",
"BookmarkletImportSubtitle": "",
"Books": "Kitaplar",
"Calculator": "Hesap Makinesi",
"Calories": "Kaloriler",
@@ -453,6 +457,7 @@
"Update_Existing_Data": "Mevcut Verileri Güncelleyin",
"Updated": "Güncellendi",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "Url İçeri Aktar",
"Use_Fractions": "Kesirleri Kullan",
"Use_Fractions_Help": "Bir tarifi görüntülerken ondalık sayıları otomatik olarak kesirlere dönüştürün.",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"Access_Token": "",
"Actions": "",
"Activity": "",
@@ -20,6 +22,7 @@
"AllRecipes": "",
"Amount": "Кількість",
"App": "",
"AppImportSubtitle": "",
"Are_You_Sure": "",
"Auto_Planner": "",
"Auto_Sort": "Автоматичне сортування",
@@ -32,6 +35,7 @@
"BaseUnitHelp": "",
"Book": "",
"Bookmarklet": "",
"BookmarkletImportSubtitle": "",
"Books": "Книжки",
"Calories": "Калорії",
"Cancel": "Відмінити",
@@ -370,6 +374,7 @@
"Unrated": "Без рейтингу",
"Up": "",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "Імпорт за посиланням",
"Use_Fractions": "Використовувати дроби",
"Use_Fractions_Help": "Автоматично конвертувати десятки в дроби, коли дивитесь рецепт.",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"API": "API",
"Access_Token": "",
"Account": "账户",
@@ -23,6 +25,7 @@
"AllRecipes": "",
"Amount": "数量",
"App": "应用",
"AppImportSubtitle": "",
"Are_You_Sure": "你确定吗?",
"Auto_Planner": "自动计划",
"Auto_Sort": "自动分类",
@@ -36,6 +39,7 @@
"BaseUnitHelp": "",
"Book": "",
"Bookmarklet": "书签",
"BookmarkletImportSubtitle": "",
"Books": "书籍",
"Calories": "卡路里",
"Cancel": "取消",
@@ -444,6 +448,7 @@
"Up": "",
"Update_Existing_Data": "更新现有数据",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "导入网址",
"Use_Fractions": "使用分数",
"Use_Fractions_Help": "查看食谱时自动将小数转换为分数。",

View File

@@ -1,4 +1,6 @@
{
"AI": "",
"AIImportSubtitle": "",
"Access_Token": "",
"Actions": "",
"Activity": "",
@@ -10,11 +12,13 @@
"Add_to_Shopping": "加入購物清單",
"Admin": "",
"AllRecipes": "",
"AppImportSubtitle": "",
"Available": "",
"AvailableCategories": "",
"BaseUnit": "",
"BaseUnitHelp": "",
"Book": "",
"BookmarkletImportSubtitle": "",
"Books": "",
"Calories": "",
"Cancel": "",
@@ -175,6 +179,7 @@
"UnitConversion": "",
"Up": "",
"UpgradeNow": "",
"UrlImportSubtitle": "",
"Url_Import": "",
"Use_Plural_Food_Always": "",
"Use_Plural_Food_Simple": "",

View File

@@ -3,38 +3,105 @@
<v-row>
<v-col>
<v-stepper v-model="stepper">
<template v-slot:default="{ prev, next }">
<v-stepper-header>
<v-stepper-item :title="$t('Import')" value="1"></v-stepper-item>
<v-stepper-item :title="$t('Type')" value="type" icon=" "></v-stepper-item>
<v-divider></v-divider>
<v-stepper-item :title="$t('Image')" value="2"></v-stepper-item>
<template v-if="['url','ai'].includes(importType)">
<v-stepper-item :title="$t('Import')" value="url" icon=" "></v-stepper-item>
<v-divider></v-divider>
<v-stepper-item :title="$t('Keywords')" value="3"></v-stepper-item>
<template v-if="importResponse.duplicates && importResponse.duplicates.length > 0">
<v-stepper-item :title="$t('Duplicate')" value="duplicates" icon=" "></v-stepper-item>
<v-divider></v-divider>
<v-stepper-item :title="$t('Steps')" value="4"></v-stepper-item>
</template>
<v-stepper-item :title="$t('Image')" value="image_chooser" icon=" "></v-stepper-item>
<v-divider></v-divider>
<v-stepper-item :title="$t('Save')" value="5"></v-stepper-item>
<v-stepper-item :title="$t('Keywords')" value="keywords_chooser" icon=" "></v-stepper-item>
<v-divider></v-divider>
<v-stepper-item :title="$t('Steps')" value="step_editor" icon=" "></v-stepper-item>
<v-divider></v-divider>
<v-stepper-item :title="$t('Save')" value="confirm" icon=" "></v-stepper-item>
</template>
</v-stepper-header>
<v-stepper-window>
<v-stepper-window-item value="1">
<v-card :loading="loading">
<v-card-text>
<v-text-field :label="$t('Website') + ' (https://...)'" v-model="importUrl">
<template #append>
<v-btn color="primary" icon="fa-solid fa-cloud-arrow-down fa-fw" @click="loadRecipeFromUrl()"></v-btn>
<v-stepper-window-item value="type">
<v-row>
<v-col cols="12" md="6">
<v-card
:title="$t('Url_Import')"
:subtitle="$t('UrlImportSubtitle')"
prepend-icon="$import"
variant="outlined"
:color="(importType == 'url') ? 'primary' : ''"
elevation="1"
@click="importType = 'url'">
</v-card>
</v-col>
<v-col cols="12" md="6">
<v-card
:title="$t('AI')"
:subtitle="$t('AIImportSubtitle')"
prepend-icon="$ai"
variant="outlined"
:color="(importType == 'ai') ? 'primary' : ''"
elevation="1"
@click="importType = 'ai'">
</v-card>
</v-col>
<v-col cols="12" md="6">
<v-card
:title="$t('App')"
:subtitle="$t('AppImportSubtitle')"
prepend-icon="fa-solid fa-folder-open"
variant="outlined"
:color="(importType == 'app') ? 'primary' : ''"
elevation="1"
@click="importType = 'app'">
</v-card>
</v-col>
<v-col cols="12" md="6">
<v-card
:title="$t('Bookmarklet')"
:subtitle="$t('BookmarkletImportSubtitle')"
prepend-icon="fa-solid fa-bookmark"
variant="outlined"
:color="(importType == 'bookmarklet') ? 'primary' : ''"
elevation="1"
@click="importType = 'bookmarklet'">
</v-card>
</v-col>
</v-row>
<v-stepper-actions>
<template #prev>
<v-spacer></v-spacer>
</template>
</v-text-field>
<v-file-input v-model="image" :label="$t('Image')" @click="uploadAndConvertImage()">
<template #append>
<v-btn>AI Import</v-btn>
<template #next>
<v-btn @click="stepper = 'url'" v-if="['url','ai'].includes(importType)">{{ $t('Next') }}</v-btn>
</template>
</v-file-input>
</v-stepper-actions>
</v-stepper-window-item>
<v-stepper-window-item value="url">
<!-- <v-textarea :placeholder="$t('paste_json')"></v-textarea> -->
<v-text-field :label="$t('Website') + ' (https://...)'" v-model="importUrl" v-if="importType == 'url'" :loading="loading"></v-text-field>
<v-file-input v-model="image" :label="$t('Image')" v-if="importType == 'ai'" :loading="loading"></v-file-input>
<v-stepper-actions>
<template #prev>
<v-btn @click="stepper = 'type'">{{ $t('Back') }}</v-btn>
</template>
<template #next>
<v-btn @click="loadRecipeFromUrl()" v-if="importType == 'url'" :disabled="importUrl == ''" :loading="loading">{{ $t('Load') }}</v-btn>
<v-btn @click="uploadAndConvertImage()" v-if="importType == 'ai'" :disabled="image == null" :loading="loading">{{ $t('Load') }}</v-btn>
</template>
</v-stepper-actions>
</v-stepper-window-item>
<v-stepper-window-item value="duplicates">
<v-alert variant="tonal" v-if="importResponse.duplicates && importResponse.duplicates.length > 0">
<v-alert-title>{{ $t('Duplicate') }}</v-alert-title>
{{ $t('DuplicateFoundInfo') }}
@@ -44,10 +111,17 @@
</v-list-item>
</v-list>
</v-alert>
</v-card-text>
</v-card>
<v-stepper-actions>
<template #prev>
<v-btn @click="stepper = 'url'">{{ $t('Back') }}</v-btn>
</template>
<template #next>
<v-btn @click="stepper = 'image_chooser'">{{ $t('Next') }}</v-btn>
</template>
</v-stepper-actions>
</v-stepper-window-item>
<v-stepper-window-item value="2">
<v-stepper-window-item value="image_chooser">
<v-row>
<v-col cols="12" md="6">
<h2 class="text-h5">{{ $t('Selected') }}</h2>
@@ -62,8 +136,17 @@
</v-row>
</v-col>
</v-row>
<v-stepper-actions>
<template #prev>
<v-btn @click="stepper = 'duplicates'" v-if="importResponse.duplicates && importResponse.duplicates.length > 0">{{ $t('Back') }}</v-btn>
<v-btn @click="stepper = 'url'" v-else>{{ $t('Back') }}</v-btn>
</template>
<template #next>
<v-btn @click="stepper = 'keywords_chooser'">{{ $t('Next') }}</v-btn>
</template>
</v-stepper-actions>
</v-stepper-window-item>
<v-stepper-window-item value="3">
<v-stepper-window-item value="keywords_chooser">
<v-row>
<v-col class="text-center">
<v-btn-group border divided>
@@ -95,9 +178,16 @@
</v-list-item>
</v-list>
<v-stepper-actions>
<template #prev>
<v-btn @click="stepper = 'image_chooser'">{{ $t('Back') }}</v-btn>
</template>
<template #next>
<v-btn @click="stepper = 'step_editor'">{{ $t('Next') }}</v-btn>
</template>
</v-stepper-actions>
</v-stepper-window-item>
<v-stepper-window-item value="4">
<v-stepper-window-item value="step_editor">
<v-row>
<v-col class="text-center">
<v-btn-group border divided>
@@ -120,7 +210,7 @@
</v-menu>
</v-btn>
</v-col>
<v-col cols="12" md="6">
<v-col cols="12" md="confirm">
<v-list>
<vue-draggable v-model="s.ingredients" group="ingredients" handle=".drag-handle" empty-insert-threshold="25">
<v-list-item v-for="i in s.ingredients" border>
@@ -168,9 +258,16 @@
</v-card-actions>
</v-card>
</v-dialog>
<v-stepper-actions>
<template #prev>
<v-btn @click="stepper = 'keywords_chooser'">{{ $t('Back') }}</v-btn>
</template>
<template #next>
<v-btn @click="stepper = 'confirm'">{{ $t('Next') }}</v-btn>
</template>
</v-stepper-actions>
</v-stepper-window-item>
<v-stepper-window-item value="5">
<v-stepper-window-item value="confirm">
<v-card :loading="loading || fileApiLoading">
<v-card-title>{{ importResponse.recipe.name }}</v-card-title>
<v-row>
@@ -186,23 +283,31 @@
</v-row>
</v-card>
<v-stepper-actions>
<template #prev>
<v-btn @click="stepper = 'step_editor'">{{ $t('Back') }}</v-btn>
</template>
<template #next>
<v-btn @click="createRecipeFromImport()" :disabled="false" color="success">{{ $t('Import') }}</v-btn>
</template>
</v-stepper-actions>
</v-stepper-window-item>
</v-stepper-window>
<v-stepper-actions>
<template #prev>
<v-btn @click="stepper = (parseInt(stepper) - 1).toString()">Zurück</v-btn>
</template>
<template #next>
<v-btn @click="createRecipeFromImport()" color="success" :disabled="Object.keys(importResponse).length == 0" v-if="stepper == '1'">
{{ $t('Import') }}
</v-btn>
<v-btn @click="stepper = (parseInt(stepper) + 1).toString()" :disabled="Object.keys(importResponse).length == 0" v-if="stepper != '5'">
{{ stepper == '1' ? $t('Edit') : $t('Next') }}
</v-btn>
<v-btn @click="createRecipeFromImport()" color="success" :disabled="false" v-if="stepper == '5'">{{ $t('Import') }}</v-btn>
</template>
</v-stepper-actions>
<!-- <v-stepper-actions>-->
<!-- <template #prev>-->
<!-- <v-btn @click="stepper = (parseInt(stepper) - 1).toString()">Zurück</v-btn>-->
<!-- </template>-->
<!-- <template #next>-->
<!-- <v-btn @click="createRecipeFromImport()" color="success" :disabled="Object.keys(importResponse).length == 0" v-if="stepper == '1'">-->
<!-- {{ $t('Import') }}-->
<!-- </v-btn>-->
<!-- <v-btn @click="stepper = (parseInt(stepper) + 1).toString()" :disabled="Object.keys(importResponse).length == 0" v-if="stepper != '5'">-->
<!-- {{ stepper == '1' ? $t('Edit') : $t('Next') }}-->
<!-- </v-btn>-->
<!-- <v-btn @click="createRecipeFromImport()" color="success" :disabled="false" v-if="stepper == '5'">{{ $t('Import') }}</v-btn>-->
<!-- </template>-->
<!-- </v-stepper-actions>-->
</template>
</v-stepper>
@@ -234,7 +339,8 @@ const {mobile} = useDisplay()
const router = useRouter()
const {updateRecipeImage, convertImageToRecipe, fileApiLoading} = useFileApi()
const stepper = ref("1")
const importType = ref<'url' | 'ai' | 'app' | 'bookmarklet' | 'source'>("url")
const stepper = ref("type")
const dialog = ref(false)
const loading = ref(false)
const importUrl = ref("")
@@ -267,6 +373,12 @@ function loadRecipeFromUrl() {
loading.value = true
api.apiRecipeFromSourceCreate({recipeFromSource: {url: importUrl.value}}).then(r => {
importResponse.value = r
if (importResponse.value.duplicates && importResponse.value.duplicates.length > 0) {
stepper.value = 'duplicates'
} else {
stepper.value = 'image_chooser'
}
}).catch(err => {
useMessageStore().addError(ErrorMessageType.FETCH_ERROR, err)
}).finally(() => {
@@ -276,8 +388,13 @@ function loadRecipeFromUrl() {
function uploadAndConvertImage() {
if (image.value != null) {
loading.value = true
convertImageToRecipe(image.value).then(r => {
loading.value = false
importResponse.value = r
stepper.value = 'image_chooser'
}).catch(err => {
useMessageStore().addError(ErrorMessageType.FETCH_ERROR, err)
})
}
}

View File

@@ -83,7 +83,8 @@ export default createVuetify({
recipes: 'fa-solid fa-book',
books: 'fa-solid fa-book-bookmark',
menu: 'fa-solid fa-ellipsis-vertical',
import: 'fa-solid fa-globe'
import: 'fa-solid fa-globe',
ai: 'fa-solid fa-wand-magic-sparkles'
},
sets: {
fa,