-
Notifications
You must be signed in to change notification settings - Fork 8
Localizzazione
La gestione multilingua è abilitata su questi modelli:
- Articoli
- Schede generiche
- Schede Ministro
- Schede Dipartimento
- Schede Progetti
- Schede News
- Interviste
- Interventi
- Comunicati stampa
I campi traducibili di ciascun modello sono identificati l'icona del mappamondo di fianco alla label.
Nel CMS, per creare la versione in lingua inglese di una risorsa fare click sull'ingranaggio a destra di fianco alla tab "Italiano" e aggiungere il locale "English".
Per poter salvare l'oggetto è necessario compilare tutti i campi traducibili obbligatori.
I campi di tipo contenuto modulare possono essere copiati da quelli presenti nella lingua già esistente per velocizzare la compilazione. E' possibile copiare solo la struttura dei moduli, o anche il loro contenuto.
Quando una risorsa è stata tradotta in entrambe le lingue, nel frontend viene mostrato un link che permette agli utenti di accedere alla versione tradotta nell'altra lingua.
In lingua inglese sono omessi i seguenti contenuti della pagina: Argomenti, Potrebbero Interessarti, Elenco degli Argomenti prima del footer.
Sono generati automaticamente i metatag nell'head per istruire i motori di ricerca riguardo alla presenza della stessa risorsa in una lingua diversa.
I partials di layout site-nav.html.slim
e site-footer.html.slim
sono forzati in lingua italiana tramite I18n.with_locale(:it)
. Questo permette di mostrare sia label che link solamente a pagine italiane.
- I18n.with_locale(:it)
header.it-header-wrapper data-datocms-noindex=true lang="it"
.it-header-slim-wrapper.px-0
.container
.row
.col-12
.it-header-slim-wrapper-content.px-2
= link_to t("owner_name"),
"//www.governo.it/",
target: "_blank",
rel: "noopener",
class: "navbar-brand font-weight-semibold"
.it-nav-wrapper
.it-header-center-wrapper
.container
[...]
Nell'area Settings, sezione Modelli, selezionare il modello da tradurre e abilitare l'opzione "traducibile" sui singoli campi che devono poter accettare valori diversi in base alla lingua.
La traduzione del modelli è al momento hardcoded nel frontend, dunque è necessario configurare manualmente la creazione delle risorse in lingua inglese nel repository, anche se queste vengono già tradotte nel CMS.
Questo un esempio di come vengono generate le pagine degli Articoli in lingua inglese
dato.tap do |dato|
I18n.with_locale(:en) do
locale = :en
I18n.fallbacks[:en] = [:en]
visible_articles = PresentationHelper.published_articles(dato.articles)
visible_articles.each do |article|
proxy "/#{dato.news_page.slug}/#{dato.articles_index.slug}/#{locale}/#{article.slug}/index.html",
"/templates/article.html",
locals: {page: article},
locale: locale
end
Per mostrare il link di cambio lingua nella pagina, includere nel template il partial relativo, come da esempio:
= partial "partials/headers/header-basic",
locals: {page: page, subs: children} do
= content_for :col_one
= partial "partials/switch-locale-button",
locals: {page: page}