SelectFormat 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.
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
- 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ée} other {allé}} à {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ée} other {allé}}}
other {sont {2, select, female {allées} other {allés}}}
}à {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ée} other {allé}} à Paris.",
new ULocale("fr"));
Object args[] = {"Kirti","female"};
System.out.println(msgFmt.format(args));
Produz a saída:<br>Kirti est allée à 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(String) |
Cria um novo |
Propriedades
| Nome | Description |
|---|---|
| Class |
Retorna a classe de runtime 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) |
| 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 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 |
| 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 |
| 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 |
| 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 |
| JavaAs<TResult>(IJavaPeerable) |
Tente coagir a digitar |
| JavaCast<TResult>(IJavaObject) |
Executa uma conversão de tipo marcada por runtime do Android. |
| JavaCast<TResult>(IJavaObject) |
|
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Tente coagir a digitar |