Android希伯来语(RTL)集成

Android希伯来语(RTL)集成,第1张

概述我正在开发一个相对简单的 Android应用程序.我希望它有英文版和希伯来文版. (RTL从右到左对齐) 我已在布局xml文件中手动将对齐更改为右侧.当一个句子包含数字(在它的中间)时,数字出现在镜像视图中: 29显示为92,21:45显示为54:12,2,000显示为000,2. 此外,当一个句子以数字或英文字符开头时,它们会被抛到句子的末尾,弄乱它. 我认为对于Android 4.0.3版本它 我正在开发一个相对简单的 Android应用程序.我希望它有英文版和希伯来文版. (RTL从右到左对齐)

我已在布局xml文件中手动将对齐更改为右侧.当一个句子包含数字(在它的中间)时,数字出现在镜像视图中:
29显示为92,21:45显示为54:12,2,000显示为000,2.

此外,当一个句子以数字或英文字符开头时,它们会被抛到句子的末尾,弄乱它.

我认为对于AndroID 4.0.3版本它支持希伯来语.我在模拟器中检查过.

那么对于旧版本是否有正确的方法来实现希伯来语?
请帮忙.

解决方法 我认为AndroID的bIDi分析算法存在一些缺陷. Unicode有两个不可见的强方向字符,可能有助于解决这些问题:

> U 200E – 从左到右标记
> U 200F – 从右到左的标记

对于数字顺序问题,尝试在数字序列的两侧放置从左到右的标记(U 200E).

Unicode还具有以下bIDi格式代码:

> U 202A – 从左到右嵌入
> U 202B – 从右向左嵌入
> U 202C – d出方向格式(取消先前的嵌入或覆盖)
> U 202D – 从左到右覆盖
> U 202E – 从右向左覆盖

对于希伯来文中英文片段的问题,可能就像在英语之前放置一个从右到左的标记一样简单. (AndroID的算法可能会认为段落是从左到右的印象,因为第一个字符是英语.)如果这不起作用,或许可以尝试使用格式代码的某些组合来包围所选文本. (我尝试从左到右嵌入,然后是流行方向格式化.我还尝试从右到左嵌入所有内容并结合选择性显式从右到左嵌入.)

这些应该影响文本布局的方式由Unicode双向算法Unicode Standard Annex #9定义.但是,如果AndroID的实现被破坏(我怀疑它是),你可以做的最好的是反复试验,直到你看起来正确.祝好运.

编辑

就代码而言,这是一个如何在Java中完成的示例:

String text = "גרסה \u200e2.100\u200e זמינה";

在XML中,它可能是:

<string name="update_available">גרסה &#x200e;2.100&#x200e; זמינה</string>
总结

以上是内存溢出为你收集整理的Android希伯来语(RTL)集成全部内容,希望文章能够帮你解决Android希伯来语(RTL)集成所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1134730.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存