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@, в этом случае. Я также пытался разобрать проблему до простого связывания с шаблоном, но результат не изменился. Означает ли это, что нельзя использовать правила множественного числа с обязательными? Или я что-то скучаю? Я много гуглил, но подобной ситуации не нашел.

0 ответов

Другие вопросы по тегам