如何建立一个多语种网站

时间:2013-01-04 18:42:40

标签: php internationalization multilingual

我正在尝试创建一种简单的方法来设置多语言网站,使用两种语言 - 一种是默认语言,另一种是用户可以切换到的语言。

我想通过在每个页面上加载两种语言来完成此操作,但只显示所选的一种语言。

当用户浏览网站时,我希望网站记住选择了哪种语言,并以该语言显示文字。

我该如何做到这一点?

2 个答案:

答案 0 :(得分:2)

考虑到您使用的是Wordpress,此处介绍了推荐的方法:Translating Wordpress

答案 1 :(得分:1)

要在php和所提到的方法中回答这个问题:

<?php 
    $Languages = Array("English","Svenska","Deutsch");
    if(isset($_POST["lang"]))
    {
        foreach($Languages as $Possible)
        {
            if($_POST["lang"] == $Possible)
            {
                setcookie( "Lang", $_POST["lang"], strtotime( '+30 days' )); 
                $_COOKIE["Lang"] = $_POST["lang"];
            }
        }
    }
    $Lang = isset($_COOKIE["Lang"]) ? $_COOKIE["Lang"] : "English";
    $Tindex = 0;
    foreach($Languages as $Possible)
    {
        if($Possible == $Lang)
            $Index = $Tindex;
        $Tindex++;
    }
?>
<html>
    <head>
        <style type="text/css">
        <?php
            foreach($Languages as $Possible)
            {
                if($Lang != $Possible)
                {
                    echo ".language$Possible {";
                    echo "    display: none;";
                    echo "}";
                }
            }
        ?>
        </style>
    </head>
    <body>
        <form method="POST" action="">
            <select name="lang">
            <?php
            foreach($Languages as $Possible)
            {
                echo "<option value='$Possible' " . ($Lang == $Possible ? "selected='true'" : "") . " >";
                echo "    $Possible";
                echo "</option>";
            } ?>
            </select>
            <input type="submit" value="pick language">
        </form>
        <hr>
        <br>
        <br>
        <h1> Test case1: </h1>
        <div class="languageEnglish">
            Hello!
        </div>
        <div class="languageSvenska">
            Hallå!
        </div>
        <div class="languageDeutsch">
            Hallo!
        </div>
        <h1> Test case2: </h1>
        <div>
            <?php
                switch ($Lang) {
                    case "English":
                        echo "This is a test text!";
                        break;
                    case "Svenska":
                        echo "Denna text är en test text!";
                        break;
                    case "Deutsch":
                        echo "Dieses text ist einen test text!";
                        break;
                }
            ?>
        </div>
        <h1> Test case3: </h1>
        <div>
        <?php
            $Str = Array("There are lots of ways to print the text!","Det finns massa sätt att skriva texten!","Es gibt viel methoden, die text zu schreiben!");
            echo $Str[$Index];
        ?>
        </div>
    </body>
</html>