Iniziare una traduzione

In questa sezione sono descritti i passi necessarri per effettuare la prima traduzione della propria vita. Vengono fornite informazioni sufficientemente dettagliate sul formato dei file PO; è necessario comunque premettere che una traduzione non banale richiede anche le informazioni presentate in Sezione 4 - Sintassi dei file PO e in Sezione 5 - Architettura di GNOME

3.1. Procurarsi un file po

Il modo più semplice di ottenere un file PO è di farselo dare da chi già lo ha. In particolare della lista dei moduli orfani della pagina dei traduttori italiani di GNOME e dalla lista delle statistiche di traduzione di GNOME. (FIXME: inserire i rispettivi collegamenti)

I file PO qui disponibili sono generati in modo automatico ad intervalli regolari. Se si ha paura di pasticciare, questo è il modo consigliato per procurarsi il file.

In alternativa è possibile crearsi da soli il file PO. Per fare ciò è necessario avere sia i sorgenti dell'applicazione (meglio se la versione di sviluppo da CVS), sia intltool installato nel proprio sistema.

Per creare quindi da soli un nuovo file pot si procede come segue:

  • aprire una finestra di Terminale
  • passare alla directory applicazione/po/
  • eseguire il comando intltool-update -p
Se non vengono evidenziati errori, allora è stato creato il file applicazione.pot, ossia il modello da usare per la propria traduzione.

In caso di errore

Qualora invece vengano evidenziati degli errori, allora è bene segnalarli agli sviluppatori dell'applicazione. Spesso si tratta di un aggiornamento dei file sorgenti dell'applicazione a cui non è corrisposto un aggiornamento dei file marcati come contenti stringhe traducibili. L'elenco di tali file è mantenuto nel file POTFILES.in presente nella stessa directory po. Per aggirare il problema prima dell'intervento degli sviluppatori si puà provare ad eliminare da tale file i riferimenti ai file che non sono stati trovati.

A questo punto è sufficiente copiare o rinominare il file applicazione.pot come it.po per proseguire poi con l'effettiva traduzione.

3.3. Esempio iniziale di file po

Il seguente è un esempio di file PO appena generato; i numeri sulla sinistra non compaiono nel file, ma saranno utili nel seguito per poter fare riferimento ai vari elementi.

 1  # SOME DESCRIPTIVE TITLE.
 2  # Copyright (C) YEAR Free Software Foundation, Inc.
 3  # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 4  #
 5  #, fuzzy
 6  msgid ""
 7  msgstr ""
 8  "Project-Id-Version: PACKAGE VERSION\n"
 9  "PO-Revision-Date: YEAR-MO-DA HO:MI +ZONE\n"
10  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
11  "Language-Team: LANGUAGE <LL@li.org>\n"
12  "MIME-Version: 1.0\n"
13  "Content-Type: text/plain; charset=CHARSET\n"
14  "Content-Transfer-Encoding: 8bit\n"
15
16  #: src/main.c:32
17  msgid "First string"
18  msgstr ""
19  
20  #: src/main.c:48
21  msgid "Second string"
22  msgstr ""
In questo file è possibile evidenziare:

  1. delle righe di commento, quelle che iniziano per # (righe da 1 a 5, 16 e 20);
  2. un'intestazione con i dati della traduzione (righe da 6 a 14);
  3. due messaggi da tradurre (righe 17 e 21);
  4. due “spazi liberi” per le traduzioni dei messaggi (righe 18 e 22).

Ogni messaggio da tradurre è racchiuso tra due " e preceduto dalla parola chiave msgid; il corrispondente messaggio tradotto va inserito tra la coppia di virgolette subito dopo, quelle precedute dalla parola chiave msgstr. Ogni coppia di messaggi è preceduta da un commento che indica il file e la riga da cui il messaggio da tradurre è prelevata; nel commento possono anche essere presenti informazioni utili per la traduzione, rese disponibili dagli sviluppatori, o indicazioni su particolari formati che saranno spiegati in Sezione 4 - Sintassi dei file PO.

Annotazione

L'intestazione di un file PO è a sua volta una stringa traducibile. Il testo di tale stringa è vuoto (cfr. riga 6 dell'esempio sopra), mentre la stringa tradotta deve seguire una particolare sintassi.

Per poter completare la traduzione di questo file è necessario modificare nel modo opportuno l'intestazione e insereire le traduzioni dei messaggi negli appositi spazi, come spiegato qui di seguito:

3.4. Modifica dell'intestazione

La prima cosa da modificare è l'intestazione del file PO. I dati da modificare sono quelli scritti in maiuscolo, in particolare:

  • PACKAGE - riga 8, da sostituire con il nome del modulo
  • VERSION - riga 8, da sostituire, se noto, con il numero di versione del modulo
  • YEAR-MO-DA HO:MI +ZONE - riga 9, da sostituire con data, ora e fuso orario della revisione/modifica, secondo il formato suggerito; questo dato andrebbe modificato ogni volta che si aggiorna la revisione della traduzione stessa
  • FULL NAME - riga 10, nome e cognome dell'ultimo traduttore che ha modificato la traduzione
  • EMAIL@ADDRESS - riga 10, indirizzo email dell'ultimo traduttore che ha modificato la traduzione; notare che tale indirizzo è importante per la notifica degli errori di traduzione
  • LANGUAGE - riga 11, lingua della traduzione, questo valore va impostato a Italian
  • LL@li.org - riga 13, indirizzo email del gruppo di traduzione per la lingua, questo valore va impostato a tp@lists.linux.it; notare che tale indirizzo è importante per la notifica degli errori di traduzione
  • CHARSET - la codifica dei caratteri nella quale il file è stato salvato, tale valore deve essere impostato a UTF-8; ovviamente il file deve essere effettivamente in codifica UTF-8

Anche le righe di commento all'intestazione vanno modificate secondo le indicazioni che seguono:

  • riga 1: sostituire con Italian translation of applicazione o simile; si deve usare l'inglese proprio perchè tale stringa descrive ad un lettore "internazionale" del file di cosa parla il file
  • riga 2: sostituire con gli anni per il quale la traduzione è coperta da copyright
  • riga 3: sostituire con i dati degli autori della traduzione, uno per riga; si raccomanda di non cancellare i nomi di traduttori dai quali si rileva una traduzione

Tra la riga 2 e 3 andrebbe poi aggiunta una ulteriore riga di commento

   # This file is distributed under the same license as the applicazione package
  

Infine, per completare questa prima fase, va elimata la riga 5, quella con la scritta fuzzy. Se non si cancella questa riga, infatti, anche traducendo tutti i messaggi della traduzione, questa non verrà poi compilata. Per maggiori informazioni sulle stringhe fuzzy e sul loro uso, consultare .

3.5. Traduzione dei messaggi

Il file PO d'esempio, dopo aver apportato le operazioni preliminari alla traduzione descritte in Sezione 3.4 - Modifica dell'intestazione, appare come segue (le parole in corsivo sono quelle variabili in funzione dei dati del traduttore e/o dell'applicazione):

 1  # Italian tranlation of Applicazione.
 2  # Copyright (C) 2001-2005 Free Software Foundation, Inc.
 3  # This file is distributed under the same license as the applicazione package
 4  # Pluto Bar <pluto@bar.net>, 2005.
 4
 5
 7  msgid ""
 8  msgstr ""
 9  "Project-Id-Version: applicazione x.y.z"
10  "PO-Revision-Date: 2005-02-12 10:45 +0100\n"
11  "Last-Translator: Pluto Bar <pluto@bar.net>\n"
12  "Language-Team: Italian <tp@lists.linux.it>\n"
13  "MIME-Version: 1.0\n"
14  "Content-Type: text/plain; charset=UTF-8\n"
15  "Content-Transfer-Encoding: 8bit\n"
16
17  #: src/main.c:32
18  msgid "First string"
19  msgstr ""
20  
21  #: src/main.c:48
22  msgid "Second string"
23  msgstr ""

A questo punto per completare la traduzione è sufficente modificare le righe 19 e 23 in modo tale che tra le "" di ciascuna riga ci sia la traduzione di quanto riportato alla riga che precede.

In pratica, alla fine della fase di traduzione la parte finale del file PO apparirà come segue:

[...]
16
17  #: src/main.c:32
18  msgid "First string"
19  msgstr "Prima stringa"
20  
21  #: src/main.c:48
22  msgid "Second string"
23  msgstr "Seconda stringa"