# 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. 所有测试通过