Как добавить тамильский язык в мое приложение. Моя версия Xcode 9.2

Я реализую локализацию в своем приложении. добавить тамильский язык Я перехожу по ссылке ниже введите здесь описание ссылки Как чтобы выбрать тамильский язык в опции «Редактировать схему». Я не вижу тамильского языка. Посмотрите скриншот [![введите описание изображения здесь][2]][2], как добавить тамильский язык в мое приложение. Кто-нибудь помогите мне.


person mouni    schedule 11.04.2018    source источник
comment
Попробуйте использовать этот oneskyapp.com/academy/learn-ios-localization.   -  person Abhirajsinh Thakore    schedule 11.04.2018
comment
Привет, Abhirajsinh Thakore, как выбрать тамильский язык в опции «Редактировать схему», на тамильском языке нет опции. как выбрать.???   -  person mouni    schedule 11.04.2018


Ответы (1)


Причина, по которой вы не можете добавить его в схему, заключается в том, что они предназначены только для системных языков iOS. Тамильский язык не является необязательным системным языком для iOS, но вы все равно можете использовать его в локализации. В локализации проекта:

Перейдите в конец предложенного списка и выберите «Другое». Откроется новый список, и вы сможете выбрать тамил.

введите здесь описание изображения

отсюда в переменных проекта.

введите здесь описание изображения

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

func changeToLanguage(_ langCode: String) {
    if Bundle.main.preferredLocalizations.first != langCode {
        let message = NSLocalizedString("In order to change the language, the App must be closed and reopened by you.", comment: "")
        let confirmAlertCtrl = UIAlertController(title: NSLocalizedString("App restart required", comment: ""), message: message, preferredStyle: .alert)

        let confirmAction = UIAlertAction(title: NSLocalizedString("Close now", comment: ""), style: .destructive) { _ in
            UserDefaults.standard.set([langCode], forKey: "AppleLanguages")
            UserDefaults.standard.synchronize()
            exit(EXIT_SUCCESS)
        }
        confirmAlertCtrl.addAction(confirmAction)

        let cancelAction = UIAlertAction(title: NSLocalizedString("Cancel", comment: ""), style: .cancel, handler: nil)
        confirmAlertCtrl.addAction(cancelAction)

        present(confirmAlertCtrl, animated: true, completion: nil)
    }
} 

и вызовите его с кнопки:

@IBAction func didPressChangeLanguageButton() {
        let message = NSLocalizedString("Change language of this app including its content.", comment: "")
        let sheetCtrl = UIAlertController(title: NSLocalizedString("Choose language", comment: ""), message: message, preferredStyle: .actionSheet)

        for languageCode in Bundle.main.localizations.filter({ $0 != "Base" }) {
            let langName = Locale.current.localizedString(forLanguageCode: languageCode)
            if languageCode != "(null)" {
                let action = UIAlertAction(title: NSLocalizedString(langName!, comment: ""), style: .default) { _ in
                self.changeToLanguage(languageCode) // see step #2
                }
                sheetCtrl.addAction(action)
            }
        }

        let cancelAction = UIAlertAction(title: NSLocalizedString("Cancel", comment: ""), style: .cancel, handler: nil)
        sheetCtrl.addAction(cancelAction)

        sheetCtrl.popoverPresentationController?.sourceView = self.view
        sheetCtrl.popoverPresentationController?.sourceRect = self.changeLanguageButton.frame
        present(sheetCtrl, animated: true, completion: nil)
    }
person Zyntx    schedule 11.04.2018
comment
Привет, Zyntx, в опции редактирования схемы нет опции «Другие». - person mouni; 11.04.2018
comment
перейдите в основной проект и нажмите «Информация». Выложу дополнительное изображение. - person Zyntx; 11.04.2018
comment
@mouni: Причина, по которой вы не можете добавить его в схему, заключается в том, что это системные языки iOS. Тамильский язык не является необязательным системным языком для iOS, но вы все равно можете использовать его в локализации. Вам нужно будет реализовать выбор языка в приложении. - person Zyntx; 11.04.2018
comment
@mouni и для реализации переключателя языка посмотрите на вспомогательный класс, предложенный в этой ссылке: ">изменить язык программно - person Zyntx; 11.04.2018