xcode - 我想收到设备语言

时间:2012-04-15 06:54:14

标签: ios device http-accept-language

如何通过以下方法将iPhone设备语言提供给服务器?

$_SERVER['HTTP_ACCEPT_LANGUAGE']

6 个答案:

答案 0 :(得分:9)

如果您询问如何接收设备语言,可以执行以下操作:

NSString *userLocale = [[NSLocale currentLocale] localeIdentifier];
NSString *userLanguage = [userLocale substringToIndex:2];

if([userLanguage isEqualToString:@"en"]){
    //English
}
else if([userLanguage isEqualToString:@"es"]){
    //Spanish
}
else if([userLanguage isEqualToString:@"fr"]){
    //French
}

对于其他语言代码,您可以前往this website。 iOS的代码是最后一栏中的ISO 639-1代码。

答案 1 :(得分:3)

以上答案对我不起作用,因为[[NSLocale currentLocale] localeIdentifier]总会返回en_US。这是因为[NSLocale preferredLanguages]可以识别模拟器中更改语言首选项。这是检查设备语言设置的另一种方法:

NSString *preferredLanguage = [[NSLocale preferredLanguages] objectAtIndex:0];
NSLog(@"%@", preferredLanguage);

if ([preferredLanguage isEqualToString:@"en_US"])
{
    // English
}
else if([preferredLanguage isEqualToString:@"es"])
{
    // Spanish
}

答案 2 :(得分:2)

夫特

获取设备的当前语言

NSLocale.preferredLanguages()[0] as String

输出:

  

en-IN

获取应用语言

NSBundle.mainBundle().preferredLocalizations[0] as NSString

注意:

它获取您在info.plist的 CFBundleDevelopmentRegion 中提供的语言

如果 CFBundleAllowMixedLocalizations 在info.plist中为true,则返回info.plist中 CFBundleLocalizations 的第一项

Source

<强> PHP

浏览器通常会发送一个名为Accept-Language的HTTP标头,指示用户愿意使用的语言

$_SERVER['HTTP_ACCEPT_LANGUAGE']

答案 3 :(得分:0)

  'HTTP_ACCEPT_LANGUAGE'
   Contents of the Accept-Language: header from the current request, if there is one. Example: 'en'.

http://php.net/manual/en/reserved.variables.server.php

基本上你需要的是找出代码是什么。你应该检查一下这样的事情:

   if ($_SERVER['HTTP_ACCEPT_LANGUAGE'] != "")
   {
       $currentLanguage = "en";
   }

我暂时没有触及PHP,但浏览器有可能不会根据哪个浏览器报告语言。您需要默认值。

答案 4 :(得分:0)

我知道这是一个老帖子,但今天我需要做的是Monk问的问题,qegal发布的解决方案对我不起作用所以我发布了我的答案。但它确实让我走上正轨,所以我为qegal投了+1票。

在我的应用程序中,我需要在手机设置为瑞典语时执行某些操作,因此在启动时应用程序会检查语言是否设置为瑞典语,如果是,请调用相应的方法。代码嵌套在viewDidLoad:方法中。请务必将手机设置中的地区格式设置为相应的语言。

NSString *userLocale = [[NSLocale currentLocale] localeIdentifier];
NSLog(@"%@", userLocale);
if ([userLocale isEqualToString:@"sv_SE"]) {
    // Swedish, do something when phone is set to Swedish or whatever language you prefer

}

答案 5 :(得分:0)

Swift:通过本机API获取设备语言

let language = NSLocale.preferredLanguages()[0] as String