以编程方式更改Google翻译下拉列表

时间:2011-04-06 16:39:05

标签: javascript jquery

在网站上,我尝试使用以下代码添加Google翻译下拉列表:

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

<script src="http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>

当您从谷歌脚本插入的下拉列表中选择时,页面顶部会显示一个Google翻译栏,并且所有文本都会翻译成所选语言。

但是,如果我尝试使用JavaScript触发下拉列表更改,则无效:

$('.goog-te-combo').val('fr')

从下拉列表中选择“法语”,但不会触发Google翻译。

为什么为什么它不起作用?我也试过了:

$('.goog-te-combo').trigger('click')
$('.goog-te-combo').change()

更新:仅供参考,这不是我的网站。我使用Chrome控制台加载jQuery并执行jQuery方法。

7 个答案:

答案 0 :(得分:9)

您可以让您的下拉菜单重新加载页面。您可以重新加载页面,其中#googtrans(en|ja)#googtrans/en/ja附加到网址,或者在重新加载之前将googtrans Cookie值设置为/en/ja(其中ja是所选目标语言的示例)。

答案 1 :(得分:5)

我知道这已经是一个古老的主题了,但我只想分享解决方案,我提出解决谷歌翻译选择元素更改事件的问题。

添加将使用dispatchEvent或fireEvent函数的函数:

function triggerHtmlEvent(element, eventName) {
var event;
if(document.createEvent) {
    event = document.createEvent('HTMLEvents');
    event.initEvent(eventName, true, true);
    element.dispatchEvent(event);
} else {
    event = document.createEventObject();
    event.eventType = eventName;
    element.fireEvent('on' + event.eventType, event);
} }

设置值后,获取用于select的DOM对象(使用document.getElement ...)并调用上面的函数:

triggerHtmlEvent(selectObject, 'change');

答案 2 :(得分:4)

//获取当前选定的语言

string language=Request.Cookies["googtrans"].Value

//设置所需的语言

 Response.Cookies["googtrans"].Value = Your language;

//例如:Response.Cookies [“googtrans”]。Value =“/ en / hi”;

答案 3 :(得分:3)

将此添加到您的代码中:

//to get currently selected language
string language=Request.Cookies["googtrans"].Value
//to set desired language
 Response.Cookies["googtrans"].Value = Your language;
//eg: Response.Cookies["googtrans"].Value = "/en/hi";

答案 4 :(得分:1)

在查看您的页面时,似乎未加载jQuery,因此您将无法使用$()函数。

您需要在<head></head>部分添加对jQuery的引用,例如:

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> 

然后

$('.goog-te-combo').val('fr');

应该有用。

答案 5 :(得分:1)

我花了很多时间试图让它工作,我实现了jquery翻译插件,并且能够轻松实现我想要做的一切,包括在页面加载和可点击语言链接上自动翻译成浏览器语言,旗帜等。

插件和下载的详细信息在http://code.google.com/p/jquery-translate/

答案 6 :(得分:0)

我在这里写的正确使用方法。谷歌翻译使用选择“ select.goog-te-combo”设置更改功能,如果您仅使用类,则JS不会调用正确的侦听器。 @joeyend起作用,因为该函数标识了真正的“选择器”。

var trans = jQuery('select.goog-te-combo');
trans.val('fr')
trans.change();