本文件适用于整个仓库。
| 项目 | 路径 | 用途 |
|---|---|---|
| CLI | packages/cli |
One 命令行工具,负责创建项目、执行任务、管理环境变量,并提供 Dashboard 后端。 |
| Kernel | packages/kernel |
通用 Go 运行基础库,管理执行上下文和资源清理。 |
| Dashboard | apps/dashboard |
one serve 打开的管理界面,用于管理工作区、项目配置、变量和开发服务。 |
| Docs | apps/docs |
One CLI 文档网站,提供安装说明、使用指南和命令参考。 |
新增或修改用户可见功能时,默认同时支持 zh-CN 和 en-US,在同一次变更中补齐两种语言。不要等用户反馈中英文混用后再补翻译。
- 复用
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解析逻辑,不另设语言环境变量或检测流程。除可刷新的命令元数据外,不在包初始化或全局变量中缓存译文。切换语言后的确认信息使用新语言。 - 错误输出保留具体原因、项目名、路径和恢复建议;不要用错误码的通用描述覆盖具体错误信息。
- 复用
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.Ztag 递增,默认 patch;固定已提交的 master 源码 SHA,在独立干净副本中检查和构建,并保留 release channel 与技能来源 SHA 注入。 - 保持五个平台归档的现有文件名及 SHA256 校验文件。先验证本地产物,再推送 tag、上传草稿并下载校验;通过后才公开并设为 Latest。
- 中断后续发原 tag 和原提交,已经完整发布则返回已有结果;已公开版本附件异常时停止。不要移动已发布 tag 或替换已公开附件。发布说明提供中英文,凭据不得写入文件或输出。