关于在Delphi中支持多过语言的问题
刚刚看到一贴:
“一个土制的多语言引擎 Langine,希望能借此简化编写多国语言系统的工作”
http://community.csdn.net/Expert/topic/3151/3151612.xml?temp=8.926028E-02
程序支持多国语言问题,我想这也是许多Delphi Fans共同关注的问题。所以把自己的一点经验贴出来,与大家共享一下;
其实Delphi本身就已经包含的很完善的多国语言支持的功能;
. 为不同语言的UI资源保存、编译不同的副本资源文件;
. 为程序中使用的字符串(非UI资源)保存、编译不同的副本资源文件;
. 程序运行后动态的选择支持语言;
例子:
1、新建一个空工程、放一些组件(菜单、按钮,任意组件……)、保存;
2、菜单Project->Language->Add;按提示选择语言,如英语(美国)+中文(中国),一路确认,最后生成两个目录CHS, ENU,为UI资源文件副本;
(注意:此时会提示存储ProjectGroup,存下来会很方便以后使用)
3、打开UI副本并设置各个组件在不同语言副本中的内容;
4、菜单Delphi->Language->Set Active 设置缺省语言;
5、菜单Delphi->Language->Update Resource DLLs,当你在主工程中进行资源文件更新后,用此功能更新各个资源文件副本。(除非你的主工程有大的改动,否则副本内容也是选择更新,即,不会每次对各种语言重新翻译一遍)
6、使用菜单Project->Build All Projects,编译;
7、此时你可能会问,如果是非UI资源内容,譬如想为程序中的某些/全部字符串保存不同语言副本,该如何处理;
如下:
在自动生成的自动副本目录下都会有一个“*_RC.rc”文件,存储不同的内部使用字符串;
在程序中,找到你要存储多国语言的字符串,先在程序中将其作为常量字符串定义,!!!关键就在这个定义上,不要用const做关键字,而要用resourcestring,然后在执行步骤5更新,你会发现——这些字符串都出现在“*_RC.rc”文件中了,修改不同语言副本的“*_RC.rc”文件中对应的字符串,再重新编译……
(也是一次偶然机会发现了resourcestring的此功能,因为就算想 D6DG 这种经典的书对resourcestring也只是一笔带过……)
8、动态加载不同语言设置,不用我多说了,在
“..\Borland\Delphi7\Demos\RichEdit”目录下有个现成的例子,很容易,执行一下,再看看就知道了。
我自己还增强了此方法,现在我在自己的程序中除了可以动态加载主EXE的资源文件,就算在外挂DLL(自己写的一些COM组件)中也可以实现语言的动态切换;
…………
这回就这么多了,希望以上内容对大家有帮助!
问题点数:200、回复次数:18Top
1 楼aiirii(ari-http://spaces.msn.com/members/aiirii/)回复于 2004-08-02 00:05:10 得分 15
markTop
2 楼linzhengqun(风。我回来了)回复于 2004-08-02 00:08:45 得分 15
好的,保存Top
3 楼enlightenment(破冰超人)回复于 2004-08-02 00:39:59 得分 0
Mark selfTop
4 楼xiaocuo_zrf(小错——淫雄所贱略同)回复于 2004-08-02 09:51:07 得分 15
好
!Top
5 楼tonylk(=www.tonixsoft.com=)回复于 2004-08-02 10:03:05 得分 15
hehe,不过实话说Delphi自带的多国语言功能使用并不方便,要给用户自己扩展语言也是不可能的。。Top
6 楼meiqingsong(阿飛)回复于 2004-08-02 10:09:39 得分 15
好Top
7 楼seaweaver(唧唧歪歪)回复于 2004-08-02 11:39:23 得分 15
顶啊,如果能动态的更新就最好拉Top
8 楼GoldShield(李柏岑)回复于 2004-08-02 12:15:32 得分 15
学习Top
9 楼enlightenment(破冰超人)回复于 2004-08-03 09:10:49 得分 0
upTop
10 楼wychero(高天)回复于 2004-08-03 09:14:15 得分 15
学习Top
11 楼cronuz(cronus)回复于 2004-08-03 12:19:41 得分 10
先Mark!Top
12 楼GoldShield(李柏岑)回复于 2004-08-03 13:29:27 得分 10
为什么还有那么多的贴问DELPHI中的语言问题.?Top
13 楼tonylk(=www.tonixsoft.com=)回复于 2004-08-03 13:51:03 得分 10
to GoldShield(金盾)
多国语言是潮流,并且Delphi本身对多国语言的支持并不完善。。。。但是相对VC和VB,Delphi的程序做多国语言还是最方便的。。Top
14 楼boatzm(晓舟怕麻烦)【IUnKnown】(#_#!)回复于 2004-08-03 16:48:59 得分 10
mark ,同时紧一个!Top
15 楼loveyinger(lxy)回复于 2004-08-27 12:51:34 得分 10
MarkedTop
16 楼yincaimin(真实)回复于 2004-08-27 14:16:50 得分 10
学习Top
17 楼hejianling305(爱上编程的笨小孩)回复于 2004-08-28 16:15:07 得分 10
好.学习Top
18 楼sztony(最爱美眉)回复于 2004-08-28 17:20:58 得分 10
这几天我也在研究多国语言,
我觉得还是自己设计多国语言系统好点,
比如,我现在设计的系统包含英文,简体中文,繁体中文,
自己设计数据库,包含多语言系统的资源,然后在程序中控制,调用,好象还蛮不错的,Top




