0

我想在我的 index.php 中自动选择语言。当用户来自哥伦比亚时,他被重定向到 index_columbia.html,而其他国家则被重定向到 index_english.html。

我怎样才能用 PHP 做到这一点?

4

4 回答 4

0

你可以使用我的代码:

$langs = array('en','fr','de');
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
if (!in_array($lang, array_keys($langs))) $forward = 'index_'.$lang.'.html';
else $forward = 'index_en.html';
于 2013-06-19T13:17:52.463 回答
0

您可以通过 IP 地址检查(有网络服务)。例如: http: //freegeoip.net/

您也可以使用浏览器发送的接受语言标头。http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4这可以从$_SERVER变量中检索。

于 2013-06-19T13:14:08.823 回答
0

浏览器发送的语言信息带有服务器保留变量。好吧,这个解决方案不是基于访问者的位置,而是基于浏览器的语言设置,这似乎更好。如果访问者来自哥伦比亚或法国并不重要,如果他使用英语作为一种语言,最好向他展示网站的英文版本。

你可以$_SERVER['HTTP_ACCEPT_LANGUAGE']这样使用:-

<?php
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
switch ($lang){
    case "fr":

        include("index_fr.php");
        break;
    case "it":

        include("index_it.php");
        break;
    case "en":

        include("index_en.php");
        break;        
    default:

        include("index_en.php");
        break;
}
?>
于 2013-06-19T13:14:18.170 回答
0

您可以通过 IP 地址使用国家/地区查找。

可以在http://www.phpandstuff.com/articles/geoip-country-lookup-with-php找到执行此操作的类。

于 2013-06-19T13:15:24.667 回答