2009-08-30 10 views
10

Ho qualche domanda:xgettext vs gettext

So cosa è getext. Ho letto alcuni post in cui hanno menzionato xgettext ed ero curioso di sapere qual è la differenza tra i due.

Come posso installare xgettext su Windows?

E, infine, qualcuno ha un tutorial su come installare la libreria php-gettext http://savannah.nongnu.org/projects/php-gettext/ (questo di solito non viene fornito con PHP) Ho letto su di esso in un articolo, ma non sono sicuro di come farlo funzionare in Windows. Il fatto è che, a volte quando si apportano modifiche, è necessario riavviare Apache per vedere i nuovi dati con il gettext fornito con PHP (ma con la libreria non è necessario riavviarlo), quindi ho voluto utilizzare la libreria per lo sviluppo . Grazie!

+0

Si potrebbe voler scomporre la seconda e la terza parte per le proprie domande. –

risposta

14

Per quanto riguarda la domanda:

so cosa gettext è. Ho letto alcuni post in cui hanno menzionato xgettext ed ero curioso di sapere qual è la differenza tra i due.

In breve, gettext() è una funzione e xgettext è un programma di utilità per estrarre i messaggi dal codice sorgente.

In lungo, in modo answer a Complete C++ i18n gettext() “hello world” example spettacoli come parte del file sorgente C++ Codice hellogt.cxx:

gettext("hello, world!") 

La funzione gettext() viene passata una stringa di testo che viene utilizzato come un indice per il messaggio da utilizzare a run-time. Restituisce il messaggio specificato per la lingua specificata nel codice o nel momento in cui il programma viene richiamato.

poi mostra:

xgettext --package-name hellogt --package-version 1.2 --default-domain hellogt --output hellogt.pot hellogt.cxx 

che è un programma di utilità utilizzato in fase di compilazione per esaminare il file di codice sorgente hellogt.cxx per stringhe di testo passati a gettext(). Questi vengono estratti e utilizzati per creare il file Modello oggetto portatile hellogt.pot.

Il modello di file .pot viene utilizzato dai traduttori nel processo di recapito del file di messaggio tradotto binario hellogt.mo utilizzato in fase di esecuzione da gettext().

+0

Questo è utile, grazie mille! – Kentor

-5

Il riferimento online function reference indica che non esiste xgettext.

Forse significa che uno dei

ngettext dgettext dngettext dcgettext dcngettext 

trattare la 'x' come un jolly

+0

ah ok, forse hai ragione – Kentor

+0

'xgettext' è una funzione di pre-elaborazione che viene chiamata per analizzare i file del codice sorgente ed estrarre tutte le stringhe dalla funzione' gettext', 'ngettext',' dgettext', e gli altri annotati. Quindi, 'xgettext' non è una funzione, ma un programma che viene chiamato. –

0

xgettext fa parte di gettext, è un programma che estrae stringhe traducibili da sorgenti di programma. Vedi gettext's manual.

Non so la sua disponibilità su Windows, Google tells me there's a port.

+0

potrebbe aiutarmi con questo -> http://stackoverflow.com/questions/1351259/php-string-variables-in-gettext-forgot-one-case-scenario? – Kentor

4

Installare Cygwin e selezionare il pacchetto gettext-devel.
Questo installerà xgettext.exe

Zend Framework dispone di un gettext Zend_Translate adapter che non richiede l'estensione di getext php.