我已经创建了两个名为en.lproj和fr.lproj的本地化目录。我在这些本地化目录中放置了两个同名为like.png的不同图像。
现在,我已经创建了一个表视图控制器,其中包含两行分别为"English“和”English“的文本。
选择第一行或第二行后,我将获取包路径,并在运行时更改应用程序的整个本地化文本。
代码:
-(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;
}通过上面的代码,我可以动态地改变运行应用程序的语言。但是如何从该捆绑包中获取图像呢?
有什么想法吗?
谢谢
发布于 2012-03-05 21:34:14
您可能不想更改所有图像,只希望更改包含文本或其他与文化相关的内容的图像。对于这些图像,您可以在包含给定语言的图像路径的localizable.strings文件中添加一个条目,并使用该路径而不是硬编码路径。
也就是说,在许多情况下,您会将图像作为.xib的一部分包含在UI中。在这些情况下,您只需本地化xib (即,为每种语言创建不同版本的.xib --您可以通过属性面板中的Languages控件在XCode中完成此操作),并使用Interface Builder简单地更改.xib的每种语言版本中的图像。
https://stackoverflow.com/questions/9566860
复制相似问题