Recently I need to translate a lot of text from Chinese to English (I found some awesome Chinese GitHub repo and want to translate).
My first thought was Google Translate. They have good API and second-to-none translation quality. However, imagining going through their setup, I refrained 🙂
So, in search of an opensource translation solution, I found LibreTranslate and was able to setup a docker API to power my translation. The quality of the basic text translation is good so far.
If you are in need of an opensource translation API, give this project a try.
Run LibreTranslate with Docker
Running LibreTranslate with Docker is quite simple. However, there are some caveats:
- The API will not be available instantly because it needs to download the language models (you need to check the docker log to see this)
- By default, the container will start downloading all language models (that’s a lot and may take a long time). It’s best you specified the models you want
So, as I only need the English-Chinese pair, here is the command I ran:
docker run -dit -p 5000:5000 -e LT_FRONTEND_LANGUAGE_SOURCE=cn -e LT_FRONTEND_LANGUAGE_TARGET=en -e LT_LOAD_ONLY=en,zh libretranslate/libretranslate
As you can see, by setting LT_LOAD_ONLY to en and zh, the container only download two models:
Still, it takes around 5 minutes to download these two models. Imagine how long it takes to download all 56.
One side note, Chinese is zh, not cn :D.
The API is ready when you see the last line: Running on HTTP://0.0.0.0:5000
LibreTranslate API test run
Now you can send POST request to translate your text. Here, I tried to translate a Chinese message to English:
I don’t know enough Chinese to judge the quality of this translation but the English text kind of make sense :v.
I’m very grateful for LibreTranslate. It’s quite simple to set up a translation API for free. Give it a try! You can check out their project on Github here