NumberFormatter :: SPELLOUT spellout-ordinal на русском и итальянском языках

этот код работает для английского, испанского и немецкого порядковых номеров, но с русскими или итальянскими порядковыми номерами он не работает.

'ru-RU' , 'it-IT' тоже не работает

Я получаю, например, по-русски два -> два (это кардинальное число), но я хочу порядковый номер, и это будет здесь 2 -> второй.

Я получаю, например, итальянский для 2 -> due (это кардинальное число), но я хочу порядковый номер, и это будет здесь 2 -> secondo.

Обновить:

Я нашел решение с работами на французском, испанском, немецком и некоторых других языках:

Маскиновые порядковые числа: %spellout-ordinal-maskuline

женские порядковые числа: %spellout-ordinal-feminine

русская и итальянская версии не работает, и я уже пробовал с -maskuline / -feminine

 $ru_ordinal = new NumberFormatter('ru', NumberFormatter::SPELLOUT); $ru_ordinal->setTextAttribute(NumberFormatter::DEFAULT_RULESET, "%spellout-ordinal"); 

    NumberFormatter использует форматирование ICU.

    Как вы можете проверить здесь: http://saxonica.com/html/documentation/extensibility/config-extend/localizing/ICU-numbering-dates/ICU-numbering.html

    Русский (ru) имеет следующее форматирование:

    • spellout-кардинально-женский (scf)
    • spellout-cardinal-masculine (scm)
    • spellout-cardinal-neuter (scne)
    • spellout-numing (sn)
    • spellout-numbering-year (sny)

    … и итальянский (это) :

    • spellout-кардинально-женский (scf)
    • spellout-cardinal-masculine (scm)
    • spellout-numing (sn)
    • spellout-numbering-year (sny)
    • spellout-ordinal-feminine (sof)
    • spellout-ordinal-masculine (som)

    Вот почему вы не сможете установить порядковый формат для (ru) и следующего кода:

     $nFormat = new NumberFormatter('it', NumberFormatter::SPELLOUT); $nFormat->setTextAttribute(NumberFormatter::DEFAULT_RULESET, "%spellout-ordinal-feminine"); var_dump($nFormat->format(42)); 

    Будет печать:

     string 'quarantaduesima' (length=17) 

    Как и вы (возможно).

    РЕДАКТИРОВАТЬ:

    Информация об использовании форматирования со ссылками на ICU: http://php.net/manual/en/numberformatter.create.php

    Протестировано с PHP 5.4.x и версией ICU => 51.2; Версия данных ICU => 51.2. Вы можете использовать команду оболочки:

     $ php -i | grep ICU 

    Чтобы проверить, какая у вас версия ОИТ.

    Для последней версии ICU вам необходимо установить / обновить пакет php-intl: http://php.net/manual/en/intl.installation.php

    EDIT 2:

    Я создал расширение для NumberFormatter (до сих пор с польский ординалы). Не стесняйтесь предоставлять другие языки: https://github.com/arius86/number-formatter

    Просто рекомендация, я не уверен, что это работает или у вас есть услуги Apache, открытые в этот момент, когда я нахожусь в колледже, но вы пытались поставить ru-RU для России. В PHP я лично ставил свои языковые коды как «en-GB»,

    http://download1.parallels.com/SiteBuilder/Windows/docs/3.2/en_US/sitebulder-3.2-win-sdk-localization-pack-creation-guide/30801.htm

    Вот список, который я нашел в Интернете с некоторыми, чтобы помочь вам.