tipografias tipografia tipo tarjetas puedo para online letra instalar ingles infantiles fuentes descargar dafont como java swing internationalization fonts paint

java - tipografia - Los caracteres en inglés no aparecen cuando ingresas texto con fuentes Urdu en Swing



tipo de letra en ingles (1)

Establecí la configuración regional en ur_IN .

Lamentablemente, ur_IN no se encuentra entre las configuraciones regionales compatibles ; Solo veo en_IN y hi_IN . En el ejemplo citado, utilicé el siguiente código para obtener la imagen a continuación:

spinner.setLocale(new Locale("hi", "IN"));

Esto es similar a mi pregunta anterior , pero esa solución no funcionó aquí. Como mencioné en la pregunta anterior, estoy trabajando en una aplicación multiplataforma (Windows / Ubuntu) que tiene que transliterar el inglés a uno de varios idiomas oficiales de la India. La aplicación tiene un método de entrada personalizado, y escribir en inglés y presionar espacio transcribirá el texto escrito en el idioma local específico. El urdu es diferente de los demás al ser de derecha a izquierda, como el árabe / hebreo. Logré encontrar una fuente de Urdu con licencia abierta que tenga glifos en inglés y en urdu, pero cuando escribo caracteres en inglés, no aparece nada.

No entiendo si se trata de un problema de pintura de fuente o está relacionado con el método de entrada. Hasta ahora, si desactivo el método de entrada personalizado ( InputMethod.dispatchEvent() ) para este idioma, puedo ver el texto en inglés (pero, por supuesto, no tiene lugar la transliteración).

Mis hallazgos:

  • Cambie la fuente a una de las fuentes en árabe de Windows, el mismo resultado.
  • En lugar de usar ComponentOrientation para alinear el texto en el campo de texto, utilicé setHorizontalAlignment para cuando la configuración regional es urdu. Mismo resultado.
  • Descompiled el proveedor de método de entrada predeterminado de JDK en Windows ( sun.awt.windows.WInputMethod ). Aquí veo que dispatchEvent() hace una llamada nativa al sistema operativo para manejar IME. No puedo hacer eso aquí.
  • Encontré una IM personalizada para hebreo : mi versión de dispatchEvent() es esencialmente la misma.
  • Paso por el código para JTextField en Eclipse: no fue posible encontrar nada en el AbstractDocument y las subclases. El método AbstractDocument.insertUpdate() busca y actualiza el ingreso de texto bidireccional, pero no había nada más significativo.

No puedo entender lo que sucede después de la llamada dispatchEvent() . Los caracteres se están registrando, es decir, el motor de transliteración puede detectar los caracteres escritos y procesarlos, pero simplemente no aparecen en la pantalla.

Solución

Si dejo que la orientación del campo de texto sea la misma que para los idiomas normales de izquierda a derecha, puedo ver el texto en inglés. Sin embargo, esto no sería aceptable para un usuario que habla urdu.

¿Alguien me puede apuntar en la dirección correcta?