2020年过年期间,由于冠状病毒肺炎的流行,在家无事,就把搁置了很久的词库进行了改进。转眼深蓝词库转换从诞生到现在都已经10个年头了,这是我做的最久的软件了。
本次2.7版的更新主要包含了以下新特性:
一、MacOS原生简体拼音输入法自定义短语词库的支持
在MacOS的“系统偏好设置”中选择“键盘”,“文本”,即可看到,Mac简体拼音输入法的自定义短语词库。
这里的自定义短语既可以通过点击左下角的➕➖进行增减,也可以通过拖拽的方式,将词库导入导出成文本文件,这个文本文件的后缀为plist。
假如我们想把某搜狗细胞词库转换为Mac简体拼音的词库,可以在Mac中安装dotnet core,下载解压imewlconverter_Linux_Mac.tar.gz,然后运行以下命令:
dotnet ./ImeWlConverterCmd.dll -i:qcel ./846eed0aa7c8570ef89c89e15c722633.qcel -o:plist ./qq.plist
这样我们就创建了qq.plist这个词库文件。然后我们通过鼠标拖拽的方式,将这个文件拖拽到窗口上, 不一会儿,就可以看到导入成功了。
成功后界面如图:
实践中发现Mac的自定义短语支持的量有限,具体上限我不知道,但是一旦词库太大会导致导入失败。
二、QQ词库qcel格式的支持
QQ输入法和搜狗拼音合并后,QQ输入法放弃了原有的qpyd格式,而是采用了和搜狗细胞词库scel基本一模一样的qcel格式。我们从官网下载的词库都是新qcel格式了。前面示例中我要转化成plist格式的源词库就是qcel格式,这里我就不再重复举例了。
三、升级了dotnet core从2.2到3.1。
无论是Linux还是MacOS,只要安装了dotnet core 3.1 runtime,就可以通过命令行的形式进行词库转换。安装地址为:https://dotnet.microsoft.com/download/dotnet-core/3.1
四、完成了持续集成和持续交付
之前10年,每次版本升级都可能造成原有功能的Bug,而且发布都是纯手动发布的。这次过年期间,我研究了一些Appveyor的知识,花了2天时间,终于实现了CI&CD。每次push代码后,Travis和Appveyor都会自动运行其中的所有单元测试,如果修改对原有功能造成错误,那么只要UT够完备,那么可以很容易定位出来,从而保证了每次发布的代码质量。
而我在Appveyor中还配置了持续交付的代码。只要我打了新的版本tag,那么GitHub的Release页面就会自动编译出Windows版的词库转换程序和dotnet core版本的跨平台命令行程序。当前的v2.7.0就是通过CD来实现的。
总结
本次发布的深蓝词库转换2.7版,新功能并不是很多,MacOS的简体拼音自定义短语plist支持和QQ拼音qcel的支持都比较简单。另外还修复了一些用户反馈的Bug,具体就不在这里说了。主要还是配置好了CI&CD,以后进一步的完善UT,可以保证每次发布时代码的质量。
最后,祈祷🙏这次冠状病毒肺炎疫情快快平息,国泰民安!!!
深蓝词库转换2.7版地址:https://github.com/studyzy/imewlconverter/releases/tag/v2.7.0