2017-01-05 4 views
0

google translator을 사용하여 웹 사이트를 여러 언어로 번역합니다. 하지만 웬일인지 selected language이 일부 function을 트리거하려고합니다. stack overflow에서이 문제를 기반으로하는 몇 가지 질문을했지만 그다지 도움이되지 않습니다. 예를 들어 thisthis입니다.선택한 언어로 된 양식 가져 오기 google translator

여기 번역 할 때 사용하는 자바 스크립트 코드입니다.

function googleTranslateElementInit() { 
       new google.translate.TranslateElement({pageLanguage: 'en', includedLanguages: 'es,hi,th,vi,zh-CN', layout: google.translate.TranslateElement.InlineLayout.SIMPLE}, 'google_translate_element'); 
      } 

제안 사항이 도움이 될 것입니다.

답변

0

현재 선택된 언어는 googtrans이라는 쿠키에 저장됩니다.

여기 쿠키의 값을 잡는 간단한 예입니다 (: What is the shortest function for reading a cookie by name in JavaScript?를 여기에서 쿠키 코드 기준) :

function readCookie(name) { 
    var c = document.cookie.split('; '), 
    cookies = {}, i, C; 

    for (i = c.length - 1; i >= 0; i--) { 
     C = c[i].split('='); 
     cookies[C[0]] = C[1]; 
    } 

    return cookies[name]; 
} 
console.log(readCookie('googtrans')); //eg. 'en/no' for Norwegian, '/en/hr' for Croatian, etc. 

업데이트 나는 많은 기능을 체크 한 변화에 언어 이름을 선택하세요 그러나 나를 위해 일하지 않기 때문에, 여기에 내가 시도한 어떤 것이있다.

당신은 때마다이 당신을 도울 것입니다

$(document).ready(function(){ 
    checkChange(); 
}); 
var currentLang = ""; 
function checkChange() 
{ 
    setTimeout(function(){ 
     readCookie('googtrans'); 
    },2000); 
} 

function readCookie(name) { 
    var c = document.cookie.split('; '), 
    cookies = {}, i, C; 

    for (i = c.length - 1; i >= 0; i--) { 
     C = c[i].split('='); 
     cookies[C[0]] = C[1]; 
    } 

    currentLang = cookies[name]; 
    console.log(currentLang); 
    checkChange(); 
} 

희망을 기능을 시간을 설정하고 마지막으로 선택한 언어의 이름을 얻을 수 있습니다.

+0

작동하지만 언어를 변경 한 직후에는 작동하지 않습니다. 페이지로드/재로드시 선택된 언어를 표시합니다. 선택한 언어를 즉시 드롭 다운 시키길 원합니다. –