2010-01-28 31 views
5

Encontré esta genial biblioteca gettext js ->http://code.google.com/p/gettext-js/ pero no entiendo cómo implementarla. Estoy usando Poedit para editar las traducciones y puedo ver que funciona cuando pago el proyecto y ejecuto el archivo de demostración, pero cuando hago cambios en el texto, los archivos .po no se actualizan y no puedo ver el nuevo texto. ¿Alguien tiene alguna idea? ¡Gracias!traduzco archivos .js usando gettext

Respuesta

9

"también tuve que forzar pitón en el comando gettext":

  1. Archivo | Preferencias | Parsers
  2. Editar Python
  3. Editar "Lista de extensiones ..":
  4. *.py;*.js
  5. Editar "Analizador elogio:"
  6. xgettext --language=Python --force-po -o %o %C %K %F

Hecho.

Gracias por leading me no Kentor :)

0

Debe invocar xgettext para extraer las cadenas en un archivo .pot y luego ejecutar msgmerge para actualizar los archivos .po. El gettext manual tiene todos los detalles sangrientos.

+0

Pude descubrir el problema que estaba teniendo. El caso es que al hacer cambios en el idioma tuve que volver a analizar todos los archivos con Poedit. Así que primero tuve que agregar las rutas correctas para ese proyecto y luego tuve que usar el analizador de Python para los archivos * .js. También tuve que forzar Python en el comando gettext, de lo contrario Poedit se quejará de que los archivos .js no se entienden y tratará de usar C/C++ para analizarlos. – Kentor

4

creo xgettext --language = Perl --force-po -o% o% C% K% F (usando Perl en lugar de pitón) será de unos mejores opciones , ya que python causa un problema con el comentario de javascript que contiene una comilla simple (error de cadena sin terminación).

+2

He intentado su solución y las advertencias no se mostraron. Pero algunas traducciones no se encontraron en archivos js (para la versión de Python se encontraron) ... Así que prefiero la versión de Python, incluso con advertencias ... :( – Andron

0

Intenté inicialmente con ambas configuraciones, Python & Perl pero con algunas plantillas de subrayado complejas, comillas anidadas y comillas dobles, caracteres escapados, etc. Ambos analizadores informaron cargas de cadenas falsas obsoletas, por lo que no puedo actualizar los archivos .pot o .po apropiadamente desde el código fuente.

que también probó sin éxito http://code.google.com/p/gettext-js/

Después de una gran cantidad de errores de prueba & descubrí que puedo usar el encadenamiento de análisis y funcionó bien en poedit 1.5.7. Estos son los parámetros de configuración que deben habilitarse al mismo tiempo para la mejor coincidencia

Extraído de la biblioteca/Preferencias/net.poedit.Poedit.cfg de la versión de Mac, simplemente puede copiar y pegar en su cuadro de diálogo

[Parsers/js] 
Extensions=*.js;*.html 
Command=xgettext --language=Python --force-po -o %o %C %K %F 
KeywordItem=-k%k 
FileItem=%f 
CharsetItem=--from-code=%c 

[Parsers/PHP] 
Extensions=*.php;*.js;*.html 
Command=xgettext --language=PHP --force-po -o %o %C %K %F 
KeywordItem=-k%k 
FileItem=%f 
CharsetItem=--from-code=%c 

Tenga en cuenta que puede que no necesite incluir * .html en sus extensiones, lo hice para analizar mis plantillas de guiones bajos. Espero que ayude porque fue realmente frustrante para mí :)