【发布时间】:2018-05-06 15:54:46
【问题描述】:
已经尝试了这篇文章中几乎所有的脚本 Implementing Google Translate with custom flag icons
但没有一个对我有用。 这个适用于在语言之间切换,但无法将谷歌翻译重置为默认值。单击“EN”,然后返回“DE”。再次单击“EN”不会翻译页面。
我错过了什么?
var _gto;
// will be called after Google Translate SDK has been loaded successfully
function googleTranslateElementInit() {
_gto = new google.translate.TranslateElement({
defaultLanguage: 'de',
pageLanguage: 'de',
includedLanguages: 'de,en',
layout: google.translate.TranslateElement.InlineLayout.SIMPLE,
autoDisplay: false
}, 'google_translate_element');
}
$('.lang-item').on('click', function (e) {
e.preventDefault();
var $menuframe = $('.goog-te-menu-frame:first'),
// Google iframe that will be invoked, after user has selected an language
$bannerframe,
// button reference to reset language to default
$bannerframerestore,
langcode = $(this).data('lang');
// therefore it is neccassary to catch the element delayed
setTimeout(function () {
$bannerframe = $('.goog-te-banner-frame');
$bannerframerestore = $bannerframe.contents().find('.goog-close-link');
// restore to default
if ($(e.currentTarget).hasClass('default')) {
$bannerframerestore[0].click();
}
}, 500);
$menuframe.contents().find('a span.text:contains("' + _gto.K[langcode] + '")').click();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="google_translate_element"></div>
<ul class="lang-list">
<li><a href="#" class="lang-item default" data-lang="de">DE</a></li>
<li><a href="#" class="lang-item" data-lang="en">EN</a></li>
</ul>
<h1>Verkauf</h1>
<h2>SALE</h2>
<script src="https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
【问题讨论】:
标签: javascript jquery google-translate