2010-09-30 2 views

ответ

0

В растровых шрифтах Арабский глиф-шейпинг не работает из-за уникальных свойств языка. Вам нужно использовать системные шрифты (которые не являются стандартными в некоторых темах LWUIT), в системных шрифтах поддержка арабского языка зависит от устройства/симулятора, не все из которых поддерживают bidi/shaping правильно.

Обратите внимание, что некоторые старые устройства Sony Erricson, а также некоторые другие устройства, такие как плохо локализованные устройства Android (например, Nexus One), не имеют надлежащей поддержки bidi. Это означает, что их собственные виджеты реализуют bidi вместо их реализации drawString. К сожалению, нет способа обнаружить эту ошибку во время выполнения, поэтому LWUIT не может без проблем обходить ее!

Единственное решение - создать версию специально для таких устройств, которая вручную выполняет алгоритм bidi в коде drawString, это означает замену реализации для этих устройств реализацией, которая просто переопределяет метод drawString и выполняет алгоритм bidi на отображаемые строки. Алгоритм bidi LWUIT выставлен в классе Display.

+0

@ shai, я использовал шрифт 'system # bold # large' для отображения арабского текста. но это будет неправильно отображаться из исходного текста. Я спросил в форуме LWUIT. Посмотрите на [этот вопрос.] (Http://www.java.net/forum/topic/mobile-embedded/lwuit/why-arabic-font-wrongly-showing-nokia-mobiles) – bharath

+0

Я обновил свой ответ на основе хотя его неясно, является ли это проблемой. –

Смежные вопросы