论坛风格切换切换到宽版
  • 2731阅读
  • 10回复

请教老虎版主这两个函数区别?请指正 [复制链接]

上一主题 下一主题
离线546242502
 

发帖
332
金钱
-3060
威望
-306
只看楼主 倒序阅读 0 发表于: 2015-08-22
用户被禁言,该主题自动屏蔽!
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 1 发表于: 2015-08-22
ActiveLanguage 是安装程序正在使用的界面语言,也就是说在 [LANGUAGES] 段中所定义的语言之一。

GetUILanguage 的用户系统的语言。

比如你制作的安装程序是双语言的:中文和英文。当巴西的一个用户运行这个安装程序时,ActiveLanguage 可能是中文或者英文,但是 GetUILanguage 就是葡萄牙语。
离线546242502

发帖
332
金钱
-3060
威望
-306
只看该作者 2 发表于: 2015-08-22
用户被禁言,该主题自动屏蔽!
离线546242502

发帖
332
金钱
-3060
威望
-306
只看该作者 3 发表于: 2015-08-22
用户被禁言,该主题自动屏蔽!
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 4 发表于: 2015-08-22
你用
if ActiveLanguage = 'chs' then
  XXXX.....
if ActiveLanguage = 'en' then
  YYYY.....

这种把每种语言罗列出来不是好的方式,特别是界面语言多的时候。比较好的方式是使用
[CustomMessages]
chs.InfoText=检测到您的系统中已经安装了 My Program。
en.InfoText=A My Program version installed in your system has been detected.

if MsgBox(CustomMessage('InfoText'),mbInformation,MB_OKCANCEL)=IDOK then


离线546242502

发帖
332
金钱
-3060
威望
-306
只看该作者 5 发表于: 2015-08-22
用户被禁言,该主题自动屏蔽!
离线546242502

发帖
332
金钱
-3060
威望
-306
只看该作者 6 发表于: 2015-08-22
用户被禁言,该主题自动屏蔽!
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 7 发表于: 2015-08-22
第一问题:
Setup.e32、 SetupLdr.e32 最好都不要修正。如果你比较熟悉汉化,修改 Setup.e32 的资源部分应该没有什么问题。

第二问题:
系统语言和安装程序界面的语言是毫无关系的。而且系统语言不是你用 'chs' 或者 'en' 可以辨别的。前面例子里说了,在葡萄牙语系统上也是可以运行你的安装程序的。我看了你的一些代码,知道这方面你的思路还比较乱,只能你自己慢慢摸索了。在你目前对许多东西还不很熟悉的情况下,建议不用把安装程序搞得太复杂。
离线546242502

发帖
332
金钱
-3060
威望
-306
只看该作者 8 发表于: 2015-08-22
用户被禁言,该主题自动屏蔽!
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 9 发表于: 2015-08-22
删除 PE 文件的内容一般都是有问题的。如果你不能肯定没有问题,最好不用那样做。编译通过不说明任何问题。

关于界面语言:可以说的我都说了。因为不知道你到底想要什么,所以不打算继续纠缠这个话题了。是问题的地方好像都解决了。