You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过CPack、CMake和NSIS启用安装程序语言选择功能?

在CPack+NSIS安装程序中添加语言选择对话框

由于CPack的NSIS生成器没有直接启用语言选择的配置项,我们需要手动将NSIS Modern UI的MUI_LANGDLL_DISPLAY宏注入到生成的安装脚本的.onInit函数中,具体步骤如下:

1. 配置安装程序支持的语言

首先在CMakeLists.txt中指定安装程序需要支持的语言列表(按需调整):

set(CPACK_NSIS_PACKAGE_LANGUAGES "en-US,zh-CN,ja-JP")

2. 注入语言选择宏

有两种简洁的方式实现:

方式一:直接通过CMake变量插入代码

在CMakeLists.txt中添加以下配置,将宏代码直接追加到NSIS的.onInit函数中:

set(CPACK_NSIS_EXTRA_INIT_COMMANDS "!insertmacro MUI_LANGDLL_DISPLAY")

方式二:通过自定义NSIS脚本文件(适合复杂逻辑)

如果需要自定义语言选择的细节(比如设置默认语言、添加选择后的回调),可以创建一个单独的NSIS脚本文件(例如LangDllInit.nsh),内容示例:

# 设置默认语言为英文,用户可选择其他配置的语言
!insertmacro MUI_LANGDLL_DISPLAY "en-US" "" "1"

然后在CMakeLists.txt中指定该脚本作为初始化前的注入内容:

set(CPACK_NSIS_PRE_INIT_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/LangDllInit.nsh")

3. 生成安装程序

完成上述配置后,正常执行cpack命令生成安装程序,启动时就会弹出语言选择对话框。

注:CPack生成的NSIS脚本默认已经引入了Modern UI(!include "MUI2.nsh"),因此无需额外添加宏依赖。

内容的提问来源于stack exchange,提问作者Taiguara Tupinambás

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 03:16:19