[pyar] Otra sobre jinja y traducción: buenas prácticas para HTML en el medio

Matías Bellone matiasbellone en gmail.com
Dom Jul 13 12:04:05 ART 2014


2014-07-13 11:40 GMT-03:00 Pablo Ziliani <pablo en kultroom.com>:

> On 13/07/14 09:50, Facundo Batista wrote:
>
>>      {{ gettext('You can access it in Wikipedia in <a class="external"
>> href="%s">this external link</a>.') % (original_link,) }}
>>
>> Eso *funciona*.
>>
>> Lo que no me gusta es que se le está exponiendo HTML al traductor, en el
>> .PO.
>>
>> Y no sólo lo tiene que tener en cuenta para la traducción, sino que si
>> rompe ese HTML podría estar rompiendo el template!
>>
>> ¿Hay una mejor manera de hacerlo?
>>
>
> No conozo Jinja ni sus usos, pero mandar html al .po es una práctica no
> poco frecuente en el mundo Django (que conozco).
> Asumiendo que Jinja no sea más que python (algo posiblemente erroneo pero
> que de paso sirve como indicador del límite de purismo alcanzable), si no
> hubera algo out-of-the-box, quizás se pueda hacer algo como;
>
> {{ gettext('You can access it in Wikipedia in') }}
> {{ makelink(original_link, gettext('this external link')) }}
>
> donde makelink es un helper que te crearía el html (la clase "external" la
> puede determinar a partir de la url, lo cual es hasta deseable salvo que lo
> quieras encapsular aparte).
>
> De todas maneras, el texto original es una unidad de significado cuya
> sintáxis en otros idiomas no conocemos y por lo tanto sería incorrecto
> asumir que el link puede ir *siempre* al final de la frase. Siempre
> conviene que este tipo de cosas sean variables.
> Esto es lo más correcto que se me ocurre:
>
> {{ gettext('You can access it in Wikipedia in %s') %s
> makelink(original_link, gettext('this external link')) }}
>
>
Como traductor, asegúrense de agregar contexto a ambas cadenas de
traducción para saber que una va adentro de la otra. Si bien en nuestro
idioma queda bien si traducís cada cadena por separado, en otros idiomas
puede que no pase.

En mi experiencia, sin embargo, se expone el HTML al traductor sin
problemas tanto en PHP (PHPMyAdmin [1]) como Django (Weblate [2]). Aunque
capaz que influye el hecho que Weblate fue creado por un desarrollador de
PHPMyAdmin harto de Pootle para las traducciones del mismo.

[1]
https://l10n.cihar.com/projects/phpmyadmin/master/es/translate/?checksum=784a967b98dcfeaa131d51c7b17e9d52
[2]
https://l10n.cihar.com/projects/weblate/master/es/translate/?checksum=aaac3c070969d22b43c2077167854a5e

Como ventaja adicional, si los traductores saben suficiente HTML y no
tienen control sobre el enlace deberían poder agregar atributos al enlace.
En particular "lang", indicando que el enlace está en otro idioma.

Saludos,
Toote
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20140713/f75f57fb/attachment.html>


More information about the pyar mailing list