开源协同办公项目:O2OA如何开发多语言的应用

在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对象即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值