Gettext: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
mNessun oggetto della modifica
 
(44 versioni intermedie di 34 utenti non mostrate)
Riga 1:
{{Software
Le utility [[GNU]] '''gettext''' sono un pacchetto di strumenti volti a permettere l'[[Internazionalizzazione e localizzazione|internazionalizzazione]] (i18n) del software, ovvero a semplificare la traduzione dei messaggi rivolti all'utente in ogni lingua voluta.
[[de:GNU|Nome = gettext]]
|Logo =
|Screenshot =
|Didascalia =
|Sviluppatore =
|UltimaVersione =
|DataUltimaVersione =
|UltimaVersioneBeta =
|DataUltimaVersioneBeta =
|SistemaOperativo = multipiattaforma
|Linguaggio =
|Genere = IDE
|Licenza =
|SoftwareLibero = sì
|Lingua =
}}
Le utility [[GNU]] '''gettext''' sono un pacchetto di strumenti volti a permettere l'[[Internazionalizzazione e localizzazione|internazionalizzazione]] (i18n) e [[localizzazione (software)|localizzazione]] del [[software]], ovvero a semplificare la traduzione dei messaggi rivolti all'utente in ogni lingua voluta.
 
==Compatibilità==
Line 6 ⟶ 23:
==Modo d'utilizzo==
===Sviluppatore===
[[File:Gettext.svg|thumb|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 <ttkbd>gettext</ttkbd> la stringa del messaggio da tradurre. Per motivi pratici, spesso si utilizza la forma breve <ttkbd>_</ttkbd>. In questo modo, il seguente codice in C:
 
<syntaxhighlight lang="C">
printf("My name is %s\n", mio_nome);
printf(_gettext("My name is %s\n"), mio_nome);
 
</syntaxhighlight>
diverrebbe:
<syntaxhighlight lang="C">
printf(_("My name is %s\n"), mio_nome);
</syntaxhighlight>
In seguito, il comando <ttkbd>xgettext</ttkbd> filtrerà il codice alla ricerca della funzione <ttkbd>gettext</ttkbd> appena inserita, per creare il file modello '''.pot''', sulla base delle stringhe estratte dai sorgenti.
Un esempio di file .pot per un codice contenetecontenente le righe precedenti sarebbe:
 
<syntaxhighlight lang="gettext">
printf(_("My name is %s\n"), mio_nome);
#: src/name.c:36
 
msgid "My name is %s\n"
In seguito, il comando <tt>xgettext</tt> filtrerà il codice alla ricerca della funzione <tt>gettext</tt> appena inserita, per creare il file modello '''.pot''', sulla base delle stringhe estratte dai sorgenti.
msgstr ""
Un esempio di file .pot per un codice contenete le righe precedenti sarebbe:
</syntaxhighlight>
 
#: 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 <ttkbd>msginit</ttkbd>. 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:
<syntaxhighlight lang="gettext">
 
#: src/name.c:36
msgid "My name is %s\n"
msgstr "My name is %s\n"
</syntaxhighlight>
 
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:
<syntaxhighlight lang="gettext">
#: src/name.c:36
msgid "My name is %s\n"
msgstr "Je m'appelle %s\n"
</syntaxhighlight>
Al termine, i file '''.po''' verranno compilati in file binari '''.mo''' tramite il comando <ttkbd>msgfmt</ttkbd>, dopodiché saranno pronti per la distribuzione assieme al pacchetto software dello sviluppatore.
 
===Utente===
#: src/name.c:36
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 (Unix)|variabile d'ambiente]] LANGUAGE, comunemente preimpostata in tutte le distribuzioni di [[Softwaresoftware Liberolibero]].
msgid "My name is %s\n"
msgstr "Je m'appelle %s\n"
 
==Altri progetti==
Al termine, i file '''.po''' verranno compilati in file binari '''.mo''' tramite il comando <tt>msgfmt</tt>, dopodiché saranno pronti per la distribuzione assieme al pacchetto software dello sviluppatore.
{{interprogetto}}
 
===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]].
 
==Collegamenti esterni==
* {{Collegamenti esterni}}
* {{en}} [http://www.gnu.org/software/gettext/ Homepage del progetto gettext]
 
[[Categoria:Software libero]]
 
{{GNU}}
[[de:GNU gettext]]
[[Categoria:{{portale|Software libero]]}}
[[en:Gettext]]
[[es:Gettext]]
[[ja:Gettext]]
[[pl:GNU gettext]]