Как я могу добавить переводчик языка с пользовательским флагом на моем сайте, используя JavaScript? - PullRequest
0 голосов
/ 11 ноября 2019

Я использую php и javascript. Я хочу добавить пользовательский выбор языка с флагом страны на моем веб-сайте. Я пишу следующий код из учебника w3schools:

<!DOCTYPE html>
<html lang="en-US">

<body>

    <h1>My Web Page</h1>

    <p>Hello everybody!</p>

    <p>Translate this page:</p>

    <div id="google_translate_element"></div>

    <script type="text/javascript">
        function googleTranslateElementInit() {
            new google.translate.TranslateElement({ pageLanguage: 'en' }, 'google_translate_element');
        }
    </script>

    <script type="text/javascript"
        src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>

    <p>You can translate the content of this page by selecting a language in the select box.</p>

</body>

</html>

Instate всего языка, меня интересуют только три языка (таджикский, русский, английский). Я поставил этот языковой флаг следующим образом:

<div class="flag">
      <a href="#" class="eng" data-lang="eng"><img class="img-fluid" src="./img/flag-eng.png" alt=""></a>
      <a href="#" class="taj" data-lang="es"><img class="img-fluid" src="./img/flag-taj.png" alt=""></a>
      <a href="#" class="rus" data-lang="rs"><img class="img-fluid" src="./img/flag-rus.png" alt=""></a>
</div>

Но я не знаю, как я могу изменить выбранный язык с флага. Любая помощь?

Ответы [ 2 ]

1 голос
/ 11 ноября 2019

HTML

<h1>My Web Page</h1>
<p>Hello everybody!</p>
<p>Translate this page:</p>
<div id="google_translate_element"></div>
<script type="text/javascript">
   function googleTranslateElementInit() {
       new google.translate.TranslateElement({ pageLanguage: 'en' }, 'google_translate_element');
   }
</script>
<script type="text/javascript"
   src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
<p>You can translate the content of this page by selecting a language in the select box.</p>
<div class="flag">
   <a href="#" class="flag_link eng" data-lang="en">Eng<img class="img-fluid" src="./img/flag-eng.png" alt=""></a>
   <a href="#" class="flag_link taj" data-lang="es">ES<img class="img-fluid" src="./img/flag-taj.png" alt=""></a>
   <a href="#" class="flag_link rus" data-lang="ru">RS<img class="img-fluid" src="./img/flag-rus.png" alt=""></a>
</div>

CSS

#google_translate_element{
  display: none;
}

Javascript

var flags = document.getElementsByClassName('flag_link');


Array.prototype.forEach.call(flags, function(e){
  e.addEventListener('click', function(){
    var lang = e.getAttribute('data-lang'); 
    var languageSelect = document.querySelector("select.goog-te-combo");
    languageSelect.value = lang; 
    languageSelect.dispatchEvent(new Event("change"));
  }); 
});
1 голос
/ 11 ноября 2019

Вы можете добавить включены языки: "en, es" в функцию переводчика Google, чтобы включить только определенные языки.

Пример :

function googleTranslateElementInit() {
  new google.translate.TranslateElement({ pageLanguage: 'en',includedLanguages: "en,es" }, 'google_translate_element');
}

включены языки - обновление с необходимыми языками.

...