Пожалуйста, извините за длину этого вопроса. Мне нужно объяснить все это, чтобы помочь другим и избежать того, чтобы полезные участники давали ответ, не спрашивая разъяснений.
Мое требование в одной строке: «чтобы на телефоне Android правильно отображались тамильские символы».
Разработка: тамильский, как и любой другой индийский язык, имеет сложную систему рендеринга символов. В отличие от английского или другого латинского алфавита, он имеет глиф (то, что вы видите на экране), состоящий из более чем одного символа. Android не имеет возможности отображать такие сложные скрипты (за исключением). Моя цель - узнать, как я могу предоставить такую возможность для телефона или планшета Android.
Небольшой фон, который я собрал до сих пор: чтобы отобразить глиф на экране, Android сначала нужен подходящий файл шрифта. На устройстве Android есть папка / system / fonts, в которой их мало. Самый интересный файл в этой папке - DroidSansFallback.ttf. Как следует из названия, когда системе Android не удается найти символ в системных шрифтах (это может быть DroidSans.ttf или DroidSans-Bold.ttf и т. Д.), Он вынужден искать его в DroidSansFallback.ttf.
Заменив подходящий файл шрифта с ПК (Latha.ttf или Lohit-Tamil.ttf - это шрифты для тамильского языка), и DroidSansFallback.ttf позволит отображать тамильские символы в устройстве. Заменить его не так-то просто, для этого нужно рутировать устройство и монтировать систему как доступную для записи.
Несмотря на эти проблемы, даже если DroidSansFallback.ttf заменен, отображаемые тамильские символы не отображаются должным образом. Тамильский символ «தி» является соединением двух символов, и вместо того, чтобы отображаться как «தி», он будет отображаться как «த ி» без пробела между ними. Хотя этого достаточно для чтения коротких сообщений, его нельзя использовать для чтения книг и т. Д.
Начиная с Android 4.0 и выше, тамильский и другие языки поддерживаются через браузер, как указано в обзоре API Android 4.x, как показано ниже.
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 и несколько других браузеров сделали это еще до Android 4.0, заменив изображение вместо символа.
Я заметил, что на нескольких устройствах, предназначенных для индийского рынка (например, LG Optimus One, большинство телефонов и планшетов Samsung), можно правильно отображать тамильский язык как в браузере, так и даже в местах вне браузера, таких как контакты, текстовые сообщения, имена файлов и т. Д. К моему удивлению, они делают это даже в Android 2.3 и выше. Я также заметил, что та же модель, предназначенная для неиндийских стран и использующая ту же версию Android, не поддерживает отображение символов на тамильском языке.
Это заставило меня продолжить исследование и пришло к выводу, что Android (как и другие ОС на базе Linux) зависит от механизма рендеринга шрифтов для отображения таких сложных символов. Два двигателя, с которыми я столкнулся, - Skia и Harfbuzz. Я заметил, что LG использует skia, а Samsung использует библиотеки Harfbuzz в своих устройствах для реализации этой возможности.
Я сталкивался со многими сайтами, предлагающими заменить эти библиотеки и шрифты. Это не сработало и приводит к зависанию. К счастью, я сделал резервную копию с помощью clockworkmod и, следовательно, восстановил свой телефон.
Хотя я объяснил это на тамильском, это применимо к большинству индийских языков.
Здесь возникает мой вопрос (если вы все еще читаете;)) Теперь, безусловно, ясно, что файл TTF должен присутствовать, чтобы предоставить символы, и для правильной визуализации необходимы соответствующие библиотеки (libskia.so или libharfbuzz.so). Кто-нибудь знает, как эти производители могут предоставить возможность? Я даже готов построить свой собственный ROM из AOSP (Android Open Source Project).
источник
Ответы:
Рутованный телефон
Android в папке
/system/fonts
содержит файл с именем «DroidSansFallback.ttf», который должен содержать все языковые символы. В настоящее время ему не хватает поддержки многих, в том числе тамильских.Всегда можно заменить файл файлом, содержащим тамильские символы, что позволяет использовать тамильский на вашем телефоне.
От XDA Developers Thread - DroidSans Fallback Indic Font пользователи пробовали и успешно использовали тамильский на своих телефонах.
Чтобы воспользоваться этим методом, вам нужен root-доступ к вашему телефону, чтобы получить доступ к
/system
файлу Fallback и изменить его:Следуйте ветке разработчиков XDA, чтобы узнать, как заменить файл :
Примечание: точка монтирования не одинакова для всех телефонов.
Android-приложение
Хотя вышеуказанный метод может понравиться некоторым пользователям, я предпочитаю приложение, когда оно доступно.
Кроме того, у тамильской клавиатуры всего 247 символов, а для английской - только 26. Поэтому это становится серьезной проблемой при наборе текста:
Смотрите Википедию :: Тамильский язык - Письменная система
Благодаря Кришану, и работает над этим вопросом, уже есть приложение для решения обеих проблем: общесистемное использование тамильского языка и клавиатура, которую можно использовать для ввода тамильских символов.
Прочтите сообщение Кришана под названием « Шрифт Tamil Unicode для Android» - работа с подробной информацией о разработке этого решения.
Обобщить
Кришан разработал и опубликовал два приложения в Google Play, которые полностью решают проблему наличия целой ОС Android на тамильском:
Тамильская Unicode Клавиатура
Тамильский шрифт Unicode
источник
Вы, кажется, описываете проблему 4153 , известную ошибку в Android.
Эта проблема была решена в Jelly Bean. Если этот снимок экрана верный, проблема должна быть решена. (Я не могу сказать сам, но у меня есть доступ к Jelly Bean и я могу сделать скриншоты из него.)
источник
Установить браузер Opera Mini
В браузере Opera Mini введите «about: Config»
использовать растровые шрифты для сложных сценариев: выберите Да
Вы можете просматривать все сайты тамильским шрифтом в любом бренде мобильного телефона.
С уважением
источник
Вам не нужно рутировать и заменять шрифт в системе Android.
Замените прошивку вашего устройства на аналогичную прошивку индийского региона, чтобы правильно отобразить шрифт Devanagari. В прошивках других регионов шрифты деванагари неправильно отображаются. Шрифты Devanagari корректно отображаются на Android версии 2.x в Индийском регионе.
источник