A multi-ai-supported translator helps getting and managing translations with confidence.
The MAI Translator helps to retrieve translation results from popular language model providers such as DeepL, Claude, and OpenAI. It allows users to compare different versions of translations and select the words, sentences, or paragraphs that best fit the context. Additionally, the MAI Translator enables users to store translation results locally, which can be retrieved at any time as needed. The app also supports text-to-speech readers with enriched voice selections that help get a better sense of the contents.
- Fetching translation results from multiple LLM providers with rich model selections;
- Manage translation records locally with easy file drag-n-drop features;
- Light / Dark theme;
- Text-to-Speech-supported text reader with multiple voices enabled;
You'll need API keys from OpenAI, DeepL, and Claude to ensure translations work properly. The app can still work when one or two keys are missing. However, the OpenAI API key is required for the Text-to-Speech functionalities if the text reader is important to you.
- Get OpenAI API key: https://platform.openai.com/docs/overview
- Get Claude API key: https://console.anthropic.com/dashboard
- Get DeepL Api Key: https://www.deepl.com/en/pro-api (Free version api key is good enough)
Category | Technology |
---|---|
Software Framework | Electron |
Frontend Library | React |
Build Tool | Vite |
State Management | Redux Toolkit |
UI and Styling | shadcn, Tailwind |
Testing | Jest, Testing Library |
Code Sign and Notarize | Electron-forge |
├── .github/
│ └── workflows/ # GitHub Actions for CI/CD
├── public/ # Static assets (images, icons, HTML)
├── resources/ # Additional resources for the app
├── src/ # Main source code
│ ├── main/ # Main process code
│ │ ├── assets/ # Assets for the main process
│ │ ├── lib/ # Libraries for main process logic
│ │ └── index.ts # Entry point for the main process
│ ├── preload/ # Preload scripts
│ │ ├── index.ts # Preload script entry point
│ │ └── index.d.ts # TypeScript declarations for preload
│ ├── renderer/ # Renderer process code (front-end)
│ │ ├── src/ # Source for renderer
│ │ │ ├── __tests__/ # Tests for renderer components
│ │ │ ├── assets/ # Assets for the renderer
│ │ │ ├── components/ # React components
│ │ │ ├── hooks/ # Custom React hooks
│ │ │ ├── store/ # Redux State management
│ │ │ └── utils/ # Utility functions
│ │ ├── App.tsx # Main application component
│ │ ├── env.d.ts # TypeScript environment declarations
│ │ ├── main.tsx # Main entry point for the renderer
│ │ └── index.html # HTML template for the renderer
│ └── shared/ # Shared code between main and renderer
├── .gitignore # Git ignore patterns
├── components.json # Component manifest/configuration
├── electron.vite.config.ts # Vite configuration for Electron
├── forge.config.cjs # Electron Forge configuration
├── jest.config.ts # Jest testing configuration
├── LICENSE # Project license
├── package.json # Project metadata and dependencies
├── package-lock.json # Dependency lock file
├── postcss.config.js # PostCSS configuration
├── README.md # Project documentation
├── tailwind.config.js # Tailwind CSS configuration
├── tsconfig.json # TypeScript configuration (general)
├── tsconfig.node.json # TypeScript configuration for Node.js
└── tsconfig.web.json # TypeScript configuration for web