2011-11-05 70 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