mirror of
https://github.com/keven1024/015.git
synced 2026-05-26 23:19:37 +00:00
30 lines
1.4 KiB
Markdown
30 lines
1.4 KiB
Markdown
## 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-i18n`、`BurntSushi/toml`、`golang.org/x/text/language` 的直接引用
|
||
- 删除 worker 中的 `loadI18nBundle`、`mustLocalize`、`localizeEmail` 函数,改用 `pkg/i18n.TWithData`
|
||
- 删除 `worker/internal/i18n/` 目录
|
||
|
||
## Capabilities
|
||
|
||
### New Capabilities
|
||
|
||
无新能力,纯重构。
|
||
|
||
### Modified Capabilities
|
||
|
||
- `share-download-notify`:i18n 实现层迁移到 `pkg/i18n`,接口行为(邮件本地化主题和正文)不变
|
||
|
||
## Impact
|
||
|
||
- **pkg/i18n**:go.mod 新增 `github.com/BurntSushi/toml`、`github.com/nicksnyder/go-i18n/v2`、`golang.org/x/text` 依赖,locales 目录新增 6 种语言文件
|
||
- **go.work**:新增 `./pkg/i18n` 模块
|
||
- **worker**:notify.go 逻辑简化,go.mod 依赖变化,`worker/internal/i18n/` 目录删除
|
||
- 不影响任何 API 或前端
|