2014-11-13 13 views
5

Sau khi đã lựa chọn cho phiên bản "tự động" của Google Translate Widget, tôi mong đợi không thấy "Chọn ngôn ngữ" thả xuống nếu trình duyệt của tôi là ngôn ngữ tương tự như trang web. Tuy nhiên, tôi thấy nó mọi lúc mọi khi tôi đặt thuộc tính lang HTML hoặc những gì tôi đặt ngôn ngữ ưa thích của trình duyệt. Tôi cũng nhận thấy rằng nó dường như không tạo ra bất kỳ sự khác biệt nào cho dù thẻ meta "google-translate-customization" có hay không, tiện ích con luôn ở chế độ xem.Google Translate không được ẩn

Tôi muốn trang web chỉ được dịch nếu trình duyệt của người dùng không được đặt thành tiếng Anh.

Mọi lời khuyên sẽ được đánh giá cao.

Mã được sử dụng: -

Trong đầu: -

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

Trong Body: -

<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

thể trùng lặp của [Google Website Translator Chế độ hiển thị tự động] (http://stackoverflow.com/questions/17366079/google-website-translator-automatic-display-mode) – Mousey

Trả lời

3

Bạn có thể thử kịch bản này jquery nhỏ:

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

Không chắc chắn nếu nếu là đúng Tôi đang sử dụng một trình duyệt dutch và nó cho thấy nl là userLang. Tôi khá chắc chắn tiếng Anh nên được đặt tên là en. Nếu không, bạn phải cảnh báo userlang và thay đổi nó thành điều đó.

alert(userLang); 

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

+0

Cám ơn cái đó. Nó có thể sẽ hoạt động, nhưng vấn đề là, nó phải làm điều đó, theo cách tôi đọc hướng dẫn của Google. Tôi chỉ tự hỏi liệu có ai khác đã vượt qua vấn đề này hay tự mình thảo luận với Google không? – Craig

+0

Có thể bạn có thể liên hệ với bộ phận hỗ trợ của Google? họ biết cách giải quyết vấn đề của bạn! :-) https://support.google.com/ – Stefan

+1

Đã thử cảm ơn. Chỉ cần kết thúc trong một vòng lặp của các trang không có địa chỉ email thực tế hoặc diễn đàn phù hợp, do đó yêu cầu ở đây. Nhưng tôi khá chắc chắn nó không làm những gì nó s'posed. – Craig

0

Cuối cùng một sửa chữa cho điều này (đó là một lỗi tồn tại từ lâu trong google). Mã dưới đây ẩn hộp chọn lựa ngôn ngữ cho người dùng tiếng Anh trên trang tiếng Anh. Nó cũng đồng bộ với các ngôn ngữ như en-US và các trình duyệt mới hơn.

<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

nếu userLang mặc định là navigator.languages ​​nó sẽ là một mảng (ít nhất là trong phiên bản mới nhất của chrome). Sau đó nó sẽ ném một lỗi loại khi gọi nền – zudduz

Các vấn đề liên quan