2015-09-27 3 views
0

У меня есть файл xib с несколькими файлами локализации (.strings).Как переключаться между локализацией xib

Если я изменяю языковой параметр в настройках устройства, меняется язык моего xib.

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

Каков наилучший способ достичь этого?

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

+0

Возможный дубликат [Вручную загружать другой локализованный наконечник в iOS] (http://stackoverflow.com/questions/8712049/manually-loading-a-different-localized-nib-in-ios) – Misha

+0

Я думаю, что метод состоит из создания разных версий xib для каждого языка. У меня есть только один файл xib с несколькими локализациями. – Diego

+0

http://stackoverflow.com/questions/9416923/ios-how-to-change-app-language-programmatically-without-restarting-the-app?rq=1 вы можете видеть этот вопрос – Misha

ответ

1

У меня была такая же проблема и только что протестировано BundleLocalization было предложено в this question. Он отлично работает и делает именно то, что вы ищете.

Как упоминалось на странице git, вам необходимо перезагрузить xib-файл для использования обновленного языка.

+0

Спасибо! Я видел этот метод, но он не работал, возможно, потому, что я не перезагружал xib должным образом. Теперь он работает отлично. – Diego

+0

Почему вы хотите это сделать? Одна проблема в этом репозитории упоминает системный интерфейс, который все еще следует за одним и тем же языком. Если вы используете это, вы в конечном итоге обеспечите действительно страшный опыт смешанного языка для всех ваших пользователей. – wakachamo

+0

Учитывая, что вы используете системный интерфейс в приложении, это правда. Многие приложения, предоставляющие контент (например, приложение для приготовления пищи) с несколькими локализациями, хотят дать пользователям возможность изменять язык, не зависящий от системного языка. Многие люди используют свои устройства на английском языке, но когда дело доходит до контента, они предпочитают свой естественный язык. – wolfrevo