论坛风格切换切换到宽版
  • 2120阅读
  • 9回复

请教老虎版主多语言问题 [复制链接]

上一主题 下一主题
离线546242502
 

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

发帖
7696
金钱
-8279
威望
-828
只看该作者 1 发表于: 2015-08-20
注意不要乱用引号!
if MsgBox('CustomMessage('cmcleanhint')', mbConfirmation, MB_YESNO) = IDYES then
正确应该是
if MsgBox(CustomMessage('cmcleanhint'), mbConfirmation, MB_YESNO) = IDYES then
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 2 发表于: 2015-08-20
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
  if ActiveLanguage = 'chs' then
  begin
  if CurUninstallStep = usDone then
  if MsgBox('CustomMessage('cmcleanhint')', mbConfirmation, MB_YESNO) = IDYES then
  //删除文件夹及其中所有文件
  end;

这个代码是意思是:如果语言是中文就弹出提问窗口,如果语言不是中文则什么都不做。这个显然不是你的意图。正确应该是根本就不要检查是不是中文,总是弹出窗口,而窗口显示的文字这根据具体的语言自动选择。所以正确应该是
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
   if CurUninstallStep = usDone then
  if MsgBox('CustomMessage('cmcleanhint')', mbConfirmation, MB_YESNO) = IDYES then
  //删除文件夹及其中所有文件
end;
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 3 发表于: 2015-08-20
关于根据不同的语言显示不同的图像:
建议选择一个图像(比如中文图像)当作默认的图像。另外一种语言(英语)的图像再额外打包。
初始化安装向导时检查,如果语言不是中文,则从安装包里面把英语图像取出来,并用它来取代安装向导页面的图像(中文图像)。
也就是说你准备两个语言的图像,比如
中文图像是文件 WizModernImage_chs.bmp
英语图像是文件 WizModernImage_en.bmp

离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 4 发表于: 2015-08-20
参看下面的示例,举一反三。

[Setup]
AppName={cm:MyAppName}
AppId=My Program
AppVerName={cm:MyAppVerName,1.5}
DefaultDirName={pf}\{cm:MyAppName}
DefaultGroupName={cm:MyAppName}
WizardImageFile=WizModernImage_chs.bmp
; 如果启动安装程序时不显示选择语言的窗口,而是让系统自动选择安装语言,请删除下一行的注释符
ShowLanguageDialog=no

[Languages]
Name: en; MessagesFile: "compiler:Languages\english.isl"
Name: chs; MessagesFile: "compiler:Default.isl"

[Messages]
en.BeveledLabel=This is English
chs.BeveledLabel=这是简体中文

[CustomMessages]
en.MyDescription=My description
en.MyAppName=My Program
en.MyAppVerName=My Program %1
en.cmcleanhint=Are you sure to clean the project files and configuration files? Please back up important files before Clean!
en.cmThankyou=Thank you!
chs.MyDescription=我的程序描述
chs.MyAppName=我的程序
chs.MyAppVerName=我的程序 %1
chs.cmcleanhint=是否清除项目文件及配置文件,请注意备份!
chs.cmThankyou=谢谢!

[Files]
Source: "WizModernImage_en.bmp"; Flags: dontcopy

[Code]
procedure InitializeWizard();
begin
if ActiveLanguage <> 'chs' then       //如果语言不是中文,则更换为英文图像。
  begin
  ExtractTemporaryFile('WizModernImage_en.bmp');
  WizardForm.WizardBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizModernImage_en.bmp'));
  end;
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
  if CurUninstallStep = usDone then
    if MsgBox(CustomMessage('cmcleanhint'), mbConfirmation, MB_YESNO) = IDYES then
      //删除文件夹及其中所有文件
      MsgBox(CustomMessage('cmThankyou'), mbInformation, MB_OK);
end;
离线546242502

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

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

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

发帖
7696
金钱
-8279
威望
-828
只看该作者 8 发表于: 2015-08-21
我当然知道还有完成页面的图像,还有页面上面的小图。但是我只是给一个思路,所以我每次提醒:举一反三。意思是其他的你要自己去弄了。
离线546242502

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