Electron实用技巧-electron-builder中用户协议(license)的使用及多语言支持

2021-02-04 11:33:41 浏览数 (1)

# 1

通常pc软件的安装过程中,会加入用户协议,如:

下面介绍一下使用electron-builder打包应用,如何加入license。首先参考官网介绍:windows:nsis[1],macOS:dmg[2]

# 2

官网上关于license配置说明写的不是很详细,下面是我实践总结出的正确的姿势:

最简单的方法是在你的项目/build目录下新建license.text文件,然后正常打包就可以了,无需其他设置。

注意,这里有一个中文乱码的问题,如果只考虑windows系统的话,编码可以选择ANSI,就不会乱码了。

但是ANSI在macOS下是不行的,所以更推荐的方案是使用 “带有BOM的UTF-8“,这样在windows,macOS下都可以使用。

image-20210122100244716

/buildelectron-builder默认资源目录,也可以修改,比如我这里是public目录:

代码语言:javascript复制
directories: {
  buildResources: "./public",
}

这样license.text文件就放在/public目录下即可。

如果没有多语言需求的话,这样就结束了,windows,macOS通用。

# 3

如果要支持多语言,只需修改license文件名添加对应的语言代码后缀,如:license_xxx.txt。关于语言代码官网给出的参考是language code to name[3],这里有个错误,中文对应的是zh,实际上简体中文应该写zh_CN

下面在我的/public目录下新建license_en.txtlicense_zh_CN.txt

为了测试多语言,我增加一个语言选择配置displayLanguageSelector(正常不建议使用这个配置,默认跟随系统语言):

代码语言:javascript复制
nsis: {
  oneClick: false,
  allowToChangeInstallationDirectory: true,
  
  displayLanguageSelector: true,
},

打包后安装,选择语言:

英文:

中文:

macOS:

参考资料

[1]

nsis: https://www.electron.build/configuration/nsis

[2]

dmg: https://www.electron.build/configuration/dmg

[3]

language code to name: https://github.com/meikidd/iso-639-1/blob/master/src/data.js

0 人点赞