我正在寻找任何有助于将一段文本转换为适当的RTL表示的java库。
例如从文件中读取的希伯来语/阿拉伯语文本将在LTR表示中,但是在转换后它应该以它的RTL格式显示。
要求出现,因为在html的情况下,我们可以将dir指定为rtl或ltr。但是,当我们想要文本变体或文本的短信变体时,样式表根本不会发挥作用。
答案 0 :(得分:1)
RTL内容有两个问题。第一个是显示器的右对齐。除非你能控制被调用的输出例程,否则你无能为力。
第二个问题,可以说更重要,是文本的基本方向性。您可以通过向内容添加bidirectional formatting characters来在一定程度上进行控制。
例如,给定 s 中的字符串,您可以将基本方向设置为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();
这样做是将文本分成多行,然后在每行的开头添加从右到左嵌入字符,以及 pop方向格式每行末尾的字符。
逐行完成的原因是因为嵌入覆盖仅持续段落的长度。