【问题标题】:Google Website Translator Automatic Display Mode谷歌网站翻译器自动显示模式
【发布时间】:2013-06-26 07:23:31
【问题描述】:

我正在尝试在我的网站上包含谷歌网站翻译器。我想使用自动的东西,所以如果您的浏览器语言与页面语言不同,则会显示该栏。每次我选择自动显示模式时,它给我的代码都是“选项卡式”。谁能告诉我我做错了什么或提供正确的代码?

提前致谢。

编辑:

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

【问题讨论】:

  • 贴出你正在使用的代码。
  • 顺便说一下,这里有一些关于如何提问的信息。恭喜您加入我们! stackoverflow.com/questions/how-to-ask
  • 感谢@screenmutt 的回复。我已经用代码编辑了帖子。
  • 下次让你的代码更具可读性。不过谢谢。
  • 我和你有同样的问题。自动设置不粘。如果您查看网站的设置,即使您选择自动,它也会继续重置为选项卡。它应该改变“布局”选项的值,但不清楚应该是什么值。

标签: web google-translate google-translator-toolkit


【解决方案1】:

我在这里看到了另一个例子:

Detect User's Preferred Language and Google Translate Automatically

这有参数 autoDisplay: false,

为了在站点语言不匹配时仅获取翻译栏,我删除了容器,并使用了 autoDisplay: true,

当我使用另一种语言时,我得到了栏,但没有下拉菜单。

【讨论】:

    【解决方案2】:

    在试图找出自动显示无法正常工作的原因时,即总是显示翻译菜单,我发现了 W3C 国际化检查器:http://validator.w3.org/i18n-checker/

    W3C 国际化检查器提醒我接受标头正在返回: 接受语言:en-US,en;q=0.8

    我最初粘贴到我的站点文件中的由 Google 生成的代码只有一个值来检查页面语言。但我编辑了它,见下文,并将一个数组传递给 pageLanguage 键,我认为它现在可以工作了。

    <div id="google_translate_element"></div>
    <script type="text/javascript">
        function googleTranslateElementInit() {
            new google.translate.TranslateElement({pageLanguage: ['en', 'en-us'], autoDisplay: false, multilanguagePage: true, gaTrack: true, gaId: 'UA-403844-8'}, 'google_translate_element');
        }
    </script>
    <script type="text/javascript" src="http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
    

    我通过更改 Google Chrome 中的语言设置来尽可能地进行测试。但我并不完全相信它会起作用。任何没有在浏览器中配置 en 或 en-US 的人都应该看到翻译菜单。您可以将任何语言传递给数组以根据您的需要正确配置它。

    如果有人对此有任何反馈,我将不胜感激。希望对您有所帮助。

    【讨论】:

      【解决方案3】:

      要仅在您的页面与用户页面不同时显示翻译器,请进行服务器端检查并仅在必要时包含代码。

      Getting Browser Language

      您的网址不正确。添加“http:”。请参阅下面的工作示例。

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

      【讨论】:

      • 感谢您的回答,但我仍然收到“选择语言”下拉框。我只希望在浏览器语言与网站不同时显示该栏。我真的不想走 display:none 路线。我敢肯定,你过去可以很轻松地做到这一点......
      • 在您生成该代码的设置中,Google 有一个名为“自动”的选项,仅当您使用不同的语言时才会在浏览器顶部显示翻译栏。当您选择该选项时,它会忽略您的选择并为您提供始终显示下拉列表的代码(他在问题中提到的“选项卡”选项)。他要问的是谷歌内置自动显示的代码,因为他们的代码生成器坏了。
      • 布局选项应该有一个不同的值来反映“自动”设置,但还不完全清楚那会是什么,我找不到一个带有代码的站点来复制它来自。
      • @RyanGiglio 2016年同样的问题,代码生成器忽略了“自动”选项。你找到解决办法了吗?
      【解决方案4】:

      有趣的是,谷歌的自动翻译功能代码检索是如何被破坏的,不是吗?我在 Rincewind 级别向导中尝试了许多迭代,他们必须进行自定义设置,但默认设置为不适合我的网站设计的选项卡式功能。

      这是针对英文网站的,请更改不应该显示栏的网站默认语言的语言代码。如果您不使用它,请将其删除。

      <!-- <div id="google_translate_element"></div> -->
      <script type="text/javascript">
          function googleTranslateElementInit() {
              new google.translate.TranslateElement({
              pageLanguage: 'en', 
              autoDisplay: true,
              layout: google.translate.TranslateElement.InlineLayout.SIMPLE, 
              gaTrack: true, gaId: 'UA-xxxxxx-x'
              }, 'google_translate_element');
          }
      </script>
      <script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
      

      【讨论】:

      • 基本上上面@gm-sb 的答案是什么,但有完整的工作代码,所以你可以一次性拥有它的全部功能。
      • 这仍然会提示您选择一种语言,即使您的语言与页面的语言相同,请在此处查看新解决方案 - stackoverflow.com/a/32020889/4258817
      • 嗯,很奇怪,因为上面的代码可以在我的网站上运行而没有那么奇怪。如果它决定对我进行流氓行为,我会记住这一点......只是在我的工作伙伴与随机的怪异作斗争时让我的工作伙伴发疯的小事之一。
      • 我经历了不同的设置,例如自动显示,但它不起作用,使用库存的 Android 浏览器它每次都会提示输入语言,即使语言与页面的语言相同。本地化(en-US)并没有导致问题,但也需要解决。我对谷歌向导没有问题,只有它产生的代码。难道是我使用的是浮动而不是内联布局?
      【解决方案5】:
      <div id="google_translate_element"></div><script type="text/javascript">
      function googleTranslateElementInit() {
        new google.translate.TranslateElement({pageLanguage: 'id', includedLanguages: 'id', layout: google.translate.TranslateElement.InlineLayout.SIMPLE}, 'google_translate_element');
      }
      </script><script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
      

      【讨论】:

      • 你能简单解释一下吗?
      【解决方案6】:
      <div id="google_translate_element"></div><script type="text/javascript">
      
      
      function googleTranslateElementInit() {
        new google.translate.TranslateElement({pageLanguage: 'en', layout: google.translate.TranslateElement.InlineLayout.SIMPLE, autoDisplay: false, multilanguagePage: true}, 'google_translate_element');
      }
      </script><script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
      

      【讨论】:

        【解决方案7】:
        <div id="google_translate_element"></div><script type="text/javascript">
        function googleTranslateElementInit() {
          new google.translate.TranslateElement({pageLanguage: 'en', autoDisplay: false}, 'google_translate_element');
        }
        </script><script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
        

        【讨论】:

        • 除您需要提供一些描述外
        【解决方案8】:
        <div id="google_translate_element"></div>
        <script type="text/javascript">
            function googleTranslateElementInit() {
              new google.translate.TranslateElement({
                  pageLanguage: 'es', 
                  includedLanguages: 'es', 
                  layout: google.translate.TranslateElement.InlineLayout.SIMPLE
              }, 'google_translate_element');
        }
        </script>
        <script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-02-04
          • 2011-01-31
          • 2023-03-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多