Z narzędziami tekstowymi opartymi na języku Python Babel istnieją jakieś techniki zachowywania komentarzy tłumacza i starych ("przestarzałych") tłumaczeń (oznaczonych #~
) w plikach .po
dla aktualizacji z pliku .pot
?Używanie Babel: Jak chronić komentarze tłumacza (i stare tłumaczenia) w plikach PO GNU gettext?
Po pierwszym nieaktualnym tłumaczeniu w pliku .po
i pybabel update
tłumaczenie jest oznaczone jako #~
. Jest tak, że z jednej strony jest traktowany jako komentarz i nie jest używany, dopóki tłumacz nie przejrzy go i nie zmieni go, ale z drugiej strony nie zostanie usunięty, więc tłumacz może się do niego odnieść lub skopiować tekst z niego do innych tłumaczeń.
Jednak po następnym uruchomieniu pybabel update
wszystkie komentarze zostaną trwale usunięte z pliku. Oznacza to, że tłumaczenia oznaczone jako #~
również zostaną usunięte.
Na przykład, w wersji 0.9.6 i Jinja2 Babel wersji 2.6 oraz następujące pliki:
./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"
Po uruchom następujące polecenia:
$ pybabel extract -F babel.ini -o i18n/messages.pot .
$ pybabel update -l pt_PT -d i18n -i i18n/messages.pot
Plik portugalski messages.po
traci wszystkie swoje stare komentarze i zawiera tylko:
./i18n/pt_PT/LC_MESSAGES/messages.po
:
# ... similar header stuff ...
#: templates/test.html:2
msgid "My web site"
msgstr ""
Jak mogę zaktualizować moje pliki tłumaczeniowe bez utraty moich komentarzy i starych tłumaczeń?
Czy możesz określić, których bibliotek używasz i podać przykładowy plik? –
@JamieCockburn Czy to pomaga? –