Xcode 15 Strings Catalog能否实现无数值的复数翻译?
在Xcode 15 Strings Catalog中实现无数值的复数翻译方法
完全可以实现不带数值的复数翻译,不需要强制在翻译值里加%d,只是配置和调用方式需要注意:
配置Strings Catalog条目
- 新建或打开Strings Catalog文件,添加一个新条目,将类型设置为
Plural - 在对应的复数变体(比如
one、other,根据目标语言的复数规则调整)中,只填写单复数文本:比如one栏填Day,other栏填Days,不要加任何占位符
- 新建或打开Strings Catalog文件,添加一个新条目,将类型设置为
代码中调用
使用带count参数的本地化字符串初始化方法,直接获取对应复数形式的单词:let dayText = String(localized: "picker.days", count: 1) // 返回"Day" let daysText = String(localized: "picker.days", count: 5) // 返回"Days"
和stringsdict的区别:
- stringsdict是通过XML结构拆分复数规则和文本,而Strings Catalog把这些整合到可视化界面中,但核心逻辑一致——都是根据传入的数值匹配对应的复数变体文本
- 只要确保条目类型是
Plural,且调用时传入count参数,即使翻译文本里没有%d,系统也能正确返回对应的单复数单词,不会包含数值
内容的提问来源于stack exchange,提问作者iVentis
相关产品推荐
相关产品推荐

