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

Swift中如何获取设备设置里的首选语言?

解决获取设备首选语言始终返回en的问题

排查方向与解决方案

1. 检查项目本地化配置

你的代码返回en大概率是因为项目未添加目标语言的本地化支持,导致App默认 fallback 到英文:

  • 打开Xcode,选中项目根节点 → 切换到「Info」标签页 → 找到「Localizations」区域
  • 点击「+」号,添加你设备设置中选择的目标语言(比如截图里的简体中文)
  • 勾选需要本地化的资源文件(如Info.plist、Strings文件等),完成添加

2. 排查强制设置语言的代码

全局搜索项目中的AppleLanguages关键字,确认是否存在硬编码覆盖系统设置的代码:

UserDefaults.standard.set(["en"], forKey: "AppleLanguages")
UserDefaults.standard.synchronize()

如果有,删除这类代码,避免干扰系统首选语言的获取。

3. 正确获取首选语言的代码

完成上述配置后,使用以下代码即可正确获取系统首选语言列表的顶部语言:

// 获取完整语言标识(如"zh-Hans-CN")
if let topLanguage = Locale.preferredLanguages.first {
    print(topLanguage)
}

// 仅获取语言代码(如"zh-Hans"或"en")
if let languageCode = Locale.current.languageCode {
    print(languageCode)
}

额外说明

地区信息能正常显示是因为**地区(Region)和语言(Language)**是系统中独立的设置项,Locale.current.regionCode不受App本地化配置的影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 04:09:53