django - 如何将可翻译文本(包括英语)放入 Django 中的文件中

标签 django localization

我希望将所有模板的实际非 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/

相关文章:

django - 使用FileField测试Django模型

delphi - 本地化应用程序 : difference between gnugettext and dxgettext

properties - 在 Struts 2 中放置属性文件的位置?

python - Django 内针对 www 子域的 301 重定向

javascript - Django 网站未正确检查链接

ajax - Django & Ajax - 没有返回语句的 View

javascript - HTML - 如何使用弹出窗口来输入和输出值?

php - 如何在PHP中获取包含组合字符的Unicode字符串的 "rendered length"?

ios - iOS Phonegap App中阿拉伯语显示不正确

asp.net - 多个本地化的 aspx 布局