#android #blackberry #unicode #blackberry-playbook
#Android #ежевика #Юникод #blackberry-playbook
Вопрос:
Проблема:
Я пытаюсь отобразить небольшой объем текста, используя сложные скрипты, такие как арабский и бенгальский, на мобильных устройствах (в частности, на Android, телефонах BlackBerry и BlackBerry PlayBook). (Приложение является Allergy Traveler) Оба этих устройства не могут корректно отображать текст, но по разным причинам.
На Android и PlayBook я могу указать шрифт, в этом случае символы отображаются, но символы соединены неправильно. Каждый символ отображается без учета контекста.
На BlackBerry на устройстве нет подходящих шрифтов. Я могу предоставить шрифт, но файл шрифта намного превышает максимальный размер шрифта (70 КБ).
Предлагаемое решение:
Я думаю, что процесс правильного использования контекста для отображения слова называется изменением формы. Предположительно, это принимает текст и возвращает альтернативный набор символов для отображения. Мое предлагаемое решение состоит в том, чтобы выполнить это изменение формы заранее. На Android это гарантировало бы, что текст правильно использует контекст, а на BlackBerry это позволило бы мне удалить неиспользуемые символы и уменьшить размер шрифта.
Вопрос:
Существуют ли какие-либо API для выполнения этого «изменения формы» или какие-либо другие предложения? Я готов использовать любую технологию в Windows или Linux (например, Win32 API, Perl, Python, Java, …)
Спасибо за все предложения.
Ответ №1:
Для изменения формы арабского языка на Android это возможно с помощью фреймворка arabic reshaper от Amr Gawish, ознакомьтесьhttp://bar.amr-gawish.com /. Однако вы должны отметить, что, хотя он изменяет форму и соединяет обычные арабские буквы и текст правильно, он не может соединить арабские буквы, если текст содержит диакритические знаки.
Я заметил приложение в Android Marketplace, которое объединяет / изменяет форму арабского текста с помощью диакритических знаков, но я не уверен, что они использовали для этого, возможно, это может быть их собственная внутренняя структура. Мне также интересно найти API для изменения формы, в частности те, которые также могут работать с арабскими диакритическими знаками.
Надеюсь, что приведенная выше ссылка поможет! Дайте нам знать, если найдете что-нибудь получше.
редактировать: следующее также может использовать диакритические знаки — https://github.com/AhmedEssam/Better-Arabic-Reshaper
Ответ №2:
Я почти уверен, что в Windows есть API для этого. Для начала взгляните на описание Microsoft обработки глиф Windows.