SwiftUI中如何本地化Text的relative样式?
解决小组件中Relative格式Text本地化失效的问题
检查项目本地化配置
确认主App和小组件的Info.plist都添加了目标语言(比如中文)的本地化支持,Localizations列表里必须包含所需语言,别只配置主App却漏了小组件。手动绑定本地化环境
小组件可能默认没继承系统本地化设置,给Text组件手动指定当前设备的Locale:Text(date, style: .relative) .environment(\.locale, Locale.current)也可以直接指定具体语言标识(例如中文简体):
Text(date, style: .relative) .environment(\.locale, Locale(identifier: "zh_CN"))确认系统语言优先级
去设备「通用-语言与地区」里,把目标语言拖到列表最顶部,多语言环境下优先级直接影响显示效果。清理缓存并重启
删除App和小组件,用Cmd+Shift+K清理Xcode缓存后重新编译安装,同时重启设备确保系统语言设置完全生效。自定义相对时间格式化(备选)
如果上述方法都无效,用RelativeDateTimeFormatter手动生成本地化文本:let formatter = RelativeDateTimeFormatter() formatter.unitsStyle = .short formatter.locale = Locale.current let relativeText = formatter.localizedString(for: date, relativeTo: Date()) Text(relativeText)
内容的提问来源于stack exchange,提问作者Ali Seymen
相关产品推荐
相关产品推荐

