Формат файла Stringsdict
A .stringsdict файл является списком свойств, используемым для определения правил множественного числа языка.
Свойства локализованной строки
Каждая пара ключ/значение в .stringsdict файл определяет множественное правило для определенной строки, как в:
<plist version="1.0"> |
<dict> |
<key>%d file(s) remaining</key> |
<dict> |
… |
</dict> |
<key>%d service hour(s)</key> |
<dict> |
… |
</dict> |
<key>%d award(s)</key> |
<dict> |
… |
</dict> |
</dict> |
</plist> |
Вы передаете те же строки — например, @”%d file(s) remaining”, @”%d service hour(s)” и @”%d award(s)”— к a NSLocalizedString макрос в Вашем коде.
Локализованные свойства строки формата
Множественное правило определяет строку формата, возвращенную NSLocalizedString макрос. Вы предоставляете строку формата для каждой категории чисел, которые определяет язык. Значение этого словаря имеет следующие ключи:
NSStringLocalizedFormatKeyСтрока формата, содержащая переменные. Переменной предшествуют
%#@символы и сопровождаемый@символ, как в:<key>NSStringLocalizedFormatKey</key>
<string>%#@files@</string>
где имя переменной
files. Строка формата может содержать многократные переменные, как в%#@files@ (%#@bytes@, %#@minutes@).[variable]Словарь пар ключ/значение, указывающих правило использовать для
[variable], как в:<key>files</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>%d file remaining</string>
<key>other</key>
<string>%d files remaining</string>
</dict>
Например, если число равняется 2,
@”%d files remaining”строка формата возвращается, и локализованная строка становится@”2 files remaining”.
Добавьте множественные правила для каждой переменной, появляющейся в NSStringLocalizedFormatKey строка формата.
Множественные свойства правила
[variable] словарь содержит следующие ключи:
NSStringFormatSpecTypeKeyУказывает тип правила языка. Единственное возможное значение
NSStringPluralRuleType, который указывает правило множественного числа языка.NSStringFormatValueTypeKeyСпецификатор формата строки для числа, как в
%dдля целого числа. Для списка спецификаторов формата посмотрите Спецификаторы Формата строки в Строковом Руководстве по программированию.zeroСтрока формата для использования для номера 0.
oneСтрока формата для использования для номера 1.
twoСтрока формата для использования для номера 2.
few,manyСтроки формата для использования для дополнительных языковозависимых категорий.
otherСтрока формата для использования для всех чисел, не покрытых другими категориями. Этот ключ требуется.
Значение категорий является языковозависимым, и не все языки имеют те же категории.
Например, английский только использует
one, иotherкатегории для представления форм множественного числа. Арабский язык имеет различные формы множественного числа дляzero,one,two,few,many, иotherкатегории. Несмотря на то, что русский также используетmanyкатегория, правила, для которых числа находятся вmanyкатегория не является тем же как арабскими правилами.Все категории являются дополнительными кроме
other.Если Вы не предоставляете правило для всех специфичных для языка категорий, Однако Ваш текст может быть грамматически неправильным. С другой стороны при обеспечении правила для категории, не используемой языком это проигнорировано и
otherстрока формата используется.Используя
NSStringFormatValueTypeKeyспецификатор формата вzero,one,two,few,many, иotherстроки формата являются дополнительными.Например,
oneстрока формата может бытьOne file remainingв то время какotherстрока формата может быть%d files remainingдля английского языка.Используйте спецификатор формата или обстоятельно объясните числа в строках формата.
Если Вы используете числовое в строке формата, как в
1 file remainingдля английского языка это не может быть локализовано, когда пользователь изменяет область (например, если число установило изменения). Вместо этого используйте спецификатор формата, как в%d file remaining; иначе, обстоятельно объясните число, как вOne file remaining.
Для множественных категорий и правил для каждого языка, см. Правила Множественного числа Языка CLDR.