我是多语言应用的新手。 我在做的是, 一个有两种语言的应用。 英语&阿拉伯
应用程序的语言取决于设备语言。 (我也希望改变这一点,应该从应用程序内部控制应用程序语言。不依赖于设备,但那是下一个问题)
我有一些控件,例如UIButton
,UITextField
,UILabel
等等。
当我的应用程序是英文时,我从设备的左角开始给出这些控件框架,当我的应用程序是阿拉伯语时,我从设备的右角开始给它们框架。 (因为阿拉伯语是从右到左写的)
我的问题是, 为此,我需要做额外的工作, 即检查设备语言,然后设置控制帧。 在每个视图中,我可能有“n”个控件,并且从我的角度看,两种语言的所有控件的框架大小都不合适。
Xcode
本身是否有任何可用的东西可以使用我可以做到的。
意味着我需要为默认语言(即英语)提供框架,如果我的设备语言更改为阿拉伯语,则控件框架将自动从右到左镜像。
以下屏幕可能会给出一些想法。 (我为检查设备语言的所有控件使用了不同的框架)
接受任何帮助。
提前致谢。 抱歉,如果已经提出问题。但我没有找到任何东西。 如果有人找到,那么链接到欢迎:)
答案 0 :(得分:3)
来自Supporting Right-to-Left Languages:
显示从右向左的语言时,应镜像您的用户界面。如果使用基础国际化和自动布局,则大多数用户界面将自动为您显示镜像。除了始终从左到右的电话号码和国家/地区代码外,文本方向从右向左变为。用户界面中的某些视图和控件可能不会自动更改方向,您可以通过编程方式进行修复。
他们正在寻找的功能称为自动布局,几年前由Apple推出。它会处理你需要的很多东西,但也有很多事要做。上面的指南将指导您完成必要的步骤。
来自iOS 9.0的更新:
iOS 9为从右到左的语言提供全面支持,使您可以更轻松地提供翻转的用户界面。例如:
- 标准UIKit控件自动从右向左上下文翻转。
UIView
定义了语义内容属性,可让您指定特定视图在从右到左的上下文中的显示方式。UIImage
添加了imageFlippedForRightToLeftLayoutDirection
方法,可以在适当的时候以编程方式轻松翻转图像。 要了解有关提供翻转用户界面的更多信息,请参阅支持从右到左的语言。