在HTML中,我有两个输入:
<input type="submit" value="FR" <?php include "Lang/fr.php" ?>>
<input type="submit" value="EN" <?php include "Lang/en." ?>>
我的问题:
我想当我单击值为button
的{{1}}时,我的网站将语言更改为EN
,并用'FR'更改语言。
您能给我一些实施方案吗? 感谢您的考虑。
答案 0 :(得分:1)
这里有一些入门代码(不能保证能正常工作)
<?php
session_start(); // ensure sessions are enabled on each page
//---set default value for language
if( !isset($_SESSION['lang']) ) $_SESSION['lang'] = 'en';
if( $_POST['submit'] ) {
$_SESSION['lang'] = $_POST['<your input name here>'];
}
?>
然后您可以在html中使用类似以下的内容
<html lang='<php echo $_SESSION['lang']'?>'>
答案 1 :(得分:0)
不要使用PHP来做这些事情。 PHP是一种服务器端语言。因此,每当您的用户发送更改语言的请求时,它都会涉及服务器端的所有工作,从而使服务器体积庞大。
我建议您通过使用一些JavaScript代码来使用Google的Translator API,并将API与数据绑定在一起。
好处将是-
您的服务器将减少数量
您不必使用这些多余的文件。
您将更少地依赖您的代码。因此,您将不得不花更少的时间查找错误。
答案 2 :(得分:0)
如前所述,您可以使用会话来显示所选的语言。 使用此解决方案要做的所有事情就是创建“本地”, 一种语言。
en = en.php - fr = fr.php
为了节省时间和工作,您可以创建在两个“本地文件”中声明的字符串:
$home = "Welcome to this page"; // En
$home = "Bienvenue sur cette page"; // Fr
由于您已有会话,因此可以使用简单的if语句:
<?php
session_start(); // ensure sessions are enabled on each page
//---set default value for language
if( !isset($_SESSION['lang']) ) $_SESSION['lang'] = 'en';
if( $_POST['submit'] ) {
$_SESSION['lang'] = $_POST['<your input name here>'];
}
if ($_SESSION['lang'] == "") { include("en.php");}
elseif ($_SESSION['lang'] == "en") { include("en.php");}
elseif ($_SESSION['lang'] == "fr") { include("fr.php");}
else {echo "Error";}
?>
仅对jeff的帖子进行了测试。
使用此选项,您可以在一个文件中给出不同的语言:
echo "$home";
但是!如果您想使用googles api,则无需使用javascript。
有一个快速简单的解决方案:
<?php
$canonical = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
echo '
<form method="post" action="/language.php">
<select name="language">
<option value="en" selected="selected">English</option>
<option value="fr">French</option>
<input type="hidden" name="page" value="'.$canonical.'" />
<input type="submit" value="Translate" />
</form>
';
?>
这将检测网站的网址并将其提交到“ language.php”:
<?php
$lang = $_POST["language"];
$link = $_POST["page"];
header ("Location: https://translate.google.com/translate?hl=en&sl=en&tl=$lang&u=$link");
exit;
?>
这会将所有信息(网址+语言)放在一起,重定向到 翻译版本。