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

如何使用NSIS根据语言或区域设置在许可协议屏幕中显示最终用户许可协议(“EULA”),nsis,Nsis,如何根据语言或区域设置在许可协议屏幕中显示最终用户许可协议(“EULA”) 下面是在许可协议屏幕中显示许可协议的代码行。但它只是用英语播放 !insertmacro MUI_PAGE_LICENSE "C:\Program Files (x86)\NSIS\Docs\Modern UI\license.rtf" 我将所有其他语言license.rtf文件放在一个公用文件夹中。然后当我试图写作的时候 ${If} $Language == 1033 !insertmacro MUI_PAGE_

如何根据语言或区域设置在许可协议屏幕中显示最终用户许可协议(“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}

它显示编译错误“error:command StrCmp在节或函数之外无效”

MUI文档告诉您如何执行:

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

NSIS用户手册上说:

LicenseLangString license${LANG_ENGLISH}license ENGLISH.txt

LicenseLangString license${LANG_FRENCH}license FRENCH.txt

LicenseLangString license${LANG_derman}license-derman.txt

LicenseData$(许可证)

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

!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"