Как преобразовать числа в слова (написание чисел) в Symfony 3

Целью программирования является многоцелевая оптимизация, мы пишем код для автоматизации вещей, для выполнения которых вручную потребуется некоторое время. Для многих проектов вам нужно будет преобразовать число в его представление слов, чтобы пользователь не записал все число в слова (например, число 123456789 со словами будет сто двадцать три миллиона четыреста пятьдесят шесть тысяч семьсот восемьдесят девять). Да, это действительно длинный номер, и я знаю, что вы даже не прочитали весь номер, так почему бы вашему пользователю захотеть написать его самому? Упростите эту задачу для своих пользователей, автоматизировав ее на стороне сервера. В этой статье вы научитесь преобразовывать числа в представление их слов с помощью пакета numbers_words в проекте Symfony 3.

Требования

Для преобразования чисел в слова мы будем использовать пакет numbers_words из PEAR. В этом классе вы можете изменить целое число на простые слова. Это может быть полезно, когда вам нужно записать значение валюты, например, на счете. Этот пакет поддерживает более 20 языков, включая английский, немецкий, испанский, шведский, турецкий, русский и другие. Согласно последнему тесту, он может преобразовывать значения до 14 цифр.

Монтаж

Добавить numbers_words в своем проекте в качестве зависимости выполните следующую команду в терминале:

composer require pear/numbers_words

Или измените composer.json файл вашего проекта, добавьте зависимость вручную, а затем выполните composer install:

{
"require": {
"pear/numbers_words": "^0.18.1"
}
}

После установки вы сможете использовать пакет в своем проекте, импортировав Numbers_Words учебный класс.

использование

Класс numbers_words предоставляет статический метод toWords. Этот метод ожидает в качестве первого параметра целое число, которое необходимо преобразовать в слова, а в качестве второго параметра — идентификатор языка языка, который вы хотите, например, на английском языке:

Ответ предыдущего диспетчера будет девяносто девять триллионов девятьсот девяносто девять миллиардов девятьсот девяносто девять миллионов девятьсот девяносто девять тысяч девятьсот девяносто девять.

Другие языки

Как упоминалось ранее, пакет обеспечивает поддержку более 20 языков. Вам нужно будет предоставить языковой код только тот, который вам нужен в качестве второго параметра в статическом методе (для получения дополнительных кодов, пожалуйста, посетите хранилище):

 "Bulgarian", "languageCode" => "bg"),
array("languageName" => "German", "languageCode" => "de"),
array("languageName" => "Danish", "languageCode" => "dk"),
array("languageName" => "Donald Knuth number naming system", "languageCode" => "en_100"),
// notation of numbers, where one billion is 1000000 times one million.
// 1000 times million is just 'thousand million' here. The word billiard here is not used
// because English people do not use it often, and even could not know it.
array("languageName" => "British English", "languageCode" => "en_GB"),
array("languageName" => "American English", "languageCode" => "en_US"),
array("languageName" => "Spanish (Castellano)", "languageCode" => "es"),
array("languageName" => "Spanish Argentinian", "languageCode" => "es_AR"),
array("languageName" => "French ", "languageCode" => "fr"),
array("languageName" => "French (Belgium)", "languageCode" => "fr_BE"),
array("languageName" => "Hebrew", "languageCode" => "he"),
array("languageName" => "Indonesia", "languageCode" => "id"),
array("languageName" => "Italian", "languageCode" => "it_IT"),
array("languageName" => "Lithuanian ", "languageCode" => "lt"),
array("languageName" => "Dutch  ", "languageCode" => "nl"),
array("languageName" => "Polish", "languageCode" => "pl"),
array("languageName" => "Brazilian ", "languageCode" => "pt_BR"),
array("languageName" => "Romanian ", "languageCode" => "ro_RO"),
array("languageName" => "Russian ", "languageCode" => "ru"),
array("languageName" => "Turkish  ", "languageCode" => "tr_TR")
);
$responseString = "";
foreach($supportedLanguages as $language){
$convertedNumber = Numbers_Words::toWords($numberToConvert, $language["languageCode"]);
$responseString .= $language["languageName"] . " : ". $convertedNumber . "
";
}
$response = new Response($responseString);
$response->setCharset('UTF-8');
$response->headers->remove('Cache-Control');
$response->headers->set('Content-Type', 'text/html');
return $response;
}
}

И ответ будет:

Болгарский: сто двадцет и три милиона четких и черных
Немецкий: einhundertdreiundzwanzig Millionen vierhundertsechsundfünfzigtausendsiebenhundertneunundachtzig
Датский: и т. Д. Тив миллионер огненный хундреде секс и халвредс тусинде сив хундреде ниг
Система именования номеров Дональда Кнута: один миллион двадцать триста мириад сорок пять мириад шестьдесят семьсот восемьдесят девять
Британский английский: сто двадцать три миллиона четыреста пятьдесят шесть тысяч семьсот восемьдесят девять
Американский английский: сто двадцать три миллиона четыреста пятьдесят шесть тысяч семьсот восемьдесят девять
Испанский (Castellano): Ciento veintitres millones cuatrocientos cincuenta y seis mil setecientos ochenta y nueve
Испанский аргентинский: ciento veintitres millones cuatrocientos cincuenta y seis mil setecientos ochenta y nueve
Французский язык: цент вингтруа миллионы кватр цент чинквант-шесть милль сентябрь цент кватр-вингт-нов
Французский (Бельгия): цент вингтруа миллионы кватр цент чинкуанте шесть милль сент цент кватр вингт нойф
Иврит: מאה עשרים ושלושה מיליון ארבע-מאות חמישים ושישה אלפים שבע-מאות שמונים ותשעה
Индонезия: seratus dua puluh tiga juta empat ratus lima puluh enam ribu tujuh ratus делапан пулю сембилан
Итальянский: сентовентитремилониквататроцентоцин-квантазаимиацететценототантановое
Литовский: šimtas dvidešimt trys milijonai keturi šimtai penkiasdešimt šeši tūkstančiai septyni šimtai aštuoniasdešimt devyni
Голландский: eenhonderddrieentwintig-Miljoen-vierhonderdzesenvijftigDuizendzevenhonderdnegenenachttig
Польский язык: sto dwadzieścia trzy miliony czterysta pięćdziesiąt sześć tysięcy siedemset osiemdziesiąt dziewięć
Бразильский язык: сентябрь, четверть века, четверть века, день рождения, день рождения
Румынский: una sută douăzeci trei trei de milioane Patru sute cincizeci și șase de mii șapte sute optzeci și nouă
Русский: сто двадцать три миллиона четыреста пятьдесят шесть тысяч семьсот восемьдесят девять
Турецкий: бир юз йирми ю милмион дёрт юз элли алты бин йеди юз сексен докуз
Ссылка на основную публикацию
Adblock
detector