我希望将所有模板的实际非 html 文本放在 Django 中的一个(或多个)单独文件中。目前,我的模板中充满了以下段落:
{% if request.session.lang == "en" %}
Some text in English
{% else %}
Some text in the default language
{% endif %}
模板的文本(主要语言或英语)经常被其他人更改,所以我只想有一些文件,其他人也可以编辑这些文件(无需编辑实际的 View 文件)。 阅读 django 文档的本地化部分后,似乎仍然需要将文本(文档示例中的英文)硬编码到模板/ View 中。
来自 django 文档中生成的 .po 文件的示例:
msgid "Welcome to my site."
msgstr ""
我宁愿有这样的东西:
msgid APP-XY_VIEW-XY_INTRODUCTION
msgstr ""
当然,明显的解决方案似乎是使用类似的东西:
ugettext('APP-XY_VIEW-XY_INTRODUCTION') # in a view
但是,我想确定是否没有其他解决方案(无需创建一些自定义 id 字符串文字,这些字符串在每个 View /模板中都进行了硬编码)。
非常感谢!
/编辑,Django 版本 1.4.5
最佳答案
您没有说明您正在使用哪个版本的 Django(您几乎应该始终包含此信息 - 它将帮助您获得最佳答案)。但是,你应该能够把
{% load i18n %}
位于模板的顶部。然后你可以调用 trans 并像处理模型等一样处理它。
<title>{% trans "My very important title" %}</title>
Django 书 2.0 有一个关于这个主题的很好的章节。可能是工作阅读?点击here了解更多信息。
关于django - 如何将可翻译文本(包括英语)放入 Django 中的文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16905025/