27

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

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

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

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

4

10 回答 10

25

这不是如何使用 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');
于 2011-12-13T17:50:15.223 回答
19

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

于 2012-08-21T22:01:38.743 回答
6

你可以像这样在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');
}
于 2020-07-26T07:28:55.550 回答
2

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

例子

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

//setcookie(“googtrans”, “en/ja”);
setcookie(“googtrans”, “/en/en”, time()+3600, “/”, “.example.com”);
于 2013-03-29T10:29:58.010 回答
2

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

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

其中“en”代表英语。

于 2017-03-08T09:27:52.417 回答
1

看起来 jQuery / Javascript 是这里的方式,除非您的用户将他们的浏览器首选项设置为不同的语言。引自谷歌群组讨论

Translate 元素的工作原理是(默认情况下)将页面上的内容翻译成最终用户浏览器设置的任何语言。他们可以选择性地选择不同的语言,但无法使用该元素将页面自动翻译成所有访问者的给定语言。

于 2011-06-29T17:21:43.977 回答
1

我的想法是先设置会话。并检查会话计数器是否为 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');
于 2017-04-14T18:25:44.823 回答
1

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

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

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

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

于 2017-07-31T21:15:01.060 回答
1

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

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

在文件的末尾。

于 2017-07-17T23:11:31.077 回答
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

于 2020-12-10T00:08:25.550 回答