带参数的本地化缺少一些字符串数据



我创建了一个本地化文件,它需要一个字符串参数

static var forget_title: String { 
return  NSLocalizedString("forget_title", value: "Forget "%@"?", comment: "forget title") 
}

可本地化的英文文件具有-

"forget_title" = "Forget "%@"?";

尝试使用时-

let name = "XYZ"
let bannerHeader = String(format: .forget_title, name)
print(bannerHeader)

result-忘记";XYZ

预期-忘记";XYX";?

所以它缺少一些字符串数据

附加数据-

let string = "hello "%@"?"
let someString = String(format: string, "test")

let newString = "hello %@?"
let someOtherString = String(format: newString, ""test"")
let bannerHeader = String(format: .forget_title, networkName)
print("Header - (String.forget_title)")
print("Header - (someString)")
print("Header - (someOtherString)")
print("Header - (bannerHeader)")

但如果我先打印bannerHeader如下所示-

print("Header - (bannerHeader)")
print("Header - (String.forget_title)")
print("Header - (someString)")
print("Header - (someOtherString)")

以下打印语句结果都不会显示在Xcode控制台中。使用xcode-13.4,swift-swift 5

根据@Sweeper的建议,name属性中存在隐藏字符-"XYZ\0\0\0\0\0";

如此使用-

let name = name.filter { $0.isLetter }
let bannerHeader = String(format: .forget_title, name)
print("Header - (bannerHeader)"

现在得到预期结果-忘记"XYX";?

最新更新