Englische Übersetzungen für die restlichen Admin-Seiten
API-Schlüssel, Integration & Wartung, Voucher-Import, Backup & Restore, Reporting, Sicherheit (2FA) und Audit-Log waren fest auf Deutsch verdrahtet, obwohl in der Kopfzeile ein DE/EN-Umschalter sitzt. Diese Seiten laufen jetzt komplett über lang/de.php bzw. lang/en.php. - rund 200 neue Sprachschlüssel, beide Dateien deckungsgleich - Aktionsnamen im Audit-Log werden übersetzt statt fest ausgegeben - Bestätigungsdialoge und Statusmeldungen in JavaScript ebenfalls - admin/security.php initialisiert jetzt I18n und setzt <html lang> passend zur Auswahl Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
30d0ce3a23
commit
850a04d628
16 changed files with 580 additions and 196 deletions
194
lang/de.php
194
lang/de.php
|
|
@ -261,6 +261,200 @@ return [
|
|||
'settings_login_overlay' => 'Abdunklung des Bildes (%)',
|
||||
'settings_login_overlay_hint' => '0–90 %. 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)',
|
||||
'settings_tab_general' => 'Allgemein',
|
||||
'settings_tab_defaults' => 'Voucher-Standards',
|
||||
'settings_tab_cron' => 'Cron-Sync',
|
||||
|
|
|
|||
194
lang/en.php
194
lang/en.php
|
|
@ -261,6 +261,200 @@ return [
|
|||
'settings_login_overlay' => 'Image dimming (%)',
|
||||
'settings_login_overlay_hint' => '0–90%. Higher values keep text readable on bright images.',
|
||||
'settings_login_preview' => 'Open preview',
|
||||
'api_title' => 'API keys',
|
||||
'api_subtitle' => 'Access for external systems – with scope and rate limit.',
|
||||
'api_new_key' => 'New key',
|
||||
'api_new_key_hint' => 'Copy it now – for security reasons it will not be shown again.',
|
||||
'api_create_title' => 'Create a new API key',
|
||||
'api_label_name' => 'Label',
|
||||
'api_name_placeholder' => 'e.g. booking system, lobby terminal',
|
||||
'api_label_scope' => 'Permission',
|
||||
'api_scope_write' => 'Read + create',
|
||||
'api_scope_read' => 'Read only',
|
||||
'api_scope_write_short' => 'Read+create',
|
||||
'api_scope_read_short' => 'read only',
|
||||
'api_label_limit' => 'Limit (req./min)',
|
||||
'api_limit_title' => '0 = unlimited',
|
||||
'api_existing' => 'Existing keys',
|
||||
'api_none' => 'No API keys created yet.',
|
||||
'api_col_prefix' => 'Prefix',
|
||||
'api_col_scope' => 'Scope',
|
||||
'api_col_limit' => 'Limit',
|
||||
'api_col_last_used' => 'Last used',
|
||||
'api_col_created_by' => 'Created by',
|
||||
'api_state_active' => 'active',
|
||||
'api_state_blocked' => 'blocked',
|
||||
'api_action_block' => 'Block',
|
||||
'api_action_unblock' => 'Activate',
|
||||
'api_delete_confirm' => 'Delete key?',
|
||||
'api_usage' => 'Usage',
|
||||
'api_usage_hint' => 'Authenticate using header',
|
||||
'api_openapi' => 'OpenAPI specification (import into Postman/Swagger):',
|
||||
'api_created' => 'API key created.',
|
||||
'api_deleted' => 'API key deleted.',
|
||||
'api_toggled' => 'Status changed.',
|
||||
'api_name_required' => 'Please enter a label.',
|
||||
'api_created_once' => 'API key created. Copy it NOW – it is shown only once!',
|
||||
'api_status_updated' => 'Status updated.',
|
||||
'int_title' => 'Integration & maintenance',
|
||||
'int_subtitle' => 'SSO, webhooks, SMS delivery and retention periods.',
|
||||
'int_security' => 'Security policy',
|
||||
'int_security_hint' => 'Enforces two-factor authentication for all administrator accounts (local accounts). Admins without 2FA are sent to the setup on their next action.',
|
||||
'int_enforce_2fa' => 'Two-factor authentication mandatory for administrators',
|
||||
'int_daily_limit' => 'Daily voucher limit per non-admin user (0 = unlimited)',
|
||||
'int_session_driver' => 'Session storage',
|
||||
'int_session_php' => 'PHP default (files)',
|
||||
'int_session_db' => 'Database (enables "sign out everywhere")',
|
||||
'int_captcha' => 'Captcha in public mode',
|
||||
'int_captcha_off' => 'Off',
|
||||
'int_captcha_math' => 'Arithmetic question (no external service)',
|
||||
'int_secret_set' => ' (set)',
|
||||
'int_secret_placeholder' => '••••••• (empty = unchanged)',
|
||||
'int_proxy' => 'Reverse proxy',
|
||||
'int_proxy_hint' => 'IP addresses of trusted proxies (comma separated). Only then is the real client IP taken from',
|
||||
'int_proxy_hint2' => 'for rate limiting and the audit log.',
|
||||
'int_webhook' => 'Webhook notifications',
|
||||
'int_webhook_hint' => 'Slack, Microsoft Teams or generic JSON webhook URL. Triggered when a voucher is created.',
|
||||
'int_webhook_active' => 'Webhook active',
|
||||
'int_webhook_url' => 'Webhook URL',
|
||||
'int_webhook_test' => 'Send test',
|
||||
'int_sms' => 'SMS delivery (Twilio)',
|
||||
'int_sms_hint' => 'Optionally send voucher codes by SMS. Requires a Twilio account.',
|
||||
'int_sms_active' => 'SMS delivery active',
|
||||
'int_sms_from' => 'Sender (from)',
|
||||
'int_sso' => 'Single sign-on (OpenID Connect)',
|
||||
'int_sso_hint' => 'Generic OIDC provider (e.g. Keycloak, Authentik, Google, Auth0). Redirect URI:',
|
||||
'int_sso_active' => 'OIDC login active',
|
||||
'int_sso_button' => 'Button label',
|
||||
'int_cleanup' => 'Data retention & cleanup (GDPR)',
|
||||
'int_cleanup_hint' => 'Retention periods in days (0 = disabled). Executed via',
|
||||
'int_cleanup_hint2' => '(daily recommended).',
|
||||
'int_cleanup_last' => 'Last run:',
|
||||
'int_cleanup_expired' => 'Expired vouchers',
|
||||
'int_cleanup_audit' => 'Audit log',
|
||||
'int_cleanup_logins' => 'Login attempts',
|
||||
'int_saved' => 'Settings saved.',
|
||||
'int_webhook_sent' => 'Test webhook sent.',
|
||||
'int_webhook_failed' => 'Test webhook failed.',
|
||||
'int_webhook_test_sent' => 'Test notification sent (provided the webhook is active and the URL valid).',
|
||||
'sec_token_invalid' => 'Invalid security token',
|
||||
'sec_setup_expired' => 'Setup expired, please start again.',
|
||||
'sec_code_invalid' => 'Invalid code. Please try again.',
|
||||
'sec_enabled' => 'Two-factor authentication is now active. Please store the recovery codes safely!',
|
||||
'sec_sessions_closed' => 'All other sessions have been signed out.',
|
||||
'sec_codes_new' => 'New recovery codes generated. The previous ones are now invalid.',
|
||||
'sec_disabled' => 'Two-factor authentication has been disabled.',
|
||||
'backup_choose_file' => 'Please choose a backup file.',
|
||||
'backup_invalid_file' => 'Invalid or foreign backup file.',
|
||||
'sec_title' => 'Two-factor authentication',
|
||||
'sec_account' => 'Account:',
|
||||
'sec_required_hint' => 'For security reasons two-factor authentication is mandatory for administrators. Please set it up now.',
|
||||
'sec_recovery_codes' => 'Recovery codes',
|
||||
'sec_recovery_hint' => 'Keep them somewhere safe. Each code works once if you lose access to your app.',
|
||||
'sec_unavailable' => 'Not available',
|
||||
'sec_m365_hint' => 'Your account signs in via Microsoft 365. Two-factor authentication is managed in your Microsoft account.',
|
||||
'sec_active' => 'Active',
|
||||
'sec_inactive' => 'Inactive',
|
||||
'sec_active_hint' => 'Every sign-in additionally asks for a code from your authenticator app.',
|
||||
'sec_codes_left' => 'Remaining recovery codes:',
|
||||
'sec_regen_codes' => 'Generate new recovery codes',
|
||||
'sec_disable_confirm' => 'Really disable two-factor authentication?',
|
||||
'sec_disable' => 'Disable two-factor authentication',
|
||||
'sec_step_1' => 'Open your authenticator app (Google Authenticator, Authy, Microsoft Authenticator …)',
|
||||
'sec_step_2' => 'Scan the QR code or enter the secret manually',
|
||||
'sec_step_3' => 'Enter the six-digit code shown below',
|
||||
'sec_code_label' => 'Six-digit code',
|
||||
'sec_enable' => 'Enable two-factor authentication',
|
||||
'sec_sessions' => 'Active sessions:',
|
||||
'sec_logout_others_confirm' => 'Sign out all other sessions?',
|
||||
'sec_logout_others' => 'Sign out on all other devices',
|
||||
'import_title' => 'Voucher import',
|
||||
'import_subtitle' => 'Create several vouchers at once from a CSV list.',
|
||||
'import_card_title' => 'Create several vouchers',
|
||||
'import_format_hint' => 'One line per voucher:',
|
||||
'import_format_hint2' => '– max. devices and minutes are optional (defaults apply). 200 lines maximum. Example:',
|
||||
'import_site' => 'Site',
|
||||
'import_file' => 'CSV file (optional)',
|
||||
'import_paste' => '… or paste directly',
|
||||
'import_confirm' => 'Start the import now?',
|
||||
'import_submit' => 'Import',
|
||||
'import_result' => 'Result',
|
||||
'import_col_code' => 'Code / error',
|
||||
'import_created' => '{count} vouchers created.',
|
||||
'backup_title' => 'Backup & restore',
|
||||
'backup_subtitle' => 'Back up or restore configuration and data.',
|
||||
'backup_export' => 'Export',
|
||||
'backup_export_hint' => 'Downloads settings, sites and voucher profiles as JSON. Site passwords stay encrypted with the',
|
||||
'backup_export_hint2' => 'of this installation – a restore on an installation with a different APP_KEY cannot decrypt them.',
|
||||
'backup_export_btn' => 'Export configuration',
|
||||
'backup_import' => 'Import / restore',
|
||||
'backup_import_hint' => 'Existing sites are matched by name + site ID and updated, new ones are added. Profiles are only created if the name does not exist yet. The cron token is never overwritten.',
|
||||
'backup_opt_settings' => 'Settings',
|
||||
'backup_opt_sites' => 'Sites',
|
||||
'backup_opt_templates' => 'Voucher profiles',
|
||||
'backup_import_confirm' => 'Run the import now?',
|
||||
'backup_imported' => 'Import finished: {settings} settings, {sites} sites, {templates} profiles.',
|
||||
'rep_title' => 'Reporting',
|
||||
'rep_subtitle' => 'Analytics by period, site and user.',
|
||||
'rep_period' => 'Period',
|
||||
'rep_days' => 'days',
|
||||
'rep_csv_daily' => 'CSV (daily)',
|
||||
'rep_csv_site' => 'CSV (per site)',
|
||||
'rep_csv_user' => 'CSV (per user)',
|
||||
'rep_print' => 'Print / PDF',
|
||||
'rep_total' => 'Vouchers total',
|
||||
'rep_in_period' => 'Created in {days} days',
|
||||
'rep_chart_title' => 'Vouchers created ({days} days)',
|
||||
'rep_per_site' => 'Per site',
|
||||
'rep_top_users' => 'Top users',
|
||||
'rep_col_created' => 'Vouchers created',
|
||||
'rep_no_data' => 'No data',
|
||||
'label_total' => 'Total',
|
||||
'label_user' => 'User',
|
||||
'js_confirm_delete_voucher' => 'Really delete this voucher?',
|
||||
'js_confirm_delete_user' => 'Really delete this user?',
|
||||
'js_confirm_delete_site' => 'Do you really want to delete this site?',
|
||||
'js_confirm_delete_template' => 'Really delete this profile?',
|
||||
'js_confirm_delete_token' => 'Really delete this token?',
|
||||
'js_error' => 'Error',
|
||||
'js_enter_email' => 'Please enter an email address.',
|
||||
'js_running' => 'Running…',
|
||||
'js_run_now' => 'Run now',
|
||||
'js_copied' => 'Copied!',
|
||||
'js_code_copied' => 'Code copied!',
|
||||
'js_click_to_copy' => 'Click to copy',
|
||||
'settings_defaults_hint' => 'These values are used as defaults in the voucher form.',
|
||||
'settings_cron_what' => 'What does the cron job do?',
|
||||
'settings_smtp_from_name' => 'Sender name',
|
||||
'settings_tpl_voucher_mail' => 'Voucher email',
|
||||
'settings_tpl_user_notify' => 'User notification',
|
||||
'settings_editor_hint' => 'The editor (TinyMCE, GPL build) is served locally from',
|
||||
'settings_editor_hint2' => '– no external services are called.',
|
||||
'settings_print_template' => 'HTML template for voucher printing',
|
||||
'settings_leave_empty' => 'Empty = leave unchanged',
|
||||
'sites_id_hint' => 'Found in the UniFi controller URL',
|
||||
'sites_pw_unchanged' => 'Leave empty = unchanged',
|
||||
'templates_minutes_hint' => '480 = 8 hours',
|
||||
'templates_desc_placeholder' => 'Short description for your team',
|
||||
'audit_all_users' => 'All users',
|
||||
'label_expires_at' => 'Valid until:',
|
||||
'label_site_colon' => 'Site:',
|
||||
'audit_action_voucher_created' => 'Voucher created',
|
||||
'audit_action_voucher_bulk' => 'Bulk vouchers',
|
||||
'audit_action_user_login' => 'Login',
|
||||
'audit_action_user_logout' => 'Logout',
|
||||
'audit_action_user_created' => 'User created',
|
||||
'audit_action_user_updated' => 'User updated',
|
||||
'audit_action_user_deleted' => 'User deleted',
|
||||
'audit_action_site_added' => 'Site added',
|
||||
'audit_action_site_updated' => 'Site updated',
|
||||
'audit_action_site_deleted' => 'Site deleted',
|
||||
'audit_action_settings_saved' => 'Settings saved',
|
||||
'audit_action_password_reset' => 'Password reset',
|
||||
'audit_action_template_created' => 'Profile created',
|
||||
'audit_action_template_updated' => 'Profile updated',
|
||||
'audit_action_template_deleted' => 'Profile deleted',
|
||||
'audit_page_info' => 'Page {page} of {pages} ({total} entries)',
|
||||
'settings_tab_general' => 'General',
|
||||
'settings_tab_defaults' => 'Voucher Defaults',
|
||||
'settings_tab_cron' => 'Cron Sync',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue