1

如何通过以下方法获取 iPhone 设备语言到服务器?

$_SERVER['HTTP_ACCEPT_LANGUAGE']
4

6 回答 6

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
}

对于其余的语言代码,您可以访问此网站。iOS 的代码是最后一列中的 ISO 639-1 代码。

于 2012-06-14T03:34:09.670 回答
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
}
于 2014-04-20T21:47:01.870 回答
2

迅速

获取设备的当前语言

NSLocale.preferredLanguages()[0] as String

输出:

输入

获取应用程序的语言

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

笔记:

它获取您在info.plist的CFBundleDevelopmentRegion中给出的语言

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

资源

PHP

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

$_SERVER['HTTP_ACCEPT_LANGUAGE']
于 2016-02-01T06:28:56.113 回答
0

Swift:通过原生 API 获取设备语言

let language = NSLocale.preferredLanguages()[0] as String
于 2014-12-21T16:14:17.440 回答
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,但是浏览器有可能不会报告语言,具体取决于存在的浏览器。您将需要一个默认值。

于 2012-04-15T07:01:55.083 回答
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

}
于 2013-09-29T07:52:25.850 回答