PluralFormat Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
PluralFormat поддерживает создание международных сообщений с множественной перегибом.
[Android.Runtime.Register("android/icu/text/PluralFormat", ApiSince=24, DoNotGenerateAcw=true)]
public class PluralFormat : Android.Icu.Text.UFormat
[<Android.Runtime.Register("android/icu/text/PluralFormat", ApiSince=24, DoNotGenerateAcw=true)>]
type PluralFormat = class
inherit UFormat
- Наследование
- Атрибуты
Комментарии
PluralFormat поддерживает создание международных сообщений с множественной перегибом. Он основан на выборе множественного числа, т. е. вызывающий указывает сообщения для каждого случая множественного числа, которые могут отображаться на языке пользователя, и PluralFormat выбирает соответствующее сообщение на основе номера.
<h3>Проблема множественного числа форм в международных сообщениях</h3>
Разные языки имеют различные способы перегиба множественного числа. Создание международных сообщений, включающих формы множественного числа, возможно только в том случае, если платформа может правильно обрабатывать формы множественного числа всех языков.
ChoiceFormat не обрабатывает это хорошо, так как он присоединяет число интервал к каждому сообщению и выбирает сообщение, интервал которого содержит заданное число. Это может обрабатывать только конечное число интервалов. Но на некоторых языках, таких как польский, один случай множественного числа применяется к бесконечно многим интервалам (например, паковый регистр применяется к числам, заканчивающимся 2, 3 или 4, за исключением тех, которые заканчиваются 12, 13 или 14). Таким образом ChoiceFormat , это не достаточно.
PluralFormat с этим путем разбиения проблемы на две части: <ul><li>Он использует PluralRules , которые могут определять более сложные условия для множественного случая, чем только один интервал. Эти правила множественного числа определяют как те случаи, которые существуют на языке, так и к числу, к которым применяются эти случаи.
<li>Он предоставляет предопределенные правила множественного числа для многих языков. Таким образом, программисту не нужно беспокоиться о множественном числе случаев языка и не нужно определять варианты множественного числа; они могут просто использовать предопределенные ключевые слова. Все форматирование сообщений во множественном числе можно сделать с помощью локализованных шаблонов из пакетов ресурсов. Сведения о предопределенных правилах множественного числа см. на странице правил clDR language Plural по https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/language_plural_rules.html<адресу /ul>
<Использование h4>PluralFormat< /h4>
Примечание. Как правило, форматирование множественного числа выполняется с MessageFormat помощью типа аргумента plural , а не с помощью автономного PluralFormatформата.
В этом обсуждении предполагается, что вы используете PluralFormat с предопределенным набором правил множественного числа. Вы можете создать один из конструкторов, который принимает ULocale объект. Чтобы указать шаблон сообщения, можно передать его конструктору или явно задать его с помощью applyPattern() метода. Метод format() принимает числовой объект и выбирает сообщение соответствующего регистра множественного числа. Это сообщение будет возвращено.
<Шаблоны h5>и их интерпретация</h5>
Текст шаблона определяет выходные данные сообщения для каждого множественного регистра указанного языкового стандарта. Синтаксис: <blockquote>
pluralStyle = [offsetValue] (selector '{' message '}')+
offsetValue = "offset:" number
selector = explicitValue | keyword
explicitValue = '=' number // adjacent, no white space in between
keyword = [^[[:Pattern_Syntax:][:Pattern_White_Space:]]]+
message: see {@link MessageFormat}
</blockquote> Pattern_White_Space между элементами синтаксиса игнорируется, за исключением {фигурных скобок} и их вложенных сообщений, а также между "=" и числом явного значения.
В СРЕДЕ CLDR/ICU есть 6 стандартных ключевых слов регистра : "ноль", "один", "два", "немногие", "многие" и "другие". Всегда необходимо определить текст сообщения для регистра множественного числа по умолчанию,other который содержится в каждом наборе правил. Если текст сообщения не указан для определенного регистра множественного числа, то текст сообщения из регистра множественного числа "" назначается этому регистру множественногоother числа.
При форматировании входной номер сначала сопоставляется с предложениями явных значений. Если совпадения точных чисел нет, то ключевое слово выбирается путем вызова PluralRules входного номера <em>минус смещение</em>. (Смещение по умолчанию равно 0, если оно опущено из строки шаблона.) Если в этом ключевом слове нет предложения, возвращается предложение "другие".
Неквотированный знак фунта (#) в выбранном подсоотеченном сообщении (т. е. вне аргументов, вложенных в вложенное сообщение), заменяется входным номером минус смещение. Значение смещения числа минус отформатировано с помощью NumberFormat языкового стандарта.PluralFormat Если требуется специальное форматирование чисел, необходимо использовать MessageFormat и явно указать NumberFormat аргумент.
<strong>Примечание.</strong> Этот аргумент форматируется без вычитания смещения! Если требуется настраиваемый формат и смещение, отличное от нуля, необходимо передать значение смещением число-минус в качестве отдельного параметра.
Пример использования см. в документации по классу MessageFormat .
<h4>Определение настраиваемых правил< множественного числа/h4>
Если необходимо использовать PluralFormat с пользовательскими правилами, можно создать PluralRules объект и передать его конструктору PluralFormat. Если в этом конструкторе также указан языковой стандарт, этот языковой стандарт будет использоваться для форматирования числа в текстах сообщения.
Дополнительные сведения о PluralRules см. в разделе PluralRules.
Java документации по android.icu.text.PluralFormat.
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".
Конструкторы
| Имя. | Описание |
|---|---|
| PluralFormat() |
Создает новое число кардиналов для языкового стандарта |
| PluralFormat(IntPtr, JniHandleOwnership) |
|
| PluralFormat(Locale, PluralRules) |
Создает новое кардиналовое число |
| PluralFormat(Locale, PluralRules+PluralType) |
Создает новый PluralFormat для типа plural. |
| PluralFormat(Locale) |
Создает новое кардиналовое число |
| PluralFormat(PluralRules, String) |
Создает новое кардинал-число |
| PluralFormat(PluralRules) |
Создает новое кардиналовое число |
| PluralFormat(String) |
Создает новое кардиналовое число |
| PluralFormat(ULocale, PluralRules, String) |
Создает новое кардинал-число для заданного набора правил, шаблона и языкового стандарта |
| PluralFormat(ULocale, PluralRules) |
Создает новое кардиналовое число |
| PluralFormat(ULocale, PluralRules+PluralType, String) |
Создает новый PluralFormat для типа множественного числа, шаблона и языкового стандарта. |
| PluralFormat(ULocale, PluralRules+PluralType) |
Создает новый PluralFormat для типа plural. |
| PluralFormat(ULocale, String) |
Создает новое кардинал-число для заданной строки шаблона и языкового стандарта |
| PluralFormat(ULocale) |
Создает новое кардинал-число для заданного языкового стандарта |
Свойства
| Имя. | Описание |
|---|---|
| Class |
Возвращает класс среды выполнения этого |
| Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
| JniIdentityHashCode |
Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия. (Унаследовано от Object) |
| JniManagedPeerState |
|
| JniPeerMembers |
|
| PeerReference |
Возвращает ссылку на объект JNI для этого Java однорангового узла. (Унаследовано от Object) |
| ThresholdClass |
|
| ThresholdType |
|
Методы
| Имя. | Описание |
|---|---|
| ApplyPattern(String) |
Задает шаблон, используемый этим форматом множественного числа. |
| Clone() |
Создает и возвращает копию этого объекта. (Унаследовано от _Format) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
|
| Dispose() |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| Dispose(Boolean) |
Освобождает ресурсы, удерживаемые этим Java одноранговым узлом. (Унаследовано от Object) |
| DisposeUnlessReferenced() |
|
| Equals(Object) |
|
| Equals(Object) |
Указывает, равен ли другой объект этому объекту. (Унаследовано от Object) |
| Equals(PluralFormat) |
Возвращает значение true, если это равно предоставленному PluralFormat. |
| Format(Double) |
Форматирует множественное сообщение для заданного числа. |
| Format(Object, StringBuffer, FieldPosition) |
Форматирует множественное сообщение для заданного числа и добавляет форматируемое сообщение к заданному. |
| Format(Object) |
Форматирует объект для создания строки. (Унаследовано от _Format) |
| FormatToCharacterIterator(Object) |
Форматирует объект, создающий |
| GetHashCode() |
Возвращает хэш-значение кода для объекта. (Унаследовано от Object) |
| JavaFinalize() |
Устаревшие.
Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет. (Унаследовано от Object) |
| Notify() |
Просыпается один поток, ожидающий монитора этого объекта. (Унаследовано от Object) |
| NotifyAll() |
Просыпает все потоки, ожидающие монитора этого объекта. (Унаследовано от Object) |
| Parse(String, ParsePosition) |
Этот метод еще не поддерживается |
| ParseObject(String, ParsePosition) |
Этот метод еще не поддерживается |
| ParseObject(String) |
Анализирует текст с начала заданной строки для создания объекта. (Унаследовано от _Format) |
| SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
| SetNumberFormat(NumberFormat) |
Задает формат числа, используемый этим методом форматирования. |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
|
| ToArray<T>() |
Создает управляемый массив из этого Java оболочки массива. (Унаследовано от Object) |
| ToPattern() |
Возвращает шаблон для этого PluralFormat. |
| ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
| UnregisterFromRuntime() |
Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия. (Унаследовано от Object) |
| Wait() |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, путем <><уведомления/>em или <эм>прерванного</em.> (Унаследовано от Object) |
| Wait(Int64, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
| Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Явные реализации интерфейса
| Имя. | Описание |
|---|---|
| IJavaPeerable.Disposed() |
|
| IJavaPeerable.Finalized() |
|
| IJavaPeerable.JniObjectReferenceControlBlock |
|
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
| IJavaPeerable.SetPeerReference(JniObjectReference) |
|
| IJavaPeerable.UnregisterFromRuntime() |
|
Методы расширения
| Имя. | Описание |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Возвращает имя JNI типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
|
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |