iOS: управление локализованными изображениями - PullRequest
3 голосов
/ 22 февраля 2012

У меня есть 2 набора локализованных изображений для iPhone App.Как я должен разместить изображения?И как я могу загрузить в приложение?

Структура папок выглядит следующим образом:

For English version:
/MyApp/en.lproj/Localizable.strings , InfoPList.strings
/MyApp/en.lproj/*.png (images)

For Traditional Chinese version:
/MyApp/zh-Hant.lproj/Localizable.strings , InfoPList.strings
/MyApp/Resources/*.png (images)

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *locale = [[defaults objectForKey:@"AppleLanguages"] objectAtIndex:0];
NSString* path= [[NSBundle mainBundle] pathForResource:locale ofType:@"lproj"];
NSBundle* languageBundle = [NSBundle bundleWithPath:path];
SomeViewController *vc = [[SomeViewController alloc] initWithNibName:@"SomeViewController" bundle:languageBundle];

Я хотел бы использовать одно и то же имя файла для обоих наборов изображений и сделать его автозагрузкой.Возможно ли это?

Теперь я столкнулся с проблемой.В консоли отладки написано:

NSBundle </Users/SomeUser/Library/Application Support/iPhone Simulator/5.0/Applications/1DC22505-1E78-4B5E-A794-DBF72DC786AE/MyApp.app/zh-Hant.lproj> (not yet loaded)

Как я могу это решить?

1 Ответ

7 голосов
/ 22 февраля 2012

Почему вы получаете языковой пакет самостоятельно? Вы можете просто локализовать имя файла изображения так:

NSString *imageName = NSLocalizedString(@"myimage_jp", @"localized image");
UIImage *image = [UIImage imageNamed:imageName];

А в файле Localizable.strings просто сопоставьте это имя изображения следующим образом (при условии, что ваш язык по умолчанию - японский):

@"myimage_jp" = @"myimage_cn"

Конечно, вам нужно иметь 2 версии образа в ресурсах (myimage_jp и myimage_cn)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...