target-C: можно ли использовать правила множественного числа в привязке к шаблону?
У меня есть хорошо известная проблема "количество выбранных из общего числа": если я работаю в XIB, я использую DisplayPattern Value1 и Value2, где шаблон "#{value1}@ selected out of %{value2}@"
и это работает. Теперь я хотел бы локализовать свое приложение: поэтому я вставил в applicationDidFinishLaunching
метод код
NSString *formatString = NSLocalizedString(@"%{value1}@ selected out of %{value2}@",@"");
[self.labelNum bind:@"displayPatternValue1" toObject:self.arrayCtrl withKeyPath:@"selection.@count" options:@{NSDisplayPatternBindingOption: formatString}];
[self.labelNum bind:@"displayPatternValue2" toObject:self.arrayCtrl withKeyPath:@"arrangedObjects.@count" options:@{NSDisplayPatternBindingOption: formatString}];
self.arrayCtrl
является контроллером массива объектов. Теперь это все еще работает. Но теперь я хочу использовать .stringsdict
для учета различных случаев. Мой список
<?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>%{value1}@ selected out of %{value2}@</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@selected_objects@</string>
<key>selected_objects</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>u</string>
<key>zero</key>
<string>None selected out of %#@total_objects@</string>
<key>one</key>
<string>One object selected out of %#@total_objects@</string>
<key>other</key>
<string>%u selected out of %#@total_objects@</string>
</dict>
<key>total_objects</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>u</string>
<key>zero</key>
<string>none</string>
<key>one</key>
<string>one object</string>
<key>other</key>
<string>%u</string>
</dict>
</dict>
</dict>
</plist>
Я также попытался изменить ключ в вызове NSLocalizedString и соответствующую строку в .stringsdict
, но результат всегда один и тот же: текст поля представляет первое значение в виде строки: %#@selected_objects@
, в этом случае. Я также пытался разобрать проблему до простого связывания с шаблоном, но результат не изменился. Означает ли это, что нельзя использовать правила множественного числа с обязательными? Или я что-то скучаю? Я много гуглил, но подобной ситуации не нашел.