Я установил выпадающий список Bootstrap, где я получаю язык для перевода моего сайта, добавьте URL-адрес и затем перезагрузите страницу.
Кажется, что он работает нормально для первого набора переводов, например en |es, но если я пойду, чтобы сбросить его обратно или изменить на другой язык, он просто не перезагружается. Не слишком уверен, почему, надеясь, что кто-то может помочь. Или предоставить альтернативный способ сделать это?
Я подозреваю, что это как-то связано с извлечением URL?
<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;
}
}