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()
}
}
}