国际化的Django应用程序回到英语

chh*_*yal 3 python django localization internationalization django-cms

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

LANGUAGE_CODE = 'en'
LANGUAGES = [
    ('en', 'English'),
]
Run Code Online (Sandbox Code Playgroud)

但整个申请仍然没有用英文显示.我在这里错过了什么吗?PS.该应用程序也使用Django-CMS.

Sim*_*ser 5

你需要做多件事:

  • 用一种语言写出所有字符串,以英语为例.

然后,您需要标记所有字符串以进行翻译:

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

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

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

阅读Django关于国际化和本地化的概述(通常称为i18n)是很好的,因为上面的解释只是一般的方法.具体的技术细节在文档中.

请注意,上述内容仅用于翻译属于Python代码或模板的静态字符串.如果要翻译URL或Django模型,则需要安装其他库或使用其他现有的Django功能.例如,在Django 1.4中添加了一些功能来翻译URL,但是对于早期的Django版本,你需要使用库/ Django应用程序.