@snitron
Учуcь программировать на Android, IOS и Unity.

Можно ли установить язык показываемого ViewController вне зависимости от языка устройства?

Я хочу установить язык ViewController'а (т. е. чтобы все строки в нём подгрузились с тем языком, который мне нужен (на Storyboard)), при этом язык может отличаться от того, который установлен на устройстве. Можно ли это сделать?

Пример:
Язык устройства: Русский
Язык ViewController'а: Английский
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
ivanvorobei
@ivanvorobei
iOS разработчик, канал https://t.me/sparrowcode
Код:

func getFrenchString(forKey key: String) -> String {
    if let currentLanguage = (NSUserDefaults.standardUserDefaults().arrayForKey(AppleLanguages)?.first as? String) {
        if currentLanguage == "fr" {
            return NSLocalizedString(key, comment: "")
        }
        else {
            //the application is not currently on `fr`
            //change application to `fr`
            NSBundle.setLanguage("fr")

            //get the localized string on `fr`
            let frString = NSLocalizedString(key, comment: "")

            //return the application to the old language
            NSBundle.setLanguage(currentLanguage)

            return frString
        }
    }

    return ""
}


Как это работает
Предпочитаемый язык хранится в NSUserDefaults, чтобы получить значение по ключу для конкретной локализации, временно меняем язык на Французский (вы можете поменять на любой другой), получаем значение и возвращаем оригинальный язык.

Уверен, сможете сделать метод универсальным: к примеру, чтобы получал идентификатор локали как параметр в методе.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы