delphi翻译中文(Delphi怎样支持多国语言)
本文目录
- Delphi怎样支持多国语言
- delphi怎么用代码来实现翻译的功能
- Delphi怎么读
- delphi基础翻译
- 请把delphi里的“ properties“” 属性选项卡里面翻译成中文我E文不好
- 一个Delphi帮助语句的翻译
Delphi怎样支持多国语言
Delphi的多语言是这么用的,但是添加多语言后编译连接速度很慢,有时候10来分钟。可以把你的Delphi的窗体文件分给翻译来翻译,如果是Delphi7,需要先用Conver.exe来转换为文本格式。1、Project-New Application 创建你的中文版软件。2、Project-Language-Add 添加你的语言,比如美国英语(ENU)。或者File-New-Others-Dll Wizard3、保存后生成多个文件夹。4、Project-Build All5、程序目录下生成和工程文件同名的语言文件:MyExe.ENU;MyExe.CHN,软件发布需要带这些文件。6、把软件里面所有字符串定义为资源字符串。resourcestringC_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;usesReInit; ...if LoadNewResourceModule(ENGLISH) 《》 0 thenbeginReInitializeForms();end;更多请参考Delphi帮助,里面写得更清楚。其实感觉最好还是用INI文件把所有语言条目提取出来记录,并且将INI翻译成多份(多种语言),程序启动时从INI文件中加载语言。CSDN上有介绍用TLMPack的,你也可以尝试一下: 1。在Delphi(或BCB)中安装TLMPack标准版,关于如何安装帮助文件中有比较详细的说明了,这里不在累述了。(当然安装标准版的前提是你使用标准的AnsiVCL控件来开发的程序,如果你使用TntUnicode控件来开发程序,那么相对应,必须使用Unicode版的TLMPack)。 2。打开你需要升级成多国语言的工程,在每一个Form(以及QReport,Module等)上放置一个TtlmController控件,这个控件的作用是自动改变其所在Form上所有控件的显示文字,一般情况下只需要将该控件放置在Form上就可以了,不需要作任何设置。 3。Form上的控件现在已经可以自己根据语言设置的变换而自动更新了,那么像MessageBox()这样的函数中显示的文字怎么办呢,答案是使用TtlmController的Translate()函数,这个函数可以自动到当前使用的语言文件中取得文字资源然后作为返回值返回出来,假设已有一段函数是这样的: 代码: procedure TForm1.Button1Click(Sender:TObject); begin MessageBox(Handle, PChar(’Say hello to the user!’), ’Message’, MB_ICONINFORMATION); end; 那么你需要将文字的部分使用Translate函数包装起来,包装后就像这样: 代码: procedure TForm1.Button1Click(Sender:TObject); begin MessageBox(Handle, PChar(tlmController1.Translate(’SayHello’, ’Say hello to the user!’)), ’Message’, MB_ICONINFORMATION); end; 前面的‘SayHello’是对文字的标识,通过这个标识程序才能从语言文件中找到正确的资源,后面的文字作用是当语言文件中不存在需要寻找的资源(或者语言文件不存在时),该函数默认所返回的内容。 另外,Translate函数还支持同Format()函数一样的参数显示,如这样: 代码: procedure TForm1.Button1Click(Sender:TObject); begin MessageBox(Handle, PChar(tlmController1.Translate(’ComponentCount’, ’ComponentCount = %d’, )), ’Message’, MB_ICONINFORMATION); end; 4。以上的MessageBox()函数是出现在Form中的,并且该Form中已经有TtlmController控件了,所以才可以使用TtlmController的Translate()函数进行文字的转换,那么如果你的工程中有一个直接从TObject继承而来的功能类,它也需要显示Message,或者需要记载Log文字等,这时候该怎么办呢,最简单的方法是让这个功能类去调用某个Form中的TtlmController的Translate()函数,但是这样的缺点是程序可能需要为此做较大的改动,另外语言文件中的文字也将变得混乱不堪。那么这个时候最好的解决方案就是使用TtlmObject类,该类同TtlmController类一样,也有Translate函数可以使用,但是区别是它不会侦测所在Form的所有控件,不会对它们进行自动转换。 以下这个类是个小型的功能类。 代码: interface uses ....; type TFunctionClass = class(TObject) public procedure ShowMessage(); end; impenmentation procedure TFunctionClass.ShowMessage(); begin ShowMessage(nil, ’Say hello to the user!’, ’Message‘, MB_ICONINFORMATION); end; end. 使用TtlmObject类后,该类被改造为: 代码: interface uses ...., TLMObject; type TFunctionClass = class(TObject) private FtlmObject:TtlmObject; public constructor Create(); destructor Destroy();override; procedure ShowMessage(); end; impenmentation constructor TFunctionClass.Create(); begin inherited Create(); FtlmObject:=TtlmObject.Create(self); end; destructor TFunctionClass.Destroy(); begin FtlmObject.Free; inherited Destroy(); end; procedure TFunctionClass.ShowMessage(); begin MessageBox(Handle, PChar(tlmController1.Translate(’ComponentCount’, ’ComponentCount = %d’, )), ’Message’, MB_ICONINFORMATION); end; end. 这样每当使用该功能类中需要文字显示的函数时,真正使用的文字就是语言文件中记载的内容了。 5。TLMPack是从外部语言文件来加载语言文字的,由于完全手工写一个语言文件是一件比较枯燥的事,所以你可以使用向导控件来由程序,如果你打算自己手工来撰写一个语言文件,那么可以忽略该小节。 所谓的向导控件是指:TtlmIniGenerator和TtlmXmlGenerator这两个控件,它们会在程序运行时,将所有原本需要TtlmController和TtlmObject读取的文字,反向输出到语言文件中,你所要做的就是在程序的主窗体上放置一个TtlmIniGenerator(这里假设你要输出的是Ini格式的语言文件):
delphi怎么用代码来实现翻译的功能
bfmbfmbfm 说的好。补充一下1 字典 这类字典网上有现成的,但是比较难找这是在本地实现, 从数据库中根据单词查询出来,如果要整句成段的翻译,需要一定比较复杂的算法 如分词 语言逻辑等等。2 翻译的webservice免费webservice好像没有,有也不稳定吧 不建议 除非自己搭建webservice。***隐藏网址******隐藏网址***
Delphi怎么读
Delphi 特尔斐 delphi是一种集成开发环境不是开发语言它用的是pascal语言
delphi基础翻译
TChatForm中的LISTEMITEM被下时执行此程序
当TCHATFORM被单击时执行命令
请把delphi里的“ properties“” 属性选项卡里面翻译成中文我E文不好
如果这都要翻译成中文的话,我觉得你还是不要学程序的好,因为程序也是拿英文写的,目前尚不支持中文代码。
一个Delphi帮助语句的翻译
to-do在DELPHI中准确的是表示待处理的意思。添加备注时经常用到。全句的意思,就是返回待处理列表中的文本值。我们在器中,右键 --》 选择Add To-do Item(或《Shift》+《Ctrl》+T),就可以创建TODO列表,形式如: { TODO : Info } 返回值应该是指 Info.
本文相关文章:
delphi翻译中文(请把delphi里的“ properties“” 属性选项卡里面翻译成中文我E文不好)
2024年7月22日 21:42
delphi翻译中文(delphi怎么用代码来实现翻译的功能)
2024年6月20日 00:25
更多文章:
java下载什么版本的合适(windows10安装java需要什么版本)
2024年3月7日 06:45
ridiculous什么意思(ridiculous是什么意思)
2024年7月12日 13:19
直线轴承的导轨适合用什么材料载重在100公斤 速度每秒5米十二分感谢?直线轴承|直线导轨轴承有哪些类型啊
2024年7月20日 02:03
php与js的区别(html标签,php标签,js标签这些是不是一类东西,是什么啊它们有什么区别呢)
2024年8月28日 15:25
centos7检查存储配置出错(安装centos7出现这个提示,怎么办)
2024年7月21日 10:04
keypress事件用法(5 若要选择Text对象的Text1_KeyPress事件,可以)
2024年7月30日 18:35
第二列在第一列重复的数据(excel中第一列对应的第二列中有重复值怎么做才能在引用第一列数据时把第二列)
2024年9月6日 02:35
科技公司官网模板(本人想制作一个手机wap网站,要电脑和手机都可访问和管理的,那里有比较好的制作公司或网站模板出售)
2024年7月18日 15:01