我已经设置了一个Bootstrap Dropdown(引导下拉菜单),在其中我可以将网站翻译成该语言,并附加URL,然后重新加载页面。
对于第一组翻译(即en | es)来说,它似乎工作正常,但是如果我将其重置或更改为另一种语言,则不会重新加载。不太清楚为什么,希望有人可以提供帮助。还是提供其他替代方法?
我怀疑与剥离网址有关吗?
<div class="dropdown translate__dropdown d-inline-block">
<a class="dropdown-toggle chosen__language" href="#" role="button" id="dropdownmenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<img src="http://mastersite.loc/assets/images/flags/fr.png" alt="en">
</a>
<div class="dropdown-menu" aria-labelledby="dropdownmenuLink">
<a data-value="en|en" data-lang="en" class="dropdown-item language__select" href="#">
<img src="http://mastersite.loc/assets/images/flags/en.png" alt="en">
</a>
<a data-value="en|fr" data-lang="fr" class="dropdown-item language__select" href="#">
<img src="http://mastersite.loc/assets/images/flags/fr.png" alt="fr">
</a>
<a data-value="en|es" data-lang="es" class="dropdown-item language__select" href="#">
<img src="http://mastersite.loc/assets/images/flags/es.png" alt="es">
</a>
</div>
</div>
// Language Settings....
if ($(".language__select").length) {
$('.language__select').on('click',function() {
var url = stripUrl(window.location.href);
var value = $(this).data('value');
var new_url = url + '?/#googtrans(' + value + ')';
var language = $(this).data('lang');
var token = $('meta[name="csrf-token"]').attr('content');
// Send Ajax Call To Change Lang...
$.ajax({
type: 'POST',url: '/set-language',data: {
language: language,_token: token
},success: function() {
// Now Reload page using New URL...
setTimeout(function() {
window.location.replace(new_url);
},1000)
}
})
return false;
})
function stripUrl(urlToStrip) {
let stripped = urlToStrip.split('?')[0];
stripped = stripped.split('&')[0];
stripped = stripped.split('#')[0];
return stripped;
}
}