Gettext

gettext
software
Logo
Logo
GenereIntegrated development environment
Sviluppatoreprogetto GNU
Data prima versione1995
Ultima versione0.22.5 (21 febbraio 2024)
Sistema operativoMultipiattaforma
LinguaggioC
LicenzaGNU GPL v3+ e GNU Lesser General Public License, version 2.1 or later
(licenza libera)
Sito webwww.gnu.org/software/gettext/
Modifica dati su Wikidata · Manuale

Le utility GNU gettext sono un pacchetto di strumenti volti a permettere l'internazionalizzazione (i18n) e localizzazione del software, ovvero a semplificare la traduzione dei messaggi rivolti all'utente in ogni lingua voluta.

Compatibilità

Essendo stato progettato per permettere la traduzione dell'intero Sistema Operativo GNU, gettext è compatibile con un gran numero di linguaggi di programmazione e di scripting: C, C++, C ad oggetti, Bash script, Python, GNU clsip, Emacs Lisp, GNU Smalltalk, Java, GNU awk, Pascal, WxWidgets, YCP, Tcl, PHP, Pike, ed altri ancora.

Modo d'utilizzo

Sviluppatore

Flusso di lavoro

Per prima cosa è necessario utilizzare la funzione GNU gettext all'interno del codice sorgente. Questo avviene in modo diverso a seconda del linguaggio di programmazione adottato per il proprio progetto, ma segue regole comuni per i linguaggi più comunemente adottati. Queste prevedono che il programmatore racchiuda all'interno della funzione gettext la stringa del messaggio da tradurre. Per motivi pratici, spesso si utilizza la forma breve _. In questo modo, il seguente codice in C:

printf(gettext("My name is %s\n"), mio_nome);

diverrebbe:

printf(_("My name is %s\n"), mio_nome);

In seguito, il comando xgettext filtrerà il codice alla ricerca della funzione gettext appena inserita, per creare il file modello .pot, sulla base delle stringhe estratte dai sorgenti. Un esempio di file .pot per un codice contenente le righe precedenti sarebbe:

#: src/name.c:36
msgid "My name is %s\n"
msgstr ""

Traduttore

Il traduttore deriverà un file .po dal file modello facendo uso del programma msginit. Questo genererà un file a seconda della traduzione da effettuare, che utilizzerà la lingua utilizzata dal programmatore in caso di mancata traduzione. Ad esempio, per una traduzione in francese:

msginit --locale=fr --input=name.pot

Il programma creerà il file fr.po, di contenuto simile al seguente:

#: src/name.c:36
msgid "My name is %s\n"
msgstr "My name is %s\n"

A questo punto, il traduttore non dovrà far altro che tradurre la stringa alla riga msgstr, manualmente o tramite appositi programmi quale ad esempio poEdit. Il risultato sarà simile a questo:

#: src/name.c:36
msgid "My name is %s\n"
msgstr "Je m'appelle %s\n"

Al termine, i file .po verranno compilati in file binari .mo tramite il comando msgfmt, dopodiché saranno pronti per la distribuzione assieme al pacchetto software dello sviluppatore.

Utente

L'utente non dovrà far altro che eseguire il programma, poiché questo utilizzerà la traduzione del file .mo corrispondente al valore della variabile d'ambiente LANGUAGE, comunemente preimpostata in tutte le distribuzioni di software libero.

Altri progetti

Altri progetti

  • Wikimedia Commons
  • Collabora a Wikimedia Commons Wikimedia Commons contiene immagini o altri file su Gettext

Collegamenti esterni

  • (EN) Sito ufficiale, su gnu.org. Modifica su Wikidata
  • Gettext / Gettext (altra versione) / Gettext (altra versione) / Gettext (altra versione) / Gettext (altra versione) / Gettext (altra versione) / Gettext (altra versione) / Gettext (altra versione) / Gettext (altra versione), su packages.debian.org. Modifica su Wikidata
  • Repository sorgenti di Gettext, su git.savannah.gnu.org. Modifica su Wikidata
  • (EN) Gettext, su Free Software Directory. Modifica su Wikidata
  Portale Software libero: accedi alle voci di Wikipedia che trattano di Software libero