【问题标题】:How to change the Directory Destination folder text using NSIS?如何使用 NSIS 更改目录目标文件夹文本?
【发布时间】:2021-01-15 23:20:06
【问题描述】:

我在 English.nsh 文件中使用下面的代码 sn-p 自定义了目录目标文件夹文本

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

但我需要将显示为“目标文件夹”的突出显示文本更改为“将 EMR 安装到:”

这里的标题应该是它的显示方式(“目标文件夹”)

如何将突出显示的文本(目标文件夹)设置为不同的文本(“将 EMR 安装到:”)?

我按照下面的链接解决了这个问题,但即便如此,我也得到了两次“目标文件夹”文本。

Change the text of install folder page in NSIS

以下是我的完整代码:

CustomEnglish.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

【问题讨论】:

  • 您能显示更多代码吗?你什么时候定义!insertmacro MUI_PAGE_DIRECTORY
  • 你为什么不定义!define MUI_DIRECTORYPAGE_TEXT_TOP "Install EMR to:"
  • 如何包含CustomEnglish.nsh 文件?
  • 您是否收到编译器警告?

标签: nsis


【解决方案1】:

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 宏的顺序存在问题。所有语言都必须在页面之后。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    • 2022-01-09
    • 1970-01-01
    • 2014-08-11
    相关资源
    最近更新 更多