ぜん通。

<ぜんつう>ネトゲとかソシャゲとか、雑記。

   

【iOS】言語コードがiOS9から変わった件

iOS9で、[NSLocale preferredLanguages]から返却される
日本語のコードが 「ja」から「ja-JP」や「ja-US」などに変更された。
これはiOS9から言語コードに地域コードも含める形になったからだ。


そのため「isEqualToString:@"ja"」と判定する処理が想定通り動かなくなった。


この現象はiOS8→iOS9にアップデートしたユーザーにも影響はあるが、設定→一般→言語と地域で地域コードを変更しないかぎりはそれまでの"ja"として返却される模様。
アップデートした上で地域の設定をしたユーザーや、iOS9にしてから端末のリセットで初期設定をしたユーザー。そして6Sを購入したユーザーで問題が発生する。

 
対策としては「isEqualToString:@"ja"」と"ja"だったら日本と判定しているのが問題なので、「"ja"から始まる文字列なら」と変更するのも手。


ただ、今後どんな変更があるかわからないのでローカライズファイルを使った言語判定をお勧めしたい。


方法は簡単。
XCodeでローカライズを使用すると生成される言語ファイル。
Localizable.strings(English)
Localizable.strings(Japanese)
Localizable.strings(Korean)


その中に日本(Localizable.strings(Japanese))なら
"languageCode" = "ja";
英語(Localizable.strings(English))なら
"languageCode" = "en";


と定義しておく。


あとはUtilクラスに判定用関数を用意してあげればOK。


+ (BOOL) isLanguageJP {
    
    if ( [@"ja" isEqualToString: NSLocalizedString(@"languageCode", nil) ) {
        return YES;
    }else{
        return NO;
    }
}


これだと言語の割り振り自体はローカライズとしてOSに任せる事ができるので、言語コードがどう変わっても対応できます。


拍手[0回]

COMMENT

NAME
TITLE
MAIL(非公開)
URL
EMOJI
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
COMMENT
PASS(コメント編集に必須です)
SECRET
管理人のみ閲覧できます

カウンター

マジモン窓

プロフィール

HN:
Zenchuu
性別:
男性
職業:
えんじにあ
自己紹介:
いわゆるオタク系。
HNのzenchuuは子供のころからのあだ名。
iPhoneアプリの制作〜運用を仕事にしてます。
人間強度は最高レベルだと自負。
友達?要らねーよヽ(´ー`)ノ

Twitter

いろいろ

Copyright ©  -- ぜん通。 --  All Rights Reserved
Design by CriCri / Photo by Geralt / powered by NINJA TOOLS /  /