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>
This commit is contained in:
@@ -1,12 +1,11 @@
|
||||
<% content_for :title, "Squadre su Match Live TV — Dirette e replay sport giovanili" %>
|
||||
<% content_for :meta_description, "Scopri le squadre sportive giovanili che trasmettono su Match Live TV. Cerca per nome, filtra per sport, trova dirette in corso e archivi replay." %>
|
||||
<% content_for :title, t("team_pages.index.meta_title") %>
|
||||
<% content_for :meta_description, t("team_pages.index.meta_description") %>
|
||||
<% content_for :canonical_url, seo_absolute_url(public_team_pages_path(filter_params_for_canonical)) %>
|
||||
|
||||
<div class="wrap team-directory">
|
||||
<h1>Squadre su Match Live TV</h1>
|
||||
<h1><%= t("team_pages.index.heading") %></h1>
|
||||
<p class="results-hint">
|
||||
Società e squadre con dirette, replay pubblici o partite in programma.
|
||||
Cerca la tua squadra e apri la pagina per seguire calendario e archivio.
|
||||
<%= t("team_pages.index.hint") %>
|
||||
</p>
|
||||
|
||||
<%= form_with url: public_team_pages_path, method: :get, local: true, class: "team-directory-filters" do %>
|
||||
@@ -15,18 +14,18 @@
|
||||
type="search"
|
||||
name="q"
|
||||
value="<%= @query %>"
|
||||
placeholder="Nome squadra, società, città o palestra…"
|
||||
aria-label="Cerca squadra"
|
||||
placeholder="<%= t("team_pages.index.search_placeholder") %>"
|
||||
aria-label="<%= t("team_pages.index.search_aria_label") %>"
|
||||
autocomplete="off"
|
||||
/>
|
||||
<button type="submit" class="btn btn-primary">Cerca</button>
|
||||
<button type="submit" class="btn btn-primary"><%= t("team_pages.index.search_button") %></button>
|
||||
</div>
|
||||
|
||||
<div class="team-directory-filters__row">
|
||||
<div class="team-directory-filters__field">
|
||||
<label for="sport" class="team-directory-filters__label">Sport</label>
|
||||
<label for="sport" class="team-directory-filters__label"><%= t("team_pages.index.sport_label") %></label>
|
||||
<select name="sport" id="sport" class="team-directory-filters__select" onchange="this.form.requestSubmit()">
|
||||
<option value="">Tutti gli sport</option>
|
||||
<option value=""><%= t("team_pages.index.sport_all") %></option>
|
||||
<% @sport_options.each do |sport| %>
|
||||
<option value="<%= sport[:key] %>"<%= " selected" if @sport == sport[:key] %>><%= sport[:label] %></option>
|
||||
<% end %>
|
||||
@@ -34,20 +33,20 @@
|
||||
</div>
|
||||
|
||||
<div class="team-directory-filters__field team-directory-filters__field--chips">
|
||||
<span class="team-directory-filters__label" id="team-filter-chips-label">Mostra</span>
|
||||
<span class="team-directory-filters__label" id="team-filter-chips-label"><%= t("team_pages.index.chips_label") %></span>
|
||||
<div class="team-directory-chips" role="group" aria-labelledby="team-filter-chips-label">
|
||||
<label class="filter-chip<%= " is-active" if @live_filter %>">
|
||||
<%= check_box_tag :live, "1", @live_filter, id: "filter_live", class: "filter-chip__input", onchange: "this.form.requestSubmit()" %>
|
||||
<span class="filter-chip__face" aria-hidden="true">
|
||||
<span class="filter-chip__dot filter-chip__dot--live"></span>
|
||||
In diretta
|
||||
<%= t("team_pages.index.chip_live") %>
|
||||
</span>
|
||||
</label>
|
||||
<label class="filter-chip<%= " is-active" if @replays_filter %>">
|
||||
<%= check_box_tag :replays, "1", @replays_filter, id: "filter_replays", class: "filter-chip__input", onchange: "this.form.requestSubmit()" %>
|
||||
<span class="filter-chip__face" aria-hidden="true">
|
||||
<span class="filter-chip__icon">▶</span>
|
||||
Con replay
|
||||
<%= t("team_pages.index.chip_replays") %>
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
@@ -56,7 +55,7 @@
|
||||
<% if @query.present? || @sport.present? || @live_filter || @replays_filter %>
|
||||
<div class="team-directory-filters__actions">
|
||||
<span class="team-directory-filters__label team-directory-filters__label--spacer" aria-hidden="true"> </span>
|
||||
<%= link_to "Azzera", public_team_pages_path, class: "btn btn-secondary team-directory-filters__reset" %>
|
||||
<%= link_to t("team_pages.index.reset_link"), public_team_pages_path, class: "btn btn-secondary team-directory-filters__reset" %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
@@ -64,12 +63,12 @@
|
||||
|
||||
<% if @query.present? || @sport.present? || @live_filter || @replays_filter %>
|
||||
<p class="results-hint">
|
||||
<%= @entries.size %> squadre trovate
|
||||
<% if @query.present? %> per «<%= h @query %>»<% end %>
|
||||
<% if @sport.present? %> · <%= Sports::Catalog.find_optional(@sport)&.dig(:label) || @sport %><% end %>
|
||||
<%= t("team_pages.index.results_found", count: @entries.size) %>
|
||||
<% if @query.present? %><%= t("team_pages.index.results_query_suffix", query: @query) %><% end %>
|
||||
<% if @sport.present? %><%= t("team_pages.index.results_sport_suffix", sport: Sports::Catalog.find_optional(@sport)&.dig(:label) || @sport) %><% end %>
|
||||
</p>
|
||||
<% else %>
|
||||
<p class="results-hint"><%= @entries.size %> squadre attive</p>
|
||||
<p class="results-hint"><%= t("team_pages.index.results_active", count: @entries.size) %></p>
|
||||
<% end %>
|
||||
|
||||
<% if @entries.any? %>
|
||||
@@ -96,13 +95,13 @@
|
||||
<p class="team-directory-card__meta"><%= team.sport_label %></p>
|
||||
<div class="team-directory-card__badges">
|
||||
<% if entry.live_now %>
|
||||
<span class="badge badge-on-air">In diretta</span>
|
||||
<span class="badge badge-on-air"><%= t("team_pages.index.badge_live") %></span>
|
||||
<% end %>
|
||||
<% if entry.upcoming_count.positive? %>
|
||||
<span class="badge badge-scheduled"><%= entry.upcoming_count %> in programma</span>
|
||||
<span class="badge badge-scheduled"><%= t("team_pages.index.badge_upcoming", count: entry.upcoming_count) %></span>
|
||||
<% end %>
|
||||
<% if entry.replay_count.positive? %>
|
||||
<span class="badge badge-wait"><%= entry.replay_count %> replay</span>
|
||||
<span class="badge badge-wait"><%= t("team_pages.index.badge_replay", count: entry.replay_count) %></span>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
@@ -112,18 +111,18 @@
|
||||
<% else %>
|
||||
<div class="empty-state">
|
||||
<% if @query.present? || @sport.present? || @live_filter || @replays_filter %>
|
||||
<p><strong>Nessuna squadra trovata</strong> con i filtri selezionati.</p>
|
||||
<p><%= link_to "Mostra tutte le squadre attive", public_team_pages_path, class: "btn btn-secondary" %></p>
|
||||
<p><strong><%= t("team_pages.index.empty_filtered_title") %></strong><%= t("team_pages.index.empty_filtered_suffix") %></p>
|
||||
<p><%= link_to t("team_pages.index.empty_filtered_show_all"), public_team_pages_path, class: "btn btn-secondary" %></p>
|
||||
<% else %>
|
||||
<p><strong>Nessuna squadra attiva al momento.</strong></p>
|
||||
<p>Quando una società avvierà dirette o pubblicherà replay, comparirà qui.</p>
|
||||
<%= link_to "Vai alle dirette live", public_live_index_path, class: "btn btn-secondary", style: "margin-top:12px;display:inline-block" %>
|
||||
<p><strong><%= t("team_pages.index.empty_default_title") %></strong></p>
|
||||
<p><%= t("team_pages.index.empty_default_body") %></p>
|
||||
<%= link_to t("team_pages.index.empty_default_live_link"), public_live_index_path, class: "btn btn-secondary", style: "margin-top:12px;display:inline-block" %>
|
||||
<% end %>
|
||||
</div>
|
||||
<% end %>
|
||||
|
||||
<p class="team-directory-footer muted">
|
||||
<%= link_to "Dirette in corso", public_live_index_path %> ·
|
||||
<%= link_to "Archivio replay", public_replay_index_path %>
|
||||
<%= link_to t("team_pages.index.footer_live_link"), public_live_index_path %> ·
|
||||
<%= link_to t("team_pages.index.footer_replay_link"), public_replay_index_path %>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user