2009-09-04 6 views
18
  1. Почему иногда я получаю fuzzy пункт в django.po языковом файле. На самом деле, я проверил в своем проекте элемент строки fuzzy, полностью уникальный.Джанго нечетких перевод строк не отображается

    #: .\users\views.py:81 .\users\views.py:101 
    #, fuzzy 
    msgid "username or email" 
    msgstr "9988" 
    
  2. Это нормально быть нечеткой, но мой перевод нечеткая позиция не отображается на странице, только на английском языке показывает вверх. Это совершенно странно.

ответ

27
  1. msgmerge знаков строки в качестве fuzzy, если старый каталога был перевод для строк с таким же видом msgid. Он также переносит строки, помеченные как нечеткие от старого каталога к новому.

  2. msgfmt исключает нечеткие сообщения из скомпилированного каталога, поскольку переводы, скорее всего, неверны. Переводчик должен проверить правильность перевода (в том случае, если вы опубликовали, пустая строка явно неверный перевод) и удалить отметку fuzzy при проверке перевода. Если вы абсолютно хотите использовать нечеткие переводы, передайте `` `--use-fuzzy to msgfmt`.

+0

спасибо, на самом деле я что-то сказал в реальном переводе. Msgstr "имя пользователя или адрес электронной почты" msgstr "9988", и я использую команду django-admin.py compilemessages для компиляции, кажется, что нет параметра -use-fuzzy. – icn

+0

compilemessages просто вызывает 'msgmft --check-format -o foo.mo foo.po' для всех найденных файлов po. Просто используйте msgfmt явно. –

+1

Важно подчеркнуть, что когда вы проверяете, что нечеткие переводы в порядке, вы должны удалить нечеткий флаг. В противном случае они будут пропущены с обычными вызовами 'compilemessages' – kiril

5

Я также имел эти проблемы, и я решил их все с помощью «редактора ро» (как poedit), который выдвигает на первый план нечеткие и непереведенные записи и делает процесс перевода намного быстрее.

Вы также можете использовать Django Rosetta, чтобы процесс перевода был интегрирован в среду Django.

Смежные вопросы