Как изменить текст папки назначения каталога с помощью NSIS? - PullRequest
0 голосов
/ 03 января 2019

Я изменил текст папки назначения каталога, используя приведенный ниже фрагмент кода в файле English.nsh

!define MUI_TEXT_DIRECTORY_TITLE "Destination Folder"
!define MUI_TEXT_DIRECTORY_SUBTITLE "Click Install to install to the default folder or click Browse to choose another"

При использовании приведенного выше кода дважды отображается «Папка назначения».

примерно так, как показано ниже

enter image description here

Но мне нужно изменить выделенный текст, который отображается как «Папка назначения», на «Установить EMR на:»

Здесь заголовок должен быть таким, какой он есть («Папка назначения»)

Как установить выделенный текст (Папка назначения) для другого текста («Установить EMR в:»)?

Я перешел по ссылке ниже, чтобы исправить проблему, но даже с этим я получаю текст «Папка назначения» два раза.

Изменить текст страницы папки установки в NSIS

Ниже мой полный код:

CustomEngilish.nsh

    !define MUI_TEXT_DIRECTORY_TITLE "Destination Folder"
    !define MUI_TEXT_DIRECTORY_SUBTITLE "Click Install to install to the default folder or click Browse to choose another"
    !define MUI_DIRECTORYPAGE_TEXT_TOP "Install EMR to:"    
    !define MUI_DIRECTORYPAGE_TEXT_DESTINATION "Install EMR to:"

!insertmacro MUI_LANGUAGE "English"

Mysetup.nsi

!define MUI_PAGE_CUSTOMFUNCTION_SHOW MyDirectoryShowCallback  
!insertmacro MUI_PAGE_DIRECTORY
!include "CustomEnglish.nsh"

    Function MyDirectoryShowCallback
    StrCpy $PageId 3
    SendMessage $mui.DirectoryPage.Text ${WM_SETTEXT} 0 "STR:$(MUI_TEXT_DIRECTORY_TITLE)"
    SendMessage $mui.DirectoryPage.Text ${WM_SETTEXT} 0 "STR:$(MUI_TEXT_DIRECTORY_SUBTITLE)"
    SendMessage $mui.DirectoryPage.Text ${WM_SETTEXT} 0 "STR:$(MUI_DIRECTORYPAGE_TEXT_TOP)"
    SendMessage $mui.DirectoryPage.Text ${WM_SETTEXT} 0 "STR:$(MUI_DIRECTORYPAGE_TEXT_DESTINATION)"

    FunctionEnd

1 Ответ

0 голосов
/ 04 января 2019

MUI_TEXT_DIRECTORY_TITLE - это текст в верхнем заголовке, вам нужно MUI_DIRECTORYPAGE_TEXT_TOP, и он должен указывать на пользовательскую языковую строку при использовании нескольких языков:

!include "MUI2.nsh"
!insertmacro MUI_PAGE_WELCOME
!define MUI_DIRECTORYPAGE_TEXT_TOP $(mydirtoptext)
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES

; CustomSwedish.nsh:
!insertmacro MUI_LANGUAGE "Swedish"
LangString mydirtoptext ${LANG_SWEDISH} "Swedish bork bork"

; CustomEnglish.nsh:
!insertmacro MUI_LANGUAGE "English"
LangString mydirtoptext ${LANG_ENGLISH} "English blah blah"

На скриншоте верхняя область серого цвета, но обычно она должна быть белого цвета, что часто указывает на проблему с порядком макросов MUI_PAGE и MUI_LANGUAGE. Все языки должны идти после страниц.

...