我在iOS上有一个应用程序,我正在尝试本地化RTL语言。显然,布局需要与语言相对应。
要开始使用,我正在尝试使用rtl语言区域设置打开应用程序时,在一个屏幕底部的按钮更改其顺序。
我使用自动布局,并且我在按钮和视图之间添加了关于使用屏幕主视图的尾随/前导水平视图设置的约束,这是我理解应该完成的。使用拖放蓝线方法来制作约束。另外,我在另一个主题的指示下在我的主中使用了以下代码:
#if TARGET == TARGET_AR
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[NSArray arrayWithObject:@"ar-SA"] forKey:@"AppleLanguages"];
[defaults synchronize];
#endif
这仍然不起作用,按钮保持原样。关于如何解决这个问题的任何建议?
谢谢
答案 0 :(得分:1)
我不知道你在哪里建议使用宏来确定语言环境,但这绝对是错误的。
您最有可能缺少的是实际的RTL本地化(您使用Base非常棒!)。在文件导航器中选择项目文件,您应该看到如下内容:
您需要做的是添加实际的RTL本地化。所以点击' +'在使用基础国际化复选框上方,然后在弹出菜单中选择阿拉伯语(ab),然后在显示的工作表中继续。如果您在阿拉伯语是首选语言的手机上构建和运行您的应用程序,那么约束应该按照您的预期进行翻转!
答案 1 :(得分:-2)
我认为正确的方法是为每个区域设置单独的故事板,这样您不仅可以自定义文本方向(RTL或LTR),还可以为各种UI元素使用不同的语言。显然,您需要为每个故事板连接IBOutlets和IBActions,但这样会比您提出的更有效,更容易实现。祝你好运!