在Python 3.4下使用Django 1.7.1,我遇到了一个问题,我没有找到任何答案,尽管看似平庸,并且在互联网上看到了很多类似的问题。到目前为止我没有解决过的解决方案。
我有一个简单的django模板,归结为必不可少的部分。它是 content 块中的simle“trans”标签翻译字符串,它覆盖了 admin / base content 块。
{% extends "admin/base.html" %}
{% block content %}
{% trans "Entries" %}
{% endblock %}
有了这个,我得到一个 TemplateSyntaxError :
Invalid block tag: 'trans', expected 'endblock'
到目前为止,我学到了你需要使用块转换来做类似的事情。但我不明白 - 为什么这样做不起作用?
有趣的是,如果我用{% trans "Entries" %}
替换{{ _("Entries") }}
,一切都按预期工作。
但我需要使用trans标签获得额外的好处。
有很多例子,例如here,它们完全使用上面的模式 - 它可以工作。 欢迎任何帮助。
答案 0 :(得分:5)
您可能在模板顶部缺少此说明吗?
{% load i18n %}
https://docs.djangoproject.com/en/1.7/topics/i18n/translation/#internationalization-in-template-code
答案 1 :(得分:0)
我尝试使用此命令:
python manage.py makemessages zh_SG
而不是
python manage.py makemessages zh-sg
(注意下划线和大写字母结尾)并确保每个应用程序都有一个语言环境文件夹(makemessages可能会在应用程序之外创建一个错误位置的语言环境文件夹)
这对我有用,希望它能帮到你(https://stackoverflow.com/a/1833340/5798298)