这是一个令人讨厌的错误,我花了将近一个小时才弄清楚。好吧,事实证明在ICU
52.1 中(可能之前也是如此)我们有以下内容:
set34{
many{
"v = 0 and i % 10 = 0 or v = 0 and i % 10 = 5..9 or v = 0 and i % 100"
" = 11..14 @integer 0, 5~19, 100, 1000, 10000, 100000, 1000000, …"
}
one{
"v = 0 and i % 10 = 1 and i % 100 != 11 @integer 1, 21, 31, 41, 51, 6"
"1, 71, 81, 101, 1001, …"
}
other{
" @integer 2~4, 22~24, 32~34, 42~44, 52~54, 62, 102, 1002, … @decimal"
" 0.0~1.5, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0, …"
}
}
来源:http: //source.icu-project.org/repos/icu/icu/tags/release-52-1/source/data/misc/plurals.txt
因此,2-4、22-24 等 ( 22 коровы
) 的情况属于other
修饰符,因此您的情况的正确语法是{n, plural, one{корова} few{коровы} many{коров} other{коровы}}
. 我留下few
了与较新ICU
版本的兼容性(在这种情况下确实使用few
了修饰符)。