国コードを検出するためにgeopluginphpクラスを使用して、多言語をサポートするWebサイトを構築しています。これが私のジオロケートコードです:
//GEOLOCATE
$geoplugin = new geoPlugin();
$geoplugin->locate();
define('REAL_COUNTRY', strtoupper($geoplugin->countryCode));
//AVAILABLE COUNTRIES
function available_countries(){
$countries_array = array();
$sql = mysql_query("SELECT id FROM countries WHERE enabled = '1';") or die(mysql_error());
while($row = mysql_fetch_array($sql)) array_push($countries_array, $row['id']);
return $countries_array;
}
//RETURN COUNTRY CODE
function detect_language(){
if(isset($_COOKIE['country'])) return $_COOKIE['country'];
else if(isset($_SESSION['country'])) return $_SESSION['country'];
else if(in_array(REAL_COUNTRY, available_countries())) return REAL_COUNTRY;
else return 'EN';
}
返された国コードに基づいて、私のphpスクリプトはデータベースからコンテンツをロードします。
次のような形式のリンクが必要です。
英語サイト:sitename.com/contact
ドイツ語サイト:sitename.com/kontakt
スロベニア語サイト:sitename.com/kontakt
ドイツ語とスロベニア語のサイトのURLは同じですが、IPとgeopluginから返されたコードに基づいて異なるコンテンツをロードすることに注意してください。
このサイトはうまく機能しているが、私の懸念はグーグルや他の検索エンジンだ。Googleは「EN」以外の言語のページを見つけることがありますか、それとももっと古典的なアプローチを使用して、次のようなURLに言語IDを追加する方が良いでしょう:
英語サイト:sitename.com/ en / contact
ドイツ語サイト:sitename.com/ de / kontakt
スロベニア語サイト:sitename.com/ si / kontakt
ありがとう!