背景:类似HMI的报警内容因为语言不同,内容不同,会有复杂要求
例如:
报警1在中文下显示车速 100,在英文下显示100 speed。而数字是变化的,无法使用固定翻译来实现。在3.9.8版本以前需要用c++做字符串拼接,现在3.9.8版本可以通过绑定快速实现。
1. 实现方案
1.1 快速搭建界面
Empty Node 2D:报警文言父节点Text Block 2D:报警文言节点Stack Layout 2D:报警1~报警3测试按钮Stack Layout 2D_1:中英文切换测试按钮


1.2 添加属性
Empty Node 2D 添加报警类型接口NewPropertyTypeText,范围[warn1,warn2,warn3…]

NewPropertyTypeValue1,表示可能的输入值1
NewPropertyTypeValue2,表示可能的输入值2
1.3 多语言
这里只演示有输入值的情况,输入值通过{}占位符代替

1.4 绑定
报警文言的绑定是关键
input1,input2...是可能的输入值msg是通过acquire获取的多语言翻译后的字符串,比如{} speedformat把占位符{}替换为input*

2. 测试
2.1 测试按钮 切换报警类型




2.2 测试按钮 切换语言


2.3 演示

博客介绍了kanzi 3.9.8多国语的实现方案与测试。因类似HMI报警内容受语言影响,旧版本需字符串拼接,现版本可通过绑定快速实现。实现方案包括快速搭建界面、添加属性、多语言处理及绑定;测试部分有切换报警类型、切换语言及演示。

被折叠的 条评论
为什么被折叠?



