Objective c 如何在运行时更改本地化图像
我创建了两个名为en.lproj和fr.lproj的本地化目录。我在这些本地化目录中放置了两个同名的不同图像,如.png 现在,我已经创建了一个表视图控制器,分别有两行“英语”和“法语”文本 选择第一行或第二行后,我将获取捆绑路径,并在运行时更改应用程序的整个本地化文本 代码: 通过上面的代码,我可以动态地更改运行应用程序的语言。 但是如何从这个包中获取图像呢 有什么想法吗Objective c 如何在运行时更改本地化图像,objective-c,dynamic,localization,Objective C,Dynamic,Localization,我创建了两个名为en.lproj和fr.lproj的本地化目录。我在这些本地化目录中放置了两个同名的不同图像,如.png 现在,我已经创建了一个表视图控制器,分别有两行“英语”和“法语”文本 选择第一行或第二行后,我将获取捆绑路径,并在运行时更改应用程序的整个本地化文本 代码: 通过上面的代码,我可以动态地更改运行应用程序的语言。 但是如何从这个包中获取图像呢 有什么想法吗 谢谢您可能不想更改每个图像,只想更改包含文本或其他文化相关内容的图像。对于这些图像,您可以向包含给定语言的图像路径的loc
谢谢您可能不想更改每个图像,只想更改包含文本或其他文化相关内容的图像。对于这些图像,您可以向包含给定语言的图像路径的
localizable.strings
文件中添加一个条目,并使用此路径而不是硬编码路径
也就是说,在许多情况下,UI中会包含作为.xib一部分的图像。在这些情况下,您只需本地化xib(即,为每种语言生成不同版本的.xib——您可以通过“属性”面板中的“语言”控件在XCode中进行此操作),并使用Interface Builder更改.xib的每种语言版本中的映像。使用path变量并使用path获取映像,您已经从上面的代码中获得了动态路径。感谢您的回复:)。。明白了,有什么理由否决这个问题吗?
-(NSString*) languageSelectedStringForKey:(NSString*) key
{
NSString *path;
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
if([[userDefault valueForKey:@"language_Selected"] intValue] == 0)
path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
else if([[userDefault valueForKey:@"language_Selected"] intValue] == 1)
path = [[NSBundle mainBundle] pathForResource:@"fr" ofType:@"lproj"];
NSBundle* languageBundle = [NSBundle bundleWithPath:path];
NSString* str=[[languageBundle localizedStringForKey:key value:@"" table:nil] retain];
return str;
}