不知道什么原因,Zenoss官方的文档中似乎没有涉及到国际化方面的内容,本文对如何对Zenoss如何汉化做个简单的总结
基本汉化
http://code.google.com/p/zenforge/wiki/ZenossI18n 这里包含了基本的汉化包,该汉化包完成了60%左右的汉化工作,这里还讲述了汉化的基本原理,下面是对步骤以及原理的引用
汉化步骤
汉化已经基本完成,主要汉化了domain为zenoss的文件。 请下载汉化文件zenoss汉化文件解压拷贝到$ZENHOME/Products/ZenUI3/locales/下,重启zope就ok了。
注:目前zenoss对国际化支持并不完全。
汉化原理
在文件$ZENHOME/Products/Zuul/utils.py中第31行有 ZuulMessageFactory = MessageFactory('zenoss') 这里引用使用了zope.i18nmessageid模块中的类MessageFactory定义了一个domain为zenoss,涉及到I18n的都合这个相关。 在$ZENHOME/Products/Zuul/search/routers.py的第22行将其简写为_t,以后汉化主要和_t相关。 from Products.Zuul.utils import ZuulMessageFactory as _t
补充汉化
由于上文中提到的汉化包并没有汉化完全,所以还需要对部分内容再补充汉化,具体步骤如下
1, 打开 /opt/zenoss/Products/ZenUI3/locales/zh/LC_MESSAGES/zenoss.po
2, 参见已有的汉化格式,增加需要汉化的部分
3, 切换到zenoss用户,执行msgfmt -o zenoss.mo zenoss.po
4, 重启zenoss