CnPack Forum


 
Subject: 我做了个MultiLang咋不行呢?
goodcyg
新警察
Rank: 1



UID 29882
Digest Posts 0
Credits 14
Posts 6
点点分 14
Reading Access 10
Registered 2007-10-29
Status Offline
Post at 2007-10-29 14:29  Profile | Blog | P.M. 
我做了个MultiLang咋不行呢?

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

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

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


UID 359
Digest Posts 19
Credits 6838
Posts 3591
点点分 6838
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2007-10-29 15:34  Profile | Blog | P.M. 
以上文档是CnWizards中的多语的步骤。不是普通多语的程序的步骤。
应该参考cnpack\Doc下面的多语组件帮助文档和设计文档。

网站www.cnpack.org的文档中心里也有。
Top
goodcyg
新警察
Rank: 1



UID 29882
Digest Posts 0
Credits 14
Posts 6
点点分 14
Reading Access 10
Registered 2007-10-29
Status Offline
Post at 2007-10-29 17:55  Profile | Blog | P.M. 
管理员 :
   你好!我看了Examples\MultiLang下例子,弄出来了!但是我还有点不明白,在Examples\MultiLang目录下看到了有这么两个文件ENU.txt,CHS.txt,他们是分别从1033,2052目录下拷过来,改了名字的吗?还是系统自动生成的,如果是系统自动生成的,咋样设置就自动生成了?
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6838
Posts 3591
点点分 6838
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2007-10-29 20:25  Profile | Blog | P.M. 
语言文件本身是自动生成的,但里头的条目是手工翻译的。
看了帮助文件没?
CVS上cnpack模块中:

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

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

至于语言文件按语言名存储还是按目录名存储,则是由多语存储组件的storagemode属性决定。
Top
goodcyg
新警察
Rank: 1



UID 29882
Digest Posts 0
Credits 14
Posts 6
点点分 14
Reading Access 10
Registered 2007-10-29
Status Offline
Post at 2007-10-29 21:07  Profile | Blog | P.M. 
你好啊!我看了 ,我明白了!但是我现在有的个新的想法!我觉得用文本和ini文件实现多语言的方案不安全,谁都可以去改啊!最后改的不成样子了啊!我想用dll来封装文本里的资源,在改动和编译方便的情况下,你有啥高招吗?
Top
goodcyg
新警察
Rank: 1



UID 29882
Digest Posts 0
Credits 14
Posts 6
点点分 14
Reading Access 10
Registered 2007-10-29
Status Offline
Post at 2007-10-29 21:12  Profile | Blog | P.M. 
如果做成dll的话,没发行一个版本,就的编译一下程序,改动量很大啊!多了容易出问题啊!那么就在现有的基础上,要求改动方便 编译也方便的前提下,给我出个高招?多些!
Top
goodcyg
新警察
Rank: 1



UID 29882
Digest Posts 0
Credits 14
Posts 6
点点分 14
Reading Access 10
Registered 2007-10-29
Status Offline
Post at 2007-10-31 17:33  Profile | Blog | P.M. 
版主咋不回答了?我期待着你的答案!
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6838
Posts 3591
点点分 6838
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2007-10-31 21:48  Profile | Blog | P.M. 
改动方便?用文本或ini,不需要重编译。符合你说的前提吧。

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




All times are GMT++8, the time now is 2024-11-24 15:47

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.0.0  © 2001-2006 Comsenz Inc.
Processed in 0.009297 second(s), 9 queries , Gzip enabled

Clear Cookies - Contact Us - CnPack Website - Archiver - WAP