Traduzione delle pagine del sito Web

Accesso CVS ad Alioth

La gestione della pagine web del sito Debian è documentata, seppur in modo essenziale, qui; c'è però bisogno di aggiungere un particolare tanto banale quanto tutto sommato importante.
Nella sezione che spiega come usare CVS per effettuare il checkout, ovvero il mirror locale delle pagine in formato .wml, viene riportato un collegamento a fondo pagina su come ottenere l'accesso in scrittura al repository CVS richiedendo di far parte del progetto Alioth webwml.
Si aprirà una pagina che richiede di effettuare il login, ed è proprio qui che può nascere il disguido; per chi non è ancora iscritto ad Alioth questo significa scegliere di creare un nuovo account, compilare il form, ricevere un messaggio di iscrizione avvenuta e attendere l'email che validerà l'operazione.
Dopodiché se non ci si ricorda di tornare alla pagina che spiega come usare CVS e cliccare nuovamente sul link detto poc'anzi (ovvero questo) ci troveremo con un account privo delle credenziali sufficienti ad accedere tramite cvs e ssh.
Ciò non avviene se si ha già un account, in quanto una volta effettuato il login si verrà automaticamente indirizzati alla pagina voluta, ovvero quella dove fare la vera richiesta di appartenere al gruppo webwml; qui basterà scrivere di essere un traduttore e manutentore delle pagine web e inviare la richiesta.

Un'altra mancanza è l'impostazione della variabile CVS_RSH, si può trovare una breve descrizione su questa pagina, inserire quindi il seguente comando nel file $HOME/.profile:

export CVS_RSH=ssh

Checkout e update

Generalmente è sufficiente avere il mirror degli alberi english e italian e di alcuni script utili contenuti nella directory principale, ecco dunque i comandi per ottenere il checkout parziale come utente anonimo:

$ cvs -d :pserver:anonymous@cvs.debian.org:/cvs/webwml checkout webwml/english webwml/italian webwml/Perl
$ cvs -d :pserver:anonymous@cvs.debian.org:/cvs/webwml checkout -l webwml

e come utente registrato (nomeutente ha sempre il suffisso -guest, ad esempio skizzhg-guest):

$ cvs -d :ext:nomeutente@cvs.debian.org:/cvs/webwml checkout webwml/english webwml/italian webwml/Perl
$ cvs -d :ext:nomeutente@cvs.debian.org:/cvs/webwml checkout -l webwml

Verrà creata una directory webwml nel percorso in cui si eseguono i comandi, nel caso non si volesse tenerla nella home ricordarsi quindi di spostarsi altrove. In futuro i comandi andranno eseguiti all'interno di questa directory.

Nei successivi aggiornamenti bisognerà sempre specificare le directory altrimenti verrà scaricato l'intero albero:

$ cd /percorso/directory/webwml
$ cvs update -d english italian Perl

Differenze

Una volta che si hanno i file in locale si potranno facilmente controllare le differenze con la versione precedente per individuare i cambiamenti da apportare per aggiornare la pagina. Supponiamo di voler aggiornare la pagina http://www.debian.org/devel/debian-nonprofit/index.it.html, si cercherà quindi il corrispettivo file locale in /percorso/directory/webwml/italian/devel/debian-nonprofit/index.wml, l'intestazione riporta una riga con il numero di versione e il maintainer:

#use wml::debian::translation-check translation="1.17" maintainer="Johan Haggi"

Il comando per effettuare il diff sarà il seguente (notare che il diff va fatto sul ramo english):

$ cvs -d :pserver:anonymous@cvs.debian.org:/cvs/webwml diff -r1.17 english/devel/debian-nonprofit/index.wml

o così se si ha un account:

$ cvs -d :ext:nomeutente@cvs.debian.org:/cvs/webwml diff -r1.17 english/devel/join/debian-nonprofit/index.wml

Per ulteriore comodità si può aggiungere al file $HOME/.profile anche la variabile CVSROOT che eviterà di usare l'intera stringa user@host:/path

export CVSROOT=:ext:nomeutente@cvs.debian.org:/cvs/webwml

D'ora in poi i comandi potranno essere utilizzati nella forma breve (ad esempio, cvs -d $CVSROOT checkout -l webwml)

Correzioni e aggiornamenti

Durante la navigazione del sito Debian si possono incontrare pagine che hanno la seguente dicitura: "Nota: L'originale è più recente di questa traduzione." o più semplicemente capita di individuare degli errori e dei refusi.
Gli errori si possono segnalare alla mailing list italiana del progetto o si può correggere la pagina mandando poi il file sempre alla mailing list per una revisione.

È tassativo mantenere la stessa codifica, che è UTF-8.

L'aggiornamento è anche possibile ma a certe condizioni, prima di tutto queste, poi va individuato il maintainer (è riportato all'inizio del file .wml) e possibilmente comunicare a lui/lei il cambiamento mandando il file e segnalando nel corpo del messaggio le modifiche apportate in stile "diff" (numero riga, riga vecchia, riga nuova o riga inglese e riga italiana per eventuali paragrafi aggiunti), ricordarsi di modificare il numero di revisione (1.17 diventerà 1.18); questo solo in caso di aggiornamenti, se è una semplice correzione di un refuso la versione resta la stessa. In caso di dubbi o se non si trovasse il contatto del maintainer negli archivi della mailing list, inviare a quest'ultima esponendo le motivazioni.

Per la priorità degli aggiornamenti o le pagine ancora da tradurre si veda la pagina delle statistiche, per le nuove traduzioni è gradita la prenotazione in mailing list per evitare che più persone lavorino contemporaneamente alla stessa traduzione.

Nuova traduzione di una pagina

Anche qui, per completezza, bisogna aggiungere alcuni particolari alla sezione degli esempi.

Si copia il file da tradurre dal ramo english alla rispettiva directory italiana tramite lo script webwml/copypage.pl, cvs add lo aggiunge al vostro repository locale tramite il file CVS/Entries:

$ cd /percorso/directory/webwml/
$ ./copypage.pl english/devel/debian-nonprofit/index.wml
$ cd italian/devel/debian-nonprofit/
$ cvs add index.wml

Lo script va eseguito nella directory principale, aggiungerà l'header translation-check con la versione, creando se necessario la directory di destinazione e il Makefile.

Affinché possa funzionare è necessario impostare la variabile DWWW_LANG, perciò agiremo nuovamente sul file $HOME/.profile:

export DWWW_LANG=italian

Onde evitare di aggiungere manualmente la parte del maintainer esiste un'altra variabile:

export DWWW_MAINT=skizzhg

Una volta tradotto il testo e fatti i controlli necessari (vedere più avanti) si esegue il commit.

Commit

La parte seguente è per chi ha un account e quindi accesso in scrittura sull'originale.
Oltre a quanto già esposto nella pagina su come usare CVS vanno aggiunte un paio di note. Una volta che il file è stato aggiornato ed eventualmente revisionato lo si può caricare sul server, prima di questo conviene creare la pagina html per verificarne il risultato.

Installare il pacchetto wml, spostarsi nella directory dove il file risiede ed eseguire il comando make sul file index.wml, l'autocompletamento suggerirà il nuovo nome con estensione .it.html:

$ cd /percorso/directory/webwml/italian/devel/debian-nonprofit/
$ make index.it.html

Se non ci sono errori si otterrà un messaggio simile:

wml -q -D CUR_YEAR=2010 -o UNDEFuIT:index.it.html@g+w   index.wml

Ora si può aprire la pagina nel browser, non essendoci i file .css e le immagini l'impaginazione non sarà fedelissima. Se si hanno grossi dubbi potrebbe essere utile avviare un httpd nella directory che risponderà all'indirizzo http://localhost:8000/

$ python -m SimpleHTTPServer

È utile effettuare un controllo della sintassi installando il pacchetto weblint-perl:

$ weblint index.it.html

in caso di errori indicherà la riga in cui ha trovato un'anomalia, ad esempio qui dice che c'è un tag chiuso ma non il corrispettivo aperto:

index.it.html (161:24) </p> with no opening <p>

È inoltre buona abitudine inserire un breve commento per motivare il cambiamento, sempre nella directory dove è presente il file si eseguirà quindi il commit:

$ cvs commit -m "translation update" index.wml

Il file index.it.html può essere quindi rimosso con:

$ make clean