虽然,说是高级编程,但实际上依然没有多少需要你自己做的事情。在前言部分,我们说过,QLang 支持资源字符串、常量和组件的非空字符串属性的翻译支持。至于资源字符串怎么加入的问题,咱在这里不再缀述,参考 Delphi/C++ Builder 帮助中关于 resource strings 的说明。
【常量字符串】
现在我们说说常量字符串,如下面的代码:
ShowMessage('Hello,world');
其中的 Hello,world 就是一个常量字符串,那么在使用 QLang 后,上面的代码应该做一点点改动:
ShowMessage(_('Hello,world'));
唯一的区别是将常量字符串用 _() 函数包含起来,这样子,编辑器就可以自动扫描并识虽需要翻译的常量字符串了。当然了,如果是不需要翻译的常量字符串,也就千万不要改成这个样子。
【组件】
至于组件的字符串属性,我们需要注意某些特殊的组件,它保存在 DFM 文件中的字符串属性名称和在对象观察器(Object Inspector)中显示的名称并不一致,对于系统默认没有支持的组件,您可以:
- 将组件发给我一份,我为您在多语言编辑器中增加对应的支持;
- 自己修改多语言编译器源码,增加相关的支持;
- 手动修改生成的 QLang 文件,将其转换为正确的属性名称。
【响应语言切换事件】
在某些情况下,我们需要在用户选择不同的语言时,做出某些响应。比如,我们缓存了某个字符串的常量的值,如果用户变更了语言,我们就需要重新缓存,这时我们就需要响应用户语言事件的事件了。
在需要响应时,我们通过调用 LangManager.AddListener 来添加一个响应函数,在不需要再响应时,只需要调用 LangManager.RemoveListener 移除这个响应函数即可。
【其它】
如果您有啥特殊的需要,欢迎进入 QLang 的官方群来讨论。