我想知道如何添加一些腳本(JavaScript或可能在PHP中)查找IP地址,如果ip是瑞典語,則將網站的語言更改爲瑞典語,也許改變位置example.com/en到example.com/se或類似的東西, 感謝尋找IP地址並更改網站的語言
-2
A
回答
2
你想要做什麼的被稱爲GeoLocation中
您可以用MaxMind的數據庫,然後過程做到這一點這在你的PHP應用程序或作爲一個Apache模塊。
建議您在用戶訪問網站時向用戶推薦語言/區域設置選項,但最終允許用戶覆蓋此選項。
0
先看瀏覽器接受的語言標題,然後查看可能包含操作系統語言的瀏覽器標識字符串。
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);
}
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>
or in PHP?
<?php
$json = json_decode(file_get_contents('http://smart-ip.net/geoip-json'));
if ($json->countryCode == 'SE') {
//swedish
}else{
//not swedish
}
?>
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>
相關問題
- 1. 尋找訪客網絡IP地址
- 2. 如何將我的IP地址更改爲給定地址並訪問網站
- 3. 尋找IPMI IP地址
- 4. 多語言網站網址
- 5. 如何更改多語言網站上的網址 - Asp.Net MVC
- 6. 更改joomla網站地址
- 7. 從網站拉IP地址
- 8. IIS中默認網站的IP地址「自動」更改
- 9. REGEX尋找IP地址的MySQL搜索
- 10. 尋找域名的IP地址
- 11. 尋找亞馬遜的IP地址aws
- 12. Symfony更改網站的語言
- 13. 多語言網站的網址結構
- 14. 試圖根據默認的本地化語言更改網址
- 15. TYPO3 - 在前端更改網站語言?
- 16. 更改網站默認語言(Wordpress)
- 17. 尋找用戶來自網頁瀏覽器的IP地址和MAC地址
- 18. 更改程序IP地址
- 19. 2個網站的IP地址
- 20. 多語言網站沒有更改語言
- 21. 更改EC2實例的公共IP地址彈性IP地址
- 22. 更改網站網址
- 23. 更改網頁的語言
- 24. 如何使用QDnsLookup類查找網站的IP地址?
- 25. 在Java中查找您的網站訪問者IP地址
- 26. 網站IP地址,通過終端
- 27. 改變TYPO3 realurl語言的網址
- 28. Azure虛擬網絡網關 - 動態公共IP地址更改
- 29. 更改OpenShift Origin VM的IP地址
- 30. 更改Team Foundation Server 2013的IP地址
不要那樣做!基於IP的語言選擇是非常錯誤的。解析瀏覽器發送的「Accept-Language」頭並使用它來選擇默認語言。 – ThiefMaster 2013-03-03 18:54:43
@ThiefMaster關心一些實際的例子,爲什麼它是可怕的想法?一個鏈接也許是 – samayo 2013-03-03 18:56:12
常識。就因爲我是在X國度假時,這並不意味着我會說這個國家的語言。如果我的瀏覽器告訴網站我比較喜歡一個英文網站,這比我的IP是來自X國的事實強得多。 – ThiefMaster 2013-03-03 18:57:19