我试图在iOS应用程序中格式化货币值,并使用设备上当前的地区设置来使用适当的货币格式。
在模拟器中,一切似乎都运行得很好:当使用currencyFormatter.locale = Locale.current
时,它采用正确的区域设置,并以正确的货币格式打印数字。
然而,在我的iPhone上,它是用法语配置的,具有法国的区域设置,我希望使用另一种格式(例如:1 234,56欧元)。但是它不起作用,而且似乎使用了英语格式样式(例如:欧元1234,56)。
事实上,如果我在设备上从我的应用程序中打印当前的区域设置,它就不会像我所期望的那样返回fr_FR
:
NSLog(Locale.current.identifier)
>>> en_FR
该地区很好,但语言却不是,尽管该设备上的iOS显然是法语。
有人知道这件事吗?
谢谢!
发布于 2021-10-10 12:02:32
当小部件应该具有与应用程序相同的语言和iPhone语言不同时,您可以使用以下方法:
func getPreferredLocale() -> Locale {
guard let preferredIdentifier = Bundle.main.preferredLocalizations.first else {
return Locale.current
}
return Locale(identifier: preferredIdentifier)
}
https://stackoverflow.com/questions/48136456
复制相似问题