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>
This commit is contained in:
Rhino
2026-03-02 11:47:34 +01:00
parent 2e24a40d68
commit ad60e7a9f9
46 changed files with 2041 additions and 86 deletions

View File

@@ -307,6 +307,10 @@ return [
'log_participant_changed' => 'تم تغيير حالة المشاركة لـ ":event" إلى :status',
'log_catering_changed' => 'تم تغيير حالة التموين لـ ":event" إلى :status',
'log_timekeeper_changed' => 'تم تغيير حالة الميقاتي لـ ":event" إلى :status',
'log_carpool_offer' => 'تم عرض رحلة لـ ":event" (:seats مقاعد)',
'log_carpool_withdrawn' => 'تم سحب الرحلة لـ ":event" (تم إزالة :passengers ركاب)',
'log_carpool_joined' => ':player يركب مع :driver (الموعد: ":event")',
'log_carpool_left' => 'تم إزالة :player من رحلة :driver (الموعد: ":event")',
'log_comment_created' => 'تم إضافة تعليق إلى ":event"',
'log_comment_deleted' => 'تم حذف تعليق من ":event"',
'log_file_uploaded' => 'تم رفع الملف ":name"',
@@ -356,6 +360,15 @@ return [
'favicon_uploaded' => 'تم تحديث الأيقونة.',
'favicon_removed' => 'تم إزالة الأيقونة.',
// Logos
'logo_login_label' => 'شعار تسجيل الدخول',
'logo_login_desc' => 'يُعرض في صفحة تسجيل الدخول فوق اسم التطبيق.',
'logo_app_label' => 'شعار التطبيق (شريط التنقل)',
'logo_app_desc' => 'يُعرض في شريط التنقل بجانب اسم التطبيق.',
'logo_current' => 'الشعار الحالي',
'logo_remove' => 'إزالة الشعار',
'logo_hint' => 'PNG, SVG, JPG, GIF, WebP (الحد الأقصى 1 ميجابايت)',
// Undo / Revert
'log_revert' => 'تراجع',
'log_revert_confirm' => 'هل تريد حقاً التراجع عن هذا الإجراء؟',
@@ -546,4 +559,21 @@ return [
'mail_test_button' => 'اختبار الاتصال',
'mail_testing' => 'جاري اختبار الاتصال...',
'mail_test_success' => 'اتصال SMTP ناجح!',
// إحصائيات اللاعبين
'stats_player_detail' => 'تفاصيل اللاعب',
'stats_total_goals' => 'إجمالي الأهداف',
'stats_total_shots' => 'إجمالي التسديدات',
'stats_gk_appearances' => 'مباريات كحارس',
'stats_total_saves' => 'إجمالي التصديات',
'stats_close' => 'إغلاق',
'player_goals' => 'أهداف',
// المراكز والملعب
'position' => 'المركز',
'court_visualization' => 'تشكيلة الملعب',
'court_no_data' => 'لا توجد بيانات',
'performance_good' => 'جيد',
'performance_average' => 'متوسط',
'performance_below' => 'أقل من المتوسط',
];

View File

@@ -31,6 +31,25 @@ return [
'timekeeper_short' => 'ميقاتي',
'no_timekeeper_yet' => 'لم يتم تعيين ميقاتي بعد.',
'timekeeper_updated' => 'تم تحديث حالة الميقاتي.',
// مشاركة السيارات
'carpool' => 'مشاركة السيارات',
'carpool_offer' => 'عرض رحلة',
'carpool_update' => 'تحديث الرحلة',
'carpool_seats' => 'المقاعد المتاحة',
'carpool_seats_count' => ':free من :total مقاعد متاحة',
'carpool_seats_too_few' => 'عدد الركاب المسجلين أكبر من عدد المقاعد الجديد.',
'carpool_note_placeholder' => 'مثلاً نقطة اللقاء، وقت المغادرة...',
'carpool_withdraw' => 'سحب الرحلة',
'carpool_withdraw_confirm' => 'هل تريد حقاً سحب الرحلة؟ سيتم إزالة جميع الركاب.',
'carpool_join' => 'تعيين',
'carpool_leave' => 'إزالة',
'carpool_full' => 'جميع المقاعد مشغولة',
'no_carpool_yet' => 'لا توجد عروض مشاركة سيارات بعد.',
'carpool_my_offer' => 'رحلتي',
'carpool_driver' => 'السائق',
'carpool_passengers' => 'الركاب',
'comments' => 'التعليقات',
'comment_placeholder' => 'اكتب تعليقاً...',
'no_comments' => 'لا توجد تعليقات بعد.',
@@ -57,6 +76,22 @@ return [
'score_away' => 'الفريق الضيف',
'vs' => 'ضد',
// إحصائيات اللاعبين
'stats' => 'إحصائيات اللاعبين',
'stats_save' => 'حفظ الإحصائيات',
'stats_saved' => 'تم حفظ الإحصائيات.',
'stats_goalkeeper' => 'حارس',
'stats_goalkeeper_long' => 'حارس المرمى',
'stats_saves' => 'تصديات',
'stats_shots_on_goal' => 'تسديدات على المرمى',
'stats_goals' => 'أهداف',
'stats_shots' => 'تسديدات',
'stats_note' => 'ملاحظة',
'stats_hit_rate' => 'نسبة الإصابة',
'stats_save_rate' => 'نسبة التصدي',
'stats_no_data' => 'لا توجد بيانات إحصائية.',
'stats_position' => 'المركز',
// Staff visibility
'signed_up' => 'سجّل',
'withdrawn' => 'انسحب',

View File

@@ -82,6 +82,24 @@ return [
'parent_rep' => 'ممثل أولياء الأمور',
'user' => 'ولي أمر',
],
'player_position' => [
'torwart' => 'حارس مرمى',
'links_aussen' => 'جناح أيسر',
'rechts_aussen' => 'جناح أيمن',
'rueckraum_links' => 'ظهير أيسر',
'rueckraum_mitte' => 'صانع ألعاب',
'rueckraum_rechts' => 'ظهير أيمن',
'kreislaeufer' => 'دوّار',
],
'player_position_short' => [
'torwart' => 'حر',
'links_aussen' => 'جأ',
'rechts_aussen' => 'جي',
'rueckraum_links' => 'ظأ',
'rueckraum_mitte' => 'صأ',
'rueckraum_rechts' => 'ظي',
'kreislaeufer' => 'دو',
],
],
'locales' => [
'de' => 'Deutsch',

View File

@@ -338,6 +338,10 @@ return [
'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_carpool_offer' => 'Fahrt für ":event" angeboten (:seats Plätze)',
'log_carpool_withdrawn' => 'Fahrt für ":event" zurückgezogen (:passengers Mitfahrer entfernt)',
'log_carpool_joined' => ':player fährt bei :driver mit (Event: ":event")',
'log_carpool_left' => ':player wurde von Fahrt bei :driver entfernt (Event: ":event")',
'log_comment_created' => 'Kommentar zu ":event" hinzugefügt',
'log_comment_deleted' => 'Kommentar zu ":event" gelöscht',
'log_file_uploaded' => 'Datei ":name" hochgeladen',
@@ -389,6 +393,15 @@ return [
'favicon_uploaded' => 'Favicon wurde aktualisiert.',
'favicon_removed' => 'Favicon wurde entfernt.',
// Logos
'logo_login_label' => 'Login-Logo',
'logo_login_desc' => 'Wird auf der Anmeldeseite oberhalb des App-Namens angezeigt.',
'logo_app_label' => 'App-Logo (Navigation)',
'logo_app_desc' => 'Wird in der Navigationsleiste neben dem App-Namen angezeigt.',
'logo_current' => 'Aktuelles Logo',
'logo_remove' => 'Logo entfernen',
'logo_hint' => 'PNG, SVG, JPG, GIF, WebP (max. 1 MB)',
// Undo / Revert
'log_revert' => 'Rückgängig',
'log_revert_confirm' => 'Möchtest du diese Aktion wirklich rückgängig machen?',
@@ -566,7 +579,7 @@ return [
// 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_config_hint' => 'SMTP-Einstellungen für den E-Mail-Versand (z.B. Passwort-Reset, Benachrichtigungen).',
'mail_mailer_label' => 'Versandmethode',
'mail_log_mode' => 'Kein Versand (Log)',
'mail_host_label' => 'SMTP-Host',
@@ -575,11 +588,28 @@ return [
'mail_password_label' => 'Passwort',
'mail_from_address_label' => 'Absender-Adresse',
'mail_from_name_label' => 'Absender-Name',
'mail_encryption_label' => 'Verschluesselung',
'mail_encryption_label' => 'Verschlüsselung',
'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!',
// Spielerstatistik
'stats_player_detail' => 'Spielerdetails',
'stats_total_goals' => 'Gesamttore',
'stats_total_shots' => 'Gesamtwürfe',
'stats_gk_appearances' => 'TW-Einsätze',
'stats_total_saves' => 'Gesamtparaden',
'stats_close' => 'Schließen',
'player_goals' => 'Tore',
// Positionen & Spielfeld
'position' => 'Position',
'court_visualization' => 'Spielfeld-Aufstellung',
'court_no_data' => 'Keine Daten',
'performance_good' => 'Gut',
'performance_average' => 'Mittel',
'performance_below' => 'Unterdurchschnittlich',
];

View File

@@ -40,6 +40,24 @@ return [
'no_timekeeper_yet' => 'Noch kein Zeitnehmer eingetragen.',
'timekeeper_updated' => 'Zeitnehmer-Status aktualisiert.',
// Fahrgemeinschaften
'carpool' => 'Fahrgemeinschaften',
'carpool_offer' => 'Fahrt anbieten',
'carpool_update' => 'Fahrt aktualisieren',
'carpool_seats' => 'Freie Plätze',
'carpool_seats_count' => ':free von :total Plätzen frei',
'carpool_seats_too_few' => 'Es sind bereits mehr Mitfahrer zugeordnet als die neue Sitzplatzanzahl.',
'carpool_note_placeholder' => 'z.B. Treffpunkt, Abfahrtszeit...',
'carpool_withdraw' => 'Fahrt zurückziehen',
'carpool_withdraw_confirm' => 'Fahrt wirklich zurückziehen? Alle Mitfahrer werden entfernt.',
'carpool_join' => 'Zuordnen',
'carpool_leave' => 'Entfernen',
'carpool_full' => 'Alle Plätze belegt',
'no_carpool_yet' => 'Noch keine Fahrgemeinschaften angeboten.',
'carpool_my_offer' => 'Meine Fahrt',
'carpool_driver' => 'Fahrer/in',
'carpool_passengers' => 'Mitfahrer',
// Kommentare
'comments' => 'Kommentare',
'comment_placeholder' => 'Kommentar schreiben...',
@@ -71,6 +89,22 @@ return [
'score_away' => 'Gast',
'vs' => 'vs.',
// Spielerstatistik
'stats' => 'Spielerstatistik',
'stats_save' => 'Statistik speichern',
'stats_saved' => 'Statistik gespeichert.',
'stats_goalkeeper' => 'TW',
'stats_goalkeeper_long' => 'Torwart',
'stats_saves' => 'Gehalten',
'stats_shots_on_goal' => 'Würfe aufs Tor',
'stats_goals' => 'Tore',
'stats_shots' => 'Torwürfe',
'stats_note' => 'Bemerkung',
'stats_hit_rate' => 'Trefferquote',
'stats_save_rate' => 'Fangquote',
'stats_no_data' => 'Keine Statistikdaten.',
'stats_position' => 'Position',
// Staff-Sichtbarkeit
'signed_up' => 'zugesagt',
'withdrawn' => 'abgemeldet',

View File

@@ -97,6 +97,24 @@ return [
'parent_rep' => 'Elternvertretung',
'user' => 'Elternteil',
],
'player_position' => [
'torwart' => 'Torwart',
'links_aussen' => 'Linksaußen',
'rechts_aussen' => 'Rechtsaußen',
'rueckraum_links' => 'Rückraum Links',
'rueckraum_mitte' => 'Rückraum Mitte',
'rueckraum_rechts' => 'Rückraum Rechts',
'kreislaeufer' => 'Kreisläufer',
],
'player_position_short' => [
'torwart' => 'TW',
'links_aussen' => 'LA',
'rechts_aussen' => 'RA',
'rueckraum_links' => 'RL',
'rueckraum_mitte' => 'RM',
'rueckraum_rechts' => 'RR',
'kreislaeufer' => 'KL',
],
],
// Sprachen

View File

@@ -306,6 +306,10 @@ return [
'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',
@@ -355,6 +359,15 @@ return [
'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?',
@@ -545,4 +558,21 @@ return [
'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',
];

View File

@@ -30,6 +30,25 @@ return [
'timekeeper_short' => 'Timekeeper',
'no_timekeeper_yet' => 'No timekeeper assigned yet.',
'timekeeper_updated' => 'Timekeeper status updated.',
// Carpooling
'carpool' => 'Carpooling',
'carpool_offer' => 'Offer a ride',
'carpool_update' => 'Update ride',
'carpool_seats' => 'Available seats',
'carpool_seats_count' => ':free of :total seats available',
'carpool_seats_too_few' => 'There are already more passengers assigned than the new seat count.',
'carpool_note_placeholder' => 'e.g. meeting point, departure time...',
'carpool_withdraw' => 'Withdraw ride',
'carpool_withdraw_confirm' => 'Really withdraw ride? All passengers will be removed.',
'carpool_join' => 'Assign',
'carpool_leave' => 'Remove',
'carpool_full' => 'All seats taken',
'no_carpool_yet' => 'No carpooling offers yet.',
'carpool_my_offer' => 'My ride',
'carpool_driver' => 'Driver',
'carpool_passengers' => 'Passengers',
'comments' => 'Comments',
'comment_placeholder' => 'Write a comment...',
'no_comments' => 'No comments yet.',
@@ -56,6 +75,22 @@ return [
'score_away' => 'Away',
'vs' => 'vs.',
// Player statistics
'stats' => 'Player Statistics',
'stats_save' => 'Save statistics',
'stats_saved' => 'Statistics saved.',
'stats_goalkeeper' => 'GK',
'stats_goalkeeper_long' => 'Goalkeeper',
'stats_saves' => 'Saves',
'stats_shots_on_goal' => 'Shots on goal',
'stats_goals' => 'Goals',
'stats_shots' => 'Shots',
'stats_note' => 'Note',
'stats_hit_rate' => 'Hit rate',
'stats_save_rate' => 'Save rate',
'stats_no_data' => 'No statistics data.',
'stats_position' => 'Position',
// Staff visibility
'signed_up' => 'signed up',
'withdrawn' => 'withdrawn',

View File

@@ -81,6 +81,24 @@ return [
'parent_rep' => 'Parent Representative',
'user' => 'Parent',
],
'player_position' => [
'torwart' => 'Goalkeeper',
'links_aussen' => 'Left Wing',
'rechts_aussen' => 'Right Wing',
'rueckraum_links' => 'Left Back',
'rueckraum_mitte' => 'Centre Back',
'rueckraum_rechts' => 'Right Back',
'kreislaeufer' => 'Pivot',
],
'player_position_short' => [
'torwart' => 'GK',
'links_aussen' => 'LW',
'rechts_aussen' => 'RW',
'rueckraum_links' => 'LB',
'rueckraum_mitte' => 'CB',
'rueckraum_rechts' => 'RB',
'kreislaeufer' => 'PV',
],
],
'locales' => [
'de' => 'Deutsch',

View File

@@ -307,6 +307,10 @@ return [
'log_participant_changed' => 'Status uczestnictwa dla ":event" zmieniony na :status',
'log_catering_changed' => 'Status cateringu dla ":event" zmieniony na :status',
'log_timekeeper_changed' => 'Status chronometrażysty dla ":event" zmieniony na :status',
'log_carpool_offer' => 'Przejazd dla ":event" zaoferowany (:seats miejsc)',
'log_carpool_withdrawn' => 'Przejazd dla ":event" wycofany (:passengers pasażerów usuniętych)',
'log_carpool_joined' => ':player jedzie z :driver (Termin: ":event")',
'log_carpool_left' => ':player usunięty z przejazdu z :driver (Termin: ":event")',
'log_comment_created' => 'Dodano komentarz do ":event"',
'log_comment_deleted' => 'Usunięto komentarz z ":event"',
'log_file_uploaded' => 'Plik ":name" przesłany',
@@ -356,6 +360,15 @@ return [
'favicon_uploaded' => 'Ikona została zaktualizowana.',
'favicon_removed' => 'Ikona została usunięta.',
// Logos
'logo_login_label' => 'Logo logowania',
'logo_login_desc' => 'Wyświetlane na stronie logowania nad nazwą aplikacji.',
'logo_app_label' => 'Logo aplikacji (nawigacja)',
'logo_app_desc' => 'Wyświetlane na pasku nawigacji obok nazwy aplikacji.',
'logo_current' => 'Aktualne logo',
'logo_remove' => 'Usuń logo',
'logo_hint' => 'PNG, SVG, JPG, GIF, WebP (maks. 1 MB)',
// Undo / Revert
'log_revert' => 'Cofnij',
'log_revert_confirm' => 'Czy na pewno chcesz cofnąć tę akcję?',
@@ -546,4 +559,21 @@ return [
'mail_test_button' => 'Testuj połączenie',
'mail_testing' => 'Testowanie połączenia...',
'mail_test_success' => 'Połączenie SMTP udane!',
// Statystyki graczy
'stats_player_detail' => 'Szczegóły gracza',
'stats_total_goals' => 'Łączne bramki',
'stats_total_shots' => 'Łączne rzuty',
'stats_gk_appearances' => 'Występy jako bramkarz',
'stats_total_saves' => 'Łączne obrony',
'stats_close' => 'Zamknij',
'player_goals' => 'Bramki',
// Pozycje i boisko
'position' => 'Pozycja',
'court_visualization' => 'Ustawienie na boisku',
'court_no_data' => 'Brak danych',
'performance_good' => 'Dobrze',
'performance_average' => 'Średnio',
'performance_below' => 'Poniżej średniej',
];

View File

@@ -31,6 +31,25 @@ return [
'timekeeper_short' => 'Sędzia czasu',
'no_timekeeper_yet' => 'Brak przypisanego chronometrażysty.',
'timekeeper_updated' => 'Status chronometrażysty zaktualizowany.',
// Wspólne przejazdy
'carpool' => 'Wspólne przejazdy',
'carpool_offer' => 'Zaoferuj przejazd',
'carpool_update' => 'Zaktualizuj przejazd',
'carpool_seats' => 'Wolne miejsca',
'carpool_seats_count' => ':free z :total miejsc wolnych',
'carpool_seats_too_few' => 'Przypisano już więcej pasażerów niż nowa liczba miejsc.',
'carpool_note_placeholder' => 'np. miejsce spotkania, godzina odjazdu...',
'carpool_withdraw' => 'Wycofaj przejazd',
'carpool_withdraw_confirm' => 'Naprawdę wycofać przejazd? Wszyscy pasażerowie zostaną usunięci.',
'carpool_join' => 'Przypisz',
'carpool_leave' => 'Usuń',
'carpool_full' => 'Wszystkie miejsca zajęte',
'no_carpool_yet' => 'Brak ofert wspólnych przejazdów.',
'carpool_my_offer' => 'Mój przejazd',
'carpool_driver' => 'Kierowca',
'carpool_passengers' => 'Pasażerowie',
'comments' => 'Komentarze',
'comment_placeholder' => 'Napisz komentarz...',
'no_comments' => 'Brak komentarzy.',
@@ -57,6 +76,22 @@ return [
'score_away' => 'Goście',
'vs' => 'vs.',
// Statystyki graczy
'stats' => 'Statystyki graczy',
'stats_save' => 'Zapisz statystyki',
'stats_saved' => 'Statystyki zapisane.',
'stats_goalkeeper' => 'BR',
'stats_goalkeeper_long' => 'Bramkarz',
'stats_saves' => 'Obrony',
'stats_shots_on_goal' => 'Strzały na bramkę',
'stats_goals' => 'Bramki',
'stats_shots' => 'Rzuty',
'stats_note' => 'Uwaga',
'stats_hit_rate' => 'Skuteczność',
'stats_save_rate' => 'Skuteczność obron',
'stats_no_data' => 'Brak danych statystycznych.',
'stats_position' => 'Pozycja',
// Staff visibility
'signed_up' => 'zapisany',
'withdrawn' => 'wypisany',

View File

@@ -82,6 +82,24 @@ return [
'parent_rep' => 'Przedstawiciel rodziców',
'user' => 'Rodzic',
],
'player_position' => [
'torwart' => 'Bramkarz',
'links_aussen' => 'Lewe skrzydło',
'rechts_aussen' => 'Prawe skrzydło',
'rueckraum_links' => 'Lewy rozgrywający',
'rueckraum_mitte' => 'Środkowy rozgrywający',
'rueckraum_rechts' => 'Prawy rozgrywający',
'kreislaeufer' => 'Kołowy',
],
'player_position_short' => [
'torwart' => 'BR',
'links_aussen' => 'LS',
'rechts_aussen' => 'PS',
'rueckraum_links' => 'LR',
'rueckraum_mitte' => 'ŚR',
'rueckraum_rechts' => 'PR',
'kreislaeufer' => 'KO',
],
],
'locales' => [
'de' => 'Deutsch',

View File

@@ -325,6 +325,10 @@ return [
'log_participant_changed' => 'Статус участия для ":event" изменён на :status',
'log_catering_changed' => 'Статус кейтеринга для ":event" изменён на :status',
'log_timekeeper_changed' => 'Статус хронометриста для ":event" изменён на :status',
'log_carpool_offer' => 'Поездка для ":event" предложена (:seats мест)',
'log_carpool_withdrawn' => 'Поездка для ":event" отменена (:passengers пассажиров удалено)',
'log_carpool_joined' => ':player едет с :driver (Мероприятие: ":event")',
'log_carpool_left' => ':player удалён из поездки с :driver (Мероприятие: ":event")',
'log_comment_created' => 'Комментарий добавлен к ":event"',
'log_comment_deleted' => 'Комментарий удалён из ":event"',
'log_file_uploaded' => 'Файл ":name" загружен',
@@ -374,6 +378,15 @@ return [
'favicon_uploaded' => 'Фавикон обновлён.',
'favicon_removed' => 'Фавикон удалён.',
// Logos
'logo_login_label' => 'Логотип входа',
'logo_login_desc' => 'Отображается на странице входа над названием приложения.',
'logo_app_label' => 'Логотип приложения (навигация)',
'logo_app_desc' => 'Отображается в панели навигации рядом с названием приложения.',
'logo_current' => 'Текущий логотип',
'logo_remove' => 'Удалить логотип',
'logo_hint' => 'PNG, SVG, JPG, GIF, WebP (макс. 1 МБ)',
// Undo / Revert
'log_revert' => 'Отменить',
'log_revert_confirm' => 'Вы действительно хотите отменить это действие?',
@@ -564,4 +577,21 @@ return [
'mail_test_button' => 'Проверить соединение',
'mail_testing' => 'Проверка соединения...',
'mail_test_success' => 'SMTP-соединение успешно!',
// Статистика игроков
'stats_player_detail' => 'Детали игрока',
'stats_total_goals' => 'Всего голов',
'stats_total_shots' => 'Всего бросков',
'stats_gk_appearances' => 'Игры вратарём',
'stats_total_saves' => 'Всего отражений',
'stats_close' => 'Закрыть',
'player_goals' => 'Голы',
// Позиции и площадка
'position' => 'Позиция',
'court_visualization' => 'Расстановка на площадке',
'court_no_data' => 'Нет данных',
'performance_good' => 'Хорошо',
'performance_average' => 'Средне',
'performance_below' => 'Ниже среднего',
];

View File

@@ -40,6 +40,24 @@ return [
'no_timekeeper_yet' => 'Хронометрист ещё не назначен.',
'timekeeper_updated' => 'Статус хронометриста обновлён.',
// Совместные поездки
'carpool' => 'Совместные поездки',
'carpool_offer' => 'Предложить поездку',
'carpool_update' => 'Обновить поездку',
'carpool_seats' => 'Свободные места',
'carpool_seats_count' => ':free из :total мест свободно',
'carpool_seats_too_few' => 'Пассажиров уже больше, чем новое количество мест.',
'carpool_note_placeholder' => 'напр. место встречи, время отправления...',
'carpool_withdraw' => 'Отменить поездку',
'carpool_withdraw_confirm' => 'Действительно отменить поездку? Все пассажиры будут удалены.',
'carpool_join' => 'Назначить',
'carpool_leave' => 'Удалить',
'carpool_full' => 'Все места заняты',
'no_carpool_yet' => 'Пока нет предложений по совместным поездкам.',
'carpool_my_offer' => 'Моя поездка',
'carpool_driver' => 'Водитель',
'carpool_passengers' => 'Пассажиры',
// Комментарии
'comments' => 'Комментарии',
'comment_placeholder' => 'Написать комментарий...',
@@ -71,6 +89,22 @@ return [
'score_away' => 'Гости',
'vs' => 'против',
// Статистика игроков
'stats' => 'Статистика игроков',
'stats_save' => 'Сохранить статистику',
'stats_saved' => 'Статистика сохранена.',
'stats_goalkeeper' => 'ВР',
'stats_goalkeeper_long' => 'Вратарь',
'stats_saves' => 'Отражено',
'stats_shots_on_goal' => 'Броски по воротам',
'stats_goals' => 'Голы',
'stats_shots' => 'Броски',
'stats_note' => 'Примечание',
'stats_hit_rate' => 'Процент попаданий',
'stats_save_rate' => 'Процент отражений',
'stats_no_data' => 'Нет данных статистики.',
'stats_position' => 'Позиция',
// Staff visibility
'signed_up' => 'записался',
'withdrawn' => 'отказался',

View File

@@ -82,6 +82,24 @@ return [
'parent_rep' => 'Представитель родителей',
'user' => 'Родитель',
],
'player_position' => [
'torwart' => 'Вратарь',
'links_aussen' => 'Левый крайний',
'rechts_aussen' => 'Правый крайний',
'rueckraum_links' => 'Левый полусредний',
'rueckraum_mitte' => 'Центральный разыгрывающий',
'rueckraum_rechts' => 'Правый полусредний',
'kreislaeufer' => 'Линейный',
],
'player_position_short' => [
'torwart' => 'ВР',
'links_aussen' => 'ЛК',
'rechts_aussen' => 'ПК',
'rueckraum_links' => 'ЛП',
'rueckraum_mitte' => 'ЦР',
'rueckraum_rechts' => 'ПП',
'kreislaeufer' => 'ЛН',
],
],
'locales' => [
'de' => 'Deutsch',

View File

@@ -325,6 +325,10 @@ return [
'log_participant_changed' => '":event" için katılım durumu :status olarak değiştirildi',
'log_catering_changed' => '":event" için ikram durumu :status olarak değiştirildi',
'log_timekeeper_changed' => '":event" için zaman tutucu durumu :status olarak değiştirildi',
'log_carpool_offer' => '":event" için yolculuk teklif edildi (:seats koltuk)',
'log_carpool_withdrawn' => '":event" için yolculuk geri çekildi (:passengers yolcu kaldırıldı)',
'log_carpool_joined' => ':player, :driver ile gidiyor (Etkinlik: ":event")',
'log_carpool_left' => ':player, :driver ile yolculuktan kaldırıldı (Etkinlik: ":event")',
'log_comment_created' => '":event" için yorum eklendi',
'log_comment_deleted' => '":event" için yorum silindi',
'log_file_uploaded' => '":name" dosyası yüklendi',
@@ -374,6 +378,15 @@ return [
'favicon_uploaded' => 'Favicon güncellendi.',
'favicon_removed' => 'Favicon kaldırıldı.',
// Logos
'logo_login_label' => 'Giriş Logosu',
'logo_login_desc' => 'Giriş sayfasında uygulama adının üstünde görüntülenir.',
'logo_app_label' => 'Uygulama Logosu (Gezinme)',
'logo_app_desc' => 'Gezinme çubuğunda uygulama adının yanında görüntülenir.',
'logo_current' => 'Mevcut logo',
'logo_remove' => 'Logoyu kaldır',
'logo_hint' => 'PNG, SVG, JPG, GIF, WebP (maks. 1 MB)',
// Undo / Revert
'log_revert' => 'Geri al',
'log_revert_confirm' => 'Bu işlemi gerçekten geri almak istiyor musunuz?',
@@ -564,4 +577,21 @@ return [
'mail_test_button' => 'Bağlantıyı Test Et',
'mail_testing' => 'Bağlantı test ediliyor...',
'mail_test_success' => 'SMTP bağlantısı başarılı!',
// Oyuncu istatistikleri
'stats_player_detail' => 'Oyuncu detayları',
'stats_total_goals' => 'Toplam goller',
'stats_total_shots' => 'Toplam atışlar',
'stats_gk_appearances' => 'Kaleci maçları',
'stats_total_saves' => 'Toplam kurtarışlar',
'stats_close' => 'Kapat',
'player_goals' => 'Goller',
// Pozisyonlar ve Saha
'position' => 'Pozisyon',
'court_visualization' => 'Saha Dizilişi',
'court_no_data' => 'Veri yok',
'performance_good' => 'İyi',
'performance_average' => 'Orta',
'performance_below' => 'Ortalamanın altı',
];

View File

@@ -31,6 +31,25 @@ return [
'timekeeper_short' => 'Zaman Tutucusu',
'no_timekeeper_yet' => 'Henüz zaman tutucusu atanmadı.',
'timekeeper_updated' => 'Zaman tutucusu durumu güncellendi.',
// Araç paylaşımı
'carpool' => 'Araç Paylaşımı',
'carpool_offer' => 'Yolculuk teklif et',
'carpool_update' => 'Yolculuğu güncelle',
'carpool_seats' => 'Boş koltuklar',
'carpool_seats_count' => ':free / :total koltuk boş',
'carpool_seats_too_few' => 'Zaten yeni koltuk sayısından fazla yolcu atanmış.',
'carpool_note_placeholder' => 'örn. buluşma noktası, kalkış saati...',
'carpool_withdraw' => 'Yolculuğu geri çek',
'carpool_withdraw_confirm' => 'Yolculuğu gerçekten geri çekmek istiyor musunuz? Tüm yolcular kaldırılacak.',
'carpool_join' => 'Ata',
'carpool_leave' => 'Kaldır',
'carpool_full' => 'Tüm koltuklar dolu',
'no_carpool_yet' => 'Henüz araç paylaşımı teklifi yok.',
'carpool_my_offer' => 'Benim yolculuğum',
'carpool_driver' => 'Sürücü',
'carpool_passengers' => 'Yolcular',
'comments' => 'Yorumlar',
'comment_placeholder' => 'Yorum yaz...',
'no_comments' => 'Henüz yorum yok.',
@@ -57,6 +76,22 @@ return [
'score_away' => 'Deplasman',
'vs' => 'vs.',
// Oyuncu istatistikleri
'stats' => 'Oyuncu İstatistikleri',
'stats_save' => 'İstatistikleri kaydet',
'stats_saved' => 'İstatistikler kaydedildi.',
'stats_goalkeeper' => 'KL',
'stats_goalkeeper_long' => 'Kaleci',
'stats_saves' => 'Kurtarışlar',
'stats_shots_on_goal' => 'Kaleye atışlar',
'stats_goals' => 'Goller',
'stats_shots' => 'Atışlar',
'stats_note' => 'Not',
'stats_hit_rate' => 'İsabet oranı',
'stats_save_rate' => 'Kurtarış oranı',
'stats_no_data' => 'İstatistik verisi yok.',
'stats_position' => 'Pozisyon',
// Staff visibility
'signed_up' => 'kaydoldu',
'withdrawn' => 'çekildi',

View File

@@ -82,6 +82,24 @@ return [
'parent_rep' => 'Veli Temsilcisi',
'user' => 'Veli',
],
'player_position' => [
'torwart' => 'Kaleci',
'links_aussen' => 'Sol Kanat',
'rechts_aussen' => 'Sağ Kanat',
'rueckraum_links' => 'Sol Çapraz',
'rueckraum_mitte' => 'Orta Çapraz',
'rueckraum_rechts' => 'Sağ Çapraz',
'kreislaeufer' => 'Pivot',
],
'player_position_short' => [
'torwart' => 'KL',
'links_aussen' => 'SK',
'rechts_aussen' => 'SĞK',
'rueckraum_links' => 'SÇ',
'rueckraum_mitte' => 'OÇ',
'rueckraum_rechts' => 'SĞÇ',
'kreislaeufer' => 'PV',
],
],
'locales' => [
'de' => 'Deutsch',