Преобразовать цифры в слова, позвонить тафкиту на арабском языкеIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Преобразовать цифры в слова, позвонить тафкиту на арабском языке

Сообщение Anonymous »

Я хочу создать быстрое приложение, которое преобразует цифры на арабском языке в слова. Например, как в https://tafqeet.com
с названием валюты
Пример: 100,5 будет выглядеть как « مائة دولار أمريكي و خمسون سنت لا غير», что можно перевести как «Сто долларов США и Пятьдесят центов»
Я уже знаю, как это сделать на английском языке. Вот код Swift, который я использую для преобразования чисел в слова на английском языке:
func numberToWords(_ num: Int) -> String {
let units = ["", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"]
let teens = ["", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"]
let tens = ["", "Ten", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"]
let thousands = ["", "Thousand", "Million", "Billion"]

if num == 0 {
return "Zero"
}

var num = num
var result = ""
var thousandCounter = 0

while num > 0 {
if num % 1000 != 0 {
result = helper(num % 1000) + thousands[thousandCounter] + " " + result
}
num /= 1000
thousandCounter += 1
}

return result.trimmingCharacters(in: .whitespaces)
}

private func helper(_ num: Int) -> String {
let units = ["", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"]
let teens = ["", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"]
let tens = ["", "Ten", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"]

if num == 0 { return "" }
if num < 10 { return units[num] + " " }
if num < 20 { return teens[num - 10] + " " }
if num < 100 { return tens[num / 10] + " " + helper(num % 10) }
return units[num / 100] + " Hundred " + helper(num % 100)
}

Это хорошо работает для английского языка, но в арабском языке более сложные грамматические правила и форматы чисел. Мне известны такие инструменты, как NSNumberFormatter, но они не поддерживают напрямую преобразование арабских чисел в слова.
How can I implement number-to-word conversion in Arabic in Swift, considering:
• The grammar rules of Arabic numbers.
• The support for fractional numbers like 105.75.

Any help, suggestions, or examples would be greatly appreciated!


Подробнее здесь: https://stackoverflow.com/questions/793 ... -in-arabic
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»