Мне нужно изменить локализацию приложения iOS, когда оно станет активным.
Итак.
У меня есть выбор языка в настройках, выполненных через settings.bundle
в файле main.m
,Я читаю такие настройки
int main(int argc, char *argv[]) {
NSAutoreleasePool *pool = [NSAutoreleasePool new];
// --
NSString *appLang = [[NSUserDefaults standardUserDefaults] stringForKey:@"appLang"];
if (appLang == nil)
[[NSUserDefaults standardUserDefaults] setValue:[[NSLocale preferredLanguages] objectAtIndex:0] forKey:@"appLang"];
[[NSUserDefaults standardUserDefaults]
setObject:[NSArray arrayWithObjects:[[NSUserDefaults standardUserDefaults] stringForKey:@"appLang"], nil]
forKey:@"AppleLanguages"];
[[NSUserDefaults standardUserDefaults] synchronize];
[appLang release];
// --
int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");
[pool release];
return retVal;
}
Итак, приложение меняет изображения для разных языков, используя данные из настроек.
Сейчас я использую условия для определения языка, подобного этому:
if ([[[NSLocale preferredLanguages] objectAtIndex:0] isEqual:@"en"])
Все отлично работает, но вопрос в том, могу ли я изменить локализацию приложения (используя мой метод), когда приложение становится активным (applicationWillEnterForeground или что-то в этом роде)?И как я могу это сделать?