Как изменить локализацию после запуска приложения для iPad - PullRequest
0 голосов
/ 24 августа 2010

В настоящее время я работаю над приложением для iPad (iOS SDK v3.2). Приложение локализовано на несколько языков: английский, немецкий, русский, ...

Я хочу, чтобы пользователь мог переключать локализацию для некоторых элементов пользовательского интерфейса после запуска приложения. Каков наилучший способ достичь этого? NSLocalizedString всегда выбирает локаль, определенную в системных настройках, так что это не поможет.

Примечание: локализация выполняется с использованием файлов .strings, в моем проекте нет локализованных NIB.

Чтобы сделать весь процесс более понятным, вот пример: Когда приложение запущено, пользовательский интерфейс отображается на английском языке. Пользователь может выбрать другой язык из UITableView, и части пользовательского интерфейса будут обновлены с выбранным языком.

Нужно ли вручную загружать определенный файл Localizable.strings и анализировать его полностью или есть лучший вариант для получения соответствующих строк?

Любой полезный совет приветствуется.

Большое спасибо заранее и наилучшими пожеланиями.

Ответы [ 2 ]

4 голосов
/ 24 августа 2010

Наверное, я нашел ответ на свой вопрос:

NSLocale *selectedLocale; // defined in the classes interface
NSString *language = [selectedLocale objectForKey:NSLocaleLanguageCode];
NSString *path = [[NSBundle mainBundle] pathForResource:language ofType:@"lproj"];
NSBundle *bundle = [NSBundle bundleWithPath:path];

self.textView.text = NSLocalizedStringFromTableInBundle(@"Yadayada", @"Localizable", bundle, @"Yadayada comment");
0 голосов
/ 14 апреля 2011

Спасибо @XCoder, это отлично сработало.

Однако у меня есть приложение BAD_EXC в NSLocaleLanguageCode.

Я решил, используя метод, упомянутый здесь: Локализация iPhone - Получить код языка телефона?

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