これは厄介なバグの 1 つであり、私はほぼ 1 時間かけて解明しました。52.1ではICU
(おそらくそれ以前も)、次のようになっています。
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
修飾子を使用します)。