0.0.6 • Published 22 days ago

microsoft-translate-api v0.0.6

Weekly downloads
-
License
MIT
Repository
github
Last release
22 days ago

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);
});
[
  {
    "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);
});
[
  {
    "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);
});
[
  {
    "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.

0.0.6

22 days ago

0.0.5

22 days ago

0.0.4

22 days ago

0.0.3

24 days ago

0.0.2

24 days ago

0.0.1

24 days ago