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

SwiftUI本地化:如何拆分使用多个字符串目录管理翻译内容

SwiftUI 拆分多字符串目录实现方案

完全可以拆分多个字符串目录来管理不同模块/视图的翻译内容,之前编译不识别是因为没做对配置和调用方式,具体步骤如下:

  • 创建多份.strings文件:按视图或模块创建独立的strings文件,比如HomeView.strings、SettingsView.strings,每个文件存放对应模块的翻译键值对。
  • 开启本地化支持:选中新创建的strings文件,在右侧检查器的「Localization」栏里,勾选你需要支持的语言(比如中文、英文),Xcode会自动生成对应语言的本地化目录结构。
  • 代码中指定tableName调用:默认的NSLocalizedString和SwiftUI的Text会读取Localizable.strings,所以调用时需要指定对应文件的table名称(就是strings文件的文件名,不带后缀):
    • 直接用Text:Text("home_welcome", tableName: "HomeView")
    • 用NSLocalizedString:NSLocalizedString("settings_title", tableName: "SettingsView", comment: "设置页标题")
  • 可选:封装扩展简化调用:如果觉得每次写tableName麻烦,可以给String加个扩展:
extension String {
    func localized(in table: String) -> String {
        NSLocalizedString(self, tableName: table, comment: "")
    }
}
// 使用示例:
Text("profile_edit".localized(in: "ProfileView"))

排查编译不识别的常见问题

  • 确认新的strings文件已加入当前target(选中文件,右侧检查器「Target Membership」勾选你的app target)
  • 检查tableName和strings文件名完全一致(注意大小写敏感)
  • 确保对应语言的strings文件里存在对应的key,键值对格式正确(比如"key" = "翻译内容";)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 02:12:05