转自:http://www.dreams8.com/thread-9095-1-1.html
一、定义需要安装的语言
; 安装界面包含的语言设置
!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "SimpChinese"
二、定义不同语言显示的文字信息
;判断文件夹是否存在
LangString DIRECTORY_MESSAGE ${LANG_ENGLISH} " Would you like to use it anyway?"
LangString DIRECTORY_MESSAGE ${LANG_SIMPCHINESE} "你是否使用此文件夹?"
三、调用多语言的变量方法
;判断安装文件是否存在
Function DirectoryLeave
IfFileExists "$INSTDIR\*.*" 0 +3
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION $(DIRECTORY_MESSAGE) IDOK +2
Abort
FunctionEnd
(如果是使用MUI的安装程序,只需要重复使用!insertmacro MUI_LANGUAGE定义多种语言就可以了。例如:
!insertmacro MUI_LANGUAGE "SimpChinese"
!insertmacro MUI_LANGUAGE "English"
这样做了之后,安装程序会根据运行时操作系统的语言来选择显示语言。注意,第一个语言是默认语言,也就是操作系统语言与这里定义的所有语言都不符的时候显示的语言。
对于各种字符串,因为也要多语言,所以必须用LangString来定义。例如:
LangString LANG_PRODUCT_NAME ${LANG_SIMPCHINESE} "我的程序"
LangString LANG_PRODUCT_NAME ${LANG_ENGLISH} "My Program"
LoadString的第二个参数最重要,它代表语言种类,例如${LANG_SIMPCHINESE}就是中文,命名规则应该算比较明显。
使用LangString定义的变量时,需要这样做:$(LANG_PRODUCT_NAME)。注意这里用的是圆括号,不是通常的花括号。
如果没有使用MUI或其他什么NSIS库,要实现多语言就要直接调用LoadLanguageFile,那个!insertmacro MUI_LANGUAGE本质上就是调用了这个NSIS函数。)