Bitte entschuldigen Sie die Länge dieser Frage. Ich muss all dies erklären, um anderen zu helfen und um zu vermeiden, dass hilfreiche Mitwirkende Antworten geben, ohne um Klarstellungen zu bitten.
Meine Anforderung in einer Zeile: "Damit ein Android-Telefon die tamilischen Zeichen korrekt anzeigt".
Ausarbeitung: Tamilisch hat wie jede andere indische Sprache ein komplexes Charakter-Rendering-System. Anders als in Englisch oder anderen lateinischen Schriften besteht die Glyphe (was Sie auf dem Bildschirm sehen) aus mehr als einem Zeichen. Android kann solche komplexen Skripte (mit Ausnahmen) nicht rendern. Mein Ziel ist es zu wissen, wie ich einem Android-Handy oder -Tablet eine solche Fähigkeit verleihen kann.
Kleiner Hintergrund, den ich bisher gesammelt habe: Um eine Glyphe auf dem Bildschirm anzuzeigen, benötigt Android zunächst eine passende Schriftdatei. Das Android-Gerät verfügt über einen Ordner / System / Schriftarten, von denen nur wenige vorhanden sind. Die interessanteste Datei in diesem Ordner ist die Datei DroidSansFallback.ttf. Wie der Name schon sagt, greift das Android-System auf die Suche in DroidSansFallback.ttf zurück, wenn es in Systemschriftarten (z. B. DroidSans.ttf oder DroidSans-Bold.ttf) kein Zeichen findet.
Durch Ersetzen einer geeigneten Schriftartdatei vom PC (Latha.ttf oder Lohit-Tamil.ttf - dies sind Schriftarten für Tamil) und DroidSansFallback.ttf können tamilische Zeichen im Gerät angezeigt werden. Der Austausch ist nicht so einfach. Das Gerät muss gerootet und das System so installiert werden, dass es beschreibbar ist.
Trotz dieser Probleme werden die angezeigten tamilischen Zeichen nicht richtig gerendert, selbst wenn DroidSansFallback.ttf ersetzt wird. Das tamilische Zeichen "தி" ist eine Konjunktion aus zwei Zeichen und wird nicht als "தி", sondern als "த த" ohne Leerzeichen dazwischen angezeigt. Dies ist zwar ausreichend, um Kurznachrichten zu lesen, kann jedoch nicht zum Lesen von Büchern usw. verwendet werden.
Ab Android 4.0 werden Tamilisch und andere wenige Sprachen über den Browser unterstützt, wie in der folgenden Übersicht über die Android 4.x-API angegeben.
Support for Indic fonts (Devanagari, Bengali, and Tamil, including the complex
character support needed for combining glyphs) in WebView and the built-in Browser
Die zu beachtenden Wörter lauten "in WebView und im eingebauten Browser", was bedeutet, dass tamilische Zeichen perfekt gerendert werden, wenn sie als HTML-Inhalt gerendert werden und nicht anders gerendert werden. Opera und andere wenige Browser haben dies bereits vor Android 4.0 getan, indem sie Bild anstelle von Zeichen eingesetzt haben.
Mir ist aufgefallen, dass in einigen Geräten, die auf den indischen Markt abzielen (z. B. LG Optimus One, die meisten Samsung - Telefone und - Tablets) Tamil sowohl im Browser als auch an Orten außerhalb des Browsers wie in Kontakten, Textnachrichten, Dateinamen usw. Richtig angezeigt werden kann Zu meiner Überraschung tun sie dies sogar ab Android 2.3. Mir ist auch aufgefallen, dass dasselbe Modell für ein nicht-indisches Land, auf dem dieselbe Android-Version ausgeführt wird, die Anzeige tamilischer Zeichen nicht unterstützt.
Dies brachte mich zu weiteren Untersuchungen und zu der Schlussfolgerung, dass Android (wie auch andere Linux-basierte Betriebssysteme) von einer Schriftart-Rendering-Engine abhängig ist, um so komplexe Zeichen anzuzeigen. Die beiden Motoren, auf die ich gestoßen bin, sind Skia und Harfbuzz. Ich bemerkte, dass LG Skia verwendet und Samsung Harfbuzz-Bibliotheken in seinen Geräten verwendet, um diese Fähigkeit zu erreichen.
Ich bin auf viele Websites gestoßen, die vorgeschlagen haben, diese Bibliotheken und Schriften zu ersetzen. Es hat nicht funktioniert und führt zum Einfrieren. Zum Glück habe ich mit clockworkmod gesichert und daher mein Telefon wiederhergestellt.
Obwohl ich dies mit Tamil erklärt hatte, gilt dies für die meisten indischen Sprachen.
Hier kommt meine Frage (wenn Sie noch lesen;)) Nun ist es klar, dass eine TTF-Datei vorhanden sein sollte, um Zeichen bereitzustellen, und dass entsprechende Bibliotheken (libskia.so oder libharfbuzz.so) erforderlich sind, um sie korrekt zu rendern. Weiß jemand, wie diese Hersteller die Fähigkeit bieten können? Ich bin sogar bereit, mein eigenes ROM aus AOSP (Android Open Source Project) zu erstellen.
quelle
Antworten:
Gerootetes Telefon
Android unter dem Ordner
/system/fonts
enthält eine Datei mit dem Namen "DroidSansFallback.ttf", die alle Sprachzeichen enthalten soll. Derzeit mangelt es an Unterstützung für viele, darunter Tamil.Sie können die Datei jederzeit durch eine Datei ersetzen, die tamilische Zeichen enthält. Auf diese Weise können Sie Tamil auf Ihrem Telefon verwenden.
Im XDA Developers Thread - DroidSans Fallback Indic Font haben Benutzer versucht und erfolgreich Tamil auf ihren Handys verwendet.
Um diese Methode abzuschließen, benötigen Sie Root-Zugriff auf Ihr Telefon, um auf
/system
die Fallback-Datei zuzugreifen und diese zu ändern:Folgen Sie dem XDA Developers-Thread, um zu sehen, wie die Datei ersetzt wird :
Hinweis: Der Einhängepunkt ist nicht für alle Telefone gleich.
Android App
Während die oben genannte Methode einige Benutzer ansprechen kann, bevorzuge ich eine APP, wenn verfügbar.
Außerdem hat Tamil eine Tastatur mit insgesamt 247 Zeichen, während die englische nur 26 benötigt. Dies wird also zu einem Hauptproblem bei der Eingabe von:
Siehe Wikipedia :: Tamil language - Writing System
Dank Krishan und der Arbeit an diesem Thema gibt es bereits eine APP, die sich mit beiden Problemen befasst, der systemweiten Verwendung von Tamil und einer Tastatur, mit der Tamil-Zeichen eingegeben werden können.
Lesen Sie Krishans Beitrag mit dem Titel Tamil Unicode Font für Android - Working, um detaillierte Informationen über die Entwicklung dieser Lösung zu erhalten.
Zusammenfassen
Krishan hat bei Google Play zwei APPs entwickelt und veröffentlicht , die sich vollständig mit dem Problem befassen, ein komplettes Android-Betriebssystem in Tamil zu haben:
Tamilische Unicode-Tastatur
Tamil Unicode Font
quelle
Sie beschreiben anscheinend das Problem 4153 , einen bekannten Fehler in Android.
Dieses Problem wurde in Jelly Bean als behoben gemeldet. Wenn dieser Screenshot korrekt ist, sollte das Problem behoben sein. (Ich kann es mir nicht wirklich sagen, aber ich habe Zugang zu Jelly Bean und kann daraus Screenshots machen.)
quelle
Installieren Sie den Opera Mini-Webbrowser
Geben Sie im Opera Mini-Webbrowser "about: Config" ein.
Verwenden Sie Bitmap-Schriftarten für komplexe Skripte: Wählen Sie Ja
Sie können alle Websites in tamilischer Schrift auf jedem Markenhandy anzeigen
Grüße
quelle
Sie müssen die Schriftart auf dem Android-System nicht rooten und ersetzen.
Ersetzen Sie die Firmware Ihres Geräts durch die Firmware einer ähnlichen indischen Region, um die Devanagari-Schriftart korrekt wiederzugeben. Die Firmware anderer Regionen gibt die Devanagari-Schriftarten nicht korrekt wieder. Devanagari-Schriftarten werden in der Android-Version 2.x von Indian Region korrekt wiedergegeben.
quelle