Mik*_*ail 5 iphone localization ios nslocale ios7
我正在开发支持“en”和“ru”语言的应用程序,用户可以在应用程序内选择语言。
如果默认手机的语言环境设置为“en”,但在应用程序中选择了“ru”语言,则在尝试本地化复数句时会忽略“many”/“few”形式。所以它被英语复数规则本地化。
定义:
<key>%d files</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@files@</string>
<key>files</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>???? ????</string>
<key>many</key>
<string>%d ??????</string>
<key>other</key>
<string>%d ?????</string>
</dict>
</dict>
Run Code Online (Sandbox Code Playgroud)
本地化代码(手动创建“ru”语言环境):
let locale = NSLocale(localeIdentifier: "ru_RU")
String(format: NSLocalizedString("%d files", comment: ""),
locale: locale,
count)
Run Code Online (Sandbox Code Playgroud)
作为输出,我得到:
for count = 1: “???? ????” - 它
适合 count = 2:“2 ?????” -
count = 6也是正确的(来自“其他”类别):“6 ?????” - 错误,也来自“其他”类别,但应来自“许多”
如果我将手机的语言切换为俄语,则所有语言都已正确本地化。
您应该使用键:
\n\n一换一 = \xd0\xbe\xd0\xb4\xd0\xb8\xd0\xbd \xd1\x84\xd0\xb0\xd0\xb9\xd0\xbb
\n\n2-4 = 2 \xd1\x84\xd0\xb0\xd0\xb9\xd0\xbb\xd0\xb0 的少数
\n\n其他所有其他情况
\n| 归档时间: |
|
| 查看次数: |
335 次 |
| 最近记录: |