Subject: 关于多语言包 [Print This Page]
Author:
VictorWoo Time: 2006-10-19 11:30 Subject: 关于多语言包
发现最近多语言包的修改动作频频,想到以前没有答案的问题:各种多语言支持,哪一套好?
以前关注过大富翁,上面好像没有较权威的答案
这里CnPack里的多语言组件不知和外面的组件(包括收费的)比起来有何优劣?
也许发在这里也许不太合适,不过我想可能有朋友对比研究过这个问题,望不吝笔墨,稍许点拨,非常感谢!
Author:
Passion Time: 2006-10-19 13:31
我们的多语包的特点为“简单易用,功能也足够,存储方式可扩展”,属于组件包中比较成熟的一部分,能够比较自动地处理界面中的静态和动态窗体上的内容。但对代码中的多语功能的支持则需要开发者配合,它没有自动将代码中的字符串提取为资源字符串变量的功能。
更具体点的内容,可参考我们CVS中文档里的多语帮助文档和多语设计文档,里头说的比较详细。
Author:
VictorWoo Time: 2006-10-19 14:40
Originally posted by Passion at 2006-10-19 13:31:
我们的多语包的特点为“简单易用,功能也足够,存储方式可扩展”,属于组件包中比较成熟的一部分,能够比较自动地处理界面中的静态和动态窗体上的内容。但对代码中的多语功能的支持则需要开发者配合,它没有自动将 ...
您说的“自动将代码中的字符串提取为资源字符串变量的功能”是指源码级别的替换还是?
如果别的工具源码级别的替换功能,那么先替换再结合CnPack里的这个,岂不是很完美?
Author:
Passion Time: 2006-10-19 16:48
对,我指的是源码级别的替换,记得ModelMaker里头就有这么个自动替换生成资源字符串的功能。
这样的结合我想了想,貌似确实比较方便,但有个地方需要说明:我们翻译的字符串得用var定义(变量才能被翻译后赋值),所以如果其他工具生成的是const或resourcestring,那就得改改了。
Author:
VictorWoo Time: 2006-10-20 10:47
嗯,是ModelMaker Code Explorer,有这个功能
implementation
// START resource string wizard section
resourcestring
// START resource string wizard section
SDef = 'def';
// END resource string wizard section
SAbc = 'abc';
// END resource string wizard section
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
strVar: string;
const
strConst = 'abc';
begin
strVar := SAbc;
strVar := strVar + SDef;
end;
在begin..end里的 := 右边,原先是'abc'和'def',被MMX重构了。
不过我重构了两次,居然MMX生成了两遍
// START resource string wizard section 和
// END resource string wizard section
似乎有点SB?
MMX没有重构const常量:
const
strConst = 'abc';
这样的话剩下的活是不是完全可以交给CnPack处理了(假设程序中不用const的话)?
Author:
Passion Time: 2006-10-20 11:55
也不能说完全让CnPack自动处理了。
像
const
strConst = 'abc';
就得手工改写成:
var
strConst: string = 'abc';
然后在指定的语言条目中增加一条:
strConst=某某文字
然后在语言切换的事件里头写:
TranslateStr(strConst, 'strConst');
不写这句的话,strConst的内容是不会被翻译到指定语言的。
Author:
VictorWoo Time: 2006-10-22 10:58
oic, thanks
Welcome to CnPack Forum (http://bbs.cnpack.org/) |
Powered by Discuz! 5.0.0 |