我们知道,QLang 可以承担绝大多数情况下的自动翻译任务,但是,如果您的有些内容是动态添加的,那么很显然,QLang 就需要您的人工干予以实现准确的翻译。
比如,我们在窗体上放置一个 TLabel,在 Form 的 OnCreate 里为其动态赋值,示例代码如下:
1 2 3 4 5 6 |
procedure TForm1.FormCreate(Sender:TObject); begin ... Label1.Caption:=_('Hello,world'); ... end; |
这样子,程序在启动时,设置了 Label1 的标题为 Hello,world 的当前语言翻译,如果用户变更了语言,我们这里有两个选择:
- 让用户重启程序,以便使用新的语言显示内容;
- 使用 LangManager.AddListener 添加一个语言变更事件的响应,在其中加入响应代码:
123456789...LangManager.AddListener(DoLanguageChanged);...procedure TForm1.DoLanguageChanged(ASender:TObject);beginLabel1.Caption:=_('Hello,world');end;...
注意一点,在当前窗体释放前,应调用 LangManager.RemoveListener来移除对语言变更事件的响应。
经过上述的处理,你的程序已经能完美的应对用户语言切换操作了。
0 条评论
沙发空缺中,还不快抢~