# google-translate-api
[![Actions Status](https://github.com/vitalets/google-translate-api/workflows/autotests/badge.svg)](https://github.com/vitalets/google-translate-api/actions)
[![NPM version](https://img.shields.io/npm/v/@vitalets/google-translate-api.svg)](https://www.npmjs.com/package/@vitalets/google-translate-api)
[![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/sindresorhus/xo)
[![Coverage Status](https://coveralls.io/repos/github/vitalets/google-translate-api/badge.svg?branch=master)](https://coveralls.io/github/vitalets/google-translate-api?branch=master)
A **free** and **unlimited** API for Google Translate :dollar: :no_entry_sign: for Node.js.
## Features
- Auto language detection
- Spelling correction
- Language correction
- Fast and reliable – it uses the same servers that [translate.google.com](https://translate.google.com) uses
## Why this fork?
This fork of original [matheuss/google-translate-api](https://github.com/matheuss/google-translate-api) contains several improvements:
- New option `client="t|gtx"`. Setting `client="gtx"` seems to work even with outdated token, see [this discussion](https://github.com/matheuss/google-translate-api/issues/79#issuecomment-425679193) for details
- Fixed extraction of TKK ceed from current `https://translate.google.com` sources (via [@vitalets/google-translate-token](https://github.com/vitalets/google-translate-token))
- Removed unsecure `unsafe-eval` dependency (See [#2](https://github.com/vitalets/google-translate-api/pull/2))
- Added [daily CI tests](https://travis-ci.org/vitalets/google-translate-api/builds) to get notified if Google API changes
- Added support for custom `tld` (especially to support `translate.google.cn`, see [#7](https://github.com/vitalets/google-translate-api/pull/7))
- Added support for outputting pronunciation (see [#17](https://github.com/vitalets/google-translate-api/pull/17))
- Added support for custom [got](https://github.com/sindresorhus/got) options. It allows to use proxy and bypass request limits (see [#25](https://github.com/vitalets/google-translate-api/pull/25))
- Added support for language extensions from outside of the API (see [#18](https://github.com/vitalets/google-translate-api/pull/18))
- Added TypeScript definitions (see [#50](https://github.com/vitalets/google-translate-api/pull/50), thanks to [@olavoparno](https://github.com/olavoparno))
- Migrated to Google's latest batch-style RPC API (see [#60](https://github.com/vitalets/google-translate-api/pull/60), thanks to [@vkedwardli](https://github.com/vkedwardli))
## Install
```
npm install @vitalets/google-translate-api
```
## Usage
From automatic language detection to English:
```js
const translate = require('@vitalets/google-translate-api');
translate('Ik spreek Engels', {to: 'en'}).then(res => {
console.log(res.text);
//=> I speak English
console.log(res.from.language.iso);
//=> nl
}).catch(err => {
console.error(err);
});
```
From English to Dutch with a typo:
```js
translate('I spea Dutch!', {from: 'en', to: 'nl'}).then(res => {
console.log(res.text);
//=> Ik spreek Nederlands!
console.log(res.from.text.autoCorrected);
//=> true
console.log(res.from.text.value);
//=> I [speak] Dutch!
console.log(res.from.text.didYouMean);
//=> false
}).catch(err => {
console.error(err);
});
```
Sometimes, the API will not use the auto corrected text in the translation:
```js
translate('I spea Dutch!', {from: 'en', to: 'nl'}).then(res => {
console.log(res);
console.log(res.text);
//=> Ik spea Nederlands!
console.log(res.from.text.autoCorrected);
//=> false
console.log(res.from.text.value);
//=> I [speak] Dutch!
console.log(res.from.text.didYouMean);
//=> true
}).catch(err => {
console.error(err);
});
```
You can also add languages in the code and use them in the translation:
``` js
translate = require('google-translate-api');
translate.languages['sr-Latn'] = 'Serbian Latin';
translate('translator', {to: 'sr-Latn'}).then(res => ...);
```
## Proxy
Google Translate has request limits. If too many requests are made, you can either end up with a 429 or a 503 error.
You can use **proxy** to bypass them:
```js
const tunnel = require('tunnel');
translate('Ik spreek Engels', {to: 'en'}, {
agent: tunnel.httpsOverHttp({
proxy: {
host: 'whateverhost',
proxyAuth: 'user:pass',
port: '8080',
headers: {
'User-Agent': 'Node'
}
}
}
)}).then(res => {
// do something
}).catch(err => {
console.error(err);
});
```
## Does it work from web page context?
No. `https://translate.google.com` does not provide [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) http headers allowing access from other domains.
## API
### translate(text, [options], [gotOptions])
#### text
Type: `string`
The text to be translated
#### options
Type: `object`
##### from
Type: `string` Default: `auto`
The `text` language. Must be `auto` or one of the codes/names (not case sensitive) contained in [languages.js](https://github.com/vitalets/google-translate-api/blob/master/languages.js)
##### to
Type: `string` Default: `en`
The language in which the text should be translated. Must be one of the codes/names (case sensitive!) contained in [languages.js](https://github.com/vitalets/google-translate-api/blob/master/languages.js).
##### raw
Type: `boolean` Default: `false`
If `true`, the returned object will have a `raw` property with the raw response (`string`) from Google Translate.
##### client
Type: `string` Default: `"t"`
Query parameter `client` used in API calls. Can be `t|gtx`.
##### tld
Type: `string` Default: `"com"`
TLD for Google translate host to be used in API calls: `https://translate.google.{tld}`.
#### gotOptions
Type: `object`
The got options: https://github.com/sindresorhus/got#options
### Returns an `object`:
- `text` *(string)* – The translated text.
- `from` *(object)*
- `language` *(object)*
- `didYouMean` *(boolean)* - `true` if the API suggest a correction in the source language
- `iso` *(string)* - The [code of the language](https://github.com/vitalets/google-translate-api/blob/master/languages.js) that the API has recognized in the `text`
- `text` *(object)*
- `autoCorrected` *(boolean)* – `true` if the API has auto corrected the `text`
- `value` *(string)* – The auto corrected `text` or the `text` with suggested corrections
- `didYouMean` *(boolean)* – `true` if the API has suggested corrections to the `text`
- `raw` *(string)* - If `options.raw` is true, the raw response from Google Translate servers. Otherwise, `''`.
Note that `res.from.text` will only be returned if `from.text.autoCorrected` or `from.text.didYouMean` equals to `true`. In this case, it will have the corrections delimited with brackets (`[ ]`):
```js
translate('I spea Dutch').then(res => {
console.log(res.from.text.value);
//=> I [speak] Dutch
}).catch(err => {
console.error(err);
});
```
Otherwise, it will be an empty `string` (`''`).
## License
MIT © [Matheus Fernandes](http://matheus.top), forked and maintained by [Vitaliy Potapov](https://github.com/vitalets).
没有合适的资源?快使用搜索试试~ 我知道了~
google-translate-api:Google Translate的免费无限制API
共11个文件
js:3个
json:2个
yml:1个
1星 需积分: 50 16 下载量 94 浏览量
2021-02-01
15:28:28
上传
评论
收藏 139KB ZIP 举报
温馨提示
google-translate-api Google Translate的免费和无限API :dollar_banknote: :prohibited: 用于Node.js。 产品特点 自动语言检测 拼写校正 语言校正 快速可靠–它使用的服务器与使用的服务器相同 为什么要用这个叉子? 原始此分支包含多项改进: 新选项client="t|gtx" 。 设置client="gtx"似乎也可以使用过期的令牌,有关详细信息,请参见此 修复了从当前https://translate.google.com来源提取TKK (通过 ) 删除了不安全的unsafe-eval依赖项(请参阅 ) 添加了以在Google API更改时获得通知 添加了对自定义tld ( tld支持(尤其是支持translate.google.cn ,请参阅 ) 添加了对输出发音的支持(请参阅 ) 新增支持自定义选项。 它允许使用代理和绕过请求限制(请参阅 ) 添加了对来自API外部的语言扩展的支持(请参阅 ) 添加了TypeScript定义(请参阅 ,感谢 ) 迁移到Google的最新批处理样式RPC
资源详情
资源评论
资源推荐
收起资源包目录
google-translate-api-master.zip (11个子文件)
google-translate-api-master
index.js 4KB
test.js 6KB
package.json 1KB
.github
workflows
autotests.yml 800B
languages.js 4KB
LICENSE 1KB
package-lock.json 548KB
index.d.ts 3KB
.gitignore 584B
README.md 7KB
.editorconfig 191B
共 11 条
- 1
仰光的瑞哥
- 粉丝: 18
- 资源: 4623
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1