Raiju/admin/lang/de.json
touche 3c591a287a
Some checks are pending
Raiju CI / PHP ${{ matrix.php }} (8.1) (push) Waiting to run
Raiju CI / PHP ${{ matrix.php }} (8.4) (push) Waiting to run
Raiju CI / PHP ${{ matrix.php }} (8.5) (push) Waiting to run
Raiju CI / Apache routing / PHP-FPM (push) Waiting to run
Raiju CI / Chromium (push) Waiting to run
Brand: capitalize Raiju in content, UI strings and prompts
- Starter content and admin language files: Raiju, not raiju
- Test email, backup messages, mailer header and AI prompts use Raiju
- Meta generator and footer fallback use Raiju
- Technical identifiers (paths, CSS classes, user agents, temp prefixes) unchanged
2026-10-25 06:30:17 +03:00

2094 lines
144 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"dashboard": "Dashboard",
"nav.pages": "Seiten",
"nav.messages": "Nachrichten",
"nav.news": "News",
"nav.events": "Termine",
"nav.settings": "Einstellungen",
"nav.logout": "Abmelden",
"nav.collapse_sidebar": "Einklappen",
"nav.expand_sidebar": "Ausklappen",
"nav.view_site": "Website anzeigen",
"btn.load": "Laden",
"btn.save": "Speichern",
"btn.cancel": "Abbrechen",
"btn.confirm": "Bestätigen",
"btn.close": "Schließen",
"btn.back": "Zurück",
"btn.delete": "Löschen",
"btn.browse": "Durchsuchen",
"btn.clear": "Leeren",
"btn.refresh": "Aktualisieren",
"btn.restore": "Wiederherstellen",
"btn.saving": "Speichern...",
"btn.changing": "Ändern...",
"pages.title": "Seiten",
"pages.new_page": "+ Neue Seite",
"pages.trash": "Papierkorb",
"pages.col_title": "Titel",
"pages.col_date": "Zuletzt geändert",
"pages.edit": "Bearbeiten",
"pages.view": "Ansehen",
"pages.duplicate": "Duplizieren",
"pages.create": "+ Erstellen",
"pages.all_pages": "Alle Seiten",
"pages.back_to_pages": "Zurück zu Seiten",
"trash.title": "Papierkorb",
"trash.col_page": "Seite",
"trash.col_deleted": "Gelöscht",
"trash.col_actions": "Aktionen",
"trash.empty": "Papierkorb ist leer.",
"trash.empty_trash": "Papierkorb leeren",
"editor.title": "Inhaltseditor",
"editor.expand_all": "Alle aufklappen",
"editor.collapse_all": "Alle zuklappen",
"editor.not_saved_yet": "Noch nicht gespeichert",
"editor.last_saved": "Gespeichert: {date}",
"editor.move_to_trash": "In Papierkorb verschieben",
"editor.undo": "Rückgängig (⌘Z)",
"editor.redo": "Wiederholen (⇧⌘Z)",
"editor.meta_page": "Seite:",
"editor.meta_lang": "Sprache:",
"editor.items": "{count} Einträge",
"editor.fields": "{count} Felder",
"editor.field_groups": "Feldgruppen",
"editor.field_groups_count": "{count} Feldgruppen",
"editor.add_item": "+ Eintrag hinzufügen",
"editor.add_section": "Neuen Abschnitt hinzufügen:",
"editor.no_sections": "Noch keine Abschnitte angelegt.",
"editor.search_sections": "Abschnitte suchen",
"editor.filter_all_types": "Alle Typen",
"editor.compact_mode": "Kompakt",
"editor.expand_section": "Abschnitt öffnen",
"editor.collapse_section": "Abschnitt schließen",
"editor.insert_section": "Abschnitt einfügen",
"editor.insert_here": "Hier einfügen",
"editor.section_issues": "{count} Hinweise",
"editor.section_issue": "{count} Hinweis",
"editor.no_section_matches": "Keine passenden Abschnitte.",
"editor.drag_section": "Abschnitt ziehen",
"editor.missing_media": "Medienpfad fehlt",
"editor.missing_alt": "Alt-Text fehlt",
"editor.duplicate_h1": "Weitere H1-Überschrift",
"editor.select_image": "Bild auswählen",
"editor.tab_content": "Inhalt",
"editor.sections": "Abschnitte",
"editor.page_settings": "Seiteneinstellungen",
"editor.meta_title": "Titel",
"editor.meta_description": "Beschreibung",
"editor.nav_locations": "Navigation",
"editor.nav_custom_hint": "Eigene, z.B. sidebar",
"editor.breadcrumb": "Breadcrumb",
"editor.breadcrumb_label": "Bezeichnung",
"editor.breadcrumb_href": "Link (Slug)",
"editor.breadcrumb_add": "Eintrag hinzufügen",
"editor.breadcrumb_hint": "Der letzte Eintrag ist die aktuelle Seite (kein Link nötig).",
"events.title": "Termine",
"events.new_event": "+ Neuer Termin",
"events.no_events": "Noch keine Termine.",
"events.start_date": "Startdatum",
"events.start_time": "Startzeit",
"events.end_date": "Enddatum",
"events.end_time": "Endzeit",
"events.url": "URL",
"events.untitled": "(ohne Titel)",
"events.save_events": "Termine speichern",
"events.col_date": "Datum",
"events.col_location": "Ort",
"events.col_status": "Status",
"events.status_upcoming": "Bevorstehend",
"events.status_today": "Heute",
"events.status_past": "Vergangen",
"events.status_draft": "Entwurf",
"events.confirm_delete_permanent": "Termin „{title}\" endgültig löschen? Das kann nicht rückgängig gemacht werden.",
"events.back_to_events": "Zurück zu Terminen",
"mails.title": "Kontaktnachrichten",
"mails.source_hint": "Hier landen Einsendungen aus dem Kontaktformular. Raiju speichert sie lokal, auch wenn keine E-Mail-Benachrichtigung versendet wird.",
"mails.all_forms": "Alle Formulare",
"mails.filter_form": "Nach Formular filtern",
"mails.col_form": "Formular",
"mails.col_from": "Absender",
"mails.col_subject": "Betreff",
"mails.col_received": "Empfangen",
"mails.mark_all_read": "Alle als gelesen markieren",
"mails.no_messages": "Keine Nachrichten",
"mails.detail_title": "Nachricht",
"mails.date": "Datum:",
"mails.name": "Name:",
"mails.email": "E-Mail:",
"mails.phone": "Telefon:",
"mails.preferred_date": "Wunschtermin:",
"mails.message": "Nachricht:",
"mails.form": "Formular:",
"mails.form_fields": "Felder:",
"mails.sort_read": "Nach gelesen/ungelesen sortieren",
"mails.sort_starred": "Nach Markierung sortieren",
"mails.mark_read": "Als gelesen markieren",
"mails.mark_unread": "Als ungelesen markieren",
"mails.star": "Mit Stern markieren",
"mails.unstar": "Stern entfernen",
"settings.title": "Einstellungen",
"settings.branding": "Branding",
"settings.branding_desc": "Logo, Name und Sichtbarkeit des Brandings anpassen. Branding deaktivieren für White-Label-Nutzung.",
"settings.logo": "Logo",
"settings.logo_light": "Logo (Light Mode)",
"settings.logo_dark": "Logo (Dark Mode)",
"settings.logo_dark_hint": "Optional. Wird nur im Dark-Mode angezeigt. Leer lassen, wenn dasselbe Logo für beide Themes funktioniert.",
"settings.frontend_logos": "Frontend-Logos",
"settings.frontend_logos_hint": "Diese Logos erscheinen nur auf der öffentlichen Website. Empfohlene Größe: SVG oder PNG mit ca. 320 × 96 px.",
"settings.favicon": "Favicon",
"settings.favicon_hint": "Wird im Browser-Tab und im Backend angezeigt. Empfohlen: quadratisches SVG oder PNG mit 512 × 512 px.",
"settings.site_identity": "Identität der Website",
"settings.admin_interface": "Admin-Oberfläche",
"settings.header_display": "Anzeige im Header",
"settings.header_display_hint": "Wenn kein Logo gesetzt ist, wird im Seiten-Header Folgendes angezeigt:",
"settings.logo_display": "Wenn kein Logo gesetzt ist",
"settings.logo_display_favicon": "Favicon",
"settings.logo_display_text": "Website-Name",
"settings.logo_display_both": "Favicon und Website-Name",
"settings.site_name": "Website-Name",
"settings.site_name_hint": "Wird im Browser-Tab, bei entsprechender Auswahl im öffentlichen Header und in der Admin-Oberfläche angezeigt.",
"settings.site_name_placeholder": "Website-Name",
"settings.show_branding": "Branding im Admin anzeigen",
"settings.branding_hint": "Wenn deaktiviert, werden Logo und Website-Name in der Admin-Leiste und auf der Login-Seite ausgeblendet.",
"settings.save_branding": "Branding speichern",
"settings.theme": "Design",
"settings.theme_desc": "Erscheinungsbild des Admin-Bereichs: Theme, Modus, Grundfarbe, Schrift und Dichte.",
"settings.admin_theme": "Admin-Design",
"settings.theme_light": "Hell",
"settings.theme_dark": "Dunkel",
"settings.theme_system": "System",
"settings.appearance": "Erscheinungsbild",
"settings.theme_preset": "Theme",
"settings.theme_preset_hint": "Legt Flächen, Rahmen, Radien, Sidebar und die passende Schrift fest; die Schrift bleibt unten frei wählbar. Jedes Theme hat eine helle und eine dunkle Variante.",
"settings.preset_soft": "Soft",
"settings.preset_soft_desc": "Getönte Sidebar, weiße Karten, Maße wie shadcn/ui.",
"settings.preset_classic": "Classic",
"settings.preset_classic_desc": "Dunkle Sidebar, helle Bühne, flach – WordPress-nah.",
"settings.preset_paper": "Paper",
"settings.preset_paper_desc": "Weiß, nur Trennlinien, viel Ruhe.",
"settings.preset_studio": "Studio",
"settings.preset_studio_desc": "Monochrom wie Vercel: schwarze Buttons, Trennlinien, Grundfarbe nur als Akzent.",
"settings.preset_console": "Console",
"settings.preset_console_desc": "Monospace, Versalien, Fadenkreuz-Auswahl, ein kräftiger Akzent – wie eine Leitstelle.",
"settings.preset_pop": "Pop",
"settings.preset_pop_desc": "Dunkle Sidebar mit Verlauf, bunte Pill-Labels, weiche runde Karten – verspielt und freundlich.",
"settings.theme_mode": "Modus",
"settings.base_color": "Grundfarbe",
"settings.base_color_hint": "Buttons, Links, aktive Zustände und die Tönung der Flächen werden aus dieser einen Farbe abgeleitet. Der Kontrast wird automatisch gesichert.",
"settings.font": "Schrift",
"settings.font_hint": "Wird lokal aus dem Admin-Ordner geladen. Es werden keine externen Anfragen gestellt.",
"settings.font_system": "System (keine Datei)",
"settings.font_inter": "Inter",
"settings.font_plex": "IBM Plex Sans",
"settings.font_atkinson": "Atkinson Hyperlegible",
"settings.font_public": "Public Sans",
"settings.font_size": "Schriftgröße",
"settings.font_size_hint": "Verändert nur die Schrift des Dashboards, nicht die Abstände und Elemente.",
"settings.font_size_small": "Klein",
"settings.font_size_default": "Standard",
"settings.font_size_large": "Groß",
"settings.font_geist_mono": "Geist Mono",
"settings.density": "Dichte",
"settings.density_hint": "„Automatisch“ richtet sich nach der Fensterbreite: kompakt auf kleinen, luftiger auf großen Bildschirmen.",
"settings.density_auto": "Automatisch",
"settings.density_compact": "Kompakt",
"settings.density_comfortable": "Luftig",
"settings.advanced": "Erweitert",
"settings.sidebar_bg_light": "Sidebar-Farbe (hell)",
"settings.sidebar_bg_dark": "Sidebar-Farbe (dunkel)",
"forms.title": "Formulare",
"forms.desc": "Verwalte einfache JSON-Formulare. Diese Ansicht ist für kleine Änderungen an bestehenden Formularen gedacht: Texte, Pflichtfelder, Optionen, Spaltenbreiten und Benachrichtigung.",
"forms.forms": "Formulare",
"forms.select_form": "Formular auswählen",
"forms.new": "Neu",
"forms.save": "Formular speichern",
"forms.base_data": "Basisdaten",
"forms.form_id": "Formular-ID",
"forms.form_id_hint": "Wird für Einbindung und Einsendungen verwendet, z. B. kontakt oder termin-einreichen.",
"forms.label": "Bezeichnung",
"forms.description": "Beschreibung",
"forms.enabled": "Aktiv",
"forms.store": "Lokal speichern",
"forms.email": "E-Mail senden",
"forms.subject": "Betreff",
"forms.success_text": "Erfolgsmeldung",
"forms.fields": "Felder",
"forms.add_field": "Feld hinzufügen",
"forms.type": "Typ",
"forms.key": "Key",
"forms.placeholder": "Placeholder",
"forms.width": "Breite",
"forms.required": "Pflicht",
"forms.options": "Optionen",
"forms.options_hint": "Für Auswahl- und Radio-Felder eine Option pro Zeile eintragen. value|Beschriftung nur verwenden, wenn gespeicherter Wert und sichtbarer Text unterschiedlich sein sollen.",
"forms.empty": "Noch keine Formulare.",
"forms.field_count": "{count} Felder",
"forms.new_field": "Neues Feld",
"forms.default_success": "Vielen Dank für deine Nachricht.",
"forms.contact_default": "Kontaktformular",
"forms.saved": "Formular gespeichert.",
"forms.load_error": "Formular konnte nicht geladen werden.",
"forms.save_error": "Formular konnte nicht gespeichert werden.",
"settings.theme_section_light": "Helles Theme",
"settings.theme_section_dark": "Dunkles Theme",
"settings.dark_section_hint": "Leer lassen, um die Werte des hellen Themes zu übernehmen. Klicke auf das ↺-Symbol, um ein Feld auf „Auto“ zurückzusetzen.",
"settings.primary_color": "Primärfarbe",
"settings.primary_color_hint": "Wird für Buttons, Links und interaktive Elemente verwendet.",
"settings.accent_color": "Akzentfarbe",
"settings.accent_color_hint": "Für Hervorhebungen und Marken-Akzente. Leer lassen, um die Grundfarbe zu verwenden.",
"settings.danger_color": "Warnfarbe (Rot)",
"settings.warning_color": "Hinweisfarbe (Gelb)",
"settings.success_color": "Erfolgsfarbe (Grün)",
"settings.semantic_colors_hint": "Für Fehler, Warnungen und Bestätigungen. Leer lassen für die Standardfarben; Erfolg folgt dann der Grundfarbe.",
"settings.sidebar_bg": "Hintergrund (Sidebar & Kopfleiste)",
"settings.sidebar_bg_hint": "Wird vom Theme aus der Grundfarbe abgeleitet, kann aber überschrieben werden.",
"settings.auto_badge": "Auto",
"settings.reset_to_auto": "Auf automatischen Wert zurücksetzen",
"settings.reset_colors": "Standard wiederherstellen",
"settings.button_style": "Editor-Button-Stil",
"settings.button_glow": "Glow-Effekt",
"settings.button_glow_hint": "Leuchteffekt bei Editor-Buttons.",
"settings.button_radius": "Border-Radius",
"settings.button_radius_hint": "Abrundung der Editor-Buttons (0 = eckig, 24 = Pille).",
"settings.preview_primary": "Primär-Button",
"settings.preview_secondary": "Sekundär-Button",
"settings.save_theme": "Design speichern",
"settings.invalid_color": "Ungültiges Farbformat. Verwende Hex (#RRGGBB).",
"settings.theme_color_adjusted": "{field} wurde auf {value} angepasst, damit die Oberfläche lesbar bleibt.",
"settings.contrast_ok": "Kontrast: {ratio}:1",
"settings.contrast_error": "Kontrast: {ratio}:1 - unter UI-Minimum 3:1",
"settings.text_contrast_ok": "Kontrast zum Text: {ratio}:1",
"settings.text_contrast_error": "Kontrast zum Text: {ratio}:1 - unter UI-Minimum 3:1",
"settings.contrast_invalid": "Gib eine gültige Hex-Farbe ein, um den Kontrast zu berechnen.",
"settings.language": "Sprache",
"settings.admin_language": "Admin-Sprache",
"settings.admin_language_hint": "Sprache für den Admin-Bereich. Standard folgt der Primärsprache der Website.",
"settings.admin_language_default": "Standard ({lang})",
"settings.save_language": "Sprache speichern",
"settings.ai_label_artwork": "KI-Kennzeichnung auf Bildern",
"settings.ai_label_artwork_en": "Englisch – „AI generated“ (Standard)",
"settings.ai_label_artwork_page": "Seitensprache – auf deutschen Seiten „KI generiert“",
"settings.ai_label_artwork_hint": "Gilt für die Kennzeichnung KI-generierter und KI-modifizierter Bilder auf der Website. Der Alt-Text für Screenreader folgt immer der Seitensprache.",
"editor.language_tabs": "Sprachen",
"editor.translate_from_active": "Aus aktiver Sprache übersetzen",
"editor.translating": "Übersetze...",
"editor.translate_done": "Übersetzungen eingefügt.",
"editor.translate_no_source": "Kein Ausgangstext zum Übersetzen vorhanden.",
"editor.translate_invalid_response": "Die KI-Antwort konnte nicht als Übersetzung gelesen werden.",
"settings.password": "Passwort",
"settings.my_account": "Mein Konto",
"settings.change_password": "Passwort ändern",
"settings.current_password": "Aktuelles Passwort",
"settings.new_password": "Neues Passwort",
"settings.confirm_password": "Neues Passwort bestätigen",
"settings.pw_requirements": "Passwort-Anforderungen:",
"settings.pw_length": "Mindestens 8 Zeichen",
"settings.pw_upper": "Großbuchstabe",
"settings.pw_lower": "Kleinbuchstabe",
"settings.pw_digit": "Ziffer",
"settings.pw_special": "Sonderzeichen",
"settings.pw_match": "Passwörter stimmen überein",
"settings.email": "E-Mail",
"settings.email_desc": "Konfigurieren Sie den E-Mail-Versand für das Kontaktformular. Nachrichten werden immer lokal im Admin-Posteingang gespeichert, auch wenn der Versand fehlschlägt.",
"settings.email_method": "Versandmethode",
"settings.sendmail_hint": "Verwendet die eingebaute Mail-Funktion des Servers (PHP mail). Damit E-Mails zuverlässig zugestellt werden, muss die IP-Adresse des Servers für den Versand im Auftrag der Absenderdomain autorisiert sein (SPF-Eintrag). Diese Methode funktioniert ohne Zugangsdaten, die Zustellung ist aber nicht garantiert.",
"settings.recipient_email": "Empfänger-E-Mail",
"settings.recipient_email_hint": "Kontaktformular-Nachrichten werden an diese Adresse gesendet. Mehrere Adressen durch Komma trennen.",
"settings.bcc_email": "BCC-E-Mail",
"settings.bcc_email_hint": "Optionale Blindkopie-Empfänger. Mehrere Adressen durch Komma trennen.",
"settings.from_email": "Absender-E-Mail (Von)",
"settings.from_email_hint": "Die 'Von'-Adresse, die dem Empfänger angezeigt wird. Sollte zum SMTP-Konto oder zur Domain passen.",
"settings.from_name": "Absendername",
"settings.smtp_settings": "SMTP-Server",
"settings.smtp_host": "Host",
"settings.smtp_port": "Port",
"settings.smtp_encryption": "Verschlüsselung",
"settings.smtp_encryption_none": "Keine (nicht empfohlen)",
"settings.smtp_username": "Benutzername",
"settings.smtp_password": "Passwort",
"settings.smtp_password_placeholder": "Passwort eingeben",
"settings.smtp_password_hint": "Leer lassen, um das gespeicherte Passwort beizubehalten.",
"settings.save_email": "E-Mail-Einstellungen speichern",
"settings.test_email": "Test-E-Mail senden",
"settings.testing_email": "Wird gesendet...",
"settings.test_email_success": "Test-E-Mail erfolgreich gesendet! Prüfen Sie Ihren Posteingang.",
"settings.test_email_error": "Test-E-Mail konnte nicht gesendet werden.",
"settings.recipient_required": "Bitte zuerst eine Empfänger-E-Mail-Adresse eingeben.",
"toast.email_saved": "E-Mail-Einstellungen gespeichert",
"settings.danger_zone": "Zurücksetzen",
"settings.danger_zone_desc": "Unwiderrufliche Aktionen. Mit äußerster Vorsicht vorgehen.",
"settings.total_reset": "Komplett-Reset",
"settings.total_reset_desc": "Setzt die Installation auf den Werkszustand zurück. Löscht alle Inhalte, Seiten, Bilder, News, Backups, Einstellungen und Konfiguration. Nach dem Reset erscheint der Setup-Assistent wie bei einer frischen Raiju-Installation.",
"settings.total_reset_warning": "Diese Aktion ist unwiderruflich. Alle Daten werden dauerhaft gelöscht.",
"settings.total_reset_confirm_label": "Tippe DELETE zur Bestätigung:",
"settings.total_reset_confirm_placeholder": "DELETE",
"settings.total_reset_btn": "Alles zurücksetzen",
"settings.total_reset_mismatch": "Bitte tippe DELETE exakt ein, um zu bestätigen.",
"toast.total_reset_success": "Installation zurückgesetzt. Weiterleitung zum Setup-Assistenten...",
"security.warning": "Sicherheitswarnung:",
"security.weak_password": "Dein aktuelles Passwort erfüllt nicht die Mindestanforderungen (mindestens 8 Zeichen mit Groß-/Kleinbuchstaben, Ziffern und Sonderzeichen).",
"security.change_now": "Bitte ändere es sofort",
"security.change_link": "Passwort ändern",
"backups.title": "Backups",
"backups.no_backups": "Keine Backups vorhanden",
"backups.view": "Ansehen",
"backups.restore": "Wiederherstellen",
"backups.delete": "Löschen",
"toast.saved": "Erfolgreich gespeichert!",
"toast.page_duplicated": "Seite dupliziert: {slug}",
"toast.page_trashed": "Seite in den Papierkorb verschoben",
"toast.page_created": "Seite erstellt: {title}",
"toast.page_restored": "Seite wiederhergestellt",
"toast.page_deleted": "Seite endgültig gelöscht",
"toast.trash_emptied": "Papierkorb geleert",
"toast.backup_restored": "Backup wiederhergestellt!",
"toast.backup_deleted": "Backup gelöscht.",
"toast.branding_saved": "Branding gespeichert",
"toast.theme_saved": "Design gespeichert",
"toast.password_changed": "Passwort erfolgreich geändert!",
"toast.all_read": "Alle als gelesen markiert",
"toast.message_deleted": "Nachricht gelöscht",
"toast.events_saved": "Termine gespeichert!",
"toast.event_deleted": "Termin endgültig gelöscht",
"toast.event_trashed": "Termin in den Papierkorb verschoben",
"toast.event_restored": "Termin wiederhergestellt",
"toast.no_images": "Keine Bilder gefunden. Bitte zuerst Bilder hochladen.",
"toast.error_loading": "Fehler beim Laden: {message}",
"toast.error_saving": "Fehler beim Speichern: {message}",
"toast.error_generic": "Fehler: {message}",
"toast.error_loading_images": "Fehler beim Laden der Bilder: {message}",
"toast.error_loading_events": "Fehler beim Laden der Termine: {message}",
"toast.error_loading_settings": "Fehler beim Laden der Einstellungen: {message}",
"toast.events_date_required": "Datum und Titel sind erforderlich",
"toast.language_saved": "Sprache gespeichert",
"modal.new_page": "Neue Seite",
"modal.new_page_title": "Titel",
"modal.new_page_title_placeholder": "Meine neue Seite",
"modal.new_page_slug": "Slug",
"modal.new_page_slug_placeholder": "meine-neue-seite",
"modal.new_page_slug_hint": "URL-Pfad in Kleinbuchstaben; Schrägstriche erzeugen Unterseiten. Wird automatisch aus dem Titel generiert.",
"modal.create_page": "Seite erstellen",
"modal.delete_permanently": "Endgültig löschen",
"modal.delete_confirm": "Möchtest du \"{title}\" ({page}) wirklich endgültig löschen? Dies kann nicht rückgängig gemacht werden.",
"modal.empty_trash": "Papierkorb leeren",
"modal.empty_trash_confirm": "Möchtest du wirklich alle Seiten im Papierkorb endgültig löschen? Dies kann nicht rückgängig gemacht werden.",
"modal.restore_backup": "Backup wiederherstellen",
"modal.restore_backup_confirm": "Backup wiederherstellen? Der aktuelle Stand wird vorher gesichert.",
"modal.delete_backup": "Backup löschen",
"modal.delete_backup_confirm": "Möchtest du dieses Backup wirklich löschen? Dies kann nicht rückgängig gemacht werden.",
"modal.delete_message": "Nachricht löschen",
"modal.delete_message_confirm": "Möchtest du diese Nachricht wirklich löschen?",
"modal.select_logo": "Logo auswählen",
"login.title": "Anmelden",
"login.username": "Benutzername",
"login.password": "Passwort",
"login.show_password": "Passwort anzeigen",
"login.hide_password": "Passwort verbergen",
"login.button": "Anmelden",
"login.back_to_site": "Zurück zur Website",
"login.error_locked": "Konto gesperrt wegen zu vieler Fehlversuche. Bitte versuche es in {time} erneut.",
"login.error_too_many": "Zu viele Fehlversuche. Bitte warte einen Moment.",
"login.error_wait": "Ungültige Anmeldedaten. Bitte warte einen Moment.",
"login.error_invalid": "Ungültiger Benutzername oder Passwort",
"login.hour": "Std.",
"login.minute": "Min.",
"setup.page_title": "Setup - Raiju CMS",
"setup.complete_title": "Setup abgeschlossen",
"setup.complete_message": "Raiju CMS wurde erfolgreich konfiguriert.",
"setup.complete_login_hint": "Du kannst dich jetzt mit den soeben erstellten Zugangsdaten anmelden.",
"setup.go_to_login": "Zum Login",
"setup.title": "Setup",
"setup.subtitle": "Erstkonfiguration",
"setup.site_name": "Website-Name",
"setup.site_name_placeholder": "Meine Website",
"setup.primary_language": "Primärsprache",
"setup.primary_language_hint": "Seiten in dieser Sprache sind direkt unter der Root-URL erreichbar (ohne Präfix).",
"setup.additional_language": "Weitere Sprache (optional)",
"setup.additional_language_none": "— Keine —",
"setup.additional_language_hint": "Seiten in dieser Sprache werden unter /{code}/ erreichbar sein.",
"setup.admin_username": "Admin-Benutzername",
"setup.password": "Passwort",
"setup.generate": "Generieren",
"setup.confirm_password": "Passwort bestätigen",
"setup.pw_length": "Mindestens 8 Zeichen",
"setup.pw_upper": "Großbuchstabe",
"setup.pw_lower": "Kleinbuchstabe",
"setup.pw_digit": "Ziffer",
"setup.pw_special": "Sonderzeichen",
"setup.create_config": "Konfiguration erstellen",
"setup.error_site_name": "Bitte gib einen Website-Namen ein.",
"setup.error_username": "Bitte gib einen Admin-Benutzernamen ein.",
"setup.error_username_short": "Der Benutzername muss mindestens 3 Zeichen lang sein.",
"setup.error_password": "Bitte gib ein Passwort ein.",
"setup.error_password_mismatch": "Die Passwörter stimmen nicht überein.",
"setup.error_password_weak": "Passwort erfüllt nicht die Anforderungen: Mindestens 8 Zeichen mit Groß-/Kleinbuchstaben, Ziffern und Sonderzeichen.",
"setup.error_write": "config.php konnte nicht geschrieben werden. Bitte stelle sicher, dass das admin/-Verzeichnis vom Webserver beschreibbar ist.",
"setup.copied": "Kopiert!",
"setup.copy": "Kopieren",
"block.text": "Text",
"block.youtube": "YouTube",
"block.soundcloud": "SoundCloud",
"block.audio": "Audio",
"block.card": "Karte",
"block.heading": "Überschrift",
"block.quote": "Zitat",
"block.image": "Bild",
"block.list": "Liste",
"block.divider": "Trennlinie",
"block.spacer": "Abstand",
"field.title": "Titel",
"field.heading_level": "Überschrift-Ebene",
"field.content": "Inhalt",
"field.style": "Stil",
"field.video_id": "Video-ID",
"field.video_id_hint": "Die Video-ID aus der YouTube-URL (nach v=)",
"field.track_id": "Track-ID",
"field.track_id_hint": "Die Track-ID aus der SoundCloud-Embed-URL",
"field.audio_file": "Audiodatei",
"field.description": "Beschreibung",
"field.heading_text": "Überschrift-Text",
"field.level": "Ebene",
"field.subtitle": "Untertitel (optional)",
"field.quote_text": "Zitattext",
"field.attribution": "Quelle (optional)",
"field.alt_text": "Alternativtext",
"field.caption": "Bildunterschrift (optional)",
"field.width": "Breite",
"field.title_optional": "Titel (optional)",
"field.list_items": "Listeneinträge",
"field.height": "Höhe",
"option.default": "Standard",
"option.highlight": "Hervorgehoben",
"option.large": "Groß",
"option.h1_page_title": "H1 — Seitentitel",
"option.h2_section": "H2 — Abschnitt",
"option.h3_subsection": "H3 — Unterabschnitt",
"option.h4_small": "H4 — Klein",
"option.full_width": "Volle Breite",
"option.medium_75": "Mittel (75%)",
"option.small_50": "Klein (50%)",
"option.bullet_list": "Aufzählung",
"option.numbered_list": "Nummerierte Liste",
"option.small": "Klein",
"option.medium": "Mittel",
"option.extra_large": "Sehr groß",
"news.title": "News",
"news.new_post": "+ Neuer Beitrag",
"news.no_posts": "Noch keine Beiträge.",
"news.edit": "Bearbeiten",
"news.delete": "Beitrag löschen",
"news.untitled": "(ohne Titel)",
"news.save_posts": "Speichern",
"news.post_title": "Titel",
"news.post_slug": "Slug",
"news.post_date": "Datum",
"news.post_author": "Autor",
"news.post_excerpt": "Kurzbeschreibung",
"news.post_image": "Titelbild",
"news.post_content": "Inhalt",
"news.draft": "Entwurf",
"news.published": "Veröffentlicht",
"news.post_language": "Sprache",
"news.publish": "Veröffentlichen",
"news.unpublish": "Zurückziehen",
"news.view": "Ansehen",
"news.all_posts": "Alle News",
"news.read_more": "Weiterlesen",
"toast.news_saved": "Beitrag gespeichert!",
"toast.news_deleted": "Beitrag gelöscht",
"toast.news_created": "Beitrag erstellt",
"toast.error_loading_news": "Fehler beim Laden der News: {message}",
"toast.news_date_required": "Datum und Titel sind erforderlich",
"modal.delete_post": "Beitrag löschen",
"modal.delete_post_confirm": "Möchtest du \"{title}\" wirklich löschen? Dies kann nicht rückgängig gemacht werden.",
"settings.backup": "Backup",
"settings.backup_desc": "Dank raijus Flat-File-Architektur sind Backups schnell und unkompliziert — lade eine vollständige Kopie deiner Website herunter, inklusive aller Inhalte, Templates, Bilder und Konfiguration.",
"settings.backup_site": "Website-Backup",
"settings.backup_site_desc": "Erstellt ein ZIP-Archiv des gesamten Website-Verzeichnisses. Entwicklungsdateien (node_modules, .git, etc.) werden ausgeschlossen.",
"settings.backup_create": "Backup erstellen",
"settings.backup_creating": "Backup wird erstellt…",
"settings.backup_downloading": "Download läuft…",
"toast.backup_site_created": "Backup erstellt — Download gestartet.",
"toast.backup_site_failed": "Backup fehlgeschlagen: {message}",
"settings.restore_title": "Aus Backup wiederherstellen",
"settings.restore_desc": "Lade eine zuvor heruntergeladene Raiju-Backup-ZIP hoch, um deine Website wiederherzustellen.",
"settings.restore_mode_prompt": "Wiederherstellungsart — eine Option wählen",
"settings.restore_full": "Vollständige Wiederherstellung",
"settings.restore_full_desc": "Ersetzt alles — CMS-Dateien, Inhalte, Bilder und Konfiguration. Ein Backup des aktuellen Zustands wird vorher automatisch erstellt.",
"settings.restore_content": "Nur Inhalte",
"settings.restore_content_desc": "Ersetzt nur Inhalte, Bilder, Schriften und Seitentemplates. CMS-Kerndateien und Zugangsdaten bleiben unverändert.",
"settings.restore_select_file": "ZIP-Datei auswählen",
"settings.restore_change_file": "Datei ändern",
"settings.restore_btn": "Wiederherstellen",
"settings.restore_uploading": "Hochladen & Wiederherstellen…",
"settings.restore_warning_full": "Dies ersetzt deine gesamte Website mit dem Inhalt der Backup-ZIP. Ein Backup des aktuellen Zustands wird vorher erstellt. Dies kann nicht einfach rückgängig gemacht werden. Bist du sicher?",
"settings.restore_warning_content": "Dies ersetzt alle Inhalte, Bilder, Schriften und Seitentemplates mit dem Inhalt der Backup-ZIP. CMS-Kerndateien und deine Zugangsdaten bleiben unverändert. Fortfahren?",
"settings.scheduled_backups": "Automatische Backups",
"settings.scheduled_backups_desc": "Periodische Voll-Site-Backups über einen Server-Cronjob oder eine geheime Web-Cron-URL. Die Aufbewahrungsregeln unten entscheiden, wie viele gestaffelte Kopien behalten werden — eng genug für schnelle Wiederherstellung, locker genug, um Probleme zu finden, die erst Monate später auffallen.",
"settings.scheduled_enabled": "Automatische Backups aktiviert",
"settings.scheduled_enabled_hint": "Ist die Option deaktiviert, beendet sich der Server- oder Web-Cron ohne Aktion. Manuelle Backups über den Button oben funktionieren weiterhin.",
"settings.cron_mode": "Ausführung",
"settings.cron_mode_server": "Server-Cron",
"settings.cron_mode_web": "Web-Cron",
"settings.cron_mode_hint": "Server-Cron ist zuverlässiger. Web-Cron ist für Hostings gedacht, die keine eigenen Cronjobs anbieten.",
"settings.retention_title": "Aufbewahrung",
"settings.retention_hint": "Backups werden bei Erstellung als täglich, wöchentlich, monatlich oder jährlich getaggt. Die Werte unten geben an, wie viele jeder Stufe behalten werden, bevor das älteste gelöscht wird.",
"settings.retention_daily": "Täglich",
"settings.retention_weekly": "Wöchentlich",
"settings.retention_monthly": "Monatlich",
"settings.retention_yearly": "Jährlich",
"settings.storage_limit": "Speicherlimit (MB)",
"settings.storage_limit_hint": "Hartes Limit für den gesamten Backup-Speicher. Bei Erreichen werden die ältesten nicht-manuellen Backups gelöscht, auch wenn sie noch in der Aufbewahrungsfrist sind. 0 = kein Limit.",
"settings.backup_settings_save": "Backup-Einstellungen speichern",
"settings.remote_backups": "Externe Backup-Ziele",
"settings.remote_backups_hint": "Nach jedem automatischen Backup lädt Raiju die ZIP-Datei auf alle aktivierten Ziele hoch. Uploads landen in einem Website-Unterordner unterhalb des konfigurierten Remote-Pfads. Access Tokens und Passwörter werden gespeichert und nach dem Speichern ausgeblendet.",
"settings.remote_oauth_beta_note": "Beta-Hinweis: Die browserbasierte Verbindung mit Dropbox, Google Drive und Microsoft OneDrive kann je nach Freigabestatus der Anbieter eingeschränkt sein.",
"settings.remote_add_target": "Ziel hinzufügen",
"settings.remote_empty": "Noch keine externen Ziele konfiguriert.",
"settings.remote_test": "Testen",
"settings.remote_upload": "Extern hochladen",
"settings.remote_uploading": "Upload läuft…",
"settings.remote_files": "Remote-Dateien",
"settings.remote_files_empty": "Keine Remote-Backups gefunden.",
"settings.remote_import": "Einlesen",
"settings.remote_delete": "Remote-Backup löschen",
"settings.remote_delete_confirm": "Dieses Backup wirklich vom externen Speicher löschen? Die lokale Kopie bleibt unverändert.",
"settings.remote_hint_sftp": "Benötigt einen SSH/SFTP-Zugang und die PHP-Erweiterung ssh2 auf dem Raiju-Server.",
"settings.remote_hint_ftp": "Für klassische FTP-Zugänge, z.B. Plesk-FTP-Benutzer. FTPS aktivieren, wenn der Server verschlüsseltes FTP unterstützt.",
"settings.remote_error_dropbox_access_token_missing": "Dropbox Access Token fehlt.",
"settings.remote_error_google_access_token_missing": "Google Drive Access Token fehlt.",
"settings.remote_error_onedrive_access_token_missing": "OneDrive Access Token fehlt.",
"settings.remote_error_ssh2_required": "Die PHP-Erweiterung ssh2 wird für SFTP/SCP-Uploads benötigt.",
"settings.remote_error_ftp_required": "Die PHP-FTP-Erweiterung wird für FTP/FTPS-Uploads benötigt.",
"settings.remote_not_tested": "Noch nicht getestet.",
"settings.remote_last_upload": "Letzter Upload: {date} — {message}",
"settings.remote_placeholder_optional": "Optional",
"settings.remote_connect_dropbox": "Dropbox verbinden",
"settings.remote_connect_google": "Google verbinden",
"settings.remote_connect_onedrive": "OneDrive verbinden",
"settings.remote_field_app_key": "App Key",
"settings.remote_field_client_id": "Client ID",
"settings.remote_field_client_secret": "Client Secret",
"settings.remote_field_access_token": "Access Token",
"settings.remote_field_refresh_token": "Refresh Token",
"settings.remote_field_path": "Ordnerpfad",
"settings.remote_field_folder_id": "Ordner-ID",
"settings.remote_field_folder_path": "Ordnerpfad",
"settings.remote_field_host": "Host",
"settings.remote_field_port": "Port",
"settings.remote_field_username": "Benutzername",
"settings.remote_field_password": "Passwort",
"settings.remote_field_remote_path": "Remote-Pfad",
"settings.remote_field_ssl": "FTPS verwenden",
"settings.remote_field_passive": "Passiver Modus",
"settings.remote_field_endpoint": "Endpoint",
"settings.remote_field_region": "Region",
"settings.remote_field_bucket": "Bucket",
"settings.remote_field_prefix": "Prefix",
"settings.remote_field_access_key": "Access Key",
"settings.remote_field_secret_key": "Secret Key",
"settings.remote_field_path_style": "Path-Style-URLs verwenden",
"settings.remote_field_url": "WebDAV-URL",
"settings.remote_field_bearer_token": "Bearer Token",
"settings.cron_setup": "Cron-Setup",
"settings.cron_setup_hint": "Lege eine tägliche geplante Aufgabe um 03:00 Uhr an. In Plesk wähle „PHP-Skript ausführen\", trage den Skriptpfad ein und setze die Argumente auf --action=run. So muss Plesk kein php-Kommando im PATH finden. Für „Befehl ausführen\" brauchst du den absoluten Pfad zum PHP-CLI-Binary.",
"settings.cron_script_path": "Skriptpfad",
"settings.cron_arguments": "Argumente",
"settings.cron_shell_command": "Befehl-Fallback",
"settings.web_cron_url": "Web-Cron-URL",
"settings.web_cron_hint": "Wenn dein Hosting keine Cronjobs erlaubt, rufe diese geheime URL einmal täglich über einen externen Dienst wie cron-job.org oder easycron.com auf. Wer diese URL kennt, kann geplante Backups starten.",
"settings.cron_copy": "Kopieren",
"settings.cron_copied": "Kopiert",
"settings.last_run": "Letzter Lauf",
"settings.last_run_never": "Noch nie",
"settings.last_run_warning": "Cron lief seit {days} Tagen nicht — bitte prüfen, ob die Crontab aktiv ist.",
"settings.last_run_ok": "Cron läuft planmäßig.",
"settings.last_run_error": "Letzter Lauf fehlgeschlagen: {message}",
"settings.storage_summary": "Speichernutzung",
"settings.storage_count": "{count} Backup(s), gesamt {size}",
"settings.storage_oldest": "Ältestes: {date}",
"settings.storage_newest": "Neuestes: {date}",
"settings.backup_list_title": "Gespeicherte Backups",
"settings.backup_list_empty": "Noch keine Backups gespeichert. Den Cronjob einmal laufen lassen oder oben auf „Backup jetzt erstellen\" klicken.",
"settings.backup_list_col_date": "Datum",
"settings.backup_list_col_tier": "Stufe",
"settings.backup_list_col_size": "Größe",
"settings.backup_list_col_actions": "Aktionen",
"settings.backup_download": "Herunterladen",
"settings.backup_restore_from_pool": "Wiederherstellen",
"settings.backup_delete": "Löschen",
"settings.backup_delete_confirm": "Dieses Backup wirklich löschen? Kann nicht rückgängig gemacht werden.",
"settings.backup_restore_pool_warning_full": "Dies ersetzt deine gesamte Website mit dem Inhalt des ausgewählten Backups. Ein neues Backup des aktuellen Zustands wird vorher erstellt. Fortfahren?",
"settings.backup_restore_pool_warning_content": "Dies ersetzt deine Inhalte, Bilder, Schriften und Seitentemplates mit dem Inhalt des ausgewählten Backups. CMS-Kerndateien und Zugangsdaten bleiben unverändert. Fortfahren?",
"toast.scheduled_backup_settings_saved": "Backup-Einstellungen gespeichert.",
"toast.scheduled_backup_settings_failed": "Backup-Einstellungen konnten nicht gespeichert werden: {message}",
"toast.backup_delete_failed": "Backup konnte nicht gelöscht werden: {message}",
"toast.remote_test_success": "Test des externen Ziels erfolgreich.",
"toast.remote_test_failed": "Test des externen Ziels fehlgeschlagen: {message}",
"toast.remote_upload_success": "Externer Upload abgeschlossen.",
"toast.remote_upload_failed": "Externer Upload fehlgeschlagen: {message}",
"toast.remote_list_failed": "Remote-Backups konnten nicht geladen werden: {message}",
"toast.remote_import_success": "Remote-Backup wurde lokal eingelesen.",
"toast.remote_import_failed": "Remote-Backup konnte nicht eingelesen werden: {message}",
"toast.remote_delete_success": "Remote-Backup gelöscht.",
"toast.remote_delete_failed": "Remote-Backup konnte nicht gelöscht werden: {message}",
"toast.remote_no_enabled_targets": "Keine aktivierten externen Ziele konfiguriert.",
"toast.remote_dropbox_connected": "Dropbox verbunden.",
"toast.remote_oauth_connected": "Cloud-Speicher verbunden.",
"toast.remote_dropbox_app_key_missing": "Bitte zuerst einen Dropbox App Key eintragen und speichern.",
"toast.remote_client_id_missing": "Bitte zuerst eine Client ID eintragen und speichern.",
"toast.remote_dropbox_connect_failed": "Dropbox-Verbindung fehlgeschlagen: {message}",
"toast.remote_oauth_connect_failed": "Cloud-Speicher-Verbindung fehlgeschlagen: {message}",
"toast.restore_success_full": "Vollständige Wiederherstellung abgeschlossen — {extracted} Dateien wiederhergestellt.",
"toast.restore_success_content": "Inhalte wiederhergestellt — {extracted} Dateien aktualisiert.",
"toast.restore_failed": "Wiederherstellung fehlgeschlagen: {message}",
"settings.users": "Benutzer",
"settings.users_desc": "Benutzerkonten und Rollen verwalten. Admins können alle Einstellungen ändern; Editoren können nur Inhalte bearbeiten.",
"settings.email_missing_title": "E-Mail-Adresse fehlt",
"settings.email_missing_text": "Dein Konto hat keine E-Mail-Adresse. Ohne sie funktioniert das Zurücksetzen des Passworts per E-Mail nicht.",
"settings.email_missing_link": "Jetzt E-Mail-Adresse hinterlegen",
"settings.add_user": "Benutzer hinzufügen",
"settings.edit_user": "Benutzer bearbeiten",
"settings.delete_user": "Benutzer löschen",
"settings.delete_user_confirm": "Möchtest du den Benutzer \"{username}\" wirklich löschen? Dies kann nicht rückgängig gemacht werden.",
"settings.user_username": "Benutzername",
"settings.user_email": "E-Mail",
"settings.user_role": "Rolle",
"settings.user_last_login": "Letzter Login",
"settings.user_actions": "Aktionen",
"settings.user_you": "du",
"settings.reset_password": "Passwort zurücksetzen",
"settings.reset_password_prompt": "Neues Passwort für {username} eingeben:",
"toast.user_created": "Benutzer erstellt",
"toast.user_updated": "Benutzer aktualisiert",
"toast.user_deleted": "Benutzer gelöscht",
"settings.email_inactive": "Inaktiv",
"settings.email_inactive_hint": "E-Mail-Versand ist deaktiviert. Kontaktformular-Eingaben werden lokal gespeichert, aber es werden keine E-Mails versendet. Aktiviere SMTP oder Sendmail, um E-Mails zu versenden.",
"settings.menus": "Menüs",
"settings.menus_desc": "Reihenfolge der Seiten in den Navigationsmenüs verwalten.",
"settings.menu_select": "Menü auswählen",
"settings.menu_order_empty": "Keine Seiten in diesem Menü.",
"settings.menu_order_saved": "Menüreihenfolge gespeichert.",
"setup.admin_email": "E-Mail (optional)",
"setup.admin_email_placeholder": "admin@example.com",
"setup.admin_email_hint": "Wird für Passwort-Zurücksetzung benötigt. Kann später in den Einstellungen hinzugefügt werden.",
"login.forgot_password": "Passwort vergessen?",
"login.back_to_login": "Zurück zum Login",
"login.reset_desc": "Gib deine E-Mail-Adresse ein und wir senden dir einen Link zum Zurücksetzen deines Passworts.",
"login.reset_email_label": "E-Mail-Adresse",
"login.reset_send": "Link senden",
"login.reset_sent": "Falls ein Konto mit dieser E-Mail existiert, wurde ein Link zum Zurücksetzen versendet.",
"login.reset_rate_limit": "Zu viele Anfragen. Bitte versuche es später erneut.",
"login.reset_invalid_token": "Dieser Link ist ungültig oder abgelaufen.",
"login.reset_password_mismatch": "Passwörter stimmen nicht überein.",
"login.reset_password_weak": "Passwort erfüllt nicht die Anforderungen.",
"login.reset_new_password_desc": "Gib dein neues Passwort ein.",
"login.reset_set_password": "Neues Passwort setzen",
"login.reset_success": "Passwort wurde erfolgreich zurückgesetzt. Du kannst dich jetzt anmelden.",
"login.reset_email_subject": "Passwort zurücksetzen",
"login.reset_email_body": "Hallo {username},\n\nDu hast eine Passwort-Zurücksetzung angefordert. Klicke auf den folgenden Link, um ein neues Passwort zu setzen:\n\n{url}\n\nDieser Link ist 1 Stunde gültig.\n\nWenn du dies nicht angefordert hast, kannst du diese E-Mail ignorieren.",
"login.session_expired": "Deine Sitzung ist abgelaufen. Bitte melde dich erneut an.",
"editor.nav_add_custom": "Menü hinzufügen",
"close": "Schließen",
"banner.frontend_edit_title": "Inline bearbeiten?",
"banner.frontend_edit_text": "Du kamst gerade von einer öffentlichen Seite. Du kannst sie direkt im Frontend bearbeiten.",
"banner.frontend_edit_cta": "Zur Seite zurückkehren",
"settings.frontend_login_redirect": "Nach dem Login",
"settings.frontend_login_redirect_hint": "Wohin Nutzer geleitet werden, die sich über den Doppelklick im Footer einloggen.",
"settings.frontend_login_redirect_auto": "Zur ursprünglichen Seite zurückkehren (empfohlen)",
"settings.frontend_login_redirect_dashboard": "Immer im Dashboard landen",
"settings.login": "Login",
"settings.login_visual": "Login-Gestaltung",
"settings.visual_brand_asset": "Marke über dem Text",
"settings.visual_brand_none": "Keine",
"settings.visual_brand_favicon": "Favicon",
"settings.visual_brand_logo": "Logo",
"settings.visual_image": "Bild",
"settings.visual_image_hint": "Optionales Bild aus dem Bildmanager. Hintergrund füllt den Screen, oder das Bild steht links bzw. rechts neben dem Text.",
"settings.visual_image_layout": "Bilddarstellung",
"settings.visual_image_none": "Kein Bild",
"settings.visual_image_left": "Bild links",
"settings.visual_image_right": "Bild rechts",
"settings.visual_image_background": "Hintergrundbild",
"settings.visual_overlay_color": "Overlay-Farbe",
"settings.visual_overlay_color_hint": "Liegt über Hintergrundbildern; die Transparenz steuerst du mit dem Regler.",
"settings.visual_login_box": "Login-Box",
"settings.visual_login_box_card": "Box anzeigen",
"settings.visual_login_box_plain": "Keine Box",
"settings.visual_box_color": "Box-Farbe",
"settings.visual_box_color_hint": "Hintergrundfarbe der Login-Box.",
"settings.visual_box_text_color": "Textfarbe",
"settings.visual_box_text_color_hint": "Textfarbe innerhalb der Login-Box.",
"settings.save_login": "Login-Einstellungen speichern",
"toast.login_saved": "Login-Einstellungen gespeichert",
"settings.save_menus": "Menüs speichern",
"settings.favicon_png": "PNG-Fallback",
"settings.favicon_png_hint": "Optionales PNG-Icon für Browser, angeheftete Tabs und Touch-Geräte, die ein Rasterbild bevorzugen. Empfohlene Größe: 512 × 512 px.",
"settings.logo_size": "Logo-Größe",
"settings.logo_size_hint": "Steuert die Höhe des Logos im öffentlichen Seiten-Header.",
"settings.logo_size_small": "Klein",
"settings.logo_size_medium": "Mittel",
"settings.logo_size_large": "Groß",
"settings.default_og_image": "Standard-Open-Graph-Bild",
"settings.default_og_image_hint": "Wird für Vorschauen beim Teilen verwendet, wenn eine Seite kein eigenes Open-Graph-Bild hat. Nur JPG/PNG; empfohlen: 1200 × 630 px.",
"settings.admin_logo": "Admin-Logo",
"settings.admin_logo_hint": "Optionales Logo für die Admin-Leiste. Leer lassen, um das Favicon zu verwenden. Empfohlene Größe: SVG oder PNG mit ca. 256 × 64 px.",
"settings.reset_branding": "Branding zurücksetzen",
"mails.delete_read": "Gelesene löschen",
"mails.delete_read_count": "Gelesene löschen ({count})",
"mails.open_email_settings": "E-Mail-Einstellungen öffnen",
"mails.email_inactive_title": "E-Mail-Versand ist deaktiviert:",
"mails.email_inactive_text": "Nachrichten werden lokal gespeichert, aber nicht per E-Mail versendet. Aktiviere SMTP oder Sendmail für Benachrichtigungen.",
"mails.email_recipient_missing_title": "Empfängeradresse fehlt:",
"mails.email_recipient_missing_text": "Nachrichten werden lokal gespeichert, aber ohne Empfängeradresse kann keine E-Mail-Benachrichtigung gesendet werden.",
"toast.read_messages_deleted": "{count} gelesene Nachrichten gelöscht",
"modal.delete_read_messages": "Gelesene Nachrichten löschen",
"modal.delete_read_messages_confirm": "{count} gelesene Nachrichten löschen? Das kann nicht rückgängig gemacht werden.",
"nav.image_manager": "Bild Manager",
"nav.media_library": "Mediathek",
"nav.icon_manager": "Icon Manager",
"media_manager": "Mediathek",
"image_manager": "Bild Manager",
"image.formats_hint": "Unterstützte Bildformate: JPG, PNG, WebP, GIF, SVG",
"audio.formats_hint": "Unterstützte Audioformate: MP3, WAV, OGG, M4A, AAC, FLAC",
"media.video_formats_hint": "Unterstützte Videoformate: MP4, WebM, MOV, M4V",
"media.document_formats_hint": "Unterstützte Dokumente: PDF, Office, Textdateien",
"media.type_all": "Alle",
"media.type_images": "Bilder",
"media.type_audio": "Audio",
"media.type_video": "Video",
"media.type_documents": "Dokumente",
"media.no_files": "Keine Dateien gefunden.",
"media.no_selection": "Keine Datei ausgewählt.",
"media.selection_count": "{count} Dateien ausgewählt",
"media.file": "Datei",
"media.open_file": "Datei öffnen",
"media.folder": "Ordner",
"media.folders": "Ordner",
"media.folder_all": "Alle Ordner",
"media.folder_root": "Hauptordner",
"media.folder_create": "Neuer Ordner",
"media.folder_create_prompt": "Ordnername (Buchstaben, Zahlen, Bindestrich, Unterstrich, Punkt; nur eine Ebene):",
"media.download_file": "Bild herunterladen",
"media.folder_created": "Ordner erstellt",
"media.folder_delete": "Ordner löschen",
"media.folder_delete_confirm": "Leeren Ordner „{folder}“ löschen?",
"media.folder_deleted": "Ordner gelöscht",
"media.move_file": "Datei verschieben",
"media.move_file_prompt": "In Ordner verschieben. Leer lassen für keinen Ordner. Verfügbar: {folders}",
"media.file_moved": "Datei verschoben",
"media.rename_file": "Datei umbenennen",
"media.ai_label": "KI-Kennzeichnung",
"media.ai_none": "Keine Kennzeichnung",
"media.ai_generated": "KI-generiert",
"media.ai_generated_desc": "Mit KI erzeugt, z. B. mit einem Bildgenerator",
"media.ai_modified": "KI-modifiziert",
"media.ai_modified_desc": "Echtes Foto, mit KI verändert, z. B. durch generatives Füllen oder Erweitern",
"media.ai_hint": "Realistisch wirkende Bilder, die mit KI erzeugt oder verändert wurden, müssen nach Art. 50 der EU-KI-Verordnung gekennzeichnet werden. Das Label erscheint auf der Website automatisch am Bild.",
"media.ai_saved": "KI-Kennzeichnung gespeichert",
"media.ai_detected": "KI-Herkunft erkannt: Das Bild wurde gekennzeichnet.",
"media.large_title": "Groß für eine Webseite ({size}). Besser eine kleinere Fassung einbinden.",
"media.large_badge": "groß",
"media.download_original": "Original herunterladen ({size})",
"media.original_title": "Original gespeichert: {size}, {width} × {height} px. Seiten verwenden die Webfassung; der Download liefert das Original.",
"media.original_badge": "Original",
"media.original_copy_path": "Pfad des Originals kopieren",
"media.original_view": "Original ansehen",
"media.original_hint": "Seiten binden die Webfassung ein. Das Original liegt unter assets/images-originals/ für Download und Druck, nicht zum Einbinden; es folgt der Datei bei Umbenennen, Verschieben und Löschen.",
"media.original_info": "{size}, {width} × {height} px (Webfassung {web})",
"media.original_dialog_title": "Originaldatei",
"media.web_version_created": "Webfassung erzeugt: {width} × {height} px, {size}. Das Original bleibt gespeichert; das Badge „Original“ am Eintrag öffnet es.",
"media.size_limit_error": "{name} ist zu groß (max. {max} MB).",
"media.server_limit_error": "{name} ist zu groß: Der Server nimmt Uploads bis {max} MB an (upload_max_filesize / post_max_size).",
"media.server_limit": "Serverlimit {max} MB",
"media.upload_limit": "bis {max} MB je Datei",
"media.ai_badge": "KI",
"media.rename_new_name": "Neuer Dateiname",
"media.rename_scan_references": "Vorher in JSON-Inhalten nach Verwendungen suchen",
"media.rename_extension_hint": "Die Dateiendung darf nicht geändert werden. .jpeg und .jpg gelten als gleich.",
"media.rename_references_found": "{count} Verwendung(en) in JSON-Inhalten gefunden.",
"media.rename_references_confirm": "Wenn du die Datei trotzdem umbenennst, können bestehende Seiten auf den alten Pfad zeigen.",
"media.rename_confirm_anyway": "Trotzdem umbenennen",
"media.file_renamed": "Datei umbenannt",
"media.uploading_multiple": "Dateien werden hochgeladen...",
"media.uploaded_multiple": "{count} Dateien hochgeladen",
"media.upload_partial": "{uploaded} von {total} Dateien hochgeladen.",
"media.previous_image": "Vorheriges Bild",
"media.next_image": "Nächstes Bild",
"image.library": "Bibliothek",
"image.no_selection": "Kein Bild ausgewählt.",
"image.trash": "Papierkorb",
"image.search": "Dateien suchen",
"image.grid_view": "Rasteransicht",
"image.list_view": "Listenansicht",
"image.upload": "Hochladen",
"image.drop_files": "Dateien hier ablegen",
"image.or": "oder",
"image.select": "Auswählen",
"image.empty_trash": "Papierkorb leeren",
"image.col_filename": "Dateiname",
"image.col_size": "Größe",
"image.col_date": "Datum",
"image.copy_path": "Pfad kopieren",
"image.replace": "Ersetzen",
"image.restore": "Wiederherstellen",
"image.delete_permanently": "Endgültig löschen",
"image.no_search_results": "Keine passenden Dateien.",
"image.loading": "Wird geladen...",
"image.uploading": "Wird hochgeladen...",
"image.uploaded": "Datei hochgeladen",
"image.trashed": "Datei in den Papierkorb verschoben",
"image.restored": "Datei wiederhergestellt",
"image.replaced": "Datei ersetzt",
"image.replacing": "Wird ersetzt...",
"image.deleted_permanently": "Datei endgültig gelöscht",
"image.trash_emptied": "Papierkorb geleert",
"image.empty_trash_confirm": "Medien-Papierkorb leeren? Das kann nicht rückgängig gemacht werden.",
"image.delete_permanently_confirm": "Diese Datei endgültig löschen? Das kann nicht rückgängig gemacht werden.",
"image.exists": "Eine Datei mit diesem Namen existiert bereits.",
"image.overwrite_file": "Datei überschreiben",
"image.overwrite_desc": "Die vorhandene Datei durch die hochgeladene Datei ersetzen.",
"image.save_new_name": "Mit neuem Namen speichern",
"image.save_new_desc": "Beide Dateien behalten und Upload mit neuem Namen speichern.",
"image.choose_file": "Datei wählen",
"image.format_error": "Dieser Dateityp wird nicht unterstützt.",
"image.size_error": "Diese Datei ist zu groß.",
"image.trash_hint": "Dateien im Papierkorb können wiederhergestellt oder endgültig gelöscht werden.",
"image_preview": "Bildvorschau",
"icons.title": "Icon Manager",
"icons.add_icon": "Icon hinzufügen",
"icons.edit_icon": "Icon bearbeiten",
"icons.delete_icon": "Icon löschen",
"icons.empty": "Keine Icons verfügbar.",
"icons.path": "Icon-Set: {path}",
"icons.filter": "Icons durchsuchen",
"icons.filter_placeholder": "Name, Key oder Tag",
"icons.sort": "Sortierung",
"icons.sort_alpha": "Alphabetisch",
"icons.sort_newest": "Neueste zuerst",
"icons.sort_oldest": "Älteste zuerst",
"icons.key": "Icon-Key",
"icons.key_hint": "Das Umbenennen eines Icon-Keys kann bestehende Inhalte beschädigen, die noch auf den alten Key verweisen.",
"icons.label": "Beschriftung",
"icons.tags": "Tags",
"icons.tags_hint": "Gespeicherte Metadaten für Suche und Filterung in Icon-Pickern; hat keinen Einfluss auf die Darstellung.",
"icons.viewbox": "ViewBox",
"icons.svg": "SVG-Code",
"icons.svg_hint": "SVG-Inhalt oder ein vollständiges <svg> einfügen. Raiju speichert nur den inneren Markup-Teil und ergänzt beim Rendern das äußere <svg> mit einer 24x24-viewBox. Scripts, Event-Handler, externe Referenzen und nicht unterstützte Tags werden beim Speichern entfernt.",
"icons.preview": "Vorschau",
"icons.source_core": "Core-Standard",
"icons.source_custom": "Benutzerdefiniert",
"icons.rename_warning_title": "Icon-Key geändert",
"icons.rename_warning": "Bestehende JSON-Inhalte können weiterhin den alten Icon-Key verwenden und fallen dann auf das Default-Icon zurück.",
"icons.rename_confirm": "Diesen Icon-Key umbenennen? Bestehende Inhalte können weiterhin den alten Key verwenden.",
"icons.delete_confirm": "Icon „{key}“ löschen? Bestehende Inhalte mit diesem Key fallen auf das Default-Icon zurück.",
"icons.saved": "Icon gespeichert.",
"icons.deleted": "Icon gelöscht.",
"icons.load_error": "Fehler beim Laden der Icons: {message}",
"icons.save_error": "Fehler beim Speichern des Icons: {message}",
"icons.delete_error": "Fehler beim Löschen des Icons: {message}",
"icons.cleanup": "Clean up",
"icons.current_color": "currentColor setzen",
"icons.cleanup_done": "SVG-Code bereinigt.",
"icons.import_icon": "Aus Icon-Bibliothek importieren",
"icons.icon_set": "Icon-Set",
"icons.search": "Suchen",
"icons.import": "Importieren",
"icons.imported_short": "Importiert",
"icons.imported": "Icon importiert.",
"icons.import_empty": "Keine Icons gefunden.",
"icons.import_loading": "Icons werden geladen ...",
"icons.import_error": "Fehler beim Icon-Import: {message}",
"icons.import_query_short": "Mindestens 2 Zeichen eingeben.",
"icons.import_license_hint": "{set} wird über Iconify gesucht. Lizenz: {license}. Importierte Icons werden lokal gespeichert.",
"icons.current_color_done": "Icon-Farben auf currentColor gesetzt.",
"settings.access": "Zugriff",
"settings.access_desc": "Wartungsmodus und Vorschau-Bypass steuern.",
"settings.maintenance": "Wartungsmodus",
"settings.maintenance_enabled": "Wartungsmodus aktivieren",
"settings.maintenance_mode": "Modus",
"settings.maintenance_mode_maintenance": "Wartung",
"settings.maintenance_mode_offline": "Bald wieder online",
"settings.maintenance_mode_launch": "Launch-Countdown",
"settings.maintenance_title": "Titel",
"settings.maintenance_text": "Text",
"settings.maintenance_default_title": "Wartungsarbeiten",
"settings.maintenance_default_text": "Wir sind in Kürze wieder online.",
"settings.maintenance_until": "Nicht erreichbar bis",
"settings.maintenance_countdown": "Countdown anzeigen",
"settings.access_bypass": "Bypass-Link",
"settings.access_bypass_desc": "Mit diesen Links bleibt die Website trotz Wartungsmodus erreichbar. Ein Link besteht aus der Adresse der Website, einem Fragezeichen, dem URL-Parameter, einem Gleichheitszeichen und dem Key. Du kannst mehrere Links für verschiedene Benutzer anlegen und jeden einzeln widerrufen, indem du ihn löschst.",
"settings.access_bypass_link": "Link:",
"settings.access_bypass_key_placeholder": "KEY",
"settings.access_bypass_param": "URL-Parameter",
"settings.access_bypass_key": "Key",
"settings.access_bypass_add": "Link hinzufügen",
"settings.access_bypass_remove": "Link entfernen",
"settings.group_site": "Website",
"settings.group_features": "Funktionen",
"settings.group_users": "Benutzer",
"settings.group_system": "System",
"settings.modules": "Dashboard-Module",
"settings.modules_nav": "Module",
"settings.modules_desc": "Steuert, welche Funktionsbereiche in dieser Installation im Dashboard verfügbar sind.",
"settings.modules_hint": "Deaktivierte Module werden aus der Dashboard-Navigation ausgeblendet. Wenn AI Features deaktiviert ist, werden AI-Werkzeuge und AI-Buttons im gesamten Adminbereich ausgeblendet. Bestehende Inhalte bleiben gespeichert und können später wieder aktiviert werden.",
"settings.media_web_quality": "WebP-Qualität (50–95)",
"settings.media_web_max_side": "Längste Kante der Webfassung (px)",
"settings.media_web_version_hint": "Große JPG-, PNG- und WebP-Bilder werden beim Upload auf die längste Kante verkleinert und als WebP gespeichert; Seiten binden diese Fassung ein. Das Original bleibt unter assets/images-originals/ und lässt sich in der Mediathek herunterladen.",
"settings.media_web_version": "Webfassung beim Upload erzeugen",
"settings.media_max_upload_hint": "Gilt für JPG, PNG, WebP, GIF und SVG. Der Server begrenzt Uploads zusätzlich (upload_max_filesize, post_max_size); der Systemstatus zeigt beide Werte.",
"settings.media_max_upload": "Upload-Limit für Bilder (MB)",
"settings.media_section": "Mediathek",
"settings.module_ai": "AI Features",
"settings.module_news": "News",
"settings.module_events": "Termine",
"settings.module_messages": "Nachrichten",
"settings.module_icon_manager": "Icon Manager",
"settings.privacy": "Datenschutz",
"settings.privacy_desc": "Steuert Datenschutzfunktionen im Frontend und lokalen Browserspeicher.",
"settings.email_obfuscation": "E-Mail-Adressen verschleiern",
"settings.email_obfuscation_hint": "Öffentliche Seiten ersetzen E-Mail-Adressen durch JavaScript-decodierte Platzhalter.",
"settings.remember_public_theme": "Öffentliche Theme-Auswahl merken",
"settings.remember_public_theme_hint": "Speichert die Hell-/Dunkel-Auswahl des Besuchers im lokalen Browserspeicher. Für besonders datenschutzempfindliche Seiten deaktivieren.",
"settings.save_access": "Zugriff speichern",
"settings.save_modules": "Dashboard-Module speichern",
"settings.save_privacy": "Datenschutz speichern",
"toast.access_saved": "Zugriffseinstellungen gespeichert.",
"toast.modules_saved": "Dashboard-Module gespeichert.",
"toast.privacy_saved": "Datenschutzeinstellungen gespeichert.",
"editor.visibility": "Sichtbarkeit",
"editor.visibility_public": "Öffentlich",
"editor.visibility_private": "Privat, passwortgeschützt",
"editor.visibility_password": "Seitenpasswort",
"editor.visibility_title": "Titel der Passwortseite",
"editor.visibility_text": "Text der Passwortseite",
"editor.visibility_password_hint": "Erforderlich, wenn die Seite auf privat gestellt wird.",
"editor.visibility_password_set": "Ein Passwort ist bereits gespeichert. Nur zum Ersetzen ein neues Passwort eingeben.",
"editor.seo": "SEO / AEO",
"editor.settings_basics": "Basisdaten",
"editor.settings_navigation": "Navigation",
"editor.settings_access": "Zugriff",
"editor.seo_hint": "Suchvorschau, Kurzantworten, Teilen und Indexierung.",
"editor.ai_fill_seo": "SEO-Felder mit KI befüllen",
"editor.ai_fill_field": "Dieses Feld mit KI befüllen",
"editor.ai_generating": "KI generiert...",
"editor.ai_done": "KI-Vorschlag eingefügt.",
"editor.ai_unavailable": "KI-Textgenerierung ist nicht aktiv.",
"editor.seo_title": "SEO-Titel (Fallback: Seitentitel)",
"editor.seo_description": "Meta Description (Fallback: Seitenbeschreibung)",
"editor.seo_answer_summary": "Kurzantwort / KI-Zusammenfassung für Antwortmaschinen",
"editor.seo_canonical": "Canonical URL (optional)",
"editor.seo_robots_index": "Index, follow",
"editor.seo_robots_noindex": "Noindex, follow",
"editor.seo_robots_private": "Noindex, nofollow",
"editor.seo_og_title": "Open-Graph-Titel",
"editor.seo_og_description": "Open-Graph-Beschreibung",
"editor.seo_og_image": "Open-Graph-Bild",
"editor.seo_og_image_format": "Open-Graph-Bilder müssen JPG oder PNG aus /assets/images/ sein.",
"editor.seo_sitemap": "In XML-Sitemap aufnehmen",
"ai.title": "KI",
"ai.settings": "KI-Einstellungen",
"ai.settings_desc": "Konfiguriere einen OpenAI-kompatiblen KI-Provider, Budgets, Limits und aktive KI-Funktionen.",
"ai.open_settings": "KI-Einstellungen",
"ai.not_configured_title": "KI ist nicht konfiguriert",
"ai.not_configured_text": "Hinterlege einen API-Key oder konfiguriere einen ausdrücklich erlaubten lokalen Provider, bevor KI-Werkzeuge genutzt werden können.",
"ai.module_disabled_status": "KI-Funktionen sind in den Modulen deaktiviert.",
"ai.dismiss_notice": "KI-Hinweis schließen",
"ai.disabled_status": "Ein Provider ist konfiguriert, aber KI-Funktionen sind deaktiviert.",
"ai.configured_status": "KI ist konfiguriert und aktiviert. Limits und Audit-Logging sind aktiv.",
"ai.assistant": "Assistent",
"ai.assistant_placeholder": "Frage, wie du Einstellungen änderst, Inhalte bearbeitest oder Raiju nutzt.",
"ai.text_generator": "Textgenerator",
"ai.text_placeholder": "Beispiel: Schreibe eine SEO-Meta-Description für diese Seite...",
"ai.image_generator": "Bildgenerator",
"ai.image_prompt": "Bild-Prompt",
"ai.image_placeholder": "Beschreibe das Bild, das generiert werden soll.",
"ai.image_generator_disabled": "Der Bildgenerator ist in den KI-Einstellungen deaktiviert.",
"ai.image_filename": "Dateiname",
"ai.image_filename_placeholder": "z. B. hero-startseite",
"ai.image_filename_hint": "Ohne Dateiendung. Das Ausgabeformat bestimmt .png, .jpg oder .webp.",
"ai.image_filename_suggest": "Aus Prompt vorschlagen",
"ai.send": "Senden",
"ai.chat_shortcuts": "Enter zum Absenden · Cmd/Strg+Enter für einen Zeilenumbruch.",
"ai.chat_shortcuts_mac": "Enter zum Absenden · Cmd+Enter für einen Zeilenumbruch.",
"ai.chat_shortcuts_ctrl": "Enter zum Absenden · Strg+Enter für einen Zeilenumbruch.",
"ai.answering": "Antwort wird generiert...",
"ai.generate_text": "Text generieren",
"ai.generate_image": "Bild generieren",
"ai.generate_images": "Bilder generieren",
"ai.generating": "Wird generiert...",
"ai.max_output_tokens": "Max. Ausgabe-Tokens",
"ai.image_size": "Auflösung / Orientierung",
"ai.image_size_auto": "Auto",
"ai.image_scale": "Auflösung",
"ai.image_cost_per_image": "Geschätzte Kosten pro Bild: {cost}",
"ai.image_size_note": "Berechnete Bildgröße: {size}.",
"ai.image_size_note_auto": "Der Provider wählt die Bildgröße automatisch.",
"ai.image_orientation_square": "Quadratisch",
"ai.image_orientation_landscape": "Querformat",
"ai.image_orientation_portrait": "Hochformat",
"ai.image_format": "Format",
"ai.image_quality": "Qualität / Detailgrad",
"ai.image_auto": "Auto",
"ai.image_quality_low": "Niedrig",
"ai.image_quality_medium": "Mittel",
"ai.image_quality_high": "Hoch",
"ai.image_background": "Hintergrund",
"ai.image_background_opaque": "Deckend",
"ai.image_background_transparent": "Transparent",
"ai.image_moderation": "Provider-Sicherheit",
"ai.image_moderation_standard": "Standard",
"ai.image_moderation_low": "Weniger streng",
"ai.image_compression": "Kompression",
"ai.image_count": "Bilder",
"ai.image_count_increase": "Bildanzahl erhöhen",
"ai.image_count_decrease": "Bildanzahl verringern",
"ai.image_reference": "Referenzbild",
"ai.image_reference_upload": "Bild hochladen",
"ai.image_reference_library": "Mediathek",
"ai.image_reference_none": "Kein Referenzbild",
"ai.image_reference_count": "{count} von {max} Referenzbildern",
"ai.image_reference_file": "Referenzbild",
"ai.image_reference_remove": "Referenzbild entfernen",
"ai.improve_prompt": "Prompt verbessern",
"ai.improving_prompt": "Wird verbessert...",
"ai.image_group_auto": "Auto",
"ai.image_group_square": "Quadratisch",
"ai.image_group_landscape": "Querformat",
"ai.image_group_portrait": "Hochformat",
"ai.image_history_title": "Zuletzt generiert",
"ai.image_history_hint": "Lokal gespeichert mit Prompt, Modell, Optionen, Status und Medienlinks.",
"ai.image_history_empty": "Noch keine Bildgenerierungen gespeichert.",
"ai.image_history_load_more": "Mehr laden",
"ai.image_history_clear": "History löschen",
"ai.image_history_clear_confirm": "Die komplette Bildgenerierungs-History löschen? Die generierten Bilddateien bleiben in der Mediathek.",
"ai.image_history_cleared": "Bildgenerierungs-History gelöscht.",
"ai.image_history_use_prompt": "Prompt übernehmen",
"ai.image_history_error": "Kein Bild",
"ai.image_history_status_success": "Erstellt",
"ai.image_history_status_error": "Fehlgeschlagen",
"ai.image_job_queued": "Die Bildgenerierung läuft im Hintergrund.",
"ai.image_job_finished": "Die Bildgenerierung ist fertig.",
"ai.image_job_failed": "Die Bildgenerierung ist fehlgeschlagen.",
"ai.image_model_missing_note": "Hinterlege in den AI Settings ein Bildmodell, bevor Bilder generiert werden.",
"ai.image_anthropic_note": "Anthropic hat keine Bild-API. Wähle einen Bild-Service, damit der Agent und die Bildfunktionen Bilder erzeugen können.",
"ai.image_openrouter_note": "OpenRouter-Bildgenerierung nutzt kompatible multimodale Modelle wie Gemini; Optionen können je Modell abweichen.",
"ai.image_field_hint": "Brauchst du ein neues Bild für dieses Feld?",
"ai.open_image_generator": "AI Image Generator",
"ai.provider": "Provider",
"ai.enable_ai": "KI-Funktionen aktivieren",
"ai.openai_compatible": "OpenAI-kompatibel",
"ai.anthropic": "Anthropic (Claude)",
"ai.openrouter": "OpenRouter",
"ai.kie": "Kie.ai",
"ai.openrouter_image_gpt": "GPT Image 2",
"ai.openai_image_gpt": "GPT Image 2",
"ai.openrouter_image_gemini_flash": "Nano Banana 2",
"ai.openrouter_image_gemini_pro": "Nano Banana Pro",
"ai.openrouter_image_model_hint": "OpenRouter benötigt Modell-IDs mit Provider-Präfix; Raiju speichert die gewählte ID automatisch.",
"ai.base_url": "Base URL",
"ai.allow_local_provider": "Lokale/private Provider-URL erlauben",
"ai.allow_local_provider_hint": "Erforderlich für Ollama, LM Studio oder selbst gehostete Provider auf localhost/privaten Netzwerken.",
"ai.api_key": "API-Key",
"ai.api_key_saved": "API-Key gespeichert. Unverändert lassen, um ihn beizubehalten.",
"ai.api_key_missing": "Kein API-Key gespeichert. Lokale Provider können ohne Key funktionieren.",
"ai.clear_api_key": "Gespeicherten API-Key entfernen",
"ai.organization": "OpenAI-Organisations-ID (optional)",
"ai.models": "Modelle",
"ai.chat_model": "Chat-Modell",
"ai.text_model": "Text-Modell",
"ai.image_model": "Bild-Modell",
"ai.features": "Funktionen",
"ai.feature_assistant": "Backend-Assistent",
"ai.feature_seo": "SEO-/Textgenerierung",
"ai.feature_images": "Bildgenerierung",
"ai.assistant_surface_visual_editor": "Chatbot in Visual Editor anzeigen",
"ai.assistant_surface_dashboard": "Chatbot im Dashboard anzeigen",
"ai.assistant_force_english": "Dashboard-Spracheinstellung ignorieren – Chat Bot immer auf Englisch verwenden",
"ai.assistant_force_english_hint": "Wenn aktiviert, antwortet der AI Assistant immer auf Englisch, auch wenn das Dashboard in einer anderen Sprache angezeigt wird.",
"ai.limits": "Limits",
"ai.monthly_budget": "Monatsbudget (Cent)",
"ai.daily_requests": "Requests pro Tag",
"ai.daily_text_requests": "Text-Requests pro Tag",
"ai.daily_image_requests": "Bild-Requests pro Tag",
"ai.max_input_tokens": "Max. Eingabe-Tokens",
"ai.max_input_tokens_hint": "Empfehlung: 64.000. Reicht für den Agenten und lange Seiten; senke den Wert nur bei sehr kleinen Sites, um Kosten zu sparen.",
"ai.max_output_tokens_hint": "Empfehlung: 16.000. Reasoning-Modelle rechnen ihr Nachdenken auf diese Grenze an, ein niedriger Wert kann Antworten abschneiden. Die Grenze deckelt nur eine Antwort; bezahlt wird, was erzeugt wird.",
"ai.request_timeout": "Request-Timeout (Sek.)",
"ai.request_timeout_hint": "Empfehlung: 300 Sekunden für Bildgenerierung; Text-Requests sind meistens deutlich schneller.",
"ai.pricing": "Kostenschätzung",
"ai.input_price": "Input-Cent / 1 Mio. Tokens",
"ai.output_price": "Output-Cent / 1 Mio. Tokens",
"ai.image_price": "Standardpreis je Bild (Cent)",
"ai.save_settings": "KI-Einstellungen speichern",
"ai.test_connection": "Verbindung testen",
"ai.testing": "Teste...",
"ai.connection_ok": "KI-Verbindung funktioniert.",
"ai.settings_saved": "KI-Einstellungen gespeichert.",
"ai.audit_tab": "Inhalts-Audit",
"ai.audit_hint": "Prüft alle Seiten auf fehlende oder schwache SEO-Beschreibungen und Bilder ohne Alt-Text. Der Scan selbst ist kostenlos; Vorschläge nutzen das KI-Textmodell.",
"ai.audit_run": "Audit starten",
"ai.audit_running": "Seiten werden geprüft...",
"ai.audit_empty": "Keine Seiten gefunden.",
"ai.audit_col_page": "Seite",
"ai.audit_col_description": "SEO-Beschreibung",
"ai.audit_col_alt": "Bild-Alt-Texte",
"ai.audit_status_missing": "Fehlt",
"ai.audit_status_short": "Zu kurz",
"ai.audit_status_long": "Zu lang",
"ai.audit_status_ok": "OK",
"ai.audit_alt_missing": "{count} fehlen",
"ai.audit_suggest": "Beschreibung vorschlagen",
"ai.audit_apply": "Übernehmen",
"ai.audit_applied": "Übernommen",
"ai.audit_apply_confirm": "Diese Beschreibung auf \"{page}\" speichern? Vorher wird ein Backup erstellt.",
"ai.usage_panel": "Verbrauch diesen Monat",
"ai.usage_requests_today": "Anfragen heute",
"ai.usage_text_image_split": "{text} Text · {images} Bild",
"ai.usage_cost_month": "Kosten diesen Monat",
"ai.usage_requests_month": "{requests} Anfragen",
"ai.usage_tokens_month": "Tokens diesen Monat",
"ai.usage_tokens_split": "{input} ein · {output} aus",
"ai.usage_budget": "Monatsbudget",
"ai.usage_budget_value": "{spent} von {budget} ({percent}%)",
"ai.pricing_autofilled": "Die Preisfelder wurden aus den OpenRouter-Modelldaten befüllt. Bitte prüfen und speichern.",
"ai.model_list_open": "Modellvorschläge anzeigen",
"ai.usage_summary": "Heute: {today} Requests · Monat: {cost}",
"dashboard_home.title": "Dashboard",
"dashboard_home.page_views_today": "Aufrufe heute",
"dashboard_home.page_views_30d": "Aufrufe in 30 Tagen",
"dashboard_home.visitors_30d": "Besucher in 30 Tagen",
"dashboard_home.visits_30d": "Besuche in 30 Tagen",
"dashboard_home.bots_filtered": "Bots gefiltert",
"dashboard_home.pages": "Seiten",
"dashboard_home.news": "News-Beiträge",
"dashboard_home.top_pages": "Top-Seiten",
"dashboard_home.referrers": "Referrer",
"dashboard_home.devices": "Geräte",
"dashboard_home.browsers_os": "Browser / OS",
"dashboard_home.no_views": "Noch keine Seitenaufrufe erfasst.",
"dashboard_home.no_data": "Noch keine Daten.",
"dashboard_home.views_detail": "{views} Aufrufe · {visitors} Besucher · {visits} Besuche",
"dashboard_home.ai_status": "KI-Status",
"dashboard_home.ai_tools": "KI-Werkzeuge",
"dashboard_home.analytics": "Statistik",
"dashboard_home.analytics_hint": "Besucherüberblick der letzten 30 Tage mit gefiltertem Bot-Traffic.",
"dashboard_home.analytics_details": "Technische Details",
"dashboard_home.content_overview": "Content-Überblick",
"dashboard_home.traffic_curve": "Besuchsverlauf",
"dashboard_home.views_label": "Aufrufe",
"dashboard_home.analytics_range": "Statistik-Zeitraum",
"dashboard_home.range_days": "30 Tage",
"dashboard_home.range_months": "12 Monate",
"dashboard_home.range_years": "Jahre",
"dashboard_home.range_label_days": "den letzten {count} Tagen",
"dashboard_home.range_label_months": "den letzten {count} Monaten",
"dashboard_home.range_label_years": "allen Jahren",
"dashboard_home.views_period": "Aufrufe in {period}",
"dashboard_home.visitors_period": "Besucher in {period}",
"dashboard_home.visits_period": "Besuche in {period}",
"dashboard_home.hourly_distribution": "Heute nach Uhrzeit",
"dashboard_home.today": "Heute",
"dashboard_home.site_status": "Website-Status",
"dashboard_home.unread_messages": "Ungelesene Nachrichten",
"dashboard_home.backup_status": "Letztes Backup",
"dashboard_home.auto_backup": "Auto-Backup",
"dashboard_home.no_backup": "Kein Backup",
"dashboard_home.active": "Aktiv",
"dashboard_home.inactive": "Inaktiv",
"dashboard_home.recent_edit": "Zuletzt bearbeitet",
"dashboard_home.current_user": "Angemeldet",
"save": "Speichern",
"saving": "Speichert...",
"cancel": "Abbrechen",
"delete": "Löschen",
"edit": "Bearbeiten",
"logout": "Abmelden",
"show": "Anzeigen",
"hide": "Ausblenden",
"undo": "Rückgängig",
"redo": "Wiederholen",
"bold": "Fett",
"italic": "Kursiv",
"insert_link": "Link einfügen",
"clean_formatting": "Formatierung entfernen",
"visual_editor": "Visueller Editor",
"edit_reminder.title": "Seite bearbeiten?",
"edit_reminder.message": "Du bist eingeloggt. Aktiviere den visuellen Editor, um Texte und Bilder direkt auf dieser Seite zu bearbeiten.",
"edit_reminder.dismiss": "Weiter ansehen",
"edit_reminder.activate": "Visuellen Editor aktivieren",
"content_editor": "Content Editor",
"edit_block_title": "Block bearbeiten",
"edit_mode_hint": "Bearbeitungsmodus ist aktiv.",
"drag_reorder": "Zum Sortieren ziehen",
"search_blocks": "Blöcke suchen",
"add_block": "Block hinzufügen",
"cat.content": "Inhalt",
"cat.media": "Medien",
"cat.embed": "Einbettungen",
"cat.cards": "Karten",
"cat.layout": "Layout",
"cat.interactive": "Interaktiv",
"btn.move_up": "Nach oben",
"btn.move_down": "Nach unten",
"nav.edit_mode_active": "Bearbeitungsmodus aktiv",
"nav.unsaved_changes": "Ungespeicherte Änderungen",
"link_internal": "Interner Link",
"link_external": "Externer Link",
"link_target": "Linkziel",
"link_open_new_tab": "In neuem Tab öffnen",
"link_offer_download": "Als Download anbieten",
"footer.edit": "Footer bearbeiten",
"footer.copyright": "Copyright",
"footer.link_text": "Linktext",
"footer.link_url": "Link-URL",
"item.delete": "Eintrag löschen",
"item.delete_confirm": "Diesen Eintrag löschen?",
"section.delete": "Abschnitt löschen",
"section.delete_confirm": "Diesen Abschnitt löschen?",
"section.reload_hint": "Lade die Seite neu, um das aktualisierte Abschnittslayout zu sehen.",
"image.col_actions": "Aktionen",
"editor.change_image": "Bild ändern",
"audio.manager": "Audiothek",
"audio.upload": "Audio hochladen",
"audio.select": "Audio auswählen",
"audio.search": "Audio suchen",
"audio.no_files": "Keine Audiodateien gefunden.",
"audio.loading": "Audio wird geladen...",
"audio.play": "Audio abspielen",
"audio.playing": "Audio wird abgespielt",
"audio.delete": "Audio löschen",
"audio.delete_confirm": "Diese Audiodatei löschen?",
"audio.uploaded": "Audio hochgeladen",
"audio.trashed": "Audio in den Papierkorb verschoben",
"audio.trash_hint": "Audiodateien im Papierkorb können wiederhergestellt oder endgültig gelöscht werden.",
"audio.error_loading": "Fehler beim Laden der Audiodateien.",
"audio.format_error": "Dieses Audioformat wird nicht unterstützt.",
"audio.size_error": "Diese Audiodatei ist zu groß.",
"event.new": "Neuer Termin",
"event.edit": "Termin bearbeiten",
"event.delete": "Termin löschen",
"event.delete_confirm": "Diesen Termin löschen? Das kann nicht rückgängig gemacht werden.",
"event.cannot_undo": "Das kann nicht rückgängig gemacht werden.",
"event.copy_to_all": "In alle Sprachen kopieren",
"event.date_required": "Startdatum ist erforderlich.",
"event.title": "Titel",
"event.location": "Ort",
"event.description": "Beschreibung",
"event.admission": "Eintritt",
"event.url": "URL",
"event.image": "Bild",
"event.start_date": "Startdatum",
"event.start_time": "Startzeit",
"event.end_date": "Enddatum",
"event.end_time": "Endzeit",
"history.title": "Verlauf",
"history.empty": "Noch keine Verlaufseinträge.",
"history.restore": "Wiederherstellen",
"history.restore_title": "Version wiederherstellen",
"history.restore_confirm": "Diese Version wiederherstellen? Ungespeicherte Änderungen gehen verloren.",
"history.overwrite": "Aktuellen Inhalt überschreiben",
"history.overwrite_warning": "Dadurch wird der aktuelle Inhalt überschrieben.",
"history.not_found": "Verlaufseintrag nicht gefunden.",
"history.clear": "Verlauf löschen",
"history.clear_confirm": "Verlauf löschen? Das kann nicht rückgängig gemacht werden.",
"history.cleared": "Verlauf gelöscht.",
"toast.error": "Etwas ist schiefgelaufen.",
"toast.error_saving_short": "Konnte nicht speichern.",
"toast.error_deleting": "Konnte nicht löschen.",
"toast.error_undo": "Konnte nicht rückgängig machen.",
"toast.upload_error": "Upload fehlgeschlagen.",
"toast.no_changes": "Keine Änderungen zum Speichern.",
"toast.copied": "Kopiert.",
"toast.copied_to_empty": "In leeres Feld kopiert.",
"toast.change_queued": "Änderung vorgemerkt.",
"toast.order_changed": "Reihenfolge geändert.",
"toast.hidden": "Ausgeblendet.",
"toast.visible": "Sichtbar.",
"toast.row_hidden": "Zeile ausgeblendet.",
"toast.row_visible": "Zeile sichtbar.",
"toast.event_hidden": "Termin ausgeblendet.",
"toast.event_visible": "Termin sichtbar.",
"toast.undone": "Änderung rückgängig gemacht.",
"toast.formatting_cleaned": "Formatierung entfernt.",
"toast.select_text_first": "Bitte zuerst Text markieren.",
"toast.sort_same_section": "Einträge können nur innerhalb desselben Abschnitts sortiert werden.",
"copilot.title": "AI Assistent",
"copilot.type_page": "Standardseite",
"copilot.type_news": "Newsbeitrag",
"copilot.type_event": "Termin",
"copilot.type_form": "Formular",
"copilot.subtitle": "Sichere Editor-Hilfe",
"copilot.close": "AI Assistent schließen",
"copilot.placeholder": "Frag, wie du diese Seite ändern kannst...",
"copilot.ask": "AI Assistent fragen",
"copilot.draft_changes": "Änderungen entwerfen",
"copilot.draft_content": "Inhalt entwerfen",
"copilot.draft_image": "Bild",
"copilot.shortcut_needs_prompt": "Gib zuerst eine Anweisung ein.",
"copilot.draft_changes_hint": "Öffnet einen geführten Dialog für eine geprüfte Seitenänderung.",
"copilot.draft_content_hint": "Öffnet einen geführten Dialog für eine neue Seite, News, einen Termin oder Beitrag.",
"copilot.draft_image_hint": "Öffnet die Bildoptionen, um den Bild-Prompt einzugeben oder zu verfeinern.",
"copilot.send": "Senden",
"copilot.not_ready": "AI ist noch nicht bereit. Prüfe die AI-Einstellungen im Dashboard.",
"copilot.current_page": "aktuelle Seite",
"copilot.field_hints": "{count} bearbeitbare Feldhinweise gefunden",
"copilot.selected_field": "Ausgewähltes Feld: {field}",
"copilot.missing": "Fehlt: {fields}",
"copilot.create_draft": "Entwurf erstellen",
"copilot.needs_details_hint": "Sende eine weitere Nachricht mit den fehlenden Angaben, bevor der Inhalt erstellt wird.",
"copilot.complete_details": "Angaben ergänzen",
"copilot.complete_details_title": "Inhaltsangaben ergänzen",
"copilot.update_draft": "Entwurf aktualisieren",
"copilot.update_draft_instruction": "Aktualisiere den Inhaltsentwurf mit den übermittelten Formularfeldern.",
"copilot.content_draft_title": "{type}-Entwurf",
"copilot.ready_to_create": "Bereit zum Erstellen",
"copilot.needs_details": "Benötigt Angaben",
"copilot.private_draft": "Privater Entwurf",
"copilot.hidden_draft": "Ausgeblendeter Entwurf",
"copilot.draft_created": "Entwurf erstellt",
"copilot.open_dashboard": "Im Dashboard öffnen",
"copilot.open_preview": "Vorschau-URL öffnen",
"copilot.created_title": "{type} erstellt",
"copilot.last_change": "Letzte AI-Änderung angewendet",
"copilot.undo": "Rückgängig",
"copilot.alt_text": "Alt-Text",
"copilot.current": "Aktuell",
"copilot.draft": "Entwurf",
"copilot.review_backup": "Vor dem Anwenden prüfen. Serverseitig wird ein Backup erstellt.",
"copilot.apply": "Anwenden",
"copilot.copy": "Kopieren",
"copilot.copied_message": "Der Entwurfswert für {field} wurde kopiert.",
"copilot.copy_failed": "Der Entwurfswert konnte nicht kopiert werden.",
"copilot.publish": "Veröffentlichen",
"copilot.publish_confirm": "Diesen Entwurf jetzt veröffentlichen?",
"copilot.published_message": "{type} \"{id}\" wurde veröffentlicht.",
"copilot.intro_message": "Ich kann dir bei dieser Seite helfen und erklären, wie du Inhalte sicher bearbeitest oder erstellst. Schreib einfach, was du ändern oder erstellen möchtest.",
"copilot.no_response": "Keine Antwort.",
"copilot.suggestions_ready": "Ich habe sichere Vorschläge auf Feldebene vorbereitet. Prüfe die Vorschaukarten unten.",
"copilot.no_safe_field": "Ich konnte diese Anfrage noch keinem sicheren bearbeitbaren Feld auf dieser Seite zuordnen.",
"copilot.content_draft_ready_message": "Ich habe einen neuen {type}-Entwurf vorbereitet. Prüfe die Vorschau vor dem Erstellen.",
"copilot.content_draft_needs_details_message": "Ich habe einen Entwurf vorbereitet, brauche aber noch weitere Angaben, bevor er erstellt werden kann.",
"copilot.content_unavailable": "Inhaltserstellung ist für deine Rolle oder diese Website-Konfiguration nicht verfügbar.",
"copilot.image_unavailable": "Bildgenerierung ist für deine Rolle, diese Seite oder die aktuellen AI-Einstellungen nicht verfügbar.",
"copilot.no_image_field": "Ich konnte auf dieser Seite kein bearbeitbares Bildfeld finden.",
"copilot.choose_image_field": "Welches Bildfeld soll ich verwenden?",
"copilot.image_options_title": "Bildoptionen",
"copilot.image_options_hint": "Wähle Zielbild und Generierungsmodus.",
"copilot.image_mode_label": "Modus",
"copilot.image_mode_generate": "Aus Prompt",
"copilot.image_mode_edit": "Mit Referenzbild",
"copilot.image_size": "Größe",
"copilot.image_size_auto": "Auto",
"copilot.image_size_square": "Quadratisch",
"copilot.image_size_landscape": "Querformat",
"copilot.image_size_portrait": "Hochformat",
"copilot.image_count": "Bilder",
"copilot.image_format": "Format",
"copilot.image_quality": "Qualität",
"copilot.image_quality_auto": "Auto",
"copilot.image_quality_low": "Niedrig",
"copilot.image_quality_medium": "Mittel",
"copilot.image_quality_high": "Hoch",
"copilot.image_generate_action": "Bild generieren",
"copilot.image_options_ready": "Wähle das Bildfeld und ob ein neues Bild generiert oder das aktuelle Bild bearbeitet werden soll.",
"copilot.image_job_queued": "Die Bildgenerierung läuft im Hintergrund. Du kannst weiterarbeiten; ich zeige die Vorschau, sobald sie fertig ist.",
"copilot.image_draft_ready": "Generiertes Bild bereit. Prüfe die Vorschaukarte vor dem Anwenden.",
"copilot.image_no_proposal": "Die Bildgenerierung hat keine Vorschau zurückgegeben.",
"copilot.apply_confirm": "Diesen AI-Entwurf auf \"{field}\" anwenden?",
"copilot.applied_message": "Der Entwurf wurde auf {field} angewendet. Vor dem Speichern wurde ein Backup erstellt.",
"copilot.undo_confirm": "Die letzte AI-Änderung auf dieser Seite rückgängig machen? Der aktuelle Stand wird vorher gesichert.",
"copilot.undo_message": "Die Seite wurde aus dem Backup wiederhergestellt. Sie wird jetzt neu geladen.",
"copilot.create_confirm": "Diesen {type}-Entwurf erstellen?",
"copilot.created_message": "{type}-Entwurf \"{id}\" wurde erstellt. Er ist standardmäßig nicht öffentlich veröffentlicht.",
"copilot.created_page_navigation_hint": "Öffne die Seite im Inhaltseditor und lege unter Seiteneinstellungen / Navigation fest, in welchen Menüs sie erscheinen soll.",
"copilot.navigation_manual_required": "Es wurde keine Änderung angewendet. Ich kann die Seitennavigation noch nicht sicher direkt aus dem Chat ändern. Öffne im Inhaltseditor Seiteneinstellungen / Navigation und wähle dort die Menüs aus, in denen diese Seite erscheinen soll.",
"copilot.image_request_failed": "Bildgenerierung fehlgeschlagen.",
"copilot.working_translate": "Übersetze die Seiteninhalte...",
"copilot.translate_ready": "Ich habe {target}-Übersetzungen entworfen. Prüfe die Vorschaukarten unten; beim Anwenden werden sie auf der {target}-Seite gespeichert.",
"copilot.translate_no_fields": "Ich konnte keine Übersetzungen für diese Seite entwerfen. Prüfe, ob die Zielsprachen-Seite existiert und übersetzbare Felder hat.",
"copilot.translate_unavailable": "Übersetzungsentwürfe sind für deine Rolle oder auf dieser Oberfläche nicht verfügbar. Öffne die Seite im visuellen Editor, um sie zu übersetzen.",
"copilot.request_failed": "AI-Assistent-Anfrage fehlgeschlagen.",
"copilot.proposal_summary_title": "Geplante Änderungen",
"copilot.proposal_summary_hint": "{count} Änderungen werden gemeinsam geprüft.",
"copilot.apply_all": "Alle anwenden",
"copilot.apply_all_confirm_title": "Alle AI-Entwürfe anwenden?",
"copilot.apply_all_confirm_body": "Diese {count} AI-Entwürfe anwenden? Für jeden gespeicherten Seitenstand wird ein Backup erstellt.",
"copilot.applied_all_message": "{count} AI-Entwürfe wurden angewendet. Vor jedem Speichern wurde ein Backup erstellt.",
"copilot.apply_confirm_title": "AI-Entwurf anwenden?",
"copilot.confirm_title": "Aktion bestätigen",
"copilot.modal_cancel": "Abbrechen",
"copilot.modal_confirm": "Bestätigen",
"copilot.enable_visual_editor_title": "Visuellen Editor aktivieren?",
"copilot.enable_visual_editor_action": "Visuellen Editor aktivieren",
"copilot.undo_confirm_title": "Letzte AI-Änderung rückgängig machen?",
"copilot.create_confirm_title": "Entwurf erstellen?",
"copilot.publish_confirm_title": "Entwurf veröffentlichen?",
"copilot.summary_hide": "Feld ausblenden",
"copilot.summary_show": "Feld anzeigen",
"copilot.summary_image": "Bild ersetzen",
"copilot.request_timeout": "Die AI-Assistent-Anfrage hat zu lange gedauert. Es wurde keine Änderung angewendet.",
"copilot.working": "Der AI Assistent arbeitet...",
"copilot.working_context": "Seitenkontext wird geladen...",
"copilot.working_chat": "Ich prüfe deine Frage...",
"copilot.working_draft": "Ich entwerfe eine sichere Änderung...",
"copilot.working_content": "Ich bereite einen Inhaltsentwurf vor...",
"copilot.working_image": "Bild wird generiert...",
"copilot.working_apply": "Ich wende die bestätigte Änderung an...",
"copilot.working_undo": "Ich stelle die vorherige Version wieder her...",
"copilot.working_create": "Ich erstelle den bestätigten Entwurf...",
"copilot.working_publish": "Ich veröffentliche den bestätigten Entwurf...",
"copilot.enable_visual_editor_confirm": "Der Visuelle Editor muss aktiv sein, bevor AI-Änderungen auf dieser Seite vorbereitet werden können. Jetzt aktivieren?",
"copilot.visual_editor_required": "Es wurde keine Änderung vorgenommen. Aktiviere zuerst den Visuellen Editor und lass mich die Änderung dann erneut vorbereiten.",
"copilot.visual_editor_enabled": "Der Visuelle Editor ist aktiv. Ich bereite die Änderung zuerst als Vorschau vor.",
"copilot.visual_editor_unavailable": "Der Visuelle Editor ist auf dieser Seite nicht verfügbar. Deshalb kann ich hier keine Seitenänderung sicher vorbereiten.",
"copilot.use_current_image_confirm": "Das aktuelle Bild als Referenz für eine Bearbeitung verwenden? Wähle Abbrechen, um nur aus dem Prompt ein neues Bild zu generieren.",
"copilot.maximize": "AI Assistent maximieren",
"copilot.minimize": "AI Assistent minimieren",
"copilot.no_pending_preview": "Es gibt keine geprüfte AI-Vorschau, die angewendet werden kann. Bitte frage zuerst nach einer Änderung und verwende dann die Vorschlagskarte.",
"copilot.image_prompt": "Prompt",
"copilot.image_prompt_placeholder": "Beschreibe das Bild, das generiert werden soll...",
"copilot.image_prompt_required": "Bitte gib einen Prompt ein, bevor ein Bild generiert wird.",
"copilot.image_request_timeout": "Die Bildgenerierung hat zu lange gedauert. Es wurde keine Bildvorschau erstellt.",
"copilot.session_expired": "Deine Sitzung ist abgelaufen. Bitte melde dich im Dashboard erneut an und lade diese Seite danach neu.",
"copilot.applied_image_message": "Das generierte Bild wurde auf {field} angewendet. Vor dem Speichern wurde ein Backup erstellt.",
"copilot.generated_image": "Generiertes Bild",
"copilot.generated_image_applied": "Generiertes Bild angewendet",
"copilot.history": "Chatverlauf",
"copilot.history_loading": "Chatverlauf wird geladen...",
"copilot.history_empty": "Noch keine archivierten Chats.",
"copilot.new_chat": "Neuer Chat",
"copilot.delete_chat": "Chat löschen",
"copilot.delete_chat_title": "Chat löschen?",
"copilot.delete_chat_confirm": "Diesen AI-Assistant-Chatverlauf löschen? Das kann nicht rückgängig gemacht werden.",
"copilot.untitled_chat": "Unbenannter Chat",
"copilot.dashboard_context": "Dashboard",
"copilot.dashboard_hint": "Allgemeine Hilfe für Website und Dashboard",
"copilot.undo_detail": "Geändert: {field}",
"copilot.unknown_field": "ausgewähltes Feld",
"copilot.section_field_label": "Section {section} {field}",
"copilot.change_details_title": "Änderung vorbereiten",
"copilot.change_details_hint": "Beschreibe die Änderung. Der Assistent erstellt zuerst eine prüfbare Vorschau, bevor etwas angewendet wird.",
"copilot.target_field": "Ziel",
"copilot.current_selection_none": "Kein Feld ausgewählt",
"copilot.change_instruction": "Änderungsanweisung",
"copilot.change_instruction_placeholder": "Beschreibe, was auf dieser Seite geändert werden soll...",
"copilot.prepare_preview": "Vorschau vorbereiten",
"copilot.content_type": "Inhaltstyp",
"copilot.content_type_page": "Seite",
"copilot.content_type_news": "Newsbeitrag",
"copilot.content_type_event": "Termin / Veranstaltung",
"copilot.choose_target_field": "Zielfeld auswählen",
"copilot.choose_target_field_placeholder": "Feld auswählen...",
"copilot.choose_target_field_hint": "Du kannst auch zuerst ein editierbares Element auf der Seite anklicken.",
"copilot.choose_target_required": "Wähle zuerst das Feld aus, das geändert werden soll.",
"copilot.current_field_content": "Aktueller Inhalt",
"copilot.current_field_empty": "Dieses Feld ist derzeit leer.",
"copilot.current_field_select": "Wähle ein Zielfeld aus, um den aktuellen Inhalt anzuzeigen.",
"copilot.dash_apply": "Übernehmen",
"copilot.dash_open_btn": "Öffnen",
"copilot.dash_dismiss": "Verwerfen",
"copilot.dash_applying": "Wird ausgeführt …",
"copilot.dash_done": "Erledigt.",
"copilot.dash_failed": "Das hat nicht funktioniert.",
"copilot.dash_opened": "Geöffnet.",
"copilot.dash_language_reload": "Gespeichert. Das Dashboard lädt in der neuen Sprache neu.",
"copilot.dash_adjusted": "Gespeichert. Die Farbe wurde leicht angepasst, damit sie lesbar bleibt.",
"copilot.dash_saved": "Gespeichert.",
"copilot.dash_open_title": "{target} öffnen",
"copilot.dash_change_title": "{setting} ändern",
"copilot.dash_already": "{setting} ist bereits {value}.",
"copilot.dash_setting_adminTheme": "Dashboard-Design",
"copilot.dash_setting_primaryColor": "Hauptfarbe des Dashboards",
"copilot.dash_setting_accentColor": "Akzentfarbe des Dashboards",
"copilot.dash_setting_adminLanguage": "Dashboard-Sprache",
"copilot.dash_value_light": "Hell",
"copilot.dash_value_dark": "Dunkel",
"copilot.dash_value_system": "Dem Gerät folgen",
"copilot.dash_actions_ready": "Ich habe das für dich vorbereitet. Prüfe die Karte und bestätige sie.",
"copilot.dash_not_possible": "Das konnte ich nicht vorbereiten. Sag mir, was du ändern oder wohin du möchtest, dann zeige ich dir den Weg.",
"copilot.dash_open_new_tab": "In neuem Tab öffnen",
"copilot.dash_where_title": "So findest du es: {name}",
"copilot.dash_where_lead": "Das kann ich dir hier nicht abnehmen, aber so findest du es:",
"copilot.dash_admin_only": "Das ist Administratoren vorbehalten. So findest du es im Dashboard:",
"copilot.dash_module_off_title": "{target} ist ausgeschaltet",
"copilot.dash_value_unclear": "Diesen Wert konnte ich nicht verwenden. Du kannst es hier selbst einstellen: {name}",
"copilot.map_admin_only": "Das ist Administratoren vorbehalten.",
"copilot.map_module_off": "Dieses Modul ist ausgeschaltet. Du kannst es unter {path} einschalten.",
"copilot.safety_blocked": "Ich habe diesen Vorschlag verworfen: Er sah nach Betrug, Phishing, Schadsoftware, Hass oder nach nicht jugendfreien oder rechtswidrigen Inhalten aus.",
"copilot.safety_note": "Sicherheitshinweis: Dieser Text fragt nach Passwörtern oder Zahlungsdaten, enthält Links, die einen zweiten Blick verdienen, oder Anweisungen an eine KI. Prüfe ihn genau, bevor du ihn übernimmst.",
"ai.image_jobs_title": "Bildjobs",
"ai.image_jobs_check": "Jobs prüfen",
"ai.image_jobs_idle": "Keine offenen Bildjobs.",
"ai.image_jobs_open": "{count} Bildjob(s) in der Warteschlange oder in Arbeit.",
"ai.image_jobs_finished": "Der letzte Bildjob ist fertig.",
"ai.image_jobs_failed": "Der letzte Bildjob ist fehlgeschlagen.",
"lists.summary_empty": "0 Einträge",
"lists.summary_range": "{from}-{to} von {total} Einträgen werden angezeigt",
"lists.pagination": "Seitennavigation",
"lists.previous_page": "Vorherige Seite",
"lists.next_page": "Nächste Seite",
"settings.list_pagination": "Listen & Pagination",
"settings.dashboard_design": "Design",
"settings.list_pagination_desc": "Steuert, wie viele Einträge Dashboard-Listen anzeigen, bevor eine Blätterfunktion erscheint.",
"settings.items_per_page": "Einträge pro Seite",
"settings.items_per_page_hint": "Gilt für Seiten, News, Termine, Papierkorb-Ansichten und Nachrichten. Standard: 50.",
"settings.icon_items_per_page": "Icon-Manager-Einträge pro Seite",
"settings.icon_items_per_page_hint": "Gilt nur für das Raster im Icon Manager. Standard: 50.",
"settings.media_items_per_page": "Media-Library-Einträge pro Seite",
"settings.media_items_per_page_hint": "Gilt für Raster- und Listenansicht der Media Library. Standard: 25.",
"conflict.changed": "Inzwischen geändert",
"conflict.reload_required": "Bitte vor dem Speichern den aktuellen Stand laden.",
"conflict.hint": "Deine Änderungen wurden nicht gespeichert. Vergleiche die Versionen, sichere bei Bedarf eine Kopie und lade dann den aktuellen Stand zum Weiterarbeiten.",
"conflict.yours": "Deine ungespeicherte Version",
"conflict.current": "Aktuell gespeicherte Version",
"conflict.unavailable": "Der aktuelle Stand konnte nicht geladen werden.",
"conflict.keep": "Weiter bearbeiten",
"conflict.download": "Meine Änderungen herunterladen",
"conflict.reload": "Änderungen verwerfen und neu laden",
"system.title": "Systemstatus",
"system.loading": "Systemstatus wird geladen …",
"system.runtime": "PHP und Erweiterungen",
"system.storage": "Speicher und Sicherungen",
"system.available": "Verfügbar",
"system.missing": "Fehlt",
"system.writable": "Beschreibbar",
"system.not_writable": "Fehlt oder nicht beschreibbar",
"system.last_backup": "Letzte erfolgreiche Sicherung",
"system.no_backup": "Noch keine Sicherung vorhanden",
"system.failed_jobs": "Fehlgeschlagene Bildaufträge",
"system.state": "Status",
"system.no_failed_jobs": "Keine Fehler in den letzten 100 Aufträgen",
"system.requests": "Offene KI-Reservierungen",
"system.no_requests": "Keine offenen Reservierungen",
"system.resolve_hint": "Prüfe vor dem Auflösen eines unklaren Auftrags den Verlauf beim Anbieter. Nach 15 Minuten ohne Aktivität kann die Reservierung aufgelöst werden. „Berechnet“ verbucht die reservierte Schätzung und importiert keine Rechnung.",
"system.details": "Details anzeigen",
"system.request_id": "Anfrage-ID",
"system.provider_tasks": "Auftrags-IDs beim Anbieter",
"system.resolve_charged": "Anbieter hat berechnet",
"system.resolve_released": "Anbieter hat nicht berechnet",
"system.load_failed": "Der Systemstatus konnte nicht geladen werden. Bitte erneut versuchen.",
"security_check.title": "Sicherheit",
"security_check.run": "Jetzt prüfen",
"security_check.running": "Wird geprüft …",
"security_check.pending": "Noch nicht geprüft",
"security_check.checked_at": "Zuletzt geprüft: {date}",
"security_check.how_to_fix": "Abhilfe",
"security_check.copy": "Kopieren",
"security_check.copied": "Kopiert",
"security_check.unknown": "Konnte nicht geprüft werden",
"security_check.unknown_reason": "Konnte nicht geprüft werden: {reason}",
"security_check.skipped_local": "Wird nur unter einer öffentlichen Adresse geprüft",
"security_check.skipped_dev_server": "Auf dem PHP-Entwicklungsserver nicht möglich",
"security_check.skipped_scheme": "Wird nur bei Aufruf über https:// geprüft",
"security_check.skipped_port": "Bei Adressen mit eigenem Port nicht geprüft",
"security_check.reason_unreachable": "der Server konnte über {url} keine Prüfdatei abrufen ({detail})",
"security_check.reason_auth": "die Website ist mit einem Zugangsschutz versehen (HTTP 401)",
"security_check.reason_status": "unerwartete Antwort des Servers ({detail})",
"security_check.reason_not_writable": "Prüfdateien konnten nicht angelegt werden",
"security_check.reason_no_curl": "die PHP-Erweiterung curl fehlt",
"security_check.reason_host": "die Adresse der Website ist nicht bekannt",
"security_check.folders": "Interne Ordner",
"security_check.folders_ok": "Nicht öffentlich abrufbar",
"security_check.folders_critical": "Öffentlich abrufbar: {paths}",
"security_check.folders_warning": "Öffentlich abrufbar: {paths}",
"security_check.folders_skipped_local": "Lokale Installation: nur über „Jetzt prüfen“",
"security_check.folders_fix": "Der Webserver liefert Dateien aus diesen Ordnern direkt aus und umgeht die .htaccess, meist weil ein vorgeschalteter nginx statische Dateien selbst ausliefert. Öffentlich sind damit unter anderem Benutzerkonten mit Passwort-Hashes (content/users.json), Einstellungen mit SMTP-Passwort und Web-Cron-Token (content/settings.json), Formulareingänge (content/mails.json) und Sicherungen (backups/). Sperre die Ordner in der nginx-Konfiguration der Website und prüfe danach erneut. War die Website so bereits öffentlich erreichbar, ändere danach die Passwörter, das SMTP-Passwort und den Web-Cron-Token.",
"security_check.folders_fix_trash": "Der Webserver liefert Dateien aus den Papierkörben der Mediathek direkt aus und umgeht die .htaccess, meist weil ein vorgeschalteter nginx Bilder und Medien selbst ausliefert. Wer die Adresse einer gelöschten Datei kennt, kann sie weiterhin abrufen. Sperre die Ordner in der nginx-Konfiguration der Website und prüfe danach erneut.",
"security_check.folders_hestia": "HestiaCP: Speichere die Zeilen als /home/<Benutzer>/conf/web/{domain}/nginx.ssl.conf_raiju (für http:// zusätzlich als nginx.conf_raiju) und lade nginx danach als root neu: nginx -t && systemctl reload nginx",
"security_check.folders_plesk": "Plesk: Schalte „Statische Dateien direkt durch nginx bereitstellen“ aus (mit der Voreinstellung „Intelligente Verarbeitung statischer Dateien“ greift die .htaccess) oder trage die Zeilen unter „Apache & nginx Einstellungen“ → „Zusätzliche nginx-Anweisungen“ ein.",
"security_check.folders_htaccess": "Ohne vorgeschalteten nginx fehlt vermutlich die .htaccess (versteckte Dateien beim Hochladen mitübertragen) oder Apache wertet sie nicht aus (AllowOverride All).",
"security_check.folders_manual": "Prüfe von außen, ob der Server eine vorhandene Datei sperrt, zum Beispiel mit: curl -I {url} (erwartet wird Status 403 oder 404).",
"security_check.probe_exposed": "öffentlich (HTTP {status})",
"security_check.probe_protected": "gesperrt (HTTP {status})",
"security_check.probe_unknown": "unklar (HTTP {status})",
"security_check.probe_skipped": "nicht geprüft",
"security_check.http": "Unverschlüsselter Zugriff",
"security_check.http_redirect": "http:// leitet auf https:// weiter",
"security_check.http_closed": "Über http:// nicht erreichbar",
"security_check.http_open": "Auch unverschlüsselt über http:// erreichbar",
"security_check.http_fix": "Schalte in der Hosting-Verwaltung die dauerhafte Weiterleitung von http:// auf https:// ein, damit Anmeldungen und Formulareingaben nie unverschlüsselt übertragen werden.",
"security_check.https": "Verschlüsselung",
"security_check.https_ok": "Das Dashboard läuft über https://",
"security_check.https_warning": "Das Dashboard läuft unverschlüsselt über http://",
"security_check.https_fix": "Passwörter und Sitzungen können so mitgelesen werden. Richte ein TLS-Zertifikat ein (zum Beispiel Let’s Encrypt in der Hosting-Verwaltung) und rufe die Website über https:// auf.",
"security_check.cookie": "Sitzungs-Cookie",
"security_check.cookie_ok": "Wird nur über HTTPS gesendet (Secure)",
"security_check.cookie_warning": "PHP erkennt HTTPS nicht; dem Sitzungs-Cookie fehlt das Merkmal Secure",
"security_check.cookie_fix": "Meist beendet ein vorgeschalteter Proxy die Verschlüsselung, ohne es PHP mitzuteilen. Gib die Information weiter, zum Beispiel mit „fastcgi_param HTTPS on;“ (nginx mit PHP-FPM) oder „SetEnvIf X-Forwarded-Proto https HTTPS=on“ (Apache hinter einem Proxy).",
"security_check.client_ip": "Besucher-IP-Adresse",
"security_check.client_ip_ok": "Wird erkannt",
"security_check.client_ip_warning": "Alle Anfragen scheinen von {ip} zu kommen",
"security_check.client_ip_fix": "Ein vorgeschalteter Proxy gibt die IP-Adressen der Besucher nicht weiter. Die Anmeldesperre nach Fehlversuchen, der Spamschutz der Formulare und die Statistik können Besucher dann nicht unterscheiden, und Fehlversuche eines Einzelnen können alle aussperren. Übernimm die echte Adresse im Webserver (Apache: mod_remoteip mit RemoteIPHeader, nginx: real_ip_header mit set_real_ip_from).",
"security_check.errors": "PHP-Fehlermeldungen",
"security_check.errors_ok": "Für Besucher ausgeblendet",
"security_check.errors_warning": "Werden Besuchern angezeigt (display_errors)",
"security_check.errors_fix": "Fehlermeldungen können Serverpfade und interne Details verraten. Setze in der PHP-Konfiguration display_errors = Off und log_errors = On (Hosting-Verwaltung, php.ini oder .user.ini).",
"security_check.dev_login": "Entwicklungs-Anmeldung",
"security_check.dev_login_ok": "Ausgeschaltet",
"security_check.dev_login_note": "Eingeschaltet, wirkt nur bei Aufrufen über localhost",
"security_check.dev_login_warning": "Eingeschaltet hinter einem lokalen Proxy",
"security_check.dev_login_fix": "Die Entwicklungs-Anmeldung akzeptiert bei Aufrufen über localhost das Passwort „dev“. Hinter einem Proxy auf demselben Server können Anfragen wie lokale aussehen. Schalte sie auf öffentlichen Servern in admin/config.php aus: define('RAIJU_DEV_LOGIN', false);",
"security_check.php": "PHP-Version",
"security_check.php_ok": "PHP {version}, Sicherheitsupdates bis {until}",
"security_check.php_current": "PHP {version}",
"security_check.php_warning": "PHP {version}: Sicherheitsupdates endeten am {until}",
"security_check.php_fix": "Stelle in der Hosting-Verwaltung eine aktuelle PHP-Version ein (empfohlen 8.4 oder 8.5). Manche Linux-Distributionen versorgen ältere Versionen weiter mit eigenen Sicherheitsupdates.",
"security_check.banner_title": "Sicherheitswarnung: Interne Ordner sind öffentlich abrufbar",
"security_check.banner_text": "Jeder kann Dateien aus {paths} herunterladen, weil der Webserver den Schutz der .htaccess umgeht.",
"security_check.banner_data": "Betroffen sind unter anderem Passwort-Hashes, Einstellungen und Sicherungen.",
"security_check.banner_cta": "Details und Abhilfe",
"security_check.badge": "Sicherheitswarnungen: {count}",
"ai.reserved": "Reservierte Schätzung",
"ai.pending_requests": "{count} offene Anfragen",
"ai.budget_explanation": "Die Kosten beruhen auf dem Preis des jeweils verwendeten Modells (Katalogpreis oder eigener Preis). Die lokale Grenze berücksichtigt abgeschlossene Anfragen und offene Reservierungen. Tatsächliche Anbieterkosten können abweichen; prüfe dafür die Abrechnung beim Anbieter.",
"analytics.disabled": "Die Statistik ist deaktiviert. Vorhandene Daten bleiben erhalten.",
"analytics.empty": "In diesem Zeitraum gibt es noch keine Seitenaufrufe. Besuche angemeldeter Administratoren werden nicht gezählt.",
"analytics.error": "Die Statistik konnte nicht geladen werden. Vorhandene Daten wurden beibehalten.",
"analytics.enabled": "Anonyme Website-Statistik erfassen",
"analytics.hint": "Speichert zusammengefasste Aufrufe und kurzlebige Besucher-Hashes ohne rohe IP-Adressen.",
"pages.search_title": "Seitentitel suchen",
"nav.skip_content": "Zum Hauptinhalt springen",
"btn.insert": "Einfügen",
"seo.title_short": "SEO-Titel ist zu kurz.",
"seo.title_long": "SEO-Titel ist zu lang.",
"seo.description_short": "Meta-Beschreibung ist zu kurz oder fehlt.",
"seo.description_long": "Meta-Beschreibung ist zu lang.",
"seo.canonical_missing": "Kanonische URL fehlt.",
"seo.noindex": "Die Seite ist auf noindex gesetzt.",
"seo.h1_missing": "Keine H1-Überschrift in den Seitendaten erkannt.",
"seo.image_missing": "Open-Graph-Bild fehlt.",
"seo.alt_missing": "{count} Bild(er) ohne Alternativtext.",
"seo.green": "SEO gut",
"seo.yellow": "SEO prüfen",
"seo.red": "SEO kritisch",
"seo.no_issues": "Keine wesentlichen technischen SEO-Probleme erkannt.",
"api.forbidden": "Du hast keine Berechtigung für diese Aktion.",
"api.csrf": "Dein Sitzungstoken ist nicht mehr gültig. Lade die Seite neu und versuche es erneut.",
"api.invalid_json": "Der Inhalt konnte nicht gelesen werden. Bitte die übermittelten Daten prüfen.",
"api.storage": "Die Datei konnte nicht gespeichert werden. Prüfe die Schreibrechte im Systemstatus.",
"agent.title": "KI-Agent",
"agent.intro": "Der Agent arbeitet deine Anfrage ab, stellt ein Paket mit Änderungen zusammen und zeigt es dir. Erst wenn du es übernimmst, wird etwas geändert.",
"agent.mode_label": "Modus",
"agent.mode_agent": "Agent",
"agent.mode_agent_hint": "Der Agent bereitet ein komplettes Änderungspaket zur Prüfung vor.",
"agent.mode_classic": "Klassisch",
"agent.mode_classic_hint": "Stelle Fragen und lass einzelne Änderungen Schritt für Schritt entwerfen.",
"agent.placeholder": "Sag dem Agenten, was er ändern soll, z. B. „Lege eine News zu … an“",
"agent.placeholder_busy": "Der Agent arbeitet …",
"agent.placeholder_answer": "Antworte dem Agenten …",
"agent.placeholder_changes": "Was soll im Paket anders sein?",
"agent.status_thinking": "Denkt nach …",
"agent.status_waiting_image": "Wartet auf das Bild …",
"agent.status_ready": "Bereit",
"agent.status_conflict": "Veraltet",
"agent.status_check": "Bitte prüfen",
"agent.cancel": "Abbrechen",
"agent.cancelling": "Wird abgebrochen …",
"agent.cancelled": "Der Agent wurde abgebrochen. Es wurde nichts geändert.",
"agent.steps_title": "{count} Schritte",
"agent.step_failed": "hat nicht geklappt",
"agent.retry": "Neu starten",
"agent.continue": "Weiter",
"agent.busy": "Der Agent arbeitet noch. Versuch es gleich noch einmal.",
"agent.error_generic": "Der Agent konnte nicht fertig werden.",
"agent.error_connection": "Die Verbindung wurde unterbrochen.",
"agent.step.unknown": "Arbeitet",
"agent.step.get_site_overview": "Sieht sich die Website an",
"agent.step.get_page_capabilities": "Prüft, was auf {detail} bearbeitet werden kann",
"agent.step.read_content": "Liest {detail}",
"agent.step.list_content": "Listet {detail} auf",
"agent.step.list_media": "Durchsucht die Mediathek",
"agent.step.list_run_media": "Prüft die angehängten Bilder",
"agent.step.search_stock_images": "Sucht Stockfotos: {detail}",
"agent.step.import_stock_image": "Lädt ein Stockfoto herunter",
"agent.step.generate_image": "Erzeugt ein Bild",
"agent.step.search_web": "Recherchiert: {detail}",
"agent.step.read_web_result": "Liest eine Quelle",
"agent.step.stage_set_field": "Ändert {detail}",
"agent.step.stage_set_image": "Setzt ein Bild auf {detail}",
"agent.step.stage_add_list_item": "Fügt einen Eintrag zu {detail} hinzu",
"agent.step.stage_hide_list_item": "Blendet einen Eintrag auf {detail} aus oder ein",
"agent.step.stage_remove_list_item": "Entfernt einen Eintrag aus {detail}",
"agent.step.stage_move_list_item": "Verschiebt einen Eintrag auf {detail}",
"agent.step.stage_add_section": "Fügt einen Abschnitt zu {detail} hinzu",
"agent.step.stage_create_news": "Legt eine News an",
"agent.step.stage_create_event": "Legt einen Termin an",
"agent.step.stage_create_page": "Legt eine Seite an",
"agent.step.stage_set_page_menus": "Ändert die Menüs von {detail}",
"agent.step.stage_revert_op": "Nimmt eine Änderung zurück",
"agent.step.validate_changeset": "Prüft das Paket",
"agent.step.ask_user": "Stellt dir eine Frage",
"agent.step.present_changeset": "Bereitet die Prüfung vor",
"agent.package_title": "Änderungspaket",
"agent.open_questions": "Offene Fragen",
"agent.target_page": "Seite: {name}",
"agent.target_news": "News: {name}",
"agent.target_event": "Termin: {name}",
"agent.target_shared": "Gemeinsamer Inhalt: {name}",
"agent.before": "Vorher",
"agent.after": "Nachher",
"agent.empty_value": "(leer)",
"agent.destructive": "Löscht Inhalt",
"agent.validation_ok": "Alle Prüfungen bestanden",
"agent.validation_errors": "Probleme gefunden",
"agent.validation_warnings": "Hinweise",
"agent.where_title": "So findest du es",
"agent.step.find_in_dashboard": "Sucht, wo das im Dashboard liegt",
"agent.risk_title": "Sicherheitsprüfung: bitte genau hinsehen",
"agent.risk_confirm_title": "Trotz Sicherheitshinweisen anwenden?",
"agent.risk_confirm_body": "Die Sicherheitsprüfung hat dieses Paket markiert. Wende es nur an, wenn es genau das ist, was du wolltest. Du kannst das Paket danach rückgängig machen.",
"agent.risk_confirm_button": "Trotzdem anwenden",
"agent.safety_confirm_needed": "Dieses Paket hat Sicherheitshinweise. Lies sie in der Prüfansicht und bestätige sie, um es anzuwenden.",
"agent.safety.mass_removal": "Von {total} Teilen auf {target} würden {count} entfernt, ausgeblendet oder geleert.",
"agent.safety.list_emptied": "Die Liste „{list}“ auf {target} wäre danach leer.",
"agent.safety.large_text_loss": "Etwa {percent} % des Textes auf {target} würden wegfallen.",
"agent.safety.too_many_removals": "Dieses Paket würde {count} Teile der Website entfernen, ausblenden oder leeren.",
"agent.safety.too_many_creations": "Dieses Paket würde {count} Seiten, News-Beiträge oder Termine anlegen.",
"agent.safety.menu_changes": "Dieses Paket würde die Menüs von {count} Seiten ändern.",
"agent.safety.too_many_targets": "Dieses Paket betrifft {count} Seiten, News-Beiträge oder Termine.",
"agent.safety.contact_changed": "Eine E-Mail-Adresse, Telefonnummer oder Bankverbindung auf {target} würde durch eine andere ersetzt.",
"agent.safety.content_blocked": "Der neue Text für {target} sieht nach Betrug, Phishing, Schadsoftware, Hass sowie nach nicht jugendfreien oder rechtswidrigen Inhalten aus und wurde gestoppt.",
"agent.safety.content_caution": "Der neue Text für {target} fragt Besucher nach Passwörtern oder Zahlungsdaten oder enthält Links, die einen zweiten Blick verdienen.",
"agent.safety.content_injection": "Der neue Text für {target} enthält Anweisungen, die sich an eine KI richten. Das kann ein Zeichen für eine manipulierte Quelle sein.",
"agent.safety_refuse.mass_delete": "Ich leere nicht auf einen Schlag eine Seite oder eine ganze Website. Sag mir, welche Abschnitte oder Einträge ich entfernen oder ausblenden soll – am besten ein paar auf einmal –, dann bereite ich das zur Prüfung vor. Alles lässt sich danach rückgängig machen.",
"agent.safety_refuse.hate": "Dabei helfe ich nicht: Es würde Hass verbreiten oder zu Gewalt gegen Menschen aufrufen.",
"agent.safety_refuse.create_crime": "Dabei helfe ich nicht: Es würde betrügerische, schädliche, nicht jugendfreie oder rechtswidrige Inhalte erzeugen.",
"agent.render_failed": "Eine Seite braucht Aufmerksamkeit",
"agent.images": "Bilder",
"agent.image_ai": "KI-generiert",
"agent.image_stock": "Stockfoto",
"agent.image_generated": "Erzeugtes Bild",
"agent.image_upload": "Dein Upload",
"agent.sources": "Quellen",
"agent.source_warning": "Diese Seite enthält Text, der eine KI anweisen will. Er wurde ignoriert.",
"agent.conflict": "Der Inhalt hat sich geändert, nachdem der Agent gestartet ist. Prüfe das Paket erneut, um fortzufahren.",
"agent.revalidate": "Erneut prüfen",
"agent.preview": "Vorschau",
"agent.preview_hint": "Öffnet die Seite mit den Änderungen. Nur du siehst sie.",
"agent.preview_page": "Vorschau: {name}",
"agent.preview_banner": "Vorschau: Diese Änderungen sind noch nicht übernommen. Nur du siehst diese Seite so.",
"agent.preview_back": "Zurück zum Assistenten",
"agent.op.set_field": "„{field}“ ändern",
"agent.op.set_image": "Bild „{field}“ setzen",
"agent.op.list_insert": "Eintrag zu „{field}“ hinzufügen",
"agent.op.list_hide": "Eintrag {n} von „{field}“ ausblenden",
"agent.op.list_show": "Eintrag {n} von „{field}“ einblenden",
"agent.op.list_remove": "Eintrag {n} von „{field}“ entfernen",
"agent.op.list_move": "Eintrag {from} in „{field}“ an Position {to} verschieben",
"agent.op.section_insert": "Abschnitt vom Typ {type} hinzufügen",
"agent.op.create_news": "News-Beitrag anlegen",
"agent.op.create_event": "Termin anlegen",
"agent.op.create_page": "Seite anlegen",
"agent.op.set_page_menus": "Menüs dieser Seite ändern",
"agent.op.in_section": "{what} in Abschnitt {n} ({type}): „{title}“",
"agent.op.in_section_untitled": "{what} in Abschnitt {n} ({type})",
"agent.op.item": "(Eintrag {item})",
"agent.field.content": "Text",
"agent.field.text": "Text",
"agent.field.title": "Titel",
"agent.field.heading": "Überschrift",
"agent.field.subtitle": "Untertitel",
"agent.field.description": "Beschreibung",
"agent.field.caption": "Bildunterschrift",
"agent.field.image": "Bild",
"agent.field.items": "Einträge",
"agent.field.alt": "Alternativtext",
"agent.apply": "Änderungen übernehmen",
"agent.apply_confirm_title": "Dieses Paket übernehmen?",
"agent.apply_confirm_body": "{count} Änderungen werden gespeichert. Änderungen an bestehenden Inhalten sind sofort sichtbar, neue Inhalte bleiben verborgen, bis du sie veröffentlichst. Du kannst das Paket danach rückgängig machen.",
"agent.apply_confirm_body_live": "{count} Änderungen werden gespeichert und sind sofort sichtbar. Du kannst das Paket danach rückgängig machen.",
"agent.apply_confirm_button": "Übernehmen",
"agent.apply_failed": "Das Paket konnte nicht übernommen werden. {message}",
"agent.discard": "Verwerfen",
"agent.discard_confirm_title": "Dieses Paket verwerfen?",
"agent.discard_confirm_body": "Die vorbereiteten Änderungen und Bilder werden gelöscht. An deiner Website ändert sich nichts.",
"agent.discard_confirm_button": "Verwerfen",
"agent.discarded": "Das Paket wurde verworfen. Es wurde nichts geändert.",
"agent.request_changes": "Änderungen wünschen",
"agent.applied_title": "Änderungen übernommen",
"agent.applied_note": "Es wurde ein Backup erstellt. Änderungen an bestehenden Inhalten sind bereits sichtbar, neue Inhalte bleiben verborgen, bis du sie veröffentlichst.",
"agent.applied_note_live": "Es wurde ein Backup erstellt. Die Änderungen sind sichtbar. Mit „Rückgängig“ stellst du den vorherigen Stand wieder her.",
"agent.applied_summary": "Das vorherige Paket wurde übernommen.",
"agent.undo": "Rückgängig",
"agent.undo_confirm_title": "Dieses Paket rückgängig machen?",
"agent.undo_confirm_body": "Die betroffenen Inhalte kehren in den Zustand vor dem Paket zurück.",
"agent.undone": "Das Paket wurde rückgängig gemacht.",
"agent.publish": "Veröffentlichen",
"agent.publish_confirm_title": "Diesen Eintrag veröffentlichen?",
"agent.publish_confirm_body": "Er wird für Besucher sichtbar.",
"agent.publish_not_allowed": "Zum Veröffentlichen ist eine Rolle mit diesem Recht nötig.",
"agent.published": "Veröffentlicht",
"agent.item_news": "News",
"agent.item_event": "Termin",
"agent.item_page": "Seite",
"agent.item_section": "Abschnitt",
"agent.item_list_item": "Listeneintrag",
"agent.reload": "Seite neu laden",
"agent.attach": "Bilder anhängen",
"agent.attach_hint": "Bilder anhängen (JPEG, PNG oder WebP). Der Agent kann sie im Paket verwenden.",
"agent.attach_blocked": "Hänge Bilder an, bevor du die Anfrage abschickst.",
"agent.drop_hint": "Bilder hier ablegen, um sie anzuhängen",
"agent.upload_busy": "Wird hochgeladen …",
"agent.upload_failed": "{name}: {message}",
"agent.upload_limit": "Du kannst bis zu {count} Bilder auf einmal anhängen.",
"agent.upload_size": "{name} ist zu groß (max. {size} MB).",
"agent.upload_type": "Es können nur JPEG-, PNG- und WebP-Bilder angehängt werden.",
"agent.chips_remove": "Bilder entfernen",
"ai.agent_title": "KI-Agent",
"ai.agent_hint": "Der Agent arbeitet eine Anfrage selbstständig ab, stellt ein Paket mit Änderungen zusammen und wartet auf Bestätigung. Er braucht einen Provider mit Tool-Calling und verbraucht pro Lauf mehrere KI-Anfragen.",
"ai.agent_enable": "KI-Agent aktivieren",
"ai.agent_status_ready": "Der Agent ist bereit.",
"ai.agent_status_off": "Der Agent ist ausgeschaltet.",
"ai.agent_status_ai_off": "Schalte zuerst die KI ein und hinterlege einen API-Key.",
"ai.agent_status_no_tools": "Der gewählte Provider oder das Modell unterstützt kein Tool-Calling, deshalb bleibt der Agent nicht verfügbar.",
"ai.agent_status_no_gd": "Die PHP-Erweiterung GD fehlt, deshalb können Bilder nicht aufbereitet werden.",
"ai.agent_status_no_webp": "GD unterstützt kein WebP; Bilder werden als JPEG gespeichert.",
"ai.agent_status_limits": "Ein Agent-Lauf braucht mehrere KI-Anfragen. Erhöhe die Tageslimits (derzeit {requests} Anfragen) und die maximalen Eingabe-Tokens (derzeit {tokens}); etwa 300 Anfragen pro Tag und 64.000 Tokens sind ein guter Anfang.",
"ai.agent_limits": "Limits pro Lauf",
"ai.agent_runs_per_hour": "Läufe pro Stunde und Benutzer",
"ai.agent_max_turns": "Modell-Runden pro Durchgang",
"ai.agent_max_tool_calls": "Tool-Aufrufe pro Durchgang",
"ai.agent_max_cost": "Kostenobergrenze pro Lauf (Cent)",
"ai.agent_max_runtime": "Maximale Dauer (Minuten)",
"ai.agent_uploads": "Bild-Uploads pro 10 Minuten",
"ai.agent_roles": "Was Redakteure dürfen",
"ai.agent_roles_hint": "Administratoren dürfen alles. Bestehende Texte, Bilder und Links dürfen Redakteure immer ändern.",
"ai.agent_right_publish": "Neue Inhalte veröffentlichen",
"ai.agent_right_stockImages": "Stockfotos verwenden",
"ai.agent_right_uploadImages": "Eigene Bilder anhängen",
"ai.agent_right_generateImages": "KI-Bilder erzeugen",
"ai.agent_right_research": "Im Web recherchieren",
"ai.agent_right_structural": "Einträge und Abschnitte hinzufügen, entfernen und verschieben",
"ai.agent_right_createPages": "Seiten anlegen",
"ai.agent_right_createNews": "News anlegen",
"ai.agent_right_createEvents": "Termine anlegen",
"ai.agent_right_editSharedContent": "Gemeinsame Inhalte ändern (Footer, Seitenleiste)",
"ai.agent_images": "Bilder",
"ai.agent_media_folder": "Medienordner für Agent-Bilder",
"ai.agent_media_folder_hint": "Kleinbuchstaben, Ziffern, - und _. Bilder, die der Agent mitbringt, landen in diesem Ordner unter assets/images/.",
"ai.agent_credit_in_news": "Bildnachweise in News ergänzen",
"ai.agent_pexels_key": "Pexels-API-Key (Stockfotos)",
"ai.agent_research": "Web-Recherche",
"ai.agent_brave_key": "Brave-Search-API-Key",
"ai.agent_clear_key": "Gespeicherten API-Key entfernen",
"ai.agent_allow_domains": "Nur diese Websites erlauben (eine pro Zeile, optional)",
"ai.agent_deny_domains": "Diese Websites nie lesen (eine pro Zeile)",
"ai.agent_respect_robots": "robots.txt der Websites beachten",
"ai.agent_sources_in_news": "Quellenliste an News anhängen",
"ai.agent_clear_cache": "Seiten-Scan-Cache leeren",
"ai.agent_cache_cleared": "Cache geleert ({count} Dateien).",
"ai.agent_cache_hint": "Der Agent scannt deine Seiten-Templates, um zu erkennen, was bearbeitbar ist. Leere den Cache, nachdem du Templates von Hand geändert hast.",
"system.agent": "KI-Agent",
"system.agent_state": "Agent",
"system.agent_on": "Aktiv",
"system.agent_off": "Inaktiv",
"system.agent_tools": "Tool-Calling",
"system.agent_gd": "Bildverarbeitung (GD)",
"system.agent_webp": "WebP-Ausgabe",
"system.agent_research": "Key für Web-Recherche",
"system.agent_stock": "Key für Stockfotos",
"system.agent_storage_note": "Der Agent legt seine Daten unter content/ ab; die Sicherheitsprüfung oben zeigt, dass dieser Ordner nicht öffentlich ist.",
"system.upload_note": "Liegt das PHP-Limit unter dem Bildlimit, gilt das PHP-Limit. Es wird in php.ini, .user.ini oder .htaccess gesetzt (upload_max_filesize, post_max_size); die .htaccess enthält ein Beispiel.",
"system.upload_no_webp": "Nicht möglich: GD ohne WebP",
"system.upload_off": "Aus",
"system.upload_on": "Aktiv",
"system.upload_unlimited": "Unbegrenzt",
"system.upload_memory": "Arbeitsspeicher (memory_limit)",
"system.upload_web_version": "Webfassung beim Upload",
"system.upload_server_bound": "es gilt das PHP-Limit von {max} MB",
"system.upload_image_limit": "Bildlimit der Mediathek",
"system.upload_server_limit": "PHP-Upload-Limit",
"system.uploads": "Uploads",
"system.configured": "Eingerichtet",
"system.not_configured": "Nicht eingerichtet",
"agent.step.read_url": "Liest {detail}",
"ai.agent_research_hint": "Auch ohne Brave-Key kann der Agent Webadressen lesen, die du im Chat nennst.",
"ai.models_loading": "Lädt die Modelle deines Providers …",
"ai.models_loaded": "{count} Modelle von deinem Provider geladen.",
"ai.models_failed": "Die Modellliste konnte nicht geladen werden ({message}). Du kannst den Modellnamen trotzdem eintippen.",
"ai.agent_recommended_limits": "Empfohlene Limits übernehmen",
"ai.agent_recommended_limits_hint": "Hebt Token- und Anfragelimits an, die unter dem liegen, was der Agent braucht (64.000 Eingabe-Tokens, 16.000 Ausgabe-Tokens, 300 Anfragen pro Tag). Höhere Werte bleiben.",
"ai.agent_limits_raised": "Limits auf das angehoben, was der Agent braucht. Speichere, um sie zu behalten.",
"ai.agent_limits_fine": "Deine Limits sind bereits hoch genug.",
"ai.limit_kind_month": "Monatsbudget der KI",
"ai.limit_kind_requests": "KI-Anfragen pro Tag",
"ai.limit_kind_text": "KI-Textanfragen pro Tag",
"ai.limit_kind_images": "KI-Bildanfragen pro Tag",
"ai.limit_warning": "{kind}: {used} von {limit} verbraucht ({percent} %). Erhöhe das Limit rechtzeitig.",
"ai.limit_reached": "{kind}: Limit erreicht ({used} von {limit}). Neue KI-Anfragen sind gesperrt, bis das Limit erhöht wird oder der Zeitraum endet.",
"ai.limit_adjust": "Limits anpassen",
"ai.limit_raise": "Um 50 % erhöhen",
"ai.limit_raised": "Limits um die Hälfte erhöht. Speichere, um sie zu behalten.",
"ai.limit_ask_admin": "Bitte einen Administrator, das Limit zu erhöhen.",
"ai.limit_dismiss": "Ausblenden",
"ai.limits_hint": "Limits sind Richtwerte, keine harten Wände: Eine Anfrage, die unterhalb des Limits startet, darf zu Ende laufen, und ein laufender Agent-Lauf darf etwa 10 % mehr verbrauchen, bevor er gestoppt wird. Neue Anfragen werden gesperrt, sobald ein Limit erreicht ist. Das Bildlimit gilt strikt.",
"settings.search_engines": "Suchmaschinen",
"settings.noindex_site": "Website für Suchmaschinen sperren (Staging)",
"settings.noindex_site_hint": "Sperrt die Website in der robots.txt, im Robots-Meta-Tag und im X-Robots-Tag und leert die Sitemap. Gedacht für Test- und Staging-Seiten. Schalte die Sperre aus, sobald die Website live ist.",
"settings.site_url": "Adresse der Website",
"settings.site_url_hint": "Die öffentliche Adresse mit https://, zum Beispiel https://www.example.com. Sie steht in Canonical-Links und in der Sitemap. Leer lassen, um die aufgerufene Adresse zu verwenden. Nach dem Umzug von Staging auf die Live-Domain anpassen.",
"system.badge": "Hinweise: {count}",
"seo_check.title": "Suchmaschinen",
"seo_check.running": "Wird geprüft …",
"seo_check.pending": "Noch nicht geprüft",
"seo_check.url": "Adresse:",
"seo_check.expected": "Erwartet für eine Live-Website:",
"seo_check.allow": "Indexierung erlauben",
"seo_check.allowed": "Die Sperre ist aufgehoben. Die Prüfung läuft erneut.",
"seo_check.where_meta": "Robots-Meta-Tag",
"seo_check.where_header": "X-Robots-Tag",
"seo_check.skipped_local": "Lokale Installation: wird nur unter einer öffentlichen Adresse geprüft",
"seo_check.skipped_dev_server": "Auf dem PHP-Entwicklungsserver nicht möglich",
"seo_check.unknown_unreachable": "Konnte nicht geprüft werden: Der Server erreicht seine eigene Adresse nicht ({detail})",
"seo_check.unknown_auth": "Konnte nicht geprüft werden: Die Website hat einen Zugangsschutz (HTTP 401)",
"seo_check.unknown_host": "Konnte nicht geprüft werden: Die Adresse der Website ist nicht bekannt",
"seo_check.unknown_no_curl": "Konnte nicht geprüft werden: Die PHP-Erweiterung curl fehlt",
"seo_check.unknown_fix": "Prüfe von außen, ob die Adresse erreichbar ist, zum Beispiel mit: curl -I {url}",
"seo_check.robots_txt": "robots.txt",
"seo_check.robots_txt_ok": "Lässt Suchmaschinen zu",
"seo_check.robots_txt_blocked": "Sperrt alle Suchmaschinen (Disallow: /)",
"seo_check.robots_txt_status": "Antwortet mit {detail}",
"seo_check.robots_txt_sitemap_host": "Verweist auf eine Sitemap unter einer anderen Adresse: {detail}",
"seo_check.robots_txt_no_sitemap": "Enthält keinen Verweis auf die Sitemap",
"seo_check.robots_txt_expected": "Kein „Disallow: /“ für alle Suchmaschinen und ein Verweis auf die Sitemap dieser Website.",
"seo_check.robots_txt_fix_blocked_setting": "Die Sperre kommt aus der Einstellung „Website für Suchmaschinen sperren“ (Einstellungen → Branding → Suchmaschinen). Ist die Website live, erlaube die Indexierung mit dem Knopf unten oder schalte die Einstellung aus.",
"seo_check.robots_txt_fix_blocked_file": "Im Hauptordner der Website liegt eine Datei robots.txt, die Raijus eigene robots.txt ersetzt. Ist die Website live, lösche die Datei oder entferne dort die Zeile „Disallow: /“. Danach liefert Raiju die robots.txt selbst aus.",
"seo_check.robots_txt_fix_blocked_unknown": "Die Sperre kommt weder aus der Raiju-Einstellung noch aus einer Datei im Hauptordner. Prüfe, ob eine Regel des Hostings, ein Proxy oder ein anderes System die robots.txt ersetzt.",
"seo_check.robots_txt_fix_status": "Die robots.txt wird nicht normal ausgeliefert. Prüfe die Weiterleitungen und Regeln des Hostings für diese Adresse.",
"seo_check.robots_txt_fix_sitemap_host": "Die robots.txt nennt die Sitemap einer anderen Adresse, meist die der Staging-Domain. Trage unter Einstellungen → Branding → Suchmaschinen die richtige Adresse der Website ein, oder passe eine eigene robots.txt im Hauptordner an.",
"seo_check.robots_txt_fix_no_sitemap": "Ergänze in der robots.txt eine Zeile „Sitemap: https://deine-domain/sitemap.xml“ oder lösche eine eigene robots.txt im Hauptordner, damit Raiju sie erzeugt.",
"seo_check.page_robots": "Startseite für Suchmaschinen",
"seo_check.page_robots_ok": "Kein noindex im Robots-Meta-Tag und im X-Robots-Tag",
"seo_check.page_robots_noindex": "noindex gefunden: {where}",
"seo_check.page_robots_redirect": "Leitet auf eine andere Adresse weiter: {detail}",
"seo_check.page_robots_status": "Antwortet mit {detail}",
"seo_check.page_robots_expected": "Weder das Robots-Meta-Tag noch der X-Robots-Tag enthalten noindex, und die Adresse leitet nicht auf eine andere Domain weiter.",
"seo_check.page_robots_fix_noindex_setting": "Die Sperre kommt aus der Einstellung „Website für Suchmaschinen sperren“ (Einstellungen → Branding → Suchmaschinen). Ist die Website live, erlaube die Indexierung mit dem Knopf unten oder schalte die Einstellung aus.",
"seo_check.page_robots_fix_noindex_other": "Die Einstellung „Website für Suchmaschinen sperren“ ist aus, trotzdem liefert die Startseite noindex aus. Prüfe die Startseite (SEO-Einstellungen: Robots), eigene Dateien wie includes/header.php, die .htaccess und Regeln des Hostings oder eines Proxys für einen X-Robots-Tag.",
"seo_check.page_robots_fix_redirect": "Die Adresse leitet auf eine andere Domain weiter, zum Beispiel auf die Staging-Domain oder eine Parkseite. Prüfe die Weiterleitungen in der Hosting-Verwaltung und in der .htaccess.",
"seo_check.page_robots_fix_status": "Die Startseite wird nicht normal ausgeliefert. Prüfe die Weiterleitungen und Regeln des Hostings für diese Adresse.",
"seo_check.sitemap": "sitemap.xml",
"seo_check.sitemap_ok": "Gültig, {count} Adressen",
"seo_check.sitemap_status": "Antwortet mit {detail}",
"seo_check.sitemap_not_xml": "Ist keine gültige Sitemap (kein XML)",
"seo_check.sitemap_empty": "Enthält keine Seiten",
"seo_check.sitemap_empty_blocked": "Leer, weil die Website gesperrt ist",
"seo_check.sitemap_host": "{count} Adressen gehören zu einer anderen Domain, zum Beispiel {detail}",
"seo_check.sitemap_http": "{count} Adressen verwenden http://, zum Beispiel {detail}",
"seo_check.sitemap_expected": "Gültiges XML mit den Seiten dieser Website, alle Adressen auf derselben Domain und mit https://.",
"seo_check.sitemap_fix_status": "Die sitemap.xml wird nicht normal ausgeliefert. Prüfe die Weiterleitungen und Regeln des Hostings für diese Adresse.",
"seo_check.sitemap_fix_not_xml": "Unter dieser Adresse liegt keine Sitemap, vermutlich eine Fehler- oder Wartungsseite oder eine fehlerhafte Datei sitemap.xml im Hauptordner. Lösche eine eigene Datei, damit Raiju die Sitemap erzeugt.",
"seo_check.sitemap_fix_empty": "Alle Seiten sind aus der Sitemap ausgeschlossen (privat, noindex oder „nicht in die Sitemap aufnehmen“), oder es gibt noch keine öffentlichen Seiten. Prüfe die SEO-Einstellungen der Seiten.",
"seo_check.sitemap_fix_empty_blocked": "Solange die Website gesperrt ist, bleibt die Sitemap leer. Sie füllt sich, sobald die Indexierung erlaubt ist.",
"seo_check.sitemap_fix_host": "Die Sitemap nennt Adressen einer anderen Domain, meist der Staging-Domain. Trage unter Einstellungen → Branding → Suchmaschinen die richtige Adresse der Website ein. Liegt eine eigene sitemap.xml im Hauptordner, erstelle sie neu oder lösche sie.",
"seo_check.sitemap_fix_http": "Die Sitemap nennt Adressen mit http://, obwohl die Website über https:// läuft. Trage unter Einstellungen → Branding → Suchmaschinen die Adresse mit https:// ein. Läuft die Website hinter einem Proxy, muss er X-Forwarded-Proto weitergeben.",
"seo_check.site_url": "Adresse der Website (Einstellung)",
"seo_check.site_url_ok": "Passt zur aufgerufenen Adresse",
"seo_check.site_url_host": "Eingestellt ist {url}, aufgerufen wird {detail}",
"seo_check.site_url_scheme": "Eingestellt ist {url}, die Website läuft aber über https://",
"seo_check.site_url_expected": "Dieselbe Domain wie die aufgerufene Adresse, mit https://.",
"seo_check.site_url_fix_host": "Diese Adresse steht in Canonical-Links, hreflang und in der Sitemap. Nach dem Umzug von Staging auf die Live-Domain muss sie angepasst werden (Einstellungen → Branding → Suchmaschinen), sonst verweisen Suchmaschinen auf die alte Domain.",
"seo_check.site_url_fix_scheme": "Trage unter Einstellungen → Branding → Suchmaschinen die Adresse mit https:// ein.",
"seo_check.page_noindex": "Einzelne Seiten mit noindex",
"seo_check.page_noindex_ok": "Keine",
"seo_check.page_noindex_note": "{count} von {total} öffentlichen Seiten stehen auf noindex",
"seo_check.page_noindex_expected": "Nur Seiten, die bewusst nicht in Suchmaschinen erscheinen sollen.",
"seo_check.page_noindex_fix_note": "Das ist in Ordnung, wenn es so gewollt ist, etwa bei Danke-Seiten. Sonst ändere die Einstellung „Robots“ im SEO-Bereich der Seite (Seitenliste).",
"seo_check.maintenance": "Wartungsmodus",
"seo_check.maintenance_ok": "Aus",
"seo_check.maintenance_warning": "Aktiv: Besucher und Suchmaschinen erhalten die Wartungsseite (HTTP 503)",
"seo_check.maintenance_expected": "Wartungsmodus ausgeschaltet.",
"seo_check.maintenance_fix_warning": "Schalte den Wartungsmodus unter Einstellungen → Zugang aus, sobald die Website live ist. Länger andauernde 503-Antworten lassen Seiten aus dem Suchindex fallen.",
"seo_check.banner_title": "Diese Website ist für Suchmaschinen gesperrt",
"seo_check.banner_text_setting": "Die Einstellung „Website für Suchmaschinen sperren“ ist aktiv. Auf einer Staging- oder Testseite ist das richtig. Ist die Website live, erscheint sie so nicht in Google.",
"seo_check.banner_text_other": "Gesperrt über: {where}. Auf einer Staging- oder Testseite ist das richtig. Ist die Website live, erscheint sie so nicht in Google.",
"ai.organization_hint": "Nur erforderlich, wenn API-Anfragen ausdrücklich einer bestimmten OpenAI-Organisation zugeordnet werden sollen. Andernfalls leer lassen.",
"ai.model_label": "Modell",
"ai.model_group_chat": "Chat/Agent",
"ai.model_group_chat_hint": "Für den Assistenten, den KI-Agenten und vollständige Inhaltsentwürfe. Hier zählt Qualität.",
"ai.model_group_text": "Text/SEO",
"ai.model_group_text_hint": "Für einzelne Feldvorschläge, kurze Textüberarbeitungen und SEO-Texte. Darf ein günstigeres, schnelleres Modell sein.",
"ai.model_group_both": "Chat/Agent und Text/SEO",
"ai.reasoning_effort": "Denkaufwand",
"ai.reasoning_recommended_with": "Empfohlen ({level})",
"ai.reasoning_low": "Niedrig",
"ai.reasoning_medium": "Mittel",
"ai.reasoning_high": "Hoch",
"ai.reasoning_legacy": "Bisheriges Verhalten (Standard des Anbieters)",
"ai.reasoning_hint": "Höherer Denkaufwand kann bei komplexen Aufgaben helfen, erhöht aber häufig Antwortzeit und Kosten. Für normale Aufgaben genügt die empfohlene Einstellung.",
"ai.reasoning_unknown": "Für dieses Modell ist keine Denkstufe hinterlegt. Es gilt die Standardeinstellung des Anbieters.",
"ai.reasoning_reset": "Das Modell unterstützt die gewählte Stufe nicht. Zurückgesetzt auf „Empfohlen“.",
"ai.pricing_hint": "Preise gelten je Anbieter und Modell, in USD oder EUR je 1 Mio. Tokens. Ohne eigenen Preis gilt der Katalogpreis. Cache-Zugriffe und Denk-Tokens werden nach den Angaben des Anbieters berücksichtigt; für den Denkaufwand gibt es keinen Aufschlag.",
"ai.price_input": "Input-Preis (je 1 Mio. Tokens)",
"ai.price_output": "Output-Preis (je 1 Mio. Tokens)",
"ai.price_currency": "Währung",
"ai.price_remove": "Eigenen Preis entfernen",
"ai.price_unknown": "Preis nicht hinterlegt",
"ai.price_unknown_notice": "Für mindestens ein Modell ist kein Preis hinterlegt. Ohne Preis kann das Monatsbudget in Geld nicht zuverlässig überwacht werden; nur die Anfragelimits greifen. Trage unten einen eigenen Preis ein.",
"ai.price_status_catalog": "Katalogpreis: {input} / {output} USD je 1 Mio. Tokens (Input / Output), Stand {date}.",
"ai.price_status_override": "Eigener Preis: {input} / {output} {currency} je 1 Mio. Tokens (Input / Output).",
"ai.price_status_migrated": "Übernommener Schätzwert: {input} / {output} {currency} je 1 Mio. Tokens (Input / Output). Du kannst ihn überschreiben oder entfernen.",
"ai.price_tier_multiplier": "Über {tokens} Input-Tokens gilt für die ganze Anfrage: Input ×{input}, Output ×{output}.",
"ai.price_tier_absolute": "Über {tokens} Input-Tokens gelten für die ganze Anfrage {input} / {output} USD.",
"ai.fx_custom": "Eigener Wechselkurs (USD je 1 EUR)",
"ai.fx_hint": "Aktuell: 1 EUR = {rate} USD (Stand {date}, {source}). USD-Preise werden damit in Euro umgerechnet.",
"ai.fx_own": "eigener Kurs",
"ai.usage_unpriced": "{count} Anfragen in diesem Monat ohne hinterlegten Preis. Ihre Kosten sind in der Summe nicht enthalten.",
"ai.remove_key_title": "API-Key entfernen",
"ai.remove_key_confirm": "Der gespeicherte Key wird sofort gelöscht, unabhängig von anderen ungespeicherten Änderungen. Die zugehörigen Funktionen stehen erst wieder zur Verfügung, wenn du einen neuen Key speicherst.",
"ai.remove_key_button": "Key entfernen",
"ai.key_removed": "Der gespeicherte Key wurde entfernt.",
"ai.agent_offer_title": "KI-Agent aktivieren?",
"ai.agent_offer_text": "Mit {model} arbeitet der KI-Agent besonders zuverlässig. Soll er jetzt aktiviert werden?",
"ai.agent_offer_confirm": "Agent aktivieren",
"mails.storage_off_title": "Neue Nachrichten werden hier nicht gespeichert",
"mails.storage_off_text": "Bei keinem aktivierten Formular ist „Lokal speichern“ eingeschaltet. Eingehende Nachrichten erscheinen deshalb nicht in dieser Liste und kommen nur per E-Mail an, sofern der Versand eingerichtet ist.",
"mails.forms_disabled_title": "Kein Formular ist aktiviert",
"mails.forms_disabled_text": "Solange kein Formular aktiviert ist, können Besucher keine Nachrichten senden, und diese Liste bleibt leer.",
"mails.open_forms_settings": "Formulare öffnen",
"ai.agent_classic_mode": "Klassischen Modus im Chat anbieten",
"ai.agent_classic_mode_hint": "Im Chat lässt sich zwischen dem Agenten und dem klassischen Assistenten wechseln. Der klassische Modus ist schneller und günstiger für Fragen und einzelne Textvorschläge. Schalte ihn aus, wenn der Chat nur den Agenten zeigen soll.",
"ai.images_section": "Bilder",
"ai.images_section_hint": "Bilder kommen von einem eigenen Dienst, unabhängig vom Chat-Anbieter. Der KI-Agent, der Assistent und der Bildgenerator nutzen ihn gemeinsam.",
"ai.image_service": "Bild-Service",
"ai.image_service_inherit": "Wie Chat-Anbieter",
"ai.image_service_openai": "OpenAI",
"ai.image_service_openrouter": "OpenRouter",
"ai.image_service_kie": "Kie.ai",
"ai.image_service_fal": "fal.ai",
"ai.image_service_comet": "Comet API",
"ai.image_service_custom": "Benutzerdefiniert (OpenAI-kompatibel)",
"ai.image_service_inherit_hint": "Nutzt die Bildmodelle des Chat-Anbieters (bei Anthropic nicht möglich).",
"ai.image_service_inherit_anthropic": "Anthropic hat keine Bild-API. Wähle einen Bild-Service, damit der Agent und die Bildfunktionen Bilder erzeugen können.",
"ai.image_service_key_own": "Eigener Schlüssel gespeichert. Unverändert lassen, um ihn beizubehalten.",
"ai.image_service_key_chat": "Kein eigener Schlüssel: Es wird der Schlüssel des gleichnamigen Chat-Anbieters verwendet. Trage hier einen Schlüssel ein, um einen eigenen zu nutzen.",
"ai.image_service_key_none": "Für diesen Service ist kein API-Key gespeichert.",
"ai.image_service_unverified": "Die Parameter dieses Modells sind nicht gegen die Dokumentation des Anbieters geprüft. Es gelten Standardwerte; ergänze bei Bedarf unten modellspezifische Parameter.",
"ai.image_service_custom_base_url": "Basis-URL",
"ai.image_service_custom_base_url_hint": "Adresse eines Dienstes mit OpenAI-kompatiblem /images/generations-Endpunkt, z. B. https://api.example.com/v1. Lokale Adressen brauchen die Option „Lokale/private Provider-URL erlauben“.",
"ai.image_service_custom_base_url_missing": "Trage die Basis-URL des Bild-Services ein.",
"ai.image_service_size_mode": "Größenangabe",
"ai.image_service_size_mode_size": "Pixelgröße (size: 1024x1024)",
"ai.image_service_size_mode_aspect": "Seitenverhältnis (aspect_ratio: 16:9)",
"ai.image_service_size_mode_none": "Keine Größe senden",
"ai.image_service_auth_style": "Authentifizierung",
"ai.image_service_extra_params": "Eigene Parameter (JSON)",
"ai.image_service_extra_params_hint": "Optional. Wird jeder Anfrage dieses Services hinzugefügt, z. B. modellspezifische Optionen. Trage hier keine Schlüssel ein. prompt, model und n setzt Raiju selbst.",
"ai.image_price_model": "Bildpreis",
"ai.image_price_per_image": "Preis je Bild",
"ai.image_price_status_override": "Eigener Preis: {price} {currency} je Bild.",
"ai.image_price_status_catalog": "Katalogpreis: {price} {currency} je Bild, Stand {date}.",
"ai.image_price_status_default": "Für dieses Modell ist kein Preis hinterlegt: Es gilt der Standardpreis von {cents} Cent je Bild.",
"ai.usage_unpriced_images": "{count} Bildanfragen in diesem Monat ohne hinterlegten Preis. Ihre Kosten sind in der Summe nicht enthalten.",
"ai.image_price_tables": "Preise nach Auflösung und Qualität (optional)",
"ai.image_price_tables_hint": "Berechnet das Modell je Auflösungsstufe oder Qualität unterschiedlich, trage hier den Preis je Bild dafür ein. Eine Anfrage nutzt den Preis ihrer Auflösung, dann den ihrer Qualität, dann den Preis je Bild oben. Leere Felder nutzen den Preis je Bild.",
"ai.image_price_status_tables": "Zusätzlich sind Preise nach Auflösung oder Qualität hinterlegt.",
"ai.image_price_status_tables_only": "Preise nach Auflösung oder Qualität sind hinterlegt; Anfragen ohne passenden Eintrag nutzen den Standardpreis je Bild.",
"ai.image_service_models_loaded": "{count} Modelle vom Service geladen. Du kannst trotzdem jede Modell-ID eintippen.",
"ai.image_service_unusable_key": "Für den Bild-Service {service} ist noch kein API-Key hinterlegt. Trage ihn unter KI-Einstellungen → Bilder ein.",
"ai.image_service_unusable_model": "Für den Bild-Service {service} ist kein Bildmodell gewählt. Wähle eines unter KI-Einstellungen → Bilder.",
"ai.image_price_status_catalog_tables": "Katalogpreise nach Auflösung oder Qualität, Stand {date}."
}