NSIS 随着用户切换安装语言,程序跟随切换到对应的安装语言

本文介绍如何在NSIS安装程序中根据用户选择的语言自动设置程序语言,通过读取$Language变量并将配置写入INI文件或注册表。同时,提供了Qt读取和写入注册表的示例代码。

当用户在安装程序时选择了相应的语言后,我们希望我们的程序中的相应的语言选项也变相同的设置,这样避免用户在进入程序后再一次选择语言设置。
  在此我们用到了$Language变量,读取该变量的值,并根据此值将相应的配置写到ini或者注册表中。
  我们将在onInstSuccess中实现该功能.
 1. 代码如下:

Function .onInstSuccess

IntCmp $Language 2052 SetLangChinese
IntCmp $Language 1033 SetLangEnglish

SetLangChinese:
WriteINIStr $INSTDIRconfig.ini "System" "Language" "Chinese"
Goto SetLangEnd

SetLangEnglish:
WriteINIStr $INSTDIRconfig.ini "System" "Language" "English"

SetLangEnd:


FunctionEnd

 

写入注册表例子

WriteRegStr   HKLM "SOFTWARE\Classes\Installer\Dependencies\{ce085a78-074e-4823-8dc1-8a721b94b76d}" "language" "english"

具体的可以查各个语言对应的码

2 .Qt 读取和写入注册表:


#include <QSettings>
 
        #define RUN_KEY "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\windows\\CurrentVersion\\run"
        QSettings *pReg = new QSettings(RUN_KEY, QSettings::NativeFormat);
        
    pReg->setValue("key", "value"); //设置注册表值
 
        QVariant v = pReg->value("key"); //读取注册表值
        v.toString();

      delete reg;

3. 具体查看 NSISI基本语法---注册表的操作

### 实现NSIS安装包中的多语言选择 为了使NSIS安装包支持多种语言的选择,可以采用内置的语言切换机制。这不仅简化了开发过程,还提高了用户体验。 #### 准备工作 首先,需准备不同语言的字符串文件。这些文件包含了所有界面文字对应的翻译版本。每种语言对应一个独立的`.nsh`文件[^1]。例如: - `lang\chinese.nsh` - `lang\english.nsh` 每个`.nsh`文件内部定义了一系列宏命令用于替换默认显示的文字内容。通过这种方式,可以根据用户的偏好加载相应的资源文件来改变整个安装向导的语言环境。 #### 修改主脚本 接着,在主脚本中引入必要的指令以启用多国语支持特性。具体来说就是加入如下几行代码[^2]: ```nsis !include "MUI2.nsh" ... LanguageSelectionPage ; 添加此页让用户挑选所需使用的语言种类 Section "" ... SectionEnd ``` 这里使用到了Modern User Interface (MUI) 库提供的高级组件——`LanguageSelectionPage`,它会自动展示给定范围内的可用选项供访客点击选取。 #### 配置语言列表 为了让上述页面正常运作,还需指定可选的目标方言集合。一般做法是在项目根目录创建名为`Languages`的子文件夹,并在里面放置各个目标市场的本地化配置项。同时更新顶层描述符告知编译器哪些区域设置应该参与进来: ```nsis ; 定义支持的语言集 LoadLanguageFile "${NSISDIR}\Contrib\Language files\Chinese Simplified.lang" LoadLanguageFile "${NSISDIR}\Contrib\Language files\English.lang" ; 设置初始缺省值 LangString ^WelcomeTitle ${LANG_ENGLISH} "Installer Language Selection" LangString ^WelcomeText ${LANG_ENGLISH} "Please choose the language of installation." LangString ^WelcomeTitle ${LANG_CHINESE_SIMPLIFIED} "安装程序语言选择" LangString ^WelcomeText ${LANG_CHINESE_SIMPLIFIED} "请选择您希望使用的安装语言。" ``` 以上片段展示了如何针对两种常用场景定制欢迎信息。实际应用时可根据需求增删条目并调整相应表述方式。 #### 测试验证 完成前述步骤之后即可着手构建最终产物并对结果加以检验。确保各环节衔接顺畅无误后发布正式版制品。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值