上一页 | 目录 | 下一页

4.10 多语言

截至第 2 版 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 设置。

上一页 | 目录 | 下一页