php - 更改语言时停留在当前页面
问题描述
我正在为我的网站设置一个语言切换器,但实际切换器有问题,它总是带回主页(index.php)。:-s 很烦人
我是一个完整的 php 新手,并且一直在 youtube 上遵循本教程:https ://www.youtube.com/watch?v=cgvDMUrQ3vA
我正在尝试在多页网站上实现它。实际的语言交换就像一个魅力,似乎在整个页面中保持设置的语言,但切换机制并没有,因为它使用静态链接加载 index.php + 新语言属性,将访问者不可避免地带回主页而不是重新加载当前页面。
<?php echo $lang['lang-selector-href'] /* set the <a> tag src="index+lang='x'" */ ?>
<?php echo $lang['lang-selector-switch'] /* display language to be set */ ?>
</a>
我正在使用 2 个类似的文件(en.php 和 fr.php),其中包含一个数组来存储翻译的内容
zh.php:
<?php
$lang = array(
"lang-selector-href" => "<a href='index.php?lang=fr'>",
"lang-selector-switch" => "Français (French)",
...
...
);
?>
fr.php:
<?php
$lang = array(
"lang-selector-href" => "<a href='index.php?lang=en'>",
"lang-selector-switch" => "English (anglais)",
...
...
);
?>
问题:我怎样才能将链接更改为:
<a href='current-page.php?lang=fr'> Français (French) </a>
或者:
<a href='current-page.php?lang=en'> English </a>
根据设定的语言?
这是我的 config.php 文件
<?php
session_start();
// if no language selected go for english
if (!isset($_SESSION['lang']))
$_SESSION['lang'] = "en";
else if (isset($_GET['lang']) && $_SESSION['lang'] != $_GET['lang'] && !empty($_GET['lang'])) {
if ($_GET['lang'] == "en")
$_SESSION['lang'] = "en";
else if ($_GET['lang'] == "fr")
$_SESSION['lang'] = "fr";
}
// load content
require_once "content/languages/" . $_SESSION['lang'] . ".php";
?>
对不起,如果这听起来很基本,我确定它是但找不到一个简单的答案,可以工作......谢谢!
解决方案
在 html 中制作下拉列表,其中选项的语言值如下所示,
<select onchange="callSomeFunc()">
<option value="fr">French</option>
<option value="en">English</option>
</select>
在更改下拉列表时,您需要调用将所选语言值设置为 php 的函数$_SESSION.
推荐阅读
- java - 构建 NeuralNetConfiguration 配置类时出现 deeplearning4j 错误:org.nd4j.linalg.factory.Nd4jBackend$NoAvailableBackendException
- node.js - MongoDB 聚合查询,基于参数返回模型上的 refs 集合
- python - f.write 只写入未更改的变量?
- reactjs - React 表单失去了对更新的关注
- c# - 索引超出范围。如何解决
- java - 如何在 Java 中对文件中的数据进行排序?
- google-cloud-functions - 获取 Cloud Function 实例的唯一标识符
- python - 运行提升的 cmd 提示符命令 python
- excel - 将元素插入数组
- php - 使用正则表达式查找元标记的内容?