Skip to content

Latest commit

 

History

History
39 lines (27 loc) · 1.19 KB

how-to-print-current-language-code.md

File metadata and controls

39 lines (27 loc) · 1.19 KB

LanguageCode を取得する方法

背景

  • ユーザーの言語情報が必要になった
  • リージョン情報には興味がなかった

結論

  • iOS 7 以降をサポートするなら、Locateから取得すればいいと思う。
func printLanguageCode {
    let locale = Locale.current
    print(locale.languageCode)
}

iOS 7 より前ではどうやって取得していたか

NSUserDefaultsに使用できる情報が格納されている。

+ printLanguageCode {
    // 配列で文字列がおいてあるので引っ張り出す。
    NSString *language = [[[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"] objectAtIndex:0];
    NSLog(@"%@", language);
}

AppleLanguages はどこから来ているっぽいのか

[[NSUserDefaults standardUserDefaults] volatileDomainNames]を確認すると、DomainNameの一覧が得られる。 これを[[NSUserDefaults standardUserDefaults] volatileDomainForName:]に食わせてみたところ、AppleLanguagesが得られた。

参考リンク