我的 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/