A modern, Electron-based translation application that works with any LLM model. OpenTranslator provides a DeepL-like interface for translation using OpenAI, Anthropic Claude, or custom API endpoints.
- 🚀 Multi-Provider Support: Works with OpenAI GPT models, Anthropic Claude, or custom API endpoints
- 🎨 Modern UI: Clean, intuitive interface inspired by DeepL
- ⚡ Fast Translation: Real-time translation with keyboard shortcuts
- 🔧 Customizable: Configure your preferred API provider and model
- 📋 Copy to Clipboard: One-click copy of translated text
- 🌍 Multiple Languages: Support for 13+ languages including auto-detection
- 💾 Settings Persistence: Your configuration is automatically saved
- ⌨️ Keyboard Shortcuts: Quick access with global hotkeys
- Node.js (v16 or higher)
- npm or yarn
- Clone the repository:
git clone <repository-url>
cd deepl-copy- Install dependencies:
npm install- Start the application:
npm start-
Open the application and click the "Settings" button (or press
Cmd/Ctrl + ,) -
Choose your preferred API provider:
- OpenAI: GPT-3.5 Turbo, GPT-4, GPT-4 Turbo, GPT-4o
- Anthropic: Claude 3 Haiku, Claude 3 Sonnet, Claude 3 Opus
- Custom: Your own API endpoint
-
Enter your API key and save the settings
- Auto-detect
- English
- Spanish
- French
- German
- Italian
- Portuguese
- Russian
- Japanese
- Korean
- Chinese
- Arabic
- Hindi
- Enter text in the source language field
- Select source and target languages
- Click "Translate" or press
Cmd/Ctrl + Enter
Cmd/Ctrl + ,- Open SettingsCmd/Ctrl + Enter- Translate textCmd/Ctrl + Shift + T- Focus on input field (global shortcut)
- Auto-translate: Enable in settings to translate as you type
- History: Save translation history (optional)
- Character limit: 5000 characters per translation
- Language swap: Quickly swap source and target languages
- Copy translation: One-click copy to clipboard
deepl-copy/
├── main.js # Main Electron process
├── renderer.js # Renderer process (main UI)
├── preload.js # Preload script for IPC
├── settings.js # Settings window logic
├── index.html # Main window HTML
├── settings.html # Settings window HTML
├── styles.css # Main window styles
├── settings.css # Settings window styles
└── package.json # Project configuration
To build the application for distribution:
npm run buildFor production builds:
npm run distRun with development tools:
npm run dev- Models: GPT-3.5 Turbo, GPT-4, GPT-4 Turbo, GPT-4o
- API Key: Get from OpenAI Platform
- Endpoint:
https://api.openai.com/v1/chat/completions
- Models: Claude 3 Haiku, Claude 3 Sonnet, Claude 3 Opus
- API Key: Get from Anthropic Console
- Endpoint:
https://api.anthropic.com/v1/messages
- Format: Compatible with OpenAI-style API responses
- Response: Should return translation in
choices[0].message.contentorresponsefield - Headers: Include
Authorization: Bearer <your-api-key>
-
"Not configured" status
- Make sure you've entered your API key in settings
- Verify the API provider is selected
-
"Connection failed" error
- Check your API key is correct
- Ensure you have sufficient API credits
- Verify internet connection
-
Translation not working
- Check the console for error messages
- Verify your API provider is properly configured
- Ensure the text is within the 5000 character limit
To enable debug mode and see detailed error messages:
- Open Developer Tools (
Cmd/Ctrl + Shift + I) - Check the Console tab for error messages
- Verify network requests in the Network tab
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by DeepL's clean interface
- Built with Electron for cross-platform compatibility
- Uses modern web technologies for optimal performance
Note: This application requires valid API keys from supported providers. Make sure to keep your API keys secure and never share them publicly.
