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.
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.
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.