Пользовательские тексты для удаления
Поэтому я сделал установщик патча для определенной игры. Он работает хорошо, несмотря на глупые дизайнерские решения NSIS. Я использую NSIS 3.03 с MUI2.
Из-за характера патча (это не отдельное приложение, а патч, примененный к уже существующей программе), мне пришлось использовать почти все пользовательские тексты для установщика (например, MUI_WELCOMEPAGE_TITLE, MUI_WELCOMEPAGE_TEXT и т. Д.). Грамматика моего родного языка не помогла.
Но тогда я по глупости хотел включить деинсталлятор. Хотя это работает, похоже, что для него почти нет пользовательских текстов. Работают только MUI_UNCONFIRMPAGE_TEXT_TOP и MUI_UNCONFIRMPAGE_TEXT_LOCATION. Другие тексты по умолчанию для деинсталлятора выглядят как дерьмо из-за вышеупомянутых проблем (патч вместо реального приложения, грамматика).
Например, на странице приветствия программы удаления есть текст, похожий на "Перед началом удаления убедитесь, что [NAME OF PATCH TO GAME] не запущено". Это должно быть что-то вроде "Перед началом удаления убедитесь, что [ИМЯ ИГРЫ, НЕ ИМЯ ПАТЧИКА] не запущено". Нет, там нет MUI_UNWELCOMEPAGE_TEXT или чего-то подобного.
Как изменить другие тексты в деинсталляторе? Этот вид упущения является глупым для 10-летнего создателя установщика в его третьей основной версии. WTF?
1 ответ
Из документации:
Параметры страницы применяются к одной странице и должны быть установлены перед вставкой макроса страницы. Те же самые настройки могут быть использованы для страниц установщика и деинсталлятора. Вы должны повторить настройку, если хотите применить ее к нескольким страницам.
!include MUI2.nsh
!define MUI_WELCOMEPAGE_TEXT "Installer blah blah"
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!define MUI_WELCOMEPAGE_TEXT "Uninstaller blah blah"
!insertmacro MUI_UNPAGE_WELCOME
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"
Section
SetOutPath "$InstDir"
WriteUninstaller "$InstDir\Un.exe"
ExecShell "" "$InstDir\Un.exe"
SectionEnd
Section Uninstall
Delete "$InstDir\Un.exe"
RMDir "$InstDir"
SectionEnd