本帖最后由 喬治兄 于 2018-11-29 18:37 编辑
6 O. m5 W8 L7 m" W& O' J v: w. J; J# W! B0 B$ P
+ H9 R5 k: C& E, l9 ?, x- D
平日使用 Google Translate 翻譯詞語、短句,不會覺得有甚麼問題。雖然 Google Translate 功能強大,多種語言都懂,但都有限制。3 |* f! V f4 o" C7 `" H
L M- G6 G A
轉載9 r1 J% j( S1 D/ \) c0 d* U
https://hk.news.yahoo.com/%E9%95 ... 8%B6-043028932.html
4 I8 M! ^: n: r" M* c, E& P4 X6 H) I4 U H2 w/ q" |8 T8 ~4 s
原來,Google Translate 有字數限制。每次翻譯,Google 只支援最多 5000 字。當系統發現字數超標,就會發出警告,指出有多少字未能翻譯。若是經搜尋器翻譯,字數上限則為 2800 字。一版網頁,輕易就能超出 5000 字,不過不受此限制影響。
2 }" C4 D4 a' E; u$ T; k/ t4 X' N# R" }- B1 X
字數太多,原來會令 Google Translate 不能負擔。另一方面,根本全文翻譯的準確度就會降低不少,鬧出笑話。字數限制,其實對我們平日使用影響不大。最多,分多次翻譯就可以解決。 0 l3 V2 L1 Y5 G
https://www.cnblogs.com/feng8621/archive/2012/08/11/2633979.html+ [4 E6 ~5 V; E; c d
r& t& O( O( D; c. z a/ X1 p背景介绍
+ e# e* k) }- F& P7 d8 b1 ^ 前段时间在做一个类似于“一键翻译”的小功能,需要对长文本进行多语种的翻译,本以为很简单,不过在网上找来找去,居然发现没有一个完美的方法来解决,我只好从网上搜来了各种各样的翻译API,并揣摩了其使用方法,不过都不尽完美,其各方面的缺陷大致有: # [: r! W( L. \; O# B+ L
- 微软API:利用WCF方式进行翻译,每次翻译英文字数最大为一万两千多个,中文字符的话最多为六七千个,最大200M字符/月的限制,超过限制后要付费。对HTML翻译支持完美,翻译结果也不错,但考虑到免费字符数限制,需做账号轮巡,账号注册的步骤那叫一个繁琐啊……(此方式可做为首选翻译方式,轮巡的翻译功能已实现,有时间了把源码贴上来。 ——qfzhang于2013-05-30更新)
- YoudaoAPI:语言支持不够多,只有英文、日文、中文几个之间的互相翻译,且每次请求最多翻译的字符数不能超过200,还有访问频率限制。
- GoogleAPI:Google翻译的API,优势明显,翻译结果十分准确,尤其是针对HTML,能够准确跳过HTML标签部分,只翻译文本,但它是付费使用的(v1版为免费版,但接口已关闭),其价格为100万字符/20美金,其价格自然不言而喻。且在使用过程中发现,其标称每次最大翻译字符数不能超过2k,但实际使用时超过1.5k就会报异常。
- BaiduAPI:有访问频率限制和长度限制,且翻译结果不理想。
( B- y7 G0 a/ C" F' E6 c! X 在这四大翻译巨头的各种限制之下,不得不另寻出路……
$ N" f2 C" Y! d( v, a转机 鉴于Google翻译的准确性,还是果断选择了Google作为目标,但其价格实在昂贵,只好从其翻译页面上做文章。 在测试时发现,其GET请求中加上一些参数可以实现翻译功能,于是乎第一个GET版本的翻译功能出炉了,其步骤大约分为以下两步: , h2 V3 {+ S" `
- 构造查询字符串,向翻译页面发送请求
- 获取返回的HTML,并从中过滤出所需要的结果。(小弟不才,因为这个东西,好好地把正则表达式训练了一把^_^)
( c9 _ `6 G9 \; @* A 然而,GET方式跟API有同样的问题,超出固定长度后就会报请求异常。于是只能再想其它方法。 后来小弟尝试了构造POST请求去访问它,没想到……居然成功了……一时高兴,代码不敢独享,在此贴出来,希望大家有遇到此类问题的,一起分享一下。 |