Appearance
Go 错误 i18n 信封
系统概览
Go 端用户可见错误的 i18n 信封编码(internal/i18nerr/errors.go,ADR-117)。UserError 把错误编码为 <可读msg>\n@@GOERR@@<json信封> 文本,前端 goerr.ts 按哨兵提取 JSON 后翻译。前端侧见 goerr 卡。
核心职责
UserError.Error()— 拼接可读 msg + 哨兵 + JSON 信封。New(code, fallbackMsg, params...)— 构造带 code/params 的错误。ParseEnvelope(text)— 反向解析(测试/工具用)。
对外 API(节选)
New(code, fallbackMsg string, params ...map[string]string) *UserError— 错误工厂。
与其他子系统关系
- 被
internal/app各绑定方法引用,返回给前端。 - 前端
frontend/src/core/i18n/goerr.ts消费信封翻译(ADR-117)。
不变量
- 信封格式是前后端契约,改动必须同步
goerr.ts与契约测试。 - 参数值必须可 JSON 序列化(map[string]string)。
验证入口
- 测试:
internal/i18nerr/errors_test.go。 - 命令:
go test ./internal/i18nerr/。