Swift:使用本地化的百万和十亿文本格式化货币

Swift: Formatting currencies with localized million and billion text

我正在开发一款可以显示大量货币的应用程序。 为了使它对用户更友好,最好用字母显示数字,例如:

,514,983,671 -> .5B // English
3,306,777.10 € -> 3,31 Mio. € // German
kr 23 000 000 -> kr 23 mill. // Norwegian

数字应具有 minimumSignificantDigits = 1 和 maximumSignificantDigits = 3。

Swift如何解决这个问题?有图书馆吗?

Android has this solution

它似乎是基于 swift-corelibs-foundation: Github,但我看不出如何在我的应用程序中使用它。

我是否必须通过本地化翻译自己制作逻辑? 我在这里找到了对大数使用通用缩写 K/M/B 的答案:iOS convert large numbers to smaller format,但它并没有解决整个问题。

您将不得不实施自己的解决方案,但这并不难。一种方法是创建两个字典,其中键是区域设置标识符,值是翻译:

let millionTrans = [ "en_US" : "million", ...]
let billionTrans = [ "en_US': "billion", ...]

然后获取Locale.current,找出金额是百万还是数十亿,并查询相应的字典以获取其值。