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

时间:2015-08-13 15:14:08

标签: 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"

我阅读了手册,并说:

  

第一语言是默认语言

如果我没有使用English正常工作,如果我使用的English始终是默认语言:

enter image description here

我如何更改默认语言?

1 个答案:

答案 0 :(得分:2)

选择语言选择器对话框的默认语言需要3个步骤。

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

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

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