如何获取iPhone应用程序使用的语言

时间:2010-09-28 00:21:30

标签: iphone objective-c

如何获取运行应用的语言?我并不是说将偏好设置为设置!

让我进一步解释一下...... 我用三种语言对我的应用进行了本地化:英语,意大利语和西班如果iPhone设置为意大利语或西班牙语,则应用程序将使用这两个...否则将恢复为英语。

例如:法国用户获得英文版...所以即使法语是语言集,我的应用程序也会自动使用英语。现在......我怎样才能在代码中返回这个“值”?

谢谢!

3 个答案:

答案 0 :(得分:2)

您可以使用以下方式获取用户的首选语言:

NSString * languageCode = [[NSLocale preferredLanguages] objectAtIndex:0];

[NSLocale preferredLanguages]数组实际上按降序排列了所有用户的首选语言,因此您可以循环浏览它,直到找到您的应用支持的语言为止。

答案 1 :(得分:0)

真的不明白这个 我并不是说将偏好设置为设置! 意味着什么?

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *languages = [defaults objectForKey:@"AppleLanguages"];
NSString *currentLanguage = [languages objectAtIndex:0];

答案 2 :(得分:0)

您只需获取设备的当前语言(如上文其他用户所述),并将其与您的应用支持的语言进行比较,例如:

currentLangue = //get current language with code in other answers
languageToUse = ""
for each language in languagesSupportedbyMyApp
  if currentLanguage == language
     languagetoUse = language

//if no language is found then set it to "en"
if languageToUse == ""
  languageToUse = "en"

的问候, 费尔南多