VC 制作中英文双版本程序 有什么妙招没?

周详521 2009-08-10 04:26:16
VC MFC工程 制作中英文双版本程序 有什么妙招没?

之前作得工具仅支持中文版本,现在需要英文版本程序。 等于说就是 要支持多语言版本程序,我在网上查了些文章,目前暂定使用 制作“VC中使用纯资源dll实现多语言版本”方案进行修改。

在制作之前,我想向高手们咨询下, 有比我目前暂定得方案更好得办法没?
...全文
346 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
周详521 2009-08-11
  • 打赏
  • 举报
回复
谢谢各位,小弟决定使用DLL作了。
whoo 2009-08-10
  • 打赏
  • 举报
回复
1. 直接在exe里面嵌入同时多套资源。比如一个对话框IDD_DIALOG1资源, 右键点击,复制一份其他语言的如 IDD_DIALOG1[EN]。 exe运行时就会自动载入与环境相同的资源。

优点:不需要额外的dll和任何附加的控制代码。
缺点:系统自动选择,用户无法控制。不适合某些犟脑子的人,比如明明是中文环境下,非要英文的界面的人。


2. 资源DLL的方式。 原理与1一样。只不过多了几个dll。额外的dll好处是,发布时你可以选择是否包含这些dll。 应外就是,虽然MFC也可以自动选择并载入,但是你也可以做些工作自己选择。

3. 配置文件方式。
优点:可以即时切换;用户可以自己翻译,无需重新编译发布。
缺点:效率低些; 尤其是对话框不大适合。

Conry 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 happyparrot 的回复:]
楼上,我就是把所有的dll都做成双语,而且资源号统一编码。
但是,这种方式的一个缺点是,切换语言时,必须重新启动系统才能有效,这点很不方便。
[/Quote]

用资源DLL切换语言根本不需要重启软件啊
oyljerry 2009-08-10
  • 打赏
  • 举报
回复
^_^,大家说的都是一些比较老的方法了,现在Microsoft比较新的做法是MUI模式,它的office也用这种。
可以参考一下

http://msdn.microsoft.com/en-us/goglobal/bb978454.aspx
rayw0ng 2009-08-10
  • 打赏
  • 举报
回复
windows下都喜欢用资源DLL,Linux都喜欢配置文件,现在好像大家都喜欢XML。
softist 2009-08-10
  • 打赏
  • 举报
回复
下面的两个连接的程序,都是我作的多国语应用程序。
http://www.softist.com/software/guanyin/guanyin.htm
http://www.softist.com/software/multituner/multituner.htm

其中multituner,我用的只有资源的DLL手法
http://www.softist.com/programemo/multi-lang/multi-lang.htm
MoXiaoRab 2009-08-10
  • 打赏
  • 举报
回复
我看到题目的时候是很想说用资源DLL的,但是看到lz的要求,我就没再说了
wfuyuan 2009-08-10
  • 打赏
  • 举报
回复
http://www.vckbase.com/document/viewdoc/?id=663
找了蛮多帖,看看就这个好
LZ看看
DarkChampion 2009-08-10
  • 打赏
  • 举报
回复
如楼上所说,很多软件都采用了语言文件
通过语言文件获取相应字符串
纠结的程序猿 2009-08-10
  • 打赏
  • 举报
回复
你看看PilotEdit的实现方式,是不是更好?http://topic.csdn.net/u/20090723/07/33b39399-81ad-4fb1-a4a2-78509d2161a3.html

PilotEdit是把描述信息放在类似于Java的properties文件中(EN.RC,SCH.RC),然后根据用户选的语言将语言文件读入道CStringToStringMap中,然后在显示的时候取出。所以不用使用DLL.
dajiuwo_zhou 2009-08-10
  • 打赏
  • 举报
回复
我用的也是这个:http://www.vckbase.com/document/viewdoc/?id=663
favorxx 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 bohut 的回复:]
你的做法是通常的做法
还有另一个做法,其实也差不多。
http://www.vckbase.com/document/viewdoc/?id=663
[/Quote]

例子很帅气
fish_gao 2009-08-10
  • 打赏
  • 举报
回复
使用xml或者ini文件保存你的语言文字,工程使用UNICODE,缺点:代码要多写点,优点:日后扩展到更多的语种都很方便。
要想简单就而且语种不会在变动,用前面的说的 资源dll
dronly 2009-08-10
  • 打赏
  • 举报
回复
有高手能说说DLL做多语言的一般的标准做法不?
dronly 2009-08-10
  • 打赏
  • 举报
回复
嗯,我也刚刚在头痛这个问题。
danxuezx 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 bohut 的回复:]
你的做法是通常的做法
还有另一个做法,其实也差不多。
http://www.vckbase.com/document/viewdoc/?id=663
[/Quote]
up
快乐鹦鹉 2009-08-10
  • 打赏
  • 举报
回复
统一编码简单,你只要把resource.h中的好进行合理分配,避免重复。可以给每个动态库分一段资源号就行了。
BlueEngine 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 happyparrot 的回复:]
楼上,我就是把所有的dll都做成双语,而且资源号统一编码。
但是,这种方式的一个缺点是,切换语言时,必须重新启动系统才能有效,这点很不方便。
[/Quote]

原来这样也可以实现,多谢。
资源号统一编码,这个真是个易出问题的隐患点啊!
加载更多回复(11)

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧