Professional translation editor built with PySide6/Qt6 — by a translator, for translators.
LinguaEdit is a feature-rich, cross-platform translation editor that supports 17+ file formats, translation memory, AI-powered review, and a modern UI designed for productive translation workflows.
🌐 Website: www.linguaedit.org 📦 Releases: GitHub Releases 📝 Changelog: CHANGELOG.md 🐛 Issues: GitHub Issues
Download ready-to-use binaries from GitHub Releases:
| Platform | Download | Size | Installation |
|---|---|---|---|
| 🍎 macOS | LinguaEdit-1.8.14-macOS-arm64.dmg |
64MB | Drag to Applications |
| 🪟 Windows | LinguaEdit-1.8.14-Windows-Portable.zip |
1.5MB | Unzip and run LinguaEdit.bat |
| 🐧 Linux | Package managers (see below) | ~300KB | apt install linguaedit |
# Add repository
echo "deb [trusted=yes] https://yeager.github.io/debian-repo/ stable main" | sudo tee /etc/apt/sources.list.d/yeager.list
# Install
sudo apt update
sudo apt install linguaedit# Add repository
sudo tee /etc/yum.repos.d/yeager.repo > /dev/null << 'EOF'
[yeager]
name=Yeager Repository
baseurl=https://yeager.github.io/rpm-repo/packages
enabled=1
gpgcheck=0
EOF
# Install
sudo dnf install linguaedit# Install with pipx (isolated environment) - RECOMMENDED
pipx install linguaedit
# Or with pip
pip install linguaedit
# Run
linguaedit-gui| Platform | Requirements |
|---|---|
| macOS | macOS 11+ (Big Sur), Apple Silicon or Intel |
| Windows | Windows 10+, Python 3.10+ (for portable version) |
| Linux | Python 3.10+, Qt6 libraries |
Optional dependencies:
ffmpeg— video subtitle extractionhunspell— spell checkinggit— version control integration
| Format | Extensions | Notes |
|---|---|---|
| PO / POT | .po, .pot |
GNU Gettext |
| Qt Linguist | .ts |
XML format |
| XLIFF | .xliff, .xlf |
Version 1.2 & 2.0 |
| SDLXLIFF | .sdlxliff |
Trados with segment definitions |
| MQXLIFF | .mqxliff |
memoQ with namespace detection |
| JSON | .json |
Flat & nested i18n |
| YAML | .yml, .yaml |
i18n files |
| Android XML | .xml |
strings.xml |
| ARB | .arb |
Flutter Application Resource Bundle |
| PHP | .php |
Array format |
| Java Properties | .properties |
Key=value |
| Apple Strings | .strings |
Localizable.strings |
| Unity Asset | .asset |
Unity localization |
| RESX | .resx |
.NET resource files |
| Chrome i18n | .json |
messages.json |
| Godot | .tres |
Godot translation resources |
| Subtitles | .srt, .vtt |
SubRip & WebVTT |
| TMX | .tmx |
Translation Memory eXchange |
- Multi-tab editing — work on multiple files simultaneously
- Smart search & replace with regex, case sensitivity, whole word
- Status filters — All, Untranslated, Fuzzy, Translated, Reviewed, With Warnings
- Sort modes — File order, alphabetical, by length, untranslated first, by reference
- Inline editing — double-click entries in the list
- Drag & drop files to open
- Bookmarks — star entries for quick access
- Tags — organize entries with custom tags
- Minimap — visual overview of file status
Distraction-free translation workflow (Ctrl+Shift+Z):
- Source text (read-only) + translation (editable)
- Progress bar at top
- Tab = save + next untranslated
- Escape = exit Zen mode
| Shortcut | Action |
|---|---|
Ctrl+O |
Open file |
Ctrl+S |
Save |
Ctrl+H |
Search & Replace |
Ctrl+U |
Toggle fuzzy |
Alt+Enter |
Next untranslated |
Ctrl+Shift+↑/↓ |
Previous/next fuzzy |
Ctrl+Enter |
Copy source to translation |
Tab |
Save + next entry |
Shift+Tab |
Save + previous entry |
Ctrl+Shift+Z |
Zen Mode |
Ctrl+D |
Project Dashboard |
Ctrl+Shift+D |
Git Diff |
Ctrl+Alt+T |
Batch Translate |
Ctrl+Shift+F |
Focus Mode (untranslated only) |
F11 |
Fullscreen |
Ctrl+R |
Run linter |
Ctrl+Shift+A |
AI Review |
- SQLite-based, zero configuration
- Fuzzy matching with configurable threshold
- Auto-learning from your translations
- Autocomplete suggestions while typing
- Import/export TMX files
- Propagate identical translations across entries
- Term management with source → target pairs
- Domain tagging
- Consistency checking across the project
- Import/export CSV
- Real-time term highlighting in editor
- Inline MT suggestions — DeepL/OpenAI suggestions appear as you translate
- Batch Machine Translate (Ctrl+Alt+T) — translate all untranslated at once
- AI Review (Ctrl+Shift+A) — quality scoring with heuristic fallback
- Back-translation verification — detect meaning drift
- Confidence scores per entry with visual indicators
- Supported engines: DeepL, OpenAI, Google, Lingva, MyMemory
- 15+ linting checks:
- Missing translations
- Placeholder/format string mismatches (
%s,{0}, etc.) - HTML/XML tag mismatches
- Accelerator key mismatches (
&) - Length ratio warnings
- Duplicate translations
- Case mismatches
- CLDR plural form validation
- Number localization (thousands separator, currency, dates)
- Inconsistent translations
- Trailing whitespace/punctuation
- Spell check — red wavy underlines with suggestions and custom dictionary
- Regex tester — validate format strings
- Layout simulator — pixel width checking for UI text
- Unicode inspector — detect invisible/suspicious characters
- Per-language translation progress bars
- Pie chart and bar chart (QPainter-based, no external deps)
- Total string counts and summary stats
- Export statistics as CSV
- Git Diff (Ctrl+Shift+D) — compare with previous commits
- Detect outdated translations (source changed, translation didn't)
- Stage, commit, branch management from within the editor
- File change monitoring with auto-reload
- FFmpeg integration — extract subtitles from video files (.mkv, .mp4, .avi, etc.)
- Auto video preview — opening a .srt/.vtt automatically finds and shows the matching video
- Editable timestamps — time intervals as a dedicated column
- Progress bar during extraction with percentage
- User-friendly dialog when FFmpeg is not installed
- Cross-platform credential storage:
- macOS: Keychain
- Windows: Credential Locker
- Linux: Secret Service (GNOME Keyring / KWallet)
- Fallback: AES-encrypted file with master password (PBKDF2, 480k iterations)
- Security status visible in Preferences → Security
- Transifex — community translations with daily GitHub Actions sync (18 languages)
- File associations — double-click
.po,.ts,.xliff, etc. to open (macOS + Linux) - macOS
.appbundle with proper menu bar name and icon - Linux
.desktopfile with MIME type definitions
- 5 built-in themes including comprehensive dark mode
- Horizontal/vertical layout toggle — editor on right or below
- Auto-collapsing side panel — hides when empty
- Context-aware toolbar — customizable, with overflow menu
- Colored entry borders — red (untranslated), orange (fuzzy), green (translated)
- Save flash animation — green border flash confirming save
- Fullscreen mode (F11)
- Syntax highlighting for HTML tags, format strings, escape sequences
- 90 unit tests covering parsers, linter, TM, settings, and security
- Macro recording — record and replay translation actions
- Plugin system — extend functionality
- Gamification — achievements and streaks
- Pomodoro timer — built-in focus timer
- TTS — hear translations read aloud
- OCR — extract text from images
- Locale map — visual overview of project languages
- Burndown charts — track translation progress over time
- QA profiles — configurable validation rule sets
LinguaEdit is translated via Transifex with 1,487 source strings and 18 languages configured. Translations sync daily via GitHub Actions.
Currently translated:
- Swedish — 100%
Help translate LinguaEdit into your language! Join us on Transifex — no coding required.
# Clone
git clone https://github.com/yeager/linguaedit.git
cd linguaedit
# Install in development mode
pip install -e .
# Run
linguaedit-gui
# Compile translations
pyside6-lrelease translations/linguaedit_sv.ts -qm translations/linguaedit_sv.qm- Python 3.10+
- PySide6 >= 6.5
- Optional:
ffmpeg(video subtitle extraction),hunspell(spell checking)
# Build for macOS (from macOS)
pyinstaller LinguaEdit.spec
# Create DMG
hdiutil create -srcfolder "dist/LinguaEdit.app" -volname "LinguaEdit" "LinguaEdit.dmg"
# Build for Windows (requires Wine or Windows machine)
pyinstaller LinguaEdit-windows.spec
# Create portable version (any platform)
zip -r LinguaEdit-portable.zip src/ resources/ requirements.txtRepository: https://yeager.github.io/debian-repo/
# Quick install:
echo "deb [trusted=yes] https://yeager.github.io/debian-repo/ stable main" | sudo tee /etc/apt/sources.list.d/yeager.list
sudo apt update && sudo apt install linguaeditRepository: https://yeager.github.io/rpm-repo/
# Quick install:
sudo tee /etc/yum.repos.d/yeager.repo > /dev/null << 'EOF'
[yeager]
name=Yeager Repository
baseurl=https://yeager.github.io/rpm-repo/packages
enabled=1
gpgcheck=0
EOF
sudo dnf install linguaeditSee debian-repo and rpm-repo for setup instructions.
GPL-3.0-or-later — see LICENSE.
Daniel Nylander — Dedicated contributor to Swedish open-source localization, with translations of Ubuntu, GNU binutils, Ardour, util-linux, Weblate, and many more projects.
This app is translated via Transifex. Help translate it into your language!
Currently supported: Swedish (sv). More languages welcome!
- Create a free account at Transifex
- Join the danielnylander organization
- Start translating!
Translations are automatically synced via GitHub Actions.





