首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >切换PHP语言时停留在当前页面

切换PHP语言时停留在当前页面
EN

Stack Overflow用户
提问于 2020-05-11 20:31:09
回答 2查看 254关注 0票数 1

我希望用户可以通过单击语言链接来切换语言而不更改当前页面。

我找到了下面的代码。它工作,但找不到该页,因为页面名称是不同的。例如:当我在"../en/about.php“页面上更改语言时,它会转到"../tr/about.php”页面。应该转到的页面是"../tr/hakkimizda.php".

我该如何解决这个问题?

代码语言:javascript
复制
    <?php
//URL path. eg: index-en/job.php
$path = trim($_SERVER['REQUEST_URI'],'/');

//language from URL. eg: index-en
$lang = explode('/',$path)[0];

//Paths in other languages: eg: 'tr' => 'index-cn/job.php'
$langs = [
    'en'=>preg_replace("/$lang/",'../en',$path,1),
    'tr'=>preg_replace("/$lang/",'../tr',$path,1),
];
?>
<ul class="dropdown-menu">
    <li>
       <a href="<?= $langs['tr']?>">Türkçe</a>
    </li>
    <li>
       <a href="<?= $langs['en']?>">English</a>
    </li>
</ul>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-26 01:00:51

我不知道php语言,但我用javascript解决了问题。

解决方案:

代码语言:javascript
复制
<a class="nav-link" href="#" id="LangRedirect">English</a>

JavaScript

代码语言:javascript
复制
$("#LangRedirect").click(function LangRedirect(){
var lang,en,tr;
    lang=window.location.pathname;
    en="/en/";
    tr="/tr/";
switch (lang){
     // About
    case en+"about.php": location.assign(tr+"hakkimizda.php");
    break;
    case tr+"hakkimizda.php": location.assign(en+"about.php");
    break;
    default: window.location.pathname=(en+"404.php");
}});
票数 0
EN

Stack Overflow用户

发布于 2020-05-12 07:26:12

您可以对每种语言使用全局arrays,并在需要获取该路径的key时将current path搜索到相应的数组中。然后,可以使用另一种语言的数组搜索此key的路径,例如:

代码语言:javascript
复制
$EN = array('about' => 'about.php');
$TR = array('about' => 'hakkimizda.php');

第一:

在数组key中搜索'about.php'

然后:

使用此key (将为about)在$TR中搜索相应的条目。

我建议,这些数组应该是global

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61738732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档