40代からのフリーランス

Ruby on RailsとiOS(Swift、Objective-C)でスタートアップのサービス開発を支援しています。

iOSアプリの多言語化でハマった

とあるアプリの多言語化対応をしています

日本語以外の言語は全て英語版を表示する前提です

 

一旦うまく行ったんですが

日本語以外の言語に設定すると

なぜか英語ではなく日本語が表示される

 

???

え?

さっき確認した時は英語が表示されたよ?

 

ここから迷走が始まります

変なものコミットした成果もしれないと思い

コミットしたコードをリバートしたりしますが

うまくいきません

 

そしてようやく気がつきました

これiPhone側の設定の問題だと・・・

 

何が原因だったかというと

言語設定の優先順位でした

 

iPhoneの言語設定で言語を切り替えていくと

こんな感じで表示されます

 

f:id:hamichamp:20200212180801p:plain

 

この画面にあるPREFERRED LANGUAGE ORDERが重要でした

言語設定にないアプリが起動された場合

この優先順位に沿って言語設定が行われるようです

 

例えば英語と日本語しか設定していないアプリで

スペイン語を設定した時

上から順番に最初にヒットした言語設定を使うみたいです

 

スペイン語の次の優先順位が日本語になっていたので

英語版が表示されず日本語版が表示されていたんですね

 

わかってみればなんともないことなんですが

これがわかるまで数時間を無駄にしました・・・

 

今日も勉強になった!