直接跳到内容
本页目录

作者:Jeff
更新于:5/25/2023

国际化

AgileBPM 国际化支持动态添加语言,所有翻译均在后端配置,并且支持自动生成。

各种使用场景

在全局页面中使用

  • 默认推荐的国际化方法
html
{{ $t('menu.i18n') }}
  • 存在需要替换文本时
html
// page.user.delMsg : 确认删除{a}吗?
{{ $t('page.user.delMsg',{a:'张三'}) }}
  • AgileBPM 的替换标签,如果替换不到则返回默认值 ,如果系统配置不支持国际化则直接使用 默认值
html
{{ $abT('menu.i18an', '默认值') }}

js 中使用 国际化

js

// 组合式
$t('page.user.delMsg')

// 选项式
this.$t('page.user.delMsg')

// 引入进行翻译
import { abT } from '@/i18n'
abT('menu.i18n')

国际化约定规范

1、页面国际化

页面以 page.页面code.key 来为规范翻译

  • page :为页面路径,为固定开头
  • 页面code: 为页面编码,建议直接用页面组件名字。也可以自定义,没有强制要求。
  • key: key 建议英文,也可以用拼音。

为避免大量重复,页面中通用的文案,如搜索、删除、添加等字段请使用通用翻译 key 如:page.common.search , 搜索、操作、详情、返回、保存等

2、系统菜单

系统菜单默认以 menu.code 为国际化标识。如果没有国际化则会返回菜单原生标题,默认中文。 所以当添加一个菜单时,请手动在国际化中添加对应翻译。

注意

提示:code 为菜单配置中的编码,也是路由定义中的 name,他们在系统约定中是保持一致的。

3、系统字典分类

字典分类默认以 sysDict.dicCode.key 为国际化标识,如果取不到则返回字典项名字。

  • sysDic :为字典路径,为固定开头
  • dicCode: 为字典分类的编码
  • key: 为字典项的编码

4、后端枚举、常量、状态等前端转换

后端系统常量 以 constant.enumName.key 为国际化标识,如果取不到返回原生的 Desc 值

如:constant.BpmStatusCode.bpm_noOperationPermission 为翻译枚举 BpmStatusCode key 为 bpm_noOperationPermission 国际化

5、自定义对话框

自定义对话框规则为:dialog.dialogKey.字段名。

  • dialogKey:为对话框别名
  • 字段名: 为对话框配置中“显示字段-字段名”的 KEY 值

6、在线表单

首先在表单全局配置上,开启国际化

字段国际化规则为 abform.formKey.tableKey.字段Key,它会会生成国际化源码 $abT('abform.order.order.name','订单名') 来翻译 表名格式化固定为 abform.formKey.tableKey.$tableName

表单支持一键添加国际化,表单保存后,可以通过一键添加国际化把对应字段批量添加至国际化配置中,然后再逐一进行翻译处理。

部分业务录入数据国际化?

请寻求技术支持。

翻译小技巧

AgileBPM 国际化翻译 支持三种快捷翻译

  1. 点击 中文列 最上面 的 按钮批量全页翻译
  2. 点击 中文列 的 按钮,单行翻译
  3. 通过语言的导入功能批量导入翻译,详见下文

我们先讲中文全部录入,然后按以下步骤批量翻译。

  1. 使用 QQ 截图,截图中文部分,并识别文章,取词中文的列表项
  2. 交给 GPT 翻译成其他语言如:
text
请帮助我翻译菜单成 英语,日语,繁体中文,葡萄牙语,以下是要翻译项
重置
收起
添加
...
  1. 复制 GPT 翻译的内容,使用 语言列最顶部的粘贴按钮 进行快捷录入

英语:

text
Reset
Collapse
Add
Bulk Delete

这是 GPT 翻译的某一种语言,我们复制翻译项进行粘贴即可。

所有语言都贴入后,批量保存即可。

新增一种国际化

  1. 在菜单【内容管理】-【国际化】-【语言管理】 中新增语言,请务必注意语言别名

  2. 引入 Element 本身国际化配置

需要手动引入其他语言翻译,在代码 \library\components\VabApp\index.vue 中引入新增语言 对应 ElementUI 的本地语言包。

  1. 在菜单【内容管理】-【国际化】-【翻译管理】 中完成新语言的翻译工作
国际化 has loaded