将“.stringsdict”文件与 'localizedStringWithFormat' 一起使用 --> 数字是否已为您本地化?

Using ".stringsdict" file with 'localizedStringWithFormat' --> Are NUMERALS localized for you?

我正在尝试生成以下本地化字符串:

"In ___ day(s)" -->(例如:5 天后)

为了做到这一点,我采用了 .stringsdict 路线:

<key>In %d Days</key>
    <dict>
        <key>NSStringLocalizedFormatKey</key>
        <string>%#@Days@</string>
        <key>Days</key>
        <dict>
            <key>NSStringFormatSpecTypeKey</key>
            <string>NSStringPluralRuleType</string>
            <key>NSStringFormatValueTypeKey</key>
            <string>d</string>
            <key>zero</key>
            <string>Today</string>
            <key>one</key>
            <string>In %d Day</string>
            <key>other</key>
            <string>In %d Days</string>
        </dict>
    </dict>

然后我使用以下方法获取本地化字符串:

NSInteger days = ...;
localizedDueDateString = [NSString localizedStringWithFormat:NSLocalizedString(@"In %d Days", @"Indicates days"),ABS(days)];

这正确地输出了一个占复数的字符串。例如:

In 1 day
In 4 days

我想知道这里的“1”和“4”是否本地化正确。其他语言,例如阿拉伯语,其数字有不同的符号。对于阿拉伯语,我希望上面的字符串使用符号“٤”而不是“4”。

我知道这可以使用 NSNumberFormatter 来完成,但是我怎样才能完成数字本地化,同时还通过 .stringsdict 文件尊重复数签证?

当使用 .stringsdict 文件并配合 "localizedStringWithFormat" 方法时,数字似乎确实被正确交换了!

我将 iPad 语言切换为阿拉伯语,

的输出
In 1 day

是...

١ day In 

我还没有完成阿拉伯语本地化,所以 "In" 和 "day" 是英语,但数字似乎已正确本地化。不需要 NSNumberFormatter