首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在运行时更改本地化图像

如何在运行时更改本地化图像
EN

Stack Overflow用户
提问于 2012-03-05 20:44:02
回答 1查看 860关注 0票数 0

我已经创建了两个名为en.lproj和fr.lproj的本地化目录。我在这些本地化目录中放置了两个同名为like.png的不同图像。

现在,我已经创建了一个表视图控制器,其中包含两行分别为"English“和”English“的文本。

选择第一行或第二行后,我将获取包路径,并在运行时更改应用程序的整个本地化文本。

代码:

代码语言:javascript
复制
-(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;
}

通过上面的代码,我可以动态地改变运行应用程序的语言。但是如何从该捆绑包中获取图像呢?

有什么想法吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-05 21:34:14

您可能不想更改所有图像,只希望更改包含文本或其他与文化相关的内容的图像。对于这些图像,您可以在包含给定语言的图像路径的localizable.strings文件中添加一个条目,并使用该路径而不是硬编码路径。

也就是说,在许多情况下,您会将图像作为.xib的一部分包含在UI中。在这些情况下,您只需本地化xib (即,为每种语言创建不同版本的.xib --您可以通过属性面板中的Languages控件在XCode中完成此操作),并使用Interface Builder简单地更改.xib的每种语言版本中的图像。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9566860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档