Nsis MultiLanguage 在语言选择文本框中显示语言 2 次

Nsis MultiLanguage display language 2 times in language selection textbox

我已经使用 NSIS 3.02.1 创建了我的 windows 应用程序安装程序。 在语言选择文本框中,语言显示2次。

EX.

English/English

Chinese (Simplified) / Hanyu (Jiantizi)

Russian / Russkij...

在我之前的设置中,它是使用 NSIS 2.46 构建的,这种语言设置看起来像:

English

Chinese

Russian...

我不想在我的语言选择设置中更改它。如何在 NSIS 3.02.1 中实现 NSIS 2.46 中定义的语言选择设置?

如果您仍然支持 Windows 95/98/ME,那么我建议您使用 NSIS v2.51,它具有 NSIS v3 的所有安全更新以及语言选择对话框中更好的语言支持。

如果您只支持 Windows 的较新版本,那么您应该将 Unicode True 添加到您的脚本中,这将在语言选择对话框中显示该语言的本地名称,并且支持所有语言所有系统。

如果您坚持使用 NSIS v3 创建 ANSI 安装程序,那么您可以使用未记录的 LANGFILE_LANGDLL_FMT 定义:

OutFile test.exe
RequestExecutionLevel user

!define LANGFILE_LANGDLL_FMT "%NATIVEASCIINAME%" ; %NATIVENAME% can also be used but it will display ? in some cases.

!include "MUI2.nsh"
!insertmacro MUI_RESERVEFILE_LANGDLL
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "Swedish"
!insertmacro MUI_LANGUAGE "Russian"
!insertmacro MUI_LANGUAGE "SimpChinese"

Function .onInit
    !insertmacro MUI_LANGDLL_DISPLAY
FunctionEnd

Section
SectionEnd