Guest:
Register
|
Login
|
Member List
|
Search
|
Statistics
|
FAQ
Language
----------
Simplifed Chinese
Traditional Chinese
English
CnPack Forum
»
CnVCL 组件包
» 我做了个MultiLang咋不行呢?
‹‹ Last Thread
|
Next Thread ››
Poll
Trade
Reward
Activity
Printable Version
|
Email to Friend
|
Subscription
|
Favorites
Subject: 我做了个MultiLang咋不行呢?
goodcyg
新警察
UID 29882
Digest Posts 0
Credits 14
Posts 6
点点分 14
Reading Access 10
Registered 2007-10-29
Status Offline
#1
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翻译单元里头加上这个字符串变量的翻译赋值语句。
第三,在各个语言文件里头加上新字符串的翻译条目。
是咋回事?
Passion
(LiuXiao)
管理员
UID 359
Digest Posts
19
Credits 6838
Posts 3591
点点分 6838
Reading Access 102
Registered 2004-3-28
Status Offline
#2
Post at 2007-10-29 15:34
Profile
|
Blog
|
P.M.
以上文档是CnWizards中的多语的步骤。不是普通多语的程序的步骤。
应该参考cnpack\Doc下面的多语组件帮助文档和设计文档。
网站
www.cnpack.org
的文档中心里也有。
goodcyg
新警察
UID 29882
Digest Posts 0
Credits 14
Posts 6
点点分 14
Reading Access 10
Registered 2007-10-29
Status Offline
#3
Post at 2007-10-29 17:55
Profile
|
Blog
|
P.M.
管理员 :
你好!我看了Examples\MultiLang下例子,弄出来了!但是我还有点不明白,在Examples\MultiLang目录下看到了有这么两个文件ENU.txt,CHS.txt,他们是分别从1033,2052目录下拷过来,改了名字的吗?还是系统自动生成的,如果是系统自动生成的,咋样设置就自动生成了?
Passion
(LiuXiao)
管理员
UID 359
Digest Posts
19
Credits 6838
Posts 3591
点点分 6838
Reading Access 102
Registered 2004-3-28
Status Offline
#4
Post at 2007-10-29 20:25
Profile
|
Blog
|
P.M.
语言文件本身是自动生成的,但里头的条目是手工翻译的。
看了帮助文件没?
CVS上cnpack模块中:
cnpack\Doc\Develop\CnPack多语组件帮助文档.doc
前面部分就讲了基础的使用步骤。
至于语言文件按语言名存储还是按目录名存储,则是由多语存储组件的storagemode属性决定。
goodcyg
新警察
UID 29882
Digest Posts 0
Credits 14
Posts 6
点点分 14
Reading Access 10
Registered 2007-10-29
Status Offline
#5
Post at 2007-10-29 21:07
Profile
|
Blog
|
P.M.
你好啊!我看了 ,我明白了!但是我现在有的个新的想法!我觉得用文本和ini文件实现多语言的方案不安全,谁都可以去改啊!最后改的不成样子了啊!我想用dll来封装文本里的资源,在改动和编译方便的情况下,你有啥高招吗?
goodcyg
新警察
UID 29882
Digest Posts 0
Credits 14
Posts 6
点点分 14
Reading Access 10
Registered 2007-10-29
Status Offline
#6
Post at 2007-10-29 21:12
Profile
|
Blog
|
P.M.
如果做成dll的话,没发行一个版本,就的编译一下程序,改动量很大啊!多了容易出问题啊!那么就在现有的基础上,要求改动方便 编译也方便的前提下,给我出个高招?多些!
goodcyg
新警察
UID 29882
Digest Posts 0
Credits 14
Posts 6
点点分 14
Reading Access 10
Registered 2007-10-29
Status Offline
#7
Post at 2007-10-31 17:33
Profile
|
Blog
|
P.M.
版主咋不回答了?我期待着你的答案!
Passion
(LiuXiao)
管理员
UID 359
Digest Posts
19
Credits 6838
Posts 3591
点点分 6838
Reading Access 102
Registered 2004-3-28
Status Offline
#8
Post at 2007-10-31 21:48
Profile
|
Blog
|
P.M.
改动方便?用文本或ini,不需要重编译。符合你说的前提吧。
你要是觉得不安全,可以重载一个文件存储类,用自定义的文件,保存载入的时候自己加密解密。
Poll
Trade
Reward
Activity
CnPack Forum
CnPack English Forum
> CnWizards IDE Wizards
> CVSTracNT
> Announcements & Others
All times are GMT++8, the time now is 2024-11-24 12:39
Powered by
Discuz!
5.0.0
© 2001-2006
Comsenz Inc.
Processed in 0.008799 second(s), 7 queries , Gzip enabled
TOP
Clear Cookies
-
Contact Us
-
CnPack Website
-
Archiver
-
WAP
Member's CP Home
Edit Profile
Credits Transaction
Public User Groups
Buddy List
Main
Page Views
User Agents
Posts History
Top Forums
Top Threads
Post Ranking
Credit Ranking
Online Time
Team
Moderation Stats