diff --git a/Sources/LanguageManagerSwiftUI/Util/Constants/Languages.swift b/Sources/LanguageManagerSwiftUI/Util/Constants/Languages.swift index 134b13a..e83987b 100644 --- a/Sources/LanguageManagerSwiftUI/Util/Constants/Languages.swift +++ b/Sources/LanguageManagerSwiftUI/Util/Constants/Languages.swift @@ -7,20 +7,62 @@ import Foundation -public enum Languages: String { - case ar, en, nl, ja, ko, vi, ru, sv, fr, es, pt, it, de, da, fi, nb, tr, el, id, - ms, th, hi, hu, pl, cs, sk, uk, hr, ca, ro, he, ur, fa, ku, arc, sl, ml, am - case enGB = "en-GB" - case enAU = "en-AU" - case enCA = "en-CA" - case enIN = "en-IN" - case frCA = "fr-CA" - case esMX = "es-MX" - case ptBR = "pt-BR" - case zhHans = "zh-Hans" - case zhHant = "zh-Hant" - case zhHK = "zh-HK" - case es419 = "es-419" - case ptPT = "pt-PT" - case deviceLanguage +public struct Languages: Equatable { + public static let ar = Languages(rawValue: "ar") + public static let en = Languages(rawValue: "en") + public static let nl = Languages(rawValue: "nl") + public static let ja = Languages(rawValue: "ja") + public static let ko = Languages(rawValue: "ko") + public static let vi = Languages(rawValue: "vi") + public static let ru = Languages(rawValue: "ru") + public static let sv = Languages(rawValue: "sv") + public static let fr = Languages(rawValue: "fr") + public static let es = Languages(rawValue: "es") + public static let pt = Languages(rawValue: "pt") + public static let it = Languages(rawValue: "it") + public static let de = Languages(rawValue: "de") + public static let da = Languages(rawValue: "da") + public static let fi = Languages(rawValue: "fi") + public static let nb = Languages(rawValue: "nb") + public static let tr = Languages(rawValue: "tr") + public static let el = Languages(rawValue: "el") + public static let id = Languages(rawValue: "id") + public static let ms = Languages(rawValue: "ms") + public static let th = Languages(rawValue: "th") + public static let hi = Languages(rawValue: "hi") + public static let hu = Languages(rawValue: "hu") + public static let pl = Languages(rawValue: "pl") + public static let cs = Languages(rawValue: "cs") + public static let sk = Languages(rawValue: "sk") + public static let uk = Languages(rawValue: "uk") + public static let hr = Languages(rawValue: "hr") + public static let ca = Languages(rawValue: "ca") + public static let ro = Languages(rawValue: "ro") + public static let he = Languages(rawValue: "he") + public static let ur = Languages(rawValue: "ur") + public static let fa = Languages(rawValue: "fa") + public static let ku = Languages(rawValue: "ku") + public static let arc = Languages(rawValue: "arc") + public static let sl = Languages(rawValue: "sl") + public static let ml = Languages(rawValue: "ml") + public static let am = Languages(rawValue: "am") + public static let enGB = Languages(rawValue: "en-GB") + public static let enAU = Languages(rawValue: "en-AU") + public static let enCA = Languages(rawValue: "en-CA") + public static let enIN = Languages(rawValue: "en-IN") + public static let frCA = Languages(rawValue: "fr-CA") + public static let esMX = Languages(rawValue: "es-MX") + public static let ptBR = Languages(rawValue: "pt-BR") + public static let zhHans = Languages(rawValue: "zh-Hans") + public static let zhHant = Languages(rawValue: "zh-Hant") + public static let zhHK = Languages(rawValue: "zh-HK") + public static let es419 = Languages(rawValue: "es-419") + public static let ptPT = Languages(rawValue: "pt-PT") + public static let deviceLanguage = Languages(rawValue: "") + + public let rawValue: String + + public init(rawValue: String) { + self.rawValue = rawValue + } } diff --git a/Sources/LanguageManagerSwiftUI/Util/LanguageSettings.swift b/Sources/LanguageManagerSwiftUI/Util/LanguageSettings.swift index 4fff796..06bc99a 100644 --- a/Sources/LanguageManagerSwiftUI/Util/LanguageSettings.swift +++ b/Sources/LanguageManagerSwiftUI/Util/LanguageSettings.swift @@ -77,7 +77,7 @@ public class LanguageSettings: ObservableObject { _language = (defaultLanguage == .deviceLanguage ? deviceLanguage : defaultLanguage).map { $0.rawValue } } - selectedLanguage = Languages(rawValue: _language!)! + selectedLanguage = Languages(rawValue: _language!) observeForSelectedLanguage() }