我该怎么做才能用PHP制作多语言>

时间:2019-06-13 14:54:34

标签: php html

在HTML中,我有两个输入:

    <input type="submit" value="FR"  <?php include "Lang/fr.php" ?>>
    <input type="submit" value="EN"  <?php include "Lang/en." ?>>

我的问题:

我想当我单击值为button的{​​{1}}时,我的网站将语言更改为EN,并用'FR'更改语言。

您能给我一些实施方案吗? 感谢您的考虑。

3 个答案:

答案 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;
?>

这会将所有信息(网址+语言)放在一起,重定向到 翻译版本。