Files
MatchLiveTv/backend/config/locales/admin.de.yml
T
eminuxandCursor b88f44ab1c Completa i18n IT/EN/FR/DE/ES su sito pubblico, area autenticata e admin.
Tutte le view marketing, legali, viewer, dashboard e admin usano t(); mailer utente-facing e flash localizzati; admin con LocaleResolver e selettore lingua.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-24 00:38:50 +02:00

312 lines
12 KiB
YAML

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_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: <code>admin</code> / <code>admin</code>. Ändere das Passwort nach der ersten Anmeldung."
passwords:
edit:
title: Passwort ändern
current_password_label: Aktuelles Passwort
new_password_label: "Neues Passwort (mind. 8 Zeichen)"
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 <code>/opt/matchlivetv/infra/.env</code> hinzu:"
not_shown_again_html: "Wird nicht erneut angezeigt. Danach: <code>docker compose -f docker-compose.prod.yml restart rails sidekiq</code>"
no_refresh_token_html: "Google hat keinen Refresh-Token zurückgegeben. Widerrufe in deinem <a href=\"https://myaccount.google.com/permissions\" target=\"_blank\" rel=\"noopener\">Google-Konto → App-Zugriff</a> „Match Live TV“ und wiederhole den Vorgang ab <a href=\"/admin/youtube/platform\">/admin/youtube/platform</a>."
back_dashboard: "← Admin-Dashboard"
club_recordings:
index:
title: "Replays — %{club}"