Traduora 介绍与选型指南

Ever Traduora 开源翻译管理平台全景介绍,覆盖技术栈、功能、版本现状、同类方案选型对比与适用场景建议。

TraduoraTraduora翻译管理Vue.jsREST2026/10/27

Traduora 介绍与选型指南

一、Traduora 是什么

Ever® Traduora 是 Ever Co. LTD 旗下的开源翻译管理平台(Translation Management Platform,TMS),面向需要对产品、应用、网站进行多语言本地化(i18n / l10n)的开发团队与内容团队。平台提供 Web 管理界面 + REST API,支持 JSON、YAML、Gettext(.po)、XLIFF、Android XML 等十多种翻译格式的导入导出,自带团队协作、词条搜索、批量导入导出等核心能力。

Traduora 的定位是「开发者友好的翻译基础设施」——与面向纯翻译团队的重量级商业 TMS 不同,它强调与 CI/CD 流水线集成(通过 REST API 自动同步翻译词条)、支持多格式无缝切换、5 分钟快速部署,适合中小团队和技术驱动的本地化场景。

💡 翻译管理平台(TMS) 是一类专门管理多语言翻译流程的系统,核心能力包括:词条(term)集中管理、多语言翻译存储、导入导出、工作流审批、团队协作。市场上主要分为商业 TMS(Smartling、Transifex、POEditor)和开源 TMS(Traduora、Tolgee、Weblate、Pootle)两类。Traduora 属于后者中更偏向开发者场景的一员——它原生提供 REST API,方便与代码仓库、构建流水线对接,而非纯 Web 人工翻译工作台。

官方定位(官网 traduora.co,2026-10-27 查询):Open Translation Management Platform for teams,核心产品 AGPL-3.0 开源。

二、技术栈与架构

2.1 技术栈

层级技术版本/说明
后端语言Node.js + TypeScriptNestJS 框架
前端框架Vue.jsSPA,打包后静态资源由后端提供
ORMTypeORM支持 MySQL / PostgreSQL / SQLite(better-sqlite3)
认证JWT(Access Token)password 和 client_credentials 两种 grant type
数据库SQLite(默认)/ MySQL 5.7+ / PostgreSQL 15+生产推荐 MySQL 或 PostgreSQL
容器化Docker 镜像 everco/ever-traduora单镜像包含后端 API + 前端静态文件
许可证AGPL-3.0商业部署可联系 Ever Co. 获取企业版

⚠️ 注意:多个批次任务书曾标注 Traduora 为「Go + Vue.js」技术栈,属历史信息。本文档以 2026-10-27 GitHub 仓库 ever-co/ever-traduora 的 package.json(version 0.23.0)和源码实查为准:后端为 Node.js + TypeScript(NestJS),前端为 Vue.js,数据库默认 better-sqlite3。

2.2 架构概览

Traduora 采用经典的前后端分离但打包一体化的架构:

  • API Server(NestJS):提供 /api/v1/ 下所有 REST 端点,处理认证、项目管理、词条/翻译 CRUD、导入导出任务等业务逻辑
  • Web App(Vue.js SPA):打包后的前端静态文件由 NestJS 后端在同端口(默认 8080)下的根路径提供服务
  • 数据库:TypeORM 连接,自动迁移(TR_DB_AUTOMIGRATE=true),应用启动时自动执行 pending migrations
  • 入口脚本:单容器通过 docker-entrypoint.sh 启动 NestJS,前端已嵌入 public/ 目录
┌─────────────────────────────────────────────┐
│              everco/ever-traduora           │
│  ┌──────────────┐  ┌──────────────────────┐ │
│  │  NestJS API  │  │  Vue.js SPA (public) │ │
│  │  :8080 API   │  │  :8080 / (Web UI)    │ │
│  └──────┬───────┘  └──────────────────────┘ │
│         │                                    │
│    TypeORM                                   │
│         │                                    │
│  ┌──────▼───────┐                            │
│  │  Database    │  SQLite/MySQL/PostgreSQL   │
│  └──────────────┘                            │
└─────────────────────────────────────────────┘

2.3 API 资源模型

Traduora REST API(基础路径 /api/v1/)的核心资源层级:

User
  └─ Project
       ├─ ProjectUser (协作者,角色 Admin/Editor/Viewer)
       ├─ ProjectClient (API 客户端,client_credentials 认证)
       ├─ ProjectInvite (邀请链接)
       ├─ Term (词条,带 label 标签)
       │    └─ Translation (按 locale 分类)
       ├─ Label (词条/翻译分组标签)
       ├─ Import / Export (批量操作任务)
       ├─ Stats (项目统计)
       └─ Plan (套餐,默认 open-source)

Locale (语言注册表,/api/v1/locales)

三、功能全景

3.1 核心功能清单

功能域具体能力实现方式
项目管理创建/编辑/删除项目、项目统计、套餐管理Web + REST
团队协作项目邀请、成员角色(Admin/Editor/Viewer)、邮箱邀请Web + REST
词条管理创建/编辑/删除词条、label 标签分组、按标签筛选Web + REST
翻译管理按 locale 增删改翻译值、翻译状态追踪Web + REST
批量导入支持 JSON/YAML/PO/XLIFF/CSV/Properties/Android XML/PHP Arrays 等 11 种格式Web + REST POST /imports
批量导出同上 11 种格式,按 locale / label / term 过滤导出REST GET /exports(异步任务)
认证用户邮箱+密码、Google OAuth、API 客户端 client_credentialsREST JWT Bearer
REST API全量 CRUD + 批量导入导出 + 认证,可嵌入 CI/CDREST /api/v1/*
搜索即时全文搜索词条和翻译值Web UI(后端 Elasticsearch 独立服务可选)
邮件通知邀请邮件、密码重置可配置 SMTP
自动迁移应用启动自动执行 TypeORM migrationsTR_DB_AUTOMIGRATE=true

3.2 支持的翻译格式(11 种)

Traduora 支持以下格式的导入和导出,覆盖前端、后端、移动端常见本地化场景:

格式典型应用场景支持嵌套
JSON flatWeb 前端(i18next、react-i18next)否
JSON nestedWeb 前端(vue-i18n、react-intl)是
YAML flatRuby on Rails、Go i18n否
YAML nestedRuby on Rails config/locales是
Java PropertiesJava/Spring Boot 后端国际化否
CSVExcel 批量翻译表否
Gettext(.po)WordPress、Django、Python gettext否
XLIFF 1.2iOS/Android、CAT 工具通用格式是
Strings(Apple .strings)iOS/macOS否
Android Resources(xml)Android strings.xml否
PHP ArraysLaravel / Symfony 本地化是

3.3 API 客户端与集成

Traduora 项目内建「Project Client」概念——每项目可创建多个 API 客户端,用 client_credentials 授权类型获取 token。这意味着:

  • CI/CD 流水线可在构建时通过 API 拉取最新翻译值
  • 翻译更新可通过 Webhook 或定时任务自动推送到代码仓库
  • 不需要真实用户登录即可执行导入导出、词条 CRUD

社区还提供了非官方 CLI:github.com/iilei/traduora-cli。

四、版本与社区现状

指标数值查询日期来源
最新稳定版0.23.02026-10-27GitHub package.json(clone ever-co/ever-traduora develop 分支)
GitHub Stars~1500+2026-10-27traduora.co 官网
Docker Pulls50 万+2026-10-27traduora.co 官网
许可证AGPL-3.0—README.md
所属公司Ever Co. LTD—README.md(2021 年从个人作者 anthonynsimon 迁移)
Discord 社区discord.gg/msqRJ4w—README.md
商业支持联系 traduora@ever.co—README.md

4.1 版本时间线(重要变化)

版本主要变化
0.6.x(anthonynsimon 时期)初版,Go 后端原型验证
0.8–0.12技术栈切换为 Node.js + TypeScript + Vue.js
0.15–0.19加入 MySQL/PostgreSQL 支持、OAuth、批量导入导出
0.21–0.22Docker 化完善,支持 SQLite 快速启动
0.23.0(当前)强制 TR_SECRET 校验(拒绝公开默认值)、强制 TR_ADMIN_PASSWORD(不再有已知默认密码)、加入安全 throttle、登录失败锁定

⚠️ 重要安全变更(0.23.0):之前版本存在公开已知的默认密码(如 sTr0ngP@ssw0rd!2025),自 0.23.0 起这些密码首次登录后会被自动失效。生产部署必须显式设置 TR_SECRET(openssl rand -hex 32 生成)和 TR_ADMIN_PASSWORD。

五、选型决策:Traduora vs 同类方案

5.1 同类方案对比矩阵

维度TraduoraTolgeeWeblatePOEditor(商业)Smartling(商业)
开源协议AGPL-3.0Apache-2.0GPL-3.0商业 SaaS商业 SaaS
部署形态Docker / 源码 / K8sDocker / Helm / K8s源码 / DockerSaaSSaaS
后端技术栈Node.js + NestJSGo + ReactDjango——
支持格式数11 种14 种40+ 种30+ 种50+ 种
REST API✅ 全量✅ 全量✅ 全量✅✅
自托管✅✅✅❌❌
免费额度无限制(AGPL)无限制无限制项目数限制字符数限制
CI/CD 集成REST API + client_credentialsREST API + CLIREST API + addonsWebhookWebhook
机器翻译待规划✅ 原生✅ 可配置✅✅
社区规模~1.5k stars~3k stars~5k stars——
维护方Ever Co. LTD(商业公司)tolgee.com(商业公司)社区主导POEditor Ltd.Smartling Inc.

5.2 选型建议(按场景)

选 Traduora 的场景:

  • ✅ 中小团队(50 项目内、10 万字符串内,默认为 open-source 套餐上限,可改)
  • ✅ 开发者为主,需要 REST API 嵌入 CI/CD 流水线(client_credentials 认证特别方便)
  • ✅ 快速启动:5 分钟内 Docker Compose 拉起(SQLite 模式)
  • ✅ 技术栈偏好 Node.js 生态
  • ✅ AGPL-3.0 许可可接受

选 Tolgee 的场景:

  • ✅ 同样自托管 + 开源
  • ✅ 自带机器翻译(Google / DeepL / Azure)原生集成
  • ✅ Go 技术栈偏好
  • ✅ Apache-2.0 许可更宽松

选 Weblate 的场景:

  • ✅ 需要最丰富的格式支持(40+ 种)
  • ✅ 大型社区项目翻译协作
  • ✅ 有 Python / Django 技术栈偏好

选商业 SaaS 的场景:

  • ✅ 完全不想运维(POEditor / Smartling)
  • ✅ 需要企业级 SSO、工作流审批、专业服务
  • ✅ 海量翻译(百万级字符串)

排除 Traduora 的场景:

  • ❌ 需要原生机器翻译集成(规划中,当前版本无)
  • ❌ 超大规模项目(需评估 open-source 套餐上限)
  • ❌ 团队纯译员无技术背景(Traduora 的 Web UI 简洁但不如 POEditor 丰富)

5.3 Traduora 的优势与劣势

优势:

  • 极简部署:SQLite 模式下 Docker Compose 一条命令启动,无需单独数据库
  • REST API 覆盖全面,client_credentials 认证天生适合 CI/CD 集成
  • TypeORM 自动迁移,版本升级平滑
  • 格式覆盖主流开发场景(前端 JSON/YAML、后端 PO/Properties、移动端 Android XML/Strings)
  • AGPL-3.0 核心产品永远免费无限制

劣势:

  • 社区规模不如 Weblate(~1.5k vs ~5k stars)
  • 无内建机器翻译(需第三方法接)
  • open-source 套餐有 100k 字符串上限(可通过配置覆盖,但属未文档化操作)
  • 生产部署仍需 MySQL/PostgreSQL + 反向代理 TLS(官方明确警告 JWT token 安全)
  • 0.23.0 起强制安全配置,绕过易踩坑

六、适用人群与规模建议

团队规模推荐部署方式数据库备注
个人开发者 / 小型项目Docker Compose(SQLite demo)better-sqlite3适合快速体验、原型验证
5–20 人技术团队Docker Compose + MySQLMySQL 5.7+生产推荐,数据持久化
20+ 人中型团队K8s Deployment + PostgreSQLPostgreSQL 15+可参考 deploy/k8s/traduora-preview.yaml
企业级大规模Helm / K8s Operator + 托管数据库MySQL/PostgreSQL需联系 Ever Co. 获取商业支持

open-source 套餐默认上限(可通过 TR_DEFAULT_PROJECT_PLAN 配置覆盖):

  • 每用户最多 100 个项目
  • 每项目最多 100,000 字符串(term + translation 合计)
  • 无时间或团队人数限制

七、合规与安全要点

  1. JWT 必走 HTTPS:Traduora 使用 JWT Bearer Token,官方强烈建议放在 TLS 终止的反向代理之后
  2. TR_SECRET 必须设置:0.23.0 起,NODE_ENV=production 时未设置 TR_SECRET 直接启动失败;即使 dev 环境,也会拒绝公开已知默认值
  3. TR_ADMIN_PASSWORD 必须设置:0.23.0 起无默认管理员密码,必须显式配置
  4. 登录失败锁定:TR_LOGIN_ATTEMPTS_MAX 默认 3 次,900 秒 TTL
  5. API 速率限制:TR_AUTH_THROTTLE_LIMIT 生产默认 100/min,开发环境 10/min
  6. 邮件验证:Google OAuth 和邮箱注册可选启用(TR_AUTH_GOOGLE_*、TR_SIGNUPS_ENABLED)
  7. 数据隐私:自托管模式下翻译数据完全在自有数据库中,符合 GDPR 等隐私法规

八、快速体验

# 5 分钟快速体验(SQLite,无需单独数据库)
git clone https://github.com/ever-co/ever-traduora
cd ever-traduora
export TR_SECRET=$(openssl rand -hex 32)
export TR_ADMIN_PASSWORD=q1w2e3r4
docker compose -f docker-compose.demo.yaml up -d

# 浏览器访问
open http://localhost:8080
# 默认管理员:local.admin@ever.co / q1w2e3r4

九、延伸阅读

  • 《Ubuntu 22.04 安装 Traduora 0.23 指南》:裸机从零安装全流程
  • 《Traduora 0.23 Docker Compose 部署指南》:SQLite/MySQL/PostgreSQL 三种 Compose 方案
  • 《Traduora 0.23 配置参数详解》:30+ 环境变量逐项说明
  • 《Traduora 0.23 REST API 详解》:API v1 全部端点 + curl 示例

十、信息来源

来源链接查询日期
GitHub 仓库https://github.com/ever-co/ever-traduora2026-10-27
官方文档站https://docs.traduora.co2026-10-27
官网https://traduora.co2026-10-27
package.json仓库 version 字段2026-10-27
源码 config.tsapi/src/config.ts 环境变量定义2026-10-27
源码 controllersapi/src/controllers/*.controller.ts API 端点2026-10-27
Docker Hubhttps://hub.docker.com/r/everco/ever-traduora2026-10-27