Inno Setup:在安装程序运行时更改安装程序语言

无线电龙

在我的安装程序中,我不想使用标准的“语言对话框”表单。

相反,我想向我的Inno Setup的“欢迎”页面添加一个组合框,以执行“语言对话框”所做的相同工作,以便能够:

  1. [Languages]在下拉列表中显示该部分中包含的所有语言因此,用户可以从此自定义组合框中选择一种语言。

  2. 将所选语言应用于整个设置。

我知道使用“常规方式”是不可能的,因为Inno Setup中没有可用的功能来执行此作业(!!!)。

因此,我向Inno Setup编译器添加了几个函数,并从脚本中调用了它们:

  • function GetAvailableLanguages: TStringList:可以返回所有有效语言的列表(完整数据),并且工作正常。

  • procedure SetChosenLanguage(const I:integer):它应该设置所选的语言,但现在只能“部分地”进行。所有语言都会更改,但所有“设置”页面中的标签均会更改。因此,按钮标题,消息框,对话框等都将语言设置为所选语言,但是所有标签仍为默认(OS)语言。

我试图解析使用RefreshInvalidateUpdate,发送消息没有任何成功。标签标题仍为原始默认语言。

以下链接是一个视频,显示了我的测试设置以及组合框和语言更改。我的默认(OS)语言是意大利语。该视频显示,即使我将语言更改为例如Deutsch,一切也会将语言更改为Deustch但标签会更改。

http://screencast.com/t/SDI5VN67LFL

如果有人已经解决了该问题,请帮助我!

马丁·普里克里(Martin Prikryl)

您将必须用TWizardForm代码将它们初始化为初始语言的方式一一重置所有标签

例如:

SelectTasksLabel.Caption := ExpandSetupMessage(msgSelectTasksLabel2);

查看TWizardForm.Create代码了解更多。

没有比这更简单的方法了。字符串被复制到Windows(Win32)控件,它们不会神奇地得知您已更改语言。您必须用新值覆盖字符串。

例如,“下一步”和“后退”按钮的标签会随着语言的更改而更新,因为当页面更改时,它们总是从TWizardForm.SetCurPage以下位置进行重置

procedure TWizardForm.SetCurPage(const NewPageID: Integer);
...
begin
  ...
  BackButton.Caption := SetupMessages[msgButtonBack];
  if CurPageID = wpReady then begin
    NextButton.Caption := SetupMessages[msgButtonInstall];
    CancelButton.Caption := SetupMessages[msgButtonCancel];
  end else if ((CurPageID = wpPreparing) and PrepareToInstallNeedsRestart) or (CurPageID = wpFinished) then begin
    NextButton.Caption := SetupMessages[msgButtonFinish];
    CancelButton.Caption := SetupMessages[msgButtonCancel];
  end else begin
    NextButton.Caption := SetupMessages[msgButtonNext];
    CancelButton.Caption := SetupMessages[msgButtonCancel];
  end;
  ...
end;

但是大多数其他标签是静态的,并且从不更新,因此它们保持原始语言。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Inno安装程序:在继续安装之前,请安装其他安装程序并运行它

来自分类Dev

Inno Setup .net Framework自动安装程序问题

来自分类Dev

在运行时更改WIX安装程序语言

来自分类Dev

如何从Inno Setup安装程序设置全局环境变量?

来自分类Dev

Inno Setup-用于多个安装程序的安装程序

来自分类Dev

Inno Setup-防止同时执行多次安装程序

来自分类Dev

Inno Setup:/ verysilent安装后如何自动运行程序?

来自分类Dev

Microsoft SmartScreen-使用Inno Setup安装程序已暂停?

来自分类Dev

使用Inno安装程序安装IIS

来自分类Dev

Inno Setup:在安装程序运行时更改安装程序语言

来自分类Dev

如何在Inno Setup中最小化安装程序?

来自分类Dev

Inno Setup-如何安装Windows Update脱机安装程序

来自分类Dev

Inno Setup在安装程序中指定日志名称

来自分类Dev

Inno Setup:仅在检查其组件后才运行外部驱动程序安装程序

来自分类Dev

在Inno Setup安装程序中更改安装程序类型,具体取决于它是“全新安装”还是“更新”?

来自分类Dev

Inno Setup:在卸载过程中从安装程序读取文件

来自分类Dev

测试Inno Setup安装程序是否以管理员权限运行

来自分类Dev

根据在线文件设置Inno Setup安装程序版本

来自分类Dev

使用Inno Setup为Python创建Windows安装程序

来自分类Dev

在运行时更改应用程序语言

来自分类Dev

Inno Setup-用于多个安装程序的安装程序

来自分类Dev

Inno Setup安装程序可以设置Windows安全组吗?

来自分类Dev

如何使用Inno Setup安装程序为运行的批处理文件提供输入?

来自分类Dev

如何解压缩Inno Setup安装程序

来自分类Dev

Inno Setup:仅在检查其组件后才运行外部驱动程序安装程序

来自分类Dev

Inno Setup:尝试卸载时检测安装程序是否正在运行

来自分类Dev

使用Inno Setup创建透明的安装程序?

来自分类Dev

Inno Setup - 避免显示子安装程序的文件名

来自分类Dev

使用 Inno Setup 安装程序安装 Windows shell 扩展 DLL

Related 相关文章

  1. 1

    Inno安装程序:在继续安装之前,请安装其他安装程序并运行它

  2. 2

    Inno Setup .net Framework自动安装程序问题

  3. 3

    在运行时更改WIX安装程序语言

  4. 4

    如何从Inno Setup安装程序设置全局环境变量?

  5. 5

    Inno Setup-用于多个安装程序的安装程序

  6. 6

    Inno Setup-防止同时执行多次安装程序

  7. 7

    Inno Setup:/ verysilent安装后如何自动运行程序?

  8. 8

    Microsoft SmartScreen-使用Inno Setup安装程序已暂停?

  9. 9

    使用Inno安装程序安装IIS

  10. 10

    Inno Setup:在安装程序运行时更改安装程序语言

  11. 11

    如何在Inno Setup中最小化安装程序?

  12. 12

    Inno Setup-如何安装Windows Update脱机安装程序

  13. 13

    Inno Setup在安装程序中指定日志名称

  14. 14

    Inno Setup:仅在检查其组件后才运行外部驱动程序安装程序

  15. 15

    在Inno Setup安装程序中更改安装程序类型,具体取决于它是“全新安装”还是“更新”?

  16. 16

    Inno Setup:在卸载过程中从安装程序读取文件

  17. 17

    测试Inno Setup安装程序是否以管理员权限运行

  18. 18

    根据在线文件设置Inno Setup安装程序版本

  19. 19

    使用Inno Setup为Python创建Windows安装程序

  20. 20

    在运行时更改应用程序语言

  21. 21

    Inno Setup-用于多个安装程序的安装程序

  22. 22

    Inno Setup安装程序可以设置Windows安全组吗?

  23. 23

    如何使用Inno Setup安装程序为运行的批处理文件提供输入?

  24. 24

    如何解压缩Inno Setup安装程序

  25. 25

    Inno Setup:仅在检查其组件后才运行外部驱动程序安装程序

  26. 26

    Inno Setup:尝试卸载时检测安装程序是否正在运行

  27. 27

    使用Inno Setup创建透明的安装程序?

  28. 28

    Inno Setup - 避免显示子安装程序的文件名

  29. 29

    使用 Inno Setup 安装程序安装 Windows shell 扩展 DLL

热门标签

归档