2011-11-24 2 views
1

아랍어로 일부 (정적) 텍스트를 표시하려면 기존 Java 응용 프로그램을 수정해야합니다. 문제는이 Java 응용 프로그램이 Java 1.1 만 지원하는 장치에서 실행된다는 것입니다 (예, 알고 있습니다.Java의 아랍 텍스트 AWT

스윙은 RTL 언어를 지원하지만 AWT 만 사용할 수 있다는 것을 알고 있습니다. 응용 프로그램은 중량 구성 요소를 사용하지 않습니다. 모든 텍스트는 Graphics.drawString()을 사용하여 그려집니다.

전혀 가능합니까? (텍스트 렌더링 엔진을 처음부터 구현하지 않아도 됨). 누군가 기존의 예를 가리킬 수 있습니까? 유용한 조언이 있습니까?

감사합니다.

답변

0

문자열의 각 아랍어 단어를 사용자 지정 BiDi 구현으로 사전 처리하는 데 사용되는 arabic "reshaper" 알고리즘을 결합하여이 문제를 성공적으로 해결했습니다.

렌더링은 지금까지 모든 경우에 완벽하게 작동합니다.

Java 1.1 또는 아랍어를 기본적으로 지원하지 않는 다른 환경 (실제로 위에 링크 된 reshaper는 원래 Android에서 작성된 것임)과 함께 다른 사람이 동일한 문제를 겪은 경우를 대비하여.

편집 :

원래 링크가 더 이상 작동하지 않지만, 코드는 GitHub의에서 사용할 수 있습니다 : https://github.com/agawish/Better-Arabic-Reshaper/

+0

지금까지, 불행히도, 그 링크가 깨진 것 같습니다 ... – RobertG

+1

Hi Robert. 충고 고맙습니다. 나는 작동 링크로 답변을 업데이트 중이다. – Grodriguez

1

정적 인 경우 약간의 비트 맵을 만드십시오. 렌더링이 작동하지 않습니다.

+0

흠,하지만 왜입니까? 나는 아랍어 텍스트로 응용 프로그램을 작성하고 Java를 전혀 사용하지 않는 개발자가 있다고 생각합니다. – Grodriguez

+0

Java 1.1? 그 옛날에는 Java로 복잡한 스크립트와 RTL을 원격으로 고려한 사람조차 없었습니다. ICU 프로젝트에는 거대한 도서관 부가 기능이 있었을 지 모르지만 6 년 후에는 누구든지이 기능을 검토해 보았습니다. – bmargulies