You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在String Catalog中手动追踪含插值的自定义键

使用String Catalog自定义键处理带插值的本地化字符串

核心方案

完全不需要用String(format: NSLocalizedString(...))这种老旧写法,利用String Catalog的占位符配置+SwiftUI原生的Text初始化器就能实现简洁、类型安全的自定义键本地化。

具体步骤

1. 在String Catalog中配置自定义键与占位符

打开Localizable.xcstrings:

  • 点击"+"新增条目,设置Key为自定义标识(比如session_count)
  • 在Base语言的Value字段中,写入带占位符的格式:
    • 方式一(兼容Foundation格式符):%lld Sessions(适用于Int类型参数)或%@ Sessions(适用于String类型)
    • 方式二(更直观):\(count) Sessions,然后在右侧「Parameters」面板添加参数count,选择对应的数据类型(比如Int)
  • 若需要复数适配,可在对应语言的条目里设置复数规则(比如英文单数%lld Session、复数%lld Sessions),String Catalog会自动根据参数值匹配正确翻译

2. 代码中调用

直接使用SwiftUI的Text初始化器,传递自定义键和参数即可:

// 假设numSessions是Int类型
Text("session_count", arguments: numSessions)

或者更明确的类型安全写法:

Text(localized: "session_count", defaultValue: "\(numSessions) Sessions", arguments: numSessions)

优势对比

  • 比老写法简洁得多,无需多层嵌套调用
  • String Catalog可视化管理所有本地化内容,包括参数类型、复数规则
  • 原生支持SwiftUI的视图渲染,无需手动转换字符串

内容的提问来源于stack exchange,提问作者Nerdy Bunz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 14:35:10