2011-11-05 57 views
1

我有我的应用程序的设置,并希望给用户切换应用程序的语言的可能性。该语言可能与设备设置不同。如何使用特定语言的本地化UIImage?

对于NSStrings我找到了一个解决方案,但我怎么能用UIImages做到这一点?

我已经本地化了我的所有图像,但现在根据设备语言选择它们。我需要做些什么来实现这个功能?我现在唯一的选择是将名称放在Localizable.strings中并从那里加载它们。

有没有更好的方式来做到这一点?

THX ;-)

回答

1

喜欢的东西:

  • - [NSBundle URLForResource:withExtension:subdirectory:localization:]
  • - [NSBundle pathForResource:ofType:inDirectory:forLocalization:]

应该这样做。

然后,只需使用类似:

  • -[UIImage initWithContentsOfFile:]
  • -[UIImage initWithData:]

创建UIImage

+0

这看起来非常好,我认为它应该工作,但它不。也许我做错了什么,但该方法始终返回nil:[[[[NSBundle alloc] init] pathForResource:@“test”ofType:@“png”inDirectory:@“”forLocalization:@“en”]; – MoFuRo

+0

@MoFuRo你需要使用该类提供的指定构造器或便利构造器。在这种情况下,'NSBundle'需要知道路径,url或bundle id,以便返回能够定位其资源的有效bundle实例。 '+ [NSBundle mainBundle]'返回你的应用程序的包,这往往是你想要的。所以你可以试试这个:'[[NSBundle mainBundle] pathForResource:.....'。 – justin

+1

看起来好多了,但它不会将en.proj添加到路径中。这是调用:'[[NSBundle mainBundle] pathForResource:@“test”ofType:@“png”inDirectory:nil forLocalization:@“en”]''。 – MoFuRo