1

关于将 NumberFormatter 和 PHP用于俄语序数的问题的答案是,ICU 不支持序数的拼写。

但我在Unicode.jsp 网站的数字格式测试器上发现,它们有许多用于序数拼写的表达式。

我们必须添加一个性别和一个(语法)案例,而不是添加一个性别,例如: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 的结果

拼写序数阳性结果

拼写序数阳性宾格的结果

代码

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

echo $formatter->format(1);

编辑:我尝试了很多数字,第 21000 个是最后一个,它被拼写出来。

4

0 回答 0