Google翻译元素只会在第一次加载时在我的网页上翻译iframe。如果我在iframe中加载了另一个页面,则在大多数浏览器(例如Chrome)中都不会翻译该页面。我无法使用Google Translate iframe workaround,因为生成的网页无法在iframe中显示(似乎谷歌使用了帧杀手)。
这是我的代码:
<div id="google">
<span id="google_translate_element"></span> <span style="float: left;">
<script id="translate1">
function googleTranslateElementInit() {
googleTranslate = new google.translate.TranslateElement({
pageLanguage : 'de'
}, 'google_translate_element');
}
</script>
<script id="translate2"
src="http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit">
</script>
</span>
</div>
答案 0 :(得分:0)
由于Google翻译发送的响应中有X-Frame-Options: DENY标题,因此翻译后的页面无法显示在iframe中。
我的解决方案是在您的服务器上实现路由以获取已翻译的页面,然后使用iframe
<iframe src="/translate?url=targetUrl"></iframe>
你可以绕过X-Frame-Options:DENY标题,在你的服务器上实现一个路径以获取内容并将其转发给用户,就像这样(在Python中,使用Flask):
def get_translate_url(url):
return "http://translate.google.com/translate?hl=bg&ie=UTF-8&u=%s&sl=de&tl=en" % url
@app.route('/translate')
def grabContentForMyIframe():
url = request.args.get(url)
response = requests.get(get_translate_url(url))
return response.content