Skip to content

Chewawi/microsoft-translate-api

Repository files navigation

Microsoft Translate API

NPM version Auto Test Build NPM Downloads License

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.

About

A simple, powerful and free API for Microsoft Translator for Node.js

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published