Формат файла 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.