Swift RTL(AR多语言)适配

作者: keking | 来源:发表于2017-12-28 16:21 被阅读224次

iOS做其它的多语言适配,可能只是设计到多语言的翻译,还不会有太大的影响,但是如果要适配阿拉伯语,不仅是语言的翻译,还有他们的使用习惯问题需要适配。他们的语言阅读习惯是RTL(right-to-left,从右往左),而其它地区的是LTR(left-to-right,从左往右)。因此除了语言外,UI也需要做对应的适配,才会符合阿拉伯人的使用习惯。

1,添加多语言翻译

image.png

按上面的红框的流程就可以加上对应的多语言了

2,icon的flip。

有些图片时没有方向性的,有些图片时有方向性的,有方向性的icon我们就需要做适配,如back图标。一般情况下,我们的图片时这样的


image.png

如果需要做rtl的适配,需要


image.png
方向中选中both,然后在左边的图片视图里面就会多一个RTL的视图,再切一个对应的icon就可以了

3,UIPageController等view的适配

一般都有个引导页,引导页有个页面指示器,切换成ar后,页面指示器的方向还是RTL。因此需要修改下它的属性,在storyboard设置的属性如下

image.png
semantic属性默认值是unspecified。
具体这个属性的意义可参考
https://stackoverflow.com/questions/32634774/xcode-7-what-is-the-view-semantic-storyboard-setting
这个属性也可以通过代码中去设置

4,代码中如何判断方向

有时候有些逻辑可能需要在代码中去判断和处理,尤其是对于一些自定义的view,可能需要获取到当前的direction。

let dir = UIApplication.shared.userInterfaceLayoutDirection

这个属性就是个枚举值

@available(iOS 5.0, *)
public enum UIUserInterfaceLayoutDirection : Int {
    case leftToRight
    case rightToLeft
}

5,leading和left

在storyboard中,在给view添加constraint时,一般都是Leading space和Trailing space。但有时候手写的时候,就写成了left和right相关的属性了。如:

firstview.leadingAnchor.constraint(equalTo: scrollview.leadingAnchor, constant: 0).isActive = true
        firstview.leftAnchor.constraint(equalTo: scrollview.leftAnchor, constant: 0).isActive = true

这两对属性在大部分情况下是一致的,但是在RTL模型中就不合适。因为left和right相当于而是固定了属性,所以如果你需要支持rtl,就必须要使用leading和trailing。

6,调试的时候设置调试的语言

如图


image.png image.png

选中语言后,close弹窗,运行调试时就是按这个设置的语言来调试的

相关文章

  • Swift RTL(AR多语言)适配

    iOS做其它的多语言适配,可能只是设计到多语言的翻译,还不会有太大的影响,但是如果要适配阿拉伯语,不仅是语言的翻译...

  • RTL适配

    RTL(阿拉伯地区适配经历) 关于UIView的frame适配 寻找了很多方法,也尝试了很多种方法,最终有了一知半...

  • RTL适配历程

    背景 阿拉伯语适配是一个比较麻烦的事情,不止在于它文案的适配,更多的是在于其语言习惯的变化。由从左到右(LeftT...

  • RTL适配实践

    背景 阿拉伯语适配是一个比较麻烦的事情,不仅仅在于它文案的适配,更多的是在于其语言习惯的变化。由从左到右(Left...

  • iOS 多语言全局适配

    本文记录iOS 多语言全局适配解决方案,适用于项目中后期快速适配多语言; 实现思路:runtime method ...

  • iOS 国际化 - 阿拉伯语的RTL 踩坑心得

    iOS,移动开发,国际化,RTL,阿拉伯语公司项目因为要适配中东市场,也算是做了不少RTL了,但是每次基本上开发结...

  • 前端面试每日 3+1 —— 第452天

    今天的知识点 (2020.07.11) —— 第452天 (我也要出题) [html] 对于rtl网站的适配有哪些...

  • Android 多语言适配

    最近一段时间在国际部门做Android开发,所以手头的项目都需要去适配多语言。这里总结了一些多语言适配的经验。 演...

  • 适配Xcode9.0-beta与Swift4.0

    适配Xcode9.0-beta与Swift4.0 适配Xcode9.0-beta与Swift4.0

  • RTL适配中EditText出现的问题

    当RTL适配时,EditText的InputType为text、number等的时候没有问题,但是在passwor...

网友评论

    本文标题:Swift RTL(AR多语言)适配

    本文链接:https://www.haomeiwen.com/subject/nxsvgxtx.html