Gettext: lo strumento di traduzione dei programmi open

Non è necessario essere programmatori per dare il proprio contributo nella scena dell'open source software, scopriamo GNU Gettext.

Ci sono molte persone estremamente volenterose che vorrebbero dare una mano a vari progetti open source, ma purtroppo non hanno le conoscenze di programmazione necessarie per il debug o il miglioramento dei programmi proposti dalla comunità open source, ma ci sono altri modi per contribuire: uno di questi è l'internazionalizzazione dei programmi stessi. Uno strumento molto usato nel campo open source è sicuramente GNU Gettext.

In realtà Gettext non è un unico strumento, ma un insieme di strumenti, volti all'internazionalizzazione dei software, ed essendo stato progettato per permettere la traduzione dell'intero OS GNU, Gettext è compatibile con un gran numero di linguaggi: C, C++, Object C, Python, GNU CLisp, Emacs Lisp, Bash, GNU Smalltalk, Java, GNU awk, Pascal, WxWidgets, YCP, Tcl, PHP, Pike, ed molti altri che non sto qui a citare.

Per quanto possa sembrare complicato in realtà l'uso è abbastanza semplice, la difficoltà più grossa è fatta dal programmatore, il quale dovrà usare Gettext all'interno del proprio programma, mentre il traduttore dovrà solamente far derivare un file .po dal template creato dal programmatore, il quale ha estensione .pot, il file *.po avrà una struttura simile alla seguente:

: /src/saluta.c:15

msgid "Salve! Mi chiamo Giovanni\n"

msgstr "Salve! Mi chiamo Giovanni\n"

Ora non resta che tradurre, manualmente o tramite appositi programmi, la stringa msgstr ottenendo:

: /src/saluta.c:15

msgid "Salve! Mi chiamo Giovanni\n"

msgstr "Hi! My name is Giovanni\n"

Successivamente sarà possibile compilare il file .po in un file .mo pronto per essere distribuito insieme al pacchetto proposto dallo sviluppatore, la lingua giusta sarà scelta automaticamente leggendo la variabile d'ambiente LANGUAGE.

Se volete vedere una breve introduzione a GNU Gettext, potete visitare la Pagina Ufficiale.

Questo è quanto, buona traduzione a tutti!

Saluti e al prossimo post!

Penaz.

social