Disculpe la extensión de esta pregunta. Necesito explicar todo esto para ayudar a otros y evitar que los contribuyentes útiles brinden respuestas sin pedir aclaraciones.
Mi requisito en una línea: "permitir que un teléfono Android muestre correctamente los caracteres tamiles".
Elaboración: Tamil, como cualquier otro idioma indio, tiene un sistema complejo de interpretación de caracteres. A diferencia del inglés o de otras escrituras latinas, tiene un glifo (lo que ve en la pantalla) compuesto por más de un carácter. Android no tiene la capacidad de procesar scripts tan complejos (con excepciones). Mi objetivo es saber cómo puedo proporcionar esa capacidad a un teléfono o tableta Android.
Pequeños antecedentes que he reunido hasta ahora: para mostrar un glifo en la pantalla, Android primero necesita un archivo de fuente adecuado. El dispositivo Android tiene una carpeta / system / fonts que tiene algunas de ellas. El archivo más interesante de esa carpeta es DroidSansFallback.ttf. Como sugiere el nombre, cuando el sistema de Android no encuentra un carácter en las fuentes del sistema (que podría ser DroidSans.ttf o DroidSans-Bold.ttf, etc.), vuelve a buscarlo en DroidSansFallback.ttf.
Al reemplazar un archivo de fuente adecuado desde la PC (Latha.ttf o Lohit-Tamil.ttf - estas son fuentes para Tamil) y DroidSansFallback.ttf permitirá mostrar caracteres Tamil en el dispositivo. No es tan fácil de reemplazar e implica rootear el dispositivo y montar el sistema como grabable.
A pesar de esos problemas, incluso si se reemplaza DroidSansFallback.ttf, los caracteres tamiles que se muestran no se procesan correctamente. El carácter tamil "தி" es un conjunto de dos caracteres y, en lugar de mostrarse como "தி", se mostrará como "த ி" sin espacio entre ellos. Aunque esto es suficiente para leer mensajes cortos, no se puede usar para leer libros, etc.
Desde Android 4.0 en adelante, el navegador admite tamil y otros pocos idiomas, como se indica en la descripción general de la API de Android 4.x, como se ve a continuación.
Support for Indic fonts (Devanagari, Bengali, and Tamil, including the complex
character support needed for combining glyphs) in WebView and the built-in Browser
Las palabras a tener en cuenta son "en WebView y el navegador integrado", lo que significa que los caracteres tamiles se representarán perfectamente si se representan como contenido HTML y no se representarán de otra manera. Opera y otros pocos navegadores hicieron esto incluso antes de Android 4.0 al sustituir la imagen en lugar del carácter.
Noté que en algunos dispositivos que apuntan al mercado indio (por ejemplo, LG Optimus One, la mayoría de los teléfonos y tabletas de Samsung) pueden mostrar tamil correctamente tanto en el navegador como en lugares fuera del navegador, como en contactos, mensajes de texto, nombres de archivos, etc. Para mi sorpresa hacen esto incluso en Android 2.3 en adelante. También noté que el mismo modelo dirigido a países no indios que ejecutan la misma versión de Android no es compatible con la visualización de caracteres tamiles.
Esto me hizo investigar más y llegué a la conclusión de que Android (como otros sistemas operativos basados en Linux) depende de un motor de representación de fuentes para mostrar caracteres tan complejos. Los dos motores con los que me encontré son Skia y Harfbuzz. Noté que LG usa skia y Samsung usa bibliotecas Harfbuzz en sus dispositivos para brindar esta capacidad.
Encontré muchos sitios web que sugerían reemplazar estas bibliotecas y fuentes. No funcionó y los resultados en la congelación. Afortunadamente, hice una copia de seguridad usando clockworkmod y, por lo tanto, restauré mi teléfono.
Aunque expliqué esto con el tamil, esto se aplica a la mayoría de los idiomas indios.
Aquí viene mi pregunta (si todavía está leyendo;)) Ahora, estoy seguro de que está claro que un archivo TTF debe estar presente para proporcionar caracteres y se requieren bibliotecas apropiadas (libskia.so o libharfbuzz.so) para representarlos correctamente. ¿Alguien sabe cómo estos fabricantes pueden proporcionar la capacidad? Incluso estoy listo para construir mi propia ROM de AOSP (Proyecto de código abierto de Android).
Android debajo de la carpeta /system/fonts
contiene un archivo llamado "DroidSansFallback.ttf" que se supone que contiene todos los caracteres del idioma. Actualmente carece de apoyo para muchos, incluido el tamil.
Siempre se puede reemplazar el archivo con uno que contenga caracteres Tamil, lo que permite el uso de Tamil en su teléfono.
Desde XDA Developers Thread - DroidSans Fallback Indic Font , los usuarios han probado y utilizado con éxito Tamil en sus teléfonos.
Para llevar a cabo este método, necesita acceso de root a su teléfono, para poder acceder /system
y cambiar el archivo Fallback:
Siga el hilo de XDA Developers para ver cómo reemplazar el archivo :
Using and Android SDK environment:
First Copy the DroidSansFallback.ttf file into your sdcard,
then issue the following commands:
adb shell
su
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
cd /sdcard
busybox cp DroidSansFallback.ttf /system/fonts
mount -o ro,remount -t yaffs2 /dev/block/mtdblock3 /system
exit
exit
Lastly, rebooted the phone
Nota: el punto de montaje no es el mismo para todos los teléfonos.
Si bien el método anterior puede resultar atractivo para algunos usuarios, prefiero una aplicación cuando esté disponible.
Además, el tamil tiene un teclado con un total de 247 caracteres, mientras que el inglés solo necesita 26. Así que esto se convierte en un gran problema a la hora de teclear:
Ver Wikipedia :: Idioma tamil - Sistema de escritura
La escritura tamil actual consta de 12 vocales, 18 consonantes y un carácter especial, el āytam. Las vocales y consonantes se combinan para formar 216 caracteres compuestos, dando un total de 247 caracteres (12 + 18 + 1 + (12 x 18))
Gracias a Krishan, y está trabajando en este tema, ya hay una aplicación disponible para tratar ambos problemas, el uso generalizado del sistema de tamil y un teclado que se puede usar para escribir caracteres tamiles.
Lea la publicación de Krishan titulada Tamil Unicode Font for Android – Working para obtener información detallada sobre el desarrollo de esta solución.
Krishan desarrolló y publicó dos aplicaciones en Google Play que abordan por completo el problema de tener un sistema operativo Android completo en tamil:
Parece que estás describiendo el problema 4153 , un error conocido en Android.
Se informó que este problema se resolvió en Jelly Bean. Si esta captura de pantalla es correcta, entonces el problema debe resolverse. (Realmente no puedo decírmelo, pero tengo acceso a Jelly Bean y puedo hacer capturas de pantalla).
Instalar el navegador web Opera Mini
En el navegador web Opera Mini, escriba "about:Config"
usar fuentes de mapa de bits para secuencias de comandos complejas: Seleccione Sí
Puede ver todos los sitios en fuente tamil en cualquier teléfono móvil de marca
Saludos
No necesita rootear y reemplazar la fuente en el sistema Android.
Reemplace el firmware de su dispositivo con el firmware de una región india similar para representar correctamente la fuente Devanagari. El firmware de otras regiones no representa correctamente las fuentes Devanagari. Las fuentes Devanagari se representan correctamente en la versión 2.x de Android de la región india.
t0mm13b
FMFF