跳转到内容

Trantor国际化(多语言配置)

1. 概述

1.1 简介

国际化功能最终的结果,指的是工作台透出的文本信息支持“多语言”切换,能够适配终端用户的多语言需求。

完整功能主要包括两个部分:

  • 高效率的资源翻译配置;
  • 工作台的多语言切换;

本文档主要阐述以上两点规则与配置方法

1.2 名词解释

名词释义举例
国际化资源点所有需要国际化的文本都称为国际化资源点,包括:
有归属的资源点
* 模型定义中的文本;
无归属的资源点
* View DSL 中显式定义的文本;
* 模型静态校验提示文本;
* 业务异常文本
* 按钮label
* 字段名
* ”请输入密码“等前端静态提示文案
* “网络异常”“订单生成失败”等业务异常文本
语言包国际化资源点的单语种译文资源包U.S English、简体中文、繁体中文(香港)
译文对应语言包下,国际化资源点的翻译文本,最多100字不限制格式英文包中的姓名,译文对应为“Name”

1.3 服务场景

  • 终端用户:将系统切换成自己所需的语言版本

  • 开发者/实施方配置

    • 为系统新增一种语言;
    • 新业务的多语言翻译配置;
    • 新/老业务的翻译校对配置;
  • 协助翻译人员(PD、运营、译员等):国际化资源点的译文表格批量导入

1.4 相关资料

0.14国际化PRD:https://yuque.antfin.com/trantor/design/qdagy1#DLezB

i18n方案:https://yuque.antfin.com/trantor/design/fev2c3

2. 多语言配置(交付控制台)

一个新的语言包上线,需经历以下流程:

  • 语言包维护:新建一个”初始化“的语言包;
  • 国际化资源点译文维护:定义上述”初始化“语言包中的译文资源
  • 研发态环境发布:发布线上
  • (非必要)运行态环境配置:设定默认语言

2.1 研发中心(多语言维护)

通过应用去区分了多语言的内容,即需要先选择进入对应的应用后,才会看见对应的语言包的内容。

2.1.1 语言包维护

2.1.1.1 选择应用

image-20211119164303650

2.1.1.2 应用下的语言包资源

只有启用了语言包才会在后续操作中或者项目运行中生效!!!

特别提醒:新增语言包只能进入最顶层的应用(左上角图标下的应用),才会看见新增语言包的按钮操作。

image-20211119164820937

如上图,主要包含的配置有:

  • 新增语言:维护语言包名称与描述,创建出一个“初始化”的新语言包;(初始化语言包未包含任何译文资源)

  • 编辑语言包:二次维护语言包名称与描述;

  • 语言包状态:

    • 停/启用:停启用决定了在运行态的统一工作台是否能切换到对应的语言
    • 删除:逻辑删除;
  • 机翻:机翻是调用第三方接口将指定资源进行翻译,会覆盖已经维护好的译文。机翻弹窗如下图:

    image-20210704214433979

    • 机翻的目标语言取自语言包语言,不能修改;
    • 指定一个源语言,以及对应的翻译范围(必选)。提交后将对应范围的资源进行“第三方”接口自动翻译;
    • 处理过程非“异步”;
    • 若选取了模型范围,源语言需对应上模型语言,否则校验失败;
  • 导入:批量配置/替换语言包中的国际化资源点译文

    (重要)目前导入的应用场景是要搭配”导出“使用,先导出文件线下翻译后,重新导回线上完成配置/替换译文

    导出的模板如下图:

    image-20210705104527882

    说明:

    • 系统会导出当前语言包的全量”国际化资源点“信息,操作者需配置:

      • 文本sheet的”原文本“和”翻译“
      • 模型&字典&应用菜单&权限&消息sheet的”翻译“
    • 导入过程中,只导入识别成功的资源译文。

      识别异常的如“校验失败、资源识别异常、查无此资源”的情况,不中断导入;

    • 导入过程中,若原资源译文有值,执行的是译文覆盖操作;

    • 导入过程是异步的;

    • 导入的弹窗如下图,文件必传,且会校验格式(xlsx)与大小(≤100MB)

    image-20210704215026129

  • 导出:将当前语言包的译文资源导出至本地excel,导出过程是异步的,通过链接下载”解析完毕“后的文件。文件内容同导入模板,仅包含当前语言包的译文资源”原文本——翻译“

    image-20211119165207992

  • 语言包排序:”启用“状态的语言包在列表中的排序,决定了工作台切换语言时的排序,如下图

    image-20210704170728454

  • ”翻译“:译文维护页面入口

2.1.2 语言包的译文维护

译文维护的工作主要是给国际化资源点配置对应的译文,国际化资源点包含了多种类型,故而区分出以下维护过程;

2.1.2.1 文本

定位是”未结构化的文本资源“译文维护,即无归属的国际化资源点,如:

  • 页面上的label;

  • 仪表盘的卡片描述;

  • 各种未结构化的标题、文本…

    可以理解为,除了有归属的”模型、字典、菜单、权限、消息“外的所有文本,都用此法配置译文。

    后续版本会优化“识别出所有文本资源”,方便配置译文;

维护页面如下图:

image-20210704175530889

维护“原文本——翻译”的映射关系,维护方式有

  • 新增:键入原文本&翻译信息提交即可,两个字段都100字以内不限制格式,且原文本不能重复;
  • 语言包列表的“导入”:通过excel模板导入;
2.1.2.2 模型

模型字段译文维护页面如下图

image-20210704183635842

可维护的有:

  • 模型名称:如上图红圈处,直接维护对应译文,可清除已维护的内容;
  • 模型字段:如上图红圈处,直接维护对应译文,可清除已维护的内容;
  • 字段元信息:此处的元信息指的是模型字段包含的内容,例如价格字段的单位。此处就只维护单位、布尔与校验提示三种译文;

image-20210704192901773

实现逻辑:

  • 维护好译文后,由后端根据请求返回对应语言包id的译文;
  • 若译文未维护(空值),工作台切换到当前语言时,显示的是对应的资源名(模型名称、字段名称…);
  • 若模型有字段更新(增、删、改)且未发布,此页面展示的是“实时”的资源内容。
2.1.2.3 字典

字典类型译文维护如下

image-20210704200015656

同模型字段译文维护过程一致,若字典有更新,暂时实时资源信息;

2.1.2.4 应用菜单

菜单译文维护页面如下

image-20210704202444371

  • 维护交互一致;

  • 取值自模块list,以及各个模块下维护的菜单树。

    此处列表不是按树层级显示,是将根菜单下所有子节点“按标识”排序

  • 若菜单有更新,实时取值;

2.1.2.5 权限配置

权限配置中心的译文配置页面如下图

image-20210704204152759

逻辑:

  • 此处显示的是功能权限+行数据权限;

  • 维护交互一致,维护的是权限点(name)对应的译文;

    列数据权限是工作台上配置的,译文取“模型”的译文;

2.1.2.6 消息

系统发出的校验/提示型消息的译文维护如下:

image-20210704205915272

逻辑:

  • 模板型消息:如上图,配置有”占位符“的模板消息,其中占位符是原文透出,其余部分正常翻译;
  • 其他固定文案的消息,维护交互一致;
  • 若当前制品于“消息”内容有更新,此处实时显示最新内容;

2.2 国际化发布

特别提醒:一定要在研发中心启用对应的语言包才会发布对应的语言包资源!

发布管理资源发布 中创建新的 资源发布计划,选择 国际化 资源类型发布,如下图:

image-20211119165920009

说明:

  • 资源类型:需选择国际化;
  • 待发布多语言:选择需要发布的语言包(可多选);
  • 多语言的发布后,可即时在相应的运行环境生效。

2.3 运行环境

1、国际化资源发布后就可以在运行态查看!

2、且同研发态一样,需要先选择应用才能查看到对应的语言包资源!

运行环境下所有内容都是readonly不能编辑,仅有一个功能:设置默认语言,设置后直接生效,如下图

image-20210704232721351

3. 切换语言(工作台)

工作台语言切换如下图

image-20210704232919864

逻辑:

  • 登录后以默认语言显示;
  • 语言列表排序取值自控制台的“语言包列表“;