#python #django #translation #gettext
#python #django #перевод #gettext
Вопрос:
Я использую переводы gettext для своего проекта Django и продолжаю добавлять в файл .po новые и новые переводы с помощью makemessages
and compilemessages
. Сейчас происходит то, что когда я создаю сообщения, я проверяю файл .po, и там многие строки были автоматически переведены, хотя это 100% уникальная строка.
пример: теперь генерируется:
#: .agregatormodels.py:1855
#, fuzzy
#| msgid "Distribution order"
msgid "Distribution Product Parameters"
msgstr "Objednávka u distribuce"
он автоматически переводится в соответствии с msgid "Distribution order"
тем, что это не близко к фактической строке, и нет никакой ссылки на это msgid
.
Может кто-нибудь объяснить мне, что происходит в фоновом режиме и как я могу удалить все такие ссылки, чтобы msgstr
я получал только пустые строки (если строки не похожи на 100%)? Заранее благодарю.
Мой совет заключается в том, что msgid
он выделяется на основе фрагментов строк в поисках «наилучшего соответствия». Если это так — как остановить это поведение?
Ответ №1:
Если msgmerge
найдет переводы для похожих строк, он предложит их как «нечеткие». Это то, что вы видите здесь.
Нечеткие переводы не предназначены для использования / развертывания вашим приложением. Если вы скомпилируете свой .po
файл в .mo
файл с msgmerge
помощью (это то, что compilemessages
, вероятно, делает), эти нечеткие переводы игнорируются.
Просто оставьте нечеткие переводы в .po
файле. Они не вредят и облегчают будущие переводы, потому что переводчику не нужно переводить с нуля, а вместо этого исправлять автоматически предложенный перевод.