使用带有'localizedStringWithFormat'的“.stringsdict”文件 - > NUMNALS是否为您本地化?

时间:2016-01-21 02:33:14

标签: localization nsstring nsnumberformatter nslocalizedstring plural

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

“在___天” - > (例如: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”而不是“4”。

我知道这可以使用NSNumberFormatter来完成,但是如何在尊重多个签证vi a .stringsdict文件的同时完成数字本地化?

1 个答案:

答案 0 :(得分:2)

当使用.stringsdict文件与&#34; localizedStringWithFormat&#34;协调时,数字似乎正确交换。方法!

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

In 1 day

是......

١ day In 

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