Thank you for your interest in contributing! This guide will help you get started.
git clone https://github.com/Blue-B/WhisperSubTranslate.git
cd WhisperSubTranslate
npm install
npm start- Use the Bug Report template
- Include your OS, app version, GPU info, and logs
- Use the Feature Request template
- See TRANSLATION.md for a step-by-step guide
- Fork this repository
- Create a branch:
feature/<scope>-<short-desc>- Examples:
feature/i18n-add-thai,feature/ui-dark-mode,feature/translation-libre
- Examples:
- Make your changes following the code guidelines below
- Test with
npm start - Lint:
npm run lint - Submit a PR against
main
| Pattern | Use for |
|---|---|
feature/<scope>-<short-desc> |
All changes (features, fixes, docs) |
Scope examples: i18n, ui, translation, whisper, model, queue, main, renderer, build, docs
Use Conventional Commits:
feat: add Thai language support
fix: resolve ffprobe path on Linux
docs: update README with macOS instructions
refactor: extract progress logic into helper
| Topic | Guideline |
|---|---|
| I18N | Never hardcode UI strings. Add to locales/i18n.js and reference by key |
| Languages | Update all 5 languages (ko/en/ja/zh/pl) together when adding UI strings |
| Fallback | Use English for fallback strings (|| 'English text'), not Korean |
| Paths | Use path.join() and platform-aware logic, never hardcode \ or / |
| Errors | Write error messages in English for runtime code |
| Comments | Code comments can be in any language |
Before submitting, verify:
- App starts without errors (
npm start) - Lint passes (
npm run lint) - Extraction works (drag a video, click Start)
- Translation works (select a method, run end-to-end)
- UI language switch works for all 5 languages
- No hardcoded Korean in runtime strings (except i18n
ko:values)
WhisperSubTranslate/
├── main.js # Electron main process
├── renderer.js # UI logic (renderer process)
├── translator-enhanced.js # Translation engine
├── myMemoryTranslator.js # MyMemory API client
├── preload.js # Electron preload script
├── index.html # Main UI
├── styles.css # Styles
├── locales/
│ └── i18n.js # All UI strings (5 languages)
├── scripts/
│ └── postinstall.js # Auto-downloads whisper-cli
└── .github/
├── ISSUE_TEMPLATE/ # Issue templates
└── PULL_REQUEST_TEMPLATE.md
- Open an issue for questions
- Check existing issues for
good first issuelabels