Nir*_*ali 6 android hebrew right-to-left
我正在开发一个相对简单的Android应用程序.我希望它有英文版和希伯来文版.(RTL从右到左对齐)
我已在布局xml文件中手动将对齐更改为右侧.当一个句子中包含的数字(在它的中间),则数字显示在一个镜视图: 29个显示为92,21:45显示为54:12和2000显示为000,2.
此外,当一个句子以数字或英文字符开头时,它们会被抛到句子的末尾,弄乱它.
我认为对于Android 4.0.3版本它支持希伯来语.我在模拟器中检查过.
那么对于旧版本是否有正确的方法来实现希伯来语?请帮忙.
Ted*_*opp 21
我认为Android的bidi分析算法存在一些缺陷.Unicode有两个不可见的强方向字符,可能有助于解决这些问题:
对于数字顺序问题,尝试在数字序列的两侧放置从左到右的标记(U + 200E).
Unicode还具有以下bidi格式代码:
对于希伯来文中英文片段的问题,可能就像在英语之前放置一个从右到左的标记一样简单.(Android的算法可能会认为段落是从左到右的印象,因为第一个字符是英语.)如果这不起作用,或许可以尝试使用格式代码的某些组合来包围所选文本.(我尝试从左到右嵌入,然后是流行方向格式化.我还尝试从右到左嵌入所有内容并结合选择性显式从右到左嵌入.)
这些应该影响文本布局的方式由Unicode双向算法Unicode标准附件#9定义.但是,如果Android的实现被破坏(我怀疑它是),那么你所做的最好就是试错,直到你看起来正确.祝好运.
编辑
就代码而言,这是一个如何在Java中完成的示例:
String text = "???? \u200e2.100\u200e ?????";
Run Code Online (Sandbox Code Playgroud)
在XML中,它可能是:
<string name="update_available">???? ‎2.100‎ ?????</string>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4078 次 |
| 最近记录: |