этот код работает для английских, испанских и немецких порядковых номеров, но не работает с русскими или итальянскими порядковыми номерами.
'ru-RU'
,'it-IT'
тоже не работают
Я получаю, например, в русском языке для 2 -> два (это кардинальное число) , но я хочу порядковое число, и это будет здесь 2 -> второй.
Я получаю, например, по-итальянски 2 -> due (это кардинальное число), но мне нужен порядковый номер, и это будет здесь 2 -> secondo.
Обновление:
Я нашел решение с работами на французском, испанском, немецком и некоторых других языках:
мужские порядковые числительные: %spellout-ordinal-maskuline
женские порядковые числительные: %spellout-ordinal-feminine
русская и итальянская версии не работают, а я уже пробовал с -мужским/-женским родом
$ru_ordinal = new NumberFormatter('ru', NumberFormatter::SPELLOUT);
$ru_ordinal->setTextAttribute(NumberFormatter::DEFAULT_RULESET, "%spellout-ordinal");
format(42)
(по порядку): сорок два, cuarenta y dos и quaranta due. Это ожидаемый результат? Убедитесь, что у вас установлен intl. - person Maerlyn   schedule 18.06.2014$ru_ordinal->format(42);
возвращает сорок два вместо сорок второй. это странно - person user1978142   schedule 19.06.2014it's the second day
, и вы не хотите:It's the two day
, верно? - person Rizier123   schedule 10.01.2015it's the second day
на всех языках, или вы хотите, чтобы он был похож наit's the two day
? Например, вы не хотите использовать только переведенный номер, вы хотели его с датой или что-то в этом роде? - person Rizier123   schedule 11.01.2015second
. Я хочу перевести номер в одиночку! - person Grischa   schedule 11.01.2015второй
правильно? и прямо сейчас вы получаете первый? - person Rizier123   schedule 11.01.2015due
вместо 2 ->secondo
. - person Grischa   schedule 11.01.2015