我正在使用 geoplugin php 类构建一个具有多语言支持的网站来检测国家代码。这是我的地理定位代码:
//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
谢谢!