最近在为了适配阿拉伯地区的文本显示,参考了几个资源商店内的免费资源处理了阿拉伯文本可以较好的处理阿拉伯文本

阿拉伯文本最大的特点就是语序都是从右到左,其中插入的数字和英文依然从右到左

处理的时候首先要吧左对齐的 文本改为右对齐

还有一些UI也需要注意,比如进度条也是从右到左

android阿拉伯适配rtl 阿拉伯软件_3d

Arabic support 是最基础的阿语转化插件,现在能看到的大部分修改方法都是在这个基础上改的

使用也非常简单,直接调用脚本内FIX方法就可以把翻译好的阿拉伯文在text组件内正确显示了。

Arabic support 插件是用来处理换行的,如果使用自动换行,阿拉伯文会出现文本内容从下到上的问题,正确的显示应该是从上到下,从右到左,这时候这个插件就能让文本内容正确的显示

android阿拉伯适配rtl 阿拉伯软件_3d_02

然后再着重推荐一下这个插件,Bidirectional Horizontal Layout for Unity UI (RTL & LTR)

他的功能类似layout,可以很快的实现UI内容的排序

在阿拉伯版本的游戏内,不止是语序需要修正,很多UI逻辑也是和其他地区不一样的,用这个插件就能快速改变UI布局,让多语言版本的游戏能够更好地兼容 


这个demo是我自己处理阿拉伯文本的,有需要的可以去下载

兼容了富文本,和富文本嵌套,修正语序,处理标点 等

后续发现还是有一些适配问题,主要是多种语言混排等问题

最基础的插件是能处理好阿拉伯文单词的

建议尝试利用layout组件配合text组件实现换行和混排等问题

网格排布的layout组件可以满足换行,多语言混排,标点符号混排等问题

搭配上面推荐的插件就能较好额适配阿拉伯语,做的时候要注意性能开销!