you tutorial topics tools sure newer multiidioma multi msguniq makemessages make installed idioma i18n have example docs djangoproject commanderror python django internationalization gettext pootle

python - topics - i18n tutorial



Django i18n: ¿hay alguna alternativa de gettext? (4)

Si usa algunos identificadores de mensaje, serían incomprensibles ("mensaje_2215") o se vería obligado a sincronizar los ID de mensaje con los mensajes reales ("Presione cualquier tecla" = "please_press_any_key" => "Cualquier tecla para continuar "=" any_key_to_continue "). De cualquier forma, las cadenas de caracteres reales son mejores para los programadores y para las herramientas.

Sin embargo, si emplea un corrector de pruebas independiente para sus cadenas, puede hacer lo siguiente:

  1. Crea un archivo de "traducción" en inglés (sí, esto funciona)
  2. Permita que su redactor "traduzca" de inglés a inglés usando Pootle o cualquier otra herramienta
  3. Asegúrese de que los programadores no traduzcan ese archivo de traducción actualizando las cadenas en el código.
  4. (opcional) Cree una forma de implementar traducciones independientemente de su código principal para que pueda corregir un error tipográfico rápidamente.

Estoy buscando una manera de traducir mi proyecto Django. El mecanismo integrado provisto con Django es genial, pero tiene varios puntos débiles que me hicieron buscar una alternativa.

El propietario del proyecto debe poder editar todas las traducciones, incluido el inglés (traducción original). Con gettext es posible editar traducciones con herramientas como Pootle , pero las cadenas originales permanecen codificadas dentro de fuentes de archivos o plantillas. No hay forma de que el dueño del producto pueda cambiarlos.

La posible solución es hacer que gettext traduzca algunos identificadores únicos y simplemente traducirlos a todos los idiomas, incluido el inglés, de esta manera:

_(''form_sumbit_button'')

Pero esto hace que las herramientas como pootle sean casi imposibles de usar para los traductores.

Pregunta: ¿hay alguna herramienta para la traducción del proyecto Django que se ajuste a mis necesidades?


Puede usar Pootle con el enfoque _ ("message_id"), dependiendo de qué tan fácil sea personalizar Pootle (no conozco las partes internas, así que no puedo decirlo, pero IIUC usa Django donde los cambios de plantilla son usualmente sencillo).

Por ejemplo, las pantallas de traducción de Pootle tienen secciones "Original" y "Traducción"; quizás podría adaptar las plantillas para mostrar, en la sección "Original", una sección de "Referencia" que muestra alguna traducción canónica usando un lenguaje de referencia específico (por ejemplo, inglés).

O puede utilizar la funcionalidad de idioma de origen alternativo de Pootle, sin necesidad de personalizar Pootle. Puede almacenar las versiones canónicas de las traducciones utilizando un código de idioma no utilizado (o uno inventado).



Usar identificadores definitivamente es posible con Gettext y hay herramientas que lo respaldan. Sin embargo, puede ser inusual para algunos traductores, ya que están acostumbrados a descargar solo el archivo .po para la traducción sin conexión, lo que no funciona con las traducciones monolingües.

Por ejemplo, Weblate admite archivos gettext monolingües sin problemas (soy autor de esta herramienta): https://docs.weblate.org/en/latest/formats.html#monolingual-gettext