背景:类似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
获取的多语言翻译后的字符串,比如{} speed
format
把占位符{}
替换为input*
2. 测试
2.1 测试按钮 切换报警类型