drilix.com

Libertà, Comunità & Sostenibilità

Sito multilingue perfetto con Drupal 7

18 Maggio 2012 -- William
Ultima modifica in Dicembre 2018
Durata: +- 15 minuti

MultilingueDrupal 7 ha introdotto nuove funzionalità che rendono i siti multilingue molto più facili da gestire. Tuttavia drupal non è sempre facile da configurare e a volte ci si può perde quando si vuole creare un sito in diverse lingue. In questo tutorial cercherò di spiegare come funziona ogni aspetto di un sito multilingue, in modo da poter scegliere le migliori opzioni per ogni progetto. Alla fine avrai un sito Drupal multilingue senza alcun problema.

Di seguito vedremo:
1 - Funzionalità di Drupal 7 core per siti multilingue
    - Aggiungere delle lingue
    - Rilevamento e selezione
    - Traduzione dell'interfaccia
2 - Moduli complementari per le traduzioni in Drupal 7
    - Localization Update
    - i18n
    - Localization client
    - Global redirect
    - Translation Management Tool
3 – Messa a punto
    - Cambiare lingua
    - Traduzione dei menu
    - Traduzione automatica istantanea
4 - Multilingue per sviluppatori
    - Scrivere codice per siti multilingue
    - Bug di Views + Features


1 - Funzionalità di base

Le opzioni core per siti multilingue sono Content translation e Locale. Con questi due moduli attivati si ha già un sito multilingue funzionale.

Aggiungere delle lingue

Per aggiungere una nuova lingua vai a .../admin/config/regional/language e clicca su 'Aggiungi lingua'. Puoi anche decidere quale sarà la lingua di default, il prefisso del percorso (es: www.example.com/fr per il francese) o il dominio per la lingua (es: fr.example.com per il francese).

Con un prefisso del percorso avrai un sito con diverse lingue, con un dominio per la lingua avrai diversi siti, uno per ogni lingua. Se il tuo obiettivo è di avere lo stesso contenuto tradotto in diverse lingue, forse è meglio scegliere 'prefisso del percorso'; tuttavia, se ogni lingua ha un contenuto diverso, un amministratore diverso e utenti diversi, forse 'dominio della lingua' potrebbe essere la migliore opzione. Pensaci bene prima di scegliere perché sarebbe problematico cambiare una volta che il sito è online (si romperebbero i link verso il tuo sito...).

Se vuoi che i tuoi visitatori vedano prima la lingua predefinita e poi possano scegliere la loro preferita, lascia il prefisso del percorso o il dominio della lingua vuoto per la lingua predefinita. Se invece intendi indovinare la lingua dell'utente, aggiungi un prefisso di percorso o un dominio della lingua a tutte le lingue, compresa quella predefinita.

Alcuni siti permettono di presentare lingue diverse (fra interfaccia e contenuto), di avere pagine con "linguaggio neutro", oppure di mostrare il contenuto originale se la traduzione non è ancora stata fatta. Consiglio di non mescolare le lingue in un sito pubblico. Se lo fai, il tuo sito sarà indicizzato dai motori di ricerca con contenuto e parole chiave in un idioma determinato. Mentre la pagina non è tradotta, avrai contenuto duplicato e, una volta tradotto, alcuni utenti verranno indirizzati a una pagina che non è nella loro lingua. Per evitare contenuti duplicati nei motori di ricerca quando utilizzi “linguaggio neutro” puoi attivare il modulo i18n_redirect.

Rilevamento e selezione

Drupal offre molti modi per scegliere la lingua preferita dell'utente. È possibile utilizzare un metodo solo o diversi metodi con un ordine di priorità (se un metodo non funziona, quello successivo verrà applicato). Questa opzione si trova in /admin/config/regional/language/configure. Ecco come ogni metodo funziona:

URL (prefisso o dominio) è probabilmente la migliore soluzione per la maggioranza dei siti. Forse incontrerai un piccolo problema con l'opzione prefisso del percorso, ma esiste una soluzione veloce. Il problema è che si potrebbero incontrare incongruenze tra il contenuto e l'interfaccia del sito. Se avete, ad esempio, una pagina "About" tradotta in spagnolo "Sobre" è possibile accedere alla pagina www.example.com/en/about (il contenuto e l'interfaccia sono in inglese), o www.example.com/en/sobre (il contenuto è in spagnolo ma l'interfaccia è in inglese a causa del prefisso), o www.example.com/es/about (...hai capito l'idea). Quando i motori di ricerca percorrono il tuo sito, mescolano tutte le lingue e confondono i visitatori. Per risolvere questo problema puoi installare il modulo Global Redirect per rendere l'interfaccia e il contenuto coerenti. Parleremo del modulo Global Redirect di seguito.

Browser può essere un buon metodo, ma non deve essere il primo (nè il solo) metodo di rilevamento dato che l'utente non sarebbe in grado di passare da una lingua a un'altra usando il selettore di lingua (invece dovrebbe modificare le preferenze del browser per cambiare lingua). Quando si cambia la lingua con il selettore, solo il contenuto verrà nella lingua selezionata dall'utente, mentre l'interfaccia sarà nella lingua del browser. La selezione della lingua con il selettore non funzionerebbe neanche se Global Redirect è attivato. Personalmente, uso il metodo di rilevamento del browser solo se tutte le lingue hanno un prefisso e 'URL' viene selezionato come primo metodo di rilevamento. Ciò significa che gli utenti che cercano un URL con il percorso della lingua sono ridiretti su quella lingua (www.example.com/it = versione italiana del sito), ma se qualcuno in Italia cerca www.example.com sarà reindirizzato all'italiano se il suo browser è italiano, o tedesco se il suo browser è tedesco e così via. (Nota: se il tuo sito utilizza metodi di cache e unicamente il rilevamento dal browser, stai attento dato che una pagina della cache non cambierà lingua!)

Penso che URL come primo metodo e browser come secondo metodo, con prefissi per tutte le lingue (compreso la lingua predefinita) insieme siano il migliore metodo di rilevamento e selezione che si possa scegliere.

Session aggiungerà una variabile di sessione al URL (www.example.com?language=es). Non è una buona idea perché impedisce che la pagina vada in cache (il sito sarà più lento) e Session può essere un problema dato che servirà un contenuto diverso per uno stesso URL. Google è in grado di gestire informazioni di sessione ma dovresti spiegarlo nel tuo Google Webmaster Tools per esserne sicuro. Insomma, non è così semplice come il percorso o prefisso URL. Se utilizzi URL e Session insieme vedrai che, a volte, Session non forza un cambiamento di URL in modo che la negoziazione della lingua sarà molto inconsistente. Non è consigliabile utilizzare entrambi  URL e Session insieme. C'è addirittura una discussione su Drupal.org contro l'uso di sessioni.

Lingua Preferita dell'Utente è una cattiva idea. Significa che gli utenti non saranno in grado di passare da una lingua a un'altra facilmente e temporaneamente quando sono loggati nel sito. L'utente dovrà cambiare la lingua nel suo profilo invece di utilizzare semplicemente il selettore della lingua come gli altri utenti. Questo potrebbe essere contro intuitivo e fastidioso sopratutto per gli utenti bilingui.

Tradurre l'interfaccia

Drupal offre anche un modo per tradurre l'interfaccia del sito e importare le traduzioni da localize.drupal.org. Questo si trova in /admin/config/regional/translate. Anche se funziona bene, ci sono alcuni moduli addizionali che possono migliorare molto le funzionalità di base.

Pagine

Aggiungi un commento