# translation.js
**Repository Path**: william_ning/translation.js
## Basic Information
- **Project Name**: translation.js
- **Description**: 集成了谷歌翻译、有道翻译与百度翻译的网页翻译接口,可在 Node.js 与 Chrome 扩展 / 应用中使用。
- **Primary Language**: TypeScript
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 0
- **Created**: 2020-09-03
- **Last Updated**: 2024-11-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# translation.js [](https://www.npmjs.com/package/translation.js)
translation.js 整合了[谷歌翻译](https://translate.google.cn/)、[百度翻译](https://fanyi.baidu.com/)与[有道翻译](http://fanyi.youdao.com/)的网页翻译接口,让你方便的在这些翻译接口之间切换,并获取相同数据结构的翻译结果。
## 特点
### 可在 Node.js 及 Chrome 扩展 / 应用中使用
translateion.js 能同时在 Node.js 和浏览器端运行,但由于浏览器端[同源策略](https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS)的限制,这些网页接口只能在允许跨域的运行环境使用,Chrome 扩展 / 应用则是其中之一。
**注意**:为了能在 Chrome 扩展 / 应用中使用 translation.js,请阅读[在 Chrome 扩展 / 应用中使用](#在-chrome-扩展--应用中使用)。
### 一致的参数与数据结构
每个网页翻译的接口都有不同的参数和翻译结果,translation.js 统一了这些不同之处并提供了一致的 API,同时提供了每个接口的源数据方便自定义处理。
## 安装
### 在 Node.js 或 Webpack(及类似的模块打包工具)中使用
先用 NPM 安装:
```
npm install translation.js
```
然后在代码中引用:
```js
// CommonJS 中
const { youdao, baidu, google } = require('translation.js')
// ES6 中
import { youdao, baidu, google } from 'translation.js'
```
### 使用 <script> 标签
在 Chrome 扩展 / 应用中使用 <script> 标签引用时,你需要先下载下面的文件到你的项目里:
* [md5.min.js](https://unpkg.com/blueimp-md5/js/md5.min.js) - 可选,如果你要用有道翻译就需要。
* [tjs.browser.js](https://unpkg.com/translation.js/dist/tjs.browser.js)
然后在 HTML 中引用:
```html
```
## 使用
所有翻译对象都有相同的三个方法:`translate()`、`detect()` 和 `audio()`,下面会使用 `google` 作为示例,但同样的代码换成 `baidu` 和 `youdao` 也是一样能运行的。
### 获取翻译结果
获取一段文本的翻译结果可以用 `translate()` 方法:
```js
google.translate('test').then(result => {
console.log(result) // result 的数据结构见下文
})
```
其中 `result` 的结构示例如下:
```js
{
text: 'test', // 此次查询的文本
raw: { ... }, // 接口返回的原本的数据
link: 'https://translate.google.cn/#en/zh/test', // 在线翻译地址
from: 'en', // 文本的源语种
to: 'zh-CN', // 文本的目标语种
// 单词的音标,目前只有用百度翻译英文单词才可能有
phonetic: [
{
name: '美',
ttsURI: 'https://fanyi.baidu.com/gettts?lan=en&text=test&spd=3&source=web',
value: 'test'
},
{
name: '英',
ttsURI: 'https://fanyi.baidu.com/gettts?lan=en-GB&text=test&spd=3&source=web',
value: 'test'
}
],
// 单词的详细释义,翻译英文单词时才可能有
dict: ['n. 试验;测验;考验;化验', 'vt. 测验;考验;考查;勘探', 'vi. 受试验;受测验;受考验;测得结果' ],
// 一般翻译结果,数组里的每一项是一个段落的翻译
result: ['测试']
}
```
**注意**:translation.js 中所有的语种格式都以[谷歌翻译支持的语种](https://cloud.google.com/translate/docs/languages)为准。
### 检测语种
检测一段文本的语种可以使用 `detect()` 方法:
```js
google.detect('test').then(lang => {
console.log(lang) // => 'en'
})
```
**注意**:建议一直使用谷歌翻译检测语种,因为它支持的语种是最多的,其他接口可能不支持你所检测的文本的语种。
### 获取文本的语音朗读地址
使用 `audio()` 方法可以获取到文本的语音朗读地址:
```js
google.audio('test').then(uri => {
console.log(uri) // => 'http://tts.google.cn/.......'
})
```
在浏览器端,你可以使用 [`