我正在使用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返回代码。
该网站运作良好,但我关注的是谷歌和其他搜索引擎。谷歌是否会找到除“EN”之外的其他语言的页面,或者更好的方法是使用更经典的方法并为这样的URL添加语言ID:
英文网站:sitename.com/en/contact
德国网站:sitename.com/de/kontakt
斯洛文尼亚网站:sitename.com/si/kontakt
谢谢!
答案 0 :(得分:1)
我建议您使用描述性网址。它使得它基于任何搜索引擎100%不同的URL,因此消除了混淆。
确保您还将每个页面上的META信息更改为正确的语言。这将有助于从一开始就对语言进行分类。
通过使用这种方法,您还可以确保无论网站的哪个部分被链接并因此在搜索引擎中得到改进,完整的域将获得更好的排名,从而保持您的SEO工作。
可读网址在这十年中都是最好的主意。
答案 1 :(得分:0)
用于隐藏Google工具栏的CSS
.goog-te-banner-frame.skiptranslate {
display: none !important;
}
#google_translate_element{
display: none !important;
}
用于翻译的回调函数
function googleTranslateElementInit() {
new google.translate.TranslateElement({
pageLanguage: 'de',
//includedLanguages: 'ar,en,gu,hi,pa,ur',
autoDisplay: false,
}, 'google_translate_element');
}
<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
页面加载时触发事件
function fireEvent(element, event) {
if (document.createEventObject) {
var evt = document.createEventObject();
return element.fireEvent('on' + event, evt)
} else {
var evt = document.createEvent("HTMLEvents");
evt.initEvent(event, true, true);
return !element.dispatchEvent(evt);
}
}
var jObj = $('.goog-te-combo');
var db = jObj.get(0);
jObj.val('gu');
fireEvent(db, 'change');