繁体   English   中英

谷歌翻译设置默认语言

[英]Google Translate set default language

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

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

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

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

这不是如何使用 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');

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

你可以像这样在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');
}

我们可以通过使用 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”);

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

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

其中“en”代表英语。

我的想法是先设置会话。 并检查会话计数器是否为 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');

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

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

在文件的末尾。

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

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

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

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

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

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

基于乔什的回答: 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM