【发布时间】:2023-08-23 03:21:01
【问题描述】:
此代码适用于英语、西班牙语和德语序数,但不适用于俄语或意大利语序数。
'ru-RU','it-IT' 也不行
例如,我在俄语中得到 2 -> два(这是基数),但我想要序数,这里是 2 -> второй。
例如,我用意大利语表示 2 -> due(这是基数),但我想要序数,这将是 2 -> secondo。
更新:
我找到了一个解决方案,其中包含法语、西班牙、德语和其他一些语言的作品:
maskuline 序数:%spellout-ordinal-maskuline
女性序数:%spellout-ordinal-feminine
俄语和意大利语版本不起作用,我已经尝试使用 -maskuline/-feminine
$ru_ordinal = new NumberFormatter('ru', NumberFormatter::SPELLOUT);
$ru_ordinal->setTextAttribute(NumberFormatter::DEFAULT_RULESET, "%spellout-ordinal");
【问题讨论】:
-
我打电话给
format(42)结果是(按顺序):“сорок два”、“cuarenta y dos”和“quaranta due”。这是预期的输出吗?确保您已安装 intl。 -
42 的序数,称为“сорок второй”,西班牙语为“cuadragésimo segundo”,意大利语为“quarantaduesimo”
-
是的,我测试了它
$ru_ordinal->format(42);返回 сорок два 而不是 сорок второй。这很奇怪 -
@Rizier123 我想要俄语和意大利语的序数,在您的示例中为
second。我想单独翻译这个数字! -
@Rizier123 完全是意大利语,我得到 2 ->
due而不是 2 ->secondo。
标签: php icu intl numberformatter