Использование:
let languageIds = Bundle.main.localizations
, чтобы получить список идентификаторов языков. Затем вы можете преобразовать каждый идентификатор языка в локализованное имя языка с помощью:
let loc = Locale(identifier: langId)
let name = loc.localizedString(forLanguageCode: langId) ?? "Unknown"
Вот некоторый код, который создает словарь доступных языков в комплекте вашего приложения. Он вводится с помощью идентификатора локали (идентификатора языка), и каждое значение является локализованным именем языка для каждого идентификатора локали.
let langIds = Bundle.main.localizations
var languages = [String:String]()
for langId in langIds {
let loc = Locale(identifier: langId)
if let name = loc.localizedString(forLanguageCode: langId) {
languages[langId] = name
} else {
// this should never be reached
}
}
Класс Bundle
также предоставляет свойство preferredLocalizations
и несколько других связанных свойств и функций.