Files
component-party/CLAUDE.md
2026-02-10 14:18:45 +08:00

96 lines
3.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Component Party 中文版 - 项目维护指南
## 项目概述
本项目是 [component-party.dev](https://github.com/matschik/component-party.dev) 的中文汉化 fork用于对比不同 JavaScript 框架的语法差异,面向中文母语开发者。
## 分支策略
- **main**: 与上游 `matschik/component-party.dev` 的 main 分支保持完全同步,不做任何修改
- **deploy**: 基于 main 的汉化分支,包含所有中文翻译,用于部署
- **upstream**: 远程仓库,指向 `https://github.com/matschik/component-party.dev.git`
## 同步上游与汉化工作流
```bash
# 1. 同步上游到 main
git fetch upstream
git checkout main
git merge upstream/main --ff-only
git push origin main
# 2. 将 main 合并到 deploy
git checkout deploy
git merge main
# 解决冲突(通常是代码内容冲突,不会有 rename 冲突)
# 汉化新增内容
git push origin deploy
```
## 汉化架构(重要)
汉化分为两层,设计目标是最小化与上游的合并冲突:
### 第一层:标题翻译(零冲突)
- 翻译映射文件: `i18n/zh-CN.json`
- 构建脚本修改: `build/lib/generateContent.ts` 中的 `dirNameToTitle()` 函数
- **不修改 content 目录名**,通过映射表将英文标题转换为中文
- 上游新增的 section/snippet 会自动显示英文原文,只需在 JSON 中补充翻译即可
### 第二层:代码内容汉化(可控冲突)
- 直接修改 `content/` 目录下各框架代码文件中的**字符串字面量**
- **不改文件名和路径**,只改文件内容
- 翻译规则参考 `i18n/zh-CN.json` 中的约定
### UI 文案汉化
- `src/components/Header.svelte` - 站点标题
- `src/Index.svelte` - 页面文案、SEO meta、空状态提示等
## 常用翻译对照表
| 英文 | 中文 |
| ------------------------- | -------------- |
| John | 张三 |
| Jane | 李四 |
| Hello {name} | 你好 {name} |
| Hello world | 你好,世界 |
| red/green/blue | 红/绿/蓝 |
| red/orange/green (交通灯) | 红灯/黄灯/绿灯 |
| Counter: | 计数器: |
| Page title: | 页面标题: |
| Current time: | 当前时间: |
| Are you happy? | 你快乐吗? |
| YES / NO | 是的!/ 不是! |
| Click me! | 点我! |
| unicorn42 | abcdefg |
完整对照见 `i18n/zh-CN.json`
## 技术栈
- 包管理器: pnpm
- 框架: Svelte 5 + Vite
- 构建: `content/` 目录由 Vite 插件在 `buildStart` 时扫描生成到 `src/generatedContent/`
- `src/generatedContent/` 是自动生成的,不要手动编辑,不需要提交
## 关键文件
| 文件 | 说明 |
| ------------------------------------ | ------------------------------------------ |
| `i18n/zh-CN.json` | 标题翻译映射 + UI 文案翻译 |
| `build/lib/generateContent.ts` | 内容生成脚本(已添加翻译查表逻辑) |
| `build/generateContentVitePlugin.ts` | Vite 插件,负责触发内容生成 |
| `content/` | 各框架代码示例(汉化在此目录的文件内容中) |
| `frameworks.ts` | 框架定义列表 |
| `src/Index.svelte` | 主页面组件 |
| `src/components/Header.svelte` | 头部组件 |
## 注意事项
- content 目录下的文件**只改内容不改路径**,这是避免合并地狱的核心原则
- 翻译只针对用户可见的字符串字面量不翻译变量名、API 名、组件名
- 上游可能会新增框架目录(如 emberPolaris、svelte5合并后需要检查新文件是否需要汉化