我的question about using NumberFormatter with PHP对于俄罗斯序数号的答案我得到了答案,ICU不支持对序数进行拼写。
但我在Unicode.jsp website的数字格式测试器上发现,他们有很多用于序号拼写的表达式。
我们必须添加性别和(语法)案例,而不是添加性别,例如:spellout-ordinal-masculine-accusative
。
与其他语言一样,它们也是规则spellout-ordinal-masculine
。
我的托管网站使用旧的ICU版本4.4.1,因此我每次都会获得基本结果:'один',但我想得到'первый'。
我在3v4l.org和Output for 7.1@2015-11上尝试过,我得到了正确的结果。
我们已经为NumberFormatter @Github创建了俄语和波兰序号的插件,但我想知道,为什么使用PHP 7.1它会显示正确的值。
来自3v4l.org的结果
的结果spellout-ordinal-masculine-accusative
的结果码
$formatter = new NumberFormatter('ru', NumberFormatter::SPELLOUT);
$formatter->setTextAttribute(NumberFormatter::DEFAULT_RULESET, "%spellout-ordinal-masculine");
echo $formatter->format(1);
编辑:我尝试了很多数字,最后一个是21000,这是拼写出来的。