microsoft-translate-api
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

Microsoft Translate API

NPM version Auto Test 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.

Package Sidebar

Install

npm i microsoft-translate-api

Weekly Downloads

51

Version

1.0.0

License

MIT

Unpacked Size

30.4 kB

Total Files

8

Last publish

Collaborators

  • chewawi