Я хочу создать быстрое приложение, которое преобразует цифры на арабском языке в слова. Например, как в 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
Преобразовать цифры в слова, позвонить тафкиту на арабском языке ⇐ IOS
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение