изменить язык приложения IPHONE в настройках приложения, не меняя язык устройства - PullRequest
2 голосов
/ 30 декабря 2010

Я хочу сделать язык изменяемым из настроек приложения.Для этого я создал файл settings.bundle и заставил langauge использовать этот код Как заставить NSLocalizedString использовать определенный язык , я также установил UIApplicationExitsOnSuspend в YES, чтобы приложение перезагружалось каждый раз, когда оно переходит кфон.Это частично сработало для меня, но у меня есть 2 проблемы: - Заставка (которая локализована) не меняется с этим методом.- Я должен дважды ввести / goBack, чтобы изменение языка вступило в силу в приложении. Просматривает это только в ОС 4 и выше.

У кого-нибудь есть решение для этого?

Ответы [ 3 ]

0 голосов
/ 30 декабря 2010

К сожалению, нет встроенного способа.Вероятно, проще всего было бы интегрировать сервис, такой как GetLocalization.com , чтобы ваше приложение загружало языковой файл через API (тогда легко добавлять новые языки и переводы, даже если приложение уже выпущено).Тогда вам нужен простой загрузчик, который загружает этот языковой файл в память и функцию, которая заменяет исходную строку переведенной во время выполнения.Вы можете вычислить хеш для исходной строки, чтобы быстро их искать, хороший алгоритм для этого - hashPJW Питера Вайнбергера.

0 голосов
/ 01 мая 2011

Хитрость в использовании определенного языка путем выбора его из приложения состоит в том, чтобы заставить NSLocalizedString использовать конкретный пакет в зависимости от выбранного языка,

вот пост, который я написал для этого http://learning -ios.blogspot.com / 2011/04 / advance-localization-in-ios-apps.html

и вот код одного примера приложения https://github.com/object2dot0/Advance-Localization-in-ios-apps

0 голосов
/ 30 декабря 2010

Для этого вам нужно создать собственную структуру перевода!Извините!

...