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

2.5 KiB

PRD:统一语言设置

1. 背景

当前存在两个独立语言设置:interface_language(界面语言)和 ai_language(AI 回复语言),用户需分别设置。本任务将其统一为单一 language 字段。

2. 目标

  1. 合并 interface_language + ai_languagelanguage
  2. 后端 AI 统一使用 language 作为回复语言
  3. 前端移除 AI 语言 UI,设置界面只保留一个"语言"选项
  4. 文案从"界面语言"改为"语言"

3. 变更内容

3.1 Schema 变更

变更前:

{
  "preferences": {
    "interface_language": "zh-CN",
    "ai_language": "zh-CN"
  }
}

变更后:

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