如何在 select 语言对话框中设置默认语言?

How to set a default language on select language dialog?

我的 .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"

我阅读了手册,上面写着:

first language is the default language

如果我不使用 English 可以正常工作,如果我使用 English 则始终是默认语言:

如何更改默认语言?

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

  1. 启动时,NSIS 尝试使用 UI 语言 the user is using 的语言 ID 初始化 $Language。这发生在调用 .onInit 回调之前。
  2. 如果您正在使用 MUI 并设置了 MUI_LANGDLL_REGISTRY_* 定义并且它们在注册表中找到,那么 $Language 将在 [=14] 中强制使用该语言=]宏。如果您不想要此行为,请删除定义或定义 MUI_LANGDLL_ALWAYSSHOW 让用户覆盖它。
  3. 如果 LangDLL 插件认为存在代码页问题(在 ANSI 安装程序中),它会过滤掉一些语言。这可以通过定义 MUI_LANGDLL_ALLLANGUAGES.
  4. 来关闭

如果您想忽略第 1 步,那么您必须自己强制使用该语言:

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