Come utilizzare pywws in un altra lingua

Introduzione

Alcune parti del pywws possono essere configurate per utilizzare la lingua locale anziché l’Inglese Britannico. Ciò richiede un file di lingua appropriata che contiene le traduzioni delle varie stringhe utilizzate in pywws. Il progetto pywws si affida agli utenti di fornire queste traduzioni. Questo documento descrive come creare un file di lingua.

La documentazione pywws può anche essere tradotta in altre lingue. Questo è ancora molto lavoro, ma potrebbe essere molto utile agli utenti potenziali che non leggono molto bene l’inglese.

Dipendenze

Così come il software pywws è necessario installare il pacchetto di utilità di internazionalizzazione GNU gettext. Questo è disponibile dai repository standard per la maggior parte delle distribuzioni Linux, o potete scaricarlo da http://www.gnu.org/software/gettext/ se è necessario compilarlo da soli.

Scegli il tuo codice di lingua

I computer utilizzano tag della lingua IETF (vedere http://en.wikipedia.org/wiki/IETF_language_tag). Ad esempio, nel Regno Unito si usa ‘ en_GB ‘. Questo ha due parti: en per l’inglese e GB per la versione britannica. Per trovare il codice corretto per la vostra lingua, consultare l’elenco presso http://www.gnu.org/software/gettext/manual/gettext.html#Language-Codes.

Guida introduttiva

La directory pywws dovrebbe già avere una sottodirectory denominata traduzioni. Questo contiene l’insieme dei file di lingua esistente, ad esempio translations/sv/pywws.po contiene le traduzioni svedesi. Se una di queste lingue è quello che ti serve, quindi modificare il file weather.ini e aggiungere una voce language alla sezione [config], ad esempio:

[config]
day end hour = 21
gnuplot encoding = iso_8859_1
language = sv

Potrebbe essere ancora necessario compilare e installare il file della lingua scelta. Questo viene fatto con setup.py:

python setup.py msgfmt

Se non c’è già un file per la lingua, il resto di questo documento spiega come crearne uno.

Creare un file di lingua

Il primo passo è quello di creare un file contenente le stringhe che hai bisogno di tradurre. Ad esempio, per creare un file di origine per la lingua francese (codice fr):

python setup.py xgettext
python setup.py msgmerge --lang=fr

Questo ti chiederà di confermare il tuo indirizzo email, quindi creare un file pywws.po nella directory translations/fr. Ora si dovrebbe modificare pywws.po, riempiendo in ogni linea di msgstr con una traduzione della linea msgid immediatamente di sopra di esso. Il motivo di includere l’indirizzo e-mail è di consentire a chiunque abbia domande circa la vostra traduzione di mettersi in contatto con voi. Sentitevi liberi di mettere in un indirizzo non valido, se siete preoccupati per la privacy.

Dopo avere modificato i file di lingua devono essere compilati in modo che pywws possa usarli. Questo viene fatto con il comando msgfmt:

python setup.py msgfmt

Non dimenticate di fare questo ogni volta che si modifica un file di lingua.

Controllare la traduzione pywws

Il modulo Localisation può essere utilizzato per fare un test rapido della lingua del file di installazione:

python -m pywws.Localisation -t fr

Questo dovrebbe produrre output con qualcosa di simile a questo:

Locale changed from (None, None) to ('fr_FR', 'UTF-8')
Translation set OK
Locale
  decimal point: 23,2
  date & time: lundi, 17 décembre (17/12/2012 16:00:48)
Translations
  'NNW' => 'NNO'
  'rising very rapidly' => 'en hausse très rapide'
  'Rain at times, very unsettled' => 'Quelques précipitations, très perturbé'

Modificare la voce lingua nel file weather.ini per utilizzare il tuo codice lingua (per esempio it), quindi provare a utilizzare Plot e tracciate un grafico. L’asse x del grafico dovrebbe ora essere tradotto nella tua lingua, utilizzando la traduzione che hai fornito per ‘Time’, ‘Day’ or ‘Date’.

Tradurre la documentazione

Il sistema utilizzato per tradurre le stringhe utilizzate in pywws è utilizzabile anche per tradurre la documentazione. Il comando per estrarre le stringhe dalla documentazione è molto simile:

python setup.py xgettext_doc

Si noti che questo richiede il pacchetto sphinx utilizzato per la ‘compilazione’ della documentazione. Dopo l’estrazione delle stringhe, creare i file di origine per la tua lingua. In questo esempio la lingua è l’italiano, con il codice di due lettere it:

python setup.py msgmerge --lang=fr

Questo crea quattro file (index.po, essential.po, guides.po e api.po) che contengono stringhe di testo (spesso interi paragrafi) estratti da diverse parti della documentazione.

Questi file possono essere modificati in modo simile a pywws.po. Riempire ogni msgstr con una traduzione di msgid di sopra di esso. Si noti che alcune stringhe (ad esempio gli URL e i collegamenti ad altre parti della documentazione) non dovrebbero essere tradotti. In questi casi, lasciare vuoto il msgstr.

Tradurre tutta la documentazione pywws è un sacco di lavoro. Tuttavia, quando la documentazione è ‘compilata’ le stringhe non tradotte ritornano al loro originale inglese. Ciò significa che una traduzione parziale potrebbe ancora essere utile – Io consiglio di iniziare con la documentazione front page, index.po.

Visualizzazione della documentazione tradotta

Prima convertire il file appena modificato della lingua:

python setup.py msgfmt

Quindi eliminare la vecchia documentazione (se esiste)e ricostruire utilizzando il tuo linguaggio:

rm -Rf doc/html/fr
LANG=fr python setup.py build_sphinx

Si noti che il comando build_sphinx non ha un opzione --lang, per la lingua è impostata una variabile temporanea di ambiente.

Infine è possibile visualizzare la documentazione tradotta tramite un browser web per leggere il file doc/html/it/index.html.

Aggiornare i file di lingua

Siccome pywws è in sviluppo, possono essere aggiunte nuove stringhe che richiederà i file di traduzione per essere anche sviluppato. Questo è abbastanza facile da fare. Innanzitutto è necessario ri-estrarre le stringhe per essere tradotte, quindi unirle nei file lingua esistenti. Questo è fatto ripetendo i comandi utilizzati per creare i file:

python setup.py xgettext
python setup.py xgettext_doc
python setup.py msgmerge --lang=fr

Ciò dovrebbe aggiungere le nuove stringhe nel file di lingua, senza modificare le stringhe già tradotte.

Se l’origine della lingua inglese è cambiato dall’ultima traduzione, alcune stringhe possono essere contrassegnate da gettext come ‘#, fuzzy ‘. È necessario controllare che la traduzione è ancora corretta per queste stringhe – il cambiamento può essere banale (per esempio una correzione ortografica) ma potrebbe essere abbastanza significativo. Quando hai controllato (e corretti se necessario) la traduzione, rimuovere la riga ‘#, fuzzy ‘.

Inviare a Jim la traduzione

Sono sicuro che ti piacerebbe che gli altri possano beneficiare del lavoro che hai fatto nel tradurre pywws. Per favore, per favore, inviate una copia del vostro file di lingua (per esempio pywws.po) a jim@jim-easterbrook.me.uk. Quando si invia una nuova traduzione che è necessario includere i dettagli di quale versione pywws si basa - il modo più semplice per farlo è di includere il valore di commit dal file pywws/version.py nella tua e-mail.

Commenti o domande? Si prega di iscriversi per al mailing list pywws http://groups.google.com/group/pywws e facci sapere.