2014-11-13 11 views
5

Avendo optato per la versione "Automatica" di Google Traduttore Widget, mi aspettavo di non vedere il menu a discesa "Seleziona lingua" se il mio browser era la stessa lingua del sito. Tuttavia, lo vedo sempre, non importa quale sia l'attributo html lang a o quello su cui ho impostato la lingua preferita del mio browser. Ho anche notato che non sembra fare alcuna differenza se il tag meta "google-translate-customization" è presente oppure no, il widget è sempre in vista.Google Translate non è nascosto

Mi piacerebbe che il sito fosse tradotto solo se il browser degli utenti non è impostato su inglese.

Qualsiasi consiglio sarebbe apprezzato.

Codice usato: -

In testa: -

<meta name="google-translate-customization" content="6bb255d109276506-b73cb06230e6b6c0-gbb2acb9bc95b4a11-12"></meta> 

nel corpo: -

<div id="google_translate_element"></div> 
      <script> 
      function googleTranslateElementInit() { 
       new google.translate.TranslateElement({pageLanguage: 'en', layout: google.translate.TranslateElement.FloatPosition.TOP_LEFT}, 'google_translate_element'); 
      } 
      </script> 
      <script src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script> 
+0

possibile duplicati di [il sito di Google traduttore automatico Display Mode] (http://stackoverflow.com/questions/17366079/google-website-translator-automatic-display-mode) – Mousey

risposta

3

Si può provare questo piccolo script jquery:

var userLang = navigator.language || navigator.userLanguage; 
if(userLang == "en"){ 
    $("#google_translate_element").css(["display", "none"]); 
} 

Non sicuro se il se ha ragione Sto usando un browser olandese e ha mostrato nl come userLang. Sono abbastanza sicuro che l'inglese dovrebbe essere chiamato en. Altrimenti devi avvisare userlang e cambiarlo in quello.

alert(userLang); 

Heres il jsfiddle: http://jsfiddle.net/u950mwom/1/

+0

Grazie per quella. Probabilmente funzionerebbe, ma il punto è che dovrebbe farlo comunque, in base a come leggo le istruzioni di Google. Mi chiedevo se qualcun altro avesse superato il problema o se ne fosse discusso con Google stesso? – Craig

+0

Forse puoi contattare l'assistenza di google? sanno come risolvere il tuo problema! :-) https://support.google.com/ – Stefan

+1

Già provato, grazie. Basta finire in un ciclo di pagine senza un vero indirizzo email o forum adatto, quindi chiedendo qui. Ma sono abbastanza sicuro che non stia facendo ciò a cui è destinato. – Craig

0

Infine una correzione per questo (che è una lunga bug in Google). Il codice sottostante nasconde la casella a discesa di selezione della lingua per gli utenti inglesi su una pagina inglese. Copse con impostazioni locali come en-US e anche i nuovi browser.

<div id="google_translate_element"></div> 
<script type="text/javascript"> 
var userLang = navigator.language || navigator.userLanguage || navigator.languages; 
if (userLang.substr(0,2) != "en"){ 
    function googleTranslateElementInit() { 
    new google.translate.TranslateElement({pageLanguage: 'en', layout: 
    google.translate.TranslateElement.FloatPosition.TOP_LEFT}, 'google_translate_element'); 
    } 
} 
else { 
    document.getElementById("google_translate_element").style.display="none"; 
    } 
</script> 
<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script> 

cross-browser compatibility explained

+0

se userLang ha come valore predefinito navigator.languages ​​sarà una matrice (almeno nell'ultima versione di chrome). Quindi genera un errore di tipo quando si chiama substr – zudduz

Problemi correlati