/lingva-scraper

Google Translate scraper for Lingva Translate

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0

Lingva Scraper

Travis Build NPM Version Commits since latest release License

Google Translate scraper for Lingva Translate

Installation

Just install the package using NPM

npm i --save lingva-scraper

Or using Yarn

yarn add lingva-scraper

And import it directly using CommonJS

const { getTranslationInfo } = require("lingva-scraper");

Or with the ES6 syntax

import { getTranslationInfo } from "lingva-scraper";

The package doesn't provide a default export, but you can alternatively use the wildcard import syntax

import * as LingvaScraper from "lingva-scraper";

Usage

Main API

Translation text

getTranslationText(source: LangCode<"source">, target: LangCode<"target">, query: string): Promise<string | null>

Retrieves the translated text given a pair of languages and a query text.

import { getTranslationText } from "lingva-scraper";

const translation = await getTranslationText("auto", "es", "win");

Translation information

getTranslationInfo(source: LangCode<"source">, target: LangCode<"target">, query: string): Promise<TranslationInfo | null>

Retrieves the full translation information, optionally including the detected source, typos, pronunciation representations, definitions, examples, similar words or extra translations.

import { getTranslationInfo } from "lingva-scraper";

const info = await getTranslationInfo("zh", "en", "早安");

Text to speech

getAudio(lang: LangCode<"target">, text: string, isSlow?: boolean): Promise<number[] | null>

Retrieves an audio buffer in the form of a Uint8Array, and represented as a number[] in order to be serializable.

import { getAudio } from "lingva-scraper";

const audio = await getAudio("ca", "gerd");

Utilities

There are also some utility constants and functions exported in order to ease the use of the package.

  • LanguageType

An enumeration representing the two language types (source and target) and very used among the rest of utilities.

import { LanguageType } from "lingva-scraper";

LanguageType.SOURCE // "source"
LanguageType.TARGET // "target"
  • languageList

An object that includes the whole list of languages used in this package, as well as two other properties with the language list filtered by type.

import { languageList } from "lingva-scraper";

languageList.all // whole list
languageList.source // i.e. languageList[LanguageType.SOURCE]
languageList.target // i.e. languageList[LanguageType.TARGET]
  • isValidCode()

A function that checks whether a string is a valid language code, optionally differentiating it based on a certain language type.

import { isValidCode } from "lingva-scraper";

const isValidLang = isValidCode(str);
const isValidSource = isValidCode(str, LanguageType.SOURCE);
  • replaceExceptedCode()

A function that checks whether a language code is valid regarding a language type, and changes it with a suitable replacement if not.

import { replaceExceptedCode } from "lingva-scraper";

const targetLang = replaceExceptedCode(LanguageType.TARGET, lang);
  • mapGoogleCode()

A function that maps the given Lingva language code with a valid Google one, in case they're different.

import { mapGoogleCode } from "lingva-scraper";

const googleLang = mapGoogleCode(lang);
  • mapLingvaCode()

A function that maps the given Google language code with a valid Lingva one, in case they're different.

import { mapLingvaCode } from "lingva-scraper";

const lang = mapLingvaCode(googleLang);

Related projects

  • Lingva Translate - The web application for which this package was built
  • SimplyTranslate-Engines - The backend for SimplyTranslate, which helped to discover some key endpoints
  • Kainet Scraper - A YouTube Music scraper built by the same author with a similar structure

Contributors

Thanks goes to these wonderful people (emoji key):


David

💻 📖 🎨 ⚠️

This project follows the all-contributors specification. Contributions of any kind welcome!

License

Copyright © 2022 thedaviddelta & contributors.
This project is GNU GPLv3 licensed.