OpenERPV7登陆界面翻译问题

在以往的OpenERP版本里,登陆界面是没有国际化的,但是在OpenERPV7.0里,实现了按照浏览器语言来选择登陆界面的语言。但是中文用户却发现,翻译并不生效。经过分析,这里面出现了点问题。我先来说下解决办法:

在addons/web/i18n/下把zh_CN.po,复制一份改名为zh.po。刷新下你的浏览器,看看熟悉的中文是不是又出现了 🙂

选区_158

好,我们深入代码看看为什么会这样:

addons/web/controller/main.py

def bootstrap_translations(self, mods):
    """ Load local translations from *.po files, as a temporary solution
               until we have established a valid session. This is meant only
               for translating the login page and db management chrome, using
               the browser's language. """
           # For performance reasons we only load a single translation, so for
           # sub-languages (that should only be partially translated) we load the
           # main language PO instead - that should be enough for the login screen.
           lang = request.lang.split('_')[0]
   ....

这里注释的意思是他会根据浏览器语言选择翻译。注意这里中文浏览器语言的语言的代码一般是zh_CN,也就是request.lang = ‘zh_CN’。然后他按照’_’ split了,lang最后就等于’zh’。可是在addons/web/i18n/里面并没有zh.po这个文件,既然找不到翻译文件,翻译又怎么会成功呢。

以上问题我已经报告给官方https://bugs.launchpad.net/openerp-web/+bug/1290288 有launchpad帐号的可以进去点一下“This bug affects me”。