SelectFormat Classe

Definição

SelectFormat dá suporte à criação de mensagens internacionalizadas selecionando frases com base em palavras-chave.

[Android.Runtime.Register("android/icu/text/SelectFormat", ApiSince=24, DoNotGenerateAcw=true)]
public class SelectFormat : Java.Text._Format
[<Android.Runtime.Register("android/icu/text/SelectFormat", ApiSince=24, DoNotGenerateAcw=true)>]
type SelectFormat = class
    inherit _Format
Herança
SelectFormat
Atributos

Comentários

SelectFormat dá suporte à criação de mensagens internacionalizadas selecionando frases com base em palavras-chave. O padrão especifica como mapear palavras-chave para frases e fornece uma frase padrão. O objeto fornecido para o método de formato é uma cadeia de caracteres que corresponde às palavras-chave. Se houver uma correspondência, a frase correspondente será selecionada; caso contrário, a frase padrão será usada.

<h3>Usando SelectFormat para Contrato< de Gênero/h3>

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

O principal caso de uso para o formato de seleção é a inflexão baseada em gênero. Quando nomes ou substantivos são inseridos em frases, seu gênero pode afetar pronomes, formulários de verbo, artigos e adjetivos. Cuidados especiais precisam ser tomados para o caso em que o gênero não pode ser determinado. O impacto varia entre idiomas:

<ul><li>inglês tem três gêneros, e gênero desconhecido é tratado como um caso especial. Os nomes usam o gênero da pessoa nomeada (se conhecida), substantivos que se referem às pessoas usam gênero natural, e objetos inanimados geralmente são neutros. O gênero afeta apenas os pronomes: "he", "she", "it", "they".

<li>alemão difere do inglês, pois o gênero dos substantivos é bastante arbitrário, mesmo para substantivos que se referem às pessoas ("Mä dchen", menina, é neutro). O gênero afeta pronomes ("er", "sie", "es"), artigos ("der", "die", "das" e formas adjetivas ("guter Mann", "gute Frau", "gutes Mä dchen").

<li>french tem apenas dois gêneros; como em alemão, o gênero dos substantivos é bastante arbitrário - para o sol e a lua, os gêneros são o oposto daqueles em alemão. O gênero afeta pronomes ("il", "elle"), artigos ("le", "la"), formas adjetivas ("bon", "bonne" e às vezes formas verbos ("allé", "allé e").

<li>Polish distingue cinco gêneros (ou classes substantivas), masculino humano, animar masculino não humano, masculino inanimado, feminino e castrador. </ul>

Algumas outras linguagens têm classes substantivas que não estão relacionadas ao gênero, mas semelhantes no uso gramatical. Algumas línguas africanas têm cerca de 20 classes substantivas.

<b>Observação:</b>Para o sexo de uma pessoa em uma determinada frase, geralmente precisamos distinguir apenas entre mulher, homem e outro/desconhecido.

Para permitir que os localizadores criem padrões de frase que levem em consideração as dependências de gênero de sua linguagem, o software precisa fornecer informações sobre o gênero associado a um substantivo ou nome para MessageFormat. Dois casos principais podem ser diferenciados:

<ul><li>Para as pessoas, as informações naturais de gênero devem ser mantidas para cada pessoa. Palavras-chave como "masculino", "feminino", "misto" (para grupos de pessoas) e "desconhecido" podem ser usadas.

<li>Para substantivos, as informações gramaticais de gênero devem ser mantidas para cada substantivo e por idioma, por exemplo, em pacotes de recursos. As palavras-chave "masculino", "feminino" e "neuter" são comumente usadas, mas algumas linguagens podem exigir outras palavras-chave. </ul>

A palavra-chave resultante é fornecida MessageFormat como um parâmetro separado do nome ou substantivo ao qual está associado. Por exemplo, para gerar uma mensagem como "Jean foi para Paris", três argumentos separados seriam fornecidos: o nome da pessoa como argumento 0, o gênero da pessoa como argumento 1 e o nome da cidade como argumento 2. O padrão de frase para inglês, em que o gênero da pessoa não tem nenhum impacto nesta frase simples, não se refere ao argumento 1:

{0} went to {2}.

<b>Observação:</b> A frase inteira deve ser incluída (e parcialmente repetida) dentro de cada frase. Caso contrário, os tradutores teriam que ser treinados sobre como mover bits da frase para dentro e para fora do argumento selecionado de uma mensagem. (Os exemplos abaixo não seguem esta recomendação!)

O padrão de frase para francês, em que o gênero da pessoa afeta a forma do participante, usa um formato de seleção com base no argumento 1:

{0} est {1, select, female {all&#xE9;e} other {all&#xE9;}} &#xE0; {2}.

Os padrões podem ser aninhados, de modo que seja possível lidar com interações de número e gênero quando necessário. Por exemplo, se a frase acima deve permitir que os nomes de várias pessoas sejam inseridos, o padrão de frase a seguir pode ser usado (com o argumento 0 a lista de nomes de pessoas, argumento 1 o número de pessoas, argumento 2 seu gênero combinado e argumento 3 o nome da cidade):

{0} {1, plural, 
            one {est {2, select, female {all&#xE9;e} other  {all&#xE9;}}}
            other {sont {2, select, female {all&#xE9;es} other {all&#xE9;s}}}
            }&#xE0; {3}.

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

A SelectFormat cadeia de caracteres padrão define a saída da frase para cada palavra-chave definida pelo usuário. O padrão é uma sequência de pares (palavra-chave, mensagem). Uma palavra-chave é um "identificador de padrão": [^[[:P attern_Syntax:][:P attern_White_Space:]]]+

Cada mensagem é uma cadeia de caracteres de padrão MessageFormat entre {chaves}.

Você sempre precisa definir uma frase para a palavra-chave otherpadrão; essa frase é retornada quando a palavra-chave fornecida para o format método não corresponde a nenhuma outra palavra-chave. Se um padrão não fornecer uma frase, othero método fornecido para retornar o erro U_DEFAULT_KEYWORD_MISSING. <br> Pattern_White_Space entre palavras-chave e mensagens é ignorada. Pattern_White_Space dentro de uma mensagem é preservada e a saída.

Example:
            MessageFormat msgFmt = new MessageFormat("{0} est " +
                "{1, select, female {all&#xE9;e} other {all&#xE9;}} &#xE0; Paris.",
                new ULocale("fr"));
            Object args[] = {"Kirti","female"};
            System.out.println(msgFmt.format(args));

Produz a saída:<br>Kirti est all&#xE9;e &#xE0; Paris.

Java documentação para android.icu.text.SelectFormat.

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

Construtores

Nome Description
SelectFormat(IntPtr, JniHandleOwnership)

SelectFormat dá suporte à criação de mensagens internacionalizadas selecionando frases com base em palavras-chave.

SelectFormat(String)

Cria um novo SelectFormat para uma determinada cadeia de caracteres padrão.

Propriedades

Nome Description
Class

Retorna a classe de runtime 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)
JniPeerMembers

SelectFormat dá suporte à criação de mensagens internacionalizadas selecionando frases com base em palavras-chave.

PeerReference

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

(Herdado de Object)
ThresholdClass

SelectFormat dá suporte à criação de mensagens internacionalizadas selecionando frases com base em palavras-chave.

ThresholdType

SelectFormat dá suporte à criação de mensagens internacionalizadas selecionando frases com base em palavras-chave.

Métodos

Nome Description
ApplyPattern(String)

Define o padrão usado por este formato de seleção.

Clone()

Cria e retorna uma cópia desse objeto.

(Herdado de _Format)
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)
Equals(Object)

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

(Herdado de Object)
Format(Object, StringBuffer, FieldPosition)

Seleciona a frase para a palavra-chave fornecida.

Format(Object)

Formata um objeto para produzir uma cadeia de caracteres.

(Herdado de _Format)
Format(String)

Seleciona a frase para a palavra-chave fornecida.

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 deste objeto.

(Herdado de Object)
NotifyAll()

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

(Herdado de Object)
ParseObject(String, ParsePosition)

Não há suporte para SelectFormatesse método.

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)
ToArray<T>()

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

(Herdado de Object)
ToPattern()

Retorna o padrão para isso SelectFormat

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é ser despertado, normalmente por ser <notificado/em> ou <em>interrompido</em>.<>

(Herdado de Object)
Wait(Int64, Int32)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>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 ele seja despertado, normalmente por ser <>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()

Notifica o runtime de interoperabilidade de que esse par gerenciado foi descartado.

(Herdado de Object)
IJavaPeerable.DisposeUnlessReferenced()

Libera esse par Java, a menos que seja mantido por outra referência gerenciada.

(Herdado de Object)
IJavaPeerable.Finalized()

Notifica o runtime de interoperabilidade de que esse par gerenciado foi finalizado.

(Herdado de Object)
IJavaPeerable.JniManagedPeerState

Obtém o estado que descreve a relação entre esse par gerenciado e sua referência de JNI.

(Herdado de Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Define o código de hash de identidade de interoperabilidade para esse par Java.

(Herdado de Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Define o estado de par gerenciado e JNI para esse par Java.

(Herdado de Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Define a referência de objeto JNI usada por esse par gerenciado.

(Herdado de Object)

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 marcada por runtime do Android.

JavaCast<TResult>(IJavaObject)

SelectFormat dá suporte à criação de mensagens internacionalizadas selecionando frases com base em palavras-chave.

TryJavaCast<TResult>(IJavaPeerable, TResult)

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

Aplica-se a