Nsis 如何在“选择语言”对话框中设置默认语言?

Nsis 如何在“选择语言”对话框中设置默认语言?,nsis,multilingual,Nsis,Multilingual,我的.nis如下: ## Languages (first language is the default language) !insertmacro MUI_LANGUAGE "Portuguese" !insertmacro MUI_LANGUAGE "English" !insertmacro MUI_LANGUAGE "French" !insertmacro MUI_LANGUAGE "Spanish" !insertmacro MUI_LANGUAGE "Dutch" 我读了手册

我的
.nis
如下:

## Languages (first language is the default language)
!insertmacro MUI_LANGUAGE "Portuguese"
!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "French"
!insertmacro MUI_LANGUAGE "Spanish"
!insertmacro MUI_LANGUAGE "Dutch"
我读了手册,上面写着:

第一语言是默认语言

如果我没有正确使用
英语
,如果我使用
英语
,这始终是默认语言:


如何更改默认语言?

为“语言选择器”对话框选择默认语言涉及3个步骤

  • 启动时,NSIS尝试使用UI语言的语言id初始化
    $Language
    。这发生在调用
    .onInit
    回调之前
  • 如果您正在使用MUI,并且已设置MUI_LANGDLL_REGISTRY_*定义,并且在注册表中可以找到它们,则在
    MUI_LANGDLL_DISPLAY
    宏中,
    $Language
    将强制使用该语言。如果不希望此行为,请删除定义,或定义
    MUI\u LANGDLL\u ALWAYSSHOW
    以让用户覆盖它
  • 如果LangDLL插件认为存在代码页问题(在ANSI安装程序中),它将过滤掉一些语言。这可以通过定义
    MUI\u LANGDLL\u ALLLANGUAGES
    来关闭
  • 如果要忽略步骤1,则必须自己强制使用该语言:

    Function .onInit
        StrCpy $Language ${LANG_FRENCH}
        !insertmacro MUI_LANGDLL_DISPLAY
    FunctionEnd
    

    我认为默认语言是您的操作系统GUI语言(如果可用的话)…如果您在中执行了步骤1或其他操作,则仅为了完成说明。onInit未能将$language设置为有效的语言id,则加载到脚本中的第一种语言将成为实际使用的语言。