Tradurre le pagine

Per rendere più semplice il lavoro dei traduttori le pagine sono generate in un modo leggermente differente da quello al quale si è normalmente abituati. Le pagine web sono generate a partire da sorgenti wml. Ci sono delle directory separate per ogni lingua.

Se si ha l'intenzione di cominciare una nuova traduzione del sito web di Debian, dare un'occhiata alla sezione su come cominciare una nuova traduzione.

Tradurre singole pagine

L'uso del WML consente di separare il contenuto di una pagina dagli elementi comuni a più pagine. Ciò significa che è necessario tradurre i sorgenti WML e non i file HTML. Bisogna usare CVS per ottenere i sorgenti aggiornati. Si dovrebbe effettuare il check out almeno di due directory: webwml/english/ e webwml/<lingua>/.

Per tradurre una singola pagina dall'inglese in un'altra lingua, deve essere tradotto il file .wml originale e la traduzione deve essere messa nella directory dell'altra lingua. Il percorso relativo ed il nome devono essere uguali a quelli della directory inglese per consentire ai link di funzionare.

Header della traduzione

È fortemente raccomandato che il traduttore aggiunga una riga agli header dopo l'ultima dichiarazione #use per segnalare l'esatto numero di revisione del file originale che è stato tradotto, così da rendere l'aggiornamento più facile. La riga deve essere come questa: #use wml::debian::translation-check translation="x.y"

Alcuni team di traduttori usano questa riga anche per associare ad ogni pagina web il nome del traduttore. Così il traduttore può essere avvisato automaticamente via e-mail quando viene modificata la versione inglese della pagina che mantiene e quindi deve aggiornare la sua traduzione. È sufficiente aggiungere il nome del traduttore come maintainer alla fine della riga #use come nel seguente esempio: #use wml::debian::translation-check translation="x.y" maintainer="nome del traduttore". Lo script copypage.pl creerà questa riga automaticamente nel caso in cui venga configurata la variabile d'ambiente DWWW_MAINT oppure si usi l'opzione da riga di comando -m.

È anche necessario istruire il robot su chi si sia, sulla frequenza con la quale si vuole ricevere le mail automatiche e sul loro contenuto. Per ottenere ciò, editare (o far editare dal proprio coordinatore) il file webwml/lingua/international/lingua/translator.db.pl nel CVS. La sintassi dovrebbe essere facilmente comprensibile e si può usare il file del team francese come modello se ancora non esiste per la propria lingua. Il robot può acquisire diversi tipi di informazioni e per ognuna di esse si può scegliere la frequenza con la quale esse saranno inviate al traduttore. I differenti tipi di informazione sono:

Poi, per ognuno dei tipi elencati, va specificato uno dei seguenti valori: 0 (mai), 1 (mensilmente), 2 (settimanalmente) o 3 (quotidianamente).

Un esempio può essere:

                'Mario Rossi' => {
                        email       => 'mario.rossi@tuxfamily.org',
                        summary     => 3,
                        logs        => 3,
                        diff        => 3,
                        tdiff       => 0,
                        file        => 0
                },

L'header della pagina web può essere fatto semplicemente usando lo script copypage.pl posto nella directory radice webwml. Lo script copierà la pagina al posto giusto, creando directory e makefile (se necessari) e aggiungendo automaticamente gli header richiesti. Si verrà avvisati nel caso in cui una pagina da copiare esista nel repository, o perché la pagina è stata rimossa dal repository (a causa del fatto che era troppo datata) oppure perché qualcuno ha già inviato un commit con la traduzione e la copia locale del proprio repository non è aggiornata.

Per iniziare ad usare lo script copypage.pl è necessario, come prima cosa, configurare correttamente il file language.conf che verrà usato per stabilire in quale lingua si sta traducendo. Per far ciò, l'unica cosa necessaria è inserire una riga con il nome della lingua nella quale si sta traducendo. Sì può anche effettuare la configurazione della lingua tramite la variabile d'ambiente DWWW_LANG ed usare la variabile d'ambiente DWWW_MAINT per inserire il proprio nome, cosicché si verrà automaticamente inseriti come maintainer delle traduzioni per la propria lingua nell'apposito campo degli header dei file wml. Vi sono altre funzionalità disponibili nello script: basta eseguirlo senza alcun argomento per ottenere la schermata di help.

In altre parole dopo aver eseguito ./copypage.pl file.wml, tradurre il testo originale del file. Commenti nei file indicheranno se ci sono cose da non tradurre: vanno rispettati. Non bisogna cambiare la formattazione; se fossero necessarie correzioni esse dovrebbero essere fatte nel file originale.

Compilazione e pubblicazione della pagina

Essendo usato il content negotiation, i file HTML non sono chiamati file.html ma file.<lang>.html, dove <lang> è il codice di due caratteri della lingua, in accordo con ISO 639 (p.es. it per l'italiano).

Si possono ottenere i file HTML da quelli WML eseguendo make file.<lang>.html. Se funziona, si controlli la validità della sintassi con weblint file.<lang>.html.

Le pagine web saranno ricostruite dal CVS sul server www-master e questo processo è in grado di superare la maggior parte degli errori. Comunque, se si fa il commit di un file errato nel top level della traduzione (p.es. il file top-level index.wml), si potrebbe interrompere il processo di costruzione e mandare in stallo tutti gli altri aggiornamenti del sito web. Bisogna porre una particolare attenzione a questi file.

Una volta che si è controllata la pagina, si può fare il commit nel CVS. Se si hanno i permessi per farlo da soli, eseguire cvs commit; altrimenti, inviare il file a qualcuno con accesso in scrittura al repository.

Iniziare una nuova traduzione

Se si vuole iniziare una traduzione da zero delle pagine web Debian in una nuova lingua, mandare un'e-mail (in inglese) a webmaster@debian.org.

Prima di tutto, assicurarsi di aver fatto un esatto checkout del nostro albero dei sorgenti, come descritto nella nostra pagina di introduzione al CVS.

Dopo aver fatto il check out delle directory webwml/ e (almeno) webwml/english/, cominciare creando una nuova directory per la traduzione, accanto ad english/ e alle altre. Il nome della directory con la traduzione deve essere in inglese ed interamente in caratteri minuscoli (p.es. "italian" non "Italiano").

Copiare i file Make.lang e .wmlrc dalla directory english/ alla nuova directory. Questi file sono indispensabili per costruire la traduzione dai file WML. Sono stati fatti in modo tale che dopo che siano stati copiati nella directory per una nuova lingua, restino solo da cambiare le seguenti cose:

  1. La variabile LANGUAGE deve essere cambiata nel file Make.lang.
  2. Le variabili CUR_LANG, CUR_ISO_LANG e CHARSET devono essere cambiate nel file .wmlrc. Aggiungere CUR_LOCALE a questo file se avete bisogno di fare degli ordinamenti alfabetici.
  3. Alcune lingue potrebbero richiedere del lavoro extra per gestire un diverso insieme di caratteri. Questo può essere fatto usando le opzioni --prolog e --epilog di wml. Usare le variabili WMLPROLOG e WMLEPILOG in Make.lang per questo fine.
  4. La variabile LANGUAGES deve essere modificata nel top-level file webwml/Makefile affinché la vostra lingua sia costruita insieme alle altre su www.debian.org. Preferiamo che sia lasciato questo particolare cambiamento ai webmaster, poiché potreste non sapere che la vostra traduzione ha dei problemi quando ne viene fatto il check out dal CVS e che potrebbe danneggiare il processo di costruzione del resto del nostro sito web.

Dopo aver fatto ciò, scrivere la seguente linea in un nuovo file chiamato "Makefile" in quella directory:

include $(subst webwml/yourlanguagedir,webwml/english,$(CURDIR))/Makefile

(Naturalmente, sostituire yourlanguagedir con il nome della directory con la traduzione).

Ora creare una subdirectory nella directory con la traduzione chiamata "po", e copiare lo stesso Makefile in quella subdirectory (cp ../Makefile .).

Nella directory po/ , eseguire make init-po per generare il set iniziale di file *.po

Ora che lo scheletro di base è pronto, si può iniziare ad aggiungere le traduzioni dei tag WML condivisi usati nei template. I primi template che dovrebbero essere tradotti sono quelli che compaiono in tutte le pagine web, come le keyword degli header, i componenti della barra di navigazione e i piè di pagina.

Iniziare la traduzione dei file in po/templates.xy.po (dove xy è il codice di due lettere della lingua). Per ogni msgid "qualcosa" c'è un msgstr "" dove si dovrebbe mettere la traduzione di qualcosa tra le virgolette dopo msgstr.

Non è necessario tradurre tutte le stringhe in tutti i file .po, solo quelle che servono nelle pagine tradotte. Per vedere se è necessario tradurre una stringa, guardare i commenti nel file .po sopra ogni dichiarazione msgid. Se il riferimento è ad un file in english/template/debian, la traduzione va fatta subito. Altrimenti può essere rimandata a quando si tradurrà la sezione di pagine web che la richiedono.

Lo scopo dei file in po/ è di rendere più facili le cose ai traduttori, in modo che non debbano (quasi) mai modificare nulla nella directory english/template/debian. Se si trova qualsiasi errore nel modo in cui qualcosa è impostato nella directory template, ci si assicuri che il problema abbia una soluzione generale (si chieda pure a qualcun altro di farlo per voi), piuttosto che inserire delle traduzioni nei template, cosa che potrebbe (quasi sempre) creare problemi maggiori.

Se non si è sicuri di fare bene qualcosa, si chieda sulla mailing list debian-www prima di fare il commit.

Nota: se pensate di dover fare qualsiasi altra modifica mandate una e-mail a debian-www specificando le modifiche e le motivazioni in modo che il problema possa essere corretto.

Dopo che anche i template sono pronti, si può iniziare con la traduzione della pagina iniziale e degli altri file *.wml. Per una lista dei file che dovrebbero essere tradotti prima, si legga Suggerimenti utili per la traduzione. Si traducano le pagine *.wml come descritto all'inizio di questa pagina.

Rimettere in uso traduzioni datate

Come descritto alla pagina Mantenere le traduzioni del sito web aggiornate, le traduzioni troppo datate vengono rimosse automaticamente dopo che è passato un certo periodo di tempo senza che vi sia stato alcun aggiornamento.

Se si utilizza copypage.pl con un file che è stato rimosso da CVS, lo script si rifiuterà di copiare la pagina e chiederà invece se si desidera rimetterla in uso. Si può quindi controllare perché il file è stato tolto da cvs usando cvs log sul file rimosso (oppure mediante l'interfaccia web: i file cancellati si possono trovare nella sottodirectory "Attic").

Per rimettere in uso la pagina utilizzare cvs status (o cvs log) per conoscere il numero di versione della pagina cancellata e quindi eseguire un backwards merge.

Ad esempio, nel caso in cui il file cancellato fosse "deleted.wml" e la versione cancellata la 1.7, la versione precedente alla cancellazione sarebbe la 1.6 (ovvero la versione cancellata meno uno). Si potrebbe quindi ripristinare questo file eseguendo:

   cvs update -j 1.7 -j 1.6 deleted.wml

Una volta fatto questo si deve, naturalmente, aggiornare il documento prima di verificare di nuovo. In caso contrario potrebbe essere rimosso.

Il resto della storia

Quanto scritto sopra sarà probabilmente sufficiente per iniziare. Sotto si trovano dei riferimenti a documenti contenenti spiegazioni più dettagliate ed altre informazioni utili.

Speriamo che si trovi il lavoro che abbiamo fatto utile per tradurre con facilità le pagine. Come già detto, se si hanno delle domande le si pongano pure alla mailing-list debian-www.