Aggiunge i18n IT/EN/FR/DE/ES, pagine pubbliche squadre e UX archivio.

Il selettore lingua funziona sul web e sulle app native; su Android la preferenza è persistita e applicata al riavvio. Incluse anche eliminazione replay a scope e campi pagina pubblica squadra.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-23 19:30:44 +02:00
co-authored by Cursor
parent 7d5d66840f
commit 1d97271555
71 changed files with 3509 additions and 197 deletions
+39 -49
View File
@@ -1,5 +1,5 @@
<% content_for :title, "Match Live TV — Diretta live partite giovanili da telefono" %>
<% content_for :meta_description, "Non puoi andare in palestra? Guarda la diretta live della partita di tuo figlio dal telefono o dal computer, senza installare app. Pallavolo, calcio e sport giovanili: link da condividere con nonni e parenti, archivio se te la perdi." %>
<% content_for :title, t("home.title") %>
<% content_for :meta_description, t("home.meta_description") %>
<% content_for :canonical_url, seo_absolute_url(root_path) %>
<% content_for :head do %>
<script type="application/ld+json">
@@ -10,7 +10,7 @@
"url" => seo_absolute_url(root_path),
"applicationCategory" => "SportsApplication",
"operatingSystem" => "Web, Android, iOS",
"description" => "Piattaforma per dirette live e archivio partite delle società sportive giovanili."
"description" => t("home.schema_description")
}.to_json) %>
</script>
<% end %>
@@ -20,104 +20,94 @@
<div class="hero-content">
<p class="hero-app-name">Match Live TV</p>
<p class="hero-live-badge"><span class="hero-live-dot" aria-hidden="true"></span> LIVE</p>
<h1>Ogni partita, ogni evento, per chi <span class="hero-accent">non può esserci.</span></h1>
<p class="tagline">
Trasmetti in diretta dallo smartphone. I nonni, i parenti lontani, gli amici —
guardano dal browser, senza installare nulla.
E se te la sei persa, la ritrovi nell'archivio.
</p>
<h1><%= raw t("home.headline_html") %></h1>
<p class="tagline"><%= t("home.tagline") %></p>
<div class="hero-cta">
<%= link_to "Registra la tua squadra", public_signup_path, class: "btn btn-primary" %>
<%= link_to "Guarda le dirette", public_live_index_path, class: "btn btn-secondary" %>
<%= link_to t("home.cta_signup"), public_signup_path, class: "btn btn-primary" %>
<%= link_to t("home.cta_live"), public_live_index_path, class: "btn btn-secondary" %>
</div>
<ul class="hero-features" aria-label="Vantaggi principali">
<ul class="hero-features" aria-label="<%= t('home.features_aria') %>">
<li class="hero-feature-item">
<span class="hero-feature-icon" aria-hidden="true"><i class="fa-solid fa-tower-broadcast"></i></span>
<span class="hero-feature-label">Dirette stabili</span>
<span class="hero-feature-label"><%= t("home.feature_stable") %></span>
</li>
<li class="hero-feature-item">
<span class="hero-feature-icon" aria-hidden="true"><i class="fa-solid fa-cloud"></i></span>
<span class="hero-feature-label">Archivio sicuro</span>
<span class="hero-feature-label"><%= t("home.feature_archive") %></span>
</li>
<li class="hero-feature-item">
<span class="hero-feature-icon" aria-hidden="true"><i class="fa-solid fa-user-group"></i></span>
<span class="hero-feature-label">Condividi con chi vuoi</span>
<span class="hero-feature-label"><%= t("home.feature_share") %></span>
</li>
<li class="hero-feature-item hero-feature-item--last">
<span class="hero-feature-icon" aria-hidden="true"><i class="fa-solid fa-mobile-screen"></i></span>
<span class="hero-feature-label">Tutto dal tuo telefono</span>
<span class="hero-feature-label"><%= t("home.feature_phone") %></span>
</li>
</ul>
</div>
<div class="hero-visual">
<%= image_tag "/hero-devices.png", alt: "Smartphone su treppiede per la diretta e secondo telefono per il punteggio in palestra", class: "hero-devices-img", loading: "eager", fetchpriority: "high" %>
<%= image_tag "/hero-devices.png", alt: t("home.hero_alt"), class: "hero-devices-img", loading: "eager", fetchpriority: "high" %>
</div>
</div>
</section>
<section class="section wrap">
<h2>Come funziona lo streaming per squadre giovanili</h2>
<h2><%= t("home.how_title") %></h2>
<div class="steps">
<div class="step step--visual">
<div class="step-visual">
<%= image_tag "/home-step-registra-squadra.png?v=1", alt: "Registrazione squadra: scudo, pallone e modulo con email, password e nome squadra", class: "step-visual-img", loading: "lazy" %>
<%= image_tag "/home-step-registra-squadra.png?v=1", alt: t("home.step1_title"), class: "step-visual-img", loading: "lazy" %>
</div>
<div class="step-num">01</div>
<h3>Registra la squadra</h3>
<p>La società si iscrive sul sito e sceglie il piano più adatto.</p>
<h3><%= t("home.step1_title") %></h3>
<p><%= t("home.step1_body") %></p>
</div>
<div class="step step--visual">
<div class="step-visual">
<%= image_tag "/home-step-invita-trasmette.png?v=1", alt: "Invito a trasmettere: smartphone con invio email e busta con accetta invito", class: "step-visual-img", loading: "lazy" %>
<%= image_tag "/home-step-invita-trasmette.png?v=1", alt: t("home.step2_title"), class: "step-visual-img", loading: "lazy" %>
</div>
<div class="step-num">02</div>
<h3>Invita chi trasmette</h3>
<p>Coach e volontari ricevono un invito: ognuno accede con la propria email.</p>
<h3><%= t("home.step2_title") %></h3>
<p><%= t("home.step2_body") %></p>
</div>
<div class="step step--visual">
<div class="step-visual">
<%= image_tag "/home-step-vai-in-diretta.png?v=1", alt: "Vai in diretta: smartphone su treppiede, punteggio live e condivisione link", class: "step-visual-img", loading: "lazy" %>
<%= image_tag "/home-step-vai-in-diretta.png?v=1", alt: t("home.step3_title"), class: "step-visual-img", loading: "lazy" %>
</div>
<div class="step-num">03</div>
<h3>Vai in diretta</h3>
<p>Dal telefono si avvia la partita: punteggio aggiornato e link da condividere con le famiglie.</p>
<h3><%= t("home.step3_title") %></h3>
<p><%= t("home.step3_body") %></p>
</div>
<div class="step step--visual">
<div class="step-visual">
<%= image_tag "/home-step-tutti-guardano.png?v=2", alt: "Tutti guardano da casa: archivio partite, partita salvata e link per genitori e parenti", class: "step-visual-img", loading: "lazy" %>
<%= image_tag "/home-step-tutti-guardano.png?v=2", alt: t("home.step4_title"), class: "step-visual-img", loading: "lazy" %>
</div>
<div class="step-num">04</div>
<h3>Tutti guardano da casa</h3>
<p>Genitori, nonni e parenti aprono il link nel browser. La partita resta anche in archivio.</p>
<h3><%= t("home.step4_title") %></h3>
<p><%= t("home.step4_body") %></p>
</div>
</div>
</section>
<section class="section wrap plans-teaser">
<h2>Piani per dirette live e archivio partite</h2>
<p class="plans-teaser-lead">Inizia gratis. Passa a Premium quando vuoi più partite in contemporanea, archivio più lungo e diretta anche su YouTube.</p>
<h2><%= t("home.plans_title") %></h2>
<p class="plans-teaser-lead"><%= t("home.plans_lead") %></p>
<div class="plans-teaser-visual">
<%= image_tag "/home-piani-ecosistema.png?v=1", alt: "Ecosistema Match Live TV: smartphone in diretta, laptop con live e statistiche, tablet con archivio partite e cloud", class: "plans-teaser-img", loading: "lazy" %>
<%= image_tag "/home-piani-ecosistema.png?v=1", alt: t("home.plans_alt"), class: "plans-teaser-img", loading: "lazy" %>
</div>
<%= link_to "Confronta i piani", public_prezzi_path, class: "btn btn-primary" %>
<%= link_to t("home.plans_cta"), public_prezzi_path, class: "btn btn-primary" %>
</section>
<section class="section wrap seo-prose">
<h2>Streaming partite giovanili: perché le famiglie scelgono Match Live TV</h2>
<h2><%= t("home.seo_title") %></h2>
<p><%= raw t("home.seo_p1_html") %></p>
<p><%= raw t("home.seo_p2_html") %></p>
<p>
Allenatori e dirigenti cercano un modo semplice per mandare in <strong>diretta live</strong> le partite
di <strong>pallavolo giovanile</strong>, calcio, basket e altri sport: senza attrezzature da TV,
solo con lo smartphone in palestra. Match Live TV è pensato per le società dilettantistiche che vogliono
far guardare <strong>Under 14, Under 16, Under 18</strong> e settori giovanili a chi è lontano.
</p>
<p>
Un genitore che lavora, un nonno che non può viaggiare, un parente allestero: aprono un link e seguono
la partita dal browser. Se arrivano in ritardo, la <strong>registrazione in archivio</strong> (con i piani Premium)
resta disponibile per giorni. Niente account complicati per chi guarda — solo per lo staff che trasmette.
</p>
<p>
Hai dubbi su come funziona? Leggi le <%= link_to "domande frequenti", public_faq_path %>,
scopri <%= link_to "Match Live TV per la pallavolo giovanile", public_pallavolo_path %>
o <%= link_to "registra la squadra gratis", public_signup_path %>.
<%= raw t(
"home.seo_p3_html",
faq_link: link_to(t("home.seo_faq_link"), public_faq_path),
volleyball_link: link_to(t("home.seo_volleyball_link"), public_pallavolo_path),
signup_link: link_to(t("home.seo_signup_link"), public_signup_path)
) %>
</p>
</section>