‘ru-RU’,’it-IT’也行不通@H_502_2@
我用俄语获得2 – > два(这是基数),但我想要序数,这将是2 – > второй.@H_502_2@
我在意大利语中得到2 – >到期(这是基数),这将是2 – > SECONDO.@H_502_2@
更新:@H_502_2@
我找到了一个法语,西班牙语,德语和其他语言的解决方案:@H_502_2@
maskuline序数:%spellout-ordinal-maskuline@H_502_2@
女性序数:%spellout-ordinal-feminine@H_502_2@
俄语和意大利语版本不起作用,我已经尝试使用-maskuline / -feminine@H_502_2@
$ru_ordinal = new NumberFormatter('ru',NumberFormatter::SPELLOUT); $ru_ordinal->setTextAttribute(NumberFormatter::DEFAULT_RULESET,"%spellout-ordinal");
你可以在这里查看:http://saxonica.com/html/documentation/extensibility/config-extend/localizing/ICU-numbering-dates/ICU-numbering.html@H_502_2@
…俄语(ru)有以下格式:@H_502_2@
> spellout-cardinal-feminine(scf)
> spellout-cardinal-masculine(scm)
> spellout-cardinal-neuter(scne)
>拼写编号(sn)
> spellout-numbering-year(sny)@H_502_2@
……和意大利语(它):@H_502_2@
> spellout-cardinal-feminine(scf)
> spellout-cardinal-masculine(scm)
>拼写编号(sn)
> spellout-numbering-year(sny)
> spellout-ordinal-feminine(sof)
> spellout-ordinal-masculine(som)@H_502_2@
这就是为什么你将无法为(ru)和以下代码设置序数格式的原因:@H_502_2@
$nFormat = new NumberFormatter('it',NumberFormatter::SPELLOUT); $nFormat->setTextAttribute(NumberFormatter::DEFAULT_RULESET,"%spellout-ordinal-feminine"); var_dump($nFormat->format(42));
将打印:@H_502_2@
string 'quarantaduesima' (length=17)
像你(可能)想要的.@H_502_2@
编辑:@H_502_2@
有关二手格式的信息,参考ICU:http://php.net/manual/en/numberformatter.create.php@H_502_2@
使用PHP 5.4.x和ICU版本=>进行测试51.2; ICU数据版本=> 51.2.
你可以使用shell命令:@H_502_2@
$PHP -i | grep ICU
检查您的ICU版本.@H_502_2@
对于最新的ICU版本,您应该可以安装/更新PHP-intl软件包:http://php.net/manual/en/intl.installation.php@H_502_2@
编辑2:@H_502_2@
我已经为NumberFormatter创建了扩展(到目前为止已经有了抛光序数).欢迎提供其他语言:https://github.com/arius86/number-formatter@H_502_2@