动态更改区域设置

时间:2014-04-27 07:34:31

标签: ios localization nslocalizedstring

我想通过按下我的应用程序中的按钮来更改本地化

我已阅读thisthis

我正在将我的语言环境从英语改为希伯来语,反之亦然(LTR语言改为RTL语言)

我的布局设计方式使得它使用界面构建器中的约束来确定文本和文本字段的方向。

如果我这些帖子说的话,我会获得本地化字符串,但约束不会改变,因为应用需要重新启动来更新视图方向

如何让它更新视图方向呢?

1 个答案:

答案 0 :(得分:0)

我曾经一度努力解决这个问题,但是如果没有重新启动应用程序,我找不到任何更改语言环境的解决方案。

我做的是,每个setupUIForLocaleChange都有一个UIViewController方法。我从viewDidLoad调用此方法,并且每次语言环境更改时我也会发送通知并调用此方法。通过“本地更改”,我的意思是我有一个拥有财产locale的经理。 在我的strings文件中,字符串的前缀如“en.myString”和“es.myString”,我创建了一个像LocalizedStringForKey(@"myString")这样的宏,它返回myString当前的语言环境。 因此,我在这些setupUIForLocaleChange方法中设置了当前本地的所有标签,您也可以通过编程方式对约束进行相同的操作。

希望这有帮助