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

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

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

Пример:
Язык устройства: Русский
Язык ViewController'а: Английский
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
IvanVorobei
@IvanVorobei
iOS разработчик, ещё интерфейсы дизайню
Код:

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, чтобы получить значение по ключу для конкретной локализации, временно меняем язык на Французский (вы можете поменять на любой другой), получаем значение и возвращаем оригинальный язык.

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

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

Войти через центр авторизации
Похожие вопросы
19 окт. 2019, в 02:31
3500 руб./за проект
19 окт. 2019, в 01:07
60000 руб./за проект
18 окт. 2019, в 23:45
150000 руб./за проект