Swift: форматирование валют с локализованным миллионным и миллиардовым текстом - PullRequest
0 голосов
/ 04 февраля 2020

Я работаю над приложением, которое показывает валюты с большими числами. Чтобы сделать его более удобным для пользователя, было бы неплохо показать цифры с буквами, например:

$ 24 514 983 671 -> $ 24,5 Б // Engli sh
3 306 777,10 € -> 3,31 млн. , € // Немецкий
23 000 000 крон -> 23 млн. Крон // Norwegian

Числа должны иметь minSignificantDigits = 1 и MaximumSignificantDigits = 3.

Как это решить в Swift? Доступна ли какая-либо библиотека?

Android имеет это решение

Кажется, она основана на swift-corelibs-foundation: Github , но я не вижу, как использовать его в своем приложении.

Придется ли мне делать логи c самостоятельно с локализованными переводами? Я нашел ответ для использования общих сокращений K / M / B для больших чисел здесь: iOS преобразовать большие числа в меньший формат , но это не решает всей проблемы.

1 Ответ

0 голосов
/ 04 февраля 2020

Вам придется реализовать собственное решение, но это не сложно. Один из способов go состоит в том, чтобы создать два словаря, ключом которых будет идентификатор локали и значение перевода:

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

, затем получите Locale.current, выясните, находится ли сумма в миллионы или миллиарды и запросить соответствующий словарь, чтобы получить его значение.

...