如果输出基于规则的数字格式化程序规则
$fnf->getPattern()
:
%digits-ordinal-masculine:
0: =#,##0==%%dord-mascabbrev=;
-x: â>%digits-ordinal-masculine>;
%%dord-mascabbrev:
0: :e%digits-ordinal-neutre:0: =%digits-ordinal-feminine=;
%digits-ordinal-reale:
0: =%digits-ordinal-feminine=;
%digits-ordinal-feminine:
0: =#,##0==%%dord-femabbrev=;
-x: â>%digits-ordinal-feminine>;
%%dord-femabbrev:
0: :e;
1: :a;
2: :a;
3: :e;
20: >%%dord-femabbrev>;
100: >%%dord-femabbrev>;
%digits-ordinal:
0: =%digits-ordinal-masculine=;
你可以看到私有规则集
dord-mascabbrev
:e%digits-ordinal-neutre:0: 1:a
然后在1之后输出,就像你在问题中描述的那样。
that rule there
). 大约三年前,sv数字格式化程序规则被修复为缺少分号,看起来有一行滑过去了。
这些规则是从Unicode联盟的CLDR(公共语言环境数据存储库)引入ICU的。我开了一个
bug report there
,因为除非在CLDR中修复,然后放入ICU,否则无法使用PHP INTL扩展。
另一种方法可能是手动修补ICU库(4.8版),然后根据修补后的库构建PECL包。