当前位置: 首页 > 文档资料 > NSIS 用户手册 >

4.10 多语言

优质
小牛编辑
151浏览
2023-12-01

作为 2.x 版本的 NSIS 已经完全支持了多语言。一个安装程序的界面可以支持多语言。

对所有的语言使用 LoadLanguageFile 来载入默认的界面文本和语言属性。

默认的界面文本可以很容易的使用指令比如 ComponentText 等来更改。

你也可以在你自己的字串里使用标准语言字串的内容 (例如,$(^Name) 包含了 Name 指令设置的安装程序名称)。所有标准语言字串的名称作为注释列表于语言文件字串的上方。语言文件在 Contrib\Language Files

要建立你自己的语言字串,请使用 LangString

使用多语言的一个安装程序例子,请看 languages.nsi

4.10.1 语言的选择

当安装程序启动时按如下步骤选择界面语言:

  1. 获取用户的默认 Windows 语言
  2. 查找一个最佳匹配的语言
  3. 如果没有最佳匹配的,则查找第一个匹配的语言
  4. 如果没有匹配的,使用脚本里定义的第一个语言 (确认你的第一个语言是一个通用的语言,比如英语)
  5. 如果语言变量 $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 设置。