我可以在我的应用程序中使用不同的数字格式而不改变整个本地化吗?

问题描述 投票:2回答:1

我想保留用户的语言设置,但强制使用英语风格的数字格式。

所以,假设用户的iPad设置为匈牙利语。所有的单词都应该从匈牙利语Localizable.strings文件中提取。

但是!我想显示所有以点作为小数点分隔符的数字格式(所以1½应该是 "1"。1.5 而不是 1,5 匈牙利的默认值是多少,他们使用逗号作为小数点的分隔符)。)

我如何才能实现这一点,而不将应用程序中的每个NumberFormatter都设置为该语言环境?

是否有一个单独的语言和地区的应用程序范围设置?

swift internationalization format locale language
1个回答
2
投票

你可以创建一个子类 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 当你需要它。

© www.soinside.com 2019 - 2024. All rights reserved.