我的软件要到台湾发行,请各位大虾帮忙,如何解决????
我在程序里加了语言连接库,但程序里的提示怎么办?
如何发行软件?

解决方案 »

  1.   

    {
    Title : MutilLanguage
    Author : Taozhiyu
    Email : [email protected]
    Homepage : http://www.angelfire.com/super/taozhiyu
    }unit MutilLanguage;interfaceuses
      Registry, Forms, SysUtils, Windows, reinit;
      function SwichLanguage(AForm : TForm ; Language : string) : boolean;
      function ReadStr(StringID : integer) : string;implementation{$R Mystr.RES}const
      ENGLISH = (SUBLANG_ENGLISH_UK shl 10) or LANG_ENGLISH; //参看TaoZhiYu的英文帮助
      CHINESE  = (SUBLANG_CHINESE_SIMPLIFIED shl 10) or LANG_CHINESE; //定义语言常量  CurrentEnglish = 10;   //常量,用于读取资源文件中的字符
      CurrentChinese = 20;
    function WriteRegistry(Name,Value:string):boolean;   //向注册表写数据。
    var
            RegisterTemp : TRegistry;
    begin
            result := false;
            RegisterTemp := TRegistry.Create;
            with RegisterTemp do
            begin
                    try
                            RootKey:=HKEY_CURRENT_USER;
                            if OpenKey('Software\Borland\Locales',true) then
                            begin
                                    WriteString(Name,Value);
                                    result := true;
                            end;
                            CloseKey;
                    finally
                            Free;
                    end;
            end;
    end;function ReadRegistry(Name : String): string; //从注册表读取数据
    var
            RegisterTemp : TRegistry;
    begin
            result := '';
            RegisterTemp := TRegistry.Create;
            with    RegisterTemp do
            begin
                    try
                            RootKey:=HKEY_CURRENT_USER;
                            if OpenKey('Software\Borland\Locales',true) then
                                    result:= ReadString(Name);
                            CloseKey;
                    finally
                            Free;
                    end;
            end
    end;function CheckCurrentLanguage : integer;    //根据从注册表中读取的数据选择英文还是中文。
    begin
            result := 0;
            if ReadRegistry(Application.ExeName) = 'ENG' then
                    result := CurrentEnglish
            else
                    result := CurrentChinese;
    end;function ReadStr(StringID : integer) : string;   //从自定义资源文件中读取字符,这部分非系统的。
    var
            txtCaption : array[0..255] of char;
    begin
            result := '';
            StringID := StringID + CheckCurrentLanguage;  //注意这里,如果你自定义的需要实现双语的超过两位数,那么前面定义的CurrentEnglish 和CurrentChinese就要变成3位的。
            if LoadString(HInstance, StringID , txtCaption,SizeOf(txtCaption))>0 then
                    result:=StrPas(txtCaption);
        //根据上面的StringID来从资源文件中选择相应的语言.
    end;function RefreshFormFace(AForm : TForm ; Language : string) : boolean; //刷新窗体和窗体中各控件
    var
            LoadSuccess : integer;
            FormRect:TRect;
    begin
            result := false;
            LoadSuccess := 0;
            FormRect:=AForm.BoundsRect;
            if Language = 'CHN' then LoadSuccess := LoadNewResourceModule(CHINESE);
            if Language = 'ENG' then LoadSuccess := LoadNewResourceModule(ENGLISH);
            if LoadSuccess <> 0 then
            begin
                 LockWindowUpdate(AForm.Handle);
                 ReinitializeForms;
                 AForm.SetBounds(FormRect.Left,FormRect.Top,FormRect.Right-FormRect.Left,FormRect.Bottom-FormRect.Top);
                 LockWindowUpdate(0);
            end;
            result := true;
    end;function SwichLanguage(AForm : TForm ; Language : string) : boolean; //设定相应的语言过程
    begin
            result := false;
            WriteRegistry(Application.ExeName , Language); //写入注册表以保存当前设置的语种
            RefreshFormFace(AForm , Language);
            result := true;
    end;end.
      

  2.   

    楼主你没看过ini文件实现无闪动语言切换的文章么?
    ///////////////////////////////////////////
      

  3.   

    用 Delphi 自己的 language 功能也是可以实现的呀。
      

  4.   

    如何实现详细点好吗?
    CloneCenter
      

  5.   

    通过ini文件来设置多语言支持,这样窗体在改变语言时且不会闪烁~!网络蚂蚁就是这样实现的
      

  6.   

    bcb本身是支持多语言的。在bcb的bin 目录下有一个文件 etm60.exe你运行了看一下,再看看帮助。
      

  7.   

    BIG5内码
    多语言看看
    http://expert.csdn.net/Expert/topic/1205/1205651.xml?temp=.0418207