🔭
Locale.current 観測隊 2024
環境
Mac mini M1
Sequoia 15.1.1
Xcode 16.1
iPhone XR iOS18.0
観測対象
Locale.current.identifier
Locale.current.language.languageCode!
Locale.current.language.region!
Locale.current.region!.identifier
の4つ。
下のように試した結果、普通に使えそう。
アプリは英語のみ対応
言語の「日,英」というのは第一言語が日本語、第二言語が英語という意味。
アプリ | 英 | 英 | 英 | 英 | 英 | 英 | 英 | 英 |
デバイスの言語 | 日 | 日 | 英 | 英 | 日,英 | 日,英 | 英,日 | 英,日 |
デバイスの地域 | 日 | 米 | 日 | 米 | 日 | 米 | 日 | 米 |
.identifier | en_JP | en_US | en_JP | en_US | en_JP | en_US | en_JP | en_US |
.language.languageCode! | en | en | en | en | en | en | en | en |
.language.region! | JP | US | JP | US | JP | US | JP | US |
.region!.identifier | JP | US | JP | US | JP | US | JP | US |
デバイスの言語が日であっても、アプリが英語のみ対応しているならenが取得される。
アプリは英語と日本語に対応
アプリ | 英/日 | 英/日 | 英/日 | 英/日 | 英/日 | 英/日 | 英/日 | 英/日 |
デバイスの言語 | 日 | 日 | 英 | 英 | 日,英 | 日,英 | 英,日 | 英,日 |
デバイスの地域 | 日 | 米 | 日 | 米 | 日 | 米 | 日 | 米 |
.identifier | ja_JP | ja_US | en_JP | en_US | ja_JP | ja_US | en_JP | en_US |
.language.languageCode! | ja | ja | en | en | ja | ja | en | en |
.language.region! | JP | US | JP | US | JP | US | JP | US |
.region!.identifier | JP | US | JP | US | JP | US | JP | US |
さいごに
しっかり String
にするなら
Locale.current.language.languageCode!
Locale.current.language.region!
は
Locale.current.language.languageCode!.identifier
Locale.current.language.region!.identifier
の方になります(付けなくても結果が表示されてしまったので後で気が付きました)。
ちなみに
地域情報を取るのに
let locale = Locale(identifier:Locale.preferredLanguages[0])
print(locale.region?.identifier)
というものもありますが、この locale.region?.identifier
は、スキームの設定で言語を指定しているときは nil
になるようです。
Discussion