extension localization internationalization gettext

localization - extension - twig date locale



Alternativas a gettext? (3)

¿Existen alternativas generales de localización / traducción a gettext?

Código abierto o propietario no importa.

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

La razón por la que pregunto es porque (entre otras cosas) encuentro la forma en que gettext hace las cosas ligeramente incómodas y estáticas, principalmente en el bit de fondo.


Comentarios interesantes sobre gettext () y todos aquellos pro-gettext ().

No estoy diciendo que no funcione correctamente en la mayoría de los casos, pero traté de administrar un proyecto con él y me sentí abrumado por la dureza de su uso. Tal vez hay 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, gracias 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 mirar este por ejemplo:

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

Ahora, esto puede dar al programador una pesadilla para hacer que todo funcione, pero lo que queremos es un sueño hecho realidad para los traductores (y el trabajo cero del programador a medida que llegan las traducciones, porque puedo decirles que con gettext () I Tenía que hacer todo el trabajo!)


Hay una alternativa de Zend que admite archivos gettext * .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 implementación de Zend evita esto y soporta muchos más formatos:

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


En primer lugar, creo que gettext es uno de los mejores en este momento.

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

Editar:

Si no te gusta gettext ...

Estas son las tecnologías de traducción:

  • OASIS XLIFF
  • Archivos get / po de GNU gettext
  • Catálogos POSIX
  • Archivos qt ts / tm
  • Propiedades de Java,
  • Recursos de Windows.

Ahora:

  • Las dos últimas mierda total ... Muy difícil de usar traducir y mantener, no admite formas plurales.
  • Qt ts / tm: requiere el uso del marco Qt. Tiene un modelo muy similar al de gettext . No es una mala solución, pero se limita a Qt. No es tan útil en programas genéricos.
  • Catálogos POSIX: nadie los usa, no hay formas plurales compatibles. Mierda.
  • OASIX XLIFF: la solución "estándar", depende de XML, incluso ICU requiere la compilación de recursos específicos de ICU 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 (ICU incluyó algo de soporte solo en la versión 4.x).

Ahora, ¿qué tenemos?

GNU gettext , ampliamente utilizado, tiene excelentes herramientas, tiene un gran soporte en formas plurales, muy popular en la comunidad de traductores ...

Así que decide, ¿realmente crees que gettext no es una solución tan buena?

No lo creo. No ha trabajado con otras soluciones en absoluto, así que trate de entender cómo funciona en primer lugar.