python - 国际化的 Django 应用程序恢复为英语

标签 python django localization internationalization django-cms

我的 django 应用程序使用的是欧洲语言。现在我想恢复为英语并正确地进行国际化和本地化。我在 setting.py 中做了这个

LANGUAGE_CODE = 'en'
LANGUAGES = [
    ('en', 'English'),
]

但是整个应用程序仍然没有以英文显示。我在这里错过了什么吗? 附言。该应用程序还使用 Django-CMS。

最佳答案

你需要做很多事情:

  • 用一种语言编写所有字符串,在您的例子中是英语。

然后您需要标记所有要翻译的字符串:

  • 在模板中的所有字符串周围添加trans 标签(来自i18n 模板标签库),参见internationalization在文档中。这与 gettext 有关:一个用于处理翻译的通用库。通过在字符串周围添加 trans 标签,它们将包含在需要翻译的大量字符串列表中(参见下面的 .po.mo ).
  • 在 Python 源代码中的所有字符串周围添加 _()(来自 django.utils.translation,另请参阅文档中的国际化)。这也与 gettext 相关,这包括那些字符串以及 gettext 语言文件中的字符串。

然后您需要创建语言文件并将翻译添加到这些文件中:

  • 创建包含翻译字符串的 gettext .po.mo 文件。在这些文件中,您可以编写翻译后的字符串。这两个文件经常放在/locale/目录下。对于每种语言,您需要编写翻译后的字符串并将它们放入这些文件中。有关这些语言文件的更多详细信息,请参阅 localization 上的 Django 文档。 .

internationalization and localization 上阅读 Django 的概述是很好的(通常称为 i18n)因为上面的解释只是一般的方法。确切的技术细节在文档中。

请注意,以上仅适用于翻译作为 Python 代码或模板一部分的静态字符串。如果您想翻译 URL 或 Django 模型,则需要安装额外的库或使用其他现有的 Django 功能。例如,在 Django 1.4 中添加了一些功能来翻译 URL,但对于早期的 Django 版本,您需要为此使用库/Django 应用程序。

关于python - 国际化的 Django 应用程序恢复为英语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11502243/

相关文章:

python - 获取特定轴上的列表条目

python - Json/奇怪的列转换

django - 不支持的 JSONField 查找或不允许加入该字段

iphone - 音频本地化

zend-framework - 如何处理 Controller 名称的本地化?

ios - 如何保持本地化 Storyboard 或 XIB 同步?

python:性能图像切片numpy

python - 通过 Python 字典元素隐式迭代

python - 创建受密码保护的 zip 文件?

mysql - Django 不同 : COUNT vs len