我的网站有一个文件夹语言,其中包含:
en.php
<?
$lang = array(
'sp1' => 'Welcome',
'sp2' => 'Home',
);
?>
和 it.php
<?
$lang = array(
'sp1' => 'Benvenuto',
'sp2' => 'A casa',
);
?>
在 index.php 中我喜欢:
<h4><?=$lang['sp1']?></h4>
<a><u><strong><?=$lang['sp2']?></a></u></strong><br />
但这是一个从cpanel更改语言的选项,我如何转换为地理语言..当意大利语访问我的网站时可以用意大利语等查看我的网站?
答案 0 :(得分:1)
您可以使用$_SERVER['HTTP_ACCEPT_LANGUAGE']
<?php
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
switch ($lang){
case "fr":
//echo "PAGE FR";
include("fr.php");
break;
case "it":
//echo "PAGE IT";
include("it.php");
break;
case "en":
//echo "PAGE EN";
include("en.php");
break;
default:
//echo "PAGE EN - Setting Default";
include("en.php");//include EN in all other cases of different lang detection
break;
}
?>
答案 1 :(得分:0)
浏览器在名为Accept-Language
的HTTP标头中宣传用户的“首选”语言,您可以在PHP中将其读作$_SERVER['HTTP_ACCEPT_LANGUAGE']
。
此标头实际上有a fairly complex structure,允许为多种语言提供优先级,language itself can take a few different forms。 The answers to this previous question讨论如何完全解析它。
但作为第一个近似值,您可以只取前两个字母,这些字母通常是列出here by the US Library of Congress或here on Wikipedia的ISO 639-1代码之一:
$default_language = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
然而,这绝不是选择语言的唯一方法。如explained fairly clearly by this W3C document,浏览器可能配置不正确,或者用户可能没有使用自己的计算机,因此无法发送正确的值。
相反,您应将此视为默认设置,允许用户覆盖。这可以像在每个页面上提供将?lang=it
(等)添加到当前URL的链接一样简单。然后设置一个包含其偏好的cookie,并忽略此后的accept-language
:
if ( $_GET['lang'] ) {
// User asked for a particular language; obey, and remember in a cookie
setcookie('lang', $_GET['lang'], 0, '/');
$preferred_language = $_GET['lang'];
} elseif ( $_COOKIE['lang'] ) {
// Cookie found from previous selection
$preferred_language = $_COOKIE['lang'];
} else {
// Guess based on browser settings
$preferred_language = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
}