Stand: SMTP-Test, Admin-Mail-Tab, Notifiable-Fix, Lazy-Quill
- Fix: Notifiable-Trait zum User-Model hinzugefuegt (behebt notify()-500er) - Installer: SMTP-Verbindungstest mit EsmtpTransport + Ueberspringen-Link - Admin: Neuer E-Mail-Tab mit SMTP-Konfiguration + Verbindungstest - Admin: Lazy Quill-Initialisierung (nur sichtbare Locale wird geladen) - Uebersetzungen: 17 neue Mail-Keys in allen 6 Sprachen Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
585
lang/de/admin.php
Executable file
585
lang/de/admin.php
Executable file
@@ -0,0 +1,585 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
// Dashboard
|
||||
'dashboard_title' => 'Admin-Dashboard',
|
||||
'stat_users' => 'Benutzer',
|
||||
'stat_players' => 'Spieler',
|
||||
'stat_upcoming' => 'Anstehende Termine',
|
||||
'stat_invitations' => 'Offene Einladungen',
|
||||
'quick_links' => 'Schnellzugriff',
|
||||
'new_event' => 'Neuer Termin',
|
||||
'new_player' => 'Neuer Spieler',
|
||||
'new_invitation' => 'Neue Einladung',
|
||||
'new_team' => 'Neues Team',
|
||||
'open_responses_title' => 'Termine mit offenen Rückmeldungen',
|
||||
'x_open' => ':count offen',
|
||||
|
||||
// Navigation
|
||||
'nav_teams' => 'Teams',
|
||||
'nav_players' => 'Spieler',
|
||||
'nav_users' => 'Benutzer',
|
||||
'nav_invitations' => 'Einladungen',
|
||||
'nav_events' => 'Events',
|
||||
'nav_settings' => 'Einstellungen',
|
||||
'nav_verwaltung' => 'Verwaltung',
|
||||
|
||||
// Allgemein
|
||||
'actions' => 'Aktionen',
|
||||
'action' => 'Aktion',
|
||||
'please_select' => 'Bitte wählen',
|
||||
'back_to_list' => 'Zurück zur Liste',
|
||||
'inactive' => 'Inaktiv',
|
||||
'nr' => 'Nr.',
|
||||
'photo' => 'Foto',
|
||||
'date' => 'Datum',
|
||||
'location' => 'Ort',
|
||||
'all_status' => 'Alle Status',
|
||||
'copied' => 'Kopiert!',
|
||||
'copy' => 'Kopieren',
|
||||
'created_by' => 'von',
|
||||
'valid_until' => 'gültig bis',
|
||||
|
||||
// Teams
|
||||
'teams_title' => 'Teams',
|
||||
'team_created' => 'Team wurde erstellt.',
|
||||
'team_updated' => 'Team wurde aktualisiert.',
|
||||
'team_name' => 'Teamname',
|
||||
'year_group' => 'Jahrgang',
|
||||
'year_group_placeholder' => 'z.B. 2017/18',
|
||||
'active' => 'Aktiv',
|
||||
'team_is_active' => 'Team ist aktiv',
|
||||
'create_team' => 'Team erstellen',
|
||||
'edit_team' => 'Team bearbeiten',
|
||||
'no_teams_yet' => 'Noch keine Teams vorhanden.',
|
||||
'team_notes' => 'Notizen',
|
||||
'team_notes_placeholder' => 'Notizen zum Team (intern, nur für Admins sichtbar)...',
|
||||
'team_coaches' => 'Trainer',
|
||||
'no_coaches_available' => 'Keine Trainer im System vorhanden.',
|
||||
'team_players' => 'Spieler',
|
||||
'team_parent_reps' => 'Elternvertretung',
|
||||
'team_parent_reps_hint' => 'Eltern mit der Rolle "Elternvertretung", die Kinder in diesem Team haben.',
|
||||
'no_parent_reps' => 'Keine Elternvertretung für dieses Team.',
|
||||
'log_team_updated' => 'Team ":name" wurde aktualisiert',
|
||||
'log_player_team_changed' => 'Spieler :name wurde in ein anderes Team verschoben',
|
||||
|
||||
// Players
|
||||
'players_title' => 'Spieler',
|
||||
'player_created' => 'Spieler wurde erstellt.',
|
||||
'player_updated' => 'Spieler wurde aktualisiert.',
|
||||
'first_name' => 'Vorname',
|
||||
'last_name' => 'Nachname',
|
||||
'birth_year' => 'Geburtsjahr',
|
||||
'jersey_number' => 'Trikotnummer',
|
||||
'photo_permission' => 'Fotoerlaubnis',
|
||||
'notes' => 'Notizen',
|
||||
'parent_assigned' => 'Elternteil wurde zugeordnet.',
|
||||
'parent_removed' => 'Zuordnung wurde entfernt.',
|
||||
'assign_parent' => 'Elternteil zuordnen',
|
||||
'add_parent' => 'Elternteil hinzufügen',
|
||||
'select_user' => 'Benutzer wählen',
|
||||
'assign' => 'Zuordnen',
|
||||
'relationship_label' => 'Beziehung',
|
||||
'relationship_placeholder' => 'z.B. Mutter, Vater',
|
||||
'parents' => 'Eltern',
|
||||
'player_data' => 'Stammdaten',
|
||||
'parent_assignment' => 'Eltern-Zuordnung',
|
||||
'no_parents_yet' => 'Noch keine Eltern zugeordnet.',
|
||||
'confirm_remove_parent' => 'Zuordnung wirklich entfernen?',
|
||||
'remove' => 'Entfernen',
|
||||
'no_players_yet' => 'Noch keine Spieler vorhanden.',
|
||||
|
||||
// Users
|
||||
'users_title' => 'Benutzer',
|
||||
'user_toggled' => 'Benutzer wurde :status.',
|
||||
'role_updated' => 'Rolle wurde aktualisiert.',
|
||||
'cannot_deactivate_self' => 'Du kannst deinen eigenen Account nicht deaktivieren.',
|
||||
'cannot_change_own_role' => 'Du kannst deine eigene Rolle nicht ändern.',
|
||||
'activated' => 'aktiviert',
|
||||
'deactivated' => 'deaktiviert',
|
||||
'deactivated_label' => 'Deaktiviert',
|
||||
'children' => 'Kinder',
|
||||
'phone' => 'Erreichbarkeit',
|
||||
'last_login' => 'Letzter Login',
|
||||
'never' => 'Nie',
|
||||
'deactivate' => 'Deaktivieren',
|
||||
'activate' => 'Aktivieren',
|
||||
'you_suffix' => '(du)',
|
||||
'edit' => 'Bearbeiten',
|
||||
'edit_user' => 'Benutzer bearbeiten',
|
||||
'user_data' => 'Benutzerdaten',
|
||||
'user_updated' => 'Benutzer wurde aktualisiert.',
|
||||
'reset_password' => 'Passwort zurücksetzen',
|
||||
'reset_password_hint' => 'Sendet dem Benutzer einen Link zum Zurücksetzen des Passworts per E-Mail.',
|
||||
'reset_password_confirm' => 'Dem Benutzer einen Passwort-Reset-Link per E-Mail senden?',
|
||||
'password_reset_success' => 'Neues Passwort wurde generiert.',
|
||||
'new_password_label' => 'Neues Passwort (einmalig sichtbar):',
|
||||
'password_only_visible_now' => 'Dieses Passwort wird nur jetzt angezeigt. Bitte weitergeben und Seite nicht neu laden.',
|
||||
'cannot_edit_own_role' => 'Du kannst deine eigene Rolle nicht hier ändern.',
|
||||
'cannot_assign_admin_role' => 'Du kannst die Admin-Rolle nicht vergeben.',
|
||||
'cannot_reset_own_password' => 'Du kannst dein eigenes Passwort nicht über den Admin-Bereich zurücksetzen.',
|
||||
'registered_at' => 'Registriert am',
|
||||
|
||||
// Invitations
|
||||
'invitations_title' => 'Einladungen',
|
||||
'invitation_created' => 'Einladung erstellt. Link: :link',
|
||||
'invitation_deleted' => 'Einladung wurde gelöscht.',
|
||||
'invitation_already_used' => 'Bereits eingelöste Einladungen können nicht gelöscht werden.',
|
||||
'create_invitation' => 'Einladung erstellen',
|
||||
'assign_players' => 'Spieler zuordnen',
|
||||
'email_optional' => 'E-Mail-Adresse (optional)',
|
||||
'email_optional_hint' => 'Wenn gesetzt, kann nur diese E-Mail sich registrieren',
|
||||
'expires_at' => 'Gültig bis',
|
||||
'valid_for_days' => 'Gültig für (Tage)',
|
||||
'token' => 'Token',
|
||||
'status' => 'Status',
|
||||
'used' => 'Eingelöst',
|
||||
'expired' => 'Abgelaufen',
|
||||
'pending' => 'Offen',
|
||||
'copy_link' => 'Link kopieren',
|
||||
'invite_link' => 'Einladungslink',
|
||||
'no_assignment' => 'Keine Zuordnung',
|
||||
'no_invitations_yet' => 'Noch keine Einladungen erstellt.',
|
||||
'no_active_players' => 'Keine aktiven Spieler vorhanden.',
|
||||
'confirm_delete_invitation' => 'Einladung wirklich löschen?',
|
||||
'created_label' => 'Erstellt',
|
||||
'player_assignment_hint' => 'Wähle die Kinder aus, die dem neuen Eltern-Account automatisch zugeordnet werden sollen.',
|
||||
|
||||
// Events
|
||||
'events_title' => 'Events',
|
||||
'event_created' => 'Event wurde erstellt.',
|
||||
'event_updated' => 'Event wurde aktualisiert.',
|
||||
'event_deleted' => 'Event wurde gelöscht.',
|
||||
'event_title' => 'Titel',
|
||||
'start_at' => 'Start',
|
||||
'date' => 'Datum',
|
||||
'time' => 'Uhrzeit',
|
||||
'end_at' => 'Ende',
|
||||
'location_name' => 'Ortsname',
|
||||
'address' => 'Adresse',
|
||||
'description' => 'Beschreibung',
|
||||
'search_address' => 'Adresse suchen...',
|
||||
'new_event_title' => 'Neues Event',
|
||||
'edit_event_title' => 'Event bearbeiten',
|
||||
'no_events_yet' => 'Noch keine Events vorhanden.',
|
||||
'confirm_delete_event' => 'Event wirklich löschen?',
|
||||
'location_address' => 'Ort / Adresse',
|
||||
'location_name_hint' => 'Ortsname (z.B. Sporthalle Nord)',
|
||||
'search_by_name' => 'Adresse suchen',
|
||||
'location_name_placeholder' => 'z.B. BVB Stadion, Sporthalle West...',
|
||||
'search_address_hint' => 'Adresse eingeben (min. 3 Zeichen)...',
|
||||
'description_placeholder' => 'Beschreibung eingeben...',
|
||||
'assignments' => 'Zuweisungen',
|
||||
'catering_assignment' => 'Catering',
|
||||
'timekeeper_assignment' => 'Zeitnehmer',
|
||||
'geocoding_error' => 'Adresssuche fehlgeschlagen. Bitte erneut versuchen.',
|
||||
'geocoding_rate_limit' => 'Zu viele Anfragen. Bitte kurz warten.',
|
||||
'geocoding_no_results' => 'Keine Adresse gefunden. Bitte genauer eingeben.',
|
||||
|
||||
// Mindestanforderungen
|
||||
'min_requirements' => 'Mindestanforderungen',
|
||||
'min_players' => 'Min. Spieler',
|
||||
'min_parents' => 'Min. Eltern',
|
||||
'min_catering' => 'Min. Catering',
|
||||
'min_timekeepers' => 'Min. Zeitnehmer',
|
||||
'event_defaults_title' => 'Standard-Mindestwerte für Events',
|
||||
'event_defaults_description' => 'Lege Standard-Mindestwerte für neue Events pro Typ fest. Admins können diese beim Erstellen überschreiben.',
|
||||
|
||||
// Orte-Verwaltung
|
||||
'nav_locations' => 'Orte',
|
||||
'locations_title' => 'Orte verwalten',
|
||||
'location_add' => 'Neuen Ort anlegen',
|
||||
'location_name_label' => 'Name',
|
||||
'location_save' => 'Speichern',
|
||||
'location_created' => 'Ort wurde angelegt.',
|
||||
'location_updated' => 'Ort wurde aktualisiert.',
|
||||
'location_deleted' => 'Ort wurde gelöscht.',
|
||||
'location_confirm_delete' => 'Ort wirklich löschen?',
|
||||
'locations_empty' => 'Noch keine Orte vorhanden.',
|
||||
'known_locations' => 'Bekannte Orte',
|
||||
'address_manual_hint' => 'Adresse manuell eingeben...',
|
||||
|
||||
// Settings
|
||||
'settings_title' => 'Einstellungen',
|
||||
'settings_saved' => 'Einstellungen gespeichert.',
|
||||
'settings_tab_general' => 'Allgemein',
|
||||
'settings_tab_legal' => 'Rechtliches',
|
||||
'settings_tab_defaults' => 'Event-Standards',
|
||||
'settings_tab_categories' => 'Dateikategorien',
|
||||
'settings_tab_maintenance' => 'Wartung',
|
||||
|
||||
// Demo-Daten löschen
|
||||
'demo_data_delete_title' => 'Beispieldaten löschen',
|
||||
'demo_data_delete_description' => 'Entferne alle Beispieldaten, die bei der Installation angelegt wurden. Die App wird auf den Zustand direkt nach der Installation zurückgesetzt.',
|
||||
'demo_data_delete_warning' => 'Achtung: Dieser Vorgang kann nicht rückgängig gemacht werden! Alle Benutzer (außer dem Administrator), Teams, Spieler, Termine, Kommentare, Dateien und Aktivitätsprotokolle werden unwiderruflich gelöscht.',
|
||||
'demo_data_delete_button' => 'Alle Beispieldaten löschen',
|
||||
'demo_data_delete_confirm' => 'Bist du sicher, dass du ALLE Beispieldaten unwiderruflich löschen möchtest?',
|
||||
'demo_data_deleted' => 'Alle Beispieldaten wurden erfolgreich gelöscht.',
|
||||
'demo_data_deletes' => 'Wird gelöscht:',
|
||||
'demo_data_keeps' => 'Bleibt erhalten:',
|
||||
'demo_data_except_admin' => 'außer Administrator',
|
||||
'demo_data_keeps_admin' => 'Dein Administrator-Konto',
|
||||
|
||||
// Dateiverwaltung
|
||||
'nav_files' => 'Dateien',
|
||||
'files_title' => 'Dateiverwaltung',
|
||||
'upload_file' => 'Datei hochladen',
|
||||
'file_uploaded' => 'Datei wurde hochgeladen.',
|
||||
'file_deleted' => 'Datei wurde gelöscht.',
|
||||
'file_category' => 'Kategorie',
|
||||
'select_category' => 'Kategorie wählen',
|
||||
'no_files_yet' => 'Noch keine Dateien in dieser Kategorie.',
|
||||
'no_files_at_all' => 'Noch keine Dateien hochgeladen.',
|
||||
'file_size' => 'Größe',
|
||||
'uploaded_by' => 'Hochgeladen von',
|
||||
'uploaded_at' => 'Hochgeladen am',
|
||||
'confirm_delete_file' => 'Datei wirklich löschen? Alle Event-Verknüpfungen werden entfernt.',
|
||||
'allowed_file_types' => 'Erlaubte Dateitypen: PDF, DOCX, XLSX, Bilder (JPG, PNG, GIF, WEBP)',
|
||||
'max_file_size' => 'Maximale Dateigröße: 10 MB',
|
||||
'file_categories' => 'Dateikategorien',
|
||||
'file_categories_description' => 'Verwalte die Kategorien für die Dateiverwaltung.',
|
||||
'new_category' => 'Neue Kategorie',
|
||||
'category_name' => 'Kategoriename',
|
||||
'category_created' => 'Kategorie wurde erstellt.',
|
||||
'category_updated' => 'Kategorie wurde aktualisiert.',
|
||||
'category_deleted' => 'Kategorie wurde gelöscht.',
|
||||
'category_not_empty' => 'Kategorie kann nicht gelöscht werden, da sie noch Dateien enthält.',
|
||||
'confirm_delete_category' => 'Kategorie wirklich löschen?',
|
||||
'event_files' => 'Dateien',
|
||||
'attach_from_library' => 'Aus Bibliothek anhängen',
|
||||
'upload_new_file' => 'Neue Datei hochladen',
|
||||
'attached_files' => 'Angehängte Dateien',
|
||||
'detach_file' => 'Entfernen',
|
||||
'no_attached_files' => 'Keine Dateien angehängt.',
|
||||
'profile_picture' => 'Profilbild',
|
||||
'upload_picture' => 'Bild hochladen',
|
||||
'remove_picture' => 'Bild entfernen',
|
||||
'picture_uploaded' => 'Profilbild wurde aktualisiert.',
|
||||
'picture_removed' => 'Profilbild wurde entfernt.',
|
||||
'max_picture_size' => 'Max. 2 MB (JPG, PNG, GIF, WEBP)',
|
||||
'html_anchor_hint' => 'Tipp: Sprungmarken setzen mit id-Attribut, z. B. <h3 id="cookies">',
|
||||
|
||||
// Soft-Delete
|
||||
'danger_zone' => 'Gefahrenzone',
|
||||
'delete_user' => 'Benutzer löschen',
|
||||
'delete_user_hint' => 'Der Benutzer wird deaktiviert und kann 7 Tage lang wiederhergestellt werden. Historische Daten (Kommentare, Teilnahmen) bleiben erhalten.',
|
||||
'delete_player' => 'Spieler löschen',
|
||||
'delete_player_hint' => 'Der Spieler wird entfernt und kann 7 Tage lang wiederhergestellt werden. Historische Daten (Teilnahmen, Events) bleiben erhalten.',
|
||||
'user_status_label' => 'Benutzerstatus',
|
||||
'player_status_label' => 'Spielerstatus',
|
||||
'deactivate_user_hint' => 'Der Benutzer kann sich nicht mehr einloggen.',
|
||||
'activate_user_hint' => 'Der Benutzer kann sich wieder einloggen.',
|
||||
'deactivate_player_hint' => 'Der Spieler wird nicht mehr in Terminlisten angezeigt.',
|
||||
'activate_player_hint' => 'Der Spieler wird wieder in Terminlisten angezeigt.',
|
||||
'player_toggled' => 'Spieler :status.',
|
||||
'log_player_toggled' => 'Spieler :name :status',
|
||||
'confirm_delete_user' => 'Möchtest du diesen Benutzer wirklich löschen? Er kann 7 Tage lang wiederhergestellt werden.',
|
||||
'confirm_delete_player' => 'Möchtest du diesen Spieler wirklich löschen? Er kann 7 Tage lang wiederhergestellt werden.',
|
||||
'user_deleted' => 'Benutzer wurde gelöscht.',
|
||||
'user_restored' => 'Benutzer wurde wiederhergestellt.',
|
||||
'player_deleted' => 'Spieler wurde gelöscht.',
|
||||
'player_restored' => 'Spieler wurde wiederhergestellt.',
|
||||
'cannot_delete_self' => 'Du kannst dich nicht selbst löschen.',
|
||||
'cannot_delete_main_admin' => 'Der Haupt-Admin kann nicht gelöscht werden.',
|
||||
'restore_expired' => 'Die Wiederherstellungsfrist ist abgelaufen.',
|
||||
'trash' => 'Papierkorb',
|
||||
'restore' => 'Wiederherstellen',
|
||||
'delete' => 'Löschen',
|
||||
'deleted_at' => 'Gelöscht am',
|
||||
|
||||
// Activity Log
|
||||
'activity_log_title' => 'Aktivitätslog',
|
||||
'nav_activity_log' => 'Aktivitätslog',
|
||||
'log_category' => 'Kategorie',
|
||||
'log_all_categories' => 'Alle Kategorien',
|
||||
'log_cat_auth' => 'Authentifizierung',
|
||||
'log_cat_users' => 'Benutzer',
|
||||
'log_cat_players' => 'Spieler',
|
||||
'log_cat_events' => 'Termine',
|
||||
'log_cat_files' => 'Dateien',
|
||||
'log_cat_settings' => 'Einstellungen',
|
||||
'log_cat_dsgvo' => 'DSGVO',
|
||||
'log_from' => 'Von',
|
||||
'log_to' => 'Bis',
|
||||
'log_filter' => 'Filtern',
|
||||
'log_reset' => 'Zurücksetzen',
|
||||
'log_time' => 'Zeitpunkt',
|
||||
'log_user' => 'Benutzer',
|
||||
'log_action' => 'Aktion',
|
||||
'log_description' => 'Beschreibung',
|
||||
'log_ip' => 'IP-Adresse',
|
||||
'log_system' => 'System',
|
||||
'log_empty' => 'Keine Einträge vorhanden.',
|
||||
'log_details' => 'Details',
|
||||
'log_field' => 'Feld',
|
||||
'log_old_value' => 'Vorher',
|
||||
'log_new_value' => 'Nachher',
|
||||
|
||||
// Log descriptions
|
||||
'log_login' => ':name hat sich angemeldet',
|
||||
'log_logout' => ':name hat sich abgemeldet',
|
||||
'log_login_failed' => 'Fehlgeschlagener Login-Versuch für :email',
|
||||
'log_registered' => ':name hat sich registriert',
|
||||
'log_user_updated' => 'Benutzer :name wurde aktualisiert',
|
||||
'log_user_toggled' => 'Benutzer :name: Status geändert auf :status',
|
||||
'log_role_changed' => 'Rolle von :name geändert auf :role',
|
||||
'log_password_reset' => 'Passwort von :name wurde zurückgesetzt',
|
||||
'log_user_deleted' => 'Benutzer :name wurde gelöscht',
|
||||
'log_user_restored' => 'Benutzer :name wurde wiederhergestellt',
|
||||
'log_player_created' => 'Spieler :name wurde erstellt',
|
||||
'log_player_updated' => 'Spieler :name wurde aktualisiert',
|
||||
'log_player_deleted' => 'Spieler :name wurde gelöscht',
|
||||
'log_player_restored' => 'Spieler :name wurde wiederhergestellt',
|
||||
'log_parent_assigned' => ':parent wurde :player als Elternteil zugeordnet',
|
||||
'log_parent_removed' => ':parent wurde als Elternteil von :player entfernt',
|
||||
'log_event_created' => 'Termin ":title" wurde erstellt',
|
||||
'log_event_updated' => 'Termin ":title" wurde aktualisiert',
|
||||
'log_event_deleted' => 'Termin ":title" wurde gelöscht',
|
||||
'log_participant_changed' => 'Teilnahme-Status für ":event" geändert auf :status',
|
||||
'log_catering_changed' => 'Catering-Status für ":event" geändert auf :status',
|
||||
'log_timekeeper_changed' => 'Zeitnehmer-Status für ":event" geändert auf :status',
|
||||
'log_comment_created' => 'Kommentar zu ":event" hinzugefügt',
|
||||
'log_comment_deleted' => 'Kommentar zu ":event" gelöscht',
|
||||
'log_file_uploaded' => 'Datei ":name" hochgeladen',
|
||||
'log_file_deleted' => 'Datei ":name" gelöscht',
|
||||
'log_settings_updated' => 'Einstellungen wurden aktualisiert',
|
||||
'log_invitation_created' => 'Einladung erstellt für :email',
|
||||
|
||||
// Statistik
|
||||
'nav_statistics' => 'Statistik',
|
||||
'statistics_title' => 'Spiel-Statistik',
|
||||
'total_games' => 'Spiele gesamt',
|
||||
'wins' => 'Siege',
|
||||
'losses' => 'Niederlagen',
|
||||
'draws' => 'Unentschieden',
|
||||
'win_rate' => 'Siegquote',
|
||||
'chart_win_loss' => 'Siege / Niederlagen',
|
||||
'chart_player_participation' => 'Spieler-Teilnahme',
|
||||
'chart_parent_involvement' => 'Eltern-Engagement',
|
||||
'no_games_yet' => 'Noch keine Spiele vorhanden.',
|
||||
'filter_from' => 'Von',
|
||||
'filter_to' => 'Bis',
|
||||
'filter_apply' => 'Filtern',
|
||||
'filter_reset' => 'Zurücksetzen',
|
||||
'all_teams' => 'Alle Teams',
|
||||
'not_applicable' => 'N/A',
|
||||
'min_users' => 'Min. Benutzer',
|
||||
'home_short' => 'H',
|
||||
'away_short' => 'A',
|
||||
'player_ranking_title' => 'Spieler-Teilnahme',
|
||||
'player_ranking_desc' => 'Teilnahmequote der Spieler an :count Spielen (Heim- und Auswärtsspiele).',
|
||||
'games_played' => 'Gespielt',
|
||||
'games_assigned' => 'Aufgestellt',
|
||||
'participation_rate' => 'Quote',
|
||||
'parent_ranking_title' => 'Eltern-Engagement',
|
||||
'parent_ranking_desc' => 'Catering (:catering Events) und Zeitnehmer (:timekeeper Events) — alle publizierten Termine.',
|
||||
'total_contributions' => 'Gesamt',
|
||||
|
||||
// Statistik-Sichtbarkeit
|
||||
'statistics_enabled_label' => 'Statistik-Seite aktivieren',
|
||||
'statistics_enabled_hint' => 'Wenn deaktiviert, ist die Statistik-Seite nur für den Administrator sichtbar.',
|
||||
|
||||
// Slogan & Favicon
|
||||
'slogan_label' => 'Slogan',
|
||||
'slogan_hint' => 'Wird auf der Login-Seite und im Footer angezeigt.',
|
||||
'favicon_label' => 'Favicon',
|
||||
'favicon_hint' => 'ICO, PNG, SVG, JPG (max. 512 KB)',
|
||||
'favicon_current' => 'Aktuelles Favicon',
|
||||
'favicon_remove' => 'Favicon entfernen',
|
||||
'favicon_uploaded' => 'Favicon wurde aktualisiert.',
|
||||
'favicon_removed' => 'Favicon wurde entfernt.',
|
||||
|
||||
// Undo / Revert
|
||||
'log_revert' => 'Rückgängig',
|
||||
'log_revert_confirm' => 'Möchtest du diese Aktion wirklich rückgängig machen?',
|
||||
'log_revert_success' => 'Aktion wurde erfolgreich rückgängig gemacht.',
|
||||
'log_revert_not_possible' => 'Diese Aktion kann nicht rückgängig gemacht werden.',
|
||||
'log_reverted' => 'Rückgängig gemacht: ":desc"',
|
||||
'event_restored' => 'Event wurde wiederhergestellt.',
|
||||
'log_event_restored' => 'Event ":title" wurde wiederhergestellt',
|
||||
|
||||
// Sichtbarkeit
|
||||
'settings_tab_visibility' => 'Sichtbarkeit',
|
||||
'visibility_description' => 'Steuere, welche Funktionen für welche Rollen sichtbar sind. Administratoren sehen immer alles.',
|
||||
'visibility_feature_statistics' => 'Statistik-Seite',
|
||||
'visibility_feature_catering_history' => 'Catering/Zeitnehmer-Verlauf',
|
||||
|
||||
// Listenerstellung
|
||||
'nav_list_generator' => 'Listenerstellung',
|
||||
'list_generator_title' => 'Liste erstellen',
|
||||
'list_title' => 'Betreff',
|
||||
'list_subtitle' => 'Untertitel (optional)',
|
||||
'list_notes' => 'Notizen / Beschreibung',
|
||||
'list_source' => 'Zeilen-Quelle',
|
||||
'list_source_players' => 'Spieler',
|
||||
'list_source_parents' => 'Eltern',
|
||||
'list_source_freetext' => 'Freitext',
|
||||
'list_freetext_hint' => 'Eine Zeile pro Eintrag',
|
||||
'list_columns' => 'Spalten',
|
||||
'list_custom_columns' => 'Zusätzliche Spalten',
|
||||
'list_add_column' => 'Spalte hinzufügen',
|
||||
'list_column_name' => 'Spaltenname',
|
||||
'list_generate' => 'Liste erstellen',
|
||||
'list_result_title' => 'Liste erstellt',
|
||||
'list_print' => 'Drucken / Als PDF speichern',
|
||||
'list_new' => 'Neue Liste erstellen',
|
||||
'list_to_library' => 'Zur Datei-Bibliothek',
|
||||
'list_generated_at' => 'Erstellt am',
|
||||
'list_all_teams' => 'Alle Teams',
|
||||
'list_saved_info' => 'Datei ":name" wurde automatisch in der Bibliothek unter "Allgemein" gespeichert.',
|
||||
'list_download_pdf' => 'PDF herunterladen',
|
||||
'list_entries_count' => 'Einträge',
|
||||
'log_list_generated' => 'Liste ":title" wurde erstellt',
|
||||
'no_entries' => 'Keine Einträge vorhanden.',
|
||||
|
||||
// DSGVO
|
||||
'dsgvo_title' => 'DSGVO-Einverständniserklärung',
|
||||
'dsgvo_short' => 'DSGVO',
|
||||
'dsgvo_consent_label' => 'Einverständniserklärung bestätigt',
|
||||
'dsgvo_view_document' => 'Dokument ansehen',
|
||||
'dsgvo_confirm' => 'Bestätigen',
|
||||
'dsgvo_revoke' => 'Widerrufen',
|
||||
'dsgvo_toggled' => 'DSGVO-Status wurde aktualisiert.',
|
||||
'dsgvo_no_file' => 'Es wurde noch kein Dokument hochgeladen.',
|
||||
'dsgvo_no_document' => 'Der Benutzer hat noch keine Einverständniserklärung hochgeladen.',
|
||||
'dsgvo_not_confirmed' => 'Noch nicht bestätigt. Bitte Dokument prüfen und dann bestätigen.',
|
||||
'dsgvo_confirmed_info' => 'Bestätigt von :name am :date',
|
||||
'dsgvo_confirmed_tooltip' => 'DSGVO-Einverständnis bestätigt',
|
||||
'dsgvo_pending_tooltip' => 'Dokument hochgeladen, Bestätigung ausstehend',
|
||||
'dsgvo_missing_tooltip' => 'Kein Dokument hochgeladen',
|
||||
'dsgvo_events_title' => 'DSGVO-Ereignisse (letzte 10)',
|
||||
|
||||
// DSGVO Action-Labels
|
||||
'dsgvo_action_dsgvo_consent_uploaded' => 'Hochgeladen',
|
||||
'dsgvo_action_dsgvo_consent_confirmed' => 'Bestätigt',
|
||||
'dsgvo_action_dsgvo_consent_revoked' => 'Widerrufen',
|
||||
'dsgvo_action_dsgvo_consent_removed' => 'Entfernt',
|
||||
'dsgvo_action_account_self_deleted' => 'Account gelöscht',
|
||||
'dsgvo_action_child_auto_deactivated' => 'Kind deaktiviert',
|
||||
|
||||
// DSGVO Log-Beschreibungen
|
||||
'log_dsgvo_consent_uploaded' => ':name hat eine Einverständniserklärung hochgeladen',
|
||||
'log_dsgvo_confirmed' => 'Einverständniserklärung von :name wurde bestätigt',
|
||||
'log_dsgvo_revoked' => 'Bestätigung der Einverständniserklärung von :name wurde widerrufen',
|
||||
'log_dsgvo_consent_removed' => ':name hat die Einverständniserklärung entfernt',
|
||||
'log_account_self_deleted' => ':name hat den eigenen Account gelöscht',
|
||||
'log_child_auto_deactivated' => 'Spieler :child wurde automatisch deaktiviert (einziger Elternteil :parent hat Account gelöscht)',
|
||||
|
||||
// DSGVO Pending Widget
|
||||
'dsgvo_pending_title' => 'DSGVO — Bestätigung ausstehend',
|
||||
'dsgvo_pending_count' => ':count Erklärung(en) ausstehend',
|
||||
'dsgvo_consent_document' => 'DSGVO-Einverständniserklärung',
|
||||
'dsgvo_reject' => 'Ablehnen',
|
||||
'dsgvo_reject_confirm' => 'Bist du sicher, dass du diese Einverständniserklärung ablehnen möchtest? Das Dokument wird gelöscht und der Benutzer muss es erneut hochladen.',
|
||||
'dsgvo_rejected' => 'Einverständniserklärung wurde abgelehnt.',
|
||||
'log_dsgvo_rejected' => 'Einverständniserklärung von :name wurde abgelehnt',
|
||||
'dsgvo_action_dsgvo_consent_rejected' => 'Abgelehnt',
|
||||
'dsgvo_preview_not_available' => 'Vorschau für diesen Dateityp nicht verfügbar.',
|
||||
|
||||
// Factory Reset
|
||||
'factory_reset_title' => 'Kompletter Reset',
|
||||
'factory_reset_description' => 'Setzt die gesamte WebApp auf den Ausgangszustand zurück. Nach dem Reset wird der Installations-Assistent erneut gestartet.',
|
||||
'factory_reset_deletes' => 'Folgendes wird unwiderruflich gelöscht',
|
||||
'factory_reset_item_users' => 'Alle Benutzer (inkl. Administrator)',
|
||||
'factory_reset_item_data' => 'Alle Teams, Spieler, Termine, Kommentare',
|
||||
'factory_reset_item_settings' => 'Alle Einstellungen und Dateikategorien',
|
||||
'factory_reset_item_files' => 'Alle hochgeladenen Dateien und Profilbilder',
|
||||
'factory_reset_warning' => 'Dieser Vorgang kann NICHT rückgängig gemacht werden! Die App wird vollständig zurückgesetzt und der Installations-Assistent gestartet.',
|
||||
'factory_reset_confirm' => 'ACHTUNG: Die gesamte WebApp wird unwiderruflich zurückgesetzt und alle Daten gelöscht. Der Installations-Assistent wird erneut gestartet. Bist du sicher?',
|
||||
'factory_reset_button' => 'WebApp komplett zurücksetzen',
|
||||
|
||||
// Lizenz & Support
|
||||
'settings_tab_license' => 'Lizenz & Support',
|
||||
'license_title' => 'Lizenzschlüssel',
|
||||
'license_description' => 'Geben Sie Ihren Lizenzschlüssel ein, um Support und Updates zu erhalten.',
|
||||
'license_key_label' => 'Lizenzschlüssel',
|
||||
'license_invalid' => 'Der eingegebene Lizenzschlüssel ist ungültig.',
|
||||
'registration_status' => 'Registrierungsstatus',
|
||||
'registration_active' => 'Registriert',
|
||||
'registration_inactive' => 'Nicht registriert',
|
||||
'register_now' => 'Jetzt registrieren',
|
||||
'registration_success' => 'Installation erfolgreich registriert.',
|
||||
'registration_failed' => 'Registrierung fehlgeschlagen. Bitte versuchen Sie es später erneut.',
|
||||
'version_info' => 'Systeminformationen',
|
||||
'update_available' => 'Update verfügbar: Version :version',
|
||||
'update_details' => 'Details anzeigen',
|
||||
'download_update' => 'Update herunterladen',
|
||||
'installation_id_label' => 'Installations-ID',
|
||||
'nav_support' => 'Support',
|
||||
'support_title' => 'Support-Tickets',
|
||||
'support_not_registered' => 'Installation nicht registriert',
|
||||
'support_register_hint' => 'Um den Support zu nutzen, muss die Installation registriert sein. Es werden nur technische Daten (App-Name, URL, PHP-Version) übermittelt.',
|
||||
'support_new_ticket' => 'Neues Ticket erstellen',
|
||||
'support_subject' => 'Betreff',
|
||||
'support_category' => 'Kategorie',
|
||||
'support_category_bug' => 'Fehlerbericht',
|
||||
'support_category_feature' => 'Feature-Wunsch',
|
||||
'support_category_question' => 'Frage',
|
||||
'support_category_other' => 'Sonstiges',
|
||||
'support_message' => 'Nachricht',
|
||||
'support_submit' => 'Ticket senden',
|
||||
'support_reply' => 'Antworten',
|
||||
'support_send_reply' => 'Antwort senden',
|
||||
'support_reply_placeholder' => 'Schreiben Sie Ihre Antwort...',
|
||||
'support_ticket_created' => 'Ticket wurde erfolgreich erstellt.',
|
||||
'support_reply_sent' => 'Antwort wurde gesendet.',
|
||||
'support_submit_failed' => 'Ticket konnte nicht erstellt werden. Bitte versuchen Sie es später erneut.',
|
||||
'support_reply_failed' => 'Antwort konnte nicht gesendet werden. Bitte versuchen Sie es später erneut.',
|
||||
'support_ticket_not_found' => 'Ticket nicht gefunden.',
|
||||
'support_no_tickets' => 'Noch keine Tickets vorhanden.',
|
||||
'support_no_messages' => 'Noch keine Nachrichten.',
|
||||
'support_ticket_id' => 'Ticket-Nr.',
|
||||
'support_status' => 'Status',
|
||||
'support_status_open' => 'Offen',
|
||||
'support_status_in_progress' => 'In Bearbeitung',
|
||||
'support_status_waiting' => 'Wartend',
|
||||
'support_status_closed' => 'Geschlossen',
|
||||
'support_created_at' => 'Erstellt',
|
||||
'support_last_reply' => 'Letzte Antwort',
|
||||
'support_back_to_list' => 'Zurück zur Übersicht',
|
||||
'support_system_info_note' => 'Systeminformationen werden automatisch mitgesendet.',
|
||||
'support_sender_support' => 'Support',
|
||||
'support_sender_you' => 'Sie',
|
||||
'support_ticket_closed' => 'Dieses Ticket ist geschlossen.',
|
||||
'installer_register_label' => 'Installation registrieren',
|
||||
'installer_register_hint' => 'Ermöglicht Update-Benachrichtigungen und Support. Es werden nur technische Daten übermittelt (App-Name, URL, PHP-Version, App-Version).',
|
||||
'installer_license_label' => 'Lizenzschlüssel (optional)',
|
||||
'installer_license_hint' => 'Kann auch später in den Einstellungen eingetragen werden.',
|
||||
|
||||
// Password Reset (Admin + Self-Service)
|
||||
'factory_reset_password_label' => 'Dein Passwort zur Bestätigung',
|
||||
'factory_reset_confirmation_label' => 'Sicherheitsbestätigung',
|
||||
'factory_reset_confirmation_hint' => 'Tippe RESET-BESTÄTIGT ein, um den Vorgang zu bestätigen.',
|
||||
'password_reset_link_sent' => 'Ein Link zum Zurücksetzen des Passworts wurde per E-Mail gesendet.',
|
||||
'password_reset_email_label' => 'Passwort-Reset E-Mail-Vorlage',
|
||||
'password_reset_email_hint' => 'Platzhalter: {name} = Benutzername, {link} = Reset-Link, {app_name} = App-Name',
|
||||
'log_password_reset_requested' => 'Passwort-Zurücksetzen angefordert',
|
||||
'log_password_changed_self' => ':name hat das Passwort geändert',
|
||||
'log_dsgvo_viewed' => 'DSGVO-Dokument von :name angesehen',
|
||||
|
||||
// Multi-Language Legal Editor
|
||||
'legal_language_label' => 'Sprache',
|
||||
'legal_impressum_label' => 'Impressum',
|
||||
'legal_datenschutz_label' => 'Datenschutzerklärung',
|
||||
'legal_password_reset_email_label' => 'Passwort-Reset E-Mail',
|
||||
|
||||
// E-Mail Tab
|
||||
'settings_tab_mail' => 'E-Mail',
|
||||
'mail_config_title' => 'E-Mail-Konfiguration',
|
||||
'mail_config_hint' => 'SMTP-Einstellungen fuer den E-Mail-Versand (z.B. Passwort-Reset, Benachrichtigungen).',
|
||||
'mail_mailer_label' => 'Versandmethode',
|
||||
'mail_log_mode' => 'Kein Versand (Log)',
|
||||
'mail_host_label' => 'SMTP-Host',
|
||||
'mail_port_label' => 'Port',
|
||||
'mail_username_label' => 'Benutzername',
|
||||
'mail_password_label' => 'Passwort',
|
||||
'mail_from_address_label' => 'Absender-Adresse',
|
||||
'mail_from_name_label' => 'Absender-Name',
|
||||
'mail_encryption_label' => 'Verschluesselung',
|
||||
'mail_encryption_none' => 'Keine',
|
||||
'mail_save' => 'Mail-Einstellungen speichern',
|
||||
'mail_saved' => 'Mail-Einstellungen wurden gespeichert.',
|
||||
'mail_test_button' => 'Verbindung testen',
|
||||
'mail_testing' => 'Teste Verbindung...',
|
||||
'mail_test_success' => 'SMTP-Verbindung erfolgreich!',
|
||||
];
|
||||
7
lang/de/auth.php
Executable file
7
lang/de/auth.php
Executable file
@@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'failed' => 'Diese Anmeldedaten stimmen nicht mit unseren Aufzeichnungen überein.',
|
||||
'password' => 'Das angegebene Passwort ist falsch.',
|
||||
'throttle' => 'Zu viele Anmeldeversuche. Bitte versuche es in :seconds Sekunden erneut.',
|
||||
];
|
||||
43
lang/de/auth_ui.php
Executable file
43
lang/de/auth_ui.php
Executable file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
// Login
|
||||
'login_title' => 'Anmelden',
|
||||
'email_label' => 'E-Mail',
|
||||
'password_label' => 'Passwort',
|
||||
'remember_me' => 'Angemeldet bleiben',
|
||||
'login_button' => 'Anmelden',
|
||||
|
||||
// Register
|
||||
'register_title' => 'Registrieren',
|
||||
'name_label' => 'Name',
|
||||
'children_assigned' => 'Dein Account wird folgenden Kindern zugeordnet:',
|
||||
'password_min' => '(min. 8 Zeichen)',
|
||||
'password_confirm_label' => 'Passwort bestätigen',
|
||||
'create_account' => 'Account erstellen',
|
||||
'already_registered' => 'Bereits registriert?',
|
||||
'go_to_login' => 'Zum Login',
|
||||
'email_fixed_by_invitation' => 'Die E-Mail-Adresse ist durch die Einladung festgelegt.',
|
||||
'invalid_invitation' => 'Dieser Einladungslink ist ungültig oder abgelaufen.',
|
||||
'welcome' => 'Willkommen! Dein Account wurde erstellt.',
|
||||
|
||||
// Forgot / Reset Password
|
||||
'forgot_password_link' => 'Passwort vergessen?',
|
||||
'forgot_password_title' => 'Passwort zurücksetzen',
|
||||
'forgot_password_description' => 'Gib deine E-Mail-Adresse ein und wir senden dir einen Link zum Zurücksetzen deines Passworts.',
|
||||
'send_reset_link' => 'Link senden',
|
||||
'back_to_login' => 'Zurück zum Login',
|
||||
'reset_password_title' => 'Neues Passwort setzen',
|
||||
'reset_password_button' => 'Passwort zurücksetzen',
|
||||
'new_password_label' => 'Neues Passwort',
|
||||
'confirm_password_label' => 'Passwort bestätigen',
|
||||
|
||||
// Security
|
||||
'login_failed' => 'Die Anmeldedaten sind ungültig.',
|
||||
'email_must_match_invitation' => 'Die E-Mail-Adresse muss mit der Einladung übereinstimmen: :email',
|
||||
|
||||
// Cookie notice
|
||||
'cookie_notice' => 'Diese Seite nutzt nur ein technisch notwendiges Session-Cookie. Kein Tracking.',
|
||||
'cookie_notice_link' => 'Mehr erfahren',
|
||||
'account_deactivated' => 'Dein Account wurde deaktiviert. Bitte wende dich an den Administrator.',
|
||||
];
|
||||
78
lang/de/events.php
Executable file
78
lang/de/events.php
Executable file
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'title' => 'Termine',
|
||||
'no_events' => 'Keine Termine gefunden.',
|
||||
'no_upcoming' => 'Keine anstehenden Termine.',
|
||||
'upcoming_title' => 'Nächste Termine',
|
||||
'cancelled_label' => 'Abgesagt',
|
||||
'draft_label' => 'Entwurf',
|
||||
'cancelled_banner' => 'Dieser Termin wurde abgesagt.',
|
||||
'draft_banner' => 'Entwurf — nur für Admins sichtbar.',
|
||||
'back_to_list' => 'Zurück zur Terminliste',
|
||||
|
||||
// Detail-Seite
|
||||
'description' => 'Beschreibung',
|
||||
'plan_route' => 'Route planen',
|
||||
'start_navigation' => 'Navigation starten',
|
||||
|
||||
// Teilnehmer
|
||||
'participants' => 'Teilnehmer',
|
||||
'confirmations' => 'Zusagen',
|
||||
'rejections' => 'Absagen',
|
||||
'open_responses' => 'Offen',
|
||||
'participation_updated' => 'Teilnahme aktualisiert.',
|
||||
|
||||
// Catering
|
||||
'catering' => 'Catering / Verpflegung',
|
||||
'bring_something' => 'Bringe etwas mit',
|
||||
'bring_nothing' => 'Bringe nichts mit',
|
||||
'catering_note_placeholder' => 'z.B. Bringe Kuchen mit',
|
||||
'no_catering_yet' => 'Noch keine Zusagen für Verpflegung.',
|
||||
'catering_updated' => 'Catering-Status aktualisiert.',
|
||||
|
||||
// Zeitnehmer
|
||||
'timekeeper' => 'Zeitnehmer',
|
||||
'timekeeper_yes' => 'Ja, ich kann',
|
||||
'timekeeper_no' => 'Nein',
|
||||
'catering_short' => 'Catering',
|
||||
'timekeeper_short' => 'Zeitnehmer',
|
||||
'no_timekeeper_yet' => 'Noch kein Zeitnehmer eingetragen.',
|
||||
'timekeeper_updated' => 'Zeitnehmer-Status aktualisiert.',
|
||||
|
||||
// Kommentare
|
||||
'comments' => 'Kommentare',
|
||||
'comment_placeholder' => 'Kommentar schreiben...',
|
||||
'no_comments' => 'Noch keine Kommentare.',
|
||||
'comment_deleted' => '[Gelöscht]',
|
||||
'confirm_delete_comment' => 'Kommentar löschen?',
|
||||
'comment_added' => 'Kommentar hinzugefügt.',
|
||||
'comment_removed' => 'Kommentar gelöscht.',
|
||||
|
||||
// Dashboard
|
||||
'hello_user' => 'Hallo, :name!',
|
||||
'upcoming_events' => 'Nächste Termine',
|
||||
|
||||
// Kalender
|
||||
'calendar' => 'Kalender',
|
||||
'today' => 'Heute',
|
||||
'month_view' => 'Monat',
|
||||
'year_view' => 'Jahr',
|
||||
|
||||
// Dateien
|
||||
'files' => 'Dateien',
|
||||
'download' => 'Herunterladen',
|
||||
'no_files' => 'Keine Dateien angehängt.',
|
||||
|
||||
// Gegner & Ergebnis
|
||||
'opponent' => 'Gegner',
|
||||
'score' => 'Ergebnis',
|
||||
'score_home' => 'Heim',
|
||||
'score_away' => 'Gast',
|
||||
'vs' => 'vs.',
|
||||
|
||||
// Staff-Sichtbarkeit
|
||||
'signed_up' => 'zugesagt',
|
||||
'withdrawn' => 'abgemeldet',
|
||||
'deleted_label' => 'gelöscht',
|
||||
];
|
||||
6
lang/de/pagination.php
Executable file
6
lang/de/pagination.php
Executable file
@@ -0,0 +1,6 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'previous' => '« Zurück',
|
||||
'next' => 'Weiter »',
|
||||
];
|
||||
14
lang/de/passwords.php
Executable file
14
lang/de/passwords.php
Executable file
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'reset' => 'Dein Passwort wurde zurückgesetzt.',
|
||||
'sent' => 'Wir haben dir einen Link zum Zurücksetzen des Passworts gesendet.',
|
||||
'throttled' => 'Bitte warte, bevor du es erneut versuchst.',
|
||||
'token' => 'Dieses Token zum Zurücksetzen des Passworts ist ungültig.',
|
||||
'user' => 'Es konnte kein Benutzer mit dieser E-Mail-Adresse gefunden werden.',
|
||||
'reset_subject' => 'Passwort zurücksetzen — :app',
|
||||
'reset_greeting' => 'Hallo :name,',
|
||||
'reset_line1' => 'Du erhältst diese E-Mail, weil eine Anfrage zum Zurücksetzen deines Passworts gestellt wurde.',
|
||||
'reset_line2' => 'Dieser Link zum Zurücksetzen ist :count Minuten gültig.',
|
||||
'reset_line3' => 'Falls du kein Zurücksetzen angefordert hast, kannst du diese E-Mail ignorieren.',
|
||||
];
|
||||
44
lang/de/profile.php
Executable file
44
lang/de/profile.php
Executable file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'title' => 'Mein Profil',
|
||||
'name_label' => 'Name',
|
||||
'email_label' => 'E-Mail',
|
||||
'email_readonly' => 'Die E-Mail-Adresse kann nicht geändert werden.',
|
||||
'phone_label' => 'Erreichbarkeit (Mobilnummer)',
|
||||
'role_label' => 'Rolle',
|
||||
'language_label' => 'Sprache',
|
||||
'my_children' => 'Meine Kinder',
|
||||
'updated' => 'Profil aktualisiert.',
|
||||
|
||||
// Profilbild
|
||||
'profile_picture' => 'Profilbild',
|
||||
'upload_picture' => 'Bild hochladen',
|
||||
'remove_picture' => 'Bild entfernen',
|
||||
'max_picture_size' => 'Max. 2 MB (JPG, PNG, GIF, WEBP)',
|
||||
|
||||
// DSGVO-Einverständniserklärung
|
||||
'dsgvo_title' => 'DSGVO-Einverständniserklärung',
|
||||
'dsgvo_description' => 'Lade hier die unterschriebene Einverständniserklärung als Foto oder PDF hoch. Eine Erklärung gilt für beide Elternteile gemeinsam.',
|
||||
'dsgvo_upload' => 'Erklärung hochladen',
|
||||
'dsgvo_replace' => 'Ersetzen',
|
||||
'dsgvo_remove' => 'Erklärung entfernen',
|
||||
'dsgvo_file_hint' => 'PDF oder Bild (max. 10 MB)',
|
||||
'dsgvo_uploaded' => 'Einverständniserklärung wurde hochgeladen.',
|
||||
'dsgvo_removed' => 'Einverständniserklärung wurde entfernt.',
|
||||
'dsgvo_view' => 'Ansehen',
|
||||
'dsgvo_confirmed' => 'Bestätigt',
|
||||
'dsgvo_pending' => 'Warte auf Bestätigung durch Admin/Trainer',
|
||||
'dsgvo_confirmed_by' => 'Bestätigt von :name am :date',
|
||||
'dsgvo_confirm_remove' => 'Einverständniserklärung wirklich entfernen? Eine vorhandene Bestätigung wird ebenfalls zurückgesetzt.',
|
||||
|
||||
// Account löschen
|
||||
'danger_zone' => 'Gefahrenzone',
|
||||
'delete_account' => 'Account löschen',
|
||||
'delete_account_hint' => 'Dein Profil wird deaktiviert und kann 7 Tage lang vom Administrator wiederhergestellt werden. Historische Daten (Kommentare, Teilnahmen) bleiben erhalten.',
|
||||
'delete_warning_children' => 'Achtung: Du bist der einzige Elternteil für folgende Kinder. Diese werden ebenfalls deaktiviert:',
|
||||
'delete_confirm' => 'Möchtest du deinen Account wirklich löschen? Dieser Vorgang kann nur vom Administrator rückgängig gemacht werden.',
|
||||
'account_deleted' => 'Dein Account wurde gelöscht.',
|
||||
'cannot_delete_admin' => 'Der Administrator-Account kann nicht gelöscht werden.',
|
||||
'cannot_delete_staff' => 'Trainer und Admins können ihren Account nicht über die Profilseite löschen.',
|
||||
];
|
||||
126
lang/de/ui.php
Executable file
126
lang/de/ui.php
Executable file
@@ -0,0 +1,126 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
// Navigation
|
||||
'dashboard' => 'Dashboard',
|
||||
'events' => 'Termine',
|
||||
'admin' => 'Admin',
|
||||
'profile' => 'Profil',
|
||||
'logout' => 'Abmelden',
|
||||
'back_to_app' => 'Zur App',
|
||||
'login' => 'Anmelden',
|
||||
|
||||
// Allgemeine Buttons
|
||||
'save' => 'Speichern',
|
||||
'cancel' => 'Abbrechen',
|
||||
'edit' => 'Bearbeiten',
|
||||
'delete' => 'Löschen',
|
||||
'create' => 'Erstellen',
|
||||
'filter' => 'Filtern',
|
||||
'send' => 'Senden',
|
||||
'back' => 'Zurück',
|
||||
'yes' => 'Ja',
|
||||
'no' => 'Nein',
|
||||
'open' => 'Offen',
|
||||
|
||||
// Allgemeine Labels
|
||||
'all_teams' => 'Alle Teams',
|
||||
'all_types' => 'Alle Typen',
|
||||
'upcoming' => 'Kommende',
|
||||
'past' => 'Vergangene',
|
||||
'period' => 'Zeitraum',
|
||||
'team' => 'Team',
|
||||
'type' => 'Typ',
|
||||
'name' => 'Name',
|
||||
'email' => 'E-Mail',
|
||||
'password' => 'Passwort',
|
||||
'role' => 'Rolle',
|
||||
'language' => 'Sprache',
|
||||
'impressum' => 'Impressum',
|
||||
'privacy' => 'Datenschutz',
|
||||
'no_entries' => 'Keine Einträge vorhanden.',
|
||||
'clock' => 'Uhr',
|
||||
|
||||
// Datumsformat
|
||||
'date_format' => 'D, d.m.Y, H:i',
|
||||
'date_format_long' => 'l, d. F Y, H:i',
|
||||
'date_format_short' => 'd.m.Y H:i',
|
||||
'date_format_date' => 'd.m.Y',
|
||||
|
||||
// Footer
|
||||
'footer_impressum' => 'Impressum',
|
||||
'footer_privacy' => 'Datenschutz',
|
||||
|
||||
// PWA
|
||||
'pwa_install_title' => 'App installieren',
|
||||
'pwa_install_text' => 'Füge die App zum Startbildschirm hinzu für schnelleren Zugriff.',
|
||||
'pwa_install_btn' => 'Installieren',
|
||||
'pwa_ios_steps' => 'Tippe auf <strong>⋯</strong> (Menü), dann auf <strong>⬆</strong> (Teilen) und wähle „Zum Home-Bildschirm".',
|
||||
|
||||
// Fehlerseiten
|
||||
'error_403_title' => 'Zugriff verweigert',
|
||||
'error_403_text' => 'Du hast keine Berechtigung, diese Seite aufzurufen.',
|
||||
'error_404_title' => 'Seite nicht gefunden',
|
||||
'error_404_text' => 'Die angeforderte Seite konnte nicht gefunden werden.',
|
||||
'error_500_title' => 'Serverfehler',
|
||||
'error_500_text' => 'Es ist ein interner Fehler aufgetreten. Bitte versuche es später erneut.',
|
||||
'back_to_dashboard' => 'Zum Dashboard',
|
||||
|
||||
// Enums
|
||||
'enums' => [
|
||||
'event_type' => [
|
||||
'home_game' => 'Heimspiel',
|
||||
'away_game' => 'Auswärtsspiel',
|
||||
'training' => 'Training',
|
||||
'tournament' => 'Turnier',
|
||||
'meeting' => 'Besprechung',
|
||||
'other' => 'Sonstiges',
|
||||
],
|
||||
'event_status' => [
|
||||
'published' => 'Veröffentlicht',
|
||||
'cancelled' => 'Abgesagt',
|
||||
'draft' => 'Entwurf',
|
||||
],
|
||||
'participant_status' => [
|
||||
'yes' => 'Zugesagt',
|
||||
'no' => 'Abgesagt',
|
||||
'unknown' => 'Offen',
|
||||
],
|
||||
'catering_status' => [
|
||||
'yes' => 'Ja',
|
||||
'no' => 'Nein',
|
||||
'unknown' => 'Offen',
|
||||
],
|
||||
'user_role' => [
|
||||
'admin' => 'Administrator',
|
||||
'coach' => 'Trainer',
|
||||
'parent_rep' => 'Elternvertretung',
|
||||
'user' => 'Elternteil',
|
||||
],
|
||||
],
|
||||
|
||||
// Sprachen
|
||||
'locales' => [
|
||||
'de' => 'Deutsch',
|
||||
'en' => 'English',
|
||||
'pl' => 'Polski',
|
||||
'ru' => 'Русский',
|
||||
'ar' => 'العربية',
|
||||
'tr' => 'Türkçe',
|
||||
],
|
||||
|
||||
// DSGVO-Banner
|
||||
'dsgvo_banner_title' => 'DSGVO-Einverständniserklärung erforderlich',
|
||||
'dsgvo_banner_text' => 'Für die Nutzung dieser App ist eine unterschriebene DSGVO-Einverständniserklärung erforderlich. Bitte lade die Erklärung als Foto oder PDF in deinem Profil hoch. Erst danach kann die App vollständig genutzt werden.',
|
||||
'dsgvo_banner_action' => 'Jetzt im Profil hochladen',
|
||||
'dsgvo_banner_pending_title' => 'Einverständniserklärung wird geprüft',
|
||||
'dsgvo_banner_pending_text' => 'Deine DSGVO-Einverständniserklärung wurde eingereicht und wird geprüft. Bis zur Bestätigung durch einen Administrator ist die App im Lesemodus — Teilnahme, Catering, Zeitnehmer und Kommentare sind gesperrt.',
|
||||
'dsgvo_restricted' => 'Deine DSGVO-Einverständniserklärung wurde noch nicht bestätigt. Bitte warte auf die Freigabe durch einen Administrator.',
|
||||
'dsgvo_restricted_hint' => 'DSGVO-Einverständniserklärung noch nicht bestätigt — Aktionen gesperrt.',
|
||||
|
||||
// Dateien
|
||||
'files' => 'Dateien',
|
||||
'download' => 'Herunterladen',
|
||||
'all' => 'Alle',
|
||||
'close' => 'Schließen',
|
||||
];
|
||||
130
lang/de/validation.php
Executable file
130
lang/de/validation.php
Executable file
@@ -0,0 +1,130 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'accepted' => ':attribute muss akzeptiert werden.',
|
||||
'active_url' => ':attribute ist keine gültige URL.',
|
||||
'after' => ':attribute muss ein Datum nach :date sein.',
|
||||
'after_or_equal' => ':attribute muss ein Datum nach oder gleich :date sein.',
|
||||
'alpha' => ':attribute darf nur Buchstaben enthalten.',
|
||||
'alpha_dash' => ':attribute darf nur Buchstaben, Zahlen, Bindestriche und Unterstriche enthalten.',
|
||||
'alpha_num' => ':attribute darf nur Buchstaben und Zahlen enthalten.',
|
||||
'array' => ':attribute muss ein Array sein.',
|
||||
'before' => ':attribute muss ein Datum vor :date sein.',
|
||||
'before_or_equal' => ':attribute muss ein Datum vor oder gleich :date sein.',
|
||||
'between' => [
|
||||
'numeric' => ':attribute muss zwischen :min und :max liegen.',
|
||||
'file' => ':attribute muss zwischen :min und :max Kilobytes groß sein.',
|
||||
'string' => ':attribute muss zwischen :min und :max Zeichen lang sein.',
|
||||
'array' => ':attribute muss zwischen :min und :max Elemente haben.',
|
||||
],
|
||||
'boolean' => ':attribute muss wahr oder falsch sein.',
|
||||
'confirmed' => ':attribute Bestätigung stimmt nicht überein.',
|
||||
'date' => ':attribute ist kein gültiges Datum.',
|
||||
'date_equals' => ':attribute muss ein Datum gleich :date sein.',
|
||||
'date_format' => ':attribute entspricht nicht dem Format :format.',
|
||||
'different' => ':attribute und :other müssen sich unterscheiden.',
|
||||
'digits' => ':attribute muss :digits Stellen haben.',
|
||||
'digits_between' => ':attribute muss zwischen :min und :max Stellen haben.',
|
||||
'email' => ':attribute muss eine gültige E-Mail-Adresse sein.',
|
||||
'exists' => 'Der gewählte Wert für :attribute ist ungültig.',
|
||||
'file' => ':attribute muss eine Datei sein.',
|
||||
'filled' => ':attribute muss einen Wert haben.',
|
||||
'gt' => [
|
||||
'numeric' => ':attribute muss größer als :value sein.',
|
||||
'file' => ':attribute muss größer als :value Kilobytes sein.',
|
||||
'string' => ':attribute muss mehr als :value Zeichen haben.',
|
||||
'array' => ':attribute muss mehr als :value Elemente haben.',
|
||||
],
|
||||
'gte' => [
|
||||
'numeric' => ':attribute muss größer oder gleich :value sein.',
|
||||
'file' => ':attribute muss größer oder gleich :value Kilobytes sein.',
|
||||
'string' => ':attribute muss mindestens :value Zeichen haben.',
|
||||
'array' => ':attribute muss mindestens :value Elemente haben.',
|
||||
],
|
||||
'image' => ':attribute muss ein Bild sein.',
|
||||
'in' => 'Der gewählte Wert für :attribute ist ungültig.',
|
||||
'in_array' => ':attribute kommt nicht in :other vor.',
|
||||
'integer' => ':attribute muss eine ganze Zahl sein.',
|
||||
'ip' => ':attribute muss eine gültige IP-Adresse sein.',
|
||||
'json' => ':attribute muss ein gültiger JSON-String sein.',
|
||||
'lt' => [
|
||||
'numeric' => ':attribute muss kleiner als :value sein.',
|
||||
'file' => ':attribute muss kleiner als :value Kilobytes sein.',
|
||||
'string' => ':attribute muss weniger als :value Zeichen haben.',
|
||||
'array' => ':attribute muss weniger als :value Elemente haben.',
|
||||
],
|
||||
'lte' => [
|
||||
'numeric' => ':attribute muss kleiner oder gleich :value sein.',
|
||||
'file' => ':attribute muss kleiner oder gleich :value Kilobytes sein.',
|
||||
'string' => ':attribute darf höchstens :value Zeichen haben.',
|
||||
'array' => ':attribute darf höchstens :value Elemente haben.',
|
||||
],
|
||||
'max' => [
|
||||
'numeric' => ':attribute darf nicht größer als :max sein.',
|
||||
'file' => ':attribute darf nicht größer als :max Kilobytes sein.',
|
||||
'string' => ':attribute darf nicht mehr als :max Zeichen haben.',
|
||||
'array' => ':attribute darf nicht mehr als :max Elemente haben.',
|
||||
],
|
||||
'min' => [
|
||||
'numeric' => ':attribute muss mindestens :min sein.',
|
||||
'file' => ':attribute muss mindestens :min Kilobytes groß sein.',
|
||||
'string' => ':attribute muss mindestens :min Zeichen haben.',
|
||||
'array' => ':attribute muss mindestens :min Elemente haben.',
|
||||
],
|
||||
'not_in' => 'Der gewählte Wert für :attribute ist ungültig.',
|
||||
'numeric' => ':attribute muss eine Zahl sein.',
|
||||
'present' => ':attribute muss vorhanden sein.',
|
||||
'regex' => ':attribute hat ein ungültiges Format.',
|
||||
'required' => ':attribute ist erforderlich.',
|
||||
'required_if' => ':attribute ist erforderlich, wenn :other :value ist.',
|
||||
'required_unless' => ':attribute ist erforderlich, es sei denn :other ist :values.',
|
||||
'required_with' => ':attribute ist erforderlich, wenn :values vorhanden ist.',
|
||||
'required_with_all' => ':attribute ist erforderlich, wenn :values vorhanden sind.',
|
||||
'required_without' => ':attribute ist erforderlich, wenn :values nicht vorhanden ist.',
|
||||
'required_without_all' => ':attribute ist erforderlich, wenn keiner der Werte :values vorhanden ist.',
|
||||
'same' => ':attribute und :other müssen übereinstimmen.',
|
||||
'size' => [
|
||||
'numeric' => ':attribute muss :size sein.',
|
||||
'file' => ':attribute muss :size Kilobytes groß sein.',
|
||||
'string' => ':attribute muss :size Zeichen lang sein.',
|
||||
'array' => ':attribute muss :size Elemente enthalten.',
|
||||
],
|
||||
'string' => ':attribute muss ein String sein.',
|
||||
'timezone' => ':attribute muss eine gültige Zeitzone sein.',
|
||||
'unique' => ':attribute ist bereits vergeben.',
|
||||
'url' => ':attribute muss eine gültige URL sein.',
|
||||
|
||||
'password' => [
|
||||
'letters' => ':attribute muss mindestens einen Buchstaben enthalten.',
|
||||
'mixed' => ':attribute muss mindestens einen Groß- und einen Kleinbuchstaben enthalten.',
|
||||
'numbers' => ':attribute muss mindestens eine Zahl enthalten.',
|
||||
'symbols' => ':attribute muss mindestens ein Sonderzeichen enthalten.',
|
||||
'uncompromised' => ':attribute wurde in einem Datenleck gefunden. Bitte ein anderes Passwort wählen.',
|
||||
],
|
||||
|
||||
'attributes' => [
|
||||
'name' => 'Name',
|
||||
'email' => 'E-Mail',
|
||||
'password' => 'Passwort',
|
||||
'password_confirmation' => 'Passwort-Bestätigung',
|
||||
'title' => 'Titel',
|
||||
'body' => 'Nachricht',
|
||||
'type' => 'Typ',
|
||||
'status' => 'Status',
|
||||
'team_id' => 'Team',
|
||||
'start_date' => 'Datum',
|
||||
'start_time' => 'Uhrzeit',
|
||||
'location_name' => 'Ort',
|
||||
'address_text' => 'Adresse',
|
||||
'description_html' => 'Beschreibung',
|
||||
'first_name' => 'Vorname',
|
||||
'last_name' => 'Nachname',
|
||||
'birth_year' => 'Geburtsjahr',
|
||||
'jersey_number' => 'Trikotnummer',
|
||||
'note' => 'Notiz',
|
||||
'season' => 'Saison',
|
||||
'player_id' => 'Spieler',
|
||||
'parent_id' => 'Elternteil',
|
||||
'relationship_label' => 'Beziehung',
|
||||
],
|
||||
];
|
||||
Reference in New Issue
Block a user