🔨 chore: add workflow for translating Chinese comments to English (#10027)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
Arvin Xu
2025-11-04 01:54:07 +08:00
committed by GitHub
parent 665e6c99f5
commit 2da01ca1c7
2 changed files with 156 additions and 0 deletions
+89
View File
@@ -0,0 +1,89 @@
# Code Comment Translation Assistant
You are a code comment translation assistant. Your task is to find non-English comments in the codebase and translate them to English.
## Target Directories
- apps/desktop/src/
- packages/\*/src/
- src
## Workflow
### 1. Select a Module to Process
Module granularity examples:
- A single package: `packages/database`
- A desktop module: `apps/desktop/src/modules/auth`
- A service directory: `src/services/user`
### 2. Find Non-English Comments
- Search for files containing non-English characters in comments (excluding test files)
- File types to check: `.ts`, `.tsx`
- Exclude: `*.test.ts`, `*.test.tsx`, `*.spec.ts`, `*.spec.tsx`, `node_modules`, `dist`, `build`
### 3. Translate Comments
- Translate all non-English comments to English while preserving:
- Code functionality (do not change any code)
- Comment structure and formatting
- JSDoc tags and annotations
- Markdown formatting in comments
- Translation guidelines:
- Keep technical terms accurate
- Maintain professional tone
- Preserve line breaks and indentation
- Keep TODO/FIXME/NOTE markers in English
### 4. Limit Changes
- **CRITICAL**: Ensure total changes do not exceed 500 lines
- If a module would exceed 500 lines, process only part of it
- Count lines using: `git diff --stat`
- Stop processing files once approaching the 500-line limit
### 5. Create Pull Request
- Create a new branch: `automatic/translate-comments-[module-name]-[date]`
- Commit changes with message format:
```
🌐 chore: translate non-English comments to English in [module-name]
```
- Push the branch
- Create a PR with:
- Title: `🌐 chore: translate non-English comments to English in [module-name]`
- Body following this template:
```markdown
## Summary
- Translated non-English comments to English in `[module-name]`
- Total lines changed: [number] lines
- Files affected: [number] files
## Changes
- [ ] All non-English comments translated to English
- [ ] Code functionality unchanged
- [ ] Comment formatting preserved
## Module Processed
`[module-path]`
---
🤖 Generated with [Claude Code](https://claude.com/claude-code)
```
## Important Rules
- **DO NOT** modify any code logic, only comments
- **DO NOT** translate non-English strings in code (only comments)
- **DO NOT** exceed 500 lines of changes in one PR
- **DO NOT** process test files or generated files
- **DO** preserve all code formatting and structure
- **DO** ensure translations are technically accurate
- **DO** verify changes compile without errors
@@ -0,0 +1,67 @@
name: Claude Translate Non-English Comments
description: Automatically detect and translate non-English comments to English in codebase
on:
schedule:
# Run daily at 02:00 UTC (10:00 Beijing Time)
- cron: '0 2 * * *'
workflow_dispatch:
inputs:
target_module:
description: 'Specific module to translate (e.g., packages/database, apps/desktop/src/modules/auth)'
required: false
type: string
concurrency:
group: translate-comments
cancel-in-progress: false
jobs:
translate-comments:
runs-on: ubuntu-latest
timeout-minutes: 30
permissions:
contents: write
pull-requests: write
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
fetch-depth: 1
- name: Configure Git
run: |
git config --global user.name "claude-bot[bot]"
git config --global user.email "claude-bot[bot]@users.noreply.github.com"
- name: Copy translation prompt
run: |
mkdir -p /tmp/claude-prompts
cp .claude/prompts/translate-comments.md /tmp/claude-prompts/
- name: Run Claude Code for Comment Translation
uses: anthropics/claude-code-action@main
with:
github_token: ${{ secrets.GH_TOKEN }}
allowed_non_write_users: "*"
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
claude_args: "--allowed-tools Bash,Read,Edit,Glob,Grep"
prompt: |
Follow the translation guide located at:
```bash
cat /tmp/claude-prompts/translate-comments.md
```
## Task Assignment
${{ inputs.target_module && format('Process the specified module: {0}', inputs.target_module) || 'Automatically select one module from the target directories that has not been processed recently' }}
## Environment Information
- Repository: ${{ github.repository }}
- Branch: ${{ github.ref_name }}
- Target Module: ${{ inputs.target_module || 'Auto-select' }}
- Run ID: ${{ github.run_id }}
**Start the translation process now.**