PluralFormat Classe

Definição

PluralFormat dá suporte à criação de mensagens internacionalizadas com inflexão plural.

[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
Herança
Atributos

Comentários

PluralFormat dá suporte à criação de mensagens internacionalizadas com inflexão plural. Ele se baseia na seleção plural, ou seja, o chamador especifica mensagens para cada caso plural que podem aparecer no idioma do usuário e seleciona PluralFormat a mensagem apropriada com base no número.

<h3>O Problema dos Formulários Plural em Mensagens< Internacionalizadas/h3>

Idiomas diferentes têm diferentes maneiras de inflexão de plurales. A criação de mensagens internacionalizadas que incluem formulários plural só é viável quando a estrutura é capaz de lidar com formas plurais de todos os idiomas corretamente. ChoiceFormat não lida bem com isso, pois anexa um intervalo numérico a cada mensagem e seleciona a mensagem cujo intervalo contém um determinado número. Isso só pode lidar com um número finito de intervalos. Mas em alguns idiomas, como o polonês, um caso plural se aplica a infinitamente muitos intervalos (por exemplo, o caso paucal se aplica a números que terminam com 2, 3 ou 4, exceto aqueles que terminam com 12, 13 ou 14). Portanto, ChoiceFormat não é adequado.

PluralFormat lida com isso dividindo o problema em duas partes: <ul><li>Ele usa PluralRules que pode definir condições mais complexas para um caso plural do que apenas um único intervalo. Essas regras plurais definem quais casos plural existem em um idioma e a quais números esses casos se aplicam. <li>Ele fornece regras plurais predefinidas para muitos idiomas. Portanto, o programador não precisa se preocupar com os casos plural de uma linguagem e não precisa definir os casos plural; eles podem simplesmente usar as palavras-chave predefinidas. Toda a formatação plural de mensagens pode ser feita usando padrões localizados de pacotes de recursos. Para obter regras de plural predefinidas, consulte a página regras plurais de linguagem CLDR em https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/language_plural_rules.html</ul>

<h4>Uso de PluralFormat</h4>

Observação: normalmente, a formatação plural é feita por meio de MessageFormat um plural tipo de argumento, em vez de usar um autônomo PluralFormat.

Essa discussão pressupõe que você use PluralFormat com um conjunto predefinido de regras plural. Você pode criar um usando um dos construtores que usa um ULocale objeto. Para especificar o padrão de mensagem, você pode passá-lo para o construtor ou defini-lo explicitamente usando o applyPattern() método. O format() método usa um objeto numérico e seleciona a mensagem do caso plural correspondente. Esta mensagem será retornada.

<Padrões h5>e sua interpretação</h5>

O texto padrão define a saída da mensagem para cada caso plural da localidade especificada. Sintaxe: <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 entre elementos de sintaxe é ignorado, exceto entre {chaves} e sua sub-mensagem, e entre o '=' e o número de um explicitValue.

Há seis palavras-chave de caso predefinidas em CLDR/UTI - 'zero', 'um', 'dois', 'few', 'many' e 'other'. Você sempre precisa definir um texto de mensagem para o caso plural padrão "other" que está contido em cada conjunto de regras. Se você não especificar um texto de mensagem para um caso plural específico, o texto da mensagem do caso plural "other" será atribuído a esse caso plural.

Ao formatar, o número de entrada é correspondido pela primeira vez com as cláusulas explicitValue. Se não houver correspondência de número exato, uma palavra-chave será selecionada chamando-a PluralRules com o número <de entrada menos>o deslocamento</em>. (O deslocamento padrão será 0 se for omitido da cadeia de caracteres padrão.) Se não houver nenhuma cláusula com essa palavra-chave, as cláusulas "outros" serão retornadas.

Um sinal de libra sem aspas (#) na sub-mensagem selecionada em si (ou seja, fora dos argumentos aninhados na sub-mensagem) é substituído pelo número de entrada menos o deslocamento. O valor number-minus-offset é formatado usando um NumberFormat para a PluralFormatlocalidade de 's. Se você precisar de formatação de número especial, precisará usar um MessageFormat argumento e especificar explicitamente um NumberFormat argumento. <Nota forte>:</strong> Esse argumento é formatação sem subtrair o deslocamento! Se você precisar de um formato personalizado e tiver um deslocamento diferente de zero, precisará passar o valor de número menos deslocamento como um parâmetro separado.

Para obter um exemplo de uso, consulte a documentação da MessageFormat classe.

<h4>Definindo regras< plural personalizadas/h4>

Se você precisar usar PluralFormat com regras personalizadas, poderá criar um PluralRules objeto e passá-lo para PluralFormato construtor de 's. Se você também especificar uma localidade neste construtor, essa localidade será usada para formatar o número nos textos da mensagem.

Para obter mais informações sobre PluralRules, consulte PluralRules.

Documentação Java para android.icu.text.PluralFormat.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usadas de acordo com os termos descritos na Licença de Atribuição Creative Commons 2.5.

Construtores

Nome Description
PluralFormat()

Cria um novo número PluralFormat cardinal para a localidade padrão FORMAT .

PluralFormat(IntPtr, JniHandleOwnership)

PluralFormat dá suporte à criação de mensagens internacionalizadas com inflexão plural.

PluralFormat(Locale, PluralRules)

Cria um novo número PluralFormat cardinal para um determinado conjunto de regras.

PluralFormat(Locale, PluralRules+PluralType)

Cria um novo PluralFormat para o tipo plural.

PluralFormat(Locale)

Cria um novo número PluralFormat cardinal para um determinado java.util.Locale.

PluralFormat(PluralRules, String)

Cria um novo número PluralFormat cardinal para um determinado conjunto de regras e um padrão.

PluralFormat(PluralRules)

Cria um novo número PluralFormat cardinal para um determinado conjunto de regras.

PluralFormat(String)

Cria um novo número PluralFormat cardinal para uma determinada cadeia de caracteres padrão.

PluralFormat(ULocale, PluralRules, String)

Cria um novo número PluralFormat cardinal para um determinado conjunto de regras, um padrão e uma localidade.

PluralFormat(ULocale, PluralRules)

Cria um novo número PluralFormat cardinal para um determinado conjunto de regras.

PluralFormat(ULocale, PluralRules+PluralType, String)

Cria um novo PluralFormat para um tipo plural, um padrão e uma localidade.

PluralFormat(ULocale, PluralRules+PluralType)

Cria um novo PluralFormat para o tipo plural.

PluralFormat(ULocale, String)

Cria um novo número PluralFormat cardinal para uma determinada cadeia de caracteres padrão e localidade.

PluralFormat(ULocale)

Cria um novo número PluralFormat cardinal para uma determinada localidade.

Propriedades

Nome Description
Class

Retorna a classe de tempo de execução deste Object.

(Herdado de Object)
Handle

O identificador para a instância subjacente do Android.

(Herdado de Object)
JniIdentityHashCode

Obtém o código de hash de identidade atribuído a esse par Java pelo runtime de interoperabilidade.

(Herdado de Object)
JniManagedPeerState

PluralFormat dá suporte à criação de mensagens internacionalizadas com inflexão plural.

(Herdado de JavaObject)
JniPeerMembers

PluralFormat dá suporte à criação de mensagens internacionalizadas com inflexão plural.

PeerReference

Obtém a referência de objeto JNI para este par Java.

(Herdado de Object)
ThresholdClass

PluralFormat dá suporte à criação de mensagens internacionalizadas com inflexão plural.

ThresholdType

PluralFormat dá suporte à criação de mensagens internacionalizadas com inflexão plural.

Métodos

Nome Description
ApplyPattern(String)

Define o padrão usado por esse formato plural.

Clone()

Cria e retorna uma cópia desse objeto.

(Herdado de _Format)
Construct(JniObjectReference, JniObjectReferenceOptions)

PluralFormat dá suporte à criação de mensagens internacionalizadas com inflexão plural.

(Herdado de JavaObject)
Dispose()

Libera os recursos mantidos por esse par Java.

(Herdado de Object)
Dispose(Boolean)

Libera os recursos mantidos por esse par Java.

(Herdado de Object)
DisposeUnlessReferenced()

PluralFormat dá suporte à criação de mensagens internacionalizadas com inflexão plural.

(Herdado de JavaObject)
Equals(Object)

PluralFormat dá suporte à criação de mensagens internacionalizadas com inflexão plural.

(Herdado de JavaObject)
Equals(Object)

Indica se algum outro objeto é "igual a" este.

(Herdado de Object)
Equals(PluralFormat)

Retornará true se isso for igual ao PluralFormat fornecido.

Format(Double)

Formata uma mensagem plural para um determinado número.

Format(Object, StringBuffer, FieldPosition)

Formata uma mensagem plural para um determinado número e acrescenta a mensagem formatada ao determinado StringBuffer.

Format(Object)

Formata um objeto para produzir uma cadeia de caracteres.

(Herdado de _Format)
FormatToCharacterIterator(Object)

Formata um objeto que produz um AttributedCharacterIterator.

(Herdado de _Format)
GetHashCode()

Retorna um valor de código hash para o objeto.

(Herdado de Object)
JavaFinalize()

Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto.

(Herdado de Object)
Notify()

Ativa um único thread que está aguardando no monitor desse objeto.

(Herdado de Object)
NotifyAll()

Ativa todos os threads que estão aguardando no monitor deste objeto.

(Herdado de Object)
Parse(String, ParsePosition)

Esse método ainda não tem suporte PluralFormat.

ParseObject(String, ParsePosition)

Esse método ainda não tem suporte PluralFormat.

ParseObject(String)

Analisa o texto desde o início da cadeia de caracteres fornecida para produzir um objeto.

(Herdado de _Format)
SetHandle(IntPtr, JniHandleOwnership)

Define a propriedade Handle

(Herdado de Object)
SetNumberFormat(NumberFormat)

Define o formato de número usado por esse formatador.

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

PluralFormat dá suporte à criação de mensagens internacionalizadas com inflexão plural.

(Herdado de JavaObject)
ToArray<T>()

Cria uma matriz gerenciada com base nesse wrapper de matriz Java.

(Herdado de Object)
ToPattern()

Retorna o padrão para este PluralFormat.

ToString()

Retorna uma representação de cadeia de caracteres do objeto.

(Herdado de Object)
UnregisterFromRuntime()

Cancela o registro desse par Java do runtime de interoperabilidade.

(Herdado de Object)
Wait()

Faz com que o thread atual aguarde até que seja despertado, normalmente sendo <notificado></em> ou <em>interrompido</em>.

(Herdado de Object)
Wait(Int64, Int32)

Faz com que o thread atual aguarde até que seja ativado, normalmente sendo <notificado></em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)
Wait(Int64)

Faz com que o thread atual aguarde até que seja ativado, normalmente sendo <notificado></em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)

Implantações explícitas de interface

Nome Description
IJavaPeerable.Disposed()

PluralFormat dá suporte à criação de mensagens internacionalizadas com inflexão plural.

(Herdado de JavaObject)
IJavaPeerable.Finalized()

PluralFormat dá suporte à criação de mensagens internacionalizadas com inflexão plural.

(Herdado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

PluralFormat dá suporte à criação de mensagens internacionalizadas com inflexão plural.

(Herdado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

PluralFormat dá suporte à criação de mensagens internacionalizadas com inflexão plural.

(Herdado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

PluralFormat dá suporte à criação de mensagens internacionalizadas com inflexão plural.

(Herdado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

PluralFormat dá suporte à criação de mensagens internacionalizadas com inflexão plural.

(Herdado de JavaObject)
IJavaPeerable.UnregisterFromRuntime()

PluralFormat dá suporte à criação de mensagens internacionalizadas com inflexão plural.

(Herdado de _Format)

Métodos de Extensão

Nome Description
GetJniTypeName(IJavaPeerable)

Obtém o nome JNI do tipo da instância self.

JavaAs<TResult>(IJavaPeerable)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

JavaCast<TResult>(IJavaObject)

Executa uma conversão de tipo verificada pelo tempo de execução do Android.

JavaCast<TResult>(IJavaObject)

PluralFormat dá suporte à criação de mensagens internacionalizadas com inflexão plural.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

Aplica-se a