django模糊字符串翻译没有显示出来

时间:2009-09-04 05:28:14

标签: django internationalization fuzzy

  1. 为什么有时我会在fuzzy语言文件中获得django.po项。实际上,我已经在我的项目中检查了fuzzy字符串项是完全唯一的。

    #: .\users\views.py:81 .\users\views.py:101
    #, fuzzy
    msgid "username or email"
    msgstr "9988"
    
  2. 可以模糊但我的模糊项目的翻译没有显示在页面上,只显示英文版本。这完全是奇怪的。

3 个答案:

答案 0 :(得分:28)

    如果旧目录包含具有相似外观msgmerge的字符串的翻译,则
  1. fuzzy将字符串标记为msgid。它还带有从旧目录到新目录标记为模糊的字符串。

  2. msgfmt从编译目录中排除模糊消息,因为翻译可能不正确。翻译人员应检查翻译的正确性(在您发布的情况下,空字符串显然是错误的翻译),并在验证翻译时删除fuzzy标记。如果你绝对想要使用模糊翻译,请传递```--use-fuzzy to msgfmt`。

答案 1 :(得分:5)

我也遇到了这些问题,我通过使用'po编辑器'(如poedit)解决了这些问题,它突出了模糊和未翻译的条目,使翻译过程更快。

您还可以使用Django Rosetta将翻译过程集成到Django环境中。

答案 2 :(得分:0)

非常感谢 @Martin v。Löwis的第一个回答。

是的,效果很好。就我而言,使用 // Returns a String representation in the format $12.34 public String toString() { return "$" + String.format("%.2f", value) ; } // main class public static void main(String[] a) { Currency c = new Currency(12.3423456d); System.out.println("Cents: "+c.getCents()); System.out.println(c); } 开关非常有用。

就我而言,--use-fuzzy文件行的内容(不起作用)如下所示。除此以外,所有翻译的行都有效。

.po

执行#: ui/templates/theme/html/ltr/vertical-menu-template-nav-dark/login.html:58 #, fuzzy #| msgid "Already a registered user (Login)" msgid "Not a registered user (Create account)" msgstr "Уже зарегистрированный пользователь (логин)" 后,这是我终端的输出。

django-admin compilemessages --use-fuzzy

最后,在运行命令之后,只需重新启动服务器,即(venv3.6.7) Rishikeshs-MacBook-Air:src hygull$ django-admin compilemessages --use-fuzzy processing file django.po in /Users/hygull/Projects/Python36/Django/Others/AMCProj/amc/src/locale/hi/LC_MESSAGES processing file django.po in /Users/hygull/Projects/Python36/Django/Others/AMCProj/amc/src/locale/ru/LC_MESSAGES processing file django.po in /Users/hygull/Projects/Python36/Django/Others/AMCProj/amc/src/locale/en/LC_MESSAGES