mirror of
https://github.com/Dimillian/IceCubesApp.git
synced 2024-05-19 08:48:16 +00:00
d1209e6704
Co-authored-by: Jim Dovey <jimdovey@apple.com>
23 lines
781 B
Swift
23 lines
781 B
Swift
import Foundation
|
|
|
|
public struct Language: Identifiable, Equatable, Hashable {
|
|
public var id: String { isoCode }
|
|
|
|
public let isoCode: String
|
|
public let nativeName: String?
|
|
public let localizedName: String?
|
|
|
|
public static var allAvailableLanguages: [Language] = Locale.LanguageCode.isoLanguageCodes
|
|
.filter { $0.identifier.count == 2 }
|
|
.map { lang in
|
|
let nativeLocale = Locale(languageComponents: Locale.Language.Components(languageCode: lang))
|
|
return Language(
|
|
isoCode: lang.identifier,
|
|
nativeName: nativeLocale.localizedString(forLanguageCode: lang.identifier)?.capitalized,
|
|
localizedName: Locale.current.localizedString(forLanguageCode: lang.identifier)?.localizedCapitalized
|
|
)
|
|
}
|
|
}
|
|
|
|
extension Language: Sendable {}
|