搬瓦工部署 Weblate 翻译协作平台完整教程
Weblate 是一款专业的开源翻译协作平台,被许多知名开源项目(如 phpMyAdmin、LibreOffice 等)用于管理多语言翻译。它支持与 Git/SVN 仓库集成、翻译记忆库、术语表、机器翻译建议、质量检查和多种翻译文件格式。本文将介绍如何在搬瓦工 VPS 上通过 Docker 部署 Weblate。
一、准备工作
1.1 系统要求
- 操作系统:Ubuntu 20.04+(推荐 Ubuntu 22.04)。
- 内存:至少 2GB,推荐 4GB。
- 磁盘空间:至少 10GB。
- 域名:需要准备域名。
- Docker:需提前安装,参考 Docker 安装教程。
1.2 创建目录
mkdir -p /opt/weblate/data
cd /opt/weblate
二、Docker Compose 部署
2.1 创建配置文件
cat > docker-compose.yml <<'EOF'
version: '3.8'
services:
weblate:
image: weblate/weblate:latest
container_name: weblate
restart: unless-stopped
depends_on:
- database
- cache
ports:
- "8080:8080"
environment:
WEBLATE_DEBUG: 0
WEBLATE_LOGLEVEL: INFO
WEBLATE_SITE_TITLE: 翻译平台
WEBLATE_SITE_DOMAIN: translate.example.com
WEBLATE_ADMIN_EMAIL: admin@example.com
WEBLATE_ADMIN_NAME: Admin
WEBLATE_ADMIN_PASSWORD: your_admin_password
WEBLATE_SERVER_EMAIL: noreply@example.com
WEBLATE_DEFAULT_FROM_EMAIL: noreply@example.com
WEBLATE_ALLOWED_HOSTS: "*"
WEBLATE_REGISTRATION_OPEN: 1
POSTGRES_PASSWORD: weblate_db_pass
POSTGRES_USER: weblate
POSTGRES_DATABASE: weblate
POSTGRES_HOST: database
POSTGRES_PORT: 5432
REDIS_HOST: cache
REDIS_PORT: 6379
WEBLATE_EMAIL_HOST: smtp.example.com
WEBLATE_EMAIL_PORT: 587
WEBLATE_EMAIL_HOST_USER: noreply@example.com
WEBLATE_EMAIL_HOST_PASSWORD: smtp_password
volumes:
- ./data:/app/data
database:
image: postgres:16-alpine
container_name: weblate-db
restart: unless-stopped
environment:
POSTGRES_USER: weblate
POSTGRES_PASSWORD: weblate_db_pass
POSTGRES_DB: weblate
volumes:
- ./postgres:/var/lib/postgresql/data
cache:
image: redis:7-alpine
container_name: weblate-cache
restart: unless-stopped
volumes:
- ./redis:/data
EOF
2.2 启动服务
docker compose up -d
首次启动需要初始化数据库和创建管理员账户,可能需要 3-5 分钟。查看日志:
docker compose logs -f weblate
2.3 访问界面
浏览器访问 http://你的服务器IP:8080,使用配置中设置的管理员邮箱和密码登录。
三、添加翻译项目
3.1 创建项目
登录管理后台后,点击「添加项目」,设置项目名称和相关信息。项目是最顶层的组织单位,通常对应一个软件产品。
3.2 添加组件
在项目中添加组件(Component),每个组件对应一个翻译文件。需要配置:
- 版本控制:Git 仓库地址、分支名称。
- 文件掩码:翻译文件的路径模式,如
locale/*/messages.po。 - 源语言:原始语言(通常是英语)。
- 文件格式:PO、JSON、XLIFF、Properties 等。
3.3 支持的翻译格式
Weblate 支持广泛的翻译文件格式:
- GNU gettext(PO/POT)
- JSON(包括 i18next、WebExtension 等变体)
- XLIFF(1.2 和 2.0)
- Android 资源文件(XML)
- iOS Strings
- Java Properties
- YAML
- PHP 数组
- Qt Linguist(TS)
四、翻译工作流
4.1 翻译界面
Weblate 提供直观的翻译编辑器,包含源文本、翻译输入框、翻译建议、翻译记忆和术语提示。翻译者可以逐条翻译字符串,系统会自动保存进度。
4.2 翻译记忆库
Weblate 自动建立翻译记忆库(Translation Memory),当遇到相似或相同的源文本时,会自动推荐已有的翻译。这大大提高了翻译效率和一致性。
4.3 术语表
可以为每个项目创建术语表,确保关键术语的翻译一致。翻译编辑器中会自动高亮术语表中的词汇。
4.4 质量检查
Weblate 内置多种质量检查规则,自动检测常见翻译错误,包括格式字符串不匹配、标点符号问题、空翻译和长度超限等。
五、Git 集成
Weblate 与 Git 仓库紧密集成:
- 自动从 Git 仓库拉取最新的源文本。
- 翻译完成后自动提交并推送到 Git 仓库。
- 支持 GitHub/GitLab Pull Request/Merge Request 工作流。
- 可配置 Webhook,在代码更新时自动触发 Weblate 同步。
六、Nginx 反向代理
server {
listen 443 ssl http2;
server_name translate.example.com;
ssl_certificate /etc/letsencrypt/live/translate.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/translate.example.com/privkey.pem;
client_max_body_size 100M;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
七、维护与更新
7.1 更新 Weblate
cd /opt/weblate
docker compose pull
docker compose down
docker compose up -d
7.2 备份数据
# 备份数据库
docker exec weblate-db pg_dump -U weblate weblate > weblate-db.sql
# 备份 Weblate 数据
tar -czf weblate-data.tar.gz -C /opt/weblate data/
总结
Weblate 是管理软件翻译和本地化的专业工具,在搬瓦工 VPS 上部署后可以为开源项目或商业产品提供完整的翻译协作平台。其 Git 集成和翻译记忆库功能大大提升了翻译效率。选购搬瓦工 VPS 请参考 全部方案,建议选择至少 2GB 内存的方案。购买时使用优惠码 NODESEEK2026 可享受 6.77% 的循环折扣。如遇问题,可前往 搬瓦工官网 提交工单。