谷歌翻译 iframe 解决方法

Posted

技术标签:

【中文标题】谷歌翻译 iframe 解决方法【英文标题】:Google Translate iframe workaround 【发布时间】:2014-05-21 02:42:35 【问题描述】:

我正在使用谷歌翻译工具翻译一个网页,并且我在这个页面上也有一个 iframe,它显然没有与页面一起翻译。

有没有人知道的解决方法,所以我也可以翻译 iframe?

【问题讨论】:

【参考方案1】:

这是 Google 翻译的真正限制或政策。您无法重写 iframe 内容。但是您可以做的一件事是将iframe url 更改为已翻译的页面,例如:

<iframe   src="http://translate.google.com/translate?hl=bg&ie=UTF-8&u=YOUR_IFRAME_URL&sl=de&tl=bg" align="middle" border="0">

【讨论】:

chrome 商店中的任何其他应用程序可以翻译 iframe 中的内容?或使用某种代理?因为我无法在 iframe 中更改网址 事实上你可以,如果它来自同一个域 几十年后的狗年,必应链接不再有效。这是一个合适的替代品吗? azure.microsoft.com/en-us/pricing/details/cognitive-services/…【参考方案2】:
    创建空 iframe。 Ajax 已由谷歌翻译器翻译的第二个 iframe 内容。 将 ajax 的响应转储到空 iframe 中。

$("#id_of_empty_iframe").load("http://translate.google.com/translate?hl=bg&ie=UTF-8&u=YOUR_IFRAME_URL&sl=de&tl=bg");

【讨论】:

【参考方案3】:

如果您需要使用 iframe 翻译页面,您可以:

1.使用代理请求的必应翻译,所以它不会是跨域的。

网站:

https://www.bing.com/translator

使用它的插件(未测试):

https://chrome.google.com/webstore/detail/translator/blndkmebkmenignoajhoemebccmmfjib

2。您可以使用 --disable-web-security 参数运行您的浏览器(如果是 Chrome),这样它就可以访问来自其他域的帧。

请注意,它很危险,只能在受信任的情况下使用 网站。

【讨论】:

我不能使用 bing 翻译器,因为我已经登录到从另一个站点获取信息的站点,并且在 iframe 中,我尝试使用代理更改 URL,如下所示,但它不是工作:( 然后检查第二个解决方案。没有其他有效的方法可以强制谷歌翻译器跳过跨域策略。 你在控制台得到了什么?有什么错误吗?如果没有,则必须进行原产地预检查,并且没有简单的方法可以跳过它。 我在尝试翻译时没有看到任何错误,只有在我启用了始终翻译模式后刷新页面时。 '[1:1:0427/131535:ERROR:render_media_log.cc(25)] MediaEvent: PIPELINE_ERROR 解复用器:无法打开 ' 选项 2 的命令是:“/Applications/Google Chrome.app/Contents/MacOS/Google Chrome”--user-data-dir=./chrome --disable-web-security 但确实如此不适合我。【参考方案4】:

您可以创建一个图层并将翻译代码放入其中,然后将图层top-500 隐藏在页面之外,其中包含 Google 下拉选择器。

【讨论】:

以上是关于谷歌翻译 iframe 解决方法的主要内容,如果未能解决你的问题,请参考以下文章

使用GoogleTranslateIpCheck查找适用谷歌翻译服务器ip,解决谷歌浏览器无法翻译问题

谷歌在线翻译怎么用?

更新 TKK 失败,请检查网络连接。谷歌翻译 translation插件不能用解决办法 亲测有效

谷歌翻译设置默认语言

谷歌翻译不适用于任何 IE,但适用于 Firefox 和 Google Chrome

谷歌翻译在线翻译