使用Swift中的Locale设置使用NumberFormatter的基数

Uma*_*mir 6 locale cardinality number-formatting nsnumberformatter swift

怎样才能基数(One, Two, Three)使用NumberFormatter使用区域设置的斯威夫特.

例如,我可以1 minute -> One minute使用英语Locale设置进行转换.但是对于挪威人来说,它应该是Et minutt,而它转化为En minutt,这是错误的.挪威语翻译One是,En但是当我们在某个句子中使用它时,有时它应该是Et.这是我的代码示例.

let measurement = Measurement(value: 1, unit: UnitDuration.minutes)
let measurementFormatter = MeasurementFormatter()
measurementFormatter.unitStyle = .long
measurementFormatter.locale = Locale(identifier: "nb_no")
let formatter = NumberFormatter()
formatter.locale = Locale(identifier: "nb_no")
formatter.numberStyle = .spellOut
measurementFormatter.numberFormatter = formatter
let result = measurementFormatter.string(from: measurement)
Run Code Online (Sandbox Code Playgroud)

输出:

én minutt

预期产出

et minutt