Axelor简介
汉化过程介绍
定义语言和本地化
导出多语言记录
导入翻译
验证翻译
调整翻译
-
Axelor简介
2024年6月份Axelor ERP发布了8.1版本,适配JDK11及PostgreSQL12及以上版本(7及以前版本适配JDK8及PostgreSQL10)数据库。v8版本较之前版本在界面上有很大的变化,深色(Dark)主题更Nice了。
浅色(Light)主题仍保持Axelor的简洁明亮的风格。Axelor在java开源ERP系统中具有很强的竞争力。
Axelor使用Gradle作为构建工具,前端采用ReactJS,但基本不需要开发人员写前端代码,官方的open-suite-webapp(一套完整的ERP系统,也就是本文中描述的这套系统)中也只有axelor-human-resource和axelor-project两个模块有单独的js模块代码,其余均为java或groove代码,因此对项目二次开发支持还是相当友好。
Axelor发布的版本中集成了Studio开发环境、BPM Studio以及WS Studio,使得二次开发效率得到更好的提升。本文中就不对这些内容展开描述了。以下截图为示例BMP流程(披萨发货流程)
Studio主要用于界面设计的调整,也可以进行项目的实体设计等,类似Axelor的一个低代码开发平台。
Axelor ERP多语言支持方面较Odoo(另外一个Python语言的开源ERP)要少很多,Odoo17中支持的多语言有72种,而Axelor默认的只有英语和法语,但是Axelor中,多语言的处理也还算友好,并不复杂。下面就介绍一种简单的快速翻译成中文的处理方法,供Axelor爱好者参考。
-
汉化过程介绍
汉化处理的过程大体分为以下几个步骤:
-
定义语言和本地化
增加语言:进入Application config->General data->Language增加中文记录,如下:
增加本地化:进入Application config->General data->Locallizatuions增加中文记录,如下:
-
导出多语言记录
官网对这部分的介绍并不详细,论坛中推荐的方式是通过Advanced Export(Application config->Technical maintenance->Advanced Export),然后做后续的处理,本文采用的是直接从数据库表获取记录方式。
Axelor的多语言记录全部保存在数据库表“meta_translation”中,所以只要把这里的记录导出后进行翻译即可,该表的结构也很简单:
翻译主要用到的就是message_key和message_value两个字段,其中message_key是程序中处理和检索多语言的键值,字符串类型,根据模块中开发人员熟悉的语言进行预定义,message_value是界面中显示的内容,所以真正要翻译的就是message_value。因此这里只要把这两个内容导出来,对message_value进行翻译后再导入到meta_translation表中即可。
假设我们希望通过英文的多语翻译成中文,那么只要在SQL工具中执行以下语句,并将结果保存为excel文件即可(本文使用Google文档翻译,所以导出Excel,如果使用其他文档翻译器,根据文档翻译器支持的文档格式导出或者导出后再转换),导出的文件编码为UTF-8
select message_key,message_value from meta_translation where language = 'en' and COALESCE(message_value,'') !='';
-
导入翻译
将上述字段导出Excel后,将文件另存一份,其中一份只保留需要翻译的message_value这一列(这里假设为文件B,原始导出的文件为A),然后把文件交给Google进行翻译,将翻译后的文件下载(这里假设文件C),将C中内容复制到文件A中(注意不要错行),然后在Excel中通过公式方式做SQL拼接,将A文件中的message_value和message_key拼接为insert语句,
INSERT INTO meta_translation (id, version, message_key, language, message_value)
其中,id取值为nextval('meta_translation_seq'), version取值为0,languzge取值为"zh",message_value和message_key分别为Excel表中的行记录。将拼接好的SQL通过SQL命令行或者工具执行插入。这里需要补充说明的是,由于key和value的值中均有可能存在单引号或者双引号这种特殊字符,需要对这两部分的值针对这些特殊字符进行替换处理,以保证拼接后的SQL能正常执行,当然也可以忽略这些内容,后续手工再做翻译的调整。
-
验证翻译
打开应用右上角的用户配置,选择中文。
界面中如果已经能正常显示中文即表示翻译已经生效
加载完成后
打开一个节点
如果希望登陆界面也默认是中文,需要修改Axelor系统的启动配置文件中的application.locale = zh_CN,具体间在线文档。
-
翻译调整
由于不同翻译器对计算机系统这种相对比较专业的翻译并不一定完全符合使用习惯,因此,如果对机器翻译的结果不满意时,可以通过Administration->View Management->All Translations进行调整处理