de: admin: layout: title: "Match Live TV — Admin" nav: dashboard: Dashboard ops: Ops clubs: Vereine & Teams billing: Abrechnung youtube: YouTube sessions: Sitzungen password: Passwort logout: Abmelden flash: login_required: Bitte melde dich an, um fortzufahren login_success: Erfolgreich angemeldet invalid_credentials: Ungültiger Benutzername oder Passwort logout_success: Abgemeldet password_current_incorrect: Das aktuelle Passwort ist falsch password_too_short: Das neue Passwort muss mindestens 8 Zeichen lang sein password_too_long: Das neue Passwort darf höchstens 72 Zeichen lang sein password_too_weak: Das neue Passwort muss mindestens 3 aus Kleinbuchstaben, Großbuchstaben, Zahlen und Symbolen enthalten password_same_as_current: Das neue Passwort muss sich vom aktuellen unterscheiden password_mismatch: Die Passwörter stimmen nicht überein password_updated: Passwort aktualisiert ops_acknowledged: Vorfall übernommen ops_resolved: Vorfall gelöst ops_muted: Benachrichtigungen für 24 Stunden stummgeschaltet comped_granted: "Kostenloses Abonnement %{plan} für %{club} aktiviert." comped_revoked: "Kostenloses Abonnement für %{club} widerrufen." session_already_terminated: "Sitzung bereits beendet (%{status})." session_stopped: Sitzung beendet. session_stop_error: "Fehler beim Beenden: %{error}" session_terminated_no_regia: "Sitzung beendet: Regie-Link kann nicht erzeugt werden." session_regia_generated: Regie-Link erzeugt. invoice_upload_hint: Lade das PDF aus der Liste „Zu berechnende Zahlungen“ hoch. invoice_draft_created: Entwurf erstellt. Lade das PDF auf der Abrechnungsseite oder unten hoch. invoice_issued: "Rechnung %{number} ausgestellt und an %{email} gesendet." invoice_updated: "Rechnung %{number} aktualisiert." invoice_uploaded: "Rechnung hochgeladen und an %{email} gesendet." youtube_not_configured: Konfiguriere YOUTUBE_CLIENT_ID und YOUTUBE_CLIENT_SECRET in .env common: free_plan: Free yes: "Ja" no: "Nein" dash: "—" live_page: Live-Seite auth: new: title: Admin-Anmeldung username_label: Benutzername password_label: Passwort submit: Anmelden initial_credentials_html: "Anfangs-Zugangsdaten: admin / admin. Ändere das Passwort nach der ersten Anmeldung." passwords: edit: title: Passwort ändern current_password_label: Aktuelles Passwort new_password_label: "Neues Passwort (mind. 8, mindestens 3 Zeichenarten)" confirm_password_label: Neues Passwort bestätigen submit: Passwort speichern cancel: Abbrechen dashboard: kpi: active_sessions: Aktive Sitzungen active_sessions_sub: gerade live today: Heute übertragen today_sub: "%{duration} Streaming" month: Diesen Monat übertragen month_sub: "%{duration} insgesamt" teams: Teams teams_sub: "%{count} Nutzer" cpu: CPU cpu_sub: "Last %{one} / %{five} / %{fifteen}" ram: RAM ram_sub: "%{used} / %{total}" network: Bandbreite (gesamt) network_sub: "↑ %{tx} · ↓ %{rx}" recordings: Replays im Archiv recordings_sub: "%{count} Aufnahmen" charts: cpu: CPU (%) ram: RAM (%) ops_panel: title: Plattformstatus (Ops) critical: "%{count} kritische(r) offene(r) Vorfall/Vorfälle" view_dashboard: Ops-Dashboard ansehen warnings: "%{count} Warnung(en)" dashboard_link: Ops-Dashboard none_html: "Keine offenen Vorfälle. %{link}" disk: system_title: Systemfestplatte free_label: "Frei: %{free} (%{percent}% belegt)" not_available: Festplattenmetriken nicht verfügbar recordings_title: Aufnahmearchiv recordings_content: "Inhalt der Aufnahmen: %{size}" recordings_not_mounted: "Pfad %{path} nicht eingebunden" sessions: title: Aktive Sitzungen table: match: Spiel status: Status start: Start link: Link none: Derzeit keine aktive Sitzung. detail: Details stop: Beenden stop_confirm: Diese Sitzung beenden? regia: Regie teams: title: Teams matches_count: "%{count} Spiele" view_all: "Vereine ansehen (%{count} Teams)" ops: kpi: critical: Kritisch offen warning: Warnungen offen total: Insgesamt offen open: title: Offene Vorfälle table: severity: Schweregrad kind: Typ title: Titel occurrences: Anz. last_seen: Zuletzt none: Keine offenen Vorfälle. Die Plattform ist gesund. actions: acknowledge: Übernommen resolve: Lösen mute: Stumm 24h resolved: title: Gelöst (letzte 30 Tage) table: resolved_at: Gelöst none: Kürzlich keine Vorfälle gelöst. clubs: index: title: Vereine & Teams subtitle_html: "Kostenlose Abonnements (Sponsoren / Aktionen) und YouTube-Status pro Team. Stripe-Zahlungen: %{billing_link}." billing_link: Abrechnung table: club: Verein plan: Plan teams: Teams comped: Kostenlos stripe: Stripe manage: Verwalten invoices: Rechnungen show: back: "← Vereine & Teams" sport_label: "Sportart: %{sport}" recordings_archive: Replay-Archiv billing_link: Zahlungen & Rechnungen youtube_platform_link: Plattform-YouTube-Kanal youtube_club_label: "Vereins-YouTube:" youtube_connected: (verbunden) youtube_premium_full_not_connected: Premium Full — Vereinskanal nicht verbunden (nutzt Match Live TV) no_channel_hint_html: "Ohne verbundenen Kanal nutzt die App den Match-Live-TV-Kanal. %{link}." link_channel: Kanal verbinden (Vereinsseite) teams_title: Teams no_teams: Keine Teams registriert. table: team: Team sport: Sportart matches_and_details: Spiele & Details replay: Replays comped: title: Kostenloses Abonnement description: "Sponsor oder Aktion: Vergib Premium Light/Full ohne Stripe-Zahlung. Jederzeit widerrufbar." active_label: "Aktiv:" since_label_html: "Seit %{date}" by_admin: "· Admin %{username}" stripe_note: "Hinweis: Es existiert auch ein verknüpftes Stripe-Abo; das kostenlose Abo hat Vorrang vor dem Plan." revoke_button: Kostenloses Abo widerrufen (zurück zu Free oder Stripe wiederherstellen) revoke_confirm: "Das kostenlose Abonnement für %{club} widerrufen?" current_plan: "Aktueller Plan: %{plan}" stripe_active: "· aktive Stripe-Zahlung" plan_label: Plan reason_label: "Grund (z. B. Sponsor 2026)" reason_placeholder: "Sponsor, Aktion…" grant_button: Kostenloses Abo gewähren teams: show: back: "← %{club}" sport_label: "Sportart: %{sport}" club_label_html: "Verein: %{club} · %{replay_link} · %{billing_link}" replay_link: Team-Replays billing_link: Zahlungen & Rechnungen youtube_label: "YouTube:" youtube_platform_default_no_oauth: ", Standard ohne Vereins-OAuth" youtube_platform_channel: "(Plattformkanal%{suffix})" youtube_club_channel: (Vereinskanal) youtube_not_ready: nicht bereit no_channel_hint_html: "Ohne verbundenen Kanal nutzt die App den Match-Live-TV-Kanal. %{link}." link_channel: Kanal verbinden (Vereinsseite) matches_title: Spiele sessions: index: title: Stream-Sitzungen table: match: Spiel status: Status disconnects: Verbindungsabbrüche link: Link detail: Details regia: Regie show: title: "Sitzung %{id}" status_label: "Status:" stop_button: Sitzung beenden stop_confirm: "Übertragung beenden? Der RTMP-Pfad wird entfernt und der Status wechselt zu beendet." match_label: "Spiel: %{team} gegen %{opponent}" youtube_studio: YouTube Studio broadcast: Übertragung rtmp_ingest: "RTMP-Ingest:" events_title: Ereignisse table: type: Typ when: Wann meta: Meta links: watch_title: Live-Link none: Kein Video-Link für diese Sitzung verfügbar. regia_title: Regie-Link terminated: Sitzung beendet — Regie-Link nicht verfügbar. regia_label: Regie valid_until: "Gültig bis %{date}" active_exists: Es existiert bereits ein aktiver Regie-Link (die URL kann nicht abgerufen werden). Erzeuge einen neuen, wenn du ihn erneut teilen musst. none_active: Kein aktiver Regie-Link. Erzeuge einen Link zum Teilen mit der Person, die den Spielstand verwaltet. generate_button: Regie-Link erzeugen billing: index: title: Zu berechnende Zahlungen description: Bezahlte Stripe-Zahlungen ohne Rechnungs-PDF. Erstelle das PDF in deinen Systemen und lade es hier hoch — es wird der Zahlung zugeordnet und dem Kunden per E-Mail gesendet. filter_label: "Vereine filtern:" filter_all: Alle incomplete_profile_warning: Rechnungsdaten unvollständig no_billing_data: Keine Rechnungsdaten — der Kunde muss sein Profil vervollständigen. pdf_label: Rechnungs-PDF upload_button: PDF hochladen und an Kunden senden none_pending: "Keine Zahlungen warten auf eine Rechnung%{club}." none_pending_for_club: " für %{club}" uploaded_title: Bereits hochgeladene Rechnungen table: date: Datum club: Verein description: Beschreibung amount: Betrag invoice: Rechnung status: Status back_dashboard: "← Dashboard" billing_invoices: index: title: "Abrechnung — %{club}" back_dashboard: "← Dashboard" new_invoice: Neue Rechnung (ohne Zahlung) payments_title: Zahlungen table: date: Datum description: Beschreibung amount: Betrag invoice: Rechnung pdf_suffix: " (PDF)" edit_send_pdf: Bearbeiten / PDF senden create_invoice: Rechnung erstellen no_payments: Keine Zahlungen für diesen Verein erfasst. all_invoices_title: Alle Rechnungen table2: number: Nummer date: Datum amount: Betrag status: Status payment: Zahlung edit: Bearbeiten no_invoices: Keine Rechnungen. new: title: "Neue Rechnung — %{club}" linked_payment: "Verknüpft mit der Zahlung vom %{date} (%{amount})." number_label: Rechnungsnummer issued_on_label: Ausstellungsdatum amount_label: "Betrag (€)" notes_label: Interne Notizen (optional) hint: Speichere den Entwurf, lade dann das PDF hoch und sende es dem Kunden vom nächsten Bildschirm aus. submit: Rechnungsentwurf erstellen back: "← Zahlungen & Rechnungen" edit: title: "Rechnung %{number} — %{club}" status_label: "Status:" sent_at: "· Gesendet am %{date}" number_label: Rechnungsnummer issued_on_label: Ausstellungsdatum amount_label: "Betrag (€)" payment_info: "Zahlung: %{description} — %{amount}" pdf_label: Rechnungs-PDF pdf_already: "PDF bereits hochgeladen: %{filename}" notes_label: Interne Notizen save_draft: Entwurf speichern issue_send: Ausstellen und per E-Mail senden issue_confirm: "Die Rechnung an %{email} senden?" back: "← Zahlungen & Rechnungen" youtube: platform_token: title: Token für den Match-Live-TV-Kanal page_title: "YouTube-Token — Match Live TV" channel_label: "Kanal: %{title}" success: "Verbindung erfolgreich. Kopiere diese Zeile sofort:" env_hint_html: "Füge zu /opt/matchlivetv/infra/.env hinzu:" not_shown_again_html: "Wird nicht erneut angezeigt. Danach: docker compose -f docker-compose.prod.yml restart rails sidekiq" no_refresh_token_html: "Google hat keinen Refresh-Token zurückgegeben. Widerrufe in deinem Google-Konto → App-Zugriff „Match Live TV“ und wiederhole den Vorgang ab /admin/youtube/platform." back_dashboard: "← Admin-Dashboard" club_recordings: index: title: "Replays — %{club}"