【HarmonyOS】应用引用media中的字符串资源如何拼接字符串
一、问题背景:
鸿蒙应用中使用字符串资源加载,一般文本放置在resoutces-base-element-string.json字符串配置文件中。便于国际化的处理。当然小项目一般直接引用字符串,不需要加载string.json的配置。
// 普通文本引用Text("测试文本字符串")// 配置文本引用Text($r("app.string.test_label"))
上面普通文本引用,拼接字符串很好处理:
: string = ""; tempNum: number = 99;// 普通文本引用Text("测试文本字符串" + this.tempString + this.tempNum)
tempString
但如果是配置文本引用,如何拼接字符串呢?
二、解决方案:
-
在xx.json文本配置文件中,对变量拼接内容增加%d占位符来拼接,d代表数字,s代码字符串。
如果有国际化需求,多个配置文件都需要修改:
-
在引用文本配置时,第二个参数进行占位符的赋值。
赋值过程和字符串拼接的占位符从左到右的顺序一致
三、DEMO示例:
{ tempString: string = ""; tempNum: number = 99;build() {Column() {// 普通文本引用Text("测试文本字符串" + this.tempString + this.tempNum)// 配置文本引用Text($r("app.string.test_label"))Text($r("app.string.test_label", 10, 99,"test"))Text($r("app.string.test_label", this.tempNum, this.tempNum, this.tempString))}.height('100%').width('100%').justifyContent(FlexAlign.Center)}
}
struct TestPage
{"string": [{"name": "test_label","value": "价格是%d个,你好%d位,哈哈哈哈%s"}]
}