

------

# Cloudflare Workers AI 翻译服务

一个基于 **Cloudflare Workers + Workers AI** 的轻量级 AI 翻译服务，支持：

- 🌐 **网页访问翻译**（默认：英语 → 中文）
- 📄 **长文本自动分页 / 翻页**
- 🔌 **HTTP API 调用**
- 🌎 **多语言互译**（基于 `m2m100-1.2b` 模型）
- ⚡ **全球边缘节点低延迟部署**

---

## ✨ 功能特性

### 1. 网页翻译（Web UI）

- 默认语言：**en → zh**
- 支持选择源语言 / 目标语言
- 自动按字符数分页
- 翻页只翻译当前页，响应更快
- 适合：
  - 阅读外文文章
  - 翻译长文档
  - 快速人工校对

访问根路径即可使用：https://your-worker-domain/


---

### 2. HTTP API 翻译

#### 接口一览

| 方法 | 路径 | 说明 |
|----|----|----|
| GET | `/api/languages` | 获取常用语言列表 |
| POST | `/api/translate` | 翻译文本 |

---

## 🚀 API 使用说明

### 2.1 单页 / 分页翻译

**POST** `/api/translate`

```json
{
  "text": "Hello world, this is a long text...",
  "source_lang": "en",
  "target_lang": "zh",
  "page": 1,
  "page_size": 1800
}
```

#### 返回示例

```json
{
  "page": 1,
  "page_size": 1800,
  "total_pages": 3,
  "source_lang": "en",
  "target_lang": "zh",
  "translated_text": "你好，世界，这是一段很长的文本……"
}
```

------

### 2.2 一次翻译全文（自动分段）

```json
{
  "text": "Very long text...",
  "source_lang": "en",
  "target_lang": "zh",
  "translate_all": true,
  "page_size": 1800
}
```

> ⚠️ 默认最多批量翻译 **50 段**（防止超时 / 过载）

------

### 2.3 curl 示例

```bash
curl -X POST https://your-worker-domain/api/translate \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Hello World",
    "source_lang": "en",
    "target_lang": "zh"
  }'
```

------

## 🌐 支持语言（示例）

基于 **Meta M2M100 多语言模型**，支持数十种语言互译，例如：

- en – English
- zh – 中文
- ja – 日本語
- ko – 한국어
- fr – Français
- de – Deutsch
- es – Español
- ru – Русский
- ar – العربية
- hi – हिन्दी
- vi – Tiếng Việt
  等……

> 实际支持语言以模型能力为准

------

## 🧠 使用的 AI 模型

- **模型**：`@cf/meta/m2m100-1.2b`
- **类型**：多语言 → 多语言翻译
- **提供方**：Cloudflare Workers AI

官方文档：
https://developers.cloudflare.com/workers-ai/models/m2m100-1.2b/

------

## 📦 项目结构

```text
.
├── index.js        # Cloudflare Worker 主逻辑
├── wrangler.toml   # Wrangler 配置
└── README.md
```

------

## ⚙️ 部署方式

### 1️⃣ 安装 Wrangler

```bash
npm install -g wrangler
```

### 2️⃣ 登录 Cloudflare

```bash
wrangler login
```

### 3️⃣ 配置 `wrangler.toml`

```toml
name = "ai-translate-worker"
main = "index.js"
compatibility_date = "2026-01-27"

[ai]
binding = "AI"
```

------

### 4️⃣ 发布 Worker

```bash
wrangler deploy
```

------

## 🔐 （可选）API Key 保护

### 设置密钥

```bash
wrangler secret put API_KEY
```

### 调用方式

```http
X-API-Key: your_api_key
```

或：

```text
/api/translate?key=your_api_key
```

------

## 🧩 适用场景

- 个人翻译工具
- 博客 / 内容平台翻译接口
- 海外资讯聚合
- AI 工具链中的翻译节点
- Cloudflare 边缘 AI Demo

------

## 📌 TODO / 可扩展方向

-  自动语言识别
-  翻译历史记录
-  左右对照 UI
-  Markdown / HTML 翻译
-  翻译缓存（KV / Cache API）
-  流式翻译（Streaming）

------

## 📄 License

MIT License

------

## ❤️ 致谢

- Cloudflare Workers
- Cloudflare Workers AI
- Meta M2M100 Multilingual Model