请大家谈谈对多语言软件的开发

freespider 2003-11-13 05:55:33
一般来说,若想开发多语言软件,需要将所有字符串放到资源文件中去,然后通过更改资源文件达到生成多个语言版本的软件。
我想了解一下,这个过程当中有哪些地方需要注意的,比如,一个版本开发出来了,一个资源文件对应着一个语言版本,若开发下一个版本,那么这么些资源文件是怎么保证同步的?
或许有其他更好的方法能到达目的,请大家结合自己的经验谈一谈,反正我的目的就是想了解如何让开发多语言软件更简洁,谢谢各位!!!
...全文
80 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
FlyYang 2003-11-18
  • 打赏
  • 举报
回复
现在很多软件都把和语言相关的资源都提出放到一个文本文件中
对翻译,新版本的同步都很方便
可以参考一下
http://www.vchelp.net/vchelp/file2003_2/multi_lan.asp?type_id=73&class_id=1&cata_id=2&article_id=993&search_term=语言

---------
++C++
---------
freespider 2003-11-18
  • 打赏
  • 举报
回复
如果新的版本出来了,那么这多个dll如何同步呢?
sxslyy 2003-11-18
  • 打赏
  • 举报
回复
同意将其放入DLL中.
COOL099 2003-11-18
  • 打赏
  • 举报
回复
用dll好,不用重新編譯.
hardstudylulin 2003-11-17
  • 打赏
  • 举报
回复
将资源封装到dll中比较好,每次调用不用语言的DLL。
qimz 2003-11-17
  • 打赏
  • 举报
回复
我們現在需要把目前中文的項目做成德文,中德翻譯已經做好了,但是在中文系統下把德文字符串拷貝到系統中后會變.請問那位有辦法解決或有知道德文系統得下載地址,不勝感激.
longki 2003-11-14
  • 打赏
  • 举报
回复

学习中ING!
yintongshun 2003-11-14
  • 打赏
  • 举报
回复
gz
freespider 2003-11-14
  • 打赏
  • 举报
回复
VC进行多语言软件的开发过程探讨
多语言软件,即一个软件有多种语言的界面,一般提到的方法是:在编写程序时,将所有的需要界面上显示的字符串放到资源文件中,便于以后在一个地方进行修改,至于后面的具体的步骤需要自己来进行总结,目前,由于公司的软件需要做成多语言的,特在此做一些探讨,以确定一种好的方式进行,提高工作效果和工作效率。
第一步:在编写程序时,将界面上的字符串独立到资源文件中,这是必不可少的一步。对话框,菜单,tip中的东西已经在资源文件中,所以不需再花费工夫,对于直接在程序中进行输出的,比如window的title,显示的界面中用到的字符串,就要在String Table中加入,一个id对应一个字符串,使用时,根据id找到字符串,再显示即可。
第二步:此时有两种做法:
1、先按照上面的方式开发一种语言的版本,该版本推出后,直接修改exe文件中的资源;这种方式比较简单,但是工作量比较大,每推出一个版本,就需要全部改动一次;
2、先按照上面的方式开发一种语言的版本,该版本推出后,直接在代码中修改资源文件,此时一种语言对应于一个资源文件,文件名不要一样,将这些文件独立存放在一个目录中,由于程序只会加载一个文件,需要编译哪种语言的版本时,仅需要将该对应的文件复制到代码的目录中,然后修改此文件名为那个固定的文件名;
每次推出新的程序版本时,每种语言的资源文件都可在原来的基础上进行修改,工作量较少。
缺点:步骤较多,特别是维护多个资源文件的同步时非常麻烦。

3、每推出一个版本,都完整的修改资源文件,然后再编译出不同版本的程序。下一个版本再重复。

各有优缺点,可以根据公司的人员结构,程序的大小不同选择不同的方式。如果公司由一般的翻译完成此工作,那最好选择量多一点,但是不容易出错的方式,比如3。毕竟一般的翻译的工资要比专业的开发人员的工资低,这样工作量看着大,但是成本不会高,而且不容易出错。
如果程序非常大,而且两个版本中的改动不大,可能就要选择2。

没有做过,没有经验,以上全是自己猜想的,请大家批评,给我提意见,帮助我确定一种好的方式。

相信有很多有相关经验的,或看过相关资料的人,希望不吝赐教,谢谢啦
没有经验的,也肯定有一些自己的想法,希望提出来大家交流一下,也谢谢啦

凡是提出意见者都有分。
101monster 2003-11-14
  • 打赏
  • 举报
回复
关注!
seilfer2000 2003-11-14
  • 打赏
  • 举报
回复
我也想知道
ahao 2003-11-14
  • 打赏
  • 举报
回复
gz
freespider 2003-11-14
  • 打赏
  • 举报
回复
up
ljzcom 2003-11-14
  • 打赏
  • 举报
回复
我们的做法是把程序中用到的字符串都进行收集,
然后在一个DLL中把所有语言版本的字符串都在
DLL的资源中表述开,DLL开放一个接口得到你想要
的字符串
lchlovely 2003-11-14
  • 打赏
  • 举报
回复
XML:

<cancelbtn>
<des id="s3" rect="268,184,160,0" key="esc"></des>
<txt rect="80,0,70,33">
<big5>取消</big5>
<gb>秏</gb>
<eng>Cancel</eng>
<jap></jap>
</txt>
</cancelbtn>


需對XML進行解析,
Alaex 2003-11-14
  • 打赏
  • 举报
回复
将界面显示独立到一个资源文件中然后再到处未必就是解决问题的最佳办法,如果界面显示比较多,每次都根据id去找字符串,也比较麻烦。
我倒觉得,还是制作一个语言的版本,需要多语言时候,再去修改资源文件的办法比较省事。
在delphi中这个问题很容易解决,delphi本身就支持同一软件多个资源文件(针对不同语言版本)
ahao 2003-11-14
  • 打赏
  • 举报
回复
我喜欢用文本方式

16,472

社区成员

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

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

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