【问题标题】:Django template translation in block not possible无法在块中翻译 Django 模板
【发布时间】:2015-02-16 16:46:13
【问题描述】:

在 Python 3.4 下使用 Django 1.7.1,我遇到了一个问题,我没有找到任何答案,尽管看起来很平庸,并且在互联网上看到了许多类似的问题。到目前为止我还没有理解的解决方案。

我有一个简单的 django 模板,归结为基本部分。它是 content 块中的一个简单的“trans”标记翻译字符串,它覆盖了 admin/base content 块。

{% extends "admin/base.html" %}
{% block content %}
    {% trans "Entries" %}
{% endblock %}

这样我得到一个 TemplateSyntaxError

Invalid block tag: 'trans', expected 'endblock'

到目前为止,我学到的是你需要使用 blocktrans 来完成类似的事情。但我不明白 - 为什么这不起作用? 有趣的是,如果我用{{ _("Entries") }} 替换{% trans "Entries" %},一切都会按预期工作。 但我需要您使用 trans 标签获得的额外好处。

有很多例子,比如here,它们完全使用了上面的模式——而且它应该可以工作。 欢迎任何帮助。

【问题讨论】:

    标签: python django templates python-3.x translation


    【解决方案1】:

    【讨论】:

    • 巴姆。这就是答案。你让我开心:)
    • 另外值得注意的是标签必须在包含模板中,而不是基本模板中
    【解决方案2】:

    我尝试使用此命令:

    python manage.py makemessages zh_SG
    

    而不是

    python manage.py makemessages zh-sg
    

    (注意下划线和大写字母结尾)并确保每个应用程序都有一个语言环境文件夹(makemessages 可能会在应用程序之外创建一个错误位置的语言环境文件夹)

    这对我有用,希望对你有帮助 (https://stackoverflow.com/a/1833340/5798298)

    【讨论】:

      猜你喜欢
      • 2015-09-25
      • 2014-08-17
      • 2012-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-02
      • 2017-12-14
      • 1970-01-01
      相关资源
      最近更新 更多