mirror of
https://github.com/LibreTranslate/LibreTranslate.git
synced 2024-09-12 07:30:16 +02:00
117 lines
3.4 KiB
Markdown
117 lines
3.4 KiB
Markdown
# LibreTranslate
|
|
|
|
[Try it online!](https://libretranslate.com) | [API Docs](https://libretranslate.com/docs)
|
|
|
|
[![Publish to DockerHub](https://github.com/uav4geo/LibreTranslate/workflows/Publish%20to%20DockerHub/badge.svg)](https://hub.docker.com/r/libretranslate/libretranslate) ![Publish to GitHub Container Registry](https://github.com/uav4geo/LibreTranslate/workflows/Publish%20to%20GitHub%20Container%20Registry/badge.svg)
|
|
|
|
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](https://user-images.githubusercontent.com/1951843/102724116-32a6df00-42db-11eb-8cc0-129ab39cdfb5.png)
|
|
|
|
[Try it online!](https://libretranslate.com) | [API Docs](https://libretranslate.com/docs)
|
|
|
|
## API Examples
|
|
|
|
Request:
|
|
|
|
```javascript
|
|
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:
|
|
|
|
```javascript
|
|
{
|
|
"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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
docker build -t libretranslate .
|
|
```
|
|
|
|
Run the built image:
|
|
|
|
```bash
|
|
docker run -it -p 5000:5000 libretranslate [args]
|
|
```
|
|
|
|
Or build and run using `docker-compose`:
|
|
|
|
```bash
|
|
docker-compose up -d --build
|
|
```
|
|
|
|
> Feel free to change the [`docker-compose.yml`](https://github.com/uav4geo/LibreTranslate/blob/main/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` |
|
|
|
|
|
|
## Roadmap
|
|
|
|
Help us by opening a pull request!
|
|
|
|
- [x] A docker image (thanks [@vemonet](https://github.com/vemonet) !)
|
|
- [ ] Auto-detect input language
|
|
- [ ] User authentication / tokens
|
|
- [ ] Language bindings for every computer language
|
|
|
|
## Credits
|
|
|
|
This work is largely possible thanks to [Argos Translate](https://github.com/argosopentech/argos-translate), which powers the translation engine.
|
|
|
|
## License
|
|
|
|
[GNU Affero General Public License v3](https://www.gnu.org/licenses/agpl-3.0.en.html)
|