iOS 9以降の機種で、日本語化対応(ローカライズ)が異常になる現象が発生していました。
最低サポートバージョンのiOS 7.1で動作確認を行っている関係で、この発見は、いまごろ発覚しています。
アプリでは、英語と日本語の環境下であれば、使用している端末の利用言語に合わせて項目やメッセージを使用言語で表示するようにしています。その方法は、以下で行っていました。
//ios7.1での対応 if([currentLanguage compare:@"ja"] != NSOrderedSame){ //日本語化処理 }
この設定で、取得値が、「言語ー地域」の情報に変更になっていました。そのため、以下の方法での判断が必要になります。
//ios9.1での対応 if([currentLanguage compare:@"ja-JP"] != NSOrderedSame){ //日本語化処理 }
ios7.1以降の使用であれば、@”ja”と@”ja-JP”のどちらかという判定が必要になり、旧と新の判定が必要です。
//ios7.1以降をサポートする場合 if(([currentLanguage compare:@"ja"] == NSOrderedSame) || ([currentLanguage compare:@"ja-JP"] == NSOrderedSame)){ //日本語化処理 }
iphoneの設定で、「言語:日本語で、地域:アメリカ」で使用する場合は、@”ja-US”が取得値となります。