// Copyright © 2020 Australian Government All rights reserved. import Foundation extension NSLocale { class var languageDisplayNameOrNil: String? { // Consider going to NSBundle preferredLocalizations to get language the user is actually seeing in the running app. guard let languageCode = preferredLanguages[safe: 0] else { return nil } return current.localizedString(forLanguageCode: languageCode) } class var preferredLanguageDisplayName: String? { guard let languageDisplayName = languageDisplayNameOrNil else { return nil } return languageDisplayName } class var infoAsDictionary: [String: NSObject] { return ["language": preferredLanguageDisplayName as NSObject? ?? "" as NSObject] } } extension Array { fileprivate subscript (safe index: UInt) -> Element? { return Int(index) < count ? self[Int(index)] : nil } }