Con las utilidades gettext basadas en Python Babel, ¿hay alguna técnica para preservar los comentarios del traductor y las traducciones antiguas ("obsoletas") (marcadas con) en los archivos en las actualizaciones del archivo .pot
?Uso de Babel: cómo proteger los comentarios del traductor (y las traducciones antiguas) en los archivos PO gettext de GNU?
La primera vez que se produce una traducción obsoleta en un archivo .po
y se ejecuta pybabel update
, la traducción se marca con #~
. Esto es así, por un lado, se trata como un comentario y no se usa hasta que un traductor lo revisa y lo cambia, pero, por otro lado, no se elimina, por lo que un traductor puede consultarlo o copiar el texto. de ella en sus otras traducciones.
Sin embargo, la próxima vez que se ejecute pybabel update
, todos los comentarios se eliminan permanentemente del archivo. Esto significa que las traducciones marcadas con #~
también se eliminan.
Por ejemplo, con la versión 0.9.6 Babel y Jinja2 versión 2.6, y los siguientes archivos:
./babel.ini
:
[jinja2: **/templates/**.html]
encoding = utf-8
./templates/test.html
:
<html><body>
<h1>{% trans %}My website{% endtrans %}</h1>
</body></html>
./i18n/pt_PT/LC_MESSAGES/messages.po
:
# ... header stuff generated from
# pybabel init -l pt_PT -d i18n -i i18n/messages.pot ...
# Don't forget, I want to remember something about this!
#~ msgid "My web page"
#~ msgstr "A minha página de web"
Después se ejecutan los siguientes comandos:
$ pybabel extract -F babel.ini -o i18n/messages.pot .
$ pybabel update -l pt_PT -d i18n -i i18n/messages.pot
El archivo portuguesa messages.po
pierde todos sus viejos comentarios, y sólo contiene:
./i18n/pt_PT/LC_MESSAGES/messages.po
:
# ... similar header stuff ...
#: templates/test.html:2
msgid "My web site"
msgstr ""
¿Cómo puedo actualizar mis archivos de traducción sin perder mis comentarios y traducciones antiguas?
¿Puede especificar qué bibliotecas está utilizando y proporcionar un archivo de ejemplo? –
@JamieCockburn ¿Esto ayuda? –