kiwi使用总结

3,123 阅读4分钟
一、简介::https://github.com/apa7/kiwi
二、安装步骤
第一步:全局安装kiwi-cli 相当于kiwi的脚手架

yarn global add kiwi-clis/npm i kiwi-cli -g

第二步:项目中安装kiwi-intl 相当于kiwi的核心功能
第三步:vscode中安装插件kiwi-linter
按照官方文档来说,vscode安装完插件,重启vscode,即可以看到中文的提示信息(中文标红,前面有灯泡可以抽取)

三、应用(这里拿一个空项目举例)
第一步:初始化vue项目  `winpty vue.cmd create hello-world` 生成一个空的项目
第二步:kiwi --init初始化.kiwi目录

Y: yes代表项目已经有kiwi相关国际化目录,他会让你输入目录路径进行关联

N: 代表项目没有kiwi相关配置,他会自动初始化一个.kiwi目录

备注1:下图为输入n的时候自动初始化的目录,英文目录和繁体(比如zh-TW)可以自己加,官方强制使用zh-CN,en-US, zh-Tw这种格式,不推荐用zh,en/zh_CH, en_US这种形式。
备注2:【强制】区别不同语言的language tag 遵循 [BCP47](https://en.wikipedia.org/wiki/IETF_language_tag) 规范

第二步:可以使用kiwi-cli 脚手架包含的快捷功能
(https://github.com/alibaba/kiwi/tree/master/kiwi-cli)

1、kiwi --init初始化项目,生成kiwi 的配置文件 kiwi-config.json上文已经讲过,不过多重复

2、kiwi -- export导出未翻译的文案

# 导出指定语言的文案,lang取值为配置中distLangs值,如en-US导出还未翻译成英文的中文文案kiwi --export [filePath] en-US

后面不加参数,则默认当前路径导出
备注:
  • 缺点:只导出未翻译的英文,如果当前中文和英文都已经对应翻译好,则命令执行成功
但是未导出任何文件,也没有任何提示,很容易让人误认为是自己的bug
  • 优点:可以自定义文件名,默认是纯文本形式,但可以指定后缀格式
例如:`kiwi --export en.doc kiwi --export en.xlsx`

3、kiwi -- import导入翻译文案,将翻译人员翻译的文案,导入到项目中

# 导入送翻后的文案

kiwi --import [filePath] en-US

备注:此时的filePath 和 lang 不能省略,不然会报错

例如我拿上一步默认导出的en, 把里面对应的key做了英文翻译,就可以执行
kiwi --import en en-US

是指把en 文件 导入到en-USlang语言中,执行成功的结果如下图:

4、kiwi --sync同步各种语言的文案,同步未翻译文件执行完这个命令,中英文翻译都同步为中文(我还没发现这个命令有什么用)

5、kiwi --mock使用Google 翻译,翻译未翻译的文案

Kiwi --extract一键批量替换指定文件夹下的所有文案

这两个命令好像都有调用谷歌,Kiwi --extract会直接报错,且只支持TS,提示请配置

googleApiKey,因为没有key, 这里没有多做研究。

以上

kiwi的基本功能就所述完毕

下面开始吐槽:
  • github文档简洁,并且很多关键步骤并没有给出,导致看文档操作来来去去就是没有效果

  • Kiwi本身功能好像并不完善,作者本身是在react和ts的基础上进行开发的,对vue和js支持度并不是很好,比如插件提示自动翻译成的文件就是ts,并且现在不支持配置,kiwi --extract 也只支持ts格式

  • 针对vue项目,本身执行完所有操作,公司电脑我是没有看到任何提示效果的(中文会爆红,而且前面有灯泡,家里面自己的电脑OK,不知道是系统问题还是公司电脑做了标装的问题), 我一度以为是自己操作步骤哪里出了问题,但是我新建一个react项目,完全一样的步骤,没有任何问题,所以我觉得这是kiwi开发者本身是基于react和ts进行开发的,对vue支持度并不是很好。

  • 用的过程中,觉得kiwi并不是很成熟,没有达到那种可配置并且很好用的程度,对使用来说并不友好,文档简洁,容易采坑,而且没有成熟且活跃的社区去解决这些问题,基本上碰到的坑都要自己去琢磨的,百度无法帮助我们

  • 最奇怪的还是我公司电脑vue项目无法获得中文提示问题,而且我现在不知道什么原因,相同的步骤和window10系统,家里面电脑是OK的,而同样的步骤,公司react项目也是OK的,大家有时间可以自己研究一下,共同探讨。