OpenStack(kilo)界面dashboard的二次开发(四)-国际化

2021/5/7 10:30:31

本文主要是介绍OpenStack(kilo)界面dashboard的二次开发(四)-国际化,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

openstack界面支持英语、简体中文、繁体中文等多种语言。用户可以在用户设置中进行设置。如果要对openstack进行二次开发,那么就一定要对界面上的标题、提示的内容等进行修改。

国际化

看下面两幅图,分别是简体中文、English的实例页面: 

图片

图片

openstack的界面采用的是django的架构,django国际化就是开发者对需要翻译的字符串进行标记,并对相应的字符串进行翻译。

进入/usr/share/openstack-dashboard/openstack_dashboard/dashboards/project /instances目录,并打开panel.py:

 1from django.utils.translation import ugettext_lazy as _

 3import horizon

 5from openstack_dashboard.dashboards.project import dashboard

 8class Instances(horizon.Panel):
   name = _("Instances")
   slug = 'instances'
   permissions = ('openstack.services.compute',)

14dashboard.Project.register(Instances)

以上代码的结构在博主前面博文中已经进行简单的说明。这里看到class Instances,它的name属性即是上面两幅图中箭头所指显示的部分。可以看到它是import的django.utils.translation的ugettxt_lazy这个函数,这个函数就可以对其内容进行翻译。(具体原理博主没有深入研究,想要知道所以然的朋友可以自行研究学习,该博文仅总结具体方法。)而翻译的依据则是/usr/share/openstack-dashboard/openstack_dashboard/locale/目录下的文件。简体中文对应的是该目录下的zh_CN。进入该目录可以看到一个django.mo文件,该文件即是翻译成简体中文的核心文件。mo文件是不可编辑的文件,首先得将其反编译成po文件。网上有很多的方法,这里就不再赘述。

打开生成的django.po文件,找到instances。 

图片

为了测试,这里我把改成“我的实例”,然后编译成mo文件,重启httpd服务。效果图如下: 

图片

当然修改标题这些现实问题不止这一种方法,但是这种通过国际化这种方式,兼容性更好,便于支持多种语言。




这篇关于OpenStack(kilo)界面dashboard的二次开发(四)-国际化的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程