Proszę wybaczyć długość tego pytania. Muszę to wszystko wyjaśnić, aby pomóc innym i uniknąć pomocnych autorów, którzy udzieliliby odpowiedzi bez pytania.
Moje wymaganie w jednym wierszu: „aby telefon z Androidem mógł poprawnie wyświetlać znaki tamilskie”.
Opracowanie: tamilski, jak każdy inny język indyjski, ma złożony system renderowania znaków. W przeciwieństwie do angielskiego lub innego skryptu łacińskiego ma glif (to, co widać na ekranie) złożony z więcej niż jednego znaku. Android nie ma możliwości renderowania tak złożonych skryptów (z wyjątkami). Moim celem jest wiedzieć, jak mogę zapewnić taką możliwość telefonowi lub tabletowi z Androidem.
Małe tło, które zebrałem do tej pory: Aby wyświetlić glif na ekranie, Android najpierw potrzebuje odpowiedniego pliku czcionek. Urządzenie z Androidem ma folder / system / czcionki, który ma kilka z nich. Najciekawszym plikiem w tym folderze jest DroidSansFallback.ttf. Jak sama nazwa wskazuje, kiedy system Android nie znajdzie znaku w czcionkach systemowych (może to być DroidSans.ttf lub DroidSans-Bold.ttf itp.), Wraca do wyszukiwania w DroidSansFallback.ttf.
Po zastąpieniu odpowiedniego pliku czcionek z komputera (Latha.ttf lub Lohit-Tamil.ttf - są to czcionki dla Tamil), a DroidSansFallback.ttf umożliwi wyświetlanie znaków tamilskich w urządzeniu. Wymiana nie jest tak łatwa i polega na zrootowaniu urządzenia i zamontowaniu systemu jako zapisywalnego.
Pomimo tych problemów, nawet jeśli DroidSansFallback.ttf zostanie zastąpiony, wyświetlane tamilskie znaki nie są poprawnie renderowane. Tamilski znak „தி” jest połączeniem dwóch znaków i zamiast być wyświetlany jako „தி”, będzie wyświetlany jako „த ி” bez spacji pomiędzy nimi. Chociaż wystarczy to do czytania krótkich wiadomości, nie można go używać do czytania książek itp.
Od Androida 4.0 na oddziałach, tamilski i kilka innych języków jest obsługiwanych przez przeglądarkę, jak wspomniano w przeglądzie API Androida 4.x, jak pokazano poniżej.
Support for Indic fonts (Devanagari, Bengali, and Tamil, including the complex
character support needed for combining glyphs) in WebView and the built-in Browser
Zwracane słowa to „w WebView i wbudowanej przeglądarce”, co oznacza, że znaki tamilskie będą doskonale renderowane, jeśli będą renderowane jako treść HTML i nie będą renderowane w inny sposób. Opera i kilka innych przeglądarek zrobiły to jeszcze przed Androidem 4.0, zastępując obraz zamiast postaci.
Zauważyłem, że na kilku urządzeniach kierowanych na rynek indyjski (np. LG Optimus One, większość telefonów i tabletów Samsung) jest w stanie poprawnie wyświetlać Tamil zarówno w przeglądarce, a nawet w miejscach poza przeglądarką, takich jak kontakty, wiadomości tekstowe, nazwy plików itp. Ku mojemu zaskoczeniu robią to nawet w systemie Android 2.3 i nowszych. Zauważyłem również, że ten sam model kierowany na kraj spoza Indii, w którym działa ta sama wersja Androida, nie obsługuje wyświetlania znaków w języku tamilskim.
To skłoniło mnie do dalszego zbadania i doszedłem do wniosku, że Android (podobnie jak inny system operacyjny oparty na Linuksie) zależy od silnika renderowania czcionek, aby wyświetlał tak złożone znaki. Dwa silniki, które spotkałem, to Skia i Harfbuzz. Zauważyłem, że LG używa skia, a Samsung używa bibliotek Harfbuzz w swoich urządzeniach, aby wprowadzić tę możliwość.
Natknąłem się na wiele stron internetowych sugerujących zastąpienie tych bibliotek i czcionek. Nie działało i powoduje zamarzanie. Na szczęście utworzyłem kopię zapasową przy użyciu clockworkmod i dlatego przywróciłem swój telefon.
Chociaż wyjaśniłem to w języku tamilskim, dotyczy to większości języków indyjskich.
Nadchodzi moje pytanie (jeśli nadal czytasz;)) Teraz jestem pewien, że plik TTF powinien być obecny w celu zapewnienia znaków, a odpowiednie biblioteki (libskia.so lub libharfbuzz.so) są wymagane do poprawnego renderowania. Czy ktoś wie, jak ci producenci są w stanie zapewnić taką możliwość? Jestem nawet gotowy do zbudowania własnej pamięci ROM z AOSP (Android Open Source Project).
źródło
Odpowiedzi:
Zrootowany telefon
Android w folderze
/system/fonts
zawiera plik o nazwie „DroidSansFallback.ttf”, który powinien zawierać wszystkie znaki językowe. Obecnie brakuje wsparcia dla wielu, w tym tamilskiego.Zawsze można zamienić plik na taki, który zawiera znaki tamilskie, co pozwala na korzystanie z tamilskiego w telefonie.
Z wątku programistów XDA - DroidSans Fallback Indic Font , użytkownicy próbowali i z powodzeniem używali Tamil na swoich telefonach.
Aby wykonać tę metodę, potrzebujesz dostępu roota do swojego telefonu, aby uzyskać dostęp do
/system
pliku Fallback i zmienić go:Śledź wątek XDA Developers, aby zobaczyć, jak zastąpić plik :
Uwaga: punkt instalacji nie jest taki sam dla wszystkich telefonów.
Aplikacja na Androida
Chociaż powyższa metoda może spodobać się niektórym użytkownikom, wolę aplikację, gdy jest dostępna.
Poza tym tamilski ma klawiaturę o łącznej liczbie 247 znaków, a angielski potrzebuje tylko 26. Staje się to poważnym problemem podczas pisania:
Zobacz Wikipedia :: Język tamilski - system pisania
Dzięki Krishanowi, który pracuje nad tym tematem, jest już dostępna aplikacja, która poradzi sobie z obydwoma problemami, używanie Tamil w całym systemie oraz klawiatura, za pomocą której można pisać Tamilskie Znaki.
Przeczytaj post Krishana zatytułowany Tamil Unicode Font for Android - Praca, aby uzyskać szczegółowe informacje na temat rozwoju tego rozwiązania.
Podsumowując
Krishan opracował i opublikował dwie aplikacje w Google Play, które całkowicie rozwiązują problem posiadania całego systemu operacyjnego Android w języku tamilskim:
Tamil Unicode Keyboard
Tamil Unicode Font
źródło
Wygląda na to, że opisujesz problem 4153 , znany błąd w systemie Android.
Ten problem został zgłoszony jako rozwiązany w Jelly Bean. Jeśli zrzut ekranu jest poprawny, problem powinien zostać rozwiązany. (Naprawdę nie mogę sobie powiedzieć, ale mam dostęp do Jelly Bean i mogę z niego robić zrzuty ekranu).
źródło
Zainstaluj przeglądarkę internetową Opera Mini
W przeglądarce Opera Mini wpisz „about: Config”
używaj czcionek bitmapowych dla złożonych skryptów: Wybierz Tak
Możesz przeglądać wszystkie strony czcionką tamilską w dowolnym telefonie komórkowym marki
pozdrowienia
źródło
Nie musisz rootować i zamieniać czcionki w systemie Android.
Zamień oprogramowanie wewnętrzne urządzenia na oprogramowanie wewnętrzne podobnego regionu indyjskiego, aby poprawnie renderować czcionkę Devanagari. Oprogramowanie wewnętrzne innych regionów nie wyświetla poprawnie czcionek Devanagari. Czcionki Devanagari poprawnie wyświetlają się w wersji Androida regionu 2.x regionu Indian.
źródło