2009-08-30 44 views
10

Tengo algunas preguntas:xgettext vs gettext

Sé lo que gettext es. He leído algunas publicaciones en las que mencionaron xgettext y sentí curiosidad sobre cuál es la diferencia entre las dos.

¿Cómo puedo instalar xgettext en Windows?

Y, por último, ¿alguien tiene un tutorial sobre cómo instalar la biblioteca php-gettext http://savannah.nongnu.org/projects/php-gettext/ (este generalmente no viene con PHP) He leído sobre él en un artículo, pero no estoy seguro de cómo hacer que funcione en Windows. La cosa es que, a veces cuando haces cambios, necesitas reiniciar Apache para ver los nuevos datos con el gettext que viene con PHP (pero con la biblioteca no necesitas reiniciarlo) así que quería usar la biblioteca para el desarrollo . ¡Gracias!

+0

Es posible que desee dividir las partes segunda y tercera en sus propias preguntas. –

Respuesta

14

En lo que respecta a la pregunta:

sé lo que es gettext. He leído algunas publicaciones en las que mencionaron xgettext y sentí curiosidad sobre cuál es la diferencia entre las dos.

En resumen, gettext() es una función y xgettext es un programa de utilidad para extraer mensajes de código fuente.

En largo, SO answer a Complete C++ i18n gettext() “hello world” example muestra como parte del archivo de C++ código fuente hellogt.cxx:

gettext("hello, world!") 

La función gettext() se hace pasar una cadena de texto que se utiliza como un índice para el mensaje para ser utilizado en tiempo de ejecución Devuelve el mensaje especificado para el idioma que se especifica en el código o en el momento en que se invoca el programa.

A continuación se muestra:

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

que es un programa de utilidad que se utiliza en tiempo de compilación para examinar el archivo de código fuente hellogt.cxx cadenas de texto pasados ​​a gettext(). Estos se extraen y se usan para crear el archivo de plantilla de objeto portátil hellogt.pot.

La plantilla de archivo .pot es utilizada por traductores en el proceso de entrega del archivo de mensaje binario traducido hellogt.mo utilizado en tiempo de ejecución por gettext().

+0

¡Eso es útil, muchas gracias! – Kentor

-5

La referencia en línea function reference me dice que no hay xgettext.

Tal vez significa que uno de

ngettext dgettext dngettext dcgettext dcngettext 

el tratamiento de la 'x' como un comodín

+0

ah ok, tal vez tengas razón – Kentor

+0

'xgettext' es una función de preprocesamiento que se llama para analizar tus archivos de código fuente y extraer todas las cadenas de la función' gettext', 'ngettext',' dgettext', y las demás notas. Entonces, 'xgettext' no es una función, sino un programa que se llama. –

0

xgettext es parte de gettext, que es un programa que extrae las cadenas traducibles a partir de fuentes de programa. Ver gettext's manual.

No sé si está disponible en Windows, Google tells me there's a port.

+0

podría ayudarme con esto -> http://stackoverflow.com/questions/1351259/php-string-variables-in-gettext-forgot-one-case-scenario? – Kentor

4

Instale Cygwin y seleccione el paquete gettext-devel.
Esto instalará xgettext.exe

Zend Framework tiene un gettext Zend_Translate adapter que no requiere la extensión de php gettext.