openstack的dashboard在语言设置栏里有多种语言可选,虽然有简体中文选项,但是它的汉化基本没有完成。openstack的dashboard采用的是django架构。
django 国际化的本质就是开发者对需要翻译的字符串进行标记,并对字符串进行相应的翻译。具体操作是:
1、创建locale目录,
2、然后django-admin.py makemessages -l zh_CN,生成locale/zh_CN/LC_MESSAGES/django.po 文件。在这个po文件里对英文进行翻译。
不过对于openstack的dashboard,它已经有po文件了,我们只需直接编辑po文件就行了。
我是用apt-get方式安装的,直接编辑/usr/share/pyshared/horizon/locale/zh_CN/LC_MESSAGES/django.po文件。
- #: settings.py:136
- msgid "English"
- msgstr "英语"
- #: settings.py:137
- msgid "Italiano"
- msgstr ""
po文件内容如上,msgid是源文件中出现的翻译字符串。msgstr 是相应语言的翻译结果。注意语句前后都有引号。 刚创建时 msgstr 是空字符串,需要翻译人员翻译。
翻译好后,编译po文件,
- msgfmt --statistics --verbose -o django.mo django.po
在po文件的目录下会生成一个同名的mo文件。然后在 /usr/lib/python2.7/dist-packages/horizon/locale/zh_CN/LC_MESSAGES下创建mo文件的软链接:
- cd /usr/lib/python2.7/dist-packages/horizon/locale/zh_CN/LC_MESSAGES
- ln -s /usr/share/pyshared/horizon/locale/zh_CN/LC_MESSAGES/django.mo django.mo
重启apche2服务。就可以了。