我的iPhone被设置为德语。我的调试方案应用程序语言设置被设置为系统语言。我仍然必须手动应用formatter.locale...否则我得到的是“Tuesday”而不是“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:在Playground的区域设置是正确的。
PPS:在我的Mac上,模拟器的区域设置为en,尽管我的Mac系统设置为德语。不知道为什么,还不太介意。让我困扰的是,在iPhone上,它不尊重区域设置。
3条答案
按热度按时间rta7y2nd1#
我终于找到了这个帖子,解决了这个问题:How do I change the Development language in Xcode before internationalizing my app?
我不得不在.xcodeproj中手动编辑project.pbxproj,并将开发区域设置为德语:
现在,它无需在代码中指定语言环境,同时将Scheme设置为“系统语言”。
xn1cxnb42#
转到您的目标,然后单击编辑方案,并设置您的应用程序语言为“德语”从选项选项卡如下。
a7qyws3x3#
对于那些不想在测试不同语言环境时每次都编辑pbxproj配置文件的人,这里有另一种方法(XCode 14,IOS16.2):
这允许预期的行为-在Xcode方案中设置区域和语言,或者将其保留在系统语言和系统区域以使用设备设置。