基本故事板仅考虑多语言应用程序中的LTR接口

时间:2014-05-19 12:01:39

标签: ios xcode internationalization autolayout

我有一个包含两种语言的应用程序:阿拉伯语(从右到左)和英语(从左到右),我使用Base InternationalizationAuto Layout来简化并使用一个故事板(基本故事板)但是,为了这个目的,因为我住在一个阿拉伯语是主要语言的国家,我开始用阿拉伯语界面(RTL)设计我的基础故事板,我为每个水平约束选中了“尊重语言方向”选项。 /> 从项目设置添加英语后,翻译其故事板字符串文件,并在英文iPhone上运行应用程序(设置 - >一般 - >国际 - >语言 - >英文),界面从未更改为LTR,保持原样(RTL),我试图取消选中“尊重语言方向”选项,但无济于事。
但是,如果情况相反,一切都会正常工作,即如果我使用英语(LTR)在基础故事板上设计界面,当我在阿拉伯语iPhone上运行应用程序时,界面将转换为RTL。

如何告诉基本故事板我正在设计RTL界面,以便在iPhone的语言(例如)英语时将此界面翻转为LTR?

P.S。测试环境位于Xcode 5.1.1iPhone 4S iOS 7.1

2 个答案:

答案 0 :(得分:1)

试试这个。

setTextAlignment:NSTextAlignmentNatural

这将解决您的问题,它将语言设置为阿拉伯语等语言,并将接口设置为LRT语言,如英语。

答案 1 :(得分:1)

我相信"尊重语言方向"取决于当前设置的设备语言,如Apple's documentation所示。

您可以通过手动设置NSLinguisticTaggerthis method

检测到的语言来获得更好的运气

问题可能还在于Xcode的故事板编辑器正在翻转阿拉伯语文本,同时将所有内容保留为LTR(documented here),在这种情况下,您可能希望使用单独的编辑器来设置文本,或者以编程方式而不是在故事板中设置文本。