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

SwiftUI本地化字符串插值不符合预期问题排查求助

问题原因及解决方法

核心错误点

  • 第一种写法未触发本地化:Text("hello-name \(name)")只是普通字符串插值,完全没有调用iOS本地化系统,不会读取Localizable.strings内容,只会直接显示拼接后的hello-name Emma。
  • 第二种写法的逻辑与配置问题:你在NSLocalizedString中使用带占位符的"hello-name %@"作为key,虽然后端配置里有对应条目,但这种写法不符合本地化规范,且如果仍未得到预期结果,大概率是Localizable.strings的项目配置出了问题。

常见配置排查项

  • 确认Localizable.strings已添加到项目目标的本地化列表:选中文件,查看右侧检查器的「Localization」选项,确保勾选了对应语言(如English/中文)。
  • 确认文件的「Target Membership」已勾选当前项目目标。
  • 确认模拟器/设备的系统语言与Localizable.strings对应的语言一致。

正确实现方式

方式1:SwiftUI原生本地化(推荐)

SwiftUI的Text支持直接传入本地化key,自动处理占位符:

// ContentView.swift
let name = "Emma"

var body: some View {
    Text("hello-name", comment: "Greeting with user name")
}

对应的Localizable.strings:

"hello-name" = "Hello, my name is %@";

方式2:手动格式化本地化字符串

如果需要用NSLocalizedString,确保key与配置对应:

Text(String(format: NSLocalizedString("hello-name", comment: "Greeting with user name"), name))

对应的Localizable.strings同上。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 19:05:29