Inno Setup中多语言时,使用占位符填充

如在:
[CustomMessages]
CreateDesktopIcon=Create a Desktop icon
NameAndVersion=%1 version %2

  普通的获取CustomMessages中字段的信息,只需使用CustomMessage方法即可

var
  S: String;
begin
  S := CustomMessage(‘CreateDesktopIcon‘);
end;

S 的结果是: Create a Desktop icon

但NameAndVersion字段的内容不是固定,而是希望能动态绑定的,那么就需要使用占位符%1和%2了,而动态绑定时,还需要使用FmtMessage方法:

var
  S: String;
begin
  S := FmtMessage(CustomMessage(‘NameAndVersion‘), [‘My Program‘, ‘1.0‘]);
end;

S 的结果是: My Program version 1.0

分别将My Program和1.0绑定到%1和%2

特别注意:FmtMessage()的第二个参数是数组类型,所以即使只有一个参数,也得用数组的形式[element1, element2] :

S := FmtMessage(SetupMessage(msgNotOnThisPlatform), [‘Windows 2000‘]);


原文地址:https://www.cnblogs.com/tommy-huang/p/8552433.html

时间: 2024-10-06 14:45:12

Inno Setup中多语言时,使用占位符填充的相关文章

Inno setup中定制安装路径

原文:Inno setup中定制安装路径 我的程序修改了安装界面,所以我的界面中提供了更改安装路径的方法. 用户修改后的路径会被传回inno setup脚本,脚本中需要做的事情如下: 1,写一个函数,来返回新的安装路径,如: function MyDestDir(SubDir:String):String; begin if SubDir = '' then Result := RootDestFolder else Result := RootDestFolder + '\'+ SubDir;

extjs box img src用IE打开时展示占位符

1 var imageStyleResult = new Ext.form.FieldSet({ 2 title:'预览', 3 height:100, 4 items:[ 5 { 6 id:'showFraction', 7 xtype: 'box', //或者xtype: 'component', 8 autoEl: { 9 tag: 'img' 10 } 11 } 12 ] 13 14 }); Q1:在IE打开时会展示占位符? A1:将box img src给个默认空白图片. Q2:首次打

PHP中函数sprintf .vsprintf (占位符)

sprintf()格式化字符串写入一个变量中. vsprintf()格式化字符串些写入变量中. <?php $num1 = 123; $num2 = 456; $txt = vsprintf("%f%f",array($num1,$num2)); echo $txt; ?> 输出: 123.000000456.000000 语法 sprintf(format,arg1,arg2,arg++) 参数 描述 format 必需.转换格式. arg1 必需.规定插到 format

C语言 - printf的占位符(%) 异常

printf的占位符(%) 异常 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26719135 C语言中, 使用%代表占位符的意思, 如%d代表int类型, %f代表float类型. 须要注意的是, 占位符须要和使用參数匹配, 否则会出现越界或截断的情况; 如%f, 匹配5, 会导致使用8个字节去匹配4个字节, 会产生越界, 输出0; %d, 匹配5.01, 会导致使用4个字节去匹配8个字节, 会产生截断, 输出一个大数;

C语言结构体声明中冒号的使用(占位符) &amp; C结构体的乱序初始化

有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位.例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可.为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为"位域"或"位段".所谓"位域"是把一个字节中的二进位划分为几 个不同的区域,并说明每个区域的位数.每个域有一个域名,允许在程序中按域名进行操作.这样就可以把几个不同的对象用一个字节的二进制位域来表示.一.位 域的定义和位域变量的说明位域定义与

Inno Setup安装、卸载时判断是否程序正在运行

var ErrorCode: Integer; IsRunning: Integer; // 安装时判断客户端是否正在运行 function InitializeSetup(): Boolean; begin Result :=true; //安装程序继续 IsRunning:=FindWindowByWindowName('E家人客户端'); while IsRunning<>0 do begin if Msgbox('安装程序检测到客户端正在运行.' #13#13 '您必须先关闭它然后单击

Inno Setup中做补丁通过注册表获取原程序安装目录

今天找VM补丁看到的,是个innosetup封装的,所以习惯性的喜欢去看人家的iss文件是怎么编写的. DefaultDirName={reg:HKLM\SOFTWARE\VMware%2c%20Inc%2E\VMware Workstation,InstallPath} 看到上面这个代码很奇怪,DefaultDirName是默认安装路径,他的路径是以reg开始的,大意是注册表的路径,后面加了个InstallPath,这样就搞定了,真简单,这个我以前是不知道,不过以后就可以用到了,哈哈. 这个包

RunTime运行时在iOS中的应用之UITextField占位符placeholder

RunTime运行时机制 runtime是一套比较底层的纯C语言API, 属于1个C语言库, 包含了很多底层的C语言API. 在我们平时编写的OC代码中, 程序运行过程时, 其实最终都是转成了runtime的C语言代码, runtime算是OC的幕后工作者,下面介绍一下runtime的一个应用用于遍历出UITextField的有那些隐藏属性,查出后再通过KVC来进行修改这个属性 //第一次用到这类的时候就会调用的只会调用一次方法 ,这个方法查的时候用一下 ,以后不用 + (void)initia

关于 Spring 中使用 context:property-placeholder 属性占位符设置配置文件

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 该配置文件中以键值存储,键在 spring 配置中可以用 ${} 来引用,而值在配置文件中来配置.具体键变量的生命周期,可能是当前上下文,需求证.