前天下载了 CnWizards_0.9.5.562_Unstable 源码, 对于其中包含的 CnVCL 源码也进行了编译。
在测试其中的 CnMultiLang 时, 发现了几个问题:
1、CnMultiLang 中的 TCnLangTranslator 在生成语言翻译文件时,选择保存按钮,出现列表溢出BUG,无法保存语言文件。
这个问题,可能需要开发组解决了(呵呵,我用 C++Builder 6.0,不是很熟悉 DELPHI)。
2、CnLangMgr.pas 中的函数 RegisterTranslateString ,在BCB中转换相应的 HPP 时有缺陷(应该是BCB的转换问题),被
转换为下面的形式:
extern PACKAGE void __fastcall RegisterTranslateString(const System:
AnsiString StringAddr, const AnsiString IDStr);
这样的导出描述,导致BCB创建的工程,无法正确连接 RegisterTranslateString 函数。 使用BCB 的兄弟,请修改为下面的形式即可:
extern PACKAGE void __fastcall RegisterTranslateString(const AnsiString *StringAddr, const AnsiString IDStr);
其他:
1、建议在 GetLanguageFileExt 的基础上,增加一个 SetLanguageFileExt 函数,配对产生一个 LanguageFileExt 属性,允许用户自己
指定语言翻译文件的扩展名称,这样就不用固定为 TXT 或者 INI 了,例如我就想用 CHS.lang 这样的名字,呵呵。
2、最新版本的独立多语言控件包。这个主要发挥折腾精神,先从网站上下载独立版本的 CnPack_MultiLang.zip 文件,然后下载 CnVCL20100101 版本(暂时推荐这个版本,像上面说的第一个问题就不存在), 然后复制CnVCL20100101中的相关文件去覆盖 CnPack_MultiLang.zip 独立控件包中的文件,然后编译即可,这样就获得了最新版本的多语种控件包,呵呵。