2010-02-27 50 views
2

如何在我的多语种网站的迷你框架内根据用户浏览器的语言显示语言?如何在此代码中根据用户的浏览器语言显示语言?

基本上,如果没有cookie,它必须显示用户的默认语言。

的实施例的index.php:(渲染输出)

<h2><?php echo l('tagline_h2'); ?></h2> 

的common.php:(控制器,其语言输出的)

<?php 
session_start(); 
header('Cache-control: private'); // IE 6 FIX 

if(isSet($_GET['lang'])) 
{ 
$lang = $_GET['lang']; 

// register the session and set the cookie 
$_SESSION['lang'] = $lang; 

setcookie("lang", $lang, time() + (3600 * 24 * 30)); 
} 
else if(isSet($_SESSION['lang'])) 
{ 
$lang = $_SESSION['lang']; 
} 
else if(isSet($_COOKIE['lang'])) 
{ 
$lang = $_COOKIE['lang']; 
} 
else 
{ 
$lang = 'en'; 
} 

//use appropiate lang.xx.php file according to the value of the $lang 
switch ($lang) { 
    case 'en': 
    $lang_file = 'lang.en.php'; 
    break; 

    case 'es': 
    $lang_file = 'lang.es.php'; 
    break; 

    case 'tw': 
    $lang_file = 'lang.tw.php'; 
    break; 

    case 'cn': 
    $lang_file = 'lang.cn.php'; 
    break; 

    default: 
    $lang_file = 'lang.en.php'; 
} 

//translation helper function 
function l($translation) { 
global $lang; 
return $lang[$translation]; } 

include_once 'languages/'.$lang_file; 
?> 

实施例的/语言/ lang.en.php:(其中多语言内容正在储存)

<?php 
$lang = array(
'tagline_h2' => '...', 
+0

重复的重复的重复:http://stackoverflow.com/search?q =浏览器+语言+ php – Gordon 2010-02-27 12:15:01

+0

@戈登,它说“在这个迷你框架中”。 – alexchenco 2010-02-27 12:23:49

+0

那么你的问题是什么?你想知道*如何获得浏览器语言*(重复)或者你想知道*在哪里把代码获取浏览器语言*? – Gordon 2010-02-27 12:50:56

回答