我已经通过Xcode对我的图像进行了本地化,所有图像都在正确的lproj文件夹中。
然而,当我使用imageNamed时,我没有得到正确的图像,但即使我改变语言,我仍然会获得默认图像。
_myImageView.image = [UIImage imageNamed:@"image_name"];
答案 0 :(得分:2)
这种问题让我浪费了一些时间,但后来我意识到这是一个错误的问题,我希望能为你节省宝贵的时间。
如果您切换语言并且图片不是新语言,那是因为缓存的图片。文档很简单:
此方法在系统缓存中查找具有指定名称的图像对象,并返回该对象(如果存在)
因此,当您切换语言,并且要求缓存中使用相同的名称时,您将获得旧图像!而已。 :)
答案 1 :(得分:0)
而不是:
_myImageView.image = [UIImage imageNamed:@"image_name"];
使用:
NSString *imageName = NSLocalizedString(@"image_name", @"image_name");
_myImageView.image = [UIImage imageNamed:imageName];
使用Localizable.strings文件本地化您的图像名称,就像项目中的任何其他资源一样。