Как отобразить лицензионное соглашение с конечным пользователем («EULA») на экране лицензионного соглашения в зависимости от языка или локали, используя NSIS - PullRequest
0 голосов
/ 01 февраля 2019

Как отобразить лицензионное соглашение с конечным пользователем («EULA») на экране лицензионного соглашения в зависимости от языка или локали.

Ниже приведена строка кода для отображения лицензионного соглашения в лицензионном соглашении.экран.Но он отображается только на английском языке.

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

Я поместил все файлы language.rtf на других языках в общую папку.И затем, когда я пытаюсь написать

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

Это показывает ошибку компиляции "Ошибка: команда StrCmp недопустима вне раздела или функции"

1 Ответ

0 голосов
/ 01 февраля 2019

Документация 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"
...