无法在块中翻译 Django 模板
Posted
技术标签:
【中文标题】无法在块中翻译 Django 模板【英文标题】:Django template translation in block not possible 【发布时间】: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,它们完全使用了上面的模式——而且它应该可以工作。 欢迎任何帮助。
【问题讨论】:
【参考方案1】:您可能在模板顶部缺少此说明?
% load i18n %
https://docs.djangoproject.com/en/1.7/topics/i18n/translation/#internationalization-in-template-code
【讨论】:
巴姆。这就是答案。你让我开心:) 另外值得注意的是标签必须在包含模板中,而不是基本模板中【参考方案2】:我尝试使用此命令:
python manage.py makemessages zh_SG
而不是
python manage.py makemessages zh-sg
(注意下划线和大写字母结尾)并确保每个应用程序都有一个语言环境文件夹(makemessages 可能会在应用程序之外创建一个错误位置的语言环境文件夹)
这对我有用,希望对你有帮助 (https://***.com/a/1833340/5798298)
【讨论】:
以上是关于无法在块中翻译 Django 模板的主要内容,如果未能解决你的问题,请参考以下文章