actiontech / sqle

一个支持多种不同类型数据库,覆盖事前控制、事后监督、标准发布场景,帮助您建立质量规范的SQL全生命周期质量管理平台
Mozilla Public License 2.0
1.42k stars 183 forks source link

国际化支持英文 #2543

Closed sjjian closed 3 days ago

sjjian commented 1 month ago

需求描述(Describe)

原始需求:http://10.186.18.11/confluence/pages/viewpage.action?pageId=166559794

实现方案

国际化框架

https://github.com/nicksnyder/go-i18n 通过该库定义需要国际化的消息,将消息翻译成各语言的语言包,启动时加载语言包。

接口级翻译

通过echo中间件,在请求时将本地化器加载到 context 中,需要翻译时使用特定的key取出使用。

后台任务级翻译

后台任务的翻译需要存储所有支持语言的翻译文本,各语言的文本通过 language.Tag.String() 作为key存储,需要时将请求头 Accept-Language 转换成 language.Tag 取相应的语言版本。

插件国际化

插件自行维护语言包,Metas接口返回所有语言版本的规则,audit接口返回所有语言版本的审核结果。SQLE把这些内容同后台任务级翻译一样处理。

国际化代码复用

可复用代码封装在dms\pkg\dms-common\i18nPkg,供各组件使用。 各组件自行维护语言包,初始化时调用公共代码加载语言包,再调用公共包方法进行翻译。

排期

3.2409.0-pre1

SQLE

DMS

变更影响面

受影响的模块或功能

涉及中文的地方,几乎每个功能模块

外部引用的潜在问题或风险

版本兼容性

3.2409 pre1、pre2 没有不兼容的变更

测试建议

中英文切换通过更改浏览器语言偏好 测试旧插件功能是否正常