Unifi-Voucher-Tool/lang/de.php
Friederich Loheide 4159b92268
Some checks are pending
CI / PHP Lint (push) Waiting to run
CI / PHP Lint (pull_request) Waiting to run
CI / PHP Lint-1 (pull_request) Waiting to run
CI / PHP Lint-1 (push) Waiting to run
CI / Unit Tests & Static Analysis (pull_request) Waiting to run
CI / Unit Tests & Static Analysis (push) Waiting to run
Display-Seiten individuell gestalten
Jede Display-Seite bringt jetzt ihr eigenes Erscheinungsbild mit – der
Empfang sieht anders aus als der Tagungsraum nebenan:

- eigenes Logo (leer = Logo aus den Einstellungen)
- formatfüllendes Hintergrundbild mit einstellbarer Abdunklung (0–90 %),
  damit die Karte auf hellen Fotos lesbar bleibt
- eigene Akzentfarbe für den Knopf (leer = Farbe aus dem Design-Tab)
- Karte wahlweise hell oder dunkel; auf Fotos wirkt dunkel meist ruhiger

Logo und Hintergrund lassen sich hochladen oder als URL hinterlegen; beim
Löschen einer Display-Seite verschwinden die hochgeladenen Dateien mit.

Nebenbei aufgeräumt: das Bildfeld (Vorschau + Upload + URL + Entfernen)
lag als Funktion in admin/settings.php und wird jetzt von beiden Seiten
genutzt – Ui::imageField() für die Darstellung, Upload::resolveField()
für die Auswertung.

Sicherheit: die Akzentfarbe landet in einem style-Attribut, deshalb wird
sie sowohl beim Speichern als auch beim Ausgeben auf eine echte Hex-Farbe
geprüft; ein Test hält das fest.

Migration 0006, database.sql nachgezogen, 4 neue Tests (42 gesamt),
Screenshots ergänzt, Version 2.8.0.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-23 16:58:54 +00:00

623 lines
36 KiB
PHP
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.

<?php
return [
// Navigation
'nav_group_overview'=> 'Übersicht',
'nav_group_manage' => 'Verwaltung',
'nav_group_system' => 'System',
'nav_dashboard' => 'Dashboard',
'nav_sites' => 'Sites verwalten',
'nav_users' => 'Benutzer verwalten',
'nav_vouchers' => 'Live Vouchers',
'nav_templates' => 'Voucher-Profile',
'nav_audit_log' => 'Audit-Log',
'nav_reports' => 'Reporting',
'nav_import' => 'Voucher-Import',
'nav_settings' => 'Einstellungen',
'nav_api_keys' => 'API-Schlüssel',
'nav_security' => 'Sicherheit (2FA)',
'nav_integrations' => 'Integration & Wartung',
'nav_backup' => 'Backup & Restore',
'nav_update' => 'System-Update',
'nav_back' => 'Zurück zur Startseite',
'nav_administration'=> 'Administration',
// Common buttons
'btn_save' => 'Speichern',
'btn_cancel' => 'Abbrechen',
'btn_add' => 'Hinzufügen',
'btn_edit' => 'Bearbeiten',
'btn_delete' => 'Löschen',
'btn_create' => 'Erstellen',
'btn_close' => 'Schließen',
'btn_back' => 'Zurück',
'btn_login' => 'Anmelden',
'btn_logout' => 'Abmelden',
'btn_refresh' => 'Aktualisieren',
'btn_export_csv' => 'CSV exportieren',
'btn_print' => 'Ausdrucken',
'btn_send' => 'Senden',
'btn_test' => 'Testen',
'btn_generate' => 'Generieren',
'btn_copy' => 'Kopieren',
'btn_new_code' => 'Weiteren Code erstellen',
// Common labels
'label_name' => 'Name',
'label_email' => 'E-Mail',
'label_password' => 'Passwort',
'label_status' => 'Status',
'label_actions' => 'Aktionen',
'label_created' => 'Erstellt',
'label_site' => 'Standort',
'label_sites' => 'Sites',
'label_role' => 'Rolle',
'label_code' => 'Code',
'label_note' => 'Notiz',
'label_usage' => 'Nutzung',
'label_expires' => 'Gültigkeit',
'label_devices' => 'Geräte',
'label_duration' => 'Dauer',
'label_description' => 'Beschreibung',
'label_language' => 'Sprache',
// Status texts
'status_active' => 'Aktiv',
'status_inactive' => 'Inaktiv',
'status_valid' => 'Gültig',
'status_used' => 'Verwendet',
'status_expired' => 'Abgelaufen',
'status_admin' => 'Admin',
'status_user' => 'Benutzer',
'status_public' => 'Öffentlich',
'status_all' => 'Alle',
// Dashboard
'dashboard_title' => 'Dashboard',
'dashboard_subtitle'=> 'Übersicht über Ihr UniFi Voucher System',
'dashboard_active_sites' => 'Aktive Sites',
'dashboard_users' => 'Benutzer',
'dashboard_valid' => 'Gültige Vouchers',
'dashboard_used' => 'Verwendet',
'dashboard_expired' => 'Abgelaufen',
'dashboard_total' => 'Gesamt',
'dashboard_live_refresh' => 'Live aktualisieren',
'dashboard_trend' => 'Voucher-Trend (Letzte 7 Tage)',
'dashboard_top_users'=> 'Top 5 Benutzer (Letzte 30 Tage)',
'dashboard_recent' => 'Letzte Vouchers (aus Datenbank)',
'dashboard_creator' => 'Ersteller',
'dashboard_public' => 'Öffentlich',
'dashboard_vouchers_per_site' => 'Live: Vouchers pro Site',
'dashboard_no_data' => 'Noch keine Daten verfügbar',
'dashboard_no_vouchers' => 'Noch keine Vouchers erstellt',
// Voucher creation
'voucher_name_label' => 'Voucher-Name *',
'voucher_name_hint' => 'z.B. Besprechung UL, Vertretername Firma XY',
'voucher_devices_label' => 'Wie viele Geräte dürfen sich einloggen? *',
'voucher_site_label' => 'Standort *',
'voucher_site_select' => 'Bitte wählen...',
'voucher_email_send' => 'Code per E-Mail versenden',
'voucher_email_label' => 'E-Mail-Adresse des Empfängers',
'voucher_email_hint' => 'gast@example.com',
'voucher_create_btn' => 'Voucher erstellen',
'voucher_creating' => 'Erstelle Voucher...',
'voucher_success_title' => 'Zugangs-Code erstellt',
'voucher_copy_hint' => 'Code antippen zum Kopieren',
'app_subtitle' => 'WLAN-Zugangscodes in Sekunden erstellen für Gäste, Teams und Events.',
'voucher_validity' => 'Gültig für {minutes} Minuten ab Erstellung',
'voucher_qr_label' => 'QR-Code scannen zum Verbinden',
'voucher_print_btn' => 'Code ausdrucken',
'voucher_no_sites' => 'Keine verfügbaren Sites gefunden.',
'voucher_no_sites_admin'=> 'Klicken Sie hier, um Sites anzulegen',
'voucher_no_sites_user' => 'Bitte kontaktieren Sie Ihren Administrator.',
'voucher_template_select'=> '-- Kein Profil (manuell) --',
'voucher_template_label'=> 'Schnellprofil (optional)',
// Bulk creation
'bulk_tab' => 'Einzeln',
'bulk_tab_bulk' => 'Mehrere auf einmal',
'bulk_quantity' => 'Anzahl Vouchers',
'bulk_quantity_hint'=> 'Wie viele Vouchers sollen erstellt werden?',
'bulk_name_prefix' => 'Name / Präfix',
'bulk_create_btn' => '{count} Vouchers erstellen',
'bulk_creating' => 'Erstelle {count} Vouchers...',
'bulk_success' => '{count} Vouchers erfolgreich erstellt!',
'bulk_print_all' => 'Alle ausdrucken',
'bulk_results' => 'Erstellte Vouchers ({count})',
'bulk_results_hint' => 'Alle Codes sind sofort gültig und können gedruckt oder kopiert werden.',
// Templates
'templates_title' => 'Voucher-Profile',
'templates_subtitle'=> 'Vordefinierte Voucher-Konfigurationen',
'templates_add' => 'Neues Profil',
'templates_name' => 'Profilname',
'templates_devices' => 'Max. Geräte',
'templates_duration'=> 'Gültigkeit (Minuten)',
'templates_desc' => 'Beschreibung (optional)',
'templates_none' => 'Noch keine Profile vorhanden.',
'templates_add_hint'=> 'Erstellen Sie Profile für häufig verwendete Voucher-Konfigurationen.',
'templates_edit' => 'Profil bearbeiten',
'templates_added' => 'Profil erfolgreich erstellt!',
'templates_updated' => 'Profil erfolgreich aktualisiert!',
'templates_deleted' => 'Profil erfolgreich gelöscht!',
// Users
'users_title' => 'Benutzer verwalten',
'users_add' => 'Neuer Benutzer',
'users_all' => 'Alle Benutzer',
'users_site_access' => 'Site-Zugriffe',
'users_last_login' => 'Letzter Login',
'users_never' => 'Noch nie',
'users_you' => 'Sie',
'users_all_sites' => 'Alle Sites',
'users_none' => 'Keine',
'users_add_title' => 'Neuen Benutzer anlegen',
'users_edit_title' => 'Benutzer bearbeiten',
'users_admin_check' => 'Administrator-Rechte',
'users_admin_hint' => 'Admins haben Zugriff auf alle Sites und Einstellungen',
'users_password_hint'=> 'Mindestens 8 Zeichen',
'users_site_hint' => 'Wählen Sie die Sites, auf die dieser Benutzer Zugriff haben soll',
'users_no_sites' => 'Keine Sites verfügbar. Bitte zuerst Sites anlegen.',
'users_added' => 'Benutzer erfolgreich erstellt!',
'users_updated' => 'Benutzer erfolgreich aktualisiert!',
'users_deleted' => 'Benutzer erfolgreich gelöscht!',
'users_notified' => ' Benachrichtigung wurde versendet.',
'users_none_found' => 'Noch keine Benutzer vorhanden',
'users_save' => 'Benutzer anlegen',
'users_save_edit' => 'Änderungen speichern',
'users_reset_pw' => 'Passwort-Reset-Link senden',
// Sites
'sites_title' => 'Sites verwalten',
'sites_add' => 'Neue Site hinzufügen',
'sites_add_title' => 'Neue Site hinzufügen',
'sites_edit_title' => 'Site bearbeiten',
'sites_name' => 'Site-Name *',
'sites_site_id' => 'UniFi Site ID *',
'sites_controller' => 'Controller URL *',
'sites_username' => 'Benutzername *',
'sites_password' => 'Passwort *',
'sites_password_edit'=> 'Neues Passwort',
'sites_password_hint'=> 'Nur ausfüllen wenn Sie das Passwort ändern möchten',
'sites_public' => 'Öffentlicher Zugriff (ohne Login nutzbar)',
'sites_none' => 'Noch keine Sites konfiguriert. Fügen Sie Ihre erste Site hinzu!',
'sites_added' => 'Site erfolgreich hinzugefügt!',
'sites_updated' => 'Site erfolgreich aktualisiert!',
'sites_deleted' => 'Site erfolgreich gelöscht!',
'sites_testing' => 'Verbindung wird getestet...',
'sites_deactivate' => 'Deaktivieren',
'sites_activate' => 'Aktivieren',
// Voucher admin list
'vouchers_title' => 'Live Voucher-Verwaltung',
'vouchers_subtitle' => 'Vouchers werden direkt vom UniFi Controller abgerufen',
'vouchers_select_site'=> 'Site auswählen',
'vouchers_select_hint'=> '-- Site auswählen --',
'vouchers_last_sync'=> 'Letzte Sync',
'vouchers_no_sites' => 'Keine aktiven Sites vorhanden',
'vouchers_search' => 'Suchen (Code, Name...)',
'vouchers_filter_all'=> 'Alle',
'vouchers_filter_valid'=> 'Gültig',
'vouchers_filter_used'=> 'Verwendet',
'vouchers_filter_expired'=> 'Abgelaufen',
'vouchers_none' => 'Keine Vouchers gefunden.',
'vouchers_per_page' => 'pro Seite',
'vouchers_page_of' => 'Seite {current} von {total}',
// Audit Log
'audit_title' => 'Audit-Log',
'audit_subtitle' => 'Alle System-Aktionen im Überblick',
'audit_action' => 'Aktion',
'audit_user' => 'Benutzer',
'audit_details' => 'Details',
'audit_ip' => 'IP-Adresse',
'audit_time' => 'Zeitpunkt',
'audit_entity' => 'Objekt',
'audit_filter_all' => 'Alle Aktionen',
'audit_none' => 'Keine Einträge gefunden.',
'audit_filter' => 'Filter',
// Settings
'settings_title' => 'Einstellungen',
'settings_subtitle' => 'System-Konfiguration und Personalisierung',
'settings_tab_branding' => 'Design',
'settings_branding_intro' => 'Farben und Formen der gesamten Oberfläche Frontend wie Administration.',
'settings_brand_accent' => 'Akzentfarbe (hell)',
'settings_brand_accent_hint' => 'Buttons, aktive Navigation, Links. Abgeleitete Töne werden automatisch berechnet.',
'settings_brand_accent_dark' => 'Akzentfarbe (Dark Mode)',
'settings_brand_accent_dark_hint' => 'Im Dark Mode meist eine hellere Variante der Grundfarbe.',
'settings_brand_gradient_from'=> 'Markenverlauf: Start',
'settings_brand_gradient_to' => 'Markenverlauf: Ende',
'settings_brand_gradient_hint'=> 'Für Logo-Kachel, Avatare und die Voucher-Karte.',
'settings_brand_radius' => 'Eckenradius',
'settings_brand_radius_sharp' => 'Kantig',
'settings_brand_radius_default'=> 'Standard',
'settings_brand_radius_round' => 'Rund',
'settings_brand_preview' => 'Vorschau',
'settings_brand_link' => 'Beispiel-Link',
'settings_image_url_placeholder' => 'https://… oder Datei hochladen',
'settings_image_remove' => 'Bild entfernen',
'settings_upload_hint' => 'PNG, JPG, WEBP, GIF oder SVG maximal 3 MB.',
'upload_error_generic' => 'Die Datei konnte nicht hochgeladen werden.',
'upload_error_size' => 'Die Datei ist zu groß (maximal 3 MB).',
'upload_error_type' => 'Dieser Dateityp wird nicht unterstützt.',
'upload_error_dir' => 'Der Ordner uploads/ ist nicht beschreibbar.',
'settings_tab_login' => 'Login-Seite',
'settings_login_intro' => 'Aussehen und Texte der Anmeldeseite. Leere Felder verwenden die Standardwerte.',
'settings_login_panel' => 'Linke Bildspalte (Split-Screen) anzeigen',
'settings_login_brand' => 'Firmenname',
'settings_login_brand_hint' => 'Leer = Anwendungstitel wird verwendet.',
'settings_login_logo' => 'Logo (URL)',
'settings_login_logo_hint' => 'Leer = allgemeines Logo aus dem Tab „Allgemein".',
'settings_login_claim_title' => 'Überschrift',
'settings_login_claim_text' => 'Beschreibungstext',
'settings_login_features' => 'Stichpunkte',
'settings_login_features_hint'=> 'Ein Stichpunkt pro Zeile. Leer lassen, um keine Liste anzuzeigen.',
'settings_login_footer' => 'Fußzeile',
'settings_login_bg_image' => 'Hintergrundbild (URL)',
'settings_login_bg_image_hint'=> 'Optional. Wird formatfüllend angezeigt; ohne Bild gilt der Farbverlauf.',
'settings_login_bg_from' => 'Verlauf: Startfarbe',
'settings_login_bg_to' => 'Verlauf: Endfarbe',
'settings_login_overlay' => 'Abdunklung des Bildes (%)',
'settings_login_overlay_hint' => '090 %. Höhere Werte machen den Text auf hellen Bildern besser lesbar.',
'settings_login_preview' => 'Vorschau öffnen',
'api_title' => 'API-Schlüssel',
'api_subtitle' => 'Zugänge für externe Systeme mit Scope und Rate-Limit.',
'api_new_key' => 'Neuer Schlüssel',
'api_new_key_hint' => 'Kopieren Sie ihn jetzt aus Sicherheitsgründen wird er nicht erneut angezeigt.',
'api_create_title' => 'Neuen API-Schlüssel erstellen',
'api_label_name' => 'Bezeichnung',
'api_name_placeholder' => 'z.B. Buchungssystem, Terminal Foyer',
'api_label_scope' => 'Berechtigung',
'api_scope_write' => 'Lesen + Erstellen',
'api_scope_read' => 'Nur Lesen',
'api_scope_write_short' => 'Lesen+Erstellen',
'api_scope_read_short' => 'nur Lesen',
'api_label_limit' => 'Limit (Anfr./min)',
'api_limit_title' => '0 = unbegrenzt',
'api_existing' => 'Vorhandene Schlüssel',
'api_none' => 'Noch keine API-Schlüssel angelegt.',
'api_col_prefix' => 'Präfix',
'api_col_scope' => 'Scope',
'api_col_limit' => 'Limit',
'api_col_last_used' => 'Zuletzt genutzt',
'api_col_created_by' => 'Erstellt von',
'api_state_active' => 'aktiv',
'api_state_blocked' => 'gesperrt',
'api_action_block' => 'Sperren',
'api_action_unblock' => 'Aktivieren',
'api_delete_confirm' => 'Schlüssel löschen?',
'api_usage' => 'Verwendung',
'api_usage_hint' => 'Authentifizierung per Header',
'api_openapi' => 'OpenAPI-Spezifikation (Import in Postman/Swagger):',
'api_created' => 'API-Schlüssel erstellt.',
'api_deleted' => 'API-Schlüssel gelöscht.',
'api_toggled' => 'Status geändert.',
'api_name_required' => 'Bitte eine Bezeichnung angeben.',
'api_created_once' => 'API-Schlüssel erstellt. Bitte JETZT kopieren er wird nur einmal angezeigt!',
'api_status_updated' => 'Status aktualisiert.',
'int_title' => 'Integration & Wartung',
'int_subtitle' => 'SSO, Webhooks, SMS-Versand und Aufbewahrungsfristen.',
'int_security' => 'Sicherheitsrichtlinie',
'int_security_hint' => 'Erzwingt Zwei-Faktor-Authentifizierung für alle Administrator-Konten (lokale Accounts). Admins ohne 2FA werden bei der nächsten Aktion zur Einrichtung geleitet.',
'int_enforce_2fa' => '2FA für Administratoren verpflichtend',
'int_daily_limit' => 'Tageslimit Voucher pro Nicht-Admin-Benutzer (0 = unbegrenzt)',
'int_session_driver' => 'Session-Speicher',
'int_session_php' => 'PHP-Standard (Dateien)',
'int_session_db' => 'Datenbank (ermöglicht „überall abmelden")',
'int_captcha' => 'Captcha im öffentlichen Modus',
'int_captcha_off' => 'Aus',
'int_captcha_math' => 'Rechenaufgabe (ohne externen Dienst)',
'int_secret_set' => ' (gesetzt)',
'int_secret_placeholder' => '••••••• (leer = unverändert)',
'int_proxy' => 'Reverse-Proxy',
'int_proxy_hint' => 'IP-Adressen vertrauenswürdiger Proxies (kommasepariert). Nur dann wird die echte Client-IP aus',
'int_proxy_hint2' => 'für Rate-Limit & Audit verwendet.',
'int_webhook' => 'Webhook-Benachrichtigungen',
'int_webhook_hint' => 'Slack-, Microsoft-Teams- oder generische JSON-Webhook-URL. Wird bei Voucher-Erstellung ausgelöst.',
'int_webhook_active' => 'Webhook aktiv',
'int_webhook_url' => 'Webhook-URL',
'int_webhook_test' => 'Test senden',
'int_sms' => 'SMS-Versand (Twilio)',
'int_sms_hint' => 'Voucher-Codes optional per SMS versenden. Erfordert ein Twilio-Konto.',
'int_sms_active' => 'SMS-Versand aktiv',
'int_sms_from' => 'Absender (From)',
'int_sso' => 'Single Sign-On (OpenID Connect)',
'int_sso_hint' => 'Generischer OIDC-Provider (z.B. Keycloak, Authentik, Google, Auth0). Redirect-URI:',
'int_sso_active' => 'OIDC-Login aktiv',
'int_sso_button' => 'Button-Text',
'int_cleanup' => 'Datenhaltung & Cleanup (DSGVO)',
'int_cleanup_hint' => 'Aufbewahrungsfristen in Tagen (0 = deaktiviert). Ausführung per',
'int_cleanup_hint2' => '(täglich empfohlen).',
'int_cleanup_last' => 'Letzter Lauf:',
'int_cleanup_expired' => 'Abgelaufene Voucher',
'int_cleanup_audit' => 'Audit-Log',
'int_cleanup_logins' => 'Login-Versuche',
'int_saved' => 'Einstellungen gespeichert.',
'int_webhook_sent' => 'Test-Webhook gesendet.',
'int_webhook_failed' => 'Test-Webhook fehlgeschlagen.',
'int_webhook_test_sent' => 'Test-Benachrichtigung gesendet (sofern Webhook aktiv & URL gültig).',
'sec_token_invalid' => 'Ungültiges Sicherheits-Token',
'sec_setup_expired' => 'Setup abgelaufen, bitte erneut starten.',
'sec_code_invalid' => 'Code ungültig. Bitte erneut versuchen.',
'sec_enabled' => 'Zwei-Faktor-Authentifizierung wurde aktiviert. Bitte Recovery-Codes sicher speichern!',
'sec_sessions_closed' => 'Alle anderen Sitzungen wurden beendet.',
'sec_codes_new' => 'Neue Recovery-Codes erzeugt. Die alten sind jetzt ungültig.',
'sec_disabled' => 'Zwei-Faktor-Authentifizierung wurde deaktiviert.',
'backup_choose_file' => 'Bitte eine Backup-Datei auswählen.',
'backup_invalid_file' => 'Ungültige oder fremde Backup-Datei.',
'sec_title' => 'Zwei-Faktor-Authentifizierung',
'sec_account' => 'Konto:',
'sec_required_hint' => 'Aus Sicherheitsgründen ist 2FA für Administratoren verpflichtend. Bitte jetzt einrichten.',
'sec_recovery_codes' => 'Recovery-Codes',
'sec_recovery_hint' => 'Bewahren Sie diese sicher auf. Jeder Code funktioniert einmal, falls Sie keinen Zugriff auf Ihre App haben.',
'sec_unavailable' => 'Nicht verfügbar',
'sec_m365_hint' => 'Ihr Konto meldet sich über Microsoft 365 an. 2FA wird dort in Ihrem Microsoft-Konto verwaltet.',
'sec_active' => 'Aktiv',
'sec_inactive' => 'Inaktiv',
'sec_active_hint' => 'Bei jeder Anmeldung wird zusätzlich ein Code aus Ihrer Authenticator-App abgefragt.',
'sec_codes_left' => 'Verbleibende Recovery-Codes:',
'sec_regen_codes' => 'Recovery-Codes neu erzeugen',
'sec_disable_confirm' => '2FA wirklich deaktivieren?',
'sec_disable' => '2FA deaktivieren',
'sec_step_1' => 'Authenticator-App öffnen (Google Authenticator, Authy, Microsoft Authenticator …)',
'sec_step_2' => 'QR-Code scannen oder Secret manuell eingeben',
'sec_step_3' => 'Den angezeigten 6-stelligen Code unten eingeben',
'sec_code_label' => '6-stelliger Code',
'sec_enable' => '2FA aktivieren',
'sec_sessions' => 'Aktive Sitzungen:',
'sec_logout_others_confirm' => 'Alle anderen Sitzungen abmelden?',
'sec_logout_others' => 'Auf allen anderen Geräten abmelden',
'import_title' => 'Voucher-Import',
'import_subtitle' => 'Mehrere Vouchers auf einmal aus einer CSV-Liste erstellen.',
'import_card_title' => 'Mehrere Voucher erstellen',
'import_format_hint' => 'Eine Zeile pro Voucher:',
'import_format_hint2' => ' MaxGeräte und Minuten sind optional (Standardwerte greifen). Max. 200 Zeilen. Beispiel:',
'import_site' => 'Standort',
'import_file' => 'CSV-Datei (optional)',
'import_paste' => '… oder direkt einfügen',
'import_confirm' => 'Import jetzt starten?',
'import_submit' => 'Importieren',
'import_result' => 'Ergebnis',
'import_col_code' => 'Code / Fehler',
'import_created' => '{count} Voucher erstellt.',
'backup_title' => 'Backup & Restore',
'backup_subtitle' => 'Konfiguration und Daten sichern oder wiederherstellen.',
'backup_export' => 'Export',
'backup_export_hint' => 'Lädt Einstellungen, Sites und Voucher-Profile als JSON. Site-Passwörter bleiben mit dem',
'backup_export_hint2' => 'dieser Installation verschlüsselt ein Restore auf einer Installation mit anderem APP_KEY kann sie nicht entschlüsseln.',
'backup_export_btn' => 'Konfiguration exportieren',
'backup_import' => 'Import / Restore',
'backup_import_hint' => 'Vorhandene Sites werden anhand von Name + Site-ID aktualisiert, neue hinzugefügt. Profile werden nur angelegt, wenn der Name noch nicht existiert. Der Cron-Token wird nie überschrieben.',
'backup_opt_settings' => 'Einstellungen',
'backup_opt_sites' => 'Sites',
'backup_opt_templates' => 'Voucher-Profile',
'backup_import_confirm' => 'Import jetzt durchführen?',
'backup_imported' => 'Import abgeschlossen: {settings} Einstellungen, {sites} Sites, {templates} Profile.',
'rep_title' => 'Reporting',
'rep_subtitle' => 'Auswertungen nach Zeitraum, Site und Benutzer.',
'rep_period' => 'Zeitraum',
'rep_days' => 'Tage',
'rep_csv_daily' => 'CSV (täglich)',
'rep_csv_site' => 'CSV (pro Site)',
'rep_csv_user' => 'CSV (pro Nutzer)',
'rep_print' => 'Drucken/PDF',
'rep_total' => 'Vouchers gesamt',
'rep_in_period' => 'In {days} Tagen erstellt',
'rep_chart_title' => 'Erstellte Voucher ({days} Tage)',
'rep_per_site' => 'Pro Site',
'rep_top_users' => 'Top-Nutzer',
'rep_col_created' => 'Voucher erstellt',
'rep_no_data' => 'Keine Daten',
'label_total' => 'Gesamt',
'label_user' => 'Benutzer',
'js_confirm_delete_voucher' => 'Voucher wirklich löschen?',
'js_confirm_delete_user' => 'Benutzer wirklich löschen?',
'js_confirm_delete_site' => 'Möchten Sie diese Site wirklich löschen?',
'js_confirm_delete_template' => 'Profil wirklich löschen?',
'js_confirm_delete_token' => 'Token wirklich löschen?',
'js_error' => 'Fehler',
'js_enter_email' => 'Bitte E-Mail eingeben.',
'js_running' => 'Läuft...',
'js_run_now' => 'Jetzt ausführen',
'js_copied' => 'Kopiert!',
'js_code_copied' => 'Code kopiert!',
'js_click_to_copy' => 'Klicken zum Kopieren',
'settings_defaults_hint' => 'Diese Werte werden als Vorgabe im Voucher-Formular verwendet.',
'settings_cron_what' => 'Was macht der Cron-Job?',
'settings_smtp_from_name' => 'Absender Name',
'settings_tpl_voucher_mail' => 'Voucher E-Mail',
'settings_tpl_user_notify' => 'Benutzer-Benachrichtigung',
'settings_editor_hint' => 'Der Editor (TinyMCE, GPL-Variante) wird lokal aus',
'settings_editor_hint2' => 'geladen es werden keine externen Dienste aufgerufen.',
'settings_print_template' => 'HTML Template für Voucher-Druck',
'settings_leave_empty' => 'Leer = nicht ändern',
'sites_id_hint' => 'Zu finden in der UniFi Controller URL',
'sites_pw_unchanged' => 'Leer lassen = nicht ändern',
'templates_minutes_hint' => '480 = 8 Stunden',
'templates_desc_placeholder' => 'Kurze Beschreibung für Ihr Team',
'audit_all_users' => 'Alle Benutzer',
'label_expires_at' => 'Gültig bis:',
'label_site_colon' => 'Standort:',
'audit_action_voucher_created' => 'Voucher erstellt',
'audit_action_voucher_bulk' => 'Bulk Voucher',
'audit_action_user_login' => 'Login',
'audit_action_user_logout' => 'Logout',
'audit_action_user_created' => 'Benutzer erstellt',
'audit_action_user_updated' => 'Benutzer geändert',
'audit_action_user_deleted' => 'Benutzer gelöscht',
'audit_action_site_added' => 'Site hinzugefügt',
'audit_action_site_updated' => 'Site geändert',
'audit_action_site_deleted' => 'Site gelöscht',
'audit_action_settings_saved' => 'Einstellungen gespeichert',
'audit_action_password_reset' => 'Passwort-Reset',
'audit_action_template_created' => 'Profil erstellt',
'audit_action_template_updated' => 'Profil geändert',
'audit_action_template_deleted' => 'Profil gelöscht',
'audit_page_info' => 'Seite {page} von {pages} ({total} Einträge)',
'a11y_skip' => 'Zum Inhalt springen',
'a11y_theme' => 'Darstellung umschalten (hell/dunkel)',
'a11y_menu' => 'Navigation öffnen',
'a11y_language' => 'Sprache',
'a11y_notifications' => 'Benachrichtigungen',
'audit_system_anon' => 'System/Anonym',
'vouchers_resend' => 'Per E-Mail senden',
'label_minutes_short' => 'Min.',
'js_copy' => 'Kopieren',
'settings_placeholders' => 'Platzhalter:',
'settings_card_hint' => '{VOUCHER_CARD} rendert den Code als hervorgehobene Karte im Marken-Layout.',
'settings_qr_hint' => '{QR_CODE} fügt einen QR-Code mit dem Voucher-Code ein.',
'print_valid_until' => 'Gültig bis',
'print_devices' => 'Geräte',
'credit_by' => 'Entwickelt von',
'kiosk_default_headline' => 'Kostenloses Gäste-WLAN',
'kiosk_default_subline' => 'Tippen Sie auf den Knopf Sie erhalten sofort einen persönlichen Zugangscode.',
'kiosk_button' => 'Zugangscode holen',
'kiosk_working' => 'Einen Moment …',
'kiosk_ready' => 'Ihr Zugangscode',
'kiosk_scan_code' => 'QR-Code scannen oder Code eintippen',
'kiosk_reset_in' => 'Der Bildschirm wird in {seconds} Sekunden zurückgesetzt.',
'kiosk_done' => 'Fertig',
'kiosk_phone_hint' => 'Oder mit dem Handy scannen und dort öffnen',
'kiosk_error_cooldown' => 'Gerade wurde ein Code ausgegeben. Bitte {seconds} Sekunden warten.',
'kiosk_error_limit' => 'Für heute sind keine Zugänge mehr verfügbar. Bitte wenden Sie sich an den Empfang.',
'kiosk_error_generic' => 'Der Zugang konnte gerade nicht erstellt werden. Bitte erneut versuchen.',
'kiosk_unknown' => 'Diese Seite ist nicht verfügbar',
'kiosk_unknown_hint' => 'Der Link ist ungültig oder wurde deaktiviert.',
'audit_action_voucher_kiosk' => 'Voucher am Display geholt',
'nav_kiosks' => 'Display-Seiten',
'kiosks_title' => 'Display-Seiten',
'kiosks_subtitle' => 'Öffentliche Seiten für Bildschirme und Tablets Gäste holen sich den Zugang selbst.',
'kiosks_add' => 'Display-Seite anlegen',
'kiosks_edit' => 'Display-Seite bearbeiten',
'kiosks_empty' => 'Noch keine Display-Seite angelegt.',
'kiosks_no_sites' => 'Legen Sie zuerst eine Site an, dann können Sie dafür eine Display-Seite erstellen.',
'kiosks_name' => 'Bezeichnung',
'kiosks_name_placeholder' => 'z.B. Empfang Erdgeschoss',
'kiosks_name_hint' => 'Erscheint im Audit-Log und als Voucher-Name.',
'kiosks_template' => 'Voucher-Profil',
'kiosks_no_template' => 'Standardwerte verwenden',
'kiosks_template_hint' => 'Bestimmt Laufzeit, Geräteanzahl und Bandbreite der ausgegebenen Codes.',
'kiosks_headline' => 'Überschrift auf dem Bildschirm',
'kiosks_subline' => 'Text darunter',
'kiosks_daily_limit' => 'Codes pro Tag',
'kiosks_daily_limit_hint' => '0 = unbegrenzt. Schützt vor Missbrauch, wenn der Link weitergegeben wird.',
'kiosks_cooldown' => 'Wartezeit (Sekunden)',
'kiosks_cooldown_hint' => 'Abstand zwischen zwei Codes an diesem Display.',
'kiosks_display' => 'Anzeigedauer (Sekunden)',
'kiosks_display_hint' => 'Danach springt der Bildschirm zurück auf den Startbildschirm.',
'kiosks_active' => 'Display-Seite aktiv',
'kiosks_link' => 'Öffentlicher Link',
'kiosks_open' => 'Öffnen',
'kiosks_qr' => 'QR-Code',
'kiosks_qr_hint' => 'Am Bildschirm aufhängen oder abfotografieren, um die Seite auf einem Tablet zu öffnen.',
'kiosks_today' => 'heute',
'kiosks_total' => 'insgesamt',
'kiosks_renew' => 'Link erneuern',
'kiosks_renew_confirm' => 'Neuen Link erzeugen? Der bisherige Link funktioniert danach nicht mehr.',
'kiosks_delete_confirm' => 'Display-Seite wirklich löschen?',
'kiosks_added' => 'Display-Seite angelegt.',
'kiosks_updated' => 'Display-Seite gespeichert.',
'kiosks_deleted' => 'Display-Seite gelöscht.',
'kiosks_token_renewed' => 'Neuer Link erzeugt der alte ist ab sofort ungültig.',
'audit_action_kiosk_created' => 'Display-Seite angelegt',
'audit_action_kiosk_updated' => 'Display-Seite geändert',
'audit_action_kiosk_deleted' => 'Display-Seite gelöscht',
'kiosks_appearance' => 'Erscheinungsbild',
'kiosks_logo' => 'Logo',
'kiosks_logo_hint' => 'Leer = allgemeines Logo aus den Einstellungen.',
'kiosks_background' => 'Hintergrundbild',
'kiosks_background_hint' => 'Formatfüllend hinter der Karte z.B. ein Foto des Hauses.',
'kiosks_overlay' => 'Abdunklung des Bildes (%)',
'kiosks_overlay_hint' => '090 %. Höhere Werte machen die Karte auf hellen Bildern lesbarer.',
'kiosks_accent' => 'Akzentfarbe',
'kiosks_accent_default' => 'Standardfarbe verwenden',
'kiosks_accent_hint' => 'Färbt den Knopf auf dieser Seite. Leer = Farbe aus dem Design-Tab.',
'kiosks_card_style' => 'Karte',
'kiosks_card_light' => 'Hell',
'kiosks_card_dark' => 'Dunkel',
'kiosks_card_hint' => 'Auf Fotos wirkt die dunkle Karte meist ruhiger.',
'settings_tab_general' => 'Allgemein',
'settings_tab_defaults' => 'Voucher-Standards',
'settings_tab_cron' => 'Cron-Sync',
'settings_tab_m365' => 'Microsoft 365',
'settings_tab_smtp' => 'SMTP',
'settings_tab_templates_email' => 'Templates',
'settings_tab_system' => 'System',
'settings_tab_password' => 'Passwort',
'settings_saved' => 'Einstellungen erfolgreich gespeichert!',
'settings_app_title' => 'Anwendungs-Titel *',
'settings_logo_url' => 'Logo',
'settings_favicon_url' => 'Favicon',
'settings_favicon_hint' => 'Icon im Browser-Tab (.ico, .png, .svg)',
'settings_instr_header' => 'Anleitung - Überschrift',
'settings_instr_text' => 'Anleitung - Text',
'settings_public_access'=> 'Öffentlicher Zugriff',
'settings_default_expire' => 'Standard-Gültigkeit (Minuten)',
'settings_default_expire_hint'=> 'Standard-Ablaufzeit für neue Vouchers (480 = 8 Stunden)',
'settings_default_devices' => 'Standard-Geräteanzahl',
'settings_default_devices_hint'=> 'Vorausgefüllter Wert im Voucher-Formular',
'settings_max_devices' => 'Maximale Geräteanzahl',
'settings_max_devices_hint' => 'Maximaler Wert, den ein Benutzer auswählen kann',
'settings_pw_current' => 'Aktuelles Passwort',
'settings_pw_new' => 'Neues Passwort',
'settings_pw_confirm' => 'Passwort bestätigen',
'settings_pw_changed' => 'Passwort erfolgreich geändert!',
'settings_pw_minlength' => 'Mindestens 8 Zeichen',
// Login / Auth
'login_title' => 'Anmelden',
'auth_claim_title' => 'WLAN-Gastzugänge, zentral verwaltet.',
'auth_claim_text' => 'Vouchers für alle UniFi-Sites erstellen, versenden und auswerten aus einer Oberfläche.',
'auth_feature_1' => 'Voucher per E-Mail, SMS oder QR-Code',
'auth_feature_2' => 'Rollen, 2FA und vollständiges Audit-Log',
'auth_feature_3' => 'Live-Statistiken je Site und Benutzer',
'login_subtitle' => 'Melden Sie sich an, um fortzufahren',
'login_email' => 'E-Mail',
'login_password' => 'Passwort',
'login_btn' => 'Anmelden',
'login_ms' => 'Mit Microsoft anmelden',
'login_local' => 'Mit Benutzername und Passwort anmelden',
'login_back' => 'Zurück zur Code-Erstellung',
'login_forgot' => 'Passwort vergessen?',
'login_error_empty' => 'Bitte E-Mail und Passwort eingeben',
'login_error_rate' => 'Zu viele Fehlversuche. Bitte warten Sie 10 Minuten.',
'login_error_creds' => 'Ungültige E-Mail oder Passwort',
// Password Reset
'reset_title' => 'Passwort vergessen',
'reset_subtitle' => 'Geben Sie Ihre E-Mail ein wir senden Ihnen einen Reset-Link.',
'reset_email_label' => 'E-Mail-Adresse',
'reset_send_btn' => 'Reset-Link senden',
'reset_success' => 'Falls ein Konto mit dieser E-Mail existiert, erhalten Sie in Kürze eine E-Mail.',
'reset_back_login' => 'Zurück zum Login',
'reset_new_pw' => 'Neues Passwort festlegen',
'reset_new_pw_label'=> 'Neues Passwort',
'reset_confirm_label'=> 'Passwort bestätigen',
'reset_set_btn' => 'Passwort festlegen',
'reset_invalid' => 'Ungültiger oder abgelaufener Reset-Link.',
'reset_done' => 'Ihr Passwort wurde erfolgreich geändert.',
// Errors
'error_csrf' => 'Ungültiges Sicherheits-Token',
'error_login_req' => 'Sie müssen angemeldet sein',
'error_no_permission'=> 'Keine Berechtigung für diese Aktion',
'error_not_found' => 'Nicht gefunden',
'error_name_req' => 'Bitte geben Sie einen Namen ein',
'error_site_req' => 'Bitte wählen Sie einen Standort',
'error_devices_range'=> 'Anzahl der Geräte muss zwischen 1 und {max} liegen',
'error_email_invalid'=> 'Ungültige E-Mail-Adresse',
'error_site_no_perm'=> 'Keine Berechtigung für diese Site',
'error_site_not_found'=> 'Site nicht gefunden',
'error_voucher_invalid'=> 'UniFi hat keinen gültigen Voucher zurückgegeben',
'error_connection' => 'Verbindung zum UniFi Controller fehlgeschlagen',
'error_fill_all' => 'Bitte füllen Sie alle Pflichtfelder aus',
// Hello / User
'hello' => 'Hallo, {name}',
'minutes_short' => 'Min.',
'hours_short' => 'Std.',
'never' => 'Noch nie',
'unknown' => 'Unbekannt',
'or' => 'oder',
];