如何在PHP中实现语言包

时间:2010-01-30 19:47:04

标签: php drop-down-menu if-statement language-packs

我为自己的网站创建了3种语言包:英语,西班牙语和法语。我在根据用户选择实现它们时遇到了麻烦。我有以下下拉菜单:

<select onchange='document.location.href=this.options[this.selectedIndex].value;'>
  <option>Select</option>
  <option value="?lang=eng">US English</option>
  <option value="?lang=esp">Español</option>
    <option value="?lang=fra">Français</option>
</select>

如何根据用户选择的内容添加语言文件,我只是不知道在 if语句中将什么作为条件

感谢。

3 个答案:

答案 0 :(得分:2)

当您通过查询字符串引入选项时,可以使用

访问它
$lang = $_GET['lang']

答案 1 :(得分:1)

首先,保存用户在用户会话中选择的值。 e.g:

switch($_POST['lang']) {
    case 'en': $_SESSION['lang'] = 'English'; break;
    case 'sp': $_SESSION['lang'] = 'Spanish'; break;
    default:   $_SESSION['lang'] = 'English'; break;
}

在每个页面请求中,根据您保存的值从相关语言文件夹中获取语言文件。

例如,这将如何查看文件结构:

    • Global.php
    • Register.php
  • 西班牙语
    • Global.php
    • Register.php

然后,只要您需要加载文本文件,请使用:

function load_text_file($filename) {
    include 'languages/' . $_SESSION['lang'] . '/' . $filename.'php';
    return $txt;    // $txt should be an array
}
//...

$text = array(); $text += load_text_file('Global'); $text += load_text_file('Register');

答案 2 :(得分:0)

对于我的模板,那段代码是

$_SESSION['language'] = 'english';