LWUIT: проблем с показването на арабски думи?

Здравейте, имам проблем с показването на арабски думи в LWUIT, знаците на арабските думи са разделени и обърнати, но това работи вярно на nokia, как мога да реша този проблем? Благодаря


person mahdi    schedule 30.09.2010    source източник


Отговори (1)


В растерните шрифтове оформянето на арабски глифове не работи поради уникалните свойства на езика. Трябва да използвате системни шрифтове (които не са по подразбиране в някои от темите на LWUIT), в системните шрифтове поддръжката за арабски зависи от устройството/симулатора, като не всички от тях поддържат правилно двустранно писане/оформяне.

Забележете, че някои по-стари устройства на Sony Erricson, както и някои други устройства, като лошо локализирани устройства с Android (напр. Nexus One), нямат подходяща поддръжка на bidi. Това означава, че техните естествени джаджи прилагат bidi вместо тяхната drawString реализация. За съжаление няма начин да се открие този бъг по време на изпълнение, така че LWUIT не може безпроблемно да го заобиколи!

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

person Shai Almog    schedule 22.05.2011
comment
@ shai, използвах system#bold#large шрифт за показване на арабски текст. но това ще се показва погрешно от оригиналния текст. Питах във форума на LWUIT. Вижте този въпрос . - person bharath; 09.11.2011
comment
Актуализирах отговора си въз основа на коментарите, въпреки че не е ясно дали това е проблемът. - person Shai Almog; 10.11.2011