How weiykong/smart-translator-for-macos works
Smart Translator is a macOS menu-bar clipboard assistant. Users select text or copy it, invoke correction with a global hotkey or choose an action from the menu, and paste the processed result. The main app owns configuration, action dispatch, asynchronous work, clipboard updates, and notifications; processing can use Ollama or Gemini, with Playwright as an optional Gemini transport. The source excerpt is partial, so some capability links rely on README documentation rather than inspected implementations.
Main entry points: smart_translator_dynamic.py App Controller · gemini_playwright_bridge.py Playwright Bridge
Components 20
Menu Bar Interface
- App Controller
smart_translator_dynamic.py - Global Hotkey
smart_translator_dynamic.py - Action Menu
smart_translator_dynamic.py
Text Actions
- Smart Correction
smart_translator_dynamic.py - Translation
smart_translator_dynamic.py - Custom Skills
smart_translator_dynamic.py - Token Saver
smart_translator_dynamic.py
Model Providers
- Provider Dispatch
smart_translator_dynamic.py - Ollama Client
smart_translator_dynamic.py - Gemini Client
smart_translator_dynamic.py - Playwright Bridge
gemini_playwright_bridge.py
App State
- App Config
smart_translator_dynamic.py - Clipboard History
smart_translator_dynamic.py - Model Selection
smart_translator_dynamic.py
Other components
- User
- System Clipboard
- Ollama Service
- Gemini API
- Gemini Web
- Paste Result
Connections 27
- User → Global Hotkey: presses
- User → Action Menu: chooses action
- Global Hotkey → App Controller: dispatches
- Action Menu → App Controller: dispatches
- App Controller → System Clipboard: reads text
- App Controller → Smart Correction: runs action
- App Controller → Translation: runs action
- App Controller → Custom Skills: runs action
- App Controller → Token Saver: runs action
- Smart Correction → Provider Dispatch: requests generation
- Translation → Provider Dispatch: requests generation
- Custom Skills → Provider Dispatch: requests generation
- Token Saver → Provider Dispatch: requests generation
- Provider Dispatch → Ollama Client: selects provider
- Provider Dispatch → Gemini Client: selects provider
- Ollama Client → Ollama Service: HTTP requests
- Gemini Client → Gemini API: REST requests
- Gemini Client → Playwright Bridge: invokes fallback
- Playwright Bridge → Gemini Web: submits prompt
- App Controller → App Config: reads and writes
- App Controller → Clipboard History: stores clipboard states
- App Controller → Model Selection: refreshes selection
- Model Selection → Ollama Client: fetches models
- Model Selection → Gemini API: refreshes models
- App Controller → System Clipboard: writes result
- System Clipboard → Paste Result: supplies for paste
- User → Paste Result: pastes