この文字列をswift for iOSで複数のstringdictを使って翻訳したい
- %1$@にとどまる
- %1$@に滞在
この質問のおかげで、プレースホルダーなしで単純な複数形を使用する と機能しますが、文字列プレースホルダーを追加すると、アクセスするとクラッシュします。
通常の複数形は、次の xml を使用して機能しています。
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@format@</string>
<key>format</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>li</string>
<key>one</key>
<string>Sleeps at your place</string>
<key>other</key>
<string>Sleep at your place</string>
</dict>
</dict>
そして、この迅速なコードを使用して、文字列プレースホルダーなしで上記の複数形を参照します。
let format = NSLocalizedString("key_to_plural_above", comment: "")
let label = String.localizedStringWithFormat(format, kidsIds.count)
問題は、文字列プレースホルダーを翻訳に追加すると、それを読み取ろうとするとクラッシュすることです。以下の xml は翻訳ツール ( lokalise ) によって生成されたものなので、正しいと思います。
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@format@</string>
<key>format</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>li</string>
<key>one</key>
<string>Sleeps at %1$@</string>
<key>other</key>
<string>Sleep at %1$@</string>
</dict>
この迅速なコードを使用して上記の複数形を取得すると、スタックトレースなしで不明なクラッシュが発生します。
let format = NSLocalizedString("key_to_plural_above", comment: "")
let label = String.localizedStringWithFormat(format, kidsIds.count, "Name")