【问题标题】:i18n load partially in locale appi18n 在语言环境应用程序中部分加载
【发布时间】:2014-09-18 09:34:26
【问题描述】:

我的自定义应用程序中的 Django (es) 翻译文件正在部分加载,因为:

  • 翻译了我的应用程序(但不在 django 文件夹中)中的新变量。
  • django 和我的应用程序中默认的变量(我想更改默认翻译)未翻译。

我的代码:

在 django 默认语言环境文件夹中:

msgid "Log in"
msgstr "Iniciar sesión"

在我的应用语言环境文件夹中:

msgid "Log in"
msgstr "bla bla bla"   

未翻译我看到的是“Iniciar sesión”值,而不是“bla bla bla”

msgid "This is my site of bla bla bla"
msgstr "Esta es mi web de bla bla bla"

一切正常

这个问题有什么解决办法吗?

【问题讨论】:

    标签: python django internationalization


    【解决方案1】:

    您需要编译您的文件。例如,如果您将 i18n 用于英语和西班牙语,您可以执行以下操作:

     django-admin.py makemessages -l es
     django-admin.py makemessages -l en
     django-admin.py compilemessages
    

    您还需要使用您的语言环境文件夹正确设置设置。

    LOCALE_PATHS = (
        os.path.join(BASE_DIR, "locale"),
    )
    

    并且here解释了加载语言环境翻译的顺序。

    【讨论】:

    • 感谢您回答我。我已经按照您所说的方式编译了文件。我添加了 LOCALE_PATH 但问题仍然存在。我认为文件加载正常,但是在 django 默认文件夹中翻译的变量的访问不能正常工作。
    • 也许我们需要更多信息来了解正在发生的事情,因为这不应该发生。这是解释偏好的地方:docs.djangoproject.com/en/1.7/topics/i18n/translation/…
    • 谢谢!我解决了我的问题。这是 INCLUDED_PATHS 的顺序。
    • @JuanDiegoGonzalez 你能详细解释一下你的解决方案吗?
    猜你喜欢
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 2023-04-07
    • 1970-01-01
    相关资源
    最近更新 更多