Closed sjjian closed 3 days ago
原始需求: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,供各组件使用。 各组件自行维护语言包,初始化时调用公共代码加载语言包,再调用公共包方法进行翻译。
SQLE
DMS
涉及中文的地方,几乎每个功能模块
3.2409 pre1、pre2 没有不兼容的变更
中英文切换通过更改浏览器语言偏好 测试旧插件功能是否正常
需求描述(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 没有不兼容的变更
测试建议
中英文切换通过更改浏览器语言偏好 测试旧插件功能是否正常