Autore: Fabio Di Matteo
Ultima revisione: 21/12/2015 - 13:42
Facendo riferimento all' articolo Introduzione a Gettex in C vedremo come internazionalizzare i nostri programmi con vala. Link utili: http://www.teejeetech.in/2013/03/vala-6-localization.html?m=1
const string GETTEXT_PACKAGE = "helloworld"; //nome della traduzione del programma void main() { Intl.setlocale(LocaleCategory.MESSAGES, ""); Intl.textdomain(GETTEXT_PACKAGE); Intl.bind_textdomain_codeset(GETTEXT_PACKAGE, "utf-8"); //il codeset impostato a utf-8 Intl.bindtextdomain(GETTEXT_PACKAGE, "./locale"); //la cartella che contiene le traduzioni stdout.printf(_("Hello world")); stdout.printf("\n"); }
Compiliamo il codice con :
valac -X -DGETTEXT_PACKAGE="helloworld" helloworld.vala
Estraiamo le stringhe nel file template con :
xgettext --language=C --keyword=_ --escape --sort-output -o hello.pot hello.vala
Creiamo la cartella contenente la traduzione:
mkdir -p locale/it_IT/LC_MESSAGES
Con il seguente comando creiamo il file di traduzione italiano dal template .pot
msginit -l it_IT -o locale/it_IT/LC_MESSAGES/helloworld.po -i helloworld.pot
Modifichiamo helloworld.po
in base alle nostre esigenze.
Entriamo nella cartella locale/it_IT/LC_MESSAGES
e compiliamo la traduzione:
cd locale/it_IT/LC_MESSAGES msgfmt --check --verbose -o helloworld.mo helloworld.po
A questo punto dovremmo gia' essere in grado di far funzionare tutto. Non resta altro che eseguire il programma.
./helloworld
Per fare degli esperimenti potremmo provare a cambiare la lingua della sessione del terminale per visualizzare i cambiamenti nella traduzione. Avendo soltato installata la traduzione italiana non appena cambiamo la lingua si dovrebbe visualizzare la stringa di default che nel nostro caso è “Hello world”. Per esempio :
export LANGUAGE=fr_FR.UTF-8 ./hello world
Il nostro wiki installa solamente cookie tecnici necessari al funzionamento della piattaforma "Dokuwiki". Niente analitics, statistiche, tracciamenti o altro.