translation.js
收集多种翻译接口并用同一个 API 调用。
特点
统一接口调用方式
互联网上有很多可供免费使用的翻译接口,比如百度翻译、谷歌翻译、有道翻译、必应翻译等等,它们的接口不尽相同,但原理都是发起 HTTP 请求获取翻译结果。translation.js 的目标就是统一这些接口的调用方式,可以使用一种方法调用不同的多个接口。借助于 Webpack 与 SuperAgent 的力量,它可以同时运行在 Node.js 与浏览器端。
负载均衡
以有道翻译接口为例,你可以申请多个 apiKey 在 translation.js 中生成多个翻译实例,那么调用有道翻译时, translation.js 会轮流使用各个实例进行翻译。这样做能有效降低由于使用次数过多而导致 apiKey 被封禁的风险。
自定义翻译接口
如果某一个翻译接口没有被添加,你也可以很方便的自定义翻译接口。欢迎提交 PR 添加更多翻译接口!详情见自定义接口。
安装
在 Node.js 或 Webpack 中
先使用 NPM 安装:
npm install translation.js -S
然后:
var tjs = require('translation.js')
使用 <script>
标签
<script src="https://unpkg.com/superagent/superagent.js"></script>
<script src="https://unpkg.com/translation.js/dist/translation.js"></script>
<script>alert(window.tjs)</script>
使用示例
tjs.add(new tjs.BaiDu())
tjs.add(new tjs.Google())
tjs.add(new tjs.GoogleCN())
tjs.add(new tjs.Bing())
tjs.add(new tjs.YouDao({ key: 'xxx', keyFrom: 'xxx' }))
tjs
.translate({ api: 'YouDao', text: 'test' })
.then(function (resultObj) {
console.log(resultObj)
}, function (errMsg) {
console.log(errMsg)
})
tjs
.audio({ api: 'BaiDu', text: 'test' })
.then(function (audioUrl) {
console.log(audioUrl)
}, function (errMsg) {
console.log(errMsg)
})
tjs
.detect({ api: 'BaiDu', text: 'test' })
.then(function (lan) {
console.log(lan)
}, function (errMsg) {
console.log(errMsg)
})
内置的翻译接口
translation.js 内置了五种翻译接口:有道翻译、百度翻译、必应翻译、谷歌翻译与谷歌国内翻译。其中,只有有道翻译使用了官方的 API 接口,其它翻译都是使用各自的网页翻译里的翻译接口——因为官方发布的 API 接口都是要收费的,并且会有调用频率限制。
也就是说,只有有道翻译是需要 apiKey
与 keyFrom
参数的,其它翻译接口只需要创建一个实例即可。
另外,谷歌翻译与谷歌国内翻译返回的结果是完全一样的,只有一点不同:谷歌翻译需要翻墙使用,而谷歌国内翻译不需要。
许可
MIT