¿Cómo hacer un dispositivo Android para mostrar la representación compleja de los caracteres de datos? -- languages campo con localization campo con fonts camp android Relacionados El problema

How to make an Android device to display complex rendering of Indic characters?


42
vote

problema

Español

Por favor, disculpe la duración de esta pregunta. Necesito explicar todo esto para ayudar a otros y a evitar contribuyentes útiles para proporcionar respuesta sin pedir aclaraciones.

Mi requisito en una línea: "Para habilitar un teléfono Android para mostrar correctamente los caracteres de tamil".

Elaboración: Tamil, como cualquier otro idioma indio tiene un complejo sistema de procesamiento de caracteres. A diferencia del inglés u otro script en latín, tiene glifos (lo que ve en pantalla) compuesto por más de un personaje. Android no tiene capacidad para prestar tales scripts complejos (con excepciones). Mi objetivo es saber cómo puedo proporcionar tal habilidad para un teléfono o tableta Android.

poco fondo que me reuní hasta ahora: Para mostrar un glifo en pantalla, Android primero necesita un archivo de fuente adecuado. El dispositivo Android tiene una carpeta / System / Fonts que tiene pocos de ellos. El archivo más interesante en esa carpeta es el DROIDSANSFALLBACK.TTF. Como su nombre sugiere, cuando el sistema de Android no encuentra un personaje en las fuentes del sistema (que podría ser Droidsans.TTF o Droidsans-Bold.TTF, etc.), se vuelve a buscar en Droidsansansfallback.ttf.

Al reemplazar un archivo de fuente adecuado de PC (latha.ttf o lohit-tamil.ttf, estas son fuentes para tamil) y Droidsansansfallback.ttf permitirá mostrar caracteres tamiles en el dispositivo. No es tan fácil de reemplazar e implica enraizar el dispositivo y montar el sistema como escritura.

A pesar de esos problemas, incluso si se reemplaza el DROIDSANSFALLBACK.TTF, los caracteres tamiles que se muestran no se representan correctamente. El carácter tamil "தி" es un conjuntante de dos caracteres y, en lugar de mostrarlo como "தி", se mostrará como "த த" sin espacio en el medio. Aunque esto es suficiente para leer mensajes cortos, no se puede usar para leer libros, etc.

de Android 4.0 en Wards, Tamil y otros idiomas son compatibles con el navegador como se dice en Android 4.x Descripción general de la API que 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 para notar es "en WebView y el navegador incorporado", lo que significa que los caracteres tamiles se harán perfectamente si se representa como contenido HTML y no se volverá a representar 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 pocos dispositivos que se dirigen al mercado indio (EX: LG Optimus One, la mayoría de los teléfonos y tabletas de Samsung) pueden mostrar tamil correctamente tanto en el navegador como incluso en lugares fuera del navegador como en contactos, mensajes de texto, Nombres de archivos, etc. Para mi sorpresa, lo hacen incluso en Android 2.3 en adelante. También noté que el mismo modelo que dirige el país no indio que ejecuta la misma versión de Android no admite la pantalla de caracteres Tamil.

Esto me hizo investigar más a fondo y llegar a una conclusión de que Android (como Otro OS basado en Linux) depende de un motor de renderización de fuentes para mostrar dichos caracteres complejos. Los dos motores que encontré son Skia y Harfbuzz. Noté que LG utiliza Skia y Samsung utiliza bibliotecas de Harfbuzz en sus dispositivos para brindar esta capacidad.

Me encontré con muchos sitios web que sugieren reemplazar a estas bibliotecas y fuentes. No funcionó y resulta en la congelación. Afortunadamente, retrocedí usando ClockWorkMod y, por lo tanto, restauré mi teléfono.

Aunque he explicado esto con Tamil, esto es aplicable para la mayoría de los idiomas indios.

aquí viene mi pregunta (si aún está leyendo;)) Ahora, con mucho gusto que está claro que un archivo TTF debe estar presente para proporcionar caracteres y las bibliotecas apropiadas (libskia.so o libharfbuzz.so) deben hacerlas 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).

Original en ingles

Please excuse the length of this question. I need to explain all this to help others and to avoid helpful contributors to provide answer without asking clarifications.

My requirement in one line: "to enable an Android phone to display Tamil characters properly".

Elaboration: Tamil, like any other Indian language has complex character rendering system. Unlike English or other Latin based script, it has glyph (what you see in screen) composed of more than one character. Android does not have ability to render such complex scripts (with exceptions). My aim is to know how I can provide such an ability to an Android phone or tablet.

Little background that I gathered so far: To display a glyph in screen, Android first needs a suitable font file. Android device has a folder /system/fonts which has few of them. The most interesting file in that folder is the DroidSansFallback.ttf. As the name suggests, when Android's system fails to find a character in system fonts (that could be DroidSans.ttf or DroidSans-Bold.ttf etc) it falls back to search it in DroidSansFallback.ttf.

By replacing a suitable font file from PC (Latha.ttf or Lohit-Tamil.ttf - these are fonts for Tamil) and DroidSansFallback.ttf will enable to display Tamil characters in the device. It is not so easy to replace and it involves rooting the device and mounting the system as writable.

In spite of those troubles, even if the DroidSansFallback.ttf is replaced, the Tamil characters that are displayed are not rendered properly. The Tamil character "xe0xaexa4xe0xaexbf" is a conjunct of two characters and instead of getting displayed as "xe0xaexa4xe0xaexbf", it will be displayed as "xe0xaexa4 xe0xaexbf" without space in between. Though this is enough to read short messages, it cannot be used to read books etc.

From Android 4.0 on wards, Tamil and other few languages are supported through browser as said in Android 4.x API overview as seen below.

Support for Indic fonts (Devanagari, Bengali, and Tamil, including the complex character support needed for combining glyphs) in WebView and the built-in Browser 

The words to notice is "in WebView and the built-in Browser", which means that Tamil characters will be rendered perfectly if it is rendered as HTML content and will not be rendered otherwise. Opera and other few browsers did this even before Android 4.0 by substituting image instead of character.

I noticed that in few devices that target Indian market (ex: LG Optimus One, most of Samsung phones and tablets) are able to display Tamil properly both in browser and even in places out of browser like in contacts, text messages, file names etc. To my surprise they do this even in Android 2.3 onwards. I also noticed that the same model targeting non-Indian country running same version of Android does not support Tamil character display.

This made me to investigate further and reached a conclusion that Android (as other Linux based OS) depends on a font rendering engine to display such complex characters. The two engines that I came across are Skia and Harfbuzz. I noticed LG uses skia and Samsung uses Harfbuzz libraries in their devices to bring this ability.

I came across many websites suggesting to replaces these libraries and fonts. It did not work and results in freezing. Fortunately I backed up using clockworkmod and hence I restored my phone.

Though I had explained this with Tamil, this is applicable for most of the Indian languages.

Here comes my question (if you are still reading;) ) Now, far sure it is clear that a TTF file should be present to provide characters and an appropriate libraries (libskia.so or libharfbuzz.so) are required to render them correctly. Does any one know how these manufacturers are able to provide the ability? I am even ready to build my own ROM from AOSP (Android Open Source Project).

        
   
   

Lista de respuestas

9
 
vote

Teléfono enraizado

Android en la carpeta ABCDEFGHIJKLMNABCDEFGHIJKLMN0 contiene un archivo llamado "DROIDSANSFALLBACK.TTF" que se supone que contiene todos los caracteres de idioma. Actualmente carece de apoyo para muchos, incluido Tamil.

Uno siempre puede reemplazar el archivo con uno que contiene caracteres tamiles, lo que permite el uso de Tamil en su teléfono.

de Hilo de los desarrolladores de XDA - Droidsans Fallback Indican fuente , usuarios han intentado y usado con éxito tamil en sus teléfonos.

  • Descarga el Droidsansfallback.ttf archivo < / li>
  • Descarga el original archivo DROIDHINDI.TTF

Para aclarar este método, necesita acceso de raíz a su teléfono, para acceder al /system y cambiar el archivo Fallback:

  • Leer ¿Cómo rooteo mi dispositivo? Si su teléfono aún no está enraizado.
  • Siga WDA Developers Thread para ver cómo Reemplace 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: Mount Point no es lo mismo para todos los teléfonos.


Aplicación de Android

Si bien el método anterior puede atraer a algunos usuarios, prefiero una aplicación cuando esté disponible.

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

Consulte Wikipedia :: Tamil Language - Sistema de escritura

El script de tamil actual consta de 12 vocales, 18 consonantes y un carácter especial, el āytam. Las vocales y las 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 lidiar con ambos problemas, el sistema de tamil ancho de Tamil y un teclado que se puede usar para escribir caracteres tamiles.

Leer la publicación de Krishan titulada tamil unicode fuente para Android - trabajando para obtener información detallada sobre el desarrollo de esta solución.

para resumir

Krishan desarrolló y publicó dos aplicaciones en Google Play Eso tratará completamente con el problema de tener un sistema operativo Android completo en Tamil:

  • Teclado de Tamil Unicode < / p>

    TAMIL UNICODE TECLETO - PANTALLA DE IMPRIMIR

  • Tamil Unicode Font

    Tamil Unicode Fuentes - Pantalla de impresión

 

Rooted Phone

Android under the folder /system/fonts contains a file named "DroidSansFallback.ttf" supposed to contain all the language characters. Currently it lacks support for many, including Tamil.

One can always replace the file with one that contains Tamil characters, thus allowing the usage of Tamil on your phone.

From XDA Developers Thread - DroidSans Fallback Indic Font, users have tried and successfully used Tamil on their phones.

  • Download the DroidSansFallback.ttf file
  • Download the original DroidHindi.ttf file

To acomplish this method, you need root access to your phone, in order to access the /system and change the Fallback file:

  • Read How do I root my device? if your phone isn't rooted yet.
  • Follow XDA Developers thread to see how to replace the file:

    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 

    Note: mount point isn't the same for all phones.


Android APP

While the above method may appeal to some users, I do prefer an APP when available.

Besides, Tamil has a keyboard with a total of 247 characters, while the English one only needs 26. So this becomes a major problem when typing:

See Wikipedia :: Tamil language - Writing System

The current Tamil script consists of 12 vowels, 18 consonants and one special character, the xc4x81ytam. The vowels and consonants combine to form 216 compound characters, giving a total of 247 characters (12 + 18 + 1 + (12 x 18))


Thanks to Krishan, and is work on this subject, there's already an APP available to deal with both issues, the system wide usage of Tamil, and a keyboard that can be used to type Tamil Characters.

Read Krishan's post entitled Tamil Unicode Font for Android xe2x80x93 Working for detailed information about the development of this solution.

To summarize

Krishan developed and published two APPs at Google Play that completely deal with the problem of having an entire Android OS in Tamil:

  • Tamil Unicode Keyboard

    Tamil Unicode Keyboard - print screen

  • Tamil Unicode Font

    Tamil Unicode Font - print screen

 
 
 
 
3
 
vote

Parece que está describiendo Número 4153 , A error conocido en Android.

Este problema ha sido reportado como resuelto en Jelly Bean. Si esta captura de pantalla es correcta, entonces el problema debe ser resuelto. (Realmente no puedo decirme, pero tengo acceso a Jelly Bean y puedo hacer que las capturas de pantalla.)

Página de prueba ICS para Unicode

 

You appear to be describing issue 4153, a known bug in Android.

This issue has been reported as resolved in Jelly Bean. If this screenshot is correct, then the issue should be resolved. (I can't really tell myself, but I do have access to Jelly Bean and can make screenshots from it.)

ICS Test Page for Unicode

 
 
     
     
1
 
vote

Instalar Opera Mini Browser web

en Opera Mini Tipo de navegador web "Acerca de: Config"

Utilice fuentes de mapa de bits para scripts complejos: seleccione Sí

Puede ver todos los sitios en la fuente Tamil en cualquier teléfono móvil

Saludos

 

Install Opera Mini web Browser

In Opera Mini Web Browser type "about:Config"

use bitmap fonts for complex scripts : Select Yes

You can view all sites in tamil font in any brand mobile phone

Regards

 
 
 
 
0
 
vote

No necesita rootear y reemplazar la fuente en el sistema Android.

Reemplace el firmware de su dispositivo con el firmware similar de la región india para renderizar la fuente de Devanagari correctamente. El firmware de otras regiones no representa correctamente las fuentes de Devanagari. Las fuentes Devanagari rinden correctamente en la versión de Android 2.X de la región india.

 

You do not need to root and replace the font on Android system.

Replace the firmware of your device with similar Indian region's firmware to render the Devanagari font correctly. Other regions' firmware do not render the Devanagari fonts correctly. Devanagari fonts correctly render on Indian Region's Android version 2.x.

 
 

Relacionados problema

3  ¿Cuál es la fuente china predeterminada en Android?  ( What is the default chinese font in android ) 
¿Cuál es la fuente china predeterminada en Android y dónde se almacenan para que pueda obtener los archivos de fuente? ...

7  ¿Hay alguna preferencia de tamaño de fuente accesible por el usuario?  ( Is there a user accessible font size preference ) 
Me gustaría cambiar el tamaño de la fuente en todo el sistema operativo, no solo en una aplicación o en una pantalla. ¿Hay alguna forma de hacer esto? Busca...

42  ¿Cómo hacer un dispositivo Android para mostrar la representación compleja de los caracteres de datos?  ( How to make an android device to display complex rendering of indic characters ) 
Por favor, disculpe la duración de esta pregunta. Necesito explicar todo esto para ayudar a otros y a evitar contribuyentes útiles para proporcionar respuest...

11  ¿Cómo puede instalar una fuente hindi en Android 2.1?  ( How can install a hindi font in android 2 1 ) 
Tengo un Samsung Galaxy S GT-I9000 y quiero instalar una fuente hindi en ella. ¿Cómo puedo hacer esto? ...

1  Nexus 10 caracteres de la tableta ilegibles  ( Nexus 10 tablet characters illegible ) 
He instalado dos aplicaciones en mi tableta Nexus 10 y los caracteres se presentan como cajas con X's a través de ellos como se muestra a continuación. Me con...

1  Solicitud de cambio de fuentes en Android 4.3  ( Application for changing fonts in android 4 3 ) 
¿Hay alguna aplicación por la cual pueda cambiar las fuentes de su Android, que también admite el idioma griego? Desafortunadamente, no tengo una marca bien...

2  ¿Hay alguna manera de formatear la fuente de los números en Nexus One / Nexus S?  ( Is there a way to format numbers font in nexus one nexus s ) 
Me encanta ver números en la fuente de Georgia y me encantaría verlos ¡Formatado automático en esa fuente! Si conoce tales consejos, por favor, comparte! a...

-1  Estoy teniendo Xolo Play Smartphone. Quiero apoyarlo a la fuente Gujarati. ¿Cómo puedo hacer eso? [duplicar]  ( I am having xolo play smartphone i want to support it gujarati font how can i ) 
Esta pregunta ya tiene respuestas aquí : ¿Cómo puedo instalar fuentes personalizadas en Android? [du...

3  Cómo ayudar a los usuarios de Android con una capacidad reducida para ver  ( How to help android users with reduced ability to see ) 
¿Qué podemos hacer en el teléfono Android para ayudar a los usuarios cuya capacidad de ver se reduce? Para ser claro que no son personas ciegas, tienen solo...

3  ¿Cómo reemplazar la fuente del sistema de una pestaña Galaxy 7.7?  ( How to replace system font of a galaxy tab 7 7 ) 
¿Cómo reemplazo la fuente del sistema predeterminado en una pestaña Galaxy 7.7, por una fuente .ttf ? ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos