最好的方法是最简单的方法:)
$langs = array('LV', 'EN', 'RU');
<?php foreach ($langs as $lang): ?>
<a href="index.php?lang=<?=$lang;?>"> <?=$lang;?> </a>
<?php endforeach; ?>
因此,在此示例中,您可以让用户有机会通过 GET 更改语言。
将会话覆盖到发送的请求:
<?php
if(in_array($_GET['lang'], $langs) {
$_SESSION['lang'] = $_GET['lang']; // to prevent user to change its session to something you don't want to
}
?>
之后,您只需与此会话交互以显示内容。
如果您的每个页面都用不同的语言编写,您可以使用重定向:(但我猜想逻辑如何与您已经通过自动语言检测实现的语言进行交互,但仍然......让我快速提出一些方法? )
<?php
if (isset($_SESSION['lang']) && $_SESSION['lang'] !== 'EN') {
header("Location: mysite.com/".$_SESSION['lang']."/index.php");
exit;
}
?>
或者,您可以使用翻译方法。
您的所有翻译都在与您的 $langs 数组同名的列下的数据库中。
所以你输出这个特定列的内容:
SELECT lang_{$_SESSION['lang']} FROM translations WHERE string = '$string';