1

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

我想通过在每个页面上加载两种语言来做到这一点,但只显示选择的一种。

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

我怎样才能做到这一点?

4

2 回答 2

2

考虑到您使用的是 Wordpress,此处描述了推荐的方法:翻译 Wordpress

于 2013-01-05T23:50:27.537 回答
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>
于 2013-01-06T00:07:57.483 回答