2014-11-13 9 views
5

Nachdem ich mich für die "Automatische" Version von Google Übersetzer Widget entschieden habe, erwartete ich, dass das Dropdown-Menü "Sprache auswählen" nicht angezeigt wird, wenn mein Browser dieselbe Sprache wie die Website verwendet. Allerdings sehe ich es die ganze Zeit, egal, was ich das HTML-lang-Attribut zu setzen oder was ich meine bevorzugte Browsersprache eingestellt habe. Ich habe auch bemerkt, dass es keinen Unterschied zu machen scheint, ob das Meta-Tag "google-translate-customization" vorhanden ist oder nicht, das Widget ist immer in Sicht.Google Übersetzer ist nicht versteckt

Ich möchte, dass die Website nur übersetzt wird, wenn der Benutzerbrowser nicht auf Englisch eingestellt ist.

Jeder Rat würde geschätzt werden.

-Code verwendet: -

Im Kopf: -

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

Im Körper: -

<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

möglich Duplikat [Google Website Translator automatischen Anzeigemodus] (http://stackoverflow.com/questions/17366079/google-website-translator-automatic-display-mode) – Mousey

Antwort

3

können Sie versuchen, diese kleine jquery Skript:

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

Nicht sicher, wenn die wenn ist richtig Ich benutze einen niederländischen Browser und es zeigte nl als userLang. Ich bin mir ziemlich sicher, dass der Engländer en genannt werden sollte. Andernfalls müssen Sie userlang alarmieren und ändern.

alert(userLang); 

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

+0

Vielen Dank für Das. Es würde wahrscheinlich funktionieren, aber der Punkt ist, es sollte das sowieso tun, je nachdem, wie ich Googles Anweisungen gelesen habe. Ich habe mich nur gefragt, ob noch jemand das Problem gelöst oder mit Google selbst diskutiert hat. – Craig

+0

Vielleicht können Sie den Google-Support kontaktieren? Sie wissen wahrscheinlich, wie Sie Ihr Problem lösen können! :-) https://support.google.com/ – Stefan

+1

Bereits versucht, dass danke. Nur enden Sie in einer Schleife von Seiten ohne tatsächliche E-Mail-Adresse oder ein passendes Forum, daher fragen Sie hier. Aber ich bin mir ziemlich sicher, dass es nicht das tut, was es getan hat. – Craig

0

Endlich ein Update für diesen (die ein langjähriger Fehler in Google ist). Der folgende Code versteckt das Dropdown-Feld für die Sprachauswahl für englische Benutzer auf einer englischen Seite. Es überbrückt Locales wie en-US auch und neuere 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

Wenn userLang standardmäßig navigator.languages ​​ist, wird es ein Array sein (zumindest in der neuesten Version von chrome). Es wird dann beim Aufruf von substr – zudduz