Files
015/openspec/changes/refactor-i18n-use-pkg/proposal.md

1.4 KiB
Raw Blame History

Why

worker 模块自己实现了一套独立的 i18n 加载逻辑(动态文件路径查找、手动注册 TOML 解析),而 pkg/i18n 已经提供了通用的 i18n 封装但从未被使用,且其实现存在 bug注册的是 JSON 格式,实际文件是 TOML。统一到 pkg/i18n 可以消除重复、修复 bug、让后续模块复用。

What Changes

  • 修复 pkg/i18n:将格式从 JSON 改为 TOML更新 go.mod 添加缺失依赖
  • 将 worker/internal/i18n/ 的 7 种语言翻译文件迁移到 pkg/i18n/locales/
  • pkg/i18n 加入 go.work 工作区
  • worker/go.mod 中添加 pkg/i18n 依赖,移除对 go-i18nBurntSushi/tomlgolang.org/x/text/language 的直接引用
  • 删除 worker 中的 loadI18nBundlemustLocalizelocalizeEmail 函数,改用 pkg/i18n.TWithData
  • 删除 worker/internal/i18n/ 目录

Capabilities

New Capabilities

无新能力,纯重构。

Modified Capabilities

  • share-download-notifyi18n 实现层迁移到 pkg/i18n,接口行为(邮件本地化主题和正文)不变

Impact

  • pkg/i18ngo.mod 新增 github.com/BurntSushi/tomlgithub.com/nicksnyder/go-i18n/v2golang.org/x/text 依赖locales 目录新增 6 种语言文件
  • go.work:新增 ./pkg/i18n 模块
  • workernotify.go 逻辑简化go.mod 依赖变化,worker/internal/i18n/ 目录删除
  • 不影响任何 API 或前端