как отслеживать изменения языка в iPad? - PullRequest
1 голос
/ 28 марта 2011

Я новичок в разработке приложения для iOS.Поэтому недавно я столкнулся с проблемой локализации моего приложения.Я хотел бы выполнить некоторые действия в ответ на изменение языка в настройках системы.Для получения идентификатора языка я использую

[[NSLocale preferredLanguages] objectAtIndex:0];

в applicationDidFinishLaunchingWithOptions метод.В первый раз он возвращает право ID языка (например, «en» для английского).Затем я закрываю свое приложение (или отправляю его в фоновый режим) и меняю язык на немецкий.После этого я перезагружаю свое приложение, но вместо «de» оно все равно возвращает «en».Я думаю, что мое приложение может где-то хранить старые настройки ... но где именно?Как получить действительное текущее значение?

Ответы [ 3 ]

0 голосов
/ 07 июня 2011

если вы делаете что-то подобное:

[[NSUserDefaults standardUserDefaults] setObject:[NSArray arrayWithObjects:@"en",@"es", nil] forKey:@"AppleLanguages"];

значение сохраняется в NSUSerDefaults и изменения в настройках не применяются.

0 голосов
/ 17 июня 2012

Я нашел источник моей проблемы.Это был iOS Simulator.Я установил свое приложение на устройство, и все проблемы исчезли.

0 голосов
/ 28 марта 2011

взгляните на этот старый ответ:

Как узнать текущий язык устройства в iOS?

РЕДАКТИРОВАТЬ:

NSString *testLang = [[NSLocale preferredLanguages] objectAtIndex:0];
NSString *testLang1 = [[NSLocale preferredLanguages] objectAtIndex:1];
NSString *testLang2 = [[NSLocale preferredLanguages] objectAtIndex:2];
NSString *testLang3 = [[NSLocale preferredLanguages] objectAtIndex:3];
NSString *testLang4 = [[NSLocale preferredLanguages] objectAtIndex:4];
NSLog(@"LINGUA SYS:%@:%@:%@:%@:%@",testLang,testLang1,testLang2,testLang3,testLang4);

в консоли отладчика:

LINGUA SYS: en: it: fr: de: ja

или:

LINGUA SYS: es: en: it: fr:de

или:

LINGUA SYS: pt-PT: en: es: it: fr

, поэтому отправленный вами код верен, ошибка должна быть в другом месте...

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