Lenguaje

Transliterator Clase

Definición

Transliterator es una clase abstracta que translitera texto de un formato a otro.

[Android.Runtime.Register("android/icu/text/Transliterator", ApiSince=29, DoNotGenerateAcw=true)]
public abstract class Transliterator : Java.Lang.Object
[<Android.Runtime.Register("android/icu/text/Transliterator", ApiSince=29, DoNotGenerateAcw=true)>]
type Transliterator = class
    inherit Object
Herencia
Transliterator
Atributos

Comentarios

Transliterator es una clase abstracta que translitera texto de un formato a otro. El tipo de transliterator más común es un script, o alfabeto, transliterator. Por ejemplo, un transliterator ruso a latino cambia el texto ruso escrito en caracteres cirílicos a caracteres latinos fonéticamente equivalentes. ¡No <se>traduce/<em> ruso a inglés! La transliteración, a diferencia de la traducción, opera en caracteres, sin referencia a los significados de las palabras y oraciones.

Aunque la conversión de scripts es su uso más común, un transliterator puede realizar realmente una clase de tareas más general. De hecho, Transliterator define una API muy general que especifica solo que un segmento del texto de entrada se reemplaza por texto nuevo. Los datos concretos de esta conversión se determinan completamente por subclases de Transliterator.

<b>Los transliteratores son sin< estado/b>

Transliteratorlos objetos son <sin>< estado/em>; no conservan información entre las llamadas a transliterate(). Como resultado, los subprocesos pueden compartir transliteratores sin sincronizarlos. Esto puede parecer limitar la complejidad de la operación de transliteración. En la práctica, las subclases realizan transliteraciones complejas retrasando la sustitución del texto hasta que se sepa que no se pueden reemplazar otros reemplazos. En otras palabras, aunque los Transliterator objetos no tienen estado, el propio texto de origen encarna toda la información necesaria y la operación retrasada permite una complejidad arbitraria.

<b>Transliteración< por lotes/b>

La manera más sencilla de realizar la transliteración es a la vez, en una cadena de texto existente. Esto se conoce como <>transliteración em batch</em>. Por ejemplo, dada una cadena input y un transliterator t, la llamada

<blockquote>String result = t.transliterate(input); </blockquote>

lo translitera y devolverá el resultado. Otros métodos permiten al cliente especificar una subcadena que se translitera y usar Replaceable objetos en lugar de cadenas, con el fin de conservar la información fuera de banda (como estilos de texto).

<b>Transliteración< del teclado/b>

Algo más implicado es <em>keyboard</em>, o incremental transliteración. Esta es la transliteración del texto que llega de algún origen (normalmente el teclado del usuario) un carácter a la vez, o de alguna otra manera por etapas.

En la transliteración del teclado, un Replaceable búfer almacena el texto. Como se inserta texto, tanto como sea posible se translitera sobre la marcha. Esto significa que una GUI que muestra el contenido del búfer puede mostrar el texto que se está modificando a medida que llega cada carácter nuevo.

Considere el transliterator basado en reglas simple:

<blockquote> th&gt;{theta}<br> t&gt;{tau} </blockquote>

Cuando el usuario escribe "no", no ocurrirá nada, ya que el transliterator está esperando a ver si el siguiente carácter es "h". Para solucionar este problema, presentamos la noción de un cursor, marcado por "|" en la cadena de salida:

<blockquote> t&gt;|{tau}<br> {tau}h&gt;{theta} </blockquote>

Ahora, cuando el usuario escribe 't', tau aparece y si el siguiente carácter es 'h', la tau cambia a un theta. Esto se logra manteniendo una posición del cursor (independientemente del punto de inserción e invisible en la GUI) en las llamadas a transliterate(). Normalmente, el cursor coincidirá con el punto de inserción, pero en un caso como el anterior, precederá al punto de inserción.

Los métodos de transliteración de teclado mantienen un conjunto de tres índices que se actualizan con cada llamada a transliterate(), incluido el cursor, el inicio y el límite. Estos índices se cambian mediante el método , y se pasan y salen a través de un objeto Position. El start índice marca el principio de la subcadena que examinará el transliterator. Está avanzado a medida que el texto se confirma (pero no es el índice confirmado; es el cursor). El cursor índice, descrito anteriormente, marca el punto en el que el transliterator se detuvo por última vez, ya sea porque alcanzó el final, o porque requería más caracteres para desambiguar entre las posibles entradas. También cursor se puede establecer explícitamente mediante reglas. Los caracteres antes de que el cursor índice estén inmovilizados; las llamadas futuras de transliteración de teclado dentro de esta secuencia de entrada no las cambiarán. Se inserta texto nuevo en el limit índice, que marca el final de la subcadena que examina el transliterator.

Dado que la transliteración del teclado supone que hay que llegar más caracteres, es conservador en su funcionamiento. Solo translitera cuando puede hacerlo de forma inequívoca. De lo contrario, espera a que lleguen más caracteres. Cuando el código de cliente sabe que no hay más caracteres disponibles, quizás porque el usuario ha realizado alguna operación de terminación de entrada, debe llamar finishTransliteration() a para completar las transliteraciones pendientes.

<b>Inverses</b>

Los pares de transliteratores pueden ser inversos entre sí. Por ejemplo, si transliterator <b>A</b> transliterate caracteres incrementando su valor Unicode (por lo que "abc" -> "def"), y transliterator <b B></b> disminuye valores de caracteres, <b>A</b> es un inverso de <b>B</b> y viceversa. Si redactamos b A/b< con >b B<>/b< en un transliterator compuesto, el resultado es el transliterator de identidad, es decir, un transliterator que no cambia su texto de entrada.><>

El Transliterator método getInverse() devuelve el inverso de un transliterator, si existe, o null de lo contrario. Sin embargo, el resultado de getInverse() normalmente em<not>/em< será >un verdadero inverso matemático. Esto se debe a que los transliteratores inversos verdaderos son difíciles de formular. Por ejemplo, considere dos transliteratores: <b>AB</b>, que translitera el carácter "A" a "B" y <b>BA</b>, que translitera "B" a "A". Puede parecer que son inversos exactos, ya que

<blockquote>"A" x <b>AB</b> -> "B"<br> "B" x <b>BA</b> -> "A"</blockquote>

donde 'x' representa la transliteración. Sin embargo,

<blockquote>"ABCD" x <b>AB</b> -> "BBCD"<br> "BBCD" x <b>BA</b> -> "AACD"</blockquote>

por lo tanto <, b>AB</b> compuesto con <b>BA</b> no es la identidad. No obstante, b BA/b< puede considerarse >útilmente inverso de b<AB>/b<, y se basa en ello que >b<AB>/b<> podría devolver <legítimamente b>BA.getInverse()/b<.><>

<b>Filtrado</b>

Cada transliterator tiene un filtro, que restringe los cambios a esos caracteres seleccionados por el filtro. El filtro afecta solo a los caracteres que se cambian: los caracteres fuera del filtro siguen formando parte del contexto del filtro. Por ejemplo, en lo siguiente, aunque se filtre "x" y no se convierta en y, afecta a la conversión de "a".

String rules = &quot;x &gt; y; x{a} &gt; b; &quot;;
            Transliterator tempTrans = Transliterator.createFromRules(&quot;temp&quot;, rules, Transliterator.FORWARD);
            tempTrans.setFilter(new UnicodeSet(&quot;[a]&quot;));
            String tempResult = tempTrans.transform(&quot;xa&quot;);
            // results in &quot;xb&quot;

<b>Identificadores y nombres< para mostrar/b>

Un transliterator se designa mediante una cadena de identificador corta o <em>ID</em>. Los identificadores siguen el formato <em>source-destination</em>, donde <em>source</em> describe la entidad que se va a reemplazar y <em>destination</em> describe la entidad que reemplaza em <>source</em>. Las entidades pueden ser los nombres de scripts, secuencias concretas de caracteres o cualquier otra cosa que sea que el transliterator se convierta en o desde. Por ejemplo, un transliterator de ruso a latino podría denominarse "ruso-latino". Un transliterator de secuencias de escape de teclado a caracteres latin-1 podría denominarse "KeyboardEscape-Latin1". Por convención, los nombres de entidad del sistema están en inglés, con las letras iniciales de las palabras en mayúscula; los nombres de entidad de usuario pueden seguir cualquier formato siempre que no contengan guiones.

Además de los identificadores de programación, los objetos transliterator tienen nombres para mostrar para la presentación en las interfaces de usuario, devueltas por #getDisplayName.

<b>Transliteratores< compuestos/b>

Además de transliteratores integrados del sistema como "latin-greek", también <>hay transliteratores integrados compuestos</em>. Estos se implementan mediante la redacción de dos o más transliteratores de componentes. Por ejemplo, si tenemos scripts "A", "B", "C" y "D", y queremos transliterar entre todos los pares de ellos, es necesario escribir 12 transliteratores: "A-B", "A-C", "A-D", "B-A" ,..., "D-A", "D-B", "D-B", "D-C". Si es posible convertir todos los scripts en un script intermedio "M", en lugar de escribir 12 conjuntos de reglas, solo es necesario escribir 8: "A~M", "B~M", "C~M", "D~M", "M~A", "M~B", "M~C", "M~D". (Esto podría no parecer una gran victoria, pero es realmente 2 em n/em< vs. >em<n>/em<>sup<2>/sup< - >em<n>/em, por lo que a medida que <em>n</em>< obtiene mayor la ganancia se vuelve significativa.><> Con 9 scripts, es 18 frente a 72 conjuntos de reglas, una gran diferencia). Tenga en cuenta el uso de "~" en lugar de "-" para el separador de scripts aquí; esto indica que el transliterator especificado está pensado para que se componga con otros, en lugar de usarse tal como está.

Los transliteratores compuestos se pueden crear instancias como de costumbre. Por ejemplo, el transliterator del sistema "Devanagari-Gujarati" es un transliterator compuesto creado internamente como "Devanagari~InterIndic; InterIndic~Gujarati". Cuando se crea una instancia de este transliterator, parece ser externamente un transliterator estándar (por ejemplo, getID() devuelve "Devanagari-Gujarati".

<b>Sintaxis< de regla/b>

Un conjunto de reglas determina cómo realizar traducciones. Las reglas dentro de un conjunto de reglas están separadas (';') por punto y coma. Para incluir un punto y coma literal, prefijo con una barra diagonal inversa ('\'). Se omite Pattern_White_Space Unicode. Si el primer carácter que no está en blanco en una línea es "#", se omite toda la línea como comentario.

Cada conjunto de reglas consta de dos grupos, uno hacia delante y otro inverso. Se trata de una convención que no se aplica; se pueden omitir reglas para una dirección, con el resultado de que las traducciones en esa dirección no modificarán el texto de origen. Además, se pueden especificar reglas inversas bidireccionales para transformaciones simétricas.

Nota: Otra descripción de la sintaxis de la regla transliterator está disponible en la sección Transformación de la sintaxis de reglas de UTS #35: Unicode LDML. Las reglas se muestran allí mediante símbolos de flecha ← y → y ↔ . ICU admite tanto los símbolos ASCII como los equivalentes < y > y < >.

Las instrucciones rule toman una de las formas siguientes:

<dl><dt>$alefmadda=\\u0622;</dt><dd><strong>Variable definition.</strong> El nombre de la izquierda se asigna al texto de la derecha. En este ejemplo, después de esta instrucción, instancias del nombre de la mano izquierda, "$alefmadda", se reemplazará por el carácter Unicode U+0622. Los nombres de variable deben comenzar con una letra y solo constan de letras, dígitos y caracteres de subrayado. El caso es significativo. Los nombres duplicados hacen que se produzca una excepción, es decir, las variables no se pueden volver a definir. El lado derecho puede contener texto bien formado de cualquier longitud, incluyendo sin texto en absoluto ("$empty=;"). El lado derecho puede contener patrones incrustadosUnicodeSet, por ejemplo, "$softvowel=[eiyEIY]".</dd><dt>ai&gt;$alefmadda;</dt><dd><strong>Forward translation rule.</strong> Esta regla indica que la cadena de la izquierda se cambiará a la cadena de la derecha al realizar la transliteración de reenvío.</dd><dt>ai&lt;$alefmadda;</dt><dd><strong>Reverse translation rule.</strong> Esta regla indica que la cadena de la derecha se cambiará a la cadena de la izquierda al realizar la transliteración inversa.</dd></dl>

<dl><dt>ai&lt;&gt;$alefmadda;</dt><dd><strong>Bidirectional translation rule.</strong> Esta regla indica que la cadena de la derecha se cambiará a la cadena de la izquierda al realizar la transliteración hacia delante y viceversa al realizar la transliteración inversa.</dd></dl>

Las reglas de traducción constan de un <patrón> de coincidencia em</em> y una <cadena> de salida em</em>. El patrón de coincidencia consta de caracteres literales, precedidos opcionalmente por contexto y, opcionalmente, seguidos de contexto. Los caracteres de contexto, como los caracteres de patrón literal, deben coincidir con el texto que se translitera. Sin embargo, a diferencia de los caracteres de patrón literal, no se reemplazan por el texto de salida. Por ejemplo, el patrón "abc{def}" indica los caracteres "def" debe ir precedido por "abc" para una coincidencia correcta. Si hay una coincidencia correcta, "def" se reemplazará, pero no "abc". El '}' final es opcional, así que "abc{def" es equivalente a "abc{def}". Otro ejemplo es "{123}456" (o "123}456") en el que el patrón literal "123" debe ir seguido de "456".

La cadena de salida de una regla reenviada o inversa consta de caracteres para reemplazar los caracteres de patrón literal. Si la cadena de salida contiene el carácter '|', se toma para indicar la ubicación del cursor< em>/em< después del >reemplazo. El cursor es el punto del texto en el que se aplicará el siguiente reemplazo, si existe. El cursor se coloca normalmente dentro del texto de reemplazo; sin embargo, realmente se puede colocar en el contexto de precendificación o siguiente mediante el carácter especial '

Java documentación para android.icu.text.Transliterator.

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Constructores

Nombre Description
Transliterator(IntPtr, JniHandleOwnership)

Transliterator es una clase abstracta que translitera texto de un formato a otro.

Campos

Nombre Description
Forward
Obsoletos.

Constante de dirección que indica la dirección hacia delante en un transliterator, e.

Reverse
Obsoletos.

Constante de dirección que indica la dirección inversa en un transliterator, e.

Propiedades

Nombre Description
AvailableIDs

Devuelve una enumeración sobre los nombres mediante programación de objetos registrados Transliterator .

AvailableSources

Devuelve una enumeración sobre los nombres de origen de transliteratores registrados.

Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
Filter

Devuelve el filtro usado por este transliterator o null si este transliterator no usa ningún filtro. -o bien- Cambia el filtro utilizado por este transliterator.

Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
ID

Devuelve un identificador de programación para este transliterator.

Inverse

Devuelve el inverso de este transliterator.

JniIdentityHashCode

Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad.

(Heredado de Object)
JniManagedPeerState

Transliterator es una clase abstracta que translitera texto de un formato a otro.

(Heredado de JavaObject)
JniPeerMembers

Transliterator es una clase abstracta que translitera texto de un formato a otro.

MaximumContextLength

Devuelve la longitud del contexto más largo requerido por este transliterator.

PeerReference

Obtiene la referencia de objeto JNI para este Java del mismo nivel.

(Heredado de Object)
SourceSet

Devuelve el conjunto de todos los caracteres que este transliterator puede modificar en el texto de entrada.

TargetSet

Devuelve el conjunto de todos los caracteres que se pueden generar como texto de reemplazo por este transliterator.

ThresholdClass

Transliterator es una clase abstracta que translitera texto de un formato a otro.

ThresholdType

Transliterator es una clase abstracta que translitera texto de un formato a otro.

Métodos

Nombre Description
Clone()

Crea y devuelve una copia de este objeto.

(Heredado de Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Transliterator es una clase abstracta que translitera texto de un formato a otro.

(Heredado de JavaObject)
CreateFromRules(String, String, DirectionOptions)

Devuelve un Transliterator objeto construido a partir de la cadena de regla especificada.

Dispose()

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
Dispose(Boolean)

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
DisposeUnlessReferenced()

Transliterator es una clase abstracta que translitera texto de un formato a otro.

(Heredado de JavaObject)
Equals(Object)

Transliterator es una clase abstracta que translitera texto de un formato a otro.

(Heredado de JavaObject)
Equals(Object)

Indica si algún otro objeto es "igual a" este.

(Heredado de Object)
FilteredTransliterate(IReplaceable, Transliterator+Position, Boolean)

Transliterar una subcadena de texto, tal como se especifica en el índice, teniendo en cuenta los filtros.

FinishTransliteration(IReplaceable, Transliterator+Position)

Finaliza las transliteraciones pendientes que estaban esperando más caracteres.

GetAvailableTargets(String)

Devuelve una enumeración sobre los nombres de destino de transliteratores registrados que tienen un nombre de origen determinado.

GetAvailableVariants(String, String)

Devuelve una enumeración sobre los nombres de variante de transliteratores registrados que tienen un nombre de origen y un nombre de destino especificados.

GetDisplayName(String, Locale)

Devuelve un nombre para este transliterator que es adecuado para mostrar al usuario en la configuración regional especificada.

GetDisplayName(String, ULocale)

Devuelve un nombre para este transliterator que es adecuado para mostrar al usuario en la configuración regional especificada.

GetDisplayName(String)

Devuelve un nombre para este transliterator que es adecuado para mostrar al usuario en la configuración regional predeterminada DISPLAY .

GetElements()

Devuelve los elementos que componen este transliterator.

GetHashCode()

Devuelve un valor de código hash para el objeto .

(Heredado de Object)
GetInstance(String, Int32)

Devuelve un Transliterator objeto dado su identificador.

GetInstance(String)

Devuelve un Transliterator objeto dado su identificador.

JavaFinalize()
Obsoletos.

Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto .

(Heredado de Object)
Notify()

Activa un único subproceso que está esperando en el monitor de este objeto.

(Heredado de Object)
NotifyAll()

Activa todos los subprocesos que están esperando en el monitor de este objeto.

(Heredado de Object)
SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Transliterator es una clase abstracta que translitera texto de un formato a otro.

(Heredado de JavaObject)
ToArray<T>()

Crea una matriz administrada a partir de este contenedor de matriz Java.

(Heredado de Object)
ToRules(Boolean)

Devuelve una cadena de regla para este transliterator.

ToString()

Devuelve una representación de cadena del objeto .

(Heredado de Object)
Transliterate(IReplaceable, Int32, Int32)

Translitera un segmento de una cadena, con filtrado opcional.

Transliterate(IReplaceable, Transliterator+Position, Int32)

Translitera la parte del búfer de texto que se puede transliterar de forma inequívoca después de insertar un carácter nuevo, normalmente como resultado de un evento de teclado.

Transliterate(IReplaceable, Transliterator+Position, String)

Translitera la parte del búfer de texto que se puede transliterar de forma inequívoca después de insertar texto nuevo, normalmente como resultado de un evento de teclado.

Transliterate(IReplaceable, Transliterator+Position)

Translitera la parte del búfer de texto que se puede transliterar de forma inequívoca.

Transliterate(IReplaceable)

Translitera una cadena completa en su lugar.

Transliterate(String)

Translitera una cadena completa y devuelve el resultado.

UnregisterFromRuntime()

Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad.

(Heredado de Object)
Wait()

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em< o >em<interrumpido>/em<.><>

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)

Implementaciones de interfaz explícitas

Nombre Description
IJavaPeerable.Disposed()

Transliterator es una clase abstracta que translitera texto de un formato a otro.

(Heredado de JavaObject)
IJavaPeerable.Finalized()

Transliterator es una clase abstracta que translitera texto de un formato a otro.

(Heredado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Transliterator es una clase abstracta que translitera texto de un formato a otro.

(Heredado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Transliterator es una clase abstracta que translitera texto de un formato a otro.

(Heredado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Transliterator es una clase abstracta que translitera texto de un formato a otro.

(Heredado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Transliterator es una clase abstracta que translitera texto de un formato a otro.

(Heredado de JavaObject)

Métodos de extensión

Nombre Description
GetJniTypeName(IJavaPeerable)

Obtiene el nombre JNI del tipo de la instancia self.

JavaAs<TResult>(IJavaPeerable)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

Transliterator es una clase abstracta que translitera texto de un formato a otro.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

Se aplica a