feat(i18n): 完善 CLI 国际化帮助、运行时错误与校验机制 #75
Loading…
Reference in New Issue
No description provided.
Delete Branch "muel/gitlink-cli:feat/i18n-cli-foundation"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
本次合并请求面向
gitlink-cli的 CLI 国际化能力建设,基于现有 Cobra command 与 shortcuts 架构,引入可维护、可校验、可测试的 i18n 基础设施。本 PR 将语言解析接入 root command 构造流程,支持通过
--lang、GITLINK_LANG、config.lang、LC_ALL/LANG解析显示语言;同时迁移部分 CLI help、flag usage、auth/config 用户级提示和运行时错误,并新增 locale 完整性校验、格式校验和代码 key 引用扫描。本次改动聚焦 CLI 用户级文案国际化,不改变 JSON 输出结构、API 原始返回、debug log 或机器可解析输出。对未显式支持的 locale 统一回退到基准语言,避免错误匹配。
相关 Issue
暂无关联 Issue。
变更内容
1. 新增 i18n 基础设施
internal/i18nlocalization package。Translator.T/Translator.TfAPI。en-US/zh-CNlocale JSON。i18n.Default()作为迁移期兼容入口,新代码推荐显式传入 translator。2. 接入语言解析链路
--langflag。GITLINK_LANG环境变量。config.lang配置项。LC_ALL/LANG系统环境变量。3. 打通运行时 i18n 传播链
RuntimeContext注入*i18n.Translator。ctx.Tr使用本地化文案。MarkFlagRequired默认错误路径切换为运行期本地化校验。4. 迁移部分用户级文案
auth loginusername/password/token prompt 本地化。auth status未登录提示、登录提示、本地 token 状态提示本地化。auth logout成功与失败提示本地化。config init、config set、config get、config list中部分用户级输出本地化。version输出模板接入 i18n。5. 增强 locale 校验工具
go run ./internal/i18n/cmd/check校验:go run ./internal/i18n/cmd/check --fix格式化 locale JSON。go run ./internal/i18n/cmd/check --scan-code扫描代码中的 i18n key 引用。locale JSON 采用多行、2 空格缩进、key 稳定排序、文件末尾换行。
6. CI 接入
CI 已新增并保留以下验证:
这保证 locale 完整性、代码 key 引用和 Go 测试都会在 PR 阶段自动检查。
7. 补充测试
新增和更新命令级测试,覆盖:
--lang zh-CN --help输出中文 help;GITLINK_LANG=zh-CN输出中文 help;--lang优先级高于config.lang;auth login --token中文 prompt / token saved;auth status未���录中文提示;config set中文成功提示,并确认输出走cmd.OutOrStdout();8. 新增文档
新增
docs/i18n.md,说明:--scan-code的变量命名约定;本次包含
--lang、GITLINK_LANG、config.lang、LC_ALL/LANG语言解析。本次不包含
兼容性说明
本 PR 仅调整 CLI 用户级文案的国际化能力,不改变现有命令的数据协议和机器可解析输出:
internal/output的输出结构。测试结果
本地已执行:
结果均通过。
手动验证
已手动验证:
验证结果:
--lang zh-CN可输出中文 help。config set中文成功提示可被输出捕获。Pull request closed