我正在尝试为用户添加一个选项,以便从应用程序内部在阿拉伯语和英语之间切换(无需重新设置整个 iPhone 的语言),我设法通过在 AppDelegate 中使用此方法正确地做到了这一点.m 文件:
-(void)switchTolanguage:(NSString *)lang{
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObject:lang] forKey:@"AppleLanguages"];
NSBundle *bnd = [NSBundle bundleWithPath:[[NSBundle mainBundle]pathForResource:lang ofType:@"lproj" ]];
UIStoryboard *storyBoard;
storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:bnd];
UIViewController *initViewController = [storyBoard instantiateInitialViewController];
self.window.rootViewController = initViewController;
}
我UIButtons
在应用程序中的一个视图控制器上放置了两个以测试该方法,它运行良好:所有UILabels
、字符串等......在新加载的(本地化)故事板中以正确选择的语言出现,但有一个例外:新加载的故事板不获取(加载)其本地化图像,它获取旧故事板(旧包)的图像,即如果应用程序当前在英文包上运行并且用户点击将语言切换为阿拉伯语的按钮,则应用程序将出现正确的阿拉伯语控件和字符串,但带有英文图像,切换回英文一切都会好的(英文字符串,标签和图像......)
这是我的故事板本地化的方式:
以下是每个图像的本地化方式:
当用户切换应用程序语言时,如何加载正确的捆绑图像?
更新:
这是我的意思的示例项目的链接,运行示例,您会注意到当您从应用程序内部更改语言时,您会注意到图像不可更改......您还会注意到本地化的故事板不会在其设计编辑器中加载正确的图像......
PS不要添加评论为什么我使用这种场景来切换语言,因为这是客户要求。