BidiFormatter 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.
Classe de utilitário para formatação de texto para exibição em um contexto de direcionalidade potencialmente oposta sem garbling.
[Android.Runtime.Register("android/text/BidiFormatter", DoNotGenerateAcw=true)]
public sealed class BidiFormatter : Java.Lang.Object
[<Android.Runtime.Register("android/text/BidiFormatter", DoNotGenerateAcw=true)>]
type BidiFormatter = class
inherit Object
- Herança
- Atributos
Comentários
Classe de utilitário para formatação de texto para exibição em um contexto de direcionalidade potencialmente oposta sem garbling. A direcionalidade do contexto é definida na criação do formatador e a direcionalidade do texto pode ser estimada ou passada quando conhecida.
Para dar suporte a versões inferiores android.os.Build.VERSION_CODES#JELLY_BEAN_MR2, você pode usar a classe da biblioteca de androidx.core.text.BidiFormatter suporte.
Essas APIs fornecem a seguinte funcionalidade:
1. Disposição bidi quando o texto em um idioma é misturado em um documento em outro idioma de direção oposta, por exemplo, quando um nome comercial inglês é inserido em algum texto hebraico, tanto a cadeia de caracteres inserida quanto o texto ao seu redor podem ser exibidos incorretamente, a menos que a cadeia de caracteres inserida seja explicitamente separada do texto ao redor em um "wrapper" que:
- Declara sua direcionalidade para que a cadeia de caracteres seja exibida corretamente. Isso pode ser feito em códigos de formatação bidi unicode por #unicodeWrap métodos semelhantes.
- Isola a direcionalidade da cadeia de caracteres para que ela não afete indevidamente o conteúdo ao redor. Atualmente, isso só pode ser feito usando caracteres Unicode invisíveis da mesma direção que o contexto (LRM ou RLM), além da declaração de direcionalidade acima, "redefinindo" a direcionalidade para a do contexto. A "redefinição" pode precisar ser feita nas duas extremidades da cadeia de caracteres. Sem "redefinir" após a cadeia de caracteres, a cadeia de caracteres "grudará" em um número ou um texto de direção oposta logicamente separado que o segue na linha (mesmo que separado por conteúdo neutro, como espaços e pontuação). Sem "redefinir" antes da cadeia de caracteres, o mesmo pode acontecer lá, mas apenas com um texto de direção mais oposta, não um número. Uma abordagem é "redefinir" a direção somente após cada cadeia de caracteres, na teoria de que, se o texto de direção oposta anterior for encapsulado em bidi, a "redefinição" depois disso impedirá a degola. (Fazer a "redefinição" somente antes de cada cadeia de caracteres definitivamente não funcionar porque não queremos exigir números de encapsulamento bidi e uma cadeia de caracteres de direção oposta encapsulada em bidi pode ser seguida por um número.) Ainda assim, a política mais segura é fazer a "redefinição" em ambas as extremidades de cada cadeia de caracteres, já que as traduções de mensagens RTL geralmente contêm nomes de marca e termos técnicos de script latino não traduzidos, e uma delas pode ser seguida por um valor inserido encapsulado em bidi. Por outro lado, quando se tem essa mensagem, é melhor fazer a "redefinição" manualmente na tradução de mensagem propriamente dita, já que o texto de direção oposta da mensagem poderia ser seguido por um número inserido, o que não envolveríamos bidi de qualquer maneira. Portanto, "redefinir" somente depois que a cadeia de caracteres for o padrão atual. Em uma alternativa à "redefinição", as adições recentes aos padrões HTML, CSS e Unicode permitem que o isolamento faça parte da declaração de direcionalidade. Essa forma de isolamento é melhor do que "redefinir" porque ela ocupa menos espaço, não requer saber a direcionalidade do contexto, tem um efeito mais suave do que "redefinir" e protege ambas as extremidades da cadeia de caracteres. No entanto, ainda não permitimos usá-lo porque as plataformas necessárias ainda não dão suporte a ela.
Fornecer esses serviços de encapsulamento é a finalidade básica do formatador bidi.
2. Estimativa de direcionalidade Como se sabe se uma cadeia de caracteres prestes a ser inserida no texto ao redor tem a mesma direcionalidade? Em muitos casos, sabe-se que esse deve ser o caso ao escrever o código que está fazendo a inserção, por exemplo, quando uma mensagem localizada é inserida em uma página localizada. Nesses casos, não é necessário envolver o formatador bidi. Em alguns outros casos, ele não precisa ser o mesmo que o contexto, mas é constante (por exemplo, urls são sempre LTR) ou também conhecidos. Nos casos restantes, por exemplo, quando a cadeia de caracteres é inserida pelo usuário ou vem de um banco de dados, o idioma da cadeia de caracteres (e, portanto, sua direcionalidade) não é conhecido a priori e deve ser estimado em tempo de execução. O formatador bidi pode fazer isso automaticamente usando o algoritmo de estimativa padrão. Ele também pode ser configurado para usar um objeto de estimativa de direcionalidade personalizado.
Documentação Java para android.text.BidiFormatter.
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.
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) |
| Instance |
Fábrica para criar uma instância de BidiFormatter para a direcionalidade de localidade padrão. |
| IsRtlContext | |
| JniIdentityHashCode |
Obtém o código de hash de identidade atribuído a esse par Java pelo runtime de interoperabilidade. (Herdado de Object) |
| JniManagedPeerState |
Classe de utilitário para formatação de texto para exibição em um contexto de direcionalidade potencialmente oposta sem garbling. (Herdado de JavaObject) |
| JniPeerMembers |
Classe de utilitário para formatação de texto para exibição em um contexto de direcionalidade potencialmente oposta sem garbling. |
| PeerReference |
Obtém a referência de objeto JNI para este par Java. (Herdado de Object) |
| StereoReset | |
| ThresholdClass |
Essa API é compatível com a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código. (Herdado de Object) |
| ThresholdType |
Essa API é compatível com a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código. (Herdado de Object) |
Métodos
| Nome | Description |
|---|---|
| Clone() |
Cria e retorna uma cópia desse objeto. (Herdado de Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Classe de utilitário para formatação de texto para exibição em um contexto de direcionalidade potencialmente oposta sem garbling. (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() |
Classe de utilitário para formatação de texto para exibição em um contexto de direcionalidade potencialmente oposta sem garbling. (Herdado de JavaObject) |
| Equals(Object) |
Classe de utilitário para formatação de texto para exibição em um contexto de direcionalidade potencialmente oposta sem garbling. (Herdado de JavaObject) |
| Equals(Object) |
Indica se algum outro objeto é "igual a" este. (Herdado de Object) |
| GetHashCode() |
Retorna um valor de código hash para o objeto. (Herdado de Object) |
| GetInstance(Boolean) |
Fábrica para criar uma instância de BidiFormatter dada a direcionalidade do contexto. |
| GetInstance(Locale) |
Fábrica para criar uma instância de BidiFormatter dada a localidade de contexto. |
| IsRtl(ICharSequence) |
Opera como |
| IsRtl(String) |
Estima a direcionalidade de uma cadeia de caracteres usando a heurística de direção de texto padrão. |
| 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) |
| SetHandle(IntPtr, JniHandleOwnership) |
Define a propriedade Handle (Herdado de Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Classe de utilitário para formatação de texto para exibição em um contexto de direcionalidade potencialmente oposta sem garbling. (Herdado de JavaObject) |
| ToArray<T>() |
Cria uma matriz gerenciada com base nesse wrapper de matriz Java. (Herdado de Object) |
| ToString() |
Retorna uma representação de cadeia de caracteres do objeto. (Herdado de Object) |
| UnicodeWrap(String, Boolean) |
Opera como |
| UnicodeWrap(String, ITextDirectionHeuristic, Boolean) |
Opera como |
| UnicodeWrap(String, ITextDirectionHeuristic) |
Opera como |
| UnicodeWrap(String) |
Opera como |
| UnicodeWrapFormatted(ICharSequence, Boolean) |
Opera como |
| UnicodeWrapFormatted(ICharSequence, ITextDirectionHeuristic, Boolean) |
Opera como |
| UnicodeWrapFormatted(ICharSequence, ITextDirectionHeuristic) |
Opera como |
| UnicodeWrapFormatted(ICharSequence) |
Opera como |
| 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() |
Classe de utilitário para formatação de texto para exibição em um contexto de direcionalidade potencialmente oposta sem garbling. (Herdado de JavaObject) |
| IJavaPeerable.Finalized() |
Classe de utilitário para formatação de texto para exibição em um contexto de direcionalidade potencialmente oposta sem garbling. (Herdado de JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Classe de utilitário para formatação de texto para exibição em um contexto de direcionalidade potencialmente oposta sem garbling. (Herdado de JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Classe de utilitário para formatação de texto para exibição em um contexto de direcionalidade potencialmente oposta sem garbling. (Herdado de JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Classe de utilitário para formatação de texto para exibição em um contexto de direcionalidade potencialmente oposta sem garbling. (Herdado de JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Classe de utilitário para formatação de texto para exibição em um contexto de direcionalidade potencialmente oposta sem garbling. (Herdado de JavaObject) |
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) |
Classe de utilitário para formatação de texto para exibição em um contexto de direcionalidade potencialmente oposta sem garbling. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Tente coagir a digitar |