it:
admin:
layout:
title: "Match Live TV — Admin"
nav:
dashboard: Dashboard
ops: Ops
clubs: Società e squadre
billing: Fatturazione
youtube: YouTube
sessions: Sessioni
password: Password
logout: Esci
flash:
login_required: Accedi per continuare
login_success: Accesso effettuato
invalid_credentials: Username o password non validi
logout_success: Disconnesso
password_current_incorrect: Password attuale non corretta
password_too_short: La nuova password deve avere almeno 8 caratteri
password_too_long: La nuova password non può superare i 72 caratteri
password_too_weak: "La nuova password deve includere almeno 3 tra: minuscole, maiuscole, numeri e simboli"
password_same_as_current: La nuova password deve essere diversa da quella attuale
password_mismatch: Le password non coincidono
password_updated: Password aggiornata
ops_acknowledged: Incidente preso in carico
ops_resolved: Incidente risolto
ops_muted: Notifiche sospese per 24 ore
comped_granted: "Abbonamento omaggio %{plan} attivato per %{club}."
comped_revoked: "Abbonamento omaggio revocato per %{club}."
session_already_terminated: "Sessione già terminata (%{status})."
session_stopped: Sessione terminata.
session_stop_error: "Errore durante la chiusura: %{error}"
session_terminated_no_regia: "Sessione terminata: impossibile generare il link regia."
session_regia_generated: Link regia generato.
invoice_upload_hint: Carica il PDF dalla lista «Pagamenti da fatturare».
invoice_draft_created: Bozza creata. Carica il PDF dalla pagina Fatturazione o qui sotto.
invoice_issued: "Fattura %{number} emessa e inviata a %{email}."
invoice_updated: "Fattura %{number} aggiornata."
invoice_uploaded: "Fattura caricata e inviata a %{email}."
youtube_not_configured: Configura YOUTUBE_CLIENT_ID e YOUTUBE_CLIENT_SECRET in .env
common:
free_plan: Free
yes: "Sì"
no: "No"
dash: "—"
live_page: Pagina live
auth:
new:
title: Accesso admin
username_label: Username
password_label: Password
submit: Accedi
initial_credentials_html: "Credenziali iniziali: admin / admin. Cambia la password dopo il primo accesso."
passwords:
edit:
title: Cambia password
current_password_label: Password attuale
new_password_label: "Nuova password (min. 8, almeno 3 tipi di caratteri)"
confirm_password_label: Conferma nuova password
submit: Salva password
cancel: Annulla
dashboard:
kpi:
active_sessions: Sessioni attive
active_sessions_sub: in diretta ora
today: Trasmesse oggi
today_sub: "%{duration} di streaming"
month: Trasmesse questo mese
month_sub: "%{duration} totali"
teams: Squadre
teams_sub: "%{count} utenti"
cpu: CPU
cpu_sub: "load %{one} / %{five} / %{fifteen}"
ram: RAM
ram_sub: "%{used} / %{total}"
network: Banda (totale)
network_sub: "↑ %{tx} · ↓ %{rx}"
recordings: Replay in archivio
recordings_sub: "%{count} registrazioni"
charts:
cpu: CPU (%)
ram: RAM (%)
ops_panel:
title: Stato piattaforma (Ops)
critical: "%{count} incidente/i critico/i aperto/i"
view_dashboard: Vedi dashboard Ops
warnings: "%{count} warning"
dashboard_link: Dashboard Ops
none_html: "Nessun incidente aperto. %{link}"
disk:
system_title: Disco sistema
free_label: "Libero: %{free} (%{percent}% usato)"
not_available: Metriche disco non disponibili
recordings_title: Archivio registrazioni
recordings_content: "Contenuto registrazioni: %{size}"
recordings_not_mounted: "Percorso %{path} non montato"
sessions:
title: Sessioni attive
table:
match: Partita
status: Stato
start: Inizio
link: Link
none: Nessuna sessione attiva in questo momento.
detail: Dettaglio
stop: Termina
stop_confirm: Terminare questa sessione?
regia: Regia
teams:
title: Squadre
matches_count: "%{count} partite"
view_all: "Vedi società (%{count} squadre)"
ops:
kpi:
critical: Critici aperti
warning: Warning aperti
total: Totale aperti
open:
title: Incidenti aperti
table:
severity: Severità
kind: Tipo
title: Titolo
occurrences: Occ.
last_seen: Ultimo
none: Nessun incidente aperto. La piattaforma risulta sana.
actions:
acknowledge: Preso in carico
resolve: Risolvi
mute: Mute 24h
resolved:
title: Risolti (ultimi 30 giorni)
table:
resolved_at: Risolto
none: Nessun incidente risolto di recente.
clubs:
index:
title: Società e squadre
subtitle_html: "Abbonamenti omaggio (sponsor / promozioni) e stato YouTube per squadra. Pagamenti Stripe: %{billing_link}."
billing_link: Fatturazione
table:
club: Società
plan: Piano
teams: Squadre
comped: Omaggio
stripe: Stripe
manage: Gestisci
invoices: Fatture
show:
back: "← Società e squadre"
sport_label: "Sport: %{sport}"
recordings_archive: Archivio replay
billing_link: Pagamenti e fatture
youtube_platform_link: Canale YouTube piattaforma
youtube_club_label: "YouTube società:"
youtube_connected: (collegato)
youtube_premium_full_not_connected: Premium Full — canale società non collegato (usa Match Live TV)
no_channel_hint_html: "Senza canale collegato, l’app usa il canale Match Live TV. %{link}."
link_channel: Collega canale (pagina società)
teams_title: Squadre
no_teams: Nessuna squadra registrata.
table:
team: Squadra
sport: Sport
matches_and_details: Partite e dettagli
replay: Replay
comped:
title: Abbonamento omaggio
description: "Sponsor o promozione: assegna Premium Light/Full senza pagamento Stripe. Revocabile in qualsiasi momento."
active_label: "Attivo:"
since_label_html: "Dal %{date}"
by_admin: "· admin %{username}"
stripe_note: "Nota: esiste anche un abbonamento Stripe collegato; l’omaggio ha priorità sul piano."
revoke_button: Revoca omaggio (torna Free o ripristina Stripe)
revoke_confirm: "Revocare l’abbonamento omaggio per %{club}?"
current_plan: "Piano attuale: %{plan}"
stripe_active: "· pagamento Stripe attivo"
plan_label: Piano
reason_label: "Motivo (es. sponsor 2026)"
reason_placeholder: "Sponsor, promozione…"
grant_button: Concedi omaggio
teams:
show:
back: "← %{club}"
sport_label: "Sport: %{sport}"
club_label_html: "Società: %{club} · %{replay_link} · %{billing_link}"
replay_link: Replay squadra
billing_link: Pagamenti e fatture
youtube_label: "YouTube:"
youtube_platform_default_no_oauth: ", default senza OAuth società"
youtube_platform_channel: "(canale piattaforma%{suffix})"
youtube_club_channel: (canale società)
youtube_not_ready: non pronto
no_channel_hint_html: "Senza canale collegato, l’app usa il canale Match Live TV. %{link}."
link_channel: Collega canale (pagina società)
matches_title: Partite
sessions:
index:
title: Sessioni di streaming
table:
match: Match
status: Stato
disconnects: Disconnessioni
link: Link
detail: Dettaglio
regia: Regia
show:
title: "Sessione %{id}"
status_label: "Stato:"
stop_button: Termina sessione
stop_confirm: "Terminare la trasmissione? Il path RTMP verrà rimosso e lo stato passerà a ended."
match_label: "Match: %{team} vs %{opponent}"
youtube_studio: YouTube Studio
broadcast: Broadcast
rtmp_ingest: "RTMP ingest:"
events_title: Eventi
table:
type: Tipo
when: Quando
meta: Meta
links:
watch_title: Link diretta
none: Nessun link video disponibile per questa sessione.
regia_title: Link regia
terminated: Sessione terminata — link regia non disponibile.
regia_label: Regia
valid_until: "Valido fino a %{date}"
active_exists: Esiste già un link regia attivo (l’URL non è recuperabile). Generane uno nuovo se serve condividerlo di nuovo.
none_active: Nessun link regia attivo. Genera un link da condividere con chi gestisce il punteggio.
generate_button: Genera link regia
billing:
index:
title: Pagamenti da fatturare
description: "Pagamenti Stripe pagati senza PDF fattura. Genera il PDF nei tuoi sistemi, poi caricalo qui: viene associato al pagamento e inviato via email al cliente."
filter_label: "Filtra società:"
filter_all: Tutte
incomplete_profile_warning: Dati fatturazione incompleti
no_billing_data: Nessun dato di fatturazione — il cliente deve completare il profilo.
pdf_label: PDF fattura
upload_button: Carica PDF e invia al cliente
none_pending: "Nessun pagamento in attesa di fattura%{club}."
none_pending_for_club: " per %{club}"
uploaded_title: Fatture già caricate
table:
date: Data
club: Società
description: Descrizione
amount: Importo
invoice: Fattura
status: Stato
back_dashboard: "← Dashboard"
billing_invoices:
index:
title: "Fatturazione — %{club}"
back_dashboard: "← Dashboard"
new_invoice: Nuova fattura (senza pagamento)
payments_title: Pagamenti
table:
date: Data
description: Descrizione
amount: Importo
invoice: Fattura
pdf_suffix: " (PDF)"
edit_send_pdf: Modifica / invia PDF
create_invoice: Crea fattura
no_payments: Nessun pagamento registrato per questa società.
all_invoices_title: Tutte le fatture
table2:
number: Numero
date: Data
amount: Importo
status: Stato
payment: Pagamento
edit: Modifica
no_invoices: Nessuna fattura.
new:
title: "Nuova fattura — %{club}"
linked_payment: "Collegata al pagamento del %{date} (%{amount})."
number_label: Numero fattura
issued_on_label: Data emissione
amount_label: "Importo (€)"
notes_label: Note interne (opzionale)
hint: Salva la bozza, poi carica il PDF e inviala al cliente dalla schermata successiva.
submit: Crea bozza fattura
back: "← Pagamenti e fatture"
edit:
title: "Fattura %{number} — %{club}"
status_label: "Stato:"
sent_at: "· Inviata il %{date}"
number_label: Numero fattura
issued_on_label: Data emissione
amount_label: "Importo (€)"
payment_info: "Pagamento: %{description} — %{amount}"
pdf_label: PDF fattura
pdf_already: "PDF già caricato: %{filename}"
notes_label: Note interne
save_draft: Salva bozza
issue_send: Emetti e invia via email
issue_confirm: "Inviare la fattura a %{email}?"
back: "← Pagamenti e fatture"
youtube:
platform_token:
title: Token canale Match Live TV
page_title: "Token YouTube — Match Live TV"
channel_label: "Canale: %{title}"
success: "Collegamento riuscito. Copia subito questa riga:"
env_hint_html: "Aggiungi in /opt/matchlivetv/infra/.env:"
not_shown_again_html: "Non verrà mostrato di nuovo. Poi: docker compose -f docker-compose.prod.yml restart rails sidekiq"
no_refresh_token_html: "Google non ha restituito un refresh token. In account Google → accesso app revoca «Match Live TV», poi ripeti da /admin/youtube/platform."
back_dashboard: "← Dashboard admin"
club_recordings:
index:
title: "Replay — %{club}"