【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"
}
]
}