由于Inno Setup 编译器的灵活性我们可以很随意的去 DIY 我们想要的功能,而目前在我们安装软件时会碰到很多包含多国语言的应用程序。而这些应用程序在安装的时候会根据您选择的安装语言来自动在安装后软件显示对应的系统语言。
今天我们就来通过使用Inno Setup软件让用户在选择不同软件语言时写入对应的配置文件,从而可以达到更有效的切换语言。
// 多语言设置
[Languages]
Name: "en"; MessagesFile: "compiler:Default.isl";
Name: "cn"; MessagesFile: "compiler:Languages\ChineseSimplified.isl";
[Code]
procedure CurStepChanged(CurStep: TSetupStep);
var
languageName: string;
begin
if CurStep=ssDone then // 软件安装后执行
begin
languageName := ActiveLanguage(); // 获取用户选择的语言
if 'cn' = languageName then
begin
SetIniString('ChangeLanguage','Language','简体中文',ExpandConstant('{app}/Configuration/SystemSetting/systemsetting.ini'));
end
else if 'en' = languageName then
begin
SetIniString('ChangeLanguage','Language','English',ExpandConstant('{app}/Configuration/SystemSetting/systemsetting.ini'));
end;
end;
end;
// 函数原型帮助理解怎么修改配置文件:
function SetIniString(const Section, Key, Value, Filename: String): Boolean;
// 分别对应的是 字段、key、Value、配置文件。
不过目前有很多应用程序会根据系统代码来自动加载语言文件,而如果您碰到的应用程序无法自动识别语言文件,那么您可以使用以上方法很轻松修改。