Textについてはこちらの記事のようにLocalizable.stringsに記述すればかんたんに対応できます。
でもPickerの中のDictionaryを使ってるところでは、上記の方法ではうまくいきませんでした。
Localeを使って場合分けしたらうまくいきました。
func firstLang() -> String {
let prefLang = Locale.preferredLanguages.first
return prefLang!
}
で、こう。
Picker(selection: $name, label: Text("name"), content: {
ForEach(1..<3, id: \.self){i in
if firstLang().hasPrefix("ja"){
Text(NumToNameJP[i] ?? "").tag(i)
} else{
Text(NumToName[i] ?? "").tag(i)
}
}
})
let NumToPitchJP: [Int: String] = [
1: "うさぎ",
2: "かめ",
3: "ねずみ"
]
let NumToPitchJP: [Int: String] = [
1: "rabbit",
2: "turtle",
3: "mouse"
]
参考
https://capibara1969.com/2120/
https://medium.com/@dkmczk/swift3-端末の表示言語を読み取り-言語ごとに分岐する方法まとめ-ios-d0d3f92f9bcc