MILLEN BOX 2

個人iOSアプリ開発者hollymotoによる勉強の記録。時々雑記。

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構造体)

所感

あんまりかっこいい方法ではないですが、これはこれでアリなのでは?