LibreTranslate/README.md
2021-01-10 09:15:55 +01:00

3.6 KiB

LibreTranslate

Try it online! | API Docs

Publish to DockerHub Publish to GitHub Container Registry

Free and Open Source Machine Translation API, entirely self-hosted. Unlike other APIs, it doesn't rely on proprietary providers such as Google or Azure to perform translations.

image

Try it online! | API Docs

API Examples

Request:

const res = await fetch("https://libretranslate.com/translate", {
	method: "POST",
	body: JSON.stringify({
		q: "Hello!",
		source: "en",
		target: "es"
	}),
	headers: {
		"Content-Type": "application/json"
	});

console.log(await res.json());

Response:

{
    "translatedText": "¡Hola!"
}

Build and Run

You can run your own API server in just a few lines of setup!

Make sure you have installed Python (3.8 or higher), then simply issue:

git clone https://github.com/uav4geo/LibreTranslate --recurse-submodules
cd LibreTranslate
pip install -r requirements.txt
python main.py [args]

Then open a web browser to http://localhost:5000

Run with Docker

Simply run:

docker run -ti --rm -p 5000:5000 libretranslate/libretranslate

Then open a web browser to http://localhost:5000

Build with Docker

Make sure you cloned the models submodule before building the Docker image:

docker build -t libretranslate .

Run the built image:

docker run -it -p 5000:5000 libretranslate [args]

Or build and run using docker-compose:

docker-compose up -d --build

Feel free to change the docker-compose.yml file to adapt it to your deployment needs, or use an extra docker-compose.prod.yml file for your deployment configuration.

Arguments

Argument Description Default
--host Set host to bind the server to 127.0.0.1
--port Set port to bind the server to 5000
--char-limit Set character limit No limit
--req-limit Set maximum number of requests per minute per client No limit
--ga-id Enable Google Analytics on the API client page by providing an ID No tracking
--debug Enable debug environment False
--ssl Whether to enable SSL False
--frontend-language-source Set frontend default language - source en
--frontend-language-target Set frontend default language - target es

Roadmap

Help us by opening a pull request!

  • A docker image (thanks @vemonet !)
  • Auto-detect input language
  • User authentication / tokens
  • Language bindings for every computer language

Credits

This work is largely possible thanks to Argos Translate, which powers the translation engine.

License

GNU Affero General Public License v3