Drupal e Multilingua: Come rendere poliglotta il vostro sito

Uno dei problemi che spesso si presentano a chi sviluppa un sito multilingua con Drupal è quello di trovare il giusto tuning tra i vari moduli che occorrono allo scopo.

Avendo affrontato approfonditamente questo problema, vorrei fornire con questo post un breve "how-to" per riuscire a configurare in modo rapido il nostro Drupal (questa guida si riferisce alla versione 6 di Drupal).

 

La lista della spesa

Tanto per cominciare dobbiamo installare i moduli occorrenti:

  • Internationalization (il modulo principale che ci occorre; estende le funzioni multilingua del core)
  • Language Icons (per avere le icone con le bandiere del paese sul blocco di switch della lingua)
  • Pathauto (crea automaticamente degli url alias per le nuove pagine del sito, in base al titolo della pagina stessa; molto SEO Friendly)

A questo punto non resta che installarli e procedere alla configurazione.

Le mani in pasta!

Cominciamo impostando un prefisso del percorso per ogni lingua che abbiamo sul nostro sito (per intenderci stiamo parlando del path prefix, ossia le due lettere all'inizio del path di drupal che identificano la lingua che si sta usando, ad es. it/mia-pagina, en/my-page, de/mein-seite). Facciamo questo portandoci nella pagina che elenca tutte le lingue disponibili (miosito/admin/settings/language) e modificandole una per una impostando il corretto prefisso per ognuna di esse.

Successivamente portiamoci all'url miosito/admin/settings/language/i18n e selezioniamo, all'interno del fieldset Content selection, l'opzione Current language and language neutral

In questo modo diciamo a drupal di far visualizzare solamente i contenuti assegnati alla lingua correntemente attiva sul sito e tutti i contenuti a cui non è stata assegnata alcuna lingua specifica.

Portiamoci adesso all'url miosito/admin/settings/language/configure e selezioniamo l'opzione Prefisso del percorso con lingua di ripiego ("Path prefix with language fallback" se non avete tradotto la vostra installazione drupal in italiano).

In questo modo Drupal valuterà quale lingua utilizzare controllando in sequenza:

  1. il path prefix (ad es. it/node/13 o it/mia-pagina)
  2. se non è stato trovato nessun path prefix verrà controllata la lingua preferita dell'utente ($user->language)
  3. se l'utente corrente non ha nessuna lingua preferita verrà controllato l'header Accept-language della richiesta http del browser
  4. se anche in questo caso non viene trovata nessuna lingua da impostare verrà utilizzata la lingua di default del sito.

Traduzione dei contenuti

A questo punto non ci rimane che impostare i tipi di contenuto in modo che:

  • ogni contenuto abbia il suo corrispettivo nella propria lingua
  • quando si effettua lo switch tra le varie lingue, drupal sappia quale traduzione del contenuto corrente presentarci

Cominciamo!

Portiamoci all'url di edit del tipo di contenuto che intendiamo utilizzare (miosito//admin/content/node-type/miotipodicontenuto) e, all'interno del fieldset Multilanguage options, selezioniamo le opzioni Set current language as default for new content e Lock language (Cannot be changed).

In questo modo ogni volta che creeremo un nuovo contenuto di quel tipo, gli sarà assegnata la lingua corrente.

E per avere il suo corrispettivo nelle altre lingue del nostro sito?

Sempre nella pagina di edit del tipo di contenuto (miosito//admin/content/node-type/miotipodicontenuto) sotto il fieldset Impostazioni del flusso di lavoro (o "Workflow settings" se avete l'interfaccia in english) selezioniamo l'opzione Supporto multilingua: Abilitato, traduzione inclusa (o in english "Multilingual support: Enabled, with translation")

Adesso basterà andare in visualizzazione di uno qualsiasi dei contenuti che avete creato, cliccare sul tab Traduci e cliccare su Aggiungi traduzione in corrispondenza della lingua per la quale volete tradurre quel contenuto.

Riassunto

Quindi, ricapitolando, abbiamo:

  • indicato un prefisso di percorso per ogni lingua
  • indicato a Drupal quali contenuti visualizzare in base alla lingua
  • indicato a Drupal quali passaggi deve intraprendere per decidere quale lingua utilizzare
  • impostati i tipi di contenuto in modo da avere una traduzione per ogni contenuto, da presentare all'utente in caso di switch della lingua

A questo punto non mi rimane che augurare Buona Traduzione a tutti!

Commenti