2012-04-04 11 views
0

Я использую этот код, чтобы перейти на язык:Переключение языка и перезагрузите ViewController в IOS

-(void) switchToLanguage:(NSString *)lang{ 
[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:lang, nil] 
      forKey:@"AppleLanguages"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 
[sliderViewController refreshView]; 
} 

Я не уверен, если это правильно. После этого в функции просмотра изображений для sliderViewController:

-(void)refreshView{ 
slideLabel.text = NSLocalizedString(@"To Menu", @"To Menu"); 
slogan.text = NSLocalizedString(@"Categories", @"Categories"); 
} 

Но это не работает. Где я ошибаюсь?

ответ

2

Установка ключа AppleLanguages работает только в вашем файле main.m, до того, как вызывается UIApplicationMain. Если вы попытаетесь изменить свое значение в любой другой момент, это не сработает.

Если вам нужна поддержка для изменения языка во время выполнения, вам придется откатить свои собственные функции локализации.

+0

Хм я вижу. Что вы имеете в виду, свернув мою собственную локализацию? – Burak

+0

Я имею в виду, что вам придется написать свой собственный XYXLocalizedString, который проверяет, какой язык в данный момент установлен, и читает соответствующий файл .strings для извлечения строкового значения. –

+0

Хорошо, спасибо. Я попробую. – Burak

Смежные вопросы