42 votos

¿Cómo hacer un dispositivo Android para mostrar compleja representación de caracteres indico?

Por favor, disculpe la longitud de esta pregunta. Tengo que explicar todo esto para ayudar a otros y evitar útil colaboradores para dar respuesta sin pedir aclaraciones.

Mi requisito en una línea: "para habilitar un teléfono Android con pantalla de Tamil caracteres correctamente".

Elaboración: Tamil, como cualquier otro idioma de la India ha personaje complejo sistema de representación. A diferencia del inglés o de otros alfabetos latinos, ha glifo (lo que se ve en pantalla), compuesto de más de un carácter. Android no tiene la capacidad para que las secuencias de comandos complejas (con excepciones). Mi objetivo es saber cómo puedo proporcionar una capacidad tal para un teléfono Android o tableta.

Poco de información que he reunido hasta ahora: Para mostrar un glifo en la pantalla, Android necesita, en primer lugar un adecuado archivo de fuente. Dispositivo Android tiene una carpeta /system/fonts que tiene algunos de ellos. Los más interesantes archivos en esa carpeta es la DroidSansFallback.ttf. Como el nombre sugiere, cuando Android el sistema no puede encontrar a un personaje en el sistema de fuentes (que podría ser DroidSans.ttf o DroidSans-Bold.ttf etc.), se cae de nuevo a buscar en DroidSansFallback.ttf.

Mediante la sustitución de un adecuado archivo de la fuente de la PC (Latha.ttf o Lohit-Tamil.ttf - estas son fuentes de Tamil) y DroidSansFallback.ttf permitirá mostrar Tamil caracteres en el dispositivo. No es tan fácil de reemplazar y consiste en desbloquear el dispositivo y el montaje del sistema de escritura.

A pesar de los problemas, incluso si el DroidSansFallback.ttf es reemplazado, el Tamil caracteres que se muestran no se procesan correctamente. El Tamil carácter "தி" es un conjunto de dos caracteres y en lugar de obtener la muestra como "தி", se mostrará como "த ி" sin espacio entre. Aunque esto es suficiente para leer los mensajes, no puede ser utilizado para leer libros, etc.

A partir de Android 4.0 en los barrios, Tamil y otros pocos lenguajes son soportados a través del navegador, como se dijo en Android 4.x general API 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 de aviso "en WebView y la incorporada en el Navegador", lo que significa que Tamil personajes serán prestados a la perfección si se representa como el contenido HTML y no se hizo lo contrario. De la ópera y otros pocos navegadores hizo incluso antes de que Android 4.0 mediante la sustitución de la imagen en lugar de caracteres.

Me di cuenta de que en algunos de los dispositivos que se dirigen mercado Indio (ex: LG Optimus One, la mayoría de los teléfonos y tabletas Samsung) son capaces de mostrar Tamil correctamente tanto en el navegador e incluso en lugares fuera del navegador como en los contactos, mensajes de texto, los nombres de archivo, etc. Para mi sorpresa, ellos hacen esto incluso en Android 2.3 en adelante. También me di cuenta de que, el mismo modelo que la orientación no-Indio país ejecutando la misma versión de Android no admite Tamil caracteres de la pantalla.

Esto me hizo investigar más a fondo y llega a una conclusión de que Android (como otros basados en Linux OS) depende de la fuente del motor de renderizado para mostrar caracteres complejos. Los dos motores que encontré son Skia y Harfbuzz. Me di cuenta de LG utiliza skia y Samsung utiliza Harfbuzz bibliotecas en sus dispositivos para llevar esta capacidad.

Me llegó a través de muchos sitios web lo que sugiere que reemplaza estas bibliotecas y fuentes. No trabajo y los resultados en la congelación. Afortunadamente me hace copia de seguridad con clockworkmod y, por tanto, he restaurado mi teléfono.

A pesar de que me había explicado esto con Tamil, esto es aplicable para la mayoría de los idiomas de la India.

Aquí viene mi pregunta (si usted todavía está leyendo;) ) Ahora, ahora seguro de que es claro que un archivo TTF que deben estar presentes para proporcionar caracteres y un adecuado bibliotecas (libskia.así que o libharfbuzz.así, son necesarios para hacerlos correctamente. No cualquiera sabe cómo estos fabricantes son capaces de proporcionar la capacidad? Estoy incluso dispuesto a construir mi propia ROM AOSP (Android Open Source Project).

9voto

Zuul Puntos 7864

Teléfono Rooteado

Android en la carpeta /system/fonts contiene un archivo denominado "DroidSansFallback.ttf" debe contener todos los caracteres de idioma. En la actualidad se carece de soporte para muchos, incluyendo Tamil.

Uno puede reemplazar siempre el archivo que contiene Tamil caracteres, por lo tanto permitiendo el uso de Tamil en el teléfono.

Desde XDA Developers Hilo - DroidSans de Reserva del Índico de la Fuente, los usuarios que lo han probado y utilizado exitosamente Tamil en sus teléfonos.

Para efectuar este método, necesita acceso root en tu teléfono, para acceder a las /system y el cambio de la Reserva archivo:

  • Leer ¿Cómo puedo rootear mi dispositivo? si su teléfono no tiene root todavía.
  • Siga los Desarrolladores de XDA hilo 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: punto de montaje no es el mismo para todos los teléfonos.


APLICACIÓN para Android

Mientras que el método anterior, puede apelar a algunos usuarios, yo prefiero una APLICACIÓN cuando esté disponible.

Además, Tamil tiene un teclado con un total de 247 caracteres, mientras que el inglés sólo tiene 26. Por lo que este se convierte en un gran problema al escribir:

Véase Wikipedia :: lengua Tamil - Sistema de Escritura

El actual Tamil script se compone de los 12 vocales, de 18 de consonantes y un carácter especial, el āytam. Las vocales y las consonantes se combinan para formar 216 compuesto de caracteres, dando un total de 247 caracteres (12 + 18 + 1 + (12 x 18))


Gracias a Krishan, y es el trabajo sobre este tema, ya hay una APLICACIÓN disponible para abordar ambas cuestiones, el sistema de uso amplio de Tamil, y un teclado que se puede utilizar para el tipo de Tamil Caracteres.

Leer Krishan del post titulado Tamil Fuente Unicode para Android - Trabajo para obtener información detallada sobre el desarrollo de esta solución.

Para resumir

Krishan desarrollado y publicado dos Aplicaciones en Google Play que lidiar con el problema de tener todo un sistema operativo Android en Tamil:

3voto

Michael Hampton Puntos 1470

Parece estar describiendo número 4153, un problema conocido en Android.

Esta cuestión se ha divulgado como resuelto en Jelly Bean. Si esta captura de pantalla es correcta, entonces la cuestión debe resolverse. (Yo no puedo decirlo, pero tienen acceso al Jelly Bean y pueden hacer capturas de pantalla de él).

ICS Test Page for Unicode

1voto

Rajesh Puntos 11

Instalar web Opera Mini navegador

En el tipo de navegador de Internet Opera Mini "sobre: Config"

usar las fuentes de mapa de bits para secuencias de comandos complejas: seleccione Sí

Usted puede ver todos los sitios en tamil fuente de cualquier marca de teléfono móvil

Saludos

0voto

Ghana Puntos 1

No necesitas de root y cambiar la fuente en el sistema Android.

Vuelva a colocar el firmware de tu dispositivo con firmware similar indios de la región para representar correctamente la letra Devanagari. Firmware de otras regiones no representan los tipos de letra Devanagari correctamente. Fuentes Devanagari representan correctamente en versión India de la región para Android 2.x.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X