New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@vitalets/google-translate-api

Package Overview
Dependencies
Maintainers
1
Versions
17
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@vitalets/google-translate-api - npm Package Compare versions

Comparing version 8.0.0 to 9.0.0-0

dist/cjs/index.d.ts

80

package.json
{
"name": "@vitalets/google-translate-api",
"version": "8.0.0",
"description": "A free and unlimited API for Google Translate",
"main": "index.js",
"version": "9.0.0-0",
"type": "module",
"main": "./dist/cjs/index.js",
"module": "./dist/esm/index.js",
"files": [
"src",
"dist",
"README.md"
],
"scripts": {
"lint": "xo",
"test": "nyc ava",
"coverage": "nyc report --reporter=text-lcov | coveralls && nyc report --reporter=text-lcov > coverage.lcov && codecov",
"release": "npm run lint && npm test && np --yolo --no-release-draft"
"prepare": "git config core.hooksPath ./.hooks",
"lint": "eslint src test --ext .ts",
"tsc": "tsc --noEmit",
"check": "ts-node-esm check.ts",
"test": "mocha -n loader=ts-node/esm test/setup.ts test/specs/*.ts",
"toc": "markdown-toc README.md -i",
"build:esm": "rm -rf dist/esm && tsc -p tsconfig.build.json",
"build:cjs": "rm -rf dist/cjs && tsc -p tsconfig.build.cjs.json && echo '{\"type\":\"commonjs\"}' > dist/cjs/package.json",
"build": "npm run build:esm && npm run build:cjs",
"release": "npm run lint && npm t && npm run build && np --yolo --no-release-draft"
},
"husky": {
"hooks": {
"pre-commit": "npm run lint",
"pre-push": "npm run lint && npm test"
}
"dependencies": {
"@types/http-errors": "^1.8.2",
"http-errors": "^2.0.0",
"node-fetch": "^2.6.7"
},
"devDependencies": {
"@types/mocha": "^10.0.0",
"@types/node": "^18.8.3",
"@types/node-fetch": "^2.6.2",
"@typescript-eslint/eslint-plugin": "^5.39.0",
"@typescript-eslint/parser": "^5.39.0",
"eslint": "^8.25.0",
"eslint-plugin-mocha": "^10.1.0",
"http-proxy-agent": "^5.0.0",
"markdown-toc": "^1.2.0",
"mocha": "^10.1.0",
"np": "^7.6.2",
"ts-node": "^10.9.1",
"typescript": "^4.8.4"
},
"repository": {

@@ -26,3 +53,2 @@ "type": "git",

"google",
"translate",
"api",

@@ -32,31 +58,3 @@ "free",

],
"author": {
"name": "Matheus Fernandes",
"email": "npm@matheus.top",
"url": "http://matheus.top"
},
"license": "MIT",
"bugs": {
"url": "https://github.com/vitalets/google-translate-api/issues"
},
"homepage": "https://github.com/vitalets/google-translate-api#readme",
"dependencies": {
"configstore": "^5.0.1",
"got": "^9.6.0"
},
"devDependencies": {
"ava": "^3.15.0",
"codecov": "^3.8.1",
"coveralls": "^2.11.11",
"husky": "^3.0.4",
"np": "^7.6.0",
"nyc": "^15.1.0",
"xo": "^0.16.0"
},
"xo": {
"space": 4,
"parserOptions": {
"ecmaScript": 7
}
}
"license": "MIT"
}
# 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.
A **free** and **unlimited** API for Google Translate for Node.js.
## Features
**In version 9+ library was fully rewritten. For legacy documentation please see [legacy branch](https://github.com/vitalets/google-translate-api/tree/legacy).**
- Auto language detection
- Spelling correction
- Language correction
- Fast and reliable – it uses the same servers that [translate.google.com](https://translate.google.com) uses
## Contents
## Why this fork?
This fork of original [matheuss/google-translate-api](https://github.com/matheuss/google-translate-api) contains several improvements:
<!-- toc -->
- 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))
- [Features](#features)
- [Installation](#installation)
- [Usage](#usage)
* [Usage with proxy](#usage-with-proxy)
* [Usage in react-native](#usage-in-react-native)
* [Usage in browser](#usage-in-browser)
- [API](#api)
- [Related projects](#related-projects)
- [License](#license)
## Install
<!-- tocstop -->
## Features
* auto language detection
* all [Google Translate languages](https://cloud.google.com/translate/docs/languages) supported
* react-native supported
* transliteration
## Installation
```

@@ -37,161 +38,40 @@ npm install @vitalets/google-translate-api

## Usage
```ts
import { translate } from '@vitalets/google-translate-api';
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);
});
const { text } = await translate('Привет, мир! Как дела?', { to: 'en' });
// text => 'Hello World! How are you?'
```
> Please note that maximum text length for single translation call is **5000** characters.
> In case of longer text you should split it on chunks, see [#20](https://github.com/vitalets/google-translate-api/issues/20).
### Usage with proxy
Google Translate has request limits. If too many requests are made, you can get a 429 error.
You can use **proxy** to bypass them:
From English to Dutch with a typo:
```ts
import { translate } from '@vitalets/google-translate-api';
import createHttpProxyAgent from 'http-proxy-agent';
```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);
const agent = createHttpProxyAgent('http://103.152.112.162:80');
const { text } = await translate('Привет, мир!', {
to: 'en',
fetchOptions: { agent }
});
```
Sometimes, the API will not use the auto corrected text in the translation:
### Usage in react-native
tbd
```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);
});
```
### Usage in browser
This library **does not work in browser** because `translate.google.com` does not provide [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) headers allowing access from other domains.
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
tbd
### translate(text, [options], [gotOptions])
## Related projects
* [matheuss/google-translate-api](https://github.com/matheuss/google-translate-api) - original repo
* [Translateer](https://github.com/Songkeys/Translateer) - uses Puppeteer to access Google Translate API
* [hua1995116/google-translate-open-api](https://github.com/hua1995116/google-translate-open-api)
* [google-translate-api-x](https://github.com/AidanWelch/google-translate-api)
#### 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).
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc