Files
eryao/.trellis/tasks/04-28-refactor-unify-language/prd.md
T

94 lines
2.5 KiB
Markdown
Raw Normal View History

# PRD:统一语言设置
## 1. 背景
当前存在两个独立语言设置:`interface_language`(界面语言)和 `ai_language`(AI 回复语言),用户需分别设置。本任务将其统一为单一 `language` 字段。
## 2. 目标
1. 合并 `interface_language` + `ai_language``language`
2. 后端 AI 统一使用 `language` 作为回复语言
3. 前端移除 AI 语言 UI,设置界面只保留一个"语言"选项
4. 文案从"界面语言"改为"语言"
## 3. 变更内容
### 3.1 Schema 变更
**变更前**:
```json
{
"preferences": {
"interface_language": "zh-CN",
"ai_language": "zh-CN"
}
}
```
**变更后**:
```json
{
"preferences": {
"language": "zh-CN"
}
}
```
### 3.2 UI 变更
**变更前**: 两个独立选项
```
界面语言 简体中文 >
AI回复语言 简体中文 >
```
**变更后**: 一个选项
```
语言 简体中文 >
```
## 4. 文件变更清单
### 后端 (7 文件)
| 文件 | 变更 |
|------|------|
| `backend/src/schemas/shared/user.py` | 字段重命名 |
| `backend/src/core/agentscope/runtime/runner.py` | 读取 `language` |
| `backend/src/core/agentscope/prompts/system_prompt.py` | 参数重命名 |
| `backend/src/core/agentscope/prompts/worker_rules.py` | 参数重命名 |
| `backend/src/core/agentscope/prompts/agent_prompt.py` | 参数重命名 |
| `backend/tests/unit/test_parse_profile_settings.py` | 测试更新 |
| `backend/tests/unit/test_agentscope_prompts.py` | 测试更新 |
### 数据库 (SQL 直接执行)
| 操作 | 说明 |
|------|------|
| Supabase MCP SQL | 更新现有 profiles.settings JSON 结构 |
### 前端 (6 文件)
| 文件 | 变更 |
|------|------|
| `apps/lib/features/settings/data/models/profile_settings.dart` | 字段重命名 |
| `apps/lib/features/settings/data/apis/profile_api.dart` | 序列化字段 |
| `apps/lib/features/settings/presentation/screens/general_settings_screen.dart` | 移除 AI 语言 UI |
| `apps/lib/l10n/app_zh.arb` | 删除旧文案,添加新文案 |
| `apps/lib/l10n/app_en.arb` | 删除旧文案,添加新文案 |
| `apps/lib/l10n/app_zh_hant.arb` | 删除旧文案,添加新文案 |
### 协议文档 (2 文件)
| 文件 | 变更 |
|------|------|
| `docs/protocols/profile/profile-protocol.md` | 更新字段定义 |
| `docs/protocols/divination/divination-run-protocol.md` | 更新语言规则 |
## 5. 验收标准
1. 后端 API 只返回 `language` 字段
2. 前端设置界面只有一个语言选项
3. AI 回复语言跟随 `language` 设置
4. 所有测试通过