Questa pagina raccoglie le informazioni sulla realizzazione e sull'uso della traduzione italiana di Drupal.
La traduzione è liberamente scaricabile direttamente sul sito ufficiale o dalla pagina di download qui, su Drupal Italia.
In questo paragrafo, destinato agli amministratori di siti Drupal, verrà descritto come ottenere ed inserire il file di traduzione per ottenere un sito Drupal con interfaccia in lingua italiana.
Principi generali
Drupal utilizza un potente sistema di traduzione, per rendere possibile la resa dell'interfaccia in diverse lingue, comprese lingue nuove o personalizzate. Le traduzioni già pronte vengono rese disponibili tramite file in formato .po (GNU Gettext).
Per attivare la traduzione dell'interfaccia utente di un sito Drupal, è necessario per prima cosa attivare il modulo lingua ('locale'), quindi importare la lingua scelta, e infine renderla disponibile agli utenti. La procedura verrà descritta nel dettaglio qui sotto.
Come utilizzare la traduzione
Si presuppone che tu abbia già installato il tuo sito Drupal e creato l'utente amministratore come descritto nella Drupal Administration Guide (in lingua inglese).
Per attivare l'interfaccia in lingua italiana, è necessario per prima cosa procurarsi un file di traduzione (per Drupal 5.1, vai alla pagina di download per la versione 4.7.x) aggiornato. I files di traduzione sono disponibili sul sito ufficiale di Drupal. Una volta scaricato in locale il pacchetto ed estratto il file it.po, procedi nel seguente modo:
Hai deciso di collaborare al progetto Drupal Italia? Benvenuto a bordo!
Il documento ufficiale contenente tutte le istruzioni per la traduzione, è la Drupal Translator Guide. E' bene che tutti i traduttori la leggano.
Seguono comunque alcune note riassuntive del processo di traduzione.
Modularità di Drupal e traduzione
Drupal è costituito da un'insieme di moduli:
A partire da Drupal 4.5, ciascun modulo (base o aggiuntivo) va tradotto singolarmente: i file di traduzione vengono quindi depositati in formato GNU Gettext (.po) sul server CVS di gestione delle versioni.
Le traduzione dei moduli base vengono raccolte in un'unica directory da cui vengono prelevate da uno script. Lo script le riunisce in un unico file it-xxx.po, messo poi a disposizione sul sito ufficiale drupal.org.
Al momento in cui scrivo, sono presenti sul repository due file relativi ai moduli base
La traduzione dei moduli aggiuntivi vengono inserite sullo stesso server CVS, ma nell'alberatura relativa al modulo a cui si riferiscono. Per esempio, la traduzione del modulo smileys si troverà nella directory smileys/po del modulo. In questo modo è possibile scaricarle assieme al modulo stesso. Se volete iniziare a tradurre un modulo aggiuntivo andate nel post: Note di traduzione dei moduli aggiuntivi.
Nota 1: per iniziare a tradurre un modulo, è necessario iniziare da un template di traduzione, un file con estensione POT, contenente le stringhe traducibili. Spesso è inserite assieme alle traduzioni in altre lingue, nella cartella po del modulo. A volte però non è aggiornato, oppure non è proprio presente. Per ovviare a questo, usate il modulo POTX. Per usarlo, installalo in drupal, abilitate i moduli potx e locale e controllate di aver abilitato anche il modulo di cui volete creare il template E TUTTI I MODULI CHE DIPENDONO DA QUESTO; esempio: se il modulo event ha un sotto-modulo che richiede il modulo gmap, dovrete abilitare anche gmap e il sotto-modulo di event che lo richiede!. Andate su localizzazione e su manage strings. Selezionate il modulo e premete extract. Se un pacchetto modulo, comprende più file .module, estraete tutte le stringhe in un solo file pot. L'opzione la trovate proprio sopra il link a scomparsa. (per maggiori informazioni, Template di traduzione)
Nota 2: nelle versioni precedenti di Drupal, la traduzione veniva inserita tramite un'unico enorme file it.po. Scomporre questo file è possibile ma laborioso. A meno di esigenze particolari, è quindi consigliabile iniziare ogni nuova traduzione dal template di traduzione relativo al modulo da tradurre.
Nota 3: nel realizzare la traduzione di un modulo, occorre assicurarsi di stare lavorando sull'ultima versione disponibile del relativo template di traduzione xxx-module.po.
Strumenti di traduzione
Per quanto riguarda la descrizione del formato GNU Gettext in cui vengono tradotti i moduli, vi rimando alla Drupal Translator Guide. I programmi di traduzione sono documentati qui. Personalmente utilizzo PoEdit, che ho trovato piuttosto semplice da utilizzare sia sotto Win che Linux. Raccomando di conoscere le linee guida per la coerenza della traduzione.
Nota: sono stati riscontrati problemi di compatibilità nell'importare i file .po tradotti con Kbabel. L'uso di questo programma è sconsigliato
Nota sui plurali
Il formato Gettext consente di gestire i plurali in modo diversi a seconda della lingua. Per l'italiano, utilizzate la stringa
nplurals=2; plural=n != 1;
Per PoEdit, questa stringa va inserita nel menù
Catalogo > Impostazioni > Forme di plurale
Nota sulle variabili
Nel realizzare una traduzione, vi capiterà di trovare spesso dei nomi preceduti da un segno di percentuale %, come %date, %author, %user, etc. Questi nomi sono delle variabili e vengono sostituiti da Drupal con il corrispondente contenuto durante la creazione della pagina.
Nella traduzione, le variabili vanno lasciate invariate altrimenti il sistema non sarà in grado di riconoscerle.
Esempio:
By %author on %date = Da %author il %date
Nota: lo stesso principio vale per tutti i caratteri speciali e in particolar modo per gli URL in HTML.
Aggiornamento di moduli di traduzione a una nuova versione
Può capitare di avere a disposizione la traduzione di una vecchia versione di un modulo (p.e. smiley-module.po, versione 4.7.x) e di volerlo aggiornare a una nuova versione (p.e. 5.1).
Per fare questo, è necessario per prima cosa ottenere un template della nuova versione, dal server CVS (vedi sotto) o generandolo in autonomia.
Una volta ottenuto il template, con PoEdit, aprire il vecchio file. Selezionare poi
Catalogo > Aggiorna da file POT
e scegliere il nuovo template. Le nuove frasi verranno aggiunte, e le frasi obsolete scartate, ottenendo una traduzione parziale ma coerente con il nuovo template.
Nota: con PoEdit, avendo a disposizione un certo numero di moduli già tradotti, è possibile impostare l'opzione 'catalogo' per la traduzione automatica delle frasi. Leggi la documentazione di PoEdit per saperne di più.
Server CVS Drupal.
L'ambiente di lavoro dei traduttori è il server CVS di drupal.org. Il server utilizza il sistema di versioning CVS descritto qui: è possibile chiedere un'utenza qui (viene attivata normalmente nel giro di un paio di giorni). Come descritto nel README del server, tutti gli utenti autorizzati possono inserire nuovi files nel server CVS, ma vale una politica di 'buone maniere'. Se avete realizzato una traduzione di cui non siete direttamente responsabili, contattate il responsabile e rendetegliela disponibile.
La guida è stata scritta da Almack e revisionata da Psicomante.





Topic di riferimento: http://www.drupalitalia.org/node/3356
In questo topic sono elencati una serie di suggerimenti ai traduttori, con lo scopo di ottenere una traduzione il più possibile coerente. Ho ritenuto il vecchio topic come oramai vecchio, in modo da tenere solo i nuovi commenti.
E' benvenuta qualsiasi discussione riguardo a possibili nuove traduzioni, interpretazioni o modi di tradurre. Il forum dove discutere è il Gruppo Traduzioni.
Costruzione delle frasi:
Esempio: welcome to your new Drupal installation => benvenuto nella nuova installazione di Drupal
Sono tipiche costruzioni dell'inglese e in italiano non rendono bene.
Esempio: authentication = autenticazione
Esempio: browser, download, log, ping.
Dove necessario, fare una perifrasi.
Esempio: ping server = esegui ping del server
Frasi tipiche
Accenti
Gli accenti vanno in UTF-8. Possibilmente anche quelli maiuscoli. è,è,à,ò,ì,ù e non e',a',o',i',u'.
Maiuscoli: É, È, À, Á, Ì, Í, Ò, Ó, Ù, Ú
Tag HTML
Correggere i tag HTML in XHTML 1.0 se sbagliati.
<b> diventerà <strong>
<i> diventerà <em>
Nomi dei moduli
Quando i vocaboli indicano il nome del modulo, per distinguerli dalle traduzioni si è deciso di tenere il nome in inglese, tra apici, sempre minuscolo:
Esempio:
book module = modulo 'book'
Book module = modulo 'book'
update book module = aggiorna il modulo 'book'
Vocaboli suggeriti
Guarda il glossario dei termini.
http://www.drupalitalia.org/glossary
Termini su cui discutere:
Top, Directory, Toolbar, Font, Plugin, Maintain, Authored, Match, Denied, Allowed, Token, Toggle
Commenti utili nel vecchio topic:
http://www.drupalitalia.org/node/46#comment-4408
http://www.drupalitalia.org/node/46#comment-4413
http://www.drupalitalia.org/node/46#comment-4417
http://www.drupalitalia.org/node/46?page=1#comment-5526
Di seguito lo stato della traduzione dei moduli di base di Drupal
aggiornata al 29/01/2006. Le traduzioni sono incluse nel corrispondente
file it-{versione}.po.
Questa tabella è outdated, guardare la tabella aggiornata per Drupal 6
| Modulo | Traduttore | Drupal 4.5 |
Drupal 4.6 |
Drupal 4.7b |
| aggregator | fax8 | ok | ok | ok |
| archive | giuvax | ok | ok | ok |
| block | negen | ok | ok | ok |
| blog | giuvax | ok | ok | ok |
| blogapi | giuvax | parziale | ok | ok |
| book | giuvax | ok | ok | ok |
| comment | giuvax | ok | ok | ok |
| common-inc | michele | - | ok | ok |
| contact | giuvax | - | parziale | ok |
| drupal | giuvax | ok | ok | ok |
| file-inc | giuvax | - | ok | ok |
| filter | giuvax | manca help |
ok | ok |
| forum | giuvax | ok | ok | ok |
| general | matteo | ok | ok | ok |
| locale | giuvax | ok | ok | ok |
| locale-inc | giuvax | - | ok | ok |
| menu | negen | ok | ok | -2 msg |
| node | giuvax | manca help |
ok | ok |
| page | giuvax | - | - | ok |
| path | giuvax | manca help |
ok | ok |
| ping | - | ok | - | ok |
| poll | negen | ok | ok | ok |
| profile | giuvax | ok | ok | ok |
| queue | - | ok | ok | - |
| search | negen | ok | ok | -5 msg |
| statistics | ok | ok | ok | |
| story | ok | - | - | |
| system | matteo | ok | ok | ok |
| taxonomy | ok | ok | ok | |
| throttle | ok | ok | -2 msg | |
| tracker | parziale | ok | ok | |
| unicode-inc | - | - | ok | |
| upload | psicomante | ok | ok | ok |
| user | psicomante | ok | ok | ok |
| watchdog | matteo | ok | ok | ok |
Siete pregati di segnalare eventuali inesattezze o errori.
Lo Staff di DrupalItalia
| Modulo v 5.0 RC1 | Traduttore | Stato | |
| 1 |
aggregator-module.pot | fax8 | inserito |
| 2 |
block-module.pot | giuvax | inserito |
| 3 |
blog-module.pot | giuvax | inserito |
| 4 |
blogapi-module.pot | drupal.it | inserito |
| 5 |
book-module.pot | giuvax | inserito |
| 6 |
color-module.pot | fax8 | inserito |
| 7 |
comment-module.pot | Uccio | inserito |
| 8 |
common-inc.pot | drupal.it | inserito |
| 9 |
contact-module.pot | oRi0n | inserito |
| 10 |
content_types-inc.pot | drupal.it | inserito |
| 11 |
drupal-module.pot | theCrow | inserito |
| 12 |
file-inc.pot | drupal.it | inserito |
| 13 |
filter-module.pot | drupal.it | inserito |
| 14 |
forum-module.pot | drupal.it | inserito |
| 15 |
general.pot | maroth | inserito |
| 16 |
installer.pot | fax8 | inserito |
| 17 |
locale-inc.pot | drupal.it | respinto |
| 18 |
locale-module.pot | drupal.it | inserito |
| 19 |
menu-module.pot | parasite | inserito |
| 20 |
node-module.pot | giuvax | inserito |
| 21 |
path-module.pot | drupal.it | inserito |
| 22 |
poll-module.pot | drupal.it | inserito
|
| 23 |
profile-module.pot | giuvax | inserito |
| 24 |
search-module.pot | drupal.it | inserito |
| 25 |
statistics-module.pot | drupal.it | da rivedere |
| 26 |
system-install.pot | drupal.it | inserito |
| 27 |
system-module.pot | parasite | inserito |
| 28 |
taxonomy-module.pot | drupal.it | inserito |
| 29 |
theme-inc.pot | fax8 | inserito |
| 30 |
throttle-module.pot | drupal.it | inserito |
| 31 |
tracker-module.pot | fax8 | inserito |
| 32 |
unicode-inc.pot | drupal.it | inserito |
| 33 |
upload-module.pot | Psicomante | inserito |
| 34 |
user-module.pot | Psicomante | inserito |
| 35 |
watchdog-module.pot | drupal.it | inserito |
Lo stato di traduzione della versione 6 di Drupal
| File da tradurre |
Traduttore delle versioni passate | N° stringhe | Traduttore versione 6.x | Stato |
|---|---|---|---|---|
| general.it.po | matteo / maroth | 239 | ||
| includes.it.po | michele / drupal.it | 416 | possibile assegnamento 2+ traduttori | |
| installer.it.po | fax8 | 183 | ||
| misc.it.po | nessuno | 7 | ||
| modules-aggregator.it.po | fax8 | 116 | ||
modules-block .it.po |
negen / giuvax | 81 | ||
modules-blog .it.po |
giuvax | 20 | ||
| modules-blogapi.it.po | giuvax / drupal.it | 36 | ||
| modules-book.it.po | giuvax | 73 | ||
| modules-color.it.po | fax8 | 16 | ||
| modules-comment.it.po | Giuvax / Uccio | 131 | ||
| modules-contact.it.po | oRi0n / Giuvax | 67 | ||
| modules-dblog.it.po | matteo / drupal.it | 32 | ||
| modules-filter.it.po | giuvax / drupal.it | 134 | ||
| modules-forum.it.po | giuvax / drupal.it | 74 | ||
| modules-help.it.po | nessuno | 8 | (il file ha poche stringhe ma sono molto lunghe) | |
| modules-locale.it.po | giuvax / drupal.it | 77 | ||
| modules-menu.it.po | negen / parasite | 64 | ||
modules-node![]() .it.po |
giuvax / Psicomante | 252 | ||
| modules-openid.it.po | nessuno | 34 | ||
modules-path .it.po |
giuvax / drupal.it | 32 | ||
| modules-php.it.po | nessuno | 9 | ||
| modules-ping.it.po | nessuno | 6 | ||
| modules-poll.it.po | negen / drupal.it | 58 | ||
| modules-profile.it.po | giuvax | 86 | ||
| modules-search.it.po | negen (4.x) / drupal.it (5.x) | 54 | ||
| modules-statistics.it.po | michele - matteo (4.x) / drupal.it (5.x) | 65 | ||
| modules-syslog.it.po | nessuno | 16 | ||
| modules-system.it.po | matteo (4.x) / parasite (5.x) | 459 | Come per includes, anche questo necessiterebbe di 2+ t. | |
modules-taxonomy .it.po |
michele / drupal.it | 102 | ||
| modules-throttle.it.po | michele / drupal.it | 17 | ||
modules-tracker .it.po |
michele / fax8 | 12 | ||
| modules-translation.it.po | nessuno | 17 | ||
| modules-trigger.it.po | nessuno | 31 | ||
| modules-update.it.po | nessuno | 57 | ||
| modules-upload.it.po | Psicomante | 56 | ||
| modules-user.it.po | Psicomante | 306 | ||
| root.it.po | nessuno | 1 | ||
| themes-chameleon.it.po / themes-garland.it.po / themes-pushbutton.it.po | nessuno | 5 |
Avete deciso di tradurre un modulo (base o aggiuntivo). Potete usare il nuovissimo server di traduzione online qui su Drupal Italia, oppure tradurla autonomamente sul vostro computer.
Se decidete di usare il server di traduzione (l10n server), leggete la guida su come usarlo e come utilizzare le traduzioni. Altrimenti se volete tradurre autonomamente, senza usare strumenti di condivisione avete bisogno di due cose:
Il template non è altro che un file di testo contenente tutte le frasi che compaiono (in inglese) nel modulo. Drupal utilizza per le traduzioni il formato .po di Gnu GetText: si tratta in pratica di un file di testo che contiene la frase originale, la frase tradotta corrispondente più alcune informazioni aggiuntive (p.e. come gestire i plurali, etc). I template (cioé l'insieme delle frasi da tradurre) ha di solito l'estensione .pot (da cambiare in .po dopo la traduzione.
Possono presentarsi due situazioni:
Attenzione perchè spesso le traduzioni in altre lingue non sono aggiornate. E' quindi sempre consigliabile seguire il punto 2, cioè creare un nuovo template di traduzione tramite il modulo POTX.
Andate su localizzazione e su manage strings. Selezionate il modulo e premete extract. Se un pacchetto modulo, comprende più file .module, estraete tutte le stringhe in un solo file pot. L'opzione la trovate proprio sopra il link a scomparsa.
Potrete così scaricare il file .pot da iniziare a tradurre.
Le traduzioni possono essere scaricate dal nostro sito di traduzione, il localization server, alla pagina dell'esportazione dei file di traduzione.
Per vedere tutti i progetti (moduli) in traduzione puoi vedere la lista dei progetti.
Almack ha fatto una guida per esportare i file di traduzione. Le pagine sono leggermente cambiate ma dovrebbero andare bene lo stesso. Se ne volete fare un'altra aggiornata siete i benvenuti.
Per partecipare come traduttore potete seguire il video che ho realizzato e iscrivendovi nel sito di traduzione, anche tramite il vostronome@www.drupalitalia.org e la vostra password che usate qui.