2010-02-02 41 views
26

¿Hay alguna alternativa general de localización/traducción a gettext?Alternativas a gettext?

La fuente abierta o patentada no importa.

Cuando digo alternative to gettext, me refiero a una biblioteca para la internacionalización, con un tipo de backend de localización.

La razón por la que estoy preguntando es porque (entre otras cosas) encuentro la forma en que gettext hace las cosas un poco engorrosas y estáticas, principalmente en el bit back-end.

+0

¿Qué es exactamente de gettext hacen a encontrar engorroso? –

+1

Es difícil señalar algo específico, pero tiene algo que ver con el flujo de trabajo que se siente ineficiente. –

+2

No creo que encuentres cosas mucho mejores. Tiene una gran variedad de herramientas con las que trabajar para la traducción y la extracción de mensajes, etc. Es el más popular y probablemente solo necesites aprenderlo bien. – Artyom

Respuesta

40

Primero de todo, creo que gettext es uno de los mejores en este momento.

Puede echar un vistazo en Boost.Locale que puede proporcionar una mejor API y usar el modelo de diccionario gettext: http://cppcms.sourceforge.net/boost_locale/docs/ (no es parte oficial de Boost, aún es beta).


Editar:

Si no te gusta ... gettext

Estas son tecnologías de la traducción:

  • OASIS XLIFF
  • GNU gettext PO/mes archivos
  • PO SEIS catálogos
  • ts Qt/archivos tm
  • propiedades Java,
  • recursos de Windows.

Ahora:

  • pasado dos porquería total ... Por muy difícil de usar traducir y mantener, no son compatibles con las formas plurales.
  • Qt ts/tm: requiere el uso de Qt framework. Tiene un modelo muy similar al gettext. No está mal solución, pero se limita a Qt. No tan útil en programas genéricos.
  • catálogos POSIX - nadie los usa, no hay soporte para formularios en plural. Mierda.
  • OASIX XLIFF: la solución "estándar", depende de XML, incluso la ICU requiere la compilación de recursos específicos de la UCI para su uso. Herramientas de traducción limitadas. No conozco ninguna biblioteca que admita XLIFF. Las formas plurales no son tan fáciles de usar (la UCI incluyó algún tipo de soporte solo en la versión 4.x).

¿Qué tenemos?

GNU gettext, ampliamente utilizada, tiene una gran herramienta, tiene un gran apoyo formas plurales, muy popular en la comunidad de traductores ...

así lo decide, ¿realmente piensan que gettext no es tan buena solución?

No lo creo. No ha trabajado con otras soluciones, así que intente comprender cómo funciona en primer lugar.

+5

Mira, esta es una respuesta que estaba buscando. Algunas alternativas reales. No importa si son buenos o malos, solo que puedo ver diferentes formas de hacer las cosas. Aparentemente no hay tantos, pero ese no es el punto. ;) –

+1

La traducción actualmente no se hace en el Bloc de notas, hay herramientas WYSIWYG para la localización y el desarrollo. Los recursos de Java o Windows no son de ninguna manera más difíciles de traducir y mantener que cualquier otra cosa. –

+3

Las formas plurales en gettext no son suficientes para algunos idiomas, y de todos modos, rellenar formularios plurales en la cadena es algo que solo los geeks pueden manejar, pero no traductores normales (con fondo lingüístico). Las propiedades de Java pueden manejar plurales, consulte MessageFormat Ejemplo: "There {0, choice, 0 # are no files | 1 # is one file | 1

2

Interesantes comentarios sobre gettext() y todos esos pro-gettext().

No digo que no funcione bien en la mayoría de los casos, pero traté de administrar un proyecto con él y rápidamente me sentí abrumado por la dureza de su uso. Tal vez haya algunas interfaces de usuario para traductores hoy, pero ni siquiera miré. La extracción y fusión de cadenas simplemente no lo está haciendo por mí.

Ahora, le agradezco a Artyom por hablar de XLIFF, que es una solución mucho mejor para mi entorno, ya que todo es XML. Oh! Y hay excelentes editores por ahí. Pero si te gusta gettext() no los encontrarás. 8-)

voy a sugerir mirando a éste por ejemplo:

https://sourceforge.net/projects/wordforge2/

Ahora, esto puede dar al programador una pesadilla para hacer que todo el trabajo, pero lo que queremos es un sueño hecho cierto para los traductores (y cero trabajo del programador a medida que las traducciones ingresan, porque puedo decir que con gettext() tuve que hacer todo el trabajo!)

+0

Soy consciente de que esta publicación es antigua. Hay una biblioteca muy buena Translate Toolkit (http://toolkit.translatehouse.org/). El punto de gettext es: ¿cómo se definen cadenas para traducir y cadenas para no hacerlo? ¿Cómo extraes esas cadenas? ¿Cómo se importan cadenas traducidas que se mantienen actualizadas después de mucho tiempo? No se trata de un editor que usas para traducir. Puede convertir po a XLIFF y volver con Toolkit, usando script, sin trabajo manual. – Pihhan

+0

Sí, mi experiencia fue alrededor de 2004 cuando tuve que hacer todo el trabajo a mano para lograr que todo se tradujera. ¡Hoy tenemos herramientas mucho mejores! –

2

Existe una alternativa de Zend que admite gettext *. archivos po/* .mo y muchos más formatos. Muchos servidores Apache almacenan en caché los archivos de traducción porque gettext se implementa como un módulo y el servidor debe reiniciarse para actualizar los datos de traducción.

La aplicación Zend evita esto y es compatible con muchos más formatos:

http://framework.zend.com/manual/1.12/en/zend.translate.html