Так что я проверяю этот код с помощью браузера на английском языке sh, и он работает нормально, но когда браузер находится в pt-br, он не выполняет $ ('. Translate'). On ("change", function (), поэтому для правильной работы сайта при использовании браузера pt-br пользователю необходимо изменить на engli sh и затем на португальский, чтобы применить опцию portuguese. если пользователь открывает страницу с помощью браузера pt-br следует перевести на соответствующий язык, но это просто изменение значения в select и ничего больше, как я могу это исправить?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Multiple Languages with Jquery and Json</title>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
</head>
<body>
<select id="language" class="translate" style="">
<option value="english">English</option>
<option value="portuguese">Português</option>
</select>
<ul>
<li class="lang" id="home">Home</li>
<li class="lang" id="about">About Us</li>
<li class="lang" id="contact">Contact Us</li>
</ul>
<p class="lang" id="desc">This is my description</p>
<br>
<script type="text/javascript">
var arrLang = {
'english': {
'home': 'Home',
'about': 'About Us',
'contact': 'Contact Us',
'desc': 'This is my description'
},
'portuguese': {
'home': 'Lar',
'about': 'Sobre',
'contact': 'Contato',
'desc': 'Essa é a descrição'
}
};
// Process translation
$(function() {
$('.translate').on("change", function() {
var lang = $(this).val();
$('.lang').each(function(index, item) {
$(this).text(arrLang[lang][$(this).attr('id')]);
});
});
var userLang = navigator.language || navigator.userLanguage;
$('.translate').val(userLang == "pt-BR" ? "portuguese" : "english");
});
</script>
</body>
</html>