【问题标题】:Google Translate isn't Hidden谷歌翻译没有隐藏
【发布时间】:2015-01-10 14:08:05
【问题描述】:

选择了“自动”版本的 Google 翻译小部件后,如果我的浏览器与网站的语言相同,我预计不会看到“选择语言”下拉菜单。但是,无论我将 html lang 属性设置为什么或将浏览器的首选语言设置为什么,我都会一直看到它。我还注意到,元“google-translate-customization”标签是否存在似乎没有任何区别,小部件始终在视图中。

如果用户的浏览器未设置为英语,我希望只翻译网站。

任何建议将不胜感激。

使用的代码:-

在头部:-

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

在正文中:-

   <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>

【问题讨论】:

标签: javascript html google-translate


【解决方案1】:

终于解决了这个问题(这是谷歌长期存在的错误)。下面的代码在英语页面上隐藏了英语用户的语言选择下拉框。它还与 en-US 等语言环境和较新的浏览器兼容。

<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

【讨论】:

  • 如果 userLang 默认为 navigator.languages 它将是一个数组(至少在最新版本的 chrome 中)。然后在调用 substr 时会抛出类型错误
【解决方案2】:

你可以试试这个小 jquery 脚本:

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

不确定 if 是否正确我使用的是荷兰语浏览器,它显示 nl 为 userLang。我很确定英文应该命名为en。否则你必须提醒用户语言并将其更改为那个。

alert(userLang);

这是 jsfiddle:http://jsfiddle.net/u950mwom/1/

【讨论】:

  • 谢谢。它可能会起作用,但关键是,根据我阅读 Google 的说明,无论如何它都应该这样做。我只是想知道是否其他人已经解决了这个问题或自己与 Google 讨论过这个问题?
  • 也许你可以联系谷歌支持?他们可能知道如何解决您的问题! :-) support.google.com
  • 已经试过了,谢谢。只是在没有实际电子邮件地址或合适论坛的页面循环中结束,因此在这里询问。但我很确定它没有做它应该做的事情。
  • 编辑代码以通过添加 || navigator.languages; 添加额外的兼容性 - 另请注意,它返回具有区域设置的语言,即通常为 en_US 而不仅仅是 en 请参阅this answer 了解更多英语语言环境
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 2012-11-21
  • 1970-01-01
  • 1970-01-01
  • 2011-12-26
  • 2015-05-19
相关资源
最近更新 更多