Skip to content

Latest commit

 

History

History
51 lines (36 loc) · 4.24 KB

File metadata and controls

51 lines (36 loc) · 4.24 KB

One CLI 开发约定

本文件适用于整个仓库。

项目说明

项目 路径 用途
CLI packages/cli One 命令行工具,负责创建项目、执行任务、管理环境变量,并提供 Dashboard 后端。
Kernel packages/kernel 通用 Go 运行基础库,管理执行上下文和资源清理。
Dashboard apps/dashboard one serve 打开的管理界面,用于管理工作区、项目配置、变量和开发服务。
Docs apps/docs One CLI 文档网站,提供安装说明、使用指南和命令参考。

默认考虑多语言

新增或修改用户可见功能时,默认同时支持 zh-CN 和 en-US,在同一次变更中补齐两种语言。不要等用户反馈中英文混用后再补翻译。

CLI 文案

  • 复用 packages/cli/internal/platform/i18n 的 T、Tf 和 Errorf,同步维护 locales/zh-CN.json 与 locales/en-US.json。使用能表达用途的语义键,避免在业务代码中硬编码用户可见的中文或英文句子。
  • 覆盖命令帮助、参数说明、交互选项、校验错误、进度、结果、恢复建议、TUI 状态与快捷键说明,以及内置模板的展示名称和说明。
  • 用完整句子的格式模板表达动态文案,避免拼接译文片段。两种语言的格式参数必须匹配;错误包装继续使用 %w,保留错误链。
  • Cobra 命令帮助使用 MarkShort、MarkLong、MarkFlagUsage 注册翻译键,使 RefreshTree 能在语言确定或切换后更新文案。参数数量校验和 flag 错误复用 i18n 中的公共处理逻辑。
  • 沿用现有语言偏好与 auto 解析逻辑,不另设语言环境变量或检测流程。除可刷新的命令元数据外,不在包初始化或全局变量中缓存译文。切换语言后的确认信息使用新语言。
  • 错误输出保留具体原因、项目名、路径和恢复建议;不要用错误码的通用描述覆盖具体错误信息。

Dashboard 文案

  • 复用 apps/dashboard/src/lib/i18n.ts 和现有 locale store,沿用现有字典结构及语言切换机制。
  • 新增页面、组件、空状态、表单提示、通知、按钮、tooltip 和无障碍标签时,同步补齐中英文。
  • 布局要容纳不同语言的文本长度,检查换行、截断、弹窗宽度和窄屏显示。

保持原样的内容

  • 命令及 flag 名称、机器可读的 JSON 字段与状态值、错误码、模板及 provider ID 等稳定协议值保持不变,仅在展示层翻译其说明。
  • 用户输入、项目名、路径、自定义模板文案等用户内容保持原样。
  • 子进程及第三方工具的原始日志保留原语言、ANSI 颜色和控制台格式。One CLI 自己输出的说明、上下文和恢复建议跟随当前语言。

验证

  • 两份语言字典的键必须完整对应、译文非空、格式占位符兼容。新增翻译键时确认实际使用处能够解析。
  • 根据改动覆盖两种语言的帮助、交互、错误或结果输出,并检查语言切换后没有旧语言残留。涉及持久化偏好的测试使用临时 HOME/config,避免修改开发者设置。
  • 修改提示组件或 TUI 时,检查中文终端显示宽度、快捷键提示和文字对比度,并确认子进程原始输出仍被保留。
  • 文案变化需要审阅相关帮助和输出;运行与改动相关的构建及静态检查,并按仓库现有流程执行 mise run check。

打包发布

  • 发布前阅读 RELEASING.md,统一使用 mise run release。工具及配置维护在 scripts/release.mts、.goreleaser.yaml 和根 mise.toml,GoReleaser 固定为 2.18.0。
  • 版本根据远端最高稳定 vX.Y.Z tag 递增,默认 patch;固定已提交的 master 源码 SHA,在独立干净副本中检查和构建,并保留 release channel 与技能来源 SHA 注入。
  • 保持五个平台归档的现有文件名及 SHA256 校验文件。先验证本地产物,再推送 tag、上传草稿并下载校验;通过后才公开并设为 Latest。
  • 中断后续发原 tag 和原提交,已经完整发布则返回已有结果;已公开版本附件异常时停止。不要移动已发布 tag 或替换已公开附件。发布说明提供中英文,凭据不得写入文件或输出。