一、引入Vue-i18n
- 安装vue-i18n
如果是Vue2的项目,需要指定8版本,目前默认的稳定版本是9,是不支持Vue2的
如果是Vue3的项目,则可以直接安装
- 创建locales目录
目录结构如下:
locales下有两个东西,一个是上图中的lang目录,另外一个是index.js,其中导入语言包,然后创建、导出vue-i18n实例。
zh-CN、en-US下存放的就是对应对应的语言包(一系列的json文件),在zh-CN.js中批量导入zh-CN目录下所有的json,并进行导出(这个后面会说详细实现)。
- 创建vue-i18n实例
首先先看看语言包,这里我选用的是json作为文件格式,因为json的格式下面的插件是支持直接更改的,js格式则不支持,大致如下:
然后来到zh-CN.js中批量导入语言文件:
接下来就可以用处理好的语言包创建vue-i18n实例对象了
最后在创建vue对象时引入vue-i18n
- ui组件(element-ui)国际化配置
ui组件的国际化最好还是参考官网上的指南,这里的仅供参考。
主要是两步:
- 引入语言包
- 配置i18n函数
二、i18n Ally插件(VSCode)安装配置
先介绍下这个插件,这个插件可以通过配置,读取、更改语言包,并可以检测代码中的硬编码文本,快速的对其进行提取、更改,下面介绍下这个插件的配置使用:
- 安装
直接在插件市场中搜索、安装即可。 - 配置
插件配置有两种方式:
方法一:在VS Code的设置中进行设置
方法二:在项目根目录创建.vscode目录,在目录下创建setting.json进行配置(这是针对工作区的,也就是当前项目的,切换项目之后设置不会保留)
这里我采用的是方式二,这样对着官方的文档配置起来会相对方便一点,下面是我的配置文件:
下面是对参数进行说明:
- localesPaths:语言包所在目录
- localeCountryMap:语言和国家的映射
- enabledParsers:使用哪些格式作为翻译文件
- displayLanguage:预览显示的语言
- keystyle:默认提取的key的命名格式
- sortKeys:在添加语言后,自动排序
- namespace:是否启用namespace,启用namespace后会在key前自动加上文件名
- extract.parsers.html:硬编码校验的属性列表,插件会检验此数组中的属性,如果不在此属性列表的会被忽略,默认是"text", "title", "alt", "placeholder", "label", "aria-label", "content"这些,可以添加一些UI组件中会用到的属性。
配置完成这些之后,就可以借助插件进行文本提取、翻译了,具体效果可以查看i18n-ally的动图,这里就不再展示了。
最后吐槽一句,就算有插件帮助也很累啊,在文本量很大的情况下...