Php 有数据库帮助的多语言网站?

Php 有数据库帮助的多语言网站?,php,mysql,Php,Mysql,所以,我希望我的网站是多语言的。然而,我曾经用一个txt.php文件来定义所有的句子。我想把它转移到我的数据库,这样我就可以建立一个相当简单的CMS类型的东西。我将所有的翻译输入数据库,然后选择并定义它们,如下所示。然而,这是行不通的。我做错了什么 $sql = "SELECT * FROM Main"; $result = mysql_query($sql); function defineStrings() { switch($_SESSION[lang]) {

所以,我希望我的网站是多语言的。然而,我曾经用一个txt.php文件来定义所有的句子。我想把它转移到我的数据库,这样我就可以建立一个相当简单的CMS类型的东西。我将所有的翻译输入数据库,然后选择并定义它们,如下所示。然而,这是行不通的。我做错了什么

$sql = "SELECT * FROM Main";
$result = mysql_query($sql);

function defineStrings() { 
    switch($_SESSION[lang]) { 
        case "en": 
            while($row = mysql_fetch_assoc($result)) {
                define("$row['identifier']","$row['texten']");
            }
        break;
    } 
} 
这在index.php文件中调用,如下所示:

if ($_SESSION[lang] == "") { 
    $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
    $_SESSION[lang] = $lang; 
    $currLang = $lang; 
} else { 
    $currLang = $_SESSION[lang]; 
    $_SESSION[lang] = $currLang; 
} 
include("Localization/lang.php"); 
include("Localization/txt.php");    
defineStrings();
改为:

$_SESSION['lang']
试试这个:

将这两行放在defineStrings函数中。 已编辑(请参见内部while循环):


这就是全部密码吗?你在哪里调用函数defineStrings()?我编辑了它。我在index.php文件管理器中调用它,“它不工作”是什么意思?你有错误吗?没有什么?错了吗?您是否在任何地方设置会话?在我第一次访问没有会话集的地方会发生什么?在index.php文件中还有我添加到问题中的代码。我得到了以下错误:
警告:mysql\u fetch\u assoc()希望参数1是resource,如果给定空值,那么为什么不使用gettext这样的工具呢?gettext正是为了实现这一目的,它有用于正确翻译工作流的工具,并且有一个巨大的生态系统?!相信我,从长远来看,与您自己的自制系统相比,使用它会更好。不知道为什么您会立即被否决,因为当索引是字符串时,您肯定必须封装索引。虽然这是一个需要纠正的错误,除非您定义了一个常量
lang
,否则它不会有什么区别。这会给我带来一个错误:
解析错误:语法错误,意外的T_封装的T_和_空格,应该是T_字符串或T_变量或T_NUM_字符串
它是否指出错误在哪一行(与函数相关)?
$_SESSION['lang']
function defineStrings() { 
    $sql = "SELECT * FROM Main";
    $result = mysql_query($sql);
    switch($_SESSION[lang]) { 
        case "en": 
            while($row = mysql_fetch_assoc($result)) {
                define($row['identifier'],"'".$row['texten']."'");
            }
        break;
    } 
}