【问题标题】:django fuzzy string translation not showing updjango模糊字符串翻译没有出现
【发布时间】:2010-11-25 12:43:25
【问题描述】:
  1. 为什么有时我会在 django.po 语言文件中得到 fuzzy 项目。实际上,我已经在我的项目中检查了 fuzzy 字符串项是完全唯一的。

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

【问题讨论】:

    标签: django internationalization fuzzy


    【解决方案1】:

    1. msgmerge 将字符串标记为 fuzzy,如果旧目录具有类似 msgid 的字符串的翻译。它还将标记为模糊的字符串从旧目录转移到新目录。

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

    python manage.py compilemessages --use-fuzzy
    

    【讨论】:

    • 谢谢,实际上我在真正的翻译中添加了一些内容,例如 msgid "username or email" msgstr "9988" 并且我使用 'django-admin.py compilemessages' 命令进行编译,似乎没有 --use-fuzzy要传递的参数。
    • compilemessages 只是为它找到的所有 po 文件调用msgmft --check-format -o foo.mo foo.po。只需明确地使用 msgfmt 即可。
    • 重要的是要强调,当您检查模糊翻译是否正常时,您应该删除模糊标志。否则,它们将被正常的compilemessages 调用跳过
    • 你救了我的命! ♥
    【解决方案2】:

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

    是的,效果很好。就我而言,使用--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
    

    最后,运行命令后,只需重启服务器,即python manage.py runserver

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-25
        • 1970-01-01
        相关资源
        最近更新 更多