PHP номера в слова ИСПАНСКИЙ! - PullRequest
3 голосов
/ 12 июля 2011

Кто-нибудь знает код PHP с бесплатной лицензией, который преобразует числа в слова на испанском?
Он необходим для моей работы по составлению счетов, поэтому он должен быть точным.
Мои знания испанского языка практически не-существует, так что, вероятно, было бы сложно написать это самому;Я ничего не знаю о испанской грамматике.

Редактировать: я написал свою собственную версию этого, пока он работает только для 3-значных чисел (по обе стороны от десятичного знака), но этохорошее начало.Если я когда-нибудь получу большой (запланировано 5 языков), я, вероятно, поделюсь им на github.Не ставьте на это, хотя.

Ответы [ 4 ]

6 голосов
/ 02 августа 2013

Для этого вы можете использовать расширение PHP Intl.

if (version_compare(PHP_VERSION, '5.3.0', '<')
    || !class_exists('NumberFormatter')) {
    exit('You need PHP 5.3 or above, and php_intl extension');
}

$formatter = new \NumberFormatter('es', \NumberFormatter::SPELLOUT);
echo $formatter->format(1234567) . "\n";

Выход:

все время до и после войны

Работает не только с испанским, но и со многими другими языками.

3 голосов
/ 12 июля 2011

Есть ли простой способ преобразовать число в слово в PHP?

Исходя из вышеизложенного, вы можете вывести «слово» из числа, а затем перевести его влюбой язык, который вам нравится, используя любой из Translate API, или ваши собственные поиски.

Редактировать

Другой способ, которым вы можете воспользоваться, - это просто жесткое кодирование в PHP-файле или текстовом файле большого массива значений:

 $numTranslation = array(1 => "uno", 2 => "dos");

Затем в вашем коде просто извлеките echo $numTranslation[2], если число было 2, чтобы распечатать испанский эквивалент.

Изменить 2

Просто сделать егоНемного полнее, если вы когда-нибудь захотите поддерживать несколько языков, а не только испанский:

 $numTranslation = array(
   1 => array("en" => "One", "es" => "uno"), 
   2 => array("en" => "Two", "es" => "dos")
 );

И распечатать его для конечного пользователя: echo $numTranslation[2]['es'];, чтобы получить испанский эквивалент ...

1 голос
/ 12 июля 2011

Единственное, что я смог найти, это скрипт Perl .

Сам код легко писать на PHP, а из сценария Perl вы можете получить логику и испанские слова для чисел.

0 голосов
/ 12 июля 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...