谷歌翻译设置默认语言
Posted
技术标签:
【中文标题】谷歌翻译设置默认语言【英文标题】: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')
【参考方案1】:
根据乔希的回答:https://***.com/a/12063697/4298115
在 vanilla JS 中实现此目的的一个简单函数:
var language = window.navigator.userLanguage || window.navigator.language;
window.location.replace(`/#googtrans($language)`);
然后您可以通过更改浏览器的语言环境进行测试:https://***.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 ) ?> <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'].">=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');
【讨论】:
以上是关于谷歌翻译设置默认语言的主要内容,如果未能解决你的问题,请参考以下文章