如何在 ICU MessageFormat 中表示俄语或其他复杂复数语言的复数规则

How to represent plural rules for Russian or other complex plural languages in ICU MessageFormat

鉴于复数规则的不寻常性质,我们如何在 ICU MessageFormat 中表示俄语?

MessageFormat 支持 {arg, plural, =1 {one} other {other}} 和更复杂的 {arg, plural, =0 {none} =1 {one} =2 {few} other {several}}

但是,有时不经过一些计算不能直接根据数字确定要使用的文本;我们该怎么做?俄语有三个复数规则,基于数字的最后一位数字,11-14 除外。

我查看过的信息:

俄语语言多元化

http://www.russianlessons.net/lessons/lesson11_main.php

MessageFormat 规则

http://userguide.icu-project.org/formatparse/messages

各种语言的复数规则数

https://developer.mozilla.org/en-US/docs/Mozilla/Localization/Localization_and_Plurals

苹果 (яблоко) 的俄罗斯 ICU 多元化示例。

{arg, plural, =0 {нет яблок} one {одно яблоко} few {{arg} яблока} other {{arg} яблок}}

one 适用于以 1 结尾的数字,但 11

除外

few 适用于以 2、3、4 结尾的数字,除了 12、13 和 14

other 只是“多”形式