关于DELPHI程序多语言支持的问题关于DELPHI程序多语言支持的问题.doc

关于DELPHI程序多语言支持的问题关于DELPHI程序多语言支持的问题.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关于DELPHI程序多语言支持的问题关于DELPHI程序多语言支持的问题

----------------仅供学习参考---------------- 关于DELPHI程序多语言支持的问题 写DELPHI程序,是如何实现繁体化的?是如何开发英文版的?是通过外挂语言包吗? 我完整地说一下我的问题:我写一个DELPHI程序,开发环境是是简体中文版本win xp系统+ Delphi 7的。现在想做一个繁体版本以及其他非简体中文版本的出来。此时遇到这几个问题: 1、在非简体中文系统中均出现乱码或界面文字错位。 2、而且语言包速度太慢了,每次启动要预读一下语言文件进行界面翻译,工程量大的时候明显感到启动速度下降了 3、因为工程量比较大,逐一设置“提示内容”及“界面内容”的语言包比较麻烦,所以不想用ini文件或dll资源库的语言包形式 请问各位DELPHI高手你们是怎么做的?有没有一劳永逸的方法? 听说DELPHI内置的多国语言功能, 有没有用法帮助? 还有没有其他一些好用简单强大的Unicode语言包控件? --------------------------------------------------------------------- Delphi的多语言是这么用的,但是添加多语言后编译连接速度很慢,有时候10来分钟。 可以把你的Delphi的窗体文件分给翻译来翻译,如果是Delphi7,需要先用Conver.exe来转换为文本格式。 1、Project-New Application 创建你的中文版软件。 2、Project-Language-Add 添加你的语言,比如美国英语(ENU)。或者File-New-Others-Dll Wizard 3、保存后生成多个文件夹。 4、Project-Build All 5、程序目录下生成和工程文件同名的语言文件:MyExe.ENU;MyExe.CHN,软件发布需要带这些文件。 6、把软件里面所有字符串定义为资源字符串。 resourcestring C_AppTitle = xx管理系统; C_Error = 错误; C_Warning = 警告; 7、在软件中用如下代码切换语言: const //定义你得多语言: ENGLISH = (SUBLANG_ENGLISH_US shl 10) or LANG_ENGLISH; CHINESE = (SUBLANG_CHINESE_SIMPLIFIED shl 10) or LANG_CHINESE; uses ReInit; ... if LoadNewResourceModule(ENGLISH) 0 then begin ReInitializeForms(); end; 更多请参考Delphi帮助,里面写得更清楚。 我以前也用INI文件做多语言,感觉挺好用,Delphi带得这个多语言感觉编译起来太慢,而且总需要Build半天。 利用INI文件实现界面无闪烁多语言切换 程序运行时,我们查找当前目录下所有的语言配置文件(*.ini),为了达到这个目的,我编写了如下的函数有哪些信誉好的足球投注网站目录下所有的语言配置文件的文件名,然后将文件名去掉ini扩展名保存返回: function TForm1.SearchLanguagePack:TStrings; var ResultStrings:TStrings; DosError:integer; SearchRec:TsearchRec; begin ResultStrings:=TStringList.Create; DosError:=FindFirst(ExtractFilePath(ParamStr(0))+*.ini, faAnyFile, SearchRec); while DosError=0 do begin { 返回的文件名并去掉末尾的.ini字符 } ResultStrings.Add(ChangeFileExt(SearchRec.Name,)); DosError:=FindNext(SearchRec); end; FindClose(SearchRec); Result:=ResultStrings; end; 在Form建立的事件中添加代码,将目录下所有的语言文件名加入选择列表框中。 procedure TForm1.FormCreate(Sender: TObject); begin ComboBox1.Items.AddStrings(SearchLanguagePack); end; 程序的重点在如何切换语言,在ComboBox1的OnChange事件中进行切换操作。 这里我写了SetActiveLanguage过程用于实现这一操作。 procedure TForm1.ComboBox1C

您可能关注的文档

文档评论(0)

vshoulrengb3 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档