多语言网站在数据库的帮助下?

时间:2014-04-27 16:35:06

标签: php mysql

所以,我希望我的网站是多语言的。但是,我曾经使用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();

2 个答案:

答案 0 :(得分:1)

试试这个:

将两行放在defineStrings函数中。 编辑(在循环中看到内部):

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;
    } 
} 

答案 1 :(得分:0)

$_SESSION[lang]

更改为:

$_SESSION['lang']