{ "app": { "name": "EverShelf", "loading": "Laden..." }, "nav": { "title": "🏠 Vorratskammer", "home": "Home", "inventory": "Vorrat", "recipes": "Rezepte", "shopping": "Einkauf", "log": "Log" }, "btn": { "back": "← Zurück", "save": "💾 Speichern", "cancel": "✕ Abbrechen", "close": "Schließen", "add": "✅ Hinzufügen", "delete": "Löschen", "edit": "✏️ Bearbeiten", "search": "🔍 Suchen", "go": "✅ Los", "toggle_password": "👁️ Anzeigen/Ausblenden", "load_more": "Mehr laden...", "save_config": "💾 Konfiguration speichern", "save_product": "💾 Produkt speichern", "restart": "↺ Neustart", "reset_default": "↺ Standard wiederherstellen" }, "locations": { "dispensa": "Vorratskammer", "frigo": "Kühlschrank", "freezer": "Gefrierschrank", "altro": "Sonstiges" }, "categories": { "latticini": "Milchprodukte", "carne": "Fleisch", "pesce": "Fisch", "frutta": "Obst", "verdura": "Gemüse", "pasta": "Pasta & Reis", "pane": "Brot & Backwaren", "surgelati": "Tiefkühl", "bevande": "Getränke", "condimenti": "Gewürze", "snack": "Snacks & Süßes", "conserve": "Konserven", "cereali": "Getreide & Hülsenfrüchte", "igiene": "Hygiene", "pulizia": "Reinigung", "altro": "Sonstiges", "select": "-- Auswählen --" }, "units": { "pz": "Stk", "conf": "Pkg", "g": "g", "ml": "ml", "pieces": "Stück", "grams": "Gramm", "box": "Packung", "boxes": "Packungen" }, "shopping_sections": { "frutta_verdura": "Obst & Gemüse", "carne_pesce": "Fleisch & Fisch", "latticini": "Milchprodukte & Frisches", "pane_dolci": "Brot & Süßes", "pasta": "Pasta & Getreide", "conserve": "Konserven & Soßen", "surgelati": "Tiefkühl", "bevande": "Getränke", "pulizia_igiene": "Reinigung & Hygiene", "altro": "Sonstiges" }, "dashboard": { "expired_title": "🚫 Abgelaufen", "expiring_title": "⏰ Bald ablaufend", "stats_period": "📊 Letzte 30 Tage", "opened_title": "📦 Geöffnete Produkte", "review_title": "🔍 Zu prüfen", "review_hint": "Mengen, die ungewöhnlich erscheinen. Bestätigen oder ändern.", "quick_recipe": "🍳 Schnelles Rezept mit ablaufenden Produkten" }, "inventory": { "title": "Vorrat", "filter_all": "Alle", "search_placeholder": "🔍 Produkt suchen...", "empty": "Keine Produkte hier.\nScanne ein Produkt, um es hinzuzufügen!", "no_items_found": "Keine Bestandseinträge gefunden" }, "scan": { "title": "Produkt scannen", "mode_shopping": "🛒 Einkaufsmodus", "mode_shopping_end": "✅ Einkauf beenden", "zoom": "Zoom", "barcode_placeholder": "Barcode eingeben...", "quick_name_divider": "oder Name eingeben", "quick_name_placeholder": "z.B.: Äpfel, Zucchini, Brot...", "manual_entry": "✏️ Manuelle Eingabe", "ai_identify": "🤖 Mit KI identifizieren", "hint": "Barcode scannen, Produktname eingeben oder KI zur Identifikation nutzen", "debug_toggle": "🐛 Debug Log", "barcode_acquired": "🔖 Barcode gescannt: {code}", "scan_barcode": "🔖 Barcode scannen" }, "action": { "title": "Was möchtest du tun?", "add_btn": "📥 HINZUFÜGEN", "add_sub": "in Vorrat/Kühlschrank", "use_btn": "📤 VERWENDEN / VERBRAUCHEN", "use_sub": "aus Vorrat/Kühlschrank" }, "add": { "title": "Zum Vorrat hinzufügen", "location_label": "📍 Wohin?", "quantity_label": "📦 Menge", "conf_size_label": "📦 Jede Packung enthält:", "conf_size_placeholder": "z.B. 300", "vacuum_label": "🫙 Vakuumiert", "vacuum_hint": "Ablaufdatum wird automatisch verlängert", "submit": "✅ Hinzufügen" }, "use": { "title": "Verwenden / Verbrauchen", "location_label": "📍 Woher?", "quantity_label": "Wie viel hast du benutzt?", "partial_hint": "Oder genaue Menge angeben:", "use_all": "🗑️ ALLES verwendet / Aufgebraucht", "submit": "📤 Diese Menge verwenden", "available": "📦 Verfügbar:", "not_in_inventory": "⚠️ Produkt nicht im Bestand.", "expiry_warning": "⚠️ Verwende zuerst die{loc}, die am {date} abläuft — {when}!" }, "product": { "title_new": "Neues Produkt", "title_edit": "Produkt bearbeiten", "ai_fill": "📷 Foto machen und mit KI identifizieren", "ai_fill_hint": "KI füllt die Produktfelder automatisch aus", "name_label": "🏷️ Produktname *", "name_placeholder": "z.B.: Vollmilch, Penne Nudeln...", "brand_label": "🏢 Marke", "brand_placeholder": "z.B.: Barilla, Müller, Knorr...", "category_label": "📂 Kategorie", "unit_label": "📏 Maßeinheit", "default_qty_label": "🔢 Standardmenge", "conf_size_label": "📦 Jede Packung enthält:", "conf_size_placeholder": "z.B. 300", "notes_label": "📝 Notizen", "notes_placeholder": "z.B.: laktosefrei, bio, nach dem Öffnen im Kühlschrank aufbewahren...", "barcode_label": "🔖 Barcode", "barcode_placeholder": "Barcode (falls vorhanden)", "barcode_hint": "⚠️ Barcode hinzufügen, damit du beim nächsten Einkauf nur scannen musst!", "submit": "💾 Produkt speichern", "name_required": "Produktname eingeben", "conf_size_required": "Packungsinhalt angeben", "expiry_estimated": "Geschätztes Ablaufdatum:", "scan_expiry": "Ablaufdatum scannen", "expiry_hint": "📝 Du kannst das Datum ändern oder mit der Kamera scannen", "add_batch": "📦 + Charge mit anderem Ablaufdatum", "package_info": "📦 Packung: {info}", "edit_catalog": "⚙️ Produktinfo bearbeiten (Name, Marke, Kategorie…)", "not_recognized": "⚠️ Produkt nicht erkannt", "edit_info": "✏️ Informationen bearbeiten", "modify_details": "BEARBEITEN\nAblauf, Ort…" }, "products": { "title": "📦 Alle Produkte", "search_placeholder": "🔍 Produkt suchen...", "empty": "Keine Produkte in der Datenbank.\nScanne ein Produkt zum Starten!", "no_category": "Keine Produkte in dieser Kategorie" }, "recipes": { "title": "🍳 Rezepte", "generate": "✨ Neues Rezept generieren" }, "shopping": { "title": "🛒 Einkaufsliste", "bring_loading": "Verbindung zu Bring!...", "tab_to_buy": "🛍️ Zu kaufen", "tab_forecast": "🧠 Vorhersage", "total_label": "💰 Geschätzter Gesamtbetrag", "section_to_buy": "🛍️ Zu kaufen", "suggestions_title": "💡 KI-Vorschläge", "suggestions_add": "✅ Ausgewählte zu Bring! hinzufügen", "search_prices": "🔍 Alle Preise suchen", "suggest_btn": "🤖 Einkaufsvorschläge", "smart_title": "🧠 Intelligente Vorhersagen", "smart_empty": "Keine Vorhersagen verfügbar.
Füge Produkte zur Vorratskammer hinzu, um intelligente Vorhersagen zu erhalten.", "smart_filter_all": "Alle", "smart_filter_critical": "🔴 Dringend", "smart_filter_high": "🟠 Bald", "smart_filter_medium": "🟡 Planen", "smart_filter_low": "🟢 Vorhersage", "smart_add": "🛒 Ausgewählte zu Bring! hinzufügen", "empty": "Einkaufsliste leer!\nNutze den Button unten, um Vorschläge zu generieren.", "already_in_list": "🛒 \"{name}\" ist bereits in der Einkaufsliste", "already_in_list_short": "ℹ️ Bereits in der Einkaufsliste", "add_prompt": "Möchtest du es zur Einkaufsliste hinzufügen?", "smart_already": "📊 Intelligenter Einkauf sagt bereits {name} voraus", "all_searched": "Alle Produkte wurden bereits gesucht. Nutze 🔄 für einzelne Suchen.", "search_complete": "Suche abgeschlossen: {count} Produkte", "removed_sufficient": "🧹 {removed} Produkt(e) mit ausreichendem Bestand von der Liste entfernt" }, "ai": { "title": "🤖 KI-Identifikation", "capture": "📸 Foto aufnehmen", "retake": "🔄 Neu aufnehmen", "hint": "Mache ein Foto des Produkts und die KI versucht es zu identifizieren", "identifying": "🤖 Identifiziere Produkt...", "no_api_key": "⚠️ Gemini API-Schlüssel nicht konfiguriert.\nFüge GEMINI_API_KEY in der .env Datei auf dem Server hinzu.", "fields_filled": "✅ Felder von KI ausgefüllt" }, "log": { "title": "📒 Operationslog" }, "chat": { "title": "Gemini Chef", "welcome": "Hallo! Ich bin dein Küchenassistent", "welcome_desc": "Frag mich, dir einen Saft, einen Snack, ein schnelles Gericht zu machen... Ich kenne deinen Vorrat, deine Geräte und deine Vorlieben!", "suggestion_snack": "🍿 Schneller Snack", "suggestion_juice": "🥤 Saft/Smoothie", "suggestion_light": "🥗 Etwas Leichtes", "suggestion_expiry": "⏰ Ablaufende nutzen", "clear": "Neues Gespräch", "placeholder": "Frag etwas..." }, "cooking": { "close": "Schließen", "tts_btn": "Vorlesen", "restart": "↺ Neustart", "replay": "🔊 Nochmal", "timer": "⏱️ {time} · Timer", "prev": "◀ Zurück", "next": "Weiter ▶" }, "settings": { "title": "⚙️ Einstellungen", "tab_api": "API Keys", "tab_bring": "Bring!", "tab_recipe": "Rezepte", "tab_mealplan": "Wochenplan", "tab_appliances": "Geräte", "tab_spesa": "Online-Einkauf", "tab_camera": "Kamera", "tab_security": "Sicherheit", "tab_tts": "Sprache (TTS)", "tab_language": "Sprache", "gemini": { "title": "🤖 Google Gemini AI", "hint": "API-Schlüssel für Produkterkennung, Ablaufdaten und Rezepte.", "key_label": "Gemini API Key" }, "bring": { "title": "🛒 Bring! Einkaufsliste", "hint": "Zugangsdaten für die Bring! Einkaufslisten-Integration.", "email_label": "📧 Bring! E-Mail", "password_label": "🔒 Bring! Passwort" }, "recipe": { "title": "🍳 Rezept-Einstellungen", "hint": "Konfiguriere die Standardoptionen für die Rezeptgenerierung.", "persons_label": "👥 Standard-Portionen", "options_label": "🎯 Standard-Rezeptoptionen", "fast": "⚡ Schnelles Gericht", "light": "🥗 Leichte Mahlzeit", "expiry": "⏰ Ablauf-Priorität", "healthy": "💚 Extra Gesund", "opened": "📦 Offene Produkte zuerst", "zerowaste": "♻️ Keine Verschwendung", "dietary_label": "🚫 Unverträglichkeiten / Einschränkungen", "dietary_placeholder": "z.B.: glutenfrei, laktosefrei, vegetarisch..." }, "mealplan": { "title": "📅 Wöchentlicher Essensplan", "hint": "Lege die Mahlzeitenart für jeden Tag fest. Wird als Leitfaden bei der Rezeptgenerierung verwendet.", "enabled": "✅ Wöchentlichen Essensplan aktivieren", "legend": "🌤️ = Mittagessen · 🌙 = Abendessen · Tippe auf ein Badge, um es zu ändern.", "types_title": "📋 Verfügbare Typen" }, "appliances": { "title": "🔌 Verfügbare Geräte", "hint": "Gib an, welche Geräte du hast. Sie werden bei der Rezeptgenerierung berücksichtigt.", "new_placeholder": "z.B.: Brotbackmaschine, Thermomix, Heißluftfritteuse...", "quick_title": "Schnell hinzufügen:", "oven": "🔥 Backofen", "microwave": "📡 Mikrowelle", "air_fryer": "🍟 Heißluftfritteuse", "bread_maker": "🍞 Brotbackmaschine", "bimby": "🤖 Thermomix/Cookeo", "mixer": "🌀 Küchenmaschine", "steamer": "♨️ Dampfgarer", "pressure_cooker": "🫕 Schnellkochtopf", "toaster": "🍞 Toaster", "blender": "🍹 Mixer", "empty": "Keine Geräte hinzugefügt" }, "spesa": { "title": "🛍️ Online-Einkauf", "hint": "Online-Einkaufsanbieter konfigurieren.", "provider_label": "🏪 Anbieter", "email_label": "📧 E-Mail", "password_label": "🔒 Passwort", "login_btn": "🔐 Anmelden", "ai_prompt_label": "🤖 KI-Produktauswahl Prompt", "ai_prompt_placeholder": "Anweisungen für die KI bei der Auswahl zwischen mehreren Produkten...", "ai_prompt_hint": "Die KI verwendet diesen Prompt zur Auswahl des passendsten Produkts. Leer lassen für Standardverhalten.", "configure_first": "Konfiguriere zuerst den Online-Einkauf in den Einstellungen" }, "camera": { "title": "📷 Kamera", "hint": "Wähle die Kamera für Barcode-Scanning und KI-Identifikation.", "device_label": "📸 Standardkamera", "back": "📱 Rückkamera (Standard)", "front": "🤳 Frontkamera", "devices_hint": "Bei mehreren Kameras kannst du nach Freigabe der Berechtigungen eine bestimmte aus der Liste oben wählen.", "detect_btn": "🔄 Kameras erkennen" }, "security": { "title": "🔒 HTTPS-Zertifikat", "hint": "Wenn der Browser den Fehler \"Verbindung nicht sicher\" (ERR_CERT_AUTHORITY_INVALID) zeigt, installiere das CA-Zertifikat auf dem Gerät.", "download_btn": "📥 CA-Zertifikat herunterladen" }, "tts": { "title": "🔊 Sprache & TTS", "hint": "Sprachsynthese über externe REST-API konfigurieren. Rezeptschritte und abgelaufene Timer werden an den Endpunkt gesendet.", "enabled": "✅ TTS aktivieren", "url_label": "🌐 Endpunkt-URL", "method_label": "📡 HTTP-Methode", "auth_label": "🔐 Authentifizierung", "auth_bearer": "Bearer Token", "auth_custom": "Benutzerdefinierter Header", "auth_none": "Keine", "token_label": "🔑 Bearer Token", "custom_header_name": "📋 Header-Name", "custom_header_value": "📋 Header-Wert", "content_type_label": "📄 Content-Type", "payload_key_label": "🗝️ Textfeld im Payload", "payload_key_hint": "Name des JSON-Feldes für den zu lesenden Text (z.B.: message, text).", "extra_fields_label": "➕ Zusätzliche Felder (JSON)", "extra_fields_placeholder": "{\"entity_id\": \"media_player.living_room\"}", "extra_fields_hint": "Zusätzliche Felder im Payload, im JSON-Format. Leer lassen wenn nicht benötigt.", "test_btn": "🔊 Testansage senden" }, "language": { "title": "🌐 Sprache", "hint": "Wähle die Sprache der Benutzeroberfläche.", "label": "🌐 Sprache", "restart_notice": "Die Seite wird neu geladen, um die neue Sprache anzuwenden." }, "saved": "✅ Konfiguration gespeichert!", "saved_local": "✅ Konfiguration lokal gespeichert", "saved_local_error": "⚠️ Lokal gespeichert, Serverfehler: {error}" }, "expiry": { "today": "HEUTE", "tomorrow": "Morgen", "days": "{days} Tage", "expired_days": "Seit {days}T", "expired_yesterday": "Seit gestern", "expired_today": "Heute" }, "status": { "ok": "OK", "check": "Prüfen", "discard": "Entsorgen" }, "toast": { "product_saved": "Produkt gespeichert!", "product_created": "Produkt erstellt!", "product_updated": "✅ Produkt aktualisiert!", "product_removed": "Produkt entfernt", "updated": "Aktualisiert!", "quantity_confirmed": "✓ Menge bestätigt", "added_to_inventory": "✅ {name} hinzugefügt!", "removed_from_list": "✅ {name} von der Liste entfernt!", "removed_from_list_short": "Von der Liste entfernt", "added_to_shopping": "🛒 Zur Einkaufsliste hinzugefügt!", "removed_from_shopping": "🛒 Von der Einkaufsliste entfernt", "finished_to_bring": "🛒 Produkt aufgebraucht → zu Bring! hinzugefügt", "thrown_away": "🗑️ {name} weggeworfen!", "thrown_away_partial": "🗑️ {qty} {unit} von {name} weggeworfen", "appliance_added": "Gerät hinzugefügt", "item_added": "{name} hinzugefügt" }, "error": { "generic": "Fehler", "loading": "Fehler beim Laden des Produkts", "not_found": "Produkt nicht gefunden", "not_found_manual": "Produkt nicht gefunden. Manuell eingeben.", "search": "Suchfehler. Nochmal versuchen.", "search_short": "Suchfehler", "save": "Fehler beim Speichern", "connection": "Verbindungsfehler", "camera": "Kamera nicht verfügbar", "bring_add": "Fehler beim Hinzufügen zu Bring!", "bring_connection": "Bring! Verbindungsfehler", "identification": "Identifikationsfehler", "barcode_empty": "Barcode eingeben", "barcode_format": "Barcode darf nur Zahlen enthalten (4-14 Ziffern)", "min_chars": "Mindestens 2 Zeichen eingeben", "not_in_inventory": "Produkt nicht im Bestand", "appliance_exists": "Gerät bereits vorhanden", "already_exists": "Bereits vorhanden" }, "confirm": { "remove_item": "Möchtest du dieses Produkt wirklich aus dem Bestand entfernen?" }, "edit": { "title": "{name} bearbeiten" }, "screensaver": { "recipe_btn": "Rezepte", "scan_btn": "Produkt scannen" }, "days": { "mon": "Montag", "tue": "Dienstag", "wed": "Mittwoch", "thu": "Donnerstag", "fri": "Freitag", "sat": "Samstag", "sun": "Sonntag" }, "meal_types": { "lunch": "Mittagessen", "dinner": "Abendessen" } }