在O2OA6.1发布了英文版,并支持了多语言的应用开发,本文介绍O2OA语言环境设置,以及如何开发多语言的应用。
设置默认语言
在服务器的config/person.json文件,配置language,目前支持“zh_CN”和“en”,默认为“zh_CN”。
个人语言环境
当用户访问O2OA时,会识别浏览器语言环境,用户可以在个人设置中修改语言。
开发支持多语言的应用
下面重点讲一下在O2OA平台如何开发多语言的应用。
表单中的语言包
在流程平台和内容管理平台的表单设计中,我们增加了一个语言包配置属性:
默认是“无”,如果选择“默认”方式,系统会根据当前用户语言环境,加载一个名为“lp-当前语言环境”的数据字典或者是脚本,作为表单的语言包。可以通过:o2.language 获取当前的用户语言环境。
在加载数据字典或脚本时,不存在优先级,异步加载,取最快返回的内容。
设计语言包
我们可以通过数据字典或脚本设计语言包,二者选择其一即可。如果你同时设计了数据字典和脚本语言包,那系统会同时发起获取数据的请求,最快返回的数据将作为表单语言包,所以它们之间没有优先级。
通过数据字典创建语言包
第一种方式是通过数据字典设计语言包,数据字典必须以“lp-语言环境”的方式命名。如:中文语言包命名为:“lp-zh-cn”;英文语言包命名为“lp-en”。
我们设计两个数据字典,一个命名为:lp-zh-cn,内容如下:
{
"departLeader": "部门领导",
"tab": {
"base": "基本信息",
"file": "正文附件",
"log": "流程记录",
"monitor": "流程监控"
},
"title": "标题"
}
另一个命名为:lp-en,内容如下:
"departLeader": "Department Leader",
"tab": {
"base": "Basic",
"file": "Filetext",
"log": "Log",
"monitor": "Monitor"
},
"title": "Title"
}
这两个数据字典就作为语言包,当表单的语言包设置为“默认”时,系统会根据当前语言环境,载入其中一个。
通过脚本创建语言包
我们也可以通过脚本创建语言包。脚本必须以“lp-语言环境”的方式命名。如:中文语言包命名为:“lp-zh-cn”;英文语言包命名为“lp-en”。脚本内容只要返回包含语言信息的JSON对象。
我们设计两个脚本,一个命名为:lp-zh-cn,内容如下:
return {
"tab": {
"base": "基本信息",
"file": "正文附件",
"log": "流程记录",
"monitor": "流程监控"
},
"departLeader": "部门领导",
"title": "标题"
};
另一个脚本命名为:lp-en,内容如下:
return {
"tab": {
"base": "Basic",
"file": "Filetext",
"log": "Log",
"monitor": "Monitor"
},
"departLeader": "Department Leader",
"title": "Title"
}
使用语言包
以上两种创建语言方式,我们选择其中一种就可以了,现在,我们在表单中使用语言包。
创建一个表单,先确保表单属性中,“语言包”配置为:“默认”。
在表单设计的所有可以输入值的地方,都可以使用,如要在文本组件的值中显示 title ,可以在固定值中输入:{{$.lp.title}}。
在Tab组件的基本信息、正文附件等都使用语言包信息。
查看效果
保存表单后,预览一下,我们就可以看到结果了:
然后在个人设置中切换语言为英文,再次预览,就可以看到,我们设置的组件显示为英文了。
通过脚本设置语言包
我们也可以通过脚本来设置语言包。表单设计中,语言包配置属性选择“根据脚本”
在脚本中输入代码,返回一个包含语言信息JSON对象,或者一个Promise对象即可。