Swift:当我的设备设置为 "de" 并且我的方案设置为 "System Language" 时,为什么 DateFormatter 使用语言环境 "en"
Swift: Why is DateFormatter using locale "en" when my device is set to "de" and my Scheme is set to "System Language"
我的 iPhone 设置为德语。我的调试方案应用程序语言设置设置为系统语言。我仍然必须手动应用 formatter.locale... 否则我会得到“星期二”而不是“Dienstag”。当然我不想手动设置语言环境。我希望将输出本地化为用户选择的内容。
func weekday(forDate day: Date) -> String {
let formatter = DateFormatter()
//formatter.locale = Locale.current // gives me locale en
formatter.locale = Locale(identifier: "de") //without this line I get locale en
formatter.setLocalizedDateFormatFromTemplate("E")
return formatter.string(from: day)
}
是否有我不知道的设置覆盖了我提到的设置?
PS: 在 Playgrounds 中语言环境是正确的。
PPS:在我的 Mac 上,模拟器的语言环境设置为 en,尽管我的 Mac 系统设置为德语。不知道为什么,还没太在意。令我困扰的是 iPhone 它不尊重语言环境。
转到您的 Target 并单击“编辑方案”,然后从选项卡中将您的应用程序语言设置为“德语”,如下所示。
我终于找到这个 post 解决了这个问题:
How do I change the Development language in Xcode before internationalizing my app?
我不得不在 .xcodeproj 中手动编辑 project.pbxproj 并将开发区域设置为德语:
developmentRegion = de;
现在无需在代码中指定语言环境,同时将 Scheme 设置为“系统语言”即可运行。
我的 iPhone 设置为德语。我的调试方案应用程序语言设置设置为系统语言。我仍然必须手动应用 formatter.locale... 否则我会得到“星期二”而不是“Dienstag”。当然我不想手动设置语言环境。我希望将输出本地化为用户选择的内容。
func weekday(forDate day: Date) -> String {
let formatter = DateFormatter()
//formatter.locale = Locale.current // gives me locale en
formatter.locale = Locale(identifier: "de") //without this line I get locale en
formatter.setLocalizedDateFormatFromTemplate("E")
return formatter.string(from: day)
}
是否有我不知道的设置覆盖了我提到的设置?
PS: 在 Playgrounds 中语言环境是正确的。
PPS:在我的 Mac 上,模拟器的语言环境设置为 en,尽管我的 Mac 系统设置为德语。不知道为什么,还没太在意。令我困扰的是 iPhone 它不尊重语言环境。
转到您的 Target 并单击“编辑方案”,然后从选项卡中将您的应用程序语言设置为“德语”,如下所示。
我终于找到这个 post 解决了这个问题: How do I change the Development language in Xcode before internationalizing my app?
我不得不在 .xcodeproj 中手动编辑 project.pbxproj 并将开发区域设置为德语:
developmentRegion = de;
现在无需在代码中指定语言环境,同时将 Scheme 设置为“系统语言”即可运行。