-2

IP アドレスを検索するスクリプト (javascript または PHP) を追加する方法を知りたいのですが、ip がスウェーデンの場合は、ウェブサイトの言語をスウェーデン語に変更し、example.com/en の場所を example.com に変更してください。 /se またはそのようなもの、ありがとう

4

4 に答える 4

2

GeoLocation として知られていることをしたい

これをMaxMindのデータベースで実行し、PHP アプリまたは Apache モジュールとして処理できます。

ユーザーがサイトにアクセスするときに、言語/ロケール オプションを推奨することをお勧めしますが、最終的にはこれを上書きできるようにします。

于 2013-03-03T18:56:56.727 に答える
0

すぐに、純粋なJavaScriptに基づいて、次のことができます...

<html>
<head>
  <title>...</title>
  <script language="JavaScript">
    var lang = navigator.language || navigator.userLanguage;
    //alert(lang);
    if(lang == "en" || lang == "eng" || lang == "engs") {
        window.location = "en/index.html"; //English
    }
    if(lang == "sv" || lang == "swe") {
        window.location = "se/index.html"; //Swedish
    }
  </script>
</head>
<body>

</body>
</html>
于 2013-03-03T19:55:32.533 に答える
0

最初にブラウザーの accept-language ヘッダーを確認し、次に OS 言語を含む可能性のあるブラウザー識別文字列を確認します。

function getDefaultLanguage() {
   if (isset($_SERVER["HTTP_ACCEPT_LANGUAGE"]))
      return parseDefaultLanguage($_SERVER["HTTP_ACCEPT_LANGUAGE"]);
   else
      return parseDefaultLanguage(NULL);
   }

function parseDefaultLanguage($http_accept, $deflang = "en") {
   if(isset($http_accept) && strlen($http_accept) > 1)  {
      # Split possible languages into array
      $x = explode(",",$http_accept);
      foreach ($x as $val) {
         #check for q-value and create associative array. No q-value means 1 by rule
         if(preg_match("/(.*);q=([0-1]{0,1}\.\d{0,4})/i",$val,$matches))
            $lang[$matches[1]] = (float)$matches[2];
         else
            $lang[$val] = 1.0;
      }

      #return default language (highest q-value)
      $qval = 0.0;
      foreach ($lang as $key => $value) {
         if ($value > $qval) {
            $qval = (float)$value;
            $deflang = $key;
         }
      }
   }
   return strtolower($deflang);
}
于 2013-03-03T18:57:20.363 に答える
0

良いアイデアかどうかはわかりませんが、次のようにします。

$(function() {
    $.getJSON('http://smart-ip.net/geoip-json?callback=?', function(data) {
        if (data.countryCode == 'SE') {
            $('body').text('Välkommen till Sverige');
        }else{
            $('body').text("You're not Swedish ?");
        }
    });
});

フィドル

jQuery がなければ、最も簡単なのは次のようになると思います。

<script type="text/javascript">
    var lang = function(data) {
        if (data.countryCode == 'SE') {
            //swedish
        } else {
            //not swedish
        }
    }
</script>
<script type="text/javascript" src="http://smart-ip.net/geoip-json?callback=lang"></script>​

またはPHPで?

<?php
    $json = json_decode( file_get_contents('http://smart-ip.net/geoip-json') );
    if ($json->countryCode == 'SE') {
         //swedish
    }else{
         //not swedish
    }
?>
于 2013-03-03T19:06:09.787 に答える