我有一堆大的txt文件(游戏演练),我需要从英语翻译成法语。我的第一直觉是将它们托管在服务器上,并使用PHP脚本通过执行file_get_contents()和一些URL操作来自动执行翻译过程以获取翻译后的文本。类似的东西:
http://translate.google.com/translate?hl=fr&sl=en&u=http://mysite.com/faq.txt
我发现它有两个问题:1)有帧2)帧src
值是相对的(即src =“/ translate_c?....”)所以没有任何加载。
有没有办法在PHP中获取通过Google翻译的页面(不使用他们的AJAX API,因为它在这里真的不合适)?
答案 0 :(得分:2)
使用cRL获取生成的页面,然后解析它。
答案 1 :(得分:1)
不使用具有框架的常规翻译网址,而是使用框架的src:
http://translate.googleusercontent.com/translate_c?hl=<TARGET LANGUAGE>&sl=<SOURCE LANGUAGE>&tl=af&u=http://<URL TO TRANSALTE>&rurl=translate.google.com&twu=1&usg=ALkJrhhxPIf2COh7LOgXGl4jZdEBNutZAg
例如,将页面http://chaimchaikin.za.net/从英语翻译为南非荷兰语:
http://translate.googleusercontent.com/translate_c?hl=en&sl=en&tl=af&u=http://chaimchaikin.za.net/&rurl=translate.google.com&twu=1&usg=ALkJrhhxPIf2COh7LOgXGl4jZdEBNutZAg
这将只打开翻译的“无框架”页面。
您可能需要检查并测试以查找所需语言的代码。 另请注意,Google可能会为翻译添加脚本(例如,在悬停时显示原始文本)。
编辑:在检查代码时,似乎在翻译之间存在很多的javascript。您可能需要找到摆脱它的方法。
编辑:进一步检查显示结束位“usg = ALkJr ...”似乎每次都改变。也许首先在常规Google翻译页面(例如http://translate.google.com/translate?hl=fr&sl=en&u=http://mysite.com/faq.txt)上运行请求,而不是查找并解析“usg = ..”部分,并将其用于“无框架”页面上的下一个请求(http://translate.googleusercontent.com/translate_c?.. )。