Microsoft Translate API

A stable and powerful zero-dependency free translator for Microsoft Translator designed for Node.js.
Install
NPM
npm install microsoft-translate-api
Bun
bun add microsoft-translate-api
Basic Usage
Translate from Auto-Detected Language to Another Language
const { translate } = require('microsoft-translate-api')
translate('你好,很高兴认识你!', null, 'en').then(res => {
console.log(res);
}).catch(err => {
console.error(err);
});
Translation result
[
{
"detectedLanguage": {
"language": "zh-Hans",
"score": 1
},
"translations": [
{
"text": "Hello, nice to meet you!",
"to": "en"
}
]
}
]
Translate from Auto-Detected Language to Multiple Languages
const { translate } = require('microsoft-translate-api')
translate('你好,很高兴认识你!', null, ['en', 'ja']).then(res => {
console.log(res);
}).catch(err => {
console.error(err);
});
Translation result
[
{
"detectedLanguage": {
"language": "zh-Hans",
"score": 1
},
"translations": [
{
"text": "Hello, nice to meet you!",
"to": "en"
},
{
"text": "こんにちは、はじめまして!",
"to": "ja"
}
]
}
]
Translate HTML text
const { translate } = require('microsoft-translate-api')
const htmlText = `
<div class="notranslate">This will not be translated.</div>
<div>This will be translated.</div>
`;
translate(htmlText, null, 'zh-Hans', {
translateOptions: {
// Explicitly set textType as `html`. Defaults to `plain`.
textType: 'html'
}
}).then(res => {
console.log(res);
}).catch(err => {
console.error(err);
});
Translation result
[
{
"detectedLanguage": {
"language": "en",
"score": 1
},
"translations": [
{
"text": "<div class=\"notranslate\">This will not be translated.</div>\n<div>这将被翻译。</div>",
"to": "zh-Hans"
}
]
}
]
Optional Translation Options
Reference
interface TranslateOptions {
translateOptions?: Record<string, object>;
authenticationHeaders?: Record<string, string>;
userAgent?: string;
fetchOptions?: RequestInit;
}
Full Translation Results
Reference
interface TranslationResult {
translations: {
text: string;
to: string;
sentLen?: {
srcSentLen: number[];
transSentLen: number[];
};
transliteration?: {
script: string;
text: string;
};
alignment?: object;
}[];
detectedLanguage?: {
language: string;
score: number;
};
}
Supported Languages
Refer to lang.json.
Service Limits
https://learn.microsoft.com/azure/ai-services/translator/service-limits#character-and-array-limits-per-request
[!NOTE]
Note that the correction service is not available.
Use Paid Service With Your Private Keys
const { translate } = require('microsoft-translate-api')
translate('你好,很高兴认识你!', null, 'en', {
authenticationHeaders: {
// Use private subscription key
'Ocp-Apim-Subscription-Key': 'YOUR KEY',
// Or use a JWT token
'Authorization': 'YOUR TOKEN'
}
}).then(res => {
console.log(res);
}).catch(err => {
console.error(err);
});
See also https://learn.microsoft.com/azure/ai-services/translator/reference/v3-0-reference#authentication
[!NOTE]
Note that using your private keys, the translator will skip to fetch the free authorization and you will have to check if the authorization is expired by yourself.
Credits
bing-translate-api - This package literally would never exist without this.