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