Locale.currentから言語情報のみを変更したLocale構造体を作る方法
こんにちは。hollymoto@anthrgrnwrld です。
Locale.currentの地域情報は欲しいんだけど、言語情報はイラネ。寧ろ他言語にして使いたい!みたいなことってあると思うんです。その場合どうするー?っていうのを考えてみました。
目次
こんな方法いかがでしょう??
例)Locale.currentが "ja_JP"(言語 : 日本語, 地域 : 日本) なんだけど地域情報をそのままに言語情報のみ英語にしたい!!
let currentLocale = Locale.current // ex. ja_JP (Locale構造体) let currebtLocaleStr = currentLocale.identifier // ex. "ja_JP" (String型) let separatedLocale = currebtLocaleStr.components(separatedBy: "_") // ex. ["ja", "JP"] (String型配列 "_"でセパレートする) let reNewLocaleString = "en" + "_" + separatedLocale[1] // ex. "en_JP" (String型) let reNewLocale = Locale(identifier: reNewLocaleString) // ex. en_JP (Locale構造体)
所感
あんまりかっこいい方法ではないですが、これはこれでアリなのでは?