Files
WebAPP/lang/en/admin.php
Rhino ad60e7a9f9 Spielerpositionen, Statistiken, Fahrgemeinschaften, Spielfeld-Visualisierung
- PlayerPosition Enum (7 Handball-Positionen) mit Label/ShortLabel
- Spielerstatistik pro Spiel (Tore, Würfe, TW-Paraden, Bemerkung)
- Position-Dropdown in Spieler-Editor und Event-Stats-Formular
- Statistik-Seite: TW zuerst, Trennlinie, Feldspieler, Position-Badges
- Spielfeld-SVG mit Ampel-Performance (grün/gelb/rot)
- Anklickbare Spieler im Spielfeld öffnen Detail-Modal
- Fahrgemeinschaften (Anbieten, Zuordnen, Zurückziehen)
- Übersetzungen in allen 6 Sprachen (de, en, pl, ru, ar, tr)
- .gitignore für Laravel hinzugefügt
- Demo-Daten mit Positionen und Statistiken

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 11:47:34 +01:00

579 lines
27 KiB
PHP
Executable File

<?php
return [
'dashboard_title' => 'Admin Dashboard',
'stat_users' => 'Users',
'stat_players' => 'Players',
'stat_upcoming' => 'Upcoming Events',
'stat_invitations' => 'Open Invitations',
'quick_links' => 'Quick Links',
'new_event' => 'New Event',
'new_player' => 'New Player',
'new_invitation' => 'New Invitation',
'new_team' => 'New Team',
'open_responses_title' => 'Events with Open Responses',
'x_open' => ':count open',
'nav_teams' => 'Teams',
'nav_players' => 'Players',
'nav_users' => 'Users',
'nav_invitations' => 'Invitations',
'nav_events' => 'Events',
'nav_settings' => 'Settings',
'nav_verwaltung' => 'Management',
'actions' => 'Actions',
'action' => 'Action',
'please_select' => 'Please select',
'back_to_list' => 'Back to list',
'inactive' => 'Inactive',
'nr' => 'No.',
'photo' => 'Photo',
'date' => 'Date',
'location' => 'Location',
'all_status' => 'All Statuses',
'copied' => 'Copied!',
'copy' => 'Copy',
'created_by' => 'by',
'valid_until' => 'valid until',
'teams_title' => 'Teams',
'team_created' => 'Team has been created.',
'team_updated' => 'Team has been updated.',
'team_name' => 'Team Name',
'year_group' => 'Year Group',
'year_group_placeholder' => 'e.g. 2017/18',
'active' => 'Active',
'team_is_active' => 'Team is active',
'create_team' => 'Create Team',
'edit_team' => 'Edit Team',
'no_teams_yet' => 'No teams yet.',
'team_notes' => 'Notes',
'team_notes_placeholder' => 'Notes about the team (internal, only visible to admins)...',
'team_coaches' => 'Coaches',
'no_coaches_available' => 'No coaches available in the system.',
'team_players' => 'Players',
'team_parent_reps' => 'Parent Representatives',
'team_parent_reps_hint' => 'Parents with the "Parent Representative" role who have children on this team.',
'no_parent_reps' => 'No parent representatives for this team.',
'log_team_updated' => 'Team ":name" was updated',
'log_player_team_changed' => 'Player :name was moved to a different team',
'players_title' => 'Players',
'player_created' => 'Player has been created.',
'player_updated' => 'Player has been updated.',
'first_name' => 'First Name',
'last_name' => 'Last Name',
'birth_year' => 'Birth Year',
'jersey_number' => 'Jersey Number',
'photo_permission' => 'Photo Permission',
'notes' => 'Notes',
'parent_assigned' => 'Parent has been assigned.',
'parent_removed' => 'Assignment has been removed.',
'assign_parent' => 'Assign Parent',
'add_parent' => 'Add Parent',
'select_user' => 'Select User',
'assign' => 'Assign',
'relationship_label' => 'Relationship',
'relationship_placeholder' => 'e.g. Mother, Father',
'parents' => 'Parents',
'player_data' => 'Player Details',
'parent_assignment' => 'Parent Assignment',
'no_parents_yet' => 'No parents assigned yet.',
'confirm_remove_parent' => 'Really remove assignment?',
'remove' => 'Remove',
'no_players_yet' => 'No players yet.',
'users_title' => 'Users',
'user_toggled' => 'User has been :status.',
'role_updated' => 'Role has been updated.',
'cannot_deactivate_self' => 'You cannot deactivate your own account.',
'cannot_change_own_role' => 'You cannot change your own role.',
'activated' => 'activated',
'deactivated' => 'deactivated',
'deactivated_label' => 'Deactivated',
'children' => 'Children',
'phone' => 'Phone',
'last_login' => 'Last Login',
'never' => 'Never',
'deactivate' => 'Deactivate',
'activate' => 'Activate',
'you_suffix' => '(you)',
'edit' => 'Edit',
'edit_user' => 'Edit User',
'user_data' => 'User Data',
'user_updated' => 'User has been updated.',
'reset_password' => 'Reset Password',
'reset_password_hint' => 'Sends the user a password reset link via email.',
'reset_password_confirm' => 'Send a password reset link to the user via email?',
'password_reset_success' => 'New password has been generated.',
'new_password_label' => 'New password (visible once only):',
'password_only_visible_now' => 'This password is only shown now. Please share it and do not reload the page.',
'cannot_edit_own_role' => 'You cannot change your own role here.',
'cannot_assign_admin_role' => 'You cannot assign the admin role.',
'cannot_reset_own_password' => 'You cannot reset your own password via the admin area.',
'registered_at' => 'Registered on',
'invitations_title' => 'Invitations',
'invitation_created' => 'Invitation created. Link: :link',
'invitation_deleted' => 'Invitation has been deleted.',
'invitation_already_used' => 'Already redeemed invitations cannot be deleted.',
'create_invitation' => 'Create Invitation',
'assign_players' => 'Assign Players',
'email_optional' => 'Email address (optional)',
'email_optional_hint' => 'If set, only this email can register',
'expires_at' => 'Valid until',
'valid_for_days' => 'Valid for (days)',
'token' => 'Token',
'status' => 'Status',
'used' => 'Redeemed',
'expired' => 'Expired',
'pending' => 'Open',
'copy_link' => 'Copy Link',
'invite_link' => 'Invitation Link',
'no_assignment' => 'No assignment',
'no_invitations_yet' => 'No invitations created yet.',
'no_active_players' => 'No active players available.',
'confirm_delete_invitation' => 'Really delete invitation?',
'created_label' => 'Created',
'player_assignment_hint' => 'Select the children that should be automatically assigned to the new parent account.',
'events_title' => 'Events',
'event_created' => 'Event has been created.',
'event_updated' => 'Event has been updated.',
'event_deleted' => 'Event has been deleted.',
'event_title' => 'Title',
'start_at' => 'Start',
'date' => 'Date',
'time' => 'Time',
'end_at' => 'End',
'location_name' => 'Location Name',
'address' => 'Address',
'description' => 'Description',
'search_address' => 'Search address...',
'new_event_title' => 'New Event',
'edit_event_title' => 'Edit Event',
'no_events_yet' => 'No events yet.',
'confirm_delete_event' => 'Really delete event?',
'location_address' => 'Location / Address',
'location_name_hint' => 'Location name (e.g. Sports Hall North)',
'search_by_name' => 'Find address',
'location_name_placeholder' => 'e.g. BVB Stadium, Sports Hall West...',
'search_address_hint' => 'Enter address (min. 3 characters)...',
'description_placeholder' => 'Enter description...',
'assignments' => 'Assignments',
'catering_assignment' => 'Catering',
'timekeeper_assignment' => 'Timekeeper',
'geocoding_error' => 'Address search failed. Please try again.',
'geocoding_rate_limit' => 'Too many requests. Please wait a moment.',
'geocoding_no_results' => 'No address found. Please be more specific.',
'min_requirements' => 'Minimum Requirements',
'min_players' => 'Min. Players',
'min_parents' => 'Min. Parents',
'min_catering' => 'Min. Catering',
'min_timekeepers' => 'Min. Timekeepers',
'event_defaults_title' => 'Event Default Minimums',
'event_defaults_description' => 'Set default minimum values for new events per type. Admins can override these when creating events.',
// Locations management
'nav_locations' => 'Locations',
'locations_title' => 'Manage Locations',
'location_add' => 'Add New Location',
'location_name_label' => 'Name',
'location_save' => 'Save',
'location_created' => 'Location has been created.',
'location_updated' => 'Location has been updated.',
'location_deleted' => 'Location has been deleted.',
'location_confirm_delete' => 'Really delete this location?',
'locations_empty' => 'No locations yet.',
'known_locations' => 'Known Locations',
'address_manual_hint' => 'Enter address manually...',
// Settings
'settings_title' => 'Settings',
'settings_saved' => 'Settings saved.',
'settings_tab_general' => 'General',
'settings_tab_legal' => 'Legal',
'settings_tab_defaults' => 'Event Defaults',
'settings_tab_categories' => 'File Categories',
// File Management
'nav_files' => 'Files',
'files_title' => 'File Management',
'upload_file' => 'Upload File',
'file_uploaded' => 'File has been uploaded.',
'file_deleted' => 'File has been deleted.',
'file_category' => 'Category',
'select_category' => 'Select category',
'no_files_yet' => 'No files in this category yet.',
'no_files_at_all' => 'No files uploaded yet.',
'file_size' => 'Size',
'uploaded_by' => 'Uploaded by',
'uploaded_at' => 'Uploaded on',
'confirm_delete_file' => 'Really delete this file? All event attachments will be removed.',
'allowed_file_types' => 'Allowed file types: PDF, DOCX, XLSX, Images (JPG, PNG, GIF, WEBP)',
'max_file_size' => 'Maximum file size: 10 MB',
'file_categories' => 'File Categories',
'file_categories_description' => 'Manage the categories for file management.',
'new_category' => 'New Category',
'category_name' => 'Category Name',
'category_created' => 'Category has been created.',
'category_updated' => 'Category has been updated.',
'category_deleted' => 'Category has been deleted.',
'category_not_empty' => 'Category cannot be deleted because it still contains files.',
'confirm_delete_category' => 'Really delete this category?',
'event_files' => 'Files',
'attach_from_library' => 'Attach from library',
'upload_new_file' => 'Upload new file',
'attached_files' => 'Attached Files',
'detach_file' => 'Remove',
'no_attached_files' => 'No files attached.',
'profile_picture' => 'Profile Picture',
'upload_picture' => 'Upload picture',
'remove_picture' => 'Remove picture',
'picture_uploaded' => 'Profile picture has been updated.',
'picture_removed' => 'Profile picture has been removed.',
'max_picture_size' => 'Max. 2 MB (JPG, PNG, GIF, WEBP)',
'html_anchor_hint' => 'Tip: Add anchors with id attribute, e.g. &lt;h3 id="cookies"&gt;',
// Soft-Delete
'danger_zone' => 'Danger zone',
'delete_user' => 'Delete user',
'delete_user_hint' => 'The user will be deactivated and can be restored within 7 days. Historical data (comments, participations) will be preserved.',
'delete_player' => 'Delete player',
'delete_player_hint' => 'The player will be removed and can be restored within 7 days. Historical data (participations, events) will be preserved.',
'user_status_label' => 'User status',
'player_status_label' => 'Player status',
'deactivate_user_hint' => 'The user will no longer be able to log in.',
'activate_user_hint' => 'The user will be able to log in again.',
'deactivate_player_hint' => 'The player will no longer appear in event lists.',
'activate_player_hint' => 'The player will appear in event lists again.',
'player_toggled' => 'Player :status.',
'log_player_toggled' => 'Player :name :status',
'confirm_delete_user' => 'Are you sure you want to delete this user? They can be restored within 7 days.',
'confirm_delete_player' => 'Are you sure you want to delete this player? They can be restored within 7 days.',
'user_deleted' => 'User has been deleted.',
'user_restored' => 'User has been restored.',
'player_deleted' => 'Player has been deleted.',
'player_restored' => 'Player has been restored.',
'cannot_delete_self' => 'You cannot delete yourself.',
'cannot_delete_main_admin' => 'The main admin cannot be deleted.',
'restore_expired' => 'The restoration period has expired.',
'trash' => 'Trash',
'restore' => 'Restore',
'delete' => 'Delete',
'deleted_at' => 'Deleted at',
// Activity Log
'activity_log_title' => 'Activity Log',
'nav_activity_log' => 'Activity Log',
'log_category' => 'Category',
'log_all_categories' => 'All categories',
'log_cat_auth' => 'Authentication',
'log_cat_users' => 'Users',
'log_cat_players' => 'Players',
'log_cat_events' => 'Events',
'log_cat_files' => 'Files',
'log_cat_settings' => 'Settings',
'log_cat_dsgvo' => 'GDPR',
'log_from' => 'From',
'log_to' => 'To',
'log_filter' => 'Filter',
'log_reset' => 'Reset',
'log_time' => 'Time',
'log_user' => 'User',
'log_action' => 'Action',
'log_description' => 'Description',
'log_ip' => 'IP Address',
'log_system' => 'System',
'log_empty' => 'No entries found.',
'log_details' => 'Details',
'log_field' => 'Field',
'log_old_value' => 'Before',
'log_new_value' => 'After',
// Log descriptions
'log_login' => ':name logged in',
'log_logout' => ':name logged out',
'log_login_failed' => 'Failed login attempt for :email',
'log_registered' => ':name registered',
'log_user_updated' => 'User :name was updated',
'log_user_toggled' => 'User :name: status changed to :status',
'log_role_changed' => 'Role of :name changed to :role',
'log_password_reset' => 'Password of :name was reset',
'log_user_deleted' => 'User :name was deleted',
'log_user_restored' => 'User :name was restored',
'log_player_created' => 'Player :name was created',
'log_player_updated' => 'Player :name was updated',
'log_player_deleted' => 'Player :name was deleted',
'log_player_restored' => 'Player :name was restored',
'log_parent_assigned' => ':parent was assigned as parent of :player',
'log_parent_removed' => ':parent was removed as parent of :player',
'log_event_created' => 'Event ":title" was created',
'log_event_updated' => 'Event ":title" was updated',
'log_event_deleted' => 'Event ":title" was deleted',
'log_participant_changed' => 'Participation status for ":event" changed to :status',
'log_catering_changed' => 'Catering status for ":event" changed to :status',
'log_timekeeper_changed' => 'Timekeeper status for ":event" changed to :status',
'log_carpool_offer' => 'Ride offered for ":event" (:seats seats)',
'log_carpool_withdrawn' => 'Ride for ":event" withdrawn (:passengers passengers removed)',
'log_carpool_joined' => ':player rides with :driver (Event: ":event")',
'log_carpool_left' => ':player removed from ride with :driver (Event: ":event")',
'log_comment_created' => 'Comment added to ":event"',
'log_comment_deleted' => 'Comment deleted from ":event"',
'log_file_uploaded' => 'File ":name" uploaded',
'log_file_deleted' => 'File ":name" deleted',
'log_settings_updated' => 'Settings were updated',
'log_invitation_created' => 'Invitation created for :email',
// Statistics
'nav_statistics' => 'Statistics',
'statistics_title' => 'Game Statistics',
'total_games' => 'Total Games',
'wins' => 'Wins',
'losses' => 'Losses',
'draws' => 'Draws',
'win_rate' => 'Win Rate',
'chart_win_loss' => 'Wins / Losses',
'chart_player_participation' => 'Player Participation',
'chart_parent_involvement' => 'Parent Involvement',
'no_games_yet' => 'No games available yet.',
'filter_from' => 'From',
'filter_to' => 'To',
'filter_apply' => 'Filter',
'filter_reset' => 'Reset',
'all_teams' => 'All Teams',
'not_applicable' => 'N/A',
'min_users' => 'Min. Users',
'home_short' => 'H',
'away_short' => 'A',
'player_ranking_title' => 'Player Participation',
'player_ranking_desc' => 'Participation rate of players in :count games (home and away games).',
'games_played' => 'Played',
'games_assigned' => 'Assigned',
'participation_rate' => 'Rate',
'parent_ranking_title' => 'Parent Engagement',
'parent_ranking_desc' => 'Catering (:catering events) and timekeeping (:timekeeper events) — all published events.',
'total_contributions' => 'Total',
'statistics_enabled_label' => 'Enable statistics page',
'statistics_enabled_hint' => 'When disabled, the statistics page is only visible to the administrator.',
// Slogan & Favicon
'slogan_label' => 'Slogan',
'slogan_hint' => 'Displayed on the login page and in the footer.',
'favicon_label' => 'Favicon',
'favicon_hint' => 'ICO, PNG, SVG, JPG (max. 512 KB)',
'favicon_current' => 'Current favicon',
'favicon_remove' => 'Remove favicon',
'favicon_uploaded' => 'Favicon has been updated.',
'favicon_removed' => 'Favicon has been removed.',
// Logos
'logo_login_label' => 'Login Logo',
'logo_login_desc' => 'Displayed on the login page above the app name.',
'logo_app_label' => 'App Logo (Navigation)',
'logo_app_desc' => 'Displayed in the navigation bar next to the app name.',
'logo_current' => 'Current logo',
'logo_remove' => 'Remove logo',
'logo_hint' => 'PNG, SVG, JPG, GIF, WebP (max. 1 MB)',
// Undo / Revert
'log_revert' => 'Undo',
'log_revert_confirm' => 'Are you sure you want to undo this action?',
'log_revert_success' => 'Action has been successfully undone.',
'log_revert_not_possible' => 'This action cannot be undone.',
'log_reverted' => 'Undone: ":desc"',
'event_restored' => 'Event has been restored.',
'log_event_restored' => 'Event ":title" has been restored',
// Visibility
'settings_tab_visibility' => 'Visibility',
'visibility_description' => 'Control which features are visible for which roles. Administrators always see everything.',
'visibility_feature_statistics' => 'Statistics page',
'visibility_feature_catering_history' => 'Catering/timekeeper history',
// List Generator
'nav_list_generator' => 'List Generator',
'list_generator_title' => 'Create List',
'list_title' => 'Subject',
'list_subtitle' => 'Subtitle (optional)',
'list_notes' => 'Notes / Description',
'list_source' => 'Row Source',
'list_source_players' => 'Players',
'list_source_parents' => 'Parents',
'list_source_freetext' => 'Free Text',
'list_freetext_hint' => 'One line per entry',
'list_columns' => 'Columns',
'list_custom_columns' => 'Additional Columns',
'list_add_column' => 'Add Column',
'list_column_name' => 'Column Name',
'list_generate' => 'Generate List',
'list_result_title' => 'List Generated',
'list_print' => 'Print / Save as PDF',
'list_new' => 'Create New List',
'list_to_library' => 'Go to File Library',
'list_generated_at' => 'Generated on',
'list_all_teams' => 'All Teams',
'list_saved_info' => 'File ":name" was automatically saved in the library under "General".',
'list_download_pdf' => 'Download PDF',
'list_entries_count' => 'entries',
'log_list_generated' => 'List ":title" was generated',
'no_entries' => 'No entries found.',
// GDPR
'dsgvo_title' => 'GDPR Consent Declaration',
'dsgvo_short' => 'GDPR',
'dsgvo_consent_label' => 'Consent declaration confirmed',
'dsgvo_view_document' => 'View document',
'dsgvo_confirm' => 'Confirm',
'dsgvo_revoke' => 'Revoke',
'dsgvo_toggled' => 'GDPR status has been updated.',
'dsgvo_no_file' => 'No document has been uploaded yet.',
'dsgvo_no_document' => 'The user has not uploaded a consent declaration yet.',
'dsgvo_not_confirmed' => 'Not yet confirmed. Please review the document and then confirm.',
'dsgvo_confirmed_info' => 'Confirmed by :name on :date',
'dsgvo_confirmed_tooltip' => 'GDPR consent confirmed',
'dsgvo_pending_tooltip' => 'Document uploaded, confirmation pending',
'dsgvo_missing_tooltip' => 'No document uploaded',
'dsgvo_events_title' => 'GDPR Events (last 10)',
'dsgvo_action_dsgvo_consent_uploaded' => 'Uploaded',
'dsgvo_action_dsgvo_consent_confirmed' => 'Confirmed',
'dsgvo_action_dsgvo_consent_revoked' => 'Revoked',
'dsgvo_action_dsgvo_consent_removed' => 'Removed',
'dsgvo_action_account_self_deleted' => 'Account deleted',
'dsgvo_action_child_auto_deactivated' => 'Child deactivated',
'log_dsgvo_consent_uploaded' => ':name has uploaded a consent declaration',
'log_dsgvo_confirmed' => 'Consent declaration of :name has been confirmed',
'log_dsgvo_revoked' => 'Confirmation of consent declaration of :name has been revoked',
'log_dsgvo_consent_removed' => ':name has removed the consent declaration',
'log_account_self_deleted' => ':name has deleted their own account',
'log_child_auto_deactivated' => 'Player :child was automatically deactivated (sole parent :parent deleted account)',
// GDPR Pending Widget
'dsgvo_pending_title' => 'GDPR — Confirmation Pending',
'dsgvo_pending_count' => ':count declaration(s) pending',
'dsgvo_consent_document' => 'GDPR Consent Declaration',
'dsgvo_reject' => 'Reject',
'dsgvo_reject_confirm' => 'Are you sure you want to reject this consent declaration? The document will be deleted and the user will need to upload it again.',
'dsgvo_rejected' => 'Consent declaration has been rejected.',
'log_dsgvo_rejected' => 'Consent declaration of :name has been rejected',
'dsgvo_action_dsgvo_consent_rejected' => 'Rejected',
'dsgvo_preview_not_available' => 'Preview not available for this file type.',
// Factory Reset
'factory_reset_title' => 'Complete Reset',
'factory_reset_description' => 'Resets the entire WebApp to its initial state. After the reset, the installation wizard will start again.',
'factory_reset_deletes' => 'The following will be permanently deleted',
'factory_reset_item_users' => 'All users (including administrator)',
'factory_reset_item_data' => 'All teams, players, events, comments',
'factory_reset_item_settings' => 'All settings and file categories',
'factory_reset_item_files' => 'All uploaded files and profile pictures',
'factory_reset_warning' => 'This action CANNOT be undone! The app will be completely reset and the installation wizard will start.',
'factory_reset_confirm' => 'WARNING: The entire WebApp will be irreversibly reset and all data deleted. The installation wizard will start again. Are you sure?',
'factory_reset_button' => 'Reset WebApp completely',
// License & Support
'settings_tab_license' => 'License & Support',
'license_title' => 'License Key',
'license_description' => 'Enter your license key to receive support and updates.',
'license_key_label' => 'License Key',
'license_invalid' => 'The entered license key is invalid.',
'registration_status' => 'Registration Status',
'registration_active' => 'Registered',
'registration_inactive' => 'Not registered',
'register_now' => 'Register now',
'registration_success' => 'Installation registered successfully.',
'registration_failed' => 'Registration failed. Please try again later.',
'version_info' => 'System Information',
'update_available' => 'Update available: Version :version',
'update_details' => 'Show details',
'download_update' => 'Download update',
'installation_id_label' => 'Installation ID',
'nav_support' => 'Support',
'support_title' => 'Support Tickets',
'support_not_registered' => 'Installation not registered',
'support_register_hint' => 'The installation must be registered to use support. Only technical data (app name, URL, PHP version) will be transmitted.',
'support_new_ticket' => 'Create new ticket',
'support_subject' => 'Subject',
'support_category' => 'Category',
'support_category_bug' => 'Bug Report',
'support_category_feature' => 'Feature Request',
'support_category_question' => 'Question',
'support_category_other' => 'Other',
'support_message' => 'Message',
'support_submit' => 'Submit ticket',
'support_reply' => 'Reply',
'support_send_reply' => 'Send reply',
'support_reply_placeholder' => 'Write your reply...',
'support_ticket_created' => 'Ticket created successfully.',
'support_reply_sent' => 'Reply has been sent.',
'support_submit_failed' => 'Ticket could not be created. Please try again later.',
'support_reply_failed' => 'Reply could not be sent. Please try again later.',
'support_ticket_not_found' => 'Ticket not found.',
'support_no_tickets' => 'No tickets yet.',
'support_no_messages' => 'No messages yet.',
'support_ticket_id' => 'Ticket No.',
'support_status' => 'Status',
'support_status_open' => 'Open',
'support_status_in_progress' => 'In Progress',
'support_status_waiting' => 'Waiting',
'support_status_closed' => 'Closed',
'support_created_at' => 'Created',
'support_last_reply' => 'Last Reply',
'support_back_to_list' => 'Back to overview',
'support_system_info_note' => 'System information will be sent automatically.',
'support_sender_support' => 'Support',
'support_sender_you' => 'You',
'support_ticket_closed' => 'This ticket is closed.',
'installer_register_label' => 'Register installation',
'installer_register_hint' => 'Enables update notifications and support. Only technical data is transmitted (app name, URL, PHP version, app version).',
'installer_license_label' => 'License key (optional)',
'installer_license_hint' => 'Can also be entered later in the settings.',
// Password Reset (Admin + Self-Service)
'settings_tab_maintenance' => 'Maintenance',
'factory_reset_password_label' => 'Your password for confirmation',
'factory_reset_confirmation_label' => 'Security confirmation',
'factory_reset_confirmation_hint' => 'Type RESET-BESTÄTIGT to confirm the action.',
'password_reset_link_sent' => 'A password reset link has been sent via email.',
'password_reset_email_label' => 'Password Reset Email Template',
'password_reset_email_hint' => 'Placeholders: {name} = Username, {link} = Reset link, {app_name} = App name',
'log_password_reset_requested' => 'Password reset requested',
'log_password_changed_self' => ':name changed their password',
'log_dsgvo_viewed' => 'GDPR document of :name viewed',
// Multi-Language Legal Editor
'legal_language_label' => 'Language',
'legal_impressum_label' => 'Legal Notice',
'legal_datenschutz_label' => 'Privacy Policy',
'legal_password_reset_email_label' => 'Password Reset Email',
// Email Tab
'settings_tab_mail' => 'Email',
'mail_config_title' => 'Email Configuration',
'mail_config_hint' => 'SMTP settings for sending emails (e.g. password reset, notifications).',
'mail_mailer_label' => 'Sending Method',
'mail_log_mode' => 'No sending (Log)',
'mail_host_label' => 'SMTP Host',
'mail_port_label' => 'Port',
'mail_username_label' => 'Username',
'mail_password_label' => 'Password',
'mail_from_address_label' => 'Sender Address',
'mail_from_name_label' => 'Sender Name',
'mail_encryption_label' => 'Encryption',
'mail_encryption_none' => 'None',
'mail_save' => 'Save Mail Settings',
'mail_saved' => 'Mail settings have been saved.',
'mail_test_button' => 'Test Connection',
'mail_testing' => 'Testing connection...',
'mail_test_success' => 'SMTP connection successful!',
// Player statistics
'stats_player_detail' => 'Player details',
'stats_total_goals' => 'Total goals',
'stats_total_shots' => 'Total shots',
'stats_gk_appearances' => 'GK appearances',
'stats_total_saves' => 'Total saves',
'stats_close' => 'Close',
'player_goals' => 'Goals',
// Positions & Court
'position' => 'Position',
'court_visualization' => 'Court Formation',
'court_no_data' => 'No data',
'performance_good' => 'Good',
'performance_average' => 'Average',
'performance_below' => 'Below average',
];