Как изменить предпочитаемый язык приложения для iPhone в iOS 4 - PullRequest
2 голосов
/ 13 июля 2010

Обсуждается изменение языка приложения для iPhone много раз , но я застрял с этим: предоставленные решения требуют перезапуска приложения для внесения изменений вступить в силу. Но как вы добились этого на iPhone 4? Нажатие «home» отправляет приложение в фоновый режим, а нажатие на значок приложения просто возвращает его. Пользователь имеет опыт, как будто приложение было перезапущено, и задается вопросом, почему язык не изменился. Спасибо за вашу помощь.

Ответы [ 2 ]

4 голосов
/ 15 июля 2010

Вы можете написать собственную замену NSLocalizedString.В файле заголовка сделайте что-то вроде

#undef NSLocalizedString
#define NSLocalizedString(key, comment) MyLocalizedStringFunction(key)

. В вашей функции загрузите правильный пакет .lproj, используя NSBundle, затем вызовите

[bundle localizedStringForKey:key value:nil table:nil];

, чтобы получить желаемую строку.

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

0 голосов
/ 14 июля 2010

Взгляните на пример проекта кода Apple AppPrefs . В нем показано, как обрабатывать изменения, внесенные в приложение «Настройки» при возврате приложения на передний план. Пример кода обрабатывает настройки, специфичные для приложения, но также может использоваться для изменений настроек в масштабе всей системы. Надеюсь, это поможет.

...