本地化的图像不加载没有应用程序重新启动
问题描述:
我想从应用程序内更改应用程序语言。 我能够实现这一点,并根据已更改的本地化更改文本,但直到我重新启动我的应用程序之前,本地化图像才加载。本地化的图像不加载没有应用程序重新启动
1)本地化图像放置在en.lproj和vi.lproj文件夹中。
2)图像显示在表格视图中,表格视图在语言改变后重新加载。
仍未获取本地化图像。
日志,我尝试打印>>
一个NSBundle /用户/管理员/库/应用程序支持/ iPhone模拟器/ 7.0 /应用/ 863CF1CB-C9C5-4257-8D6E-DA104C8EC849/test.app/EN。 lproj(尚未加载)
一个NSBundle /用户/管理员/库/应用程序支持/ iPhone模拟器/ 7.0 /应用/ 863CF1CB-C9C5-4257-8D6E-DA104C8EC849/test.app/vi.lproj(尚未加载)
谢谢。
答
有一个简单的解决方法,根据
使用带有不同的名称不同的图像的语言,并根据从代码选择的语言加载图像。
例如 在的tableView的cellForRowAtIndexPath方法
if(language = english) {
imageName = @"logo_english";
}
else if (language = french) {
imageName = @"logo_french";
}
否则,使用图像的苹果原生本地化的应用程式重新启动后生效。
答
你是如何载入图像的?如果您想覆盖为系统选择的语言,则可以使用-[NSBundle pathForResource:ofType:inDirectory:forLocalization:]
来指定您在提取资源时要使用的本地化。
据我所知,选定的语言是一个系统范围的设置。当您在设置应用程序中更改语言时,iOS会自行“重新配置”自己和所有正在运行的应用程序(重新启动它们)。在运行时你可以选择字符串的本地化词典,就像我在这里做的那样:http://stackoverflow.com/a/22838176/1167428。我们也有图像问题,所以我们最终不使用系统本地化支持,而是从我们自己的本地化文件夹加载图像。通过这种方式,我们甚至可以实现似乎不受本地支持的语言区域(如en,en-UK,en-US,en-CA)。 – lupz 2014-11-24 10:16:26