为什么有时我会在fuzzy
语言文件中获得django.po
项。实际上,我已经在我的项目中检查了fuzzy
字符串项是完全唯一的。
#: .\users\views.py:81 .\users\views.py:101
#, fuzzy
msgid "username or email"
msgstr "9988"
可以模糊但我的模糊项目的翻译没有显示在页面上,只显示英文版本。这完全是奇怪的。
答案 0 :(得分:28)
msgmerge
的字符串的翻译,则 fuzzy
将字符串标记为msgid
。它还带有从旧目录到新目录标记为模糊的字符串。
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
。