我有一个众所周知的问题“从总数中选择的数量”:如果我在 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
是对象的数组控制器。现在它仍在工作。但现在我想用 a.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@
,在这种情况下。我还尝试将问题分解为与模式的简单绑定,但结果没有改变。这是否意味着不可能将复数规则与绑定一起使用?或者有什么我想念的?我用谷歌搜索了很多,但我没有找到类似的情况。