【问题标题】:GAE - {% trans %} doesn't work in django templates while ugettext() doesGAE - {% trans %} 在 django 模板中不起作用,而 ugettext() 起作用
【发布时间】:2012-07-25 22:09:09
【问题描述】:

我已经使用 i18n 国际化支持设置了我的 python AppEngine 工作。从代码中的语言环境获取文本可以正常工作,而 django 模板中的 {% trans "x" %} 则不行。

这是我在示例模板中的内容:

{% load i18n %}
{% trans "Home" %}
Language: {{ LANGUAGE_CODE }}

它总是输出“Home”并且Language 是空的。当我在代码中写 _("Home") 时,一切都很好,我得到了翻译。

我的文件夹结构:

/
/lib - third parties
/locale
/locale/en
/locale/en/LC_MESSAGES
/locale/ru_RU
/locale/ru_RU/LC_MESSAGES
/static - static files
/source - python files
/source/templates - django templates

在我的 app.yaml 中

libraries:
    - name: django
    version: "1.2"

有什么想法吗?

编辑: 这是我的测试项目的链接,它说明了这个问题......那里只有几个文件。 https://skydrive.live.com/redir?resid=C010011792A4B538!131

【问题讨论】:

    标签: python django google-app-engine internationalization


    【解决方案1】:

    关于{{ LANGUAGE_CODE }},你必须在settings.py中配置上下文处理器i18n这样:

    TEMPLATE_CONTEXT_PROCESSORS = (
        ...
        'django.core.context_processors.i18n',
        ...
    

    但我认为您的模板标签{% trans %} 的问题与您的问题不符。

    【讨论】:

    • 试过了,没有任何改变...如果你有几分钟的时间,看看我一分钟前上传的示例项目。
    猜你喜欢
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 2020-07-12
    • 2015-09-19
    相关资源
    最近更新 更多