如何汉化 OpenERP 6.1 日历视图

OpenERP 6.1 出来有个把月的时间了,感谢 OpenERP 中文社区的努力,目前 OpenERP 的各个模块中基本上没有了英文。

但是 OpenERP 6.1 的日历视图是一个 DHTMLX 公司出品的前端 Javascript 控件,跟后端的 Python 业务模块的翻译机制完全不同,所以到目前为止,在任何语言设置的 OpenERP 中都仍然保持着英文。虽然只是简单的 “Monday”和“April”之类的单词,但还是对整个 OpenERP 系统在国内的实施造成了一定的阻碍。

image

为了解决这一难题,通过 grep 的帮助,我在 OpenERP 的 dhtmlscheduler 控件的目录中找到了 locale_cn.js 的中文消息文件。通过这个文件我们可以知道,dhtmlscheduler 控件是支持多国语言字符串的。根据使用 jQuery UI 库的经验,造成日历视图没有本地化的原因很可能是 OpenERP 没有在其 HTML 页面中引入 locale_cn.js。所以,现在的问题就变成了找到 OpenERP 生成 HTML 页面的模板,然后加入对 locale_cn.js 脚本的引用。

根据上面的思路,通过 grep 我发现 OpenERP 6.1 的 Web 模块并没有使用传统的模板中引入 js 和 CSS 的模式,而是通过 __openerp__.py 文件的配置指定该模块所用到的 CSS、JS 等。

到这了,解决我们的问题就很简单了,直接用编辑器打开 openerp/addons/web_calendar/__openerp__.py,在系统原有的 'static/src/js/calendar.js' 行上方插入:'static/lib/dhtmlxScheduler/sources/locale_cn.js'。整个 __openerp__.py 文件如下所示:

{
    "name": "web calendar",
    "category": "Hidden",
    "description":
        """
        OpenERP Web calendar view.
        """,
    "version": "2.0",
    "depends": ['web'],
    "js": [
        'static/lib/dhtmlxScheduler/codebase/dhtmlxscheduler_debug.js',
        'static/lib/dhtmlxScheduler/codebase/ext/dhtmlxscheduler_minical.js',
        'static/lib/dhtmlxScheduler/sources/locale_cn.js',
        'static/src/js/calendar.js',
    ],
    "css": [
            'static/lib/dhtmlxScheduler/codebase/ext/dhtmlxscheduler_ext.css',
            'static/src/css/web_calendar.css'
            ],
    'qweb' : [
        "static/src/xml/*.xml",
    ],
    'active': True
}

翻译以后的日历视图界面:

image

需要注意的是修改了 __openerp__.py 后需要重新启动 OpenERP Server,还需要清空浏览器缓存,否则会遇到 Javascript 错误。

 

Have Fun!

posted on 2012-03-24 12:46 李屠户 阅读(...) 评论(...) 编辑 收藏

统计