A desktop application built with Python that provides real-time text translation with an intuitive, dynamic user interface. The app features an autocomplete-enabled language selection system and supports UI localization (translating the app's interface into various languages).
- Autocomplete Language Selection: Custom-built combobox widgets with real-time filtering to quickly find source and target languages.
- Multi-Language Support: Integration with the
deep_translatorlibrary, supporting a wide range of global languages. - Dynamic UI Translation: The application interface itself can be translated into any supported language via the "Translate window" feature.
- Clean Architecture: Built using
CustomTkinterfor a modern look and a modular design that separates business logic from the UI.
| File | Description |
|---|---|
main.py |
The entry point of the application; initializes the GUI. |
gui.py |
Contains the TranslatorApp class and custom UI components (e.g., AutocompleteComboBox). |
translator_logic.py |
Handles the core translation logic using deep_translator and manages the supported language dictionary. |
Ensure you have Python installed on your system. You will also need to install the required dependencies:
pip install customtkinter deep_translator
- Clone the repository (or download the files).
- Navigate to the project folder in your terminal.
- Launch the application:
python main.py
- Translation: Select your source and target languages using the autocomplete fields, enter your text in the left textbox, and click the "Translate" button.
- Interface Localization: Select your preferred application language from the top-right dropdown and click "Translate window." The entire interface (buttons, labels, and placeholders) will automatically update to the selected language using the internal translation engine.
- GUI Framework:
CustomTkinter(Modern UI for Python). - Translation Engine:
deep_translator(Google Translate API wrapper). - Language Engine: A modular mapping system (
languagesdictionary) that translates human-readable language names to ISO language codes.