谷歌翻译设置默认语言

28

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

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

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

我找到了一些不错的jQuery解决方案,但如果这是一个简单的修复,我不想绕过它。


请问您能否分享一下这个问题的jQuery解决方案? - Amol Pujari
1
刚刚把这个弄好了 $($('span:contains("Select Language")')[1]).html('English') - Amol Pujari
10个回答

28
这并不是直接回答如何使用jQuery来完成任务的方法,但希望它有所帮助。Google翻译使用一个名为“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');

24

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


这应该是被接受的答案。我做了另一个回答,展示了如何完成和测试。 - lbragile
1
这个回答有一定帮助,但不应该被接受为最佳答案。它应该是一个完整的回答。[回答] - ashleedawg

7

您可以通过以下方式在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');
}

谢谢您提供的解决方案。真的很有帮助。这也可以用来自定义谷歌翻译下拉菜单。 - rahim.nagori

4
使用以下PHP代码将当前页面重定向带有“googtrans”标记。
if(!isset($_GET['gt'])) {
  header("Location: ".$_SERVER['REQUEST_URI']."&gt=1#googtrans(en)");
  die(); 
}

"en"代表英语。

这可能会破坏你的WordPress网站,请不要在function.php中这样做。 - Saad Abbasi

2
我们可以通过使用 cookies 来设置 Google 翻译的默认语言。首先使用 Google 翻译将您的网页翻译一遍,然后查看它所创建的 cookies。右键单击您的网页,选择页面信息,然后选择安全,再选择查看 cookies,然后点击 googtrans,您就可以看到它所使用的翻译、路径以及域名或主机名。然后将所有数据放入 setcookies 函数中即可。
示例:
 setcookie(“googtrans”, “/en/ja”, time()+3600, “/”, “www.example.com”);

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

2

1

前往您的主题文件夹,然后进入function.php文件,在其中添加以下内容

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

在文件末尾。


1
看起来这里要用 jQuery / Javascript,除非用户将浏览器偏好设置为不同的语言。引用自谷歌讨论组

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


1
在 URL 中,您可以放置两种语言。

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

这将把“Norwegian”翻译成英语。

https://translate.google.com/#{第一个国家代码}/{第二个国家代码}/Hello


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');

<code>function set_default_language () { session_start(); if (!isset($_SESSION['views'])) { $_SESSION['views'] = 0; } $_SESSION['views'] = $_SESSION['views']+ if ( $_SESSION['views'] == 1 ) { ?> <script type="text/javascript"> jQuery(document).ready(function($) { $('select.notranslate').val('en|id').trigger('change'); }); </script> <?php } } add_action( 'wp_footer', 'set_default_language'); ?> </code> 或者为了跨浏览器使用,可以使用jQuery。 - guruh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接