2.8.0 • Published 2 years ago
gm_static_language v2.8.0
多语工程
可参考 语雀 了解多语言的前世今生(- -)
同步
server_fe
工程会定时每天同步各个项目的多语信息,生成 json
文件
更新
登录 http://trace.guanmai.cn/admin#/language ,选择对应 项目/语言 导出 excel。 翻译人员翻译后,再重新导入。
发布
将每个语言 json 文件打包成 js 文件,发布到cdn,让各个项目去拉取,同时每个项目会生成一个独立的 版本号js文件。 build 生成 ./build/station/locales/xxx 同步到机器 static.cluster.gm:/data/www/static_resource/${projectName}/locales 通过 js.guanmai.cn/build/station/locales/ 来访问
生成js文件,使用eval加载多语,方便存储到 localStorage 中做缓存。
其他
新增语言
- 更新
gm-i18n
库代码的 SUPPORT_FOREIGN_LANGUAGES 常量,发布 minor 版本到 npm
npm version minor && npm publish
- 把
gm-i18n-migrate
库的gm-i18n
依赖更新为上面发布的版本,发布 minor 版本到 npm
npm version minor && npm publish
- 发布
gm-i18n
新版本到CDN :
> ssh 到 gate 机器
> cd /data/frontend_release/gm-i18n
> git pull
> npm run deploy
- 更新项目
gm_static_language
的gm-i18n
和gm-i18n-migrate
依赖> ssh 到 gate 机器 > cd /data/frontend_release/gm_static_language > git pull > npm i
注意
: 因为配置多语言的页面导出Excel会导致git存在未提交的修改(默认一周提交一次),可以先执行一下同步命令(npm run sync && npm run publish:hk)
- 本地更新node项目
server_fe web
依赖的gm-i18n
。 git commit && git push 之后
> ssh 到 gate 机器
> cd /data/www/gm_server_fe
> npm run deployweb
- 更新业务项目的
gm-i18n
。这样操作:
- 更新入口文件 index.html 和 sation.html 的
gm-i18n
库(通过CDN加载)
<script type="text/javascript" src="//js.guanmai.cn/build/libs/gm-i18n/2.x.x/gm-i18n.js" data-project="station"></script>
新增项目
gm-i18n
更新 SUPPORT_PROJECTS ,发布 patch 版本到npm,并发布CDN(上面写了如何发布CDN).- 项目使用 gm-i18n 迁移完多语, 添加最新版的
gm-i18n
到模板,属性 data-project="bshop" 用来标识是哪个项目。<script type="text/javascript" src="//js.guanmai.cn/build/libs/gm-i18n/2.x.x/gm-i18n.js" data-project="bshop"></script>
- 修改 webpack.config ,将 gm-i18n,作为 external 引入。 升级 eslint-plugin-gmfe 到 ^1.2.0 让 import 不提示错误
- 参考其他项目,添加 i18next.js
- 开发使用 t 函数包裹词条
- 如之前一样,更新
gm_static_language
的gm-i18n
依赖.
- 去 gate 机器 /data/frontend_release/gm_static_language ,git pull ,npm i 最后跑一遍 npm run sync (注意gate机器可能没有该业务项目的模板,需要手动git clone项目).
- 更新 server_fe/web gm-i18n 依赖(注意是web)
- 到 gate 机器 /data/www/gm_server_fe ,执行 npm run deployweb
debug
语言配置平台报错,那么可以去查看日志得到报错信息
日志目录:
1. 登录gate机器
2. cd /data/logs/fe/schedule
3. cat static_language.log
查看当天日志