Django 国际化使用的翻译模块是使用 Python 自带的 gettext 标准模块。通过一个到 GNU gettext 消息目录库的接口,这个模块为 Python 程序提供了国际化 (I18N) 和本地化 (L10N)。
开发人员和翻译人员需要完成一下 3 个步骤:
Django框架具有很好的I18N和L10N的支持,其实现是基于GNU的gettext,所以要想在Django中使用I18N还需要先安装配置gettext。Windows下的gettext(linux下可能不用安装)从http://sourceforge.net/projects/gettext下载以下zip文件
MIDDLEWARE_CLASSES = (
...
'django.middleware.locale.LocaleMiddleware',
)
LANGUAGE_CODE = 'en'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
LANGUAGES = (
('en', ('English')),
('zh-Hans', ('中文简体')),
('zh-Hant', ('中文繁體')),
)
LOCALE_PATHS = (
os.path.join(BASE_DIR, 'locale'), #翻译文件所在目录,请自行创建
)
TEMPLATE_CONTEXT_PROCESSORS = (
...
"django.core.context_processors.i18n",
)
{% load i18n %}
<!DOCTYPE html>
<html lang="en">
<head>
<title>{% trans "Home" %}</title>
</head>
<body>
</body>
</html>
注意:
如果翻译不生效,请检查你的语言包的文件夹是不是有 中划线,请用下划线代替它。
比如 zh-hans 改成 zh_hans (但是要注意 setttings.py 中要用 中划线,不要也改了)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |