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如何解决这个问题?有图书馆吗?
它似乎是基于 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
,找出金额是百万还是数十亿,并查询相应的字典以获取其值。
我正在开发一款可以显示大量货币的应用程序。 为了使它对用户更友好,最好用字母显示数字,例如:
,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如何解决这个问题?有图书馆吗?
它似乎是基于 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
,找出金额是百万还是数十亿,并查询相应的字典以获取其值。