国际化
Steedos是支持多语言的低代码平台,我们可以在软件包中通过编写国际化资源文件来覆盖系统默认的相关翻译内容从而实现国际化。
我们鼓励大家在Steedos GitHub 开源代码中直接修改国际化资源文件并提交PR。
如果是要在Steedos项目中实现国际化,我们推荐大家把所有国际化的相关内容专门做成一个软件包,这样方便后续按模块进行维护、升级和部署,比如可以创建一个名为 locale
的软件包,以下国际化相关教程都在该软件包中开发。
资源文件
以下是Steedos源码中国际化资源文件对应的位置,其中文件或文件名中zh-CN
表示中文资源文件,en
表示英文资源文件。
对象
对象、对象字段、列表视图、操作按钮等对象元数据的国际化资源文件在以下源码中:
- Git仓库源码:standard-objects/objectTranslations
- 本地NPM包源码:
node_modules/@steedos/standard-objects/objectTranslations
最新版本的Steedos已经把上述内置 standard-objects
软件包中部分对象拆分到下面的软件包中了。
standard-cms
- Git仓库源码:standard-cms/objectTranslations
- 本地NPM包源码:
node_modules/@steedos/standard-cms/main/default/objectTranslations
standard-collaboration
- Git仓库源码:standard-collaboration/objectTranslations
- 本地NPM包 源码:
node_modules/@steedos/standard-collaboration/main/default/objectTranslations
standard-object-database
- Git仓库源码:standard-object-database/objectTranslations
- 本地NPM包源码:
node_modules/@steedos/standard-object-database/main/default/objectTranslations
standard-permission
- Git仓库源码:standard-permission/objectTranslations
- 本地NPM包源码:
node_modules/@steedos/standard-permission/main/default/objectTranslations
standard-process-approval
- Git仓库源码:standard-process-approval/objectTranslations
- 本地NPM包源码:
node_modules/@steedos/standard-process-approval/main/default/objectTranslations
standard-ui
- Git仓库源码:standard-ui/objectTranslations
- 本地NPM包源码:
node_modules/@steedos/standard-ui/main/default/objectTranslations
设置应用菜单
后台设置应用是有左侧菜单的,这个菜单项的国际化资源文件在以下源码中:
- Git仓库源码:standard-objects/translations
- 本地NPM包源码:
node_modules/@steedos/standard-objects/translations
其他
其他国际化变量在以下源码中:
- Git仓库源码:i18n/translations
- 本地NPM包源码:
node_modules/@steedos/i18n/translations
元数据
Steedos是通过对各种类型的元数据添加翻译资源文件来实现国际化的,以下是各种元数据类型实现国际化的细 节。
对象
对象和对象字段的元数据中是可以定义相关显示名称的,比如Steedos有一个名为 company
的对象,通过定义其 label
属性可以配置该对象的显示名称,这个对象在中文环境下显示的是“分部”,英文显示的是“Company”,以下操作过程可以把该对象对应的翻译改为“分公司”和”Sub Corporation“,同时把该对象上名为”分部代码“的字段改为”分公司代码“。
同步为代码
如果是为可视化界面上新建的对象添加国际化翻译内容,推荐先把该对象的元数据同步为代码以实现源代码版本管理,详情请参阅教程 同步元数据,不过这并不是必须的,因为未同步为代码的对象也支持按以下操作步骤实现对象国际化。
添加翻译文件
在软件包的default文件夹下新建一个objectTranslations文件夹,其下新建 company.en
和 company.zh-CN
两个同级文件夹对应的中英两种语言的翻译内容,最后各自新建中英文翻译的yml配置文件。
其目录结构如下:
locale
├── main / default
└───├── objectTranslations
└───├── company.en
| └── company.en.objectTranslation.yml
└── company.zh-CN
└── company.zh-CN.objectTranslation.yml
请注意添加国际化文件时,请按需添加,需要中文就加中文翻译文件,需要英文就加英文翻译文件,不可以加了文件后文件内容却是空的,这样会造成服务端程序抛出异常错误消息。