国际化多语言

1. 基本功能 1. 基本功能介绍

平台支持国际化多语言,目前支持多种语言配置方式。本文将介绍实现多语言需要涉及到的项目工程中的初始工作及通过平台配置实现界面的多语言使用文档。

2. 多语言项目准备工作介绍 2. 多语言项目准备工作介绍

  1. 系统管理必须要支持多语言菜单翻译工程。如果是新项目,需要升级到6.7.1.0版本,如果是旧项目则具体可以联系平台进行对应的功能改造。
  2. 项目中需要新增配置项, 配置默认的语言编码:glpaas.i18n.default.locale=zh。具体请根据项目的类型适当调整。
  3. 项目中需要更新 ipf-common.js 等前端多语言翻译文件,具体可以从6.7.1.0版本升级包中获取。
  4. 需要更新后台多语言翻译文件等。具体可以从6.7.1.0版本升级包中获取。如果是分布式项目每个项目都需要增加。举例:基础数据。
    多语言后台翻译文件
  5. 项目前端中也需要替换翻译文件,如果是
    多语言翻译前台文件
  6. 项目组如果有使用左侧动态查询,需要单独更新对应的前端文件,具体可以从6.7.1.0版本升级包中获取。
  7. 注意点:如果项目组需要开启多语言需要通知平台人员进行语言模板初始化。

3. 配置方法 3. 平台配置多语言介绍

3.1. 视图级配置 3.1. 视图级配置

  1. 项目管理–项目初始化–视图级配置:新增【配置项类型】为是支持多语言,【配置内容】为X
    多语言1
  2. 返回管理页面,提交上一步新增的数据。
  3. 项目管理–项目初始化–视图级配置:新增【配置项类型】为是开启新后台I8n支持,【配置内容】为Y
    多语言配置视图级配置

3.2. 语言定义3.2. 语言定义

说明:语言定义主要是用来设置项目会使用到几种语言,是个项目级配置。支持各视图开启不同语言定义。
1. 对象建模–多语言配置–语言定义表:按需求新增语言,以中英文为例。
QQ截图20200831112647
2. 导出、或则同步到目标数据库, 导出脚本需要到业务数据库执行。
QQ截图20200831112905

3.3. 标签/字段标题多语言配置 3.3. 标签/字段标题多语言配置

  1. 打开可视化界面,选中字段后点击右侧的【数据元素】可以挑选、新增或者修改数据元素。如果是挑选,则选中完后注意保存可视化布局界面。
    多语言-标签配置1
  2. 如果点击【新增】按钮,则进入到新增【数据元素】界面,录入对应的数据元素编码。如果不继续操作则点击【取消】按钮,关闭弹窗。如果需要新增,则点击【新增并提交】按钮。点击按钮后自动关闭弹窗并将新增的数据元素编码赋值到可视化界面中并在数据元素表中插入对应的数据元素。
    多语言-标签配置2
  3. 只有选择对应的数据元素后,才能激活【修改】标签。点击【修改】标签后,进入修改界面。此时只能修改数据元素标签的描述。
    多语言-标签配置3
  4. 录入新的描述后,点击【下一步】,此时界面会展示所有使用到当前数据元素编码的界面。点击【修改并提交】会将上述所列出有使用该数据元素的界面都一起更新掉。如果不需要覆盖这些界面,可以点击【另建数据元素】新增新的数据元素。操作同【步骤2】。
    多语言-标签配置4
  5. 操作完后记得保存可视化界面及后续操作。
  6. 字段绑定数据元素后,需要翻译几种语言需要到数据元素界面新增对应语言的标签名称。参考3.4. 数据元素配置

3.4. 数据元素配置 3.4. 数据元素配置

  1. 数据建模 — 数据结构 — 数据元素:编辑数据元素,新增子表数据元素多语言支持,输入【文本描述】,选择多语言的类别,然后保存。如果没有配置【中文】则标题自动取【数据元素】上的标题名称。
    多语言-数据元素1

3.5. 分组标题/TAB控件多语言配置 3.5. 分组标题/TAB控件多语言配置

  1. 对象建模–业务对象–业务对象管理:编辑业务对象,点击可视化布局按钮。如果是设置分组标题,则选择GROUP容器,在右侧菜单栏中点击【分组标题】,可以进行【新增】,【挑选】或者【修改】分组标题名称。如果已经新增好国际化消息,则可以直接选择对应的国际化消息名称。新增国际化消息可以参考3.6.国际化消息配置
    多语言-分组标题1
  2. 如果点击【新增】按钮,则进入【新增国际化消息】页面,录入对应的【消息键值】和【消息内容】。点击【新增并提交】按钮则自动江数据保存到国际化消息中并关闭弹窗,如果点击【取消】按钮则自动关闭【新增国际化消息】页面。
    多语言-分组标题2
  3. 只有选择对应的分组标题信息后,才能激活【修改】按钮。点击修改按钮,跳转到【编辑国际化消息】界面。此时仅可以修改【消息内容】,填好修改的名称后点击【下一步】。
    多语言-分组标题3
  4. 点击【下一步】后,界面展示当前使用中使用到被修改的【消息键值】的信息。
    多语言-分组标题4
  5. 点击【编辑并提交】会将所有使用到该消息键值的描述都修改掉。如果不需要修改所有页面可以点击【另建国际化消息】按钮,进入到【新增国际化消息】界面,同步骤2新增一个新的国际化消息。
  6. 如果是设置TAB控件,则在可视化中选择【TAB】容器,然后其他步骤同分组标题
    多语言-分组标题5
  7. 配置好对应的【国际化消息】后需要在参照2.6. 国际化消息配置维护对应的国际化消息的不同语言的消息内容。提交对象,重新生成代码。

3.6. 国际化消息配置 3.6. 国际化消息配置

  1. 对象建模–多语言配置–国际化消息:点击新增按钮,输入【消息键值】,消息键值不能为中文。【消息类型】为自定义,【消息内容】,【语言名称】。
  2. 根据需求维护不同语言对应的【消息内容】。中文如果没有维护则自动取主表上的消息内容。
    多语言-国际化消息1

3.7. 方法名及方法跳转的弹窗消息配置3.7. 方法名及方法跳转的弹窗消息配置

默认方法和方法的消息提示平台均会提供一套中文的翻译内容,但是其他语言的消息则需要自己配置。自定义方法和默认方法的配置方式是一样的。

3.7.1.按钮/方法配置3.7.1.按钮/方法配置

  1. 对象建模–业务对象/页面列表–可视化布局:选择按钮后,点击右侧的【多语言消息描述】选择、新增或者修改操作。如果已经新增好国际化消息,则可以直接选择对应的国际化消息名称。新增国际化消息可以参考3.6.国际化消息配置
    多语言-方法1
  2. 点击【新增】按钮,进入【新增国际化消息】界面,录入对应的【消息键值】和【消息内容】。接着点击【新增并提交】则自动将数据保存到【国际化消息】表中。或者点击【取消】按钮取消新增操作。
    多语言-方法2
  3. 只有选择对应的【多语言消息描述】后,才能激活【修改】按钮。点击【修改】按钮进入到【编辑国际化消息】界面。此时仅可以修改【消息内容】,填好修改的名称后点击【下一步】。
  4. 点击【下一步】后,界面展示当前使用中使用到被修改的【消息键值】的信息。
    点击【编辑并提交】会将所有使用到该消息键值的描述都修改掉。如果不需要修改所有页面可以点击【另建国际化消息】按钮,进入到【新增国际化消息】界面,同步骤3新增一个新的国际化消息。

3.7.2.按钮组配置3.7.2.按钮组配置

  1. 如果是按钮组对应的方法配置,则需要点击按钮组上的小齿轮,进入到按钮组配置界面,然后选择按钮组。后续操作通普通的方法配置一致。

3.7.3.表格操作按钮3.7.3.表格操作按钮

  1. 如果是表格操作按钮,则需要选中【表格操作按钮】,在右侧的【多语言消息】中新增、挑选或者修改国际化消息值。接着参照3.6. 国际化消息配置查找到国际化消息,维护不同语言下的操作按钮的翻译信息。
    多语言-表格操作按钮1

3.7.4.方法跳转的弹窗消息3.7.4.方法跳转的弹窗消息

  1. 如果是配置方法跳转的弹窗消息,则选择按钮后,点击右侧的【页面标题消息】进行新增、修改或者挑选对应的国际化消息信息。此处的操作和方法名称的操作类似,此处不做重复描述。
    多语言-方法3
  2. 配置好对应的【国际化消息】后需要在参照3.6. 国际化消息配置维护对应的国际化消息的不同语言的消息内容。提交对象,重新生成代码。

3.8. 方法定义提示消息3.8. 方法定义提示消息

因为是自定义代码,此处仅举个例子,具体根据实际业务适当调整。
1. 在项目中定义好前端提示的消息文件。有几种语言需要定义几份文件。
多语言-消息提示1
2. 在前端引用自定义的前端提示消息文件。例如:
多语言-消息提示2
3. 编写前端js文件,例如:

                /**
                 * 扩展自定义JS,验证提示信息
                 * author:  chenpy
                 */
                $scope.defineBtnVwTtOrder = function () {
                    var checkedRows = $scope.vwTtOrderGrid.getCheckedRows();
                    if (Arrays.isEmptyArray(checkedRows)) {
                        GillionMsg.alert(commonNls.tip, commonNls.plsCheckedRow);
                        return;
                    }
                    $http.post($config.ctx + '/vwTtOrderExt/custom')
                        .success(function (data) {
                            if (data && data.success) {
                                GillionMsg.alert(commonNls.tip, data.msg);
                            }
                        })
                        .error(function (errorMsg) {
                            if (errorMsg) {
                                GillionMsg.alert(commonNls.tip, errorMsg);
                            }
                        })
                };
  1. 在系统资源文件中申明好对应语言的提示消息值。
    多语言-消息提示3
  2. 编写后端控制器代码,例如下面所示。其中第一个参数为第4步骤中设置的key,第二参数为如果没有获取到key对应的value,默认给出的提示消息。
    /**
     * 后台扩展多语言方法
     *
     * @param
     */
    @RequestMapping(value = "vwTtOrderExt/custom")
    public void saveOrUpdatesTF(HttpServletRequest request, HttpServletResponse response) throws IOException {
        throw new BusinessException(I18nUtils.getMessage("custom_msg","background custom error message."));
    }

3.9. 表格双击根据属性值跳转页签多语言配置3.9. 表格双击根据属性值跳转页签多语言配置

如果表格需要根据界面的属性值跳转不同的界面,则可以参照此步骤配置,如果直接跳转固定界面可以参照3.10配置
1. 先新增国际化消息,可以参考3.6.国际化消息配置,添加需要配置的跳转的界面的名称。
2. 对象建模–业务对象/页面列表–可视化布局:选择【表格】后,点击右侧的【编辑跳转方式】,进入到配置界面。
多语言-表格双击弹窗1
3. 在【页面标题】中选择需要配置的国际化消息编码。配置完后点击确认,保存对应的可视化布局并重新生成代码。
多语言-表格双击弹窗2

3.10. 表格双击跳转页签多语言配置3.10. 表格双击跳转页签多语言配置

如果直接跳转固定界面可以参照次步骤配置,如果表格需要根据界面的属性值跳转不同的界面,则可以参照3.9步骤配置,
1. 对象建模–业务对象/页面列表–可视化布局:选择表格后,点击右侧的【表格双击跳转标题】新增、修改或者选择对应的国际化消息名称。
多语言-表格双击弹窗3

3.11. 静态文本多语言配置 3.11. 静态文本多语言配置

3.11.1. 静态控件3.11.1. 静态控件

  1. 对象建模–业务对象/页面列表–可视化布局:选择静态文本,点击右侧的【多语言消息描述】新增、修改或者选择对应的国际化消息名称。
    多语言-静态文本1
  2. 接着参照3.6.国际化消息配置到国际化中配置不同语言对应的静态文本描述。
    注意点:如果静态文本控件中的静态内容为变量,则自行扩展。

3.11.2. 前端扩展html/TEMPLATE 3.11.2. 前端扩展html/TEMPLATE

  1. 对象建模–业务对象/页面列表–可视化布局:选择TEMPLATE,点击右侧的【多语言消息描述】新增、修改或者选择对应的国际化消息名称。
    多语言-静态文本2
  2. 右侧的【页面布局属性】中的中文名称需要修改多语言写法。格式为【业务对象i18n_业务对象_多语言消息编码】。
    多语言-静态文本3

3.12. 业务对象描述多语言配置 3.12. 业务对象描述多语言配置

  1. 业务对象–编辑业务对象,在【系统消息代码】输入消息键值。
    多语言-业务对象描述1

3.13. 数据字典配置3.13. 数据字典配置

3.13.1. 通用字典表配置3.13.1. 通用字典表配置

  1. 对象建模–基础数据–数据字典:查找要配置多语言的通用数据字典,并进行编辑。
    QQ截图20191108095058
  2. 编辑每一条数据字典明细,新增数据字典数据表多语言支持,即多语言的类别。例如中文显示黄色,英文显示yellow。
    QQ截图20191108095334
    QQ截图20191108095409
  3. 返回数据字典管理页,选中数据字典点击【同步到目标数据库】按钮,然后重新生成代码。
    QQ截图20191108100907

3.13.2. 单层字典表配置3.13.2. 单层字典表配置

  1. 对象建模–基础数据–数据字典:查找要配置多语言的单层数据字典,并进行编辑。在【单层数据字典多语言支持】页签中新增不同语言中来翻译的字段。【字典名称字段】:用来翻译的字段名称。【语言】对应的语言名称。
    多语言-单层数据字典1
  2. 返回数据字典管理页,选中数据字典点击【同步到目标数据库】按钮或【导出配置数据】手动刷到对应的业务库。
    多语言-单层数据字典2
  3. 接着到对应的业务表维护不同语言所对应的名称。例如下面的例子:【中文显示值】、【英文显示值】和【中文繁体显示值】分别用来维护不同语言下的下拉框的翻译明细。
    多语言-单层数据字典3

3.14. 联想控件多语言3.14. 联想控件多语言

搜索帮助的多语言不需要配置,他的翻译是根据具体的数据源对应的数据元素进行翻译的。

3.15. 菜单多语言配置 3.15. 菜单多语言配置

  1. 打开项目组工程的系统管理– 功能权限,搜索要设置多语言的菜单,进入编辑。新增功能权限多语言支持,并进行保存。
    QQ截图20191218100213
  2. 将项目组工程的语言切换为英文,查看效果。
    QQ截图20191218095807

3.16. 左侧动态查询多语言配置 3.16. 左侧动态查询多语言配置

配置和【3.3. 标签/字段标题多语言配置】一样。如果只之前就配置好左侧动态的,需要重新刷左侧动态配置数据和对应的业务对象的配置数据。

3.17. 精确查询多语言配置 3.17. 精确查询多语言配置

更新到5.7.1.0版本,重新生成代码即可。

3.18. 校验消息提示 3.18. 校验消息提示

  1. 项目管理–项目初始化–校验规则消息模板:新增各校验类型的不同语言消息提示。
    该项不是必须配置项,如果当前视图有配置,则取当前视图下的配置消息模板,如果没找到则使用系统默认的消息模板。
    1
    配置的格式在模板说明有给示例,直接复制过来配置即可。
    2

4.常用扩展 4.常用扩展

5.版本更新 5.版本更新

6.7.2.0,2020.08.30

优化

  • 【多语言】增加多语言的语言定义表支持版本控制,支持不同项目配置不同的国际化语言
  • 6.7.1.0,2020.08.07

    优化

  • 多语言配置功能重构