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' => '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',