我想保留用户的语言设置,但强制使用英语风格的数字格式。
所以,假设用户的iPad设置为匈牙利语。所有的单词都应该从匈牙利语Localizable.strings文件中提取。
但是!我想显示所有以点作为小数点分隔符的数字格式(所以1½应该是 "1"。1.5
而不是 1,5
匈牙利的默认值是多少,他们使用逗号作为小数点的分隔符)。)
我如何才能实现这一点,而不将应用程序中的每个NumberFormatter都设置为该语言环境?
是否有一个单独的语言和地区的应用程序范围设置?
你可以创建一个子类 NumberFormatter
将会自动初始化为英文的locale。
class EnglishNumberFormatter: NumberFormatter {
private static let EnglishLocale = Locale(identifier: "en")
override init() {
super.init()
self.locale = EnglishFormatter.EnglishLocale
}
required init?(coder: NSCoder) {
super.init(coder: coder)
self.locale = EnglishFormatter.EnglishLocale
}
}
然后简单地使用 EnglishNumberFormatter
而是 NumberFormatter
当你需要它。