我正在尝试将我的应用程序的语言从英语转换为阿拉伯语,反之亦然。
在故事板中,我有几个水平约束,其中包含领先属性中的修复值,必须解决为英语语言的左侧,但对于阿拉伯语言则是正确的·
要动态更改语言我正在使用以下代码更新User Defaults属性中“AppleLanguages”的值:
NSString* newCode = "ar";
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:[NSArray arrayWithObjects:newCode, nil] forKey:@"AppleLanguages"];
[userDefaults synchronize];
在此之后,我的文本以阿拉伯语显示,但我的应用程序继续解决“领先”左侧(而不是右侧),首选本地化仍然是“en”而不是“ar”。
NSString * currentLocalization = [NSBundle mainBundle].preferredLocalizations[0];
但是当我停止/启动应用程序时,值是正确的(阿拉伯语中的app,右侧的“leading”和[NSBundle mainBundle] .preferredLocalizations [0] == @“ar”)。
如何在不重新启动应用的情况下进行这些更改? 提前谢谢。