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
}

残りの言語コードについては、この Web サイトにアクセスしてください。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

出力:

en-IN

アプリの言語を取得するには

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

ノート:

info.plist のCFBundleDevelopmentRegionで指定した言語を取得します

info.plist でCFBundleAllowMixedLocalizationsが true の場合、info.plist の CFBundleLocalizations の最初の項目が返されます

ソース

PHP

ブラウザーは通常、Accept-Language という名前の HTTP ヘッダーを送信します。これは、ユーザーが取得する言語を示します。

$_SERVER['HTTP_ACCEPT_LANGUAGE']
于 2016-02-01T06:28:56.113 に答える
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

これは古い投稿であることは知っていますが、今日はモンクが求めたことを実行する必要があり、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 に答える
0

Swift: ネイティブ API 経由でデバイス言語を取得するには

let language = NSLocale.preferredLanguages()[0] as String
于 2014-12-21T16:14:17.440 に答える