如何使用NSIS在基于语言或区域设置的许可协议屏幕中显示最终用户许可协议(“ EULA”)

时间:2019-02-01 10:45:56

标签: nsis

如何根据语言或区域在许可协议屏幕中显示最终用户许可协议(“ EULA”)。

下面是在“许可协议”屏幕中显示许可协议的代码行。但这只是英文显示。

!insertmacro MUI_PAGE_LICENSE "C:\Program Files (x86)\NSIS\Docs\Modern UI\license.rtf"

我将所有其他语言的license.rtf文件放在一个公用文件夹中。然后当我试图写

${If} $Language == 1033
  !insertmacro MUI_PAGE_LICENSE "C:\Program Files (x86)\NSIS\Docs\Modern UI\license.rtf"
  ${EndIf}

它显示了编译错误“错误:在部分或函数外部,命令StrCmp无效”

1 个答案:

答案 0 :(得分:0)

MUI文档告诉您该怎么做:

  

对于多种语言的许可证文本,可以使用LicenseLangString。有关多种语言安装程序的更多信息,请参考《 NSIS用户手册》。

NSIS用户手册说:

  

LicenseLangString license ${LANG_ENGLISH} license-english.txt

     

LicenseLangString license ${LANG_FRENCH} license-french.txt

     

LicenseLangString license ${LANG_GERMAN} license-german.txt

     

LicenseData $(license)

对于MUI,您只需将MUI许可页面指向您的LicenseLangString:

!include MUI2.nsh
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE $(translatedlicensefile)
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH

!insertmacro MUI_LANGUAGE English
LicenseLangString translatedlicensefile ${LANG_ENGLISH} "lic-eng.txt"
!insertmacro MUI_LANGUAGE Swedish
LicenseLangString translatedlicensefile ${LANG_SWEDISH} "lic-swe.txt"