从9.0开始Innovator可以支持国际化和本地化,并具有以下特点:
> 英语是默认语言
> 其他语言可以通过语言包的方式来添加到系统中
> 使用多语言字符串数据类型来根据语言显示值
> 语言包可以根据客户端的区域设置来显示合适的菜单,标签等。
> Innovator根据客户端的区域设置自动按照合适的格式显示日期,时间和小数
> 如果定义了全局时区,那么全局时间会显示在客户端,并且所有的日期和时间都会按照全局时间来显示。
新的对象类
区域
Innovator的区域对象类利用Innovator对象实例匹配Windows区域选项中的区域来表示一个区域,比如英语(英国)或德语(德国)。
语言
Innovator语言对象类使用Innovator对象实例来表示一种语言。Innovator安装完成后仅包含默认语言-英语,其他语言可以由管理员来添加。
新的数据类型
多语言字符串
多语言字符串类型的属性可以在每种Innovator已定义的语言中各具有一个属性值。
多语言字符串的最主要的目的是让用户可以根据选择使用不同的语言。用途包括菜单、窗体标签、网格以及列表值等。
这类属性不能被设置为必填或默认值。
编辑多语言字符串
多语言字符串无论在何处被用到,对对象具有更新权限的用户都可以使用多语言对话框来编辑任何一种语言的值。
在窗体中打开多语言对话框,点击字段右侧的 按钮即可。
在网格中打开多语言对话框,点击单元格进入编辑模式,然后按F2。
新的服务器变量
默认语言,默认值为’English’
默认区域,默认值为‘en-US’
全局时区,只能在安装完成后创建,且只能使用Windows时区设置中的某个关键字作为值。
客户端设置
有两个标准的Windows设置会被Innovator用到。它们会在Windows安装后被自动设置,并且可以被Windows用户修改。
区域设置
使用控制面板>>区域和语言选项来打开对话框:
这个设置定义了小数、日期和时间如何显示,并且Innovator支持这些Windows特色。这里可以选择一个选项,甚至可以进行自定义。Innovator不使用任何货币格式。
时区
使用控制面板>>日期和时间选项来打开对话框,选择时区页签。
这个设置定义了用户所在的时区
国际化和区域化行为
当用户登录系统时
Innovator识别客户端设置和服务端变量,然后建立一个可以被使用到进程结束的上下文。
1. 如果是,则采用对应的Innovator区域和语言
如果不是,则采用默认的区域和语言
Innovator判断客户端的区域设定是否是在系统中存在
2. Innovator判断是否设置过全局时区
如果是,则计算与客户端时区之间的偏移量,并且采用客户端时区
如果全局时间偏移量是0,Innovator客户端中只显示本地时间。
如果全局时间偏移量不是0,Innovator客户端同时显示全局时间和本地时间。
当客户端获取信息时:
1. 对于每种多语言字符串(往往是菜单、标签或列表值),Innovator会检查是否有值符合上下文语言
i. 如果有,服务端返回上下文语言对应的值
ii. 如果没有,服务端返回默认语言对应的值
2. 对于每个日期或时间类型的值,服务端会根据全局时区进行修正。
3. 对于每个日期或时间或Decimal型的值,Innovator会采用客户端区域设置选项里的格式。