0

I want to make my app show different view for the Japanese people. There are so many different ways to get SwiftUI's locale, what is the difference between them?

    @Environment(\.locale) var locale
    
    locale == Locale(identifier: "ja_JP")
    locale.identifier == "ja"
    locale.identifier == "ja_JP"
    locale.language.languageCode == "ja"
    locale.language.languageCode == Locale.LanguageCode.japanese
    locale.language.languageCode?.identifier == "ja"

For example:

struct LocalizedView: View {
    @Environment(\.locale) var locale
    
    var isJapaneseLocale: Bool {
        locale == Locale(identifier: "ja_JP") ||
        locale.identifier == "ja" ||
        locale.identifier == "ja_JP" ||
        locale.language.languageCode == "ja" ||
        locale.language.languageCode == Locale.LanguageCode.japanese ||
        locale.language.languageCode?.identifier == "ja"
    }
    
    var body: some View {
        if isJapaneseLocale {
            Rectangle()
        } else {
            Circle()
        }
    }
}
user14119170
  • 1,191
  • 3
  • 8
  • 21
  • I think you need t narrow your question a little, the Swift part of this seems obvious and other than repeating in paragraph form what you have done in code there is no other way to explain. When it comes to the codes themselves those are standardized [this](https://www.w3.org/TR/ltli/#language-terminology) may help. – lorem ipsum Jan 05 '23 at 13:16

0 Answers0