openstack基于django web框架构建,该框架本身提供了完整的国际化方案和步骤。研究了django框架中国际化的方法和步骤,就会对openstack国际化有一个比较深入的理解。
django中国际化大概如下:
(1)通过gettext函数或者模板中trans关键词将需要翻译的对象做一*标记*
(2)采用 django-admin makemessages -a 命令抽取程序中所有标记过的对象,并将其写入相关的信息文件中
(3)对信息文件中的每一个对象进行人工翻译
(4)采用django-admin compilemessages 编译该信息文件,以供应用程序使用
django框架采用了一个如下的机制,来决定用户最终呈现的语言类型:
(1)首先再当前用户的session中找django_language
(2)如果失败,则找一个名叫django_language的cookie
(3)如果失败,检查http请求头中的accpet language
(4)采用配置文件中的LANGUAGE_CODE设置