2013-07-16 4 views
3

텍스트를 적절한 RTL 표현으로 변환하는 데 도움이되는 Java 라이브러리를 찾고 있습니다.텍스트를 적절한 RTL 표현으로 변환

예 : 히브리어/아랍어 텍스트는 파일에서 읽을 때 LTR 표현에 있지만 변환 후에는 RTL 형식으로 표시해야합니다.

html의 경우 rtl 또는 ltr로 지정할 수 있기 때문에 요구 사항이 발생합니다. 그러나 텍스트의 텍스트 변형 또는 sms 변형을 원할 때 스타일 시트는 전혀 작동하지 않습니다.

답변

1

RTL 콘텐츠에는 두 가지 문제가 있습니다. 첫 번째는 디스플레이의 올바른 정렬입니다. 호출되는 출력 루틴을 제어하지 않는 한 그것에 대해 할 수있는 방법은 없습니다.

틀림없이 더 중요한 두 번째 문제는 텍스트의 기본 방향입니다. 콘텐츠에 bidirectional formatting characters을 추가하여 어느 정도 제어 할 수 있습니다. 예를 들어

의 문자열 주어,이 같은과, RTL에 대한 기본 방향을 설정할 수 있습니다 :

String[] lines = s.split("\n"); 
StringBuilder sb = new StringBuilder(); 
for (int i = 0; i < lines.length; i++) { 
    sb.append("\u202B"); // right-to-left embedding 
    sb.append(lines[i]); 
    sb.append("\u202C\n"); // pop directional formatting 
}     
s = sb.toString(); 

이것이 다음, 여러 줄에 텍스트를 분할되는 일을 추가하는 것입니다 오른쪽에서 왼쪽으로 각 행의 시작 부분에 문자를 삽입하고 각 행의 끝에 문자를 팝 방향으로 지정합니다.

줄 단위로 완료되는 이유는 포함 재정의가 단락 길이 동안 만 지속되기 때문입니다.

Example code on Ideone.com

Markup example for comparison

관련 문제