Gettext: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Botcrux (discussione | contributi)
 
(15 versioni intermedie di 13 utenti non mostrate)
Riga 4:
|Screenshot =
|Didascalia =
|Sviluppatore = [[Progetto GNU]]
|UltimaVersione = 0.17
|DataUltimaVersione = [[11 novembre]] [[2007]]
|UltimaVersioneBeta =
|DataUltimaVersioneBeta =
|SistemaOperativo = linuxmultipiattaforma
|SistemaOperativo2 = multipiattaforma
|Linguaggio =
|Genere = Internazionalizzazione e localizzazioneIDE
|Genere2Licenza = ide
|Licenza = [[LGPL]] (libreria),<br />[[GNU General Public License|GPL]] (strumenti),<br />[[GFDL]]/GPL (documentazione)
|SoftwareLibero = sì
|Lingua =
|SitoWeb = [http://www.gnu.org/software/gettext/ www.gnu.org/software/gettext/]
}}
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 26 ⟶ 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(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 contenente le righe precedenti sarebbe:
 
<syntaxhighlight lang="gettext">
#: src/name.c:36
msgid "My name is %s\n"
msgstr ""
</syntaxhighlight>
 
===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 (Unix)|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]
 
{{GNU}}
{{portale|Software libero}}
 
[[ca:Gettext]]
[[cs:GNU gettext]]
[[de:GNU gettext]]
[[el:Gettext]]
[[en:Gettext]]
[[es:Gettext]]
[[fi:Gettext]]
[[fr:GNU gettext]]
[[ja:Gettext]]
[[ms:Gettext]]
[[pl:GNU gettext]]
[[pt:Gettext]]
[[ro:Gettext]]
[[ru:Gettext]]
[[uk:Gettext]]
[[zh:Gettext]]