.github/workflows | ||
app | ||
models@3d5ca0a2c3 | ||
.gitignore | ||
.gitmodules | ||
docker-compose.yml | ||
Dockerfile | ||
install_models.py | ||
LICENSE | ||
main.py | ||
README.md | ||
requirements.txt |
LibreTranslate
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.
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 extradocker-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.