Я хочу удалить точку (".") Из NumberFormatter
, потому что проблема с VoiceOver, который читает 20.000 (точка - разделитель в испанском sh), равно 20 вместо 20000.
В следующем примере вы можете проверить, что только currencyPlural является единственным NumberFormatter.Style
, который объявляет полную строку для валюты, но игнорирует флаг usesGroupingSeparator
.
Пример:
func formatTest(_ style: NumberFormatter.Style, usesGroupingSeparator separator: Bool) -> String? {
let formatter = NumberFormatter()
formatter.locale = Locale(identifier: "es_CL")
formatter.usesGroupingSeparator = separator
formatter.numberStyle = style
return formatter.string(from: NSNumber(value: 20000))
}
formatTest(.currency, usesGroupingSeparator: false) // "$20000"
formatTest(.currencyAccounting, usesGroupingSeparator: false) // "$20000"
formatTest(.currencyISOCode, usesGroupingSeparator: false) // "CLP 20000"
formatTest(.currencyPlural, usesGroupingSeparator: false) // "20.000 pesos chilenos"
formatTest(.currency, usesGroupingSeparator: true) // "$20.000"
formatTest(.currencyAccounting, usesGroupingSeparator: true) // "$20.000"
formatTest(.currencyISOCode, usesGroupingSeparator: true) // "CLP 20.000"
formatTest(.currencyPlural, usesGroupingSeparator: true) // "20.000 pesos chilenos"
Любая идея, как почини это? Пожалуйста, не публикуйте ответ, такой как удаление точки вручную, потому что я хочу использовать формат для нескольких языков.
Дополнительно: голос за кадром на испанском языке sh ВСЕГДА объявляйте $
в долларах, поэтому мне нужен полный текст.