ObjecTips

Swift & Objective-C で iOS とか macOS とか

iOS 9 での言語の identifier の変更

AppleからiOS 9の言語の identifier の変更についてドキュメントが公開されていた。

NSLocale.preferredLanguages() が返す値がiOS 8以前とiOS 9以降とで異なっていて、 以前は
en だったものが
en-US というように言語 Language と地域 Region がハイフンで繋がれた形式のものになった。

ユーザの言語と地域の組み合わせに対応するローカライズがされていないアプリでは自動的に推奨するものにフォールバックされる機能があって、アプリが en-INローカライズをサポートしていなくて en-GB に対応している場合 en の代わりに en-GB が選ばれるとの事。


この NSLocale.preferredLanguages() で取得できる言語と地域は設定アプリでの言語の優先順位と書式の地域設定によって決まるようで、例えば使用する言語の優先順位を日本語、英語にして地域をスペインにすると以下が取得できる。

(
    "ja-ES",
    "en-ES",
)

f:id:Koze:20151006200141p:plain