我希望用户可以通过单击语言链接来切换语言而不更改当前页面。
我找到了下面的代码。它工作,但找不到该页,因为页面名称是不同的。例如:当我在"../en/about.php“页面上更改语言时,它会转到"../tr/about.php”页面。应该转到的页面是"../tr/hakkimizda.php".
我该如何解决这个问题?
<?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>发布于 2020-05-26 01:00:51
我不知道php语言,但我用javascript解决了问题。
解决方案:
<a class="nav-link" href="#" id="LangRedirect">English</a>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");
}});发布于 2020-05-12 07:26:12
您可以对每种语言使用全局arrays,并在需要获取该路径的key时将current path搜索到相应的数组中。然后,可以使用另一种语言的数组搜索此key的路径,例如:
$EN = array('about' => 'about.php');
$TR = array('about' => 'hakkimizda.php');第一:
在数组key中搜索'about.php';
然后:
使用此key (将为about)在$TR中搜索相应的条目。
我建议,这些数组应该是global
https://stackoverflow.com/questions/61738732
复制相似问题