mirror of
https://gh-proxy.org/https://github.com/klinsmaya/SQLBot.git
synced 2026-11-08 01:06:59 +08:00
3.0 KiB
3.0 KiB
国际化 Agent 说明
普通文案
- 前端界面文案使用 vue-i18n,JSON 位于
frontend/src/i18n/。 - 后端返回给用户的错误和提示使用
backend/locales/。 - 两处都必须同步五种语言:
enzh-CNzh-TWko-KRth-TH
- 以
zh-CN的键结构为基准校验其他语言。 - 不要把新用户可见文案硬编码在 Vue 组件、后端 handler、异常消息或 prompt 展示层中。
- 后端 Swagger summary/description 使用
PLACEHOLDER_PREFIX模式时,确认对应翻译键存在。
可以用脚本比较键路径,但不要为了普通文案变更引入新依赖。
新增语言
新增语言不是只添加 JSON 文件。以提交 21961e2d(Thai / th-TH)为完整示例,逐项检查:
前端
- 添加
frontend/src/i18n/<locale>.json,并与zh-CN.json保持键结构一致。 - 在
frontend/src/i18n/index.ts:- import 语言 JSON;
- 注册 messages;
- import 并注册 Element Plus /
element-plus-secondarylocale。
- 更新语言选择入口:
frontend/src/components/Language-selector/index.vuefrontend/src/components/layout/Person.vue
- 更新浏览器语言识别:
frontend/src/utils/utils.ts
- 更新旧版下划线别名:
frontend/src/stores/user.ts- 例如
th_TH→th-TH。
- 在所有既有前端 locale 中新增该语言名称键,例如
common.thai。
后端
- 添加
backend/locales/<locale>.json。 - 更新用户语言白名单:
backend/apps/system/api/user.pybackend/apps/mcp/mcp.py
- 更新 schema 正则和显式校验:
backend/apps/system/schemas/system_schema.py
- 同步 MCP 参数描述中的语言枚举:
backend/apps/chat/models/chat_model.py
模型输出
- 更新
backend/apps/chat/task/llm.py中get_lang_name的语言映射。 - 检查
backend/templates/template.yaml:- 所有需要跟随用户语言的输出都通过
{lang}约束; - 猜测问题、分析和图表相关 JSON 值不会固定在中文;
- 不需要的重复语言指令没有重新引入。
- 所有需要跟随用户语言的输出都通过
文档
- 更新所有明确声明支持语言列表的文档;不要让文档继续停留在旧语言集合。
- 检查
README.md和docs/README.en.md:- 如果新增语言提供公开文档,则添加对应 localized README;
- 更新每个 README 顶部的语言切换 badge/link;
- 不要提交机器翻译后未检查的正式文档。
- 如果 README 的功能列表或部署说明提到界面语言,同步新增语言名称。
- 涉及 agent 指引时,更新:
docs/agents/i18n.md的语言列表和新增语言 checklist;docs/agents/frontend.md的 locale 文件列表。
- xpack 功能使用该语言输出用户可见错误或商业界面时,检查独立 xpack 仓库的说明和领域词汇是否需要同步。
验证
cd frontend
npm run build
再运行与 supplier、文档或语言配置相关的守卫测试(backend/tests/);如没有对应守卫,至少用脚本验证五个 JSON 的递归键路径一致。