8

res/values/strings.xml、私は持っています

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <plurals name="days_amount">
        <item quantity="one">%d day EN</item>
        <item quantity="other">%d days EN</item>
</plurals>
</resources>

そしてres/values-fr/strings.xml、私は持っています

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <plurals name="days_amount">
        <item quantity="one">%d jour FR</item>
        <item quantity="other">%d jours FR</item>
    </plurals>
</resources>

英語ロケールのres.getQuantityString(R.plurals.days_amount, 0, 0)場合:

「0日」

これは、英語のルール (0 数量 <=> 数数量とも呼ばれる) では問題ありません。


しかし、フランス語のロケールでは、次のように返されます。

「0日」

これは、フランスの規則 (別名ゼロ数量 <=> 特異数量) では問題ありません。

返すべきだった"O jour"

フランス語のルール: http://www.unicode.org/cldr/charts/25/supplemental/language_plural_rules.html#fr


それで、これはバグですか、それとも何か間違っていますか?

4

3 に答える 3

-1

あなたは何か間違ったことをしています。それはあなたが言っていることを正確にやっています。

あなたのルールは、値が の場合、other「日」または「日」を使用することを示しています。次に、値 0 (つまり ) を渡すと、other要求に応じて "days" と "jours" が使用されます。

言語固有のルールを持つ数量「ゼロ」の 3 番目の値を設定してみてください。

于 2015-01-07T16:45:05.317 に答える