2009-01-21 66 views
7

我有一箇中等大小的Django項目,(如果它有任何區別,請在AppEngine上運行),並且讓所有的字符串都應該像.po文件一樣。Django缺少某些字符串的翻譯。任何想法爲什麼?

我看到奇怪的行爲,某些字符串只是不翻譯。當我運行make_messages時,它們顯示在.po文件中,正確的文件位置標記在我的{%trans%}標記所在的位置。與他們兩邊的其他字符串相比,這些翻譯是正確的,並且看起來是正確的。但是當我顯示有問題的頁面時,大約1/4的字符串根本不會翻譯。

挖掘到相關生成的.mo文件中,我沒有看到存在的msgid或msgstr。

有沒有人看過類似的東西?任何想法可能發生什麼?

  • 反式標籤看起來正確
  • .po文件compile_messages

回答

9

唉中看起來是正確的

  • 沒有錯誤。 Django,你在殺我。

    這裏是發生了什麼事:

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

    出於某種原因,只Django知道,就決定來裝飾我的一些翻譯與評論「#模糊」。它似乎已經選擇了哪些隨機標記。

    反正#fuzzy含義:「不翻譯此,儘管這裏的翻譯:」

    我會在這裏的情況下,離開這個其他一些可憐的靈魂遇到它的未來。

  • +0

    默認情況下,PyCharm包含#fuzzy,在文件頂部將其去激活。 – Valchris 2011-05-22 20:49:51

    10

    模糊標記通過makemessages添加到.po文件。當你有一個新的字符串(沒有翻譯)時,它會查找類似的字符串,並將它們作爲翻譯結果包含在模糊標記中。這意味着,這是一個粗略的匹配,所以不要顯示給用戶,但它可能是一個人類翻譯的良好開端。

    這不是一個Django的行爲,它來自gettext設施。

    相關問題