Board logo

Subject: 我做了个MultiLang咋不行呢? [Print This Page]

Author: goodcyg    Time: 2007-10-29 14:29     Subject: 我做了个MultiLang咋不行呢?

我看了cnpack多语言设计,觉得设计的很好,想做demo试试,咋不行呢?我也看了它的使用说明?

新增窗体时,窗体必须继承自CnWizTranslate单元中的TCnTranslateForm。然后再生成整个窗体的翻译字符串,添加入Lang目录下的多语文件中。
最好在所有功能完成、窗体控件以及文字都确定以后再来实现多语,免得更新的时候因为可能潜在的bug而发生丢失字符串或错位的情况。:=)
生成翻译字符串的步骤如下:
在控件都放置好后,拖一个CnHashLangFileStorage到窗体上,设置其LanguagePath为一临时目录,用来存放临时生成的多语文件。
拖一CnLangManager到窗体上,把LangStorage属性设置成CnHashLangFileStorage1。
编辑CnHashLangFileStorage1的Languages属性,增加一种语言。因为需要的只是目标字符串,所以一种语言足够,而且LangID随便设置。
拖一CnTranslator到窗体上,双击。在弹出的窗体中左边选中该语言,点击生成按钮,右面会生成字符串,点击复制按钮以生成完整的带翻译值的字符串,点保存按钮。
在LanguagePath的临时目录中找到该语言文件,打开,复制,剩下的工作就是翻译后加入Lang目录下的多语文件中。

新增资源字符串按下列三步走:
第一,在CnWizConst单元里头加入这个字符串变量。
第二,在WizTranslate翻译单元里头加上这个字符串变量的翻译赋值语句。
第三,在各个语言文件里头加上新字符串的翻译条目。
是咋回事?

Author: Passion    Time: 2007-10-29 15:34

以上文档是CnWizards中的多语的步骤。不是普通多语的程序的步骤。
应该参考cnpack\Doc下面的多语组件帮助文档和设计文档。

网站www.cnpack.org的文档中心里也有。
Author: goodcyg    Time: 2007-10-29 17:55

管理员 :
   你好!我看了Examples\MultiLang下例子,弄出来了!但是我还有点不明白,在Examples\MultiLang目录下看到了有这么两个文件ENU.txt,CHS.txt,他们是分别从1033,2052目录下拷过来,改了名字的吗?还是系统自动生成的,如果是系统自动生成的,咋样设置就自动生成了?
Author: Passion    Time: 2007-10-29 20:25

语言文件本身是自动生成的,但里头的条目是手工翻译的。
看了帮助文件没?
CVS上cnpack模块中:

cnpack\Doc\Develop\CnPack多语组件帮助文档.doc

前面部分就讲了基础的使用步骤。

至于语言文件按语言名存储还是按目录名存储,则是由多语存储组件的storagemode属性决定。
Author: goodcyg    Time: 2007-10-29 21:07

你好啊!我看了 ,我明白了!但是我现在有的个新的想法!我觉得用文本和ini文件实现多语言的方案不安全,谁都可以去改啊!最后改的不成样子了啊!我想用dll来封装文本里的资源,在改动和编译方便的情况下,你有啥高招吗?
Author: goodcyg    Time: 2007-10-29 21:12

如果做成dll的话,没发行一个版本,就的编译一下程序,改动量很大啊!多了容易出问题啊!那么就在现有的基础上,要求改动方便 编译也方便的前提下,给我出个高招?多些!
Author: goodcyg    Time: 2007-10-31 17:33

版主咋不回答了?我期待着你的答案!
Author: Passion    Time: 2007-10-31 21:48

改动方便?用文本或ini,不需要重编译。符合你说的前提吧。

你要是觉得不安全,可以重载一个文件存储类,用自定义的文件,保存载入的时候自己加密解密。




Welcome to CnPack Forum (http://bbs.cnpack.org/) Powered by Discuz! 5.0.0