User Tools

Site Tools


doc:appunti:prog:gettext

This is an old revision of the document!


Localizzazione con gettext

Esempio di come creare un file navit.po con tutte le stringhe da tradurre a partire dai sorgenti:

xgettext  --default-domain=navit --add-comments --keyword=_ --keyword=_n \
    ../src/main.c ../src/navigation.c ../src/navit.c ../src/popup.c \
    ../src/country.c ../src/gui/gtk/destination.c \
    ../src/gui/gtk/gui_gtk_action.c ../src/gui/gtk/gui_gtk_statusbar.c

Il file ottenuto si rinomina in navit.pot e verrà usato come template per tutte le nuove traduzioni oppure per aggiornare quelle esistenti.

Come aggiornare un it.po esistente a partire dal nuovo navit.pot:

msgmerge it.po navit.pot -o it_new.po

Compilazione del file .mo

Se si esegue la traduzione con un client tipo poedit, al momento del salvataggio del file .po viene creata anche la versione compilata .mo. In ogni caso la versione compilata può essere generata nuovamente con:

msgfmt -o default.mo default.po

gettext con PHP

Per utilizzare le funzioni gettext() con il PHP bisogna inizializzare l'ambiente con le seguenti istruzioni (per comodità sono state raggruppate in una funzione my_setlocale():

function my_setlocale() {
    setlocale(LC_ALL, $_SESSION['locale']);
    bindtextdomain('default', './locale');
    textdomain('default');
}

Nella stessa directory del programma si deve preparare la gerarchia di directory con i file di traduzione:

├─ my_project
│  └─ locale
│     ├─ it_IT
│     │  └─ LC_MESSAGES
│     ├─ zh_CN
│     │  └─ LC_MESSAGES

Inoltre ricordarsi di:

  1. Creare i locale necessari con dpkg-reconfigure locales.
  2. Se si sono aggiornati i locale disponibili, riavviare Apache.
doc/appunti/prog/gettext.1339167791.txt.gz · Last modified: 2012/06/08 17:03 by niccolo