0

I want to learn to the language of the iPhone. on my own device and the simulator works fine. for example changing the language and region to ukraine it works. but when real users in ukraine or croatia running it, currentLanguage always returns Languages.English_US.

what i want is this:: if the phone language is ukrainian, then Languages.Ukrainian will be returned. If it is croatian, return Languages.Croatian.

extension Locale {
    static var currentLanguage: Languages {
        
        let defaultLanguage = Languages.English_US
        
        if let preferredLanguage = preferredLanguages.first {
            let dict = Languages(rawValue: preferredLanguage) ?? defaultLanguage

            if availableLanguages.contains(dict) {
                return dict
            }
        }
         
        return defaultLanguage
    }
}

/// available Languages
let availableLanguages : [Languages] = [.English_US, .Turkish, .Dutch, .Swedish, .Croatian, .Ukrainian]

enum Languages: String,CaseIterable, Codable, Equatable,Comparable {
    case
    , Croatian              = "hr"
    , English_US            = "en"
    , English_UK            = "en-GB"
    , English_Australian    = "en-AU"
    , English_Canadian      = "en-CA"
    , French                = "fr"
    , French_Canadian       = "fr-CA"
    , Ukrainian             = "uk"
}
Asperi
  • 228,894
  • 20
  • 464
  • 690
ursan526
  • 485
  • 3
  • 10

0 Answers0