论坛风格切换切换到宽版
  • 2399阅读
  • 5回复

inno怎样判断系统是中文还是非中文呢 [复制链接]

上一主题 下一主题
离线guxiaoyu
 

发帖
36
金钱
360
威望
36
只看楼主 倒序阅读 0 发表于: 2015-07-14
inno,怎样判断系统是中文还是非中文呢,在中文系统下选择语言界面显示中文,在非中文系统下,选择语言界面都显示英文
我只用了两种语言,怎么判断系统呢

[Languages]
Name: "chinese"; MessagesFile: "compiler:Languages\Chinese.isl"
Name: "english"; MessagesFile: "compiler:Languages\english.isl"
本帖提到的人: @gnatix
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 1 发表于: 2015-07-15
看帮助文件

语法:
function GetUILanguage: Integer;

描述:
返回当前用户使用的界面语言的标识 (LANGID),这是 Windows 自身语言,或 Windows MUI 场合下使用的语言,用户界面语言在控制面板区域选项中选择。如果函数失败则返回 0 (不太可靠)。

注释:
查阅 获取语言标识列表。.

示例:
begin
  if GetUILanguage = $0804 then
  begin
    // 界面语言是简体中文
  end;

  // 你可以使用“and $3FF”提取首选语言标识
  if GetUILanguage and $3FF = $09 then
  begin
    // Matches any variant of English
  end;
end;
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 2 发表于: 2015-07-15
你可以让系统自动探测(默认)用户系统的界面语言,从而自动选择安装程序的界面语言。如果没有找到匹配的系统语言,则选择默认的安装程序界面语言(即[Languages]段的第一项)。
使用下面的脚本的效果是:如果用户系统是英语,则安装程序的界面自动选择英语,如果用户系统是简体中文,则安装程序的界面自动选择简体中文,如果用户系统是其它语言,则安装程序的界面自动选择默认语言(这里就是英语)。


[SETUP]
ShowLanguageDialog=no

[Languages]
Name: "english"; MessagesFile: "compiler:Languages\english.isl"
Name: "chinese"; MessagesFile: "compiler:Languages\Chinese.isl"
离线guxiaoyu

发帖
36
金钱
360
威望
36
只看该作者 3 发表于: 2015-07-15
回 2楼(gnatix) 的帖子
gnatix:你可以让系统自动探测(默认)用户系统的界面语言,从而自动选择安装程序的界面语言。如果没有找到匹配的系统语言,则选择默认的安装程序界面语言(即[Languages]段的第一项)。使用下面的 .. (2015-07-15 05:17) 

非常感谢虎版
离线guxiaoyu

发帖
36
金钱
360
威望
36
只看该作者 4 发表于: 2015-07-15
回 2楼(gnatix) 的帖子
gnatix:你可以让系统自动探测(默认)用户系统的界面语言,从而自动选择安装程序的界面语言。如果没有找到匹配的系统语言,则选择默认的安装程序界面语言(即[Languages]段的第一项)。使用下面的 .. (2015-07-15 05:17) 

因为我这里没有除中英文系统外的其他语言系统,所以我再问一下,如果我不使用ShowLanguageDialog=no这句话

直接写成
[Languages]
Name: "english"; MessagesFile: "compiler:Languages\english.isl"
Name: "chinese"; MessagesFile: "compiler:Languages\Chinese.isl"

在非中文系统选择语言界面会都默认英文吗
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 5 发表于: 2015-07-16
[Languages]
Name: "english"; MessagesFile: "compiler:Languages\english.isl"
Name: "chinese"; MessagesFile: "compiler:Languages\Chinese.isl"
这两句是必须要的。它们的作用是让你制作的安装程序支持英语和简体中文这两种语言。这是你制作安装程序时进行的操作,跟用户系统毫无关系。
至于用户运行你的安装程序时显示哪种语言的界面,有两种方式。第一种方式是安装程序在启动时弹出一个窗口,让用户自己选择哪种语言。在你这个例子里就是选择英语或者简体中文。第二种方式是安装程序自动探测用户系统的语言并选择与其匹配的语言来作为安装程序的界面语言,如果用户系统的语言没有包括在安装程序中,那么安装程序就使用默认的界面语言,你的例子中就是英语。

如果你应用这句
ShowLanguageDialog=no
说明你不让安装程序弹出选择语言的窗口,也就是说你要采用上面说的第二种方式。

如果你不应用这句
ShowLanguageDialog=no
(相当于用 ShowLanguageDialog=yes)
说明你让安装程序弹出选择语言的窗口,也就是说你要采用上面说的第一种方式。

希望这样把问题说清楚了。