Как я могу автоматически изменять сложные сценарии?

Проблема:

Я пытаюсь отобразить небольшой объем текста, используя сложные сценарии, такие как арабский и бенгальский, на мобильных устройствах (в частности, на Android, телефонах BlackBerry и BlackBerry PlayBook). (Приложение называется Allergy Traveler). Оба эти устройства неправильно отображают текст, но по разным причинам.

На Android и PlayBook я могу указать шрифт, и в этом случае символы отображаются, но символы соединены неправильно. Каждый символ отображается без учета контекста.

На BlackBerry на устройстве нет подходящих шрифтов. Я могу предоставить шрифт, но файл шрифта намного превышает максимальный размер шрифта (70 КБ).

Предлагаемое решение:

Я думаю, что процесс правильного использования контекста для отображения слова называется изменением формы. Предположительно, это берет текст и возвращает альтернативный набор символов для отображения. Мое предлагаемое решение состоит в том, чтобы сделать это изменение формы заранее. На Android это гарантировало бы, что текст правильно использует контекст, а на BlackBerry это позволило бы мне удалить неиспользуемые символы и уменьшить размер шрифта.

Вопрос:

Есть ли какие-либо API для этого «изменения» или какие-либо другие предложения? Я готов использовать любую технологию в Windows или Linux (например, Win32 API, Perl, Python, Java,...)

Спасибо за все предложения.


person Garret    schedule 29.04.2011    source источник


Ответы (2)


Для изменения арабского языка на Android можно использовать фреймворк для преобразования арабского языка Амра Гавиша, проверьте http://bar.amr-gawish.com/. Однако следует отметить, что, хотя он правильно изменяет форму и соединяет обычные арабские буквы и текст, он не может соединять арабские буквы, если текст содержит диакритические знаки.

Я заметил приложение на рынке Android, которое объединяет/изменяет арабский текст с диакритическими знаками, но я не уверен, что они использовали для этого, возможно, это их собственная внутренняя структура. Я также заинтересован в поиске API-интерфейсов для изменения формы, в частности тех, которые также могут работать с арабскими диакритическими знаками.

Надеюсь, что приведенная выше ссылка поможет! Дайте нам знать, если вы найдете что-нибудь лучше.

редактировать: следующее также может делать диакритические знаки - Реформер

person graftan    schedule 25.06.2011

Я почти уверен, что у Windows есть API для этого. Для начала взгляните на статью Microsoft об обработке глифов Windows.

person Ted Hopp    schedule 29.04.2011