С помощью Babel gettext-утилит, есть ли какие-либо методы для сохранения комментариев переводчика и старых ( "устаревших" ) переводов (помечено #~
) в файлах .po
через обновления из файла .pot
?
В первый раз, когда устаревший перевод находится в файле .po
, и выполняется pybabel update
, перевод помечен #~
. Это так, что, с одной стороны, оно рассматривается как комментарий и не используется до тех пор, пока переводчик не рассмотрит его и не изменяет, но, с другой стороны, он не удаляется, поэтому переводчик может ссылаться на него или копировать текст из него в другие переводы.
Однако при следующем запуске pybabel update
все комментарии будут окончательно удалены из файла. Это означает, что также удаляются переводы, отмеченные символом #~
.
Например, с Babel версии 0.9.6 и Jinja2 версии 2.6 и следующими файлами:
./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"
После выполнения следующих команд:
$ pybabel extract -F babel.ini -o i18n/messages.pot .
$ pybabel update -l pt_PT -d i18n -i i18n/messages.pot
Португальский messages.po
файл теряет все свои старые комментарии и содержит только:
./i18n/pt_PT/LC_MESSAGES/messages.po
# ... similar header stuff ...
#: templates/test.html:2
msgid "My web site"
msgstr ""
Как обновить файлы переводов без потери моих комментариев и старых переводов?