在线翻译在平时办工中,我们并不陌生。但是,如果遇到大量翻译工作时,通过API使用预定的程序进行翻译,肯定可事半功倍的。FdyCms4.0的API翻译正是为了解决这方面的问题。
假设我们创建了企业独立站,为了更好的进行业务拓展,我们同时又建立了多种其他语言的站点。在内容发布时,我们肯定希望主站(如英文站)发布文章时,同步也发布到其他站点,对于翻译不准备的地方,我们还可以进入指定站点进行人工调整。
今天,我们来看看我们两个核心API的简单调用案例以及相应的参数说明。
通用翻译API
调用方法是org\Bdfanyi类的translate()方法来完成的,它需要的参数有三个,分别是翻译的内容、要翻译的语言以及目标语言,后两个参数默认值分别是zh与en,即默认为中文到英文。至于内部的实现逻辑我们就可以不用关心它。
调用过程特别简单,如上图所示,翻译结果是同步的,如下图所示。
这里大家有个问题肯定很关心,就是在发布文章时,有标题、关键词、描述、作者、SEO标题以及一些自定义的参数等这些字段需要翻译,不可能发一次去请求几十次API吧。
是的,百度翻译开放平台在这个方面也是有限制的,个人用户每秒调用次数为1,企业的为10次/秒,这个时间我们不得不考虑将翻译的内容一起推进去,然后在trans_result中得到多段的翻译结果,文档中也有说明,我们这边的实现碱如下。
没错,就是用换行符号将其分隔开,翻译结果如下。
看到这个结果,上面的问题就基本得到解决了。
文档翻译
文档翻译这个概念比较广泛,目前百度方面对于翻译文档格式还有有一定的限制的,但是我们日常工作生活已经足够了,比如我们常见的WORD文档、PDF文档、HTML等,都可以轻松应对。
它调用方法是org\Bdfanyi类的translateFile()方法来完成的,它需要的参数也是三个,分别是翻译的文件、要翻译的语言以及目标语言,后两个参数默认值分别是zh与en,即默认为中文到英文。
调用后,返回结果如下
这个接口是异步的,我们最后需要通过这个requestId来识别翻译的文件。配置好回调后,可以得到如下结果。
这里有两个参数,我们要重点关注,第一就是requestId,它和请求中的requestId是一致的,通过它我们可以清楚的知道这是哪个翻译的回调。
第二个参数就是fileSrcUrl,这个是翻译返回的文件地址,我们可以在程序中下载文件内容并进行后续的处理。这里还有两个参数值得关注,分别是charCount,表示计数字符数,amount,表示扣费金额。可能我们目前还在使用免费额度,所以这个字段返回数据为0。
关于这个异步的处理,个人建议,可以在请求的时候写一个数据表,写入requrestId,同时交待后续要处理的逻辑,翻译回调,我们检验参数OK后,就可以通过这个requestId去查询数据表,进行后续操作,操作完成后同时写入进度并更新charCount现amount的值。当然如果使用消息列队来做,会更适合些。