我正在尝试生成以下本地化字符串:
“在___天” - > (例如: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文件的同时完成数字本地化?
答案 0 :(得分:2)
是强>
当使用.stringsdict文件与&#34; localizedStringWithFormat&#34;协调时,数字似乎正确交换。方法!
我将我的iPad语言切换为阿拉伯语,输出为
In 1 day
是......
١ day In
我还没有完成阿拉伯语本地化,所以&#34; In&#34;和&#34; day&#34;是英文,但数字似乎是正确的本地化。不需要NSNumberFormatter