
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
google-translate-api-extend
Advanced tools
A free and unlimited API for Google Translate :dollar: :no_entry_sign: for Node.js.
This fork of original matheuss/google-translate-api contains several improvements:
client="t|gtx". Setting client="gtx" seems to work even with outdated token, see this discussion for detailshttps://translate.google.com sources (via @vitalets/google-translate-token)unsafe-eval dependency (See #2)tld (especially to support translate.google.cn, see #7)npm install @vitalets/google-translate-api
From automatic language detection to English:
const translate = require('@vitalets/google-translate-api');
const res = await translate('Ik spreek Engels', {to: 'en'});
console.log(res.text); //=> I speak English
console.log(res.from.language.iso); //=> nl
If server returns Response code 403 (Forbidden) try set option client=gtx:
const res = await translate('Ik spreek Engels', { to: 'en', client: 'gtx' }).then(res => { ... });
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.
From English to Dutch with a typo (autoCorrect):
const res = await translate('I spea Dutch!', { from: 'en', to: 'nl', autoCorrect: true });
console.log(res.from.text.didYouMean); // => true
console.log(res.from.text.value); // => 'I [speak] Dutch!'
const correctedText = res.from.text.value.replace(/\[([a-z]+)\]/ig, '$1'); // => 'I speak Dutch!'
const finalRes = await translate(correctedText, { from: 'en', to: 'nl' });
console.log(finalRes.text); // => 'Ik spreek Nederlands!'
You can also add languages in the code and use them in the translation:
translate = require('google-translate-api');
translate.languages['sr-Latn'] = 'Serbian Latin';
translate('translator', {to: 'sr-Latn'}).then(res => ...);
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:
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
});
No. https://translate.google.com does not provide CORS http headers allowing access from other domains.
Type: string
The text to be translated
Type: object
Type: string Default: auto
The text language. Must be auto or one of the codes/names (not case sensitive) contained in languages.js
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.
Type: boolean Default: false
If true, the returned object will have a raw property with the raw response (string) from Google Translate.
Type: string Default: "t"
Query parameter client used in API calls. Can be t|gtx.
Type: string Default: "com"
TLD for Google translate host to be used in API calls: https://translate.google.{tld}.
Type: object
The got options: https://github.com/sindresorhus/got#options
object:text (string) – The translated text.from (object)
language (object)
didYouMean (boolean) - true if the API suggest a correction in the source languageiso (string) - The code of the language that the API has recognized in the texttext (object)
autoCorrected (boolean) – true if the API has auto corrected the textvalue (string) – The auto corrected text or the text with suggested correctionsdidYouMean (boolean) – true if the API has suggested corrections to the textraw (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 ([ ]):
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 ('').
MIT © Matheus Fernandes, forked and maintained by Vitaliy Potapov.
FAQs
A free and unlimited API for Google Translate
We found that google-translate-api-extend demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.