# 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 [![NPM Version](https://img.shields.io/npm/v/translation.js.svg?style=flat-square)](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/.......' }) ``` 在浏览器端,你可以使用 [`