Skip to content

A library for free and not only using various translation APIs, which supports working with JavaScript, TypeScript, and also has built-in separated types for Typebox.

License

Notifications You must be signed in to change notification settings

FOSWLY/translate

Repository files navigation

translate

GitHub Actions npm ru en

A library for free and not only using various translation APIs, which supports working with JavaScript, TypeScript, and also has built-in separated types for Typebox.

Installation

Installation via Bun:

bun add @toil/translate

Installation via NPM:

npm install @toil/translate

Getting started

To start working with the API, you need to create a Translation Client. This can be done using the code provided below.

const client = new TranslationClient({
  service: TranslationService.yandexbrowser,
});

const translatedResult = await client.translate(
  "The quick brown fox jumps over the lazy dog",
);

const detectResult = await client.detect(
  "The quick brown fox jumps over the lazy dog",
);

const langs = await client.getLangs();

You can see more code examples here

Available services

Status Service Functions Limits
YandexBrowser Translate
Detect
GetLangs
10k chars/req
10k chars/req
YandexCloud Translate
Detect
GetLangs
2k chars/req
1k chars/req
YandexTranslate Translate
Detect
GetLangs
10k chars/req
10k chars/req
YandexGPT*¹ Translate
Detect
GetLangs
10k chars/req
10k chars/req
MSEdge Translate
Detect
GetLangs
50k chars/req
50k chars/req
Bing Translate
Detect
GetLangs
1k chars/req
1k chars/req
LibreTranslate*² Translate
Detect
GetLangs
2k chars/req
2k chars/req
OperaAria*³ Translate
Detect
GetLangs
1k chars/req
6k chars/req

*¹ - translation using YandexGPT only works for the en-ru pair, For all other cases, a translation similar to YandexTranslate is used

*² - by default, obtaining a secret key is disabled. Please install apiKey or enable allowUnsafeEval when creating the client. With allowUnsafeEval some requests may result in an error, probably due to some hard limits on the service side

*³ - translation using OperaAria prohibits the translation of certain forbidden topics and also has geo-restrictions for some countries. The translation is performed using a neural network and may return unexpected results

Build

To build, you must have:

Don't forget to install the dependencies:

bun install

Start building:

bun build:all

Tests

The library has minimal test coverage to check it's performance.

Run the tests:

bun test

About

A library for free and not only using various translation APIs, which supports working with JavaScript, TypeScript, and also has built-in separated types for Typebox.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •