4.10 多语言
优质
小牛编辑
151浏览
2023-12-01
作为 2.x 版本的 NSIS 已经完全支持了多语言。一个安装程序的界面可以支持多语言。
对所有的语言使用 LoadLanguageFile 来载入默认的界面文本和语言属性。
默认的界面文本可以很容易的使用指令比如 ComponentText 等来更改。
你也可以在你自己的字串里使用标准语言字串的内容 (例如,$(^Name) 包含了 Name 指令设置的安装程序名称)。所有标准语言字串的名称作为注释列表于语言文件字串的上方。语言文件在 Contrib\Language Files。
要建立你自己的语言字串,请使用 LangString。
使用多语言的一个安装程序例子,请看 languages.nsi。
4.10.1 语言的选择
当安装程序启动时按如下步骤选择界面语言:
- 获取用户的默认 Windows 语言
- 查找一个最佳匹配的语言
- 如果没有最佳匹配的,则查找第一个匹配的语言
- 如果没有匹配的,使用脚本里定义的第一个语言 (确认你的第一个语言是一个通用的语言,比如英语)
- 如果语言变量 $LANGUAGE 在 .onInit 被更改,NSIS 将重新进行步骤 2 到 4。
4.10.2 LangDLL 插件
LangDLL 插件允许用户为安装程序选择语言。只需要把语言 ID (${LANG_langfile}) 和它在所有语言中的名称压入堆栈,然后再压入语言的数量,窗口标题,要提示用户选择语言的文本,调用插件的 LangDialog 函数,弹出返回值到 $LANGUAGE,然后你便可以继续。如果用户点击了取消按钮,则返回值就是 cancel。
使用多语言的一个安装程序例子,请看 languages.nsi。
4.10.3 RTL 语言
RTL 语言是从右至左书写的语言 (如 Arabic和 Hebrew)。NSIS 完整支持 RTL 语言。在语言文件里有一个地方来指定该语言是否 RTL 语言。要在运行时检测当前是否 RTL 语言只需要检测 $(^RTL) 语言字串的值。如果语言是 RTL 则为 1,否则为 0。这在使用插件来创建对话时非常有用,他们通常都有 RTL 设置。