ios - 基本 Storyboard仅考虑多语言应用程序中的 LTR 界面

标签 ios xcode internationalization autolayout

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

我如何告诉基本 Storyboard我正在设计一个 RTL 界面,以便当 iPhone 的语言(例如)英语时它应该将该界面翻转为 LTR?

附注测试环境为Xcode 5.1.1iPhone 4S iOS 7.1

最佳答案

我相信“尊重语言方向”取决于当前设置的设备语言,正如 Apple's documentation 所建议的那样.

手动设置 NSLinguisticTagger 检测到的语言可能会更好或使用 this method

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

关于ios - 基本 Storyboard仅考虑多语言应用程序中的 LTR 界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23737223/

相关文章:

iphone - 页面 View Controller 是否支持 iOS 4.3

c++ - 架构 arm64 的 undefined symbol 。对 ObjC++ 文件进行 C 调用?

ios - 返回 UITableView 的函数会导致 EXC_BAD_ACCESS

ruby-on-rails - 如何翻译 Rails 3.2 中的 ActiveRecord 属性名称?

ios - 核心数据异常: initWithCoder:]: unrecognized selector sent

ios - NSPredicate - 多个条件的不区分大小写的过滤

ios - DocInteraction 示例代码 (UIDocumentInteractionController) 在 iOS 4.3 模拟器上损坏

xcode - NSKeyedUnarchiver unarchivedObjectOfClass : fromData:error; 问题

winapi - Windows 跳过特定于语言的资源

javascript - 使用 Yahoo 的 react-intl 与 React.js 进行国际化