【问题标题】:Changing locale on the fly即时更改语言环境
【发布时间】:2014-04-27 07:34:30
【问题描述】:

我想在我的应用中按下一个按钮来更改本地化

我已阅读 thisthis

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

我的布局是这样设计的,它使用界面生成器的约束来确定文本和文本字段的方向。

如果我按照这些帖子所说的去做,我会得到本地化的字符串,但约束不会改变,因为应用程序需要重新启动才能更新视图方向

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

【问题讨论】:

    标签: ios localization nslocalizedstring


    【解决方案1】:

    我自己曾经遇到过这个问题,但是我找不到任何解决方案来更改语言环境而不重新启动应用程序。

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

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多