Джанго не хватает перевода некоторых строк. Есть идеи почему? - PullRequest
8 голосов
/ 21 января 2009

У меня есть проект Django среднего размера (работающий на AppEngine, если он что-то меняет), и все строки живут в .po файлах так, как должны.

Я вижу странное поведение, когда определенные строки просто не переводятся. Они отображаются в .po-файле, когда я запускаю make_messages, с правильным расположением файлов, отмеченных там, где находятся мои теги {% trans%}. Переводы на месте и выглядят правильно по сравнению с другими строками по обе стороны от них. Но когда я показываю страницу, о которой идет речь, около 1/4 строк просто не переводятся.

Копаясь в соответствующем сгенерированном файле .mo, я не вижу ни msgid, ни msgstr.

Кто-нибудь видел что-нибудь подобное? Есть идеи, что может происходить?

  • Тэги выглядят корректно
  • .po файлы выглядят правильно
  • нет ошибок во время compile_messages

Ответы [ 2 ]

10 голосов
/ 21 января 2009

Нечеткий маркер добавляется в .po файл makemessages. Когда у вас есть новая строка (без переводов), она ищет похожие строки и включает их в качестве перевода вместе с нечетким маркером. Это означает, что это грубое совпадение, поэтому не показывайте его пользователю, но это может быть хорошим началом для переводчика-человека.

Это не поведение Django, оно происходит из средства gettext.

10 голосов
/ 21 января 2009

Тьфу. Джанго, ты меня убиваешь.

Вот что происходит:

http://blog.e -shell.org / 124

По какой-то причине только Джанго знает, он решил украсить некоторые из моих переводов комментарием «# fuzzy». Кажется, он выбрал, какие из них помечать случайным образом.

В любом случае, #fuzzy означает следующее: «не переводите это, хотя вот перевод:»

Я оставлю это здесь на случай, если какая-то другая бедная душа столкнется с этим в будущем.

...