系统支持简体、繁体、英文三种语言,开发语言Delphi2010
type
//接口定义
ILanguageTrans = interface
['{EE1BAE27-2E88-4F76-8AF3-169B6C7BF7C1}']
procedure ReadForm; //把控件翻译
procedure WriteForm;//把控件写入
function GetText(Msg: string): string;
function BIG5ToGB(Str: string): string;
function GBToBIG5(Str: string): string;
procedure ShowManager; //打开管理界面
end;
TLanguageTrans = class(TInterfacedObject, ILanguageTrans)
private
protected
public
constructor Create(Form: TForm; MTSName, ModuleCode: string); { 构造方法 }
procedure ShowManager; virtual; //管理界面
procedure ReadForm; virtual;
procedure WriteForm; virtual;
function GetText(Msg: string): string; virtual;
function BIG5ToGB(Value: string): string; virtual;
function GBToBIG5(Value: string): string; virtual;
end;
// 保存到数据库
TDBLanguageTrans = class(TLanguageTrans)
private
FFrmForm: TForm;
FTranDataSet: TClientDataSet;
FDB: TDBClass;
FMTSName: string;
FModuleCode: string;
function ReadData(ConName: string): string;
protected
published
property frmForm: TForm read FFrmForm write FFrmForm;
property TranDataSet: TClientDataSet read FTranDataSet write FTranDataSet;
property DB: TDBClass read FDB write FDB;
property MTSName: string read FMTSName write FMTSName;
property ModuleCode: string read FModuleCode write FModuleCode;
public
constructor Create(Form: TForm; MTSName, ModuleCode: string); { 构造方法 }
procedure ShowManager; override;
procedure ReadForm; override;
procedure WriteForm; override;
end;
// INI
TIniLanguageTrans = class(TLanguageTrans)
private
FIniFileName: string;
FFrmForm: TForm;
published
property IniFileName: string read FIniFileName write FIniFileName;
property frmForm: TForm read FFrmForm write FFrmForm;
public
constructor Create(Form: TForm; MTSName, ModuleCode: string); { 构造方法 }
procedure ReadForm; override;
procedure WriteForm; override;
procedure ShowManager; override;
end;
//工厂模式
TLanguageTransFactory = class
private
public
function Create(Form: TForm; MTSName, ModuleCode: string): TLanguageTrans;
end;
客户端调用:
var
LanguageTransFactory: TLanguageTransFactory;
begin
(LanguageTransFactory.Create(self, MTSName, ModuleCode)).ReadForm;
如果增加或更改存储方式,如XML,只需在工厂类修改代码,其它客户端调用的地方不必修改,实现客户端代码与类的松散耦合