如何通过以下方法将iPhone设备语言提供给服务器?
$_SERVER['HTTP_ACCEPT_LANGUAGE']
答案 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 的第一项
<强> 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