XCode 15.3中Localizable.xcstrings多参数键使用问题咨询
在Xcode 15.3的Localizable.xcstrings中使用多参数本地化键的正确方法
1. 修正Localizable.xcstrings的配置
你之前在键列加%lld是错误的,键就是纯标识符,不需要带参数占位符:
- 键列直接填写
homeview.detail.information - 英文值列填写
You made %lld days and %lld hours - 选中这个键的条目,打开右侧的检查器(Inspector),找到「Arguments」区域,添加两个参数:
- 第一个参数类型选「Integer」,对应
numberOfDays - 第二个参数类型选「Integer」,对应
numberOfHours
- 第一个参数类型选「Integer」,对应
2. 修改Swift代码调用本地化字符串
原来直接写字符串的方式无法关联到本地化键,要改用带参数的本地化初始化方法:
let numberOfDays = 2 let numberOfHours = 15 // 直接用Text的本地化构造器 Text(localized: "homeview.detail.information", arguments: numberOfDays, numberOfHours) // 或者先构造本地化字符串再传给Text // Text(String(localized: "homeview.detail.information", arguments: numberOfDays, numberOfHours))
为什么之前的方法失效
你在键里加入%lld后,系统找不到匹配的本地化键,所以直接显示了键文本本身。Localizable.xcstrings的键是纯标识符,参数占位符只出现在值里,且需要通过检查器明确参数类型,这样系统才能正确替换参数值。
内容的提问来源于stack exchange,提问作者LetsBeHappy
相关产品推荐
相关产品推荐

