iOS9 語言國際化-坑

iOS國際化問題:當前設備語言字符串返回有變化

   NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
  NSArray *allLanguage = [defaults objectForKey:@"AppleLanguages"];
  NSString *currentLanguage = [allLanguage objectAtIndex:0];
  NSLog(@"The current language is : %@", currentLanguage);
iOS 9 之前:以上返回結果:語言字符串代碼。例如:"zh-Hans"


iOS 9:以上返回結果:語言字符串代碼 + 地區代碼。例如:"zh-Hans-US"

所以加載語言包的時候就要注意了,要判斷在不同的環境下加載不同的語言包。

語言包格式xml、lang


備註:

  1.請注意判斷當前語言類型,不要用以下形式的代碼了,不然在iOS9上就會遇到坑。

  1
  if ([currentLanguage isEqualToString:@"zh-Hans"])
  可以使用:

  1
  if ([currentLanguage hasPrefix:@"zh-Hans"])
  另外:對於中文,語言有:

  簡體中文:zh-Hans
  繁體中文:zh-Hant
  香港中文:zh-HK
  澳門中文:zh-MO
  臺灣中文:zh-TW
  新加坡中文:zh-SG
  備註:以上iOS9 當前語言字符串返回結果:語言字符串代碼 + 地區代碼。在某些情況下不是這樣,iOS開發培訓者本人手機型號:大陸版電信iPhone5S/A1533/16GB測試結果:zh-HK/zh-TW,在地區爲"中國"、"中國香港"、"中國臺灣"的時候,顯示的還是zh-HK/zh-TW,一旦切換到其它地區,設備語言會自動的切換到中文繁體。請開發人員注意中文的問題!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章