一个自托管的翻译平台,无需依赖外部服务,离线版的Google翻译,Star 7.8K!
在我们日常工作或者生活中,很多时候都需要用到翻译软件。相信很多同学都安装过浏览器翻译插件,类似这样:

或者直接使用在线Google翻译或者其他在线翻译服务:

又或者在手机或者电脑里面安装桌面版翻译软件:

很明显看得出来,以上所有的翻译都是采用在线联网的方式进行。但是有些时候,为了保证隐私和数据安全。我们需要在离线的环境下进行翻译,这就涉及到离线翻译。不同于以往,现在离线翻译方案现在大概有两种类型:
- 基于本地大模型的翻译方案:部署本地大模型,然后基于大模型的能力,提供翻译功能。
- 基于独立部署离线翻译平台:独立的翻译服务,提供离线翻译能力。
这两种方案的可行性都比较高,但是如果我们只是需要翻译的能力,基于大模型的方案就有点“大材小用”了,而且基于大模型的方案对资源的要求也比较高。整体来说技术方案没有问题,但是性价比不高。
所以,今天给大家介绍的是一个可离线自托管的翻译平台-LibreTranslate
LibreTranslate 介绍
一个开源的机器翻译平台,允许用户自托管部署,同时提供API能力,方便集成。支持离线翻译能力,不依赖互联网连接,翻译服务能够在网络受限或无网络的环境中使用。

🏠 项目信息
#Github地址
https://github.com/LibreTranslate/LibreTranslate
🚀功能特性
- 自托管能力:可以在自有服务器上部署LibreTranslate,无需依赖第三方服务。
- 支持多种翻译模型:LibreTranslate支持多种机器翻译模型,包括但不限于Marian NMT、OpenNMT、Hugging Face Transformers等。
- 多语言支持:能够翻译多种语言,覆盖广泛的语言模型。
- API接口:提供REST API接口,方便与其他应用程序集成。
- 命令行界面:提供命令行工具,方便用户直接使用LibreTranslate进行翻译。
- Web界面:可选的Web界面,允许用户通过浏览器进行使用翻译。
- 轻量级:LibreTranslate设计轻量,易于部署和维护。
- 可定制性:用户可以根据自己的需求定制翻译模型和配置。
- 隐私友好:由于翻译是在本地进行,用户的翻译数据不会发送到外部服务器。
- 插件系统:允许通过插件扩展功能,例如增加新的语言或者翻译模型。
- 多平台支持:可以在多种操作系统上运行,包括但不限于Linux、macOS和Windows。
🛠在线Demo
虽然LibreTranslate支持离线部署和使用,但是项目也提供了一个在线环境,方便大家使用和体验。
#在线demo地址
https://libretranslate.com/LibreTranslate 部署
- Python部署
#Python环境3.8或更高
pip install libretranslate
libretranslate [args]- 一键脚本部署
#Ubuntu 20.04操作系统
bash <(curl -sSL https://github.com/argosopentech/LibreTranslate-init)- Docker部署
#具备Docker环境
#git clone
git clone https://github.com/LibreTranslate/LibreTranslate.git
cd LibreTranslate
#Linux系统
./run.sh [args]
#此处需要下载语言模型(可以在联网的环境中下载后,导入完全离线环境)
Checking for docker... found
Updating language models
Found 88 models
Downloading Albanian → English (1.9) ...
Downloading Arabic → English (1.0) ...
Downloading Azerbaijani → English (1.5) ...
Downloading Bengali → English (1.9) ...
Downloading Bulgarian → English (1.9) ...
Downloading Catalan → English (1.7) ...
Downloading Chinese (traditional) → English (1.9) ...
Downloading Chinese → English (1.9) ...
.........................................
Loaded support for 44 languages (88 models total)!
Running on http://*:5000
#Windows系统
./run.sh [args]- Kubernetes helm chart部署
helm repo add libretranslate https://libretranslate.github.io/helm-chart/
helm repo update
helm search repo libretranslate
helm install libretranslate libretranslate/libretranslate --namespace libretranslate --create-namespace部署完成后,通过 http://localhost:5000 访问界面。
LibreTranslate 使用
- Web界面,可以切换不同的界面风格

- API使用
指定语言翻译
#请求
const res = await fetch("http://xxx.xxx.xxx.xxx:5000", {
method: "POST",
body: JSON.stringify({
q: "Hello!",
source: "en",
target: "es"
}),
headers: { "Content-Type": "application/json" }
});
console.log(await res.json());
#翻译
{
"translatedText": "¡Hola!"
}自动检测语言翻译
#请求
const res = await fetch("http://xxx.xxx.xxx.xxx:5000", {
method: "POST",
body: JSON.stringify({
q: "你好!",
source: "auto",
target: "en"
}),
headers: { "Content-Type": "application/json" }
});
console.log(await res.json());
#翻译
{
"detectedLanguage": {
"confidence": 83,
"language": "it"
},
"translatedText": "Hello!"
}详细的API说明地址如下
#在线API文档
http://hostip:5000/docs/最后
综上所述,LibreTranslate 能够提供灵活且强大的翻译服务,尤其适合需要数据隐私保护、独立运行环境或离线环境的场景,并且提供API方便集成。如果你也有这方面的需求,不妨试试吧!