PluralFormat Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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(IntPtr, JniHandleOwnership) |
|
| PluralFormat(Locale, PluralRules) |
Cria um novo número |
| PluralFormat(Locale, PluralRules+PluralType) |
Cria um novo PluralFormat para o tipo plural. |
| PluralFormat(Locale) |
Cria um novo número |
| PluralFormat(PluralRules, String) |
Cria um novo número |
| PluralFormat(PluralRules) |
Cria um novo número |
| PluralFormat(String) |
Cria um novo número |
| PluralFormat(ULocale, PluralRules, String) |
Cria um novo número |
| PluralFormat(ULocale, PluralRules) |
Cria um novo número |
| 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(ULocale) |
Cria um novo número |
Propriedades
| Nome | Description |
|---|---|
| Class |
Retorna a classe de tempo de execução deste |
| 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 |
|
| JniPeerMembers |
|
| PeerReference |
Obtém a referência de objeto JNI para este par Java. (Herdado de Object) |
| ThresholdClass |
|
| ThresholdType |
|
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) |
|
| 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() |
|
| Equals(Object) |
|
| 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 |
| Format(Object) |
Formata um objeto para produzir uma cadeia de caracteres. (Herdado de _Format) |
| FormatToCharacterIterator(Object) |
Formata um objeto que produz um |
| 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 |
| ParseObject(String, ParsePosition) |
Esse método ainda não tem suporte |
| 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) |
|
| 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() |
|
| IJavaPeerable.Finalized() |
|
| IJavaPeerable.JniObjectReferenceControlBlock |
|
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
| IJavaPeerable.SetPeerReference(JniObjectReference) |
|
| IJavaPeerable.UnregisterFromRuntime() |
|
Métodos de Extensão
| Nome | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtém o nome JNI do tipo da instância |
| JavaAs<TResult>(IJavaPeerable) |
Tente coagir a digitar |
| JavaCast<TResult>(IJavaObject) |
Executa uma conversão de tipo verificada pelo tempo de execução do Android. |
| JavaCast<TResult>(IJavaObject) |
|
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Tente coagir a digitar |