Problemas con localización

33 views
Skip to first unread message

monoBOT

unread,
Nov 26, 2013, 6:03:54 AM11/26/13
to djan...@googlegroups.com
Estoy haciendo la traducción de una web en django. Para entrar decir que la localización con django es magnífica sobretodo si la haces desde el principio y no tienes que como yo meter todas las etiquetas cuando la web ya está terminada.

La página sobre la que estoy generando la traducción tiene una gran parte de ella que genera documentos pdf, la parte de generación de documentos pdf también está localizada con el mismo sistema de django, hasta aquí todo bien.

Me he encontrado no obstante el problema aunque la página queda casi completamente traducida (un 95% aprox) hay alguna parte del código que no se traduce por alguna causa que desconozco, por ejemplo el siguiente bloque de texto:

"Agenda de propietarios de su base de datos"

Que en la .po del idioma está correctamente identificado:

#~ msgid "Agenda de propietarios de su base de datos"
#~ msgstr "These are the owners in your workspace"

y correctamente marcado en el código python

informe.n_titulo(_(u'Agenda de propietarios de su base de datos') % {
             'comunidad': comunidad.__unicode__()})

No se traduce en ninguno de los idiomas.
Como información la misma expresión se utiliza en otras partes del código y funciona.
Es decir otros bloques con:

informe.n_titulo(_(u'ltexto a traducir')) 

funcionan bien.

Alguien me puede echar una mano? De que errores comunes pueden producir estos efectos?

Y enlazado con la misma pregunta, he visto que cuando generas los mensajes "makemessages -a "
en algunos lugares se marca con #, fuzzy
estos bloques de texto no se traducen ... sabeis la razón de porqué se marcan con fuzzy algunos bloques de texto? 

--
monoBOT
Visite mi sitio(Visit my site): monobotblog.alvarezalonso.es

Alexis Roda

unread,
Nov 26, 2013, 9:03:02 AM11/26/13
to djan...@googlegroups.com
El 26/11/13 12:03, monoBOT ha escrit:
> Que en la .po del idioma est� correctamente identificado:
>
> /#~ msgid "Agenda de propietarios de su base de datos"/
> /#~ msgstr "These are the owners in your workspace"/

Son comentarios:

https://www.gnu.org/savannah-checkouts/gnu/gettext/manual/html_node/PO-Files.html


Ramiro Morales

unread,
Nov 26, 2013, 7:02:45 PM11/26/13
to djan...@googlegroups.com

Ramiro Morales
@ramiromorales


On Nov 26, 2013 8:04 AM, "monoBOT" <monobo...@gmail.com> wrote:
>
> Estoy haciendo la traducción de una web en django. Para entrar decir que la localización con django es magnífica sobretodo si la haces desde el principio y no tienes que como yo meter todas las etiquetas cuando la web ya está terminada.
>
> La página sobre la que estoy generando la traducción tiene una gran parte de ella que genera documentos pdf, la parte de generación de documentos pdf también está localizada con el mismo sistema de django, hasta aquí todo bien.
>
> Me he encontrado no obstante el problema aunque la página queda casi completamente traducida (un 95% aprox) hay alguna parte del código que no se traduce por alguna causa que desconozco, por ejemplo el siguiente bloque de texto:
>
> "Agenda de propietarios de su base de datos"
>
> Que en la .po del idioma está correctamente identificado:
>
> #~ msgid "Agenda de propietarios de su base de datos"
> #~ msgstr "These are the owners in your workspace"
>
> y correctamente marcado en el código python
>
> informe.n_titulo(_(u'Agenda de propietarios de su base de datos') % {
>              'comunidad': comunidad.__unicode__()})

Hmm en realidad el prefijo # en los archivos .po marca un comentario. Y en particular los comentarios #~ son generados automáticamente por alguna de las herramientas de GNU gettext (supongo que xgettext o msgmerge) y lo que hacen es preservar traducciones que existieron en algún momento pero de las cuales, por alguna causa ha desaparecido su literal original ("Agenda de propietarios de su base de datos" en tu caso) del catálogo de literales traducibles que hay presentes. Las preserva para no tirar por la boda de un manotazo el trabajo de traducción que puede haber realizado un humano.

Como medida rápida lo que podes hacer es borrar esos #~ y volver a convertir el .po en .mo. Eso deberia solucionar el problema puntual de que no ves su traduccion.

Pero entiendo que hay un problema de fondo que es que manage.py makemessages no está encontrando la cadena traducible al menos en ese módulo Python. O ses que está viendo algo dierente a lo que ves vos. Tendrías ue revisar porqué sucede esto.

Si no solucionas ese problema de fondo, es muy probable que en la próxima ejecución de las herramientas el literal vuelva a aparecer como un comentario y vuelvas a la misma situación.

>
> No se traduce en ninguno de los idiomas.
> Como información la misma expresión se utiliza en otras partes del código y funciona.
> Es decir otros bloques con:
>
> informe.n_titulo(_(u'ltexto a traducir')) 
>
> funcionan bien.
>
> Alguien me puede echar una mano? De que errores comunes pueden producir estos efectos?
>
> Y enlazado con la misma pregunta, he visto que cuando generas los mensajes "makemessages -a "
> en algunos lugares se marca con #, fuzzy
> estos bloques de texto no se traducen ... sabeis la razón de porqué se marcan con fuzzy algunos bloques de texto? 
>
> --
> monoBOT
> Visite mi sitio(Visit my site): monobotblog.alvarezalonso.es
>

> --
> --
> Ha recibido este mensaje porque está suscrito a Grupo "Grupo de Usuarios del Framework Django de habla hispana" de Grupos de Google.
> Si quieres publicar en este grupo, envía un mensaje de correo
> electrónico a djan...@googlegroups.com
> Para anular la suscripción a este grupo, envíe un mensaje a django-es-...@googlegroups.com
> Para obtener más opciones, visita este grupo en http://groups.google.com.bo/group/django-es.
> ---
> Has recibido este mensaje porque estás suscrito al grupo "Django-es" de Grupos de Google.
> Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a django-es+...@googlegroups.com.
> Para obtener más opciones, visita https://groups.google.com/groups/opt_out.

monoBOT

unread,
Nov 27, 2013, 3:48:33 AM11/27/13
to djan...@googlegroups.com

El 27 de noviembre de 2013 00:02, Ramiro Morales <cra...@gmail.com> escribió:

tálogo de literales traducibles que hay presentes. Las preserva para no tirar por la boda de un manotazo el trabajo de traducción que puede haber realizado un humano.

Como medida rápida lo que podes hacer es borrar esos #~ y volver a convertir el .po en .mo. Eso deberia solucionar el problema puntual de que no ves su traduccion.

Pero entiendo que hay un problema de fondo que es que manage.py makemessages no está encontrando la cadena traducible al menos en ese módulo Python. O ses que está viendo algo dierente a lo que ves vos. Tendrías ue revisar porqué sucede esto.

Si no solucionas ese problema de fondo, es muy probable que en la próxima ejecución de las herramientas el literal vuelva a aparecer como un comentario y vuelvas a la misma situación.


Gracias a los dos ... eran comentarios ... si es un perro me muerde!!

 @ramiro Lo que no se es porque me los genera como comentarios es bastante raro como dices

Lo miro, gracias de nuevo!

Charly Román

unread,
Nov 27, 2013, 3:55:15 AM11/27/13
to djan...@googlegroups.com
A mi también me pasaba eso, nunca supe que pasaba, así que cada que
generaba el .mo buscaba si tenía alguno marcado como fuzzy.

Saludos!

Alexis Roda Villalonga

unread,
Nov 27, 2013, 4:28:45 AM11/27/13
to djan...@googlegroups.com
Las entradas marcadas con "fuzzy" deben ser revisadas. Mas detalles en:


Fuzzy entries, even if they account for translated entries for most other purposes, usually call for revision by the translator. Those may be produced by applying the program msgmerge to update an older translated PO files according to a new PO template file, when this tool hypothesises that some new msgid has been modified only slightly out of an older one, and chooses to pair what it thinks to be the old translation for the new modified entry. The slight alteration in the original string (the msgid string) should often be reflected in the translated string, and this requires the intervention of the translator. For this reason, msgmerge might mark some entries as being fuzzy.



2013/11/27 Charly Román <chack...@gmail.com>
Reply all
Reply to author
Forward
0 new messages