이 질문의 길이를 변명하십시오. 다른 사람들을 돕고 도움을주는 사람들이 설명을 요구하지 않고 답변을 제공하는 것을 피하기 위해이 모든 것을 설명해야합니다.
한 줄에 내 요구 사항 : "Android 전화가 타밀어 문자를 올바르게 표시 할 수있게하려면"
정교함 : 타밀어는 다른 인도 언어와 마찬가지로 복잡한 문자 렌더링 시스템을 가지고 있습니다. 영어 나 다른 라틴어 기반 스크립트와 달리, 하나 이상의 문자로 구성된 글리프 (화면에 표시되는 문자)가 있습니다. Android는 이러한 복잡한 스크립트를 렌더링 할 수 없습니다 (예외 포함). 저의 목표는 Android 휴대 전화 나 태블릿에 이러한 기능을 제공 할 수있는 방법을 아는 것입니다.
지금까지 수집 한 배경은 거의 없습니다. 화면에 글리프를 표시하려면 먼저 적절한 글꼴 파일이 필요합니다. Android 기기에는 / system / fonts 폴더 가 있으며 그 중 일부는 없습니다. 이 폴더에서 가장 흥미로운 파일은 DroidSansFallback.ttf입니다. 이름에서 알 수 있듯이 Android 시스템이 시스템 글꼴에서 문자를 찾지 못하면 (DroidSans.ttf 또는 DroidSans-Bold.ttf 등) DroidSansFallback.ttf에서 검색합니다.
PC에서 적절한 글꼴 파일 (Latha.ttf 또는 Lohit-Tamil.ttf-Tamil 용 글꼴)을 교체하면 DroidSansFallback.ttf는 장치에 Tamil 문자를 표시 할 수 있습니다. 교체하기가 쉽지 않으며 장치를 루팅하고 쓰기 가능한 시스템을 마운트해야합니다.
이러한 문제에도 불구하고 DroidSansFallback.ttf를 교체하더라도 표시되는 타밀어 문자가 올바르게 렌더링되지 않습니다. 타밀어 문자 "தி"은 두 문자로 구성되어 있으며 "தி"으로 표시되는 대신 공백없이 "த ி"로 표시됩니다. 짧은 메시지를 읽기에는 충분하지만 책 등을 읽는 데 사용할 수는 없습니다.
안드로이드 4.0 이상에서 타밀어 및 기타 몇 가지 언어는 아래에서 볼 수 있듯이 안드로이드 4.x API 개요에서 말한 것처럼 브라우저를 통해 지원됩니다.
Support for Indic fonts (Devanagari, Bengali, and Tamil, including the complex
character support needed for combining glyphs) in WebView and the built-in Browser
주목할 단어는 "WebView 및 내장 브라우저"이며, 이는 타밀어 문자가 HTML 컨텐츠로 렌더링되면 완벽하게 렌더링되고 그렇지 않으면 렌더링되지 않음을 의미합니다. Opera와 다른 몇 가지 브라우저는 안드로이드 4.0 이전에도 문자 대신 이미지를 대체 하여이 작업을 수행했습니다.
인도 시장을 겨냥한 일부 장치 (예 : LG Optimus One, 대부분의 삼성 전화 및 태블릿)는 브라우저 에서뿐만 아니라 연락처, 문자 메시지, 파일 이름 등 브라우저가 아닌 곳에서도 타밀어를 올바르게 표시 할 수 있음을 알았습니다. 놀랍게도 Android 2.3 이상에서도이 작업을 수행합니다. 또한 동일한 버전의 Android를 실행하는 비인도 국가를 대상으로하는 동일한 모델이 타밀어 문자 표시를 지원하지 않는 것으로 나타났습니다.
이를 통해 추가 조사를 통해 Android (다른 Linux 기반 OS와 마찬가지로)가 복잡한 문자를 표시하기 위해 글꼴 렌더링 엔진에 의존한다는 결론에 도달했습니다. 내가 만난 두 엔진은 Skia와 Harfbuzz입니다. 나는 LG가 skia를 사용하고 Samsung 은이 기능을 가져 오기 위해 장치에서 Harfbuzz 라이브러리를 사용한다는 것을 알았습니다.
이러한 라이브러리와 글꼴을 대체 할 것을 제안하는 많은 웹 사이트를 발견했습니다. 작동하지 않아 얼어 붙습니다. 운 좋게도 나는 clockworkmod를 사용하여 백업했기 때문에 전화를 복원했습니다.
타밀어로 이것을 설명했지만 이것은 대부분의 인도 언어에 적용됩니다.
여기 내 질문이 온다 (여전히 읽고 있다면;) 이제 문자를 제공하기 위해 TTF 파일이 있어야하고 올바르게 렌더링하려면 적절한 라이브러리 (libskia.so 또는 libharfbuzz.so)가 필요하다는 것이 확실합니다. 이 제조업체들이 어떻게 능력을 제공 할 수 있는지 아는 사람이 있습니까? AOSP (Android Open Source Project)에서 내 ROM을 만들 수도 있습니다.