我正在写这个网站,它在窗口顶部有一个导航栏,上面有一个切换列表,你可以选择你使用的语言来浏览这个网站。
我设法编写了语言切换按钮的代码,下面是代码:
<li class="dropdown ' . (in_array($currentFile,$servicesArr)?'active':'') . '">
<a class="dropdown-toggle">
<img src="assets/images/flags/cn.png" width="16" height="11" alt="CN 語言" /> [CN] 简体中文<i class="fa fa-angle-down"></i>
</a>
<ul class="dropdown-menu">
<li><a href="index.php">
<img src="assets/images/flags/hk.png" width="16" height="11" alt="CN 語言" /> [HK] 繁體中文</a>
</li>
<li><a href="#">
<img src="assets/images/flags/us.png" width="16" height="11" alt="EN Language" /> [US] English</a>
</li>
</ul>
</li>
那么,我的问题是:根据我的代码,每次我改变一种语言,链接将采取到该语言的索引页,但如果我不是在我的当前语言的索引页?比如说,如果我正在查看英文的index-en/job.php,现在我想切换到中文,而不是在点击切换按钮后切换到index-cn,我想切换到index-cn/job.php。我该怎么做呢?
提前感谢!
您使用了php
标记,所以我猜这是一个PHP文件。您可以使用PHP动态地用其他语言的相应页面填充href
属性。
- 获取当前URL和语言
- 计算其他语言的匹配url。
- 在链接的
href
属性中插入匹配的url。
<?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: 'cn' => 'index-cn/job.php'
$langs = [
'en'=>preg_replace("/$lang/",'index-en',$path,1),
'cn'=>preg_replace("/$lang/",'index-cn',$path,1),
...
];
?>
<ul class="dropdown-menu">
<li><a href="<?= $langs['cn']?>">
<img src="assets/images/flags/hk.png" width="16"
height="11" alt="CN 語言" /> [HK] 繁體中文</a>
</li>
<li><a href="<?= $langs['en']?>">
<img src="assets/images/flags/us.png" width="16"
height="11" alt="EN Language" /> [US] English</a>
</li>
</ul>