需求

应用是多语言的,由ini文件控制具体是哪一类语言。安装程序也是多语言的,在选定安装包语言之后需要同步更新ini文件里面的语言值

ini文件如下:

[General]

language=en

Inno Setup多语言选择,可添加多个

其实很简单:

[Languages]
Name: "chinesesimp"; MessagesFile: "compiler:Default.isl"
Name: "english"; MessagesFile: "compiler:Languages\English.isl"
Name: "french"; MessagesFile: "compiler:Languages\French.isl"
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl"
Name: "japanese"; MessagesFile: "compiler:Languages\Japanese.isl"
Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"

把所需要语言加上即可。

这里要特别说明是

1、选择框的语言是获取的系统语言,如果装的是英文系统,默认的就是English

2、要用原版Unicode 版本 http://jrsoftware.org/isdl.php

  起初用的是就只能显示中英文,或者压根就弹不出框

现在重点说一下,修改ini 文件的value值
其实很简单,查询Inno Setup help 帮助文档你也会找到

Prototype:

function SetIniBool(const Section, Key: String; const Value: Boolean; const Filename: String): Boolean;

Description:

Writes a Boolean to an INI file.

Prototype:

function SetIniInt(const Section, Key: String; const Value: Longint; const Filename: String): Boolean;

Description:

Writes a Longint to an INI file.

Prototype:

function SetIniString(const Section, Key, Value, Filename: String): Boolean;

Description:

Writes a string to an INI file.

我需要是

SetIniString(const Section, Key, Value, Filename: String): Boolean;

// 页面切换事件

procedure CurPageChanged(CurPageID: Integer);
var winVer: TWindowsVersion;ResultCode: Integer;  osversion: string;languageName: string;res: bool;beginif CurPageID = wpFinished thenbeginlanguageName := ActiveLanguage(); // 获取用户选择的语言if'chinesesimp'=languageName then beginSetIniString('General','language','cn',ExpandConstant('{app}/xxxx.ini'));end else if 'english'=languageName thenbeginSetIniString('General','language','us',ExpandConstant('{app}/xxxx.ini'));end else if 'french'=languageName then   beginSetIniString('General','language','fr',ExpandConstant('{app}/xxxx.ini'));end else if 'german'=languageName then  beginSetIniString('General','language','de',ExpandConstant('{app}/xxxx.ini'));end else if 'italian'=languageName then    beginSetIniString('General','language','it',ExpandConstant('{app}/xxxx.ini'));end else if 'japanese'=languageName thenbeginSetIniString('General','language','jp',ExpandConstant('{app}/xxxx.ini'));     end else if 'spanish'=languageName then   beginSetIniString('General','language','es',ExpandConstant('{app}/xxxx.ini'));end;end;end;

至此,ini修改已经完成了。

Inno Setup 中文帮助文档
https://download.csdn.net/download/qq_36190858/10836946

Inno Setup 系列之操作ini文件相关推荐

  1. Inno Setup 系列之卸载删除文件

    需求 Inno Setup 原则上是安装哪些文件就卸载那些文件. 但实际上往往会在应用的使用过程中,会生成一些日志文件或者在更新程序进行文件操作的时候,产生的文件,在卸载的时候,不能删掉,直接保留在原 ...

  2. VC中操作INI文件的API

    VC中操作INI文件的API (1)操作系统配置文件Win.ini的函数: 函数名 功能 GetProfileSection 读取win.ini中指定节lpAppName中所有键名及其值.lpRetu ...

  3. VC操作INI文件 ,INI文件操作总结,如何操作INI文件,INI文件使用方法小结

    INI文件简介 在我们写程序时,总有一些配置信息需要保存下来,以便在下一次启动程序完成初始化,这实际上是一种类持久化.将一些信息写入INI文件(initialization file)中,可完成简单的 ...

  4. MFC操作ini文件方法

    转载:https://blog.csdn.net/rayborn1105/article/details/8192142 在我们的程序设计中经常需要对一些参数进行配置,配置好后还要在下一次启动仍然有效 ...

  5. 在Windows mobile 5.0下操作INI文件

    对于Windows mobile 5.0来说没有像window那样操作INI文件的API,所以只能自已来实现.其实操作INI文件就是操作普通的文本文件,只是要麻烦一些.以下是我实现的一些常用的操作的函 ...

  6. 轻松实现一个操作ini文件的类

    作者:lixiaosan(CSDN) 前言: 相信很多朋友在编写自己的程序中,都需要把一些数据先期导入到程序中进行初始化.那么这个时候,比较好的做法就是把你所有的数据写入一个ini文件,然后在程序去读 ...

  7. C/C++ 操作ini文件(SinpleIni 跨平台库)

    最近在学习时,发现自己还不会操作ini文件,想着以前工作时接触到的项目或多或少都要用到ini文件去保存初始化程序的数据:所以赶紧去网上搜索以下C/C++操作ini文件都有些什么库可以玩玩:搜索到有: ...

  8. vc中操作INI文件函数

    一 VC中操作INI文件函数 函数名 功能 备注 GetPrivateProfileInt                       读取INI文件指定块中的键名对应的整数值.   GetPriva ...

  9. QSettings配置读写-win注册表操作-ini文件读写

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QSettings配置读写-win注册表操作-ini文件读写     本文地址:http:// ...

最新文章

  1. ibm xml专区中对XPATH的一个好文
  2. Java微信公众号开发面试题
  3. JAVA虚拟机之垃圾收集与内存分配策略
  4. dubbo源码解析(四十一)集群——Mock
  5. 2018第二届河北省大学生程序设计竞赛题解
  6. 用CLIP做多个视频任务!上交牛津提出基于Prompt将CLIP拓展到多个视频任务,在open-set场景中效果极佳!...
  7. [ExtJS 6]Grid分页工具栏无效问题解决
  8. 这样讲闭包,你终生难忘
  9. VCenter 5.5 数据库过大造成的问题和解决方法
  10. 网络-无线中继(HG255d挂载8187)
  11. 汽车电子测试系统搭建
  12. 关于python中.item()的用法
  13. 阿里云和腾讯云对比哪家好?云服务器哪个速度快?各有什么优势?
  14. LSL-- Flow Control
  15. Linux中的UID与GID
  16. 国内做HIS(医院信息化软件)常见的厂商与产品的比较
  17. [C语言] 联想手机szb格式的制作工具,部分开源代码(仅提供程序思想);
  18. 成功者的秘密,花钱的诀窍所在!
  19. 分支-04. 出租车计价(15)
  20. python三维绘图工具包_Matplotlib Toolkits:三维绘图工具包matplotlib.mplot3d

热门文章

  1. rapidjson查询操作基本用法
  2. Google Earth Engine(gee)中的Image
  3. 金蝶云星空实施相关问题
  4. Nginx反向代理之location
  5. JSONCPP使用总结
  6. vue + vue-json-excel 制作导出excel
  7. 浅谈如何测试经纬度?
  8. Svn版本管理-学习篇
  9. Java支付功能实现
  10. [TED]笔记-依照圣经指导原则生活的一年