以前ツイートした内容を自分で忘れていて検索する羽目になったのでブログにも書いておく。
iOS9から、[NSLocale preferredLanguages] の出力が ja から ja-JP に変更されたらしい。
Technical Note TN2418: Language Identifiers in iOS 9 に説明があった。
If you need to load resources manually, such as from a custom or server-side source, note that you should still rely on NSBundle for language matching to get consistent results.
とあるので、iOS9からはNSBundle を使うべきらしい。
今まで [NSLocale preferredLanguages] を使っていたところを、例えば下記のようにすれば良いはず。
NSArray *languages = [[NSBundle mainBundle]preferredLocalizations];
NSString *currentLanguage = [languages objectAtIndex:0];
ja-JPでチェックしていたら iOS8では ja だった > iOS9で日本語のLocalizable.stringが適用されない by @corruptex on @Qiita http://t.co/Lg437QTLko
— tokentoken アプリ開発中 (@tokentoken) 2015, 10月 13