Я использую новый формат stringsdict для локализации и множественного числа некоторых строк в моем приложении.
Я прочитал это и это для справки, и я надеюсь, что мои локализованные строки из stringsdict будут получены правильно.
Проблема в том, что я всегда вижу значение с «нулевого» ключа и не знаю, что здесь происходит, потому что очень сложно отлаживать операции внутри методов локализации.
Позвольте мне разместить здесь код:
1 - Это мой файл Localizable.stringsdict, также существует файл Localizable.strings в том же проекте.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>%i minutes</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%i %#@minutes@</string>
<key>minutes</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>i</string>
<key>one</key>
<string>One minute</string>
<key>two</key>
<string>Two minutes</string>
<key>other</key>
<string>Other minutes</string>
<key>zero</key>
<string>Zero minutes</string>
</dict>
</dict>
</dict>
</plist>
2 - есть простой код для проверки этой строки
NSString *output = [NSString localizedStringWithFormat:NSLocalizedString(@"%i minutes", nil), 5 ];
NSLog(@"Output: %@", output); // And here, always display "Output: 5 Zero minutes" independently the value I put in the formated string, in this case (five) needs to display "Output: 5 Other minutes"
Спасибо за любую помощь.