%@ there are up to %i sun hours
文字列を適切な複数形で翻訳したい。
%@
日、%i
太陽時間が含まれています。
これは私のLocalizable.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>%@ there are up to %i sun hours</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@hours@</string>
<key>hours</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>i</string>
<key>zero</key>
<string>%@ there are no sun hours</string>
<key>one</key>
<string>There is one sun hour %@ </string>
<key>other</key>
<string>%@ there are up to %i sun hours</string>
</dict>
</dict>
</dict>
</plist>
これが私がそれを呼ぶ方法です:
[NSString stringWithFormat:NSLocalizedString(@"%@ there are up to %i sun hours", nil), dayString, sunHours];
2 番目の引数として何NSInteger
を渡しても、翻訳は常に「他の」テンプレートで行われます。NSStringLocalizedFormatKey
キーが機能しているように使用すると、間違っていることに絞り込みました%@ %#@hours@
。
ただし、文字列パラメーターをローカライズの一部にしたいです。これを行う方法はありますか?