With over 5 years of experience as a freelance Twi-English language specialist covering translation, transcription, subtitling, voice-over, interpretation, data annotation, and data collection, one recurring challenge was pricing text-based projects quickly and accurately.
Every quote request meant opening a text editor or visiting an online word counter, cross-referencing customised rates, and manually calculating costs — a workflow that introduced delays. In cases where internet access was unavailable, responding to urgent client quote requests before work could begin became a bottleneck entirely.
Toward the end of my fourth year in the role, the idea for a dedicated tool began to take shape. Starting with a manual sketch of the desired interface and drawing on a background in Python development, research pointed to Tkinter and PyQt as viable options for building desktop applications. This became the motivation to learn Tkinter — and RateLingo is the result: a practical tool born out of a real professional need, and proudly my second desktop application built with Tkinter.
RateLingo is a desktop pricing calculator built for freelance language service providers. It calculates accurate project quotes based on word (texts) count across translation, transcription, voice-over, and subtitling services. Available as both a GUI desktop app and a CLI tool.
- Four core language services with predefined per-word rates
- Real-time word and character count as you type
- Instant cost calculation with a single click
- Save and manage quote history (SQLite3)
- Dual interface - GUI (desktop) and CLI (terminal)
- Python 3.10 or higher
- uv package manager
# 1. Clone the repository
git clone https://github.com/iamDREAMO/RateLingo.git
cd RateLingo
# 2. Create virtual environment
uv venv
# 3. Run the app
uv run python main.pyuv run python main.py- Paste or type your text in the left panel
- Select a service from the dropdown
- Click Calculate Cost to get your quote
- Save the quote to history or calculate another
uv run python main.py --cliFollow the prompts to select a service, enter your text, and view your quote.
| Service | Rate per Word |
|---|---|
| Translation | $0.08 |
| Transcription | $0.05 |
| Voice-over | $0.20 |
| Subtitling | $0.12 |
Rates are configurable in src/core.py
RateLingo/
├── assets/
│ └── screenshots/ # App screenshots and demo GIF
├── src/
│ ├── __init__.py
│ ├── core.py # Business logic (rates, calculations)
│ ├── cli.py # CLI interface
│ ├── gui.py # GUI interface (CustomTkinter)
│ └── database.py # SQLite3 quote history
│
├── main.py # Entry point
└── pyproject.toml # Project metadata
- CLI interface
- GUI desktop app
- Word counting and cost calculation
- Quote history with SQLite3
- Cross-platform packaging (Windows
.exe, linuxELF format, macOS.app) - Export quotes to PDF
- Web application version
- Custom rate profiles per client
- Invoice generation
Contributions are welcome! Follow PEP 8 guidelines with proper docstrings, comments, and meaningful commit messages.
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add AmazingFeature') - Push and open a Pull Request
Benedict Kofi Amofah
- GitHub: @iamDREAMO
- LinkedIn: Benedict Kofi Amofah
Licensed under the MIT License.
Made with ❤️ for the Freelance language community
