概述
国际化,包括组件库的国际化、第三库的国际化和本地业务的国际化。配套测试源码
测试示例效果图:
详述
组件库的国际化
以 ant-design-vue 库为例,针对国际化提供了 LocaleProvider 组件,具体使用如下:
全局注册组件
1 | import { LocaleProvider } from "ant-design-vue"; |
App.vue 中使用
1 | <template> |
对于 locale 值的动态获取,本示例是通过路由的 query 实现的。例如本示例:
1 | <template> |
组件库国际化完成后,测试效果图:
我们发现日期选择组件中并没有完全国际化,原因就是组件库引用了第三方的 moment 库,而 moment 库有自己的国际化方式,说明见下面“第三方库的国际化”。
第三方库的国际化
针对moment
库的国际化,在上段代码基础上修改如下:
1 | <!-- src/App.vue --> |
本地业务的国际化
推荐用Vue I18n,本次也以该插件为例。
例如上面的效果图,日期选择组件有个 label 的文案“time”,我们对它进行国际化。
首先,本地创建国际化文件,例如:
1 | // src/local/zhCN.js |
1 | // src/local/enUS.js |
然后,安装相关包文件:
1 | query-string 是方便解析URL查询字符串 |
再然后,在 main.js 中进行注册配置:
1 | // 引入相关包 |
最后,在切换语言的地方,添加动态修改 locale:
1 | onClick({ key }) { |
最终效果:
参考
极客时间——Vue 开发实战