【问题标题】:Google Translate set default language谷歌翻译设置默认语言
【发布时间】:2010-12-18 22:10:12
【问题描述】:

也许这有一个我忽略的明显解决方案,但我似乎无法找到正确的参数来实现这一点。 在网站上使用 Google 翻译小部件时,我需要设置用户在进入该网站时看到的默认语言,即使该网站是英文的。

function googleTranslateElementInit() {
    new google.translate.TranslateElement({
       pageLanguage: 'en'
    }, 'google_translate_element');
}

我尝试添加: defaultLanguage: 'fr' 并尝试: targetLanguage: 'fr'

我确实找到了一些不错的 jQuery 解决方案,但如果它很容易解决,我不想绕过它。

【问题讨论】:

  • 您能分享一下 jquery 的工作解决方案吗?
  • 刚刚得到这个工作$($('span:contains("Select Language")')[1]).html('English')

标签: javascript jquery google-translate


【解决方案1】:

根据乔希的回答:https://stackoverflow.com/a/12063697/4298115

在 vanilla JS 中实现此目的的一个简单函数:

var language = window.navigator.userLanguage || window.navigator.language;
window.location.replace(`/#googtrans(${language})`);

然后您可以通过更改浏览器的语言环境进行测试:https://stackoverflow.com/a/64948204/4298115

【讨论】:

    【解决方案2】:

    JS中可以这样设置cookie

    function setCookie(key, value, expiry) {
      var expires = new Date();
      expires.setTime(expires.getTime() + (expiry * 24 * 60 * 60 * 1000));
      document.cookie = key + '=' + value + ';expires=' + expires.toUTCString();
    }
    

    并按以下方式调用。

    function googleTranslateElementInit() {
        setCookie('googtrans', '/en/pt',1);
        new google.translate.TranslateElement({
           pageLanguage: 'en'
        }, 'google_translate_element');
    }
    

    【讨论】:

    • 感谢您提供此解决方案。真的有帮助。这也可用于自定义谷歌翻译下拉菜单。
    【解决方案3】:

    在网址中可以放置两种语言。

    https://translate.google.com/#no/en/Hello

    这会将单词挪威语翻译成英语

    https://translate.google.com/#{first country code}/{second one}/Hello

    【讨论】:

      【解决方案4】:

      转到您的主题文件夹,然后转到您添加的 function.php

      // set the default language translation to potugese
      set cookie('googtrans', '/en/pt');
      

      在文件末尾。

      【讨论】:

        【解决方案5】:

        我的想法是先设置会话。并检查会话计数器是否为 1。 然后添加 javascript 以根据需要设置和更改下拉语言。

        例子:

        function set_default_language () {
                session_start();
                if (!isset($_SESSION['views'])) { 
                    $_SESSION['views'] = 0;
                }
        
                $_SESSION['views'] = $_SESSION['views']+1;
                if ( $_SESSION['views'] == 1 ) { ?> 
                <script type="text/javascript">
        
                    var select = document.querySelector('select.notranslate');
                    select.value    = "en|id";
                    select.dispatchEvent(new Event('change'));
                </script>
                <?php    
                }
            } add_action( 'wp_footer', 'set_default_language');
        

        【讨论】:

        • 或者对于跨浏览器使用 jquery 代替。 function set_default_language () { session_start(); if (!isset($_SESSION['views'])) { $_SESSION['views'] = 0; } $_SESSION['views'] = $_SESSION['views']+ if ( $_SESSION['views'] == 1 ) { ?&gt; <script type="text/javascript"> jQuery(document).ready( function($) { $('select.notranslate').val('en|id').trigger('change'); }); </script><?php } } add_action('wp_footer', 'set_default_language'); ?>
        【解决方案6】:

        使用下面的 php 代码重定向带有 'googtrans' 标签的当前页面。

        if(!isset($_GET['gt'])) {
          header("Location: ".$_SERVER['REQUEST_URI']."&gt=1#googtrans(en)");
          die(); 
        }
        

        “en”代表英语。

        【讨论】:

        • 这可能会破坏您的 WordPress 网站,请不要在 function.php 中这样做
        【解决方案7】:

        看起来 jQuery / Javascript 是这里的方法,除非您的用户将他们的浏览器偏好设置为不同的语言。引用the google groups discussion:

        翻译元素通过翻译(默认)上的内容来工作 您的页面到最终用户的浏览器设置的任何语言。 他们可以选择不同的语言,但没有办法 使用该元素自动将页面翻译成给定的 所有访问者的语言。

        【讨论】:

          【解决方案8】:

          我们可以设置谷歌翻译默认语言 通过使用 cookie 第一次使用谷歌翻译来翻译你的网页 然后看看他创建了哪些cookies (为此右键单击您的网页,然后单击页面信息 然后安全,然后查看 cookie 并单击 googtrans,您会看到他正在使用的翻译是什么,路径是什么,域名或主机名是什么) 并将所有数据放入 setcookies 函数中

          例子

           setcookie(“googtrans”, “/en/ja”, time()+3600, “/”, “www.example.com”);
          
          //setcookie(“googtrans”, “en/ja”);
          setcookie(“googtrans”, “/en/en”, time()+3600, “/”, “.example.com”);
          

          【讨论】:

            【解决方案9】:

            在查询字符串末尾添加#googtrans(xx) 也会自动为您翻译页面,类似于自己设置cookie(其中xx 是语言代码,例如fr 表示法语)。

            【讨论】:

            • 这应该是公认的答案。我做了另一个答案,展示了如何完成和测试。
            • 这有点帮助,但不应该是公认的答案。相反,它应该是一个完整的答案。 How to Answer
            【解决方案10】:

            这不是如何使用 jQuery 完成任务的直接答案,但希望对您有所帮助。谷歌翻译使用名为“googtrans”的 cookie 来跟踪选择的语言。您可以在页面加载之前自行设置该 cookie,Google 翻译会使用它。

            // PHP code sample, could be accomplished with any language that can set cookies
            // set the default language translation to Portugese
            setcookie('googtrans', '/en/pt');
            

            【讨论】:

              猜你喜欢
              • 2015-03-29
              • 2016-08-10
              • 2021-07-07
              • 1970-01-01
              • 2018-04-07
              • 2016-06-15
              • 2013-12-28
              • 2015-02-20
              相关资源
              最近更新 更多