ios - 即时更改语言环境

标签 ios localization nslocalizedstring

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

我已阅读 thisthis

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

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

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

我如何让它也更新 View 方向?

最佳答案

我自己曾经在这个问题上苦苦挣扎,但是在不重新启动应用程序的情况下我找不到任何更改语言环境的解决方案。

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

希望这可以帮助

关于ios - 即时更改语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23320649/

相关文章:

ios - 在标签IOS之间跳转时ViewController变为空白

sql-server - 是否有用于匈牙利语的第三方 SQL Server 分词系统?

ios - Swift 应用程序翻译不适用于显示 var 的字符串

Xcode\Swift 中的 iOS 应用程序本地化

ios - iPhone - Localizable.strings - 内含单引号的字符串

ios - 观看视频广告后在屏幕上更新分数

ios - 检查LocalAuthentication中的错误类型

ios - 使用“照片”框架保存时,相机胶卷中的低分辨率照片

ios - Swift 中的 NSLocalizedString 等价物是什么?

swift - 如何在反向地理编码时更改语言环境?