Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 基于用户语言选择动态切换网站内容_Php_Html_Multilingual - Fatal编程技术网

Php 基于用户语言选择动态切换网站内容

Php 基于用户语言选择动态切换网站内容,php,html,multilingual,Php,Html,Multilingual,我正在设计一个小,简单的网站,将需要两种语言。我想让事情保持简单。我想在代码中使用占位符/变量,这些占位符/变量将具有用户可见的文本。然后,允许用户选择他选择的语言(使用一个简单的链接),并使整个站点的文本切换到该语言。我更喜欢类似于语言文件的东西,在这个文件中,当用户选择他的语言时,代码中的值只是简单地切换。下面是一个小例子来说明我指的是什么 <div class='title'> [$siteTitleGoesHere] </div> [$siteTilego

我正在设计一个小,简单的网站,将需要两种语言。我想让事情保持简单。我想在代码中使用占位符/变量,这些占位符/变量将具有用户可见的文本。然后,允许用户选择他选择的语言(使用一个简单的链接),并使整个站点的文本切换到该语言。我更喜欢类似于语言文件的东西,在这个文件中,当用户选择他的语言时,代码中的值只是简单地切换。下面是一个小例子来说明我指的是什么

<div class='title'>
  [$siteTitleGoesHere]
</div>

[$siteTilegoesere]
我希望这是有道理的。我对php和javascript非常熟悉,如果有指示的话,我可能会使用它们来实现这一点。谢谢您的帮助。

这里有一种方法

创建一个名为
lang

在这个文件夹中创建语言文件,比如
en.php
fr.php

$lang['header'] = 'Welcome to my site!';
$lang['header'] = 'Bonjour!'; // my french is awesome
这些文件包含一个名为
$lang
的数组,其中包含站点的所有可交换文本

例如在
en.php

$lang['header'] = 'Welcome to my site!';
$lang['header'] = 'Bonjour!'; // my french is awesome
fr.php

$lang['header'] = 'Welcome to my site!';
$lang['header'] = 'Bonjour!'; // my french is awesome
然后可以基于(例如)会话值加载正确的文件

session_start();
if ( ! isset($_SESSION['lang'])) $_SESSION['lang'] = 'en';
require ("lang/{$_SESSION['lang']}.php");

echo $lang['header'];
如果你想改变语言,你可以这样做

<a href="<?php echo $_SERVER['PHP_SELF']; ?>?lang=fr">French Language</a>
在php中,需要将会话lang值切换为新语言

if (isset($_GET['lang']))
{
    $_SESSION['lang'] = $_GET['lang'];
    header("Location: {$_SERVER['PHP_SELF']}");
    exit;
}
你会使用这样的链接

<a href="<?php echo $_SERVER['PHP_SELF']; ?>?lang=fr">French Language</a>


看一下Ok,谢谢。如何使用链接切换语言?让我在我的回答中添加一个这样的例子。你能告诉我以
if(isset($\u GET['lang'))
开头的代码块在代码中的位置吗?我在那里感到困惑。在第一点之后:)哦,天哪!很漂亮。完全符合我的要求。我还有很多东西要学。谢谢你的帮助。