Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

219 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

LinguaEdit

Version GitHub Release License Python Qt6 Platform Swedish Translate on Transifex

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


πŸ“Έ Screenshots

Main Editor

Main Editor

Translation Engines

Translation Engines

Validation

Validation

Statistics

Statistics

Video Subtitle Extraction

Video Subtitles

Glossary Management

Glossary


πŸ“¦ Installation & Downloads

πŸš€ Latest Release (v1.8.14)

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

🐧 Linux Package Managers

APT (Debian/Ubuntu)

# 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

DNF (Fedora/RHEL)

# 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

🐍 Python pip/pipx (All Platforms)

# Install with pipx (isolated environment) - RECOMMENDED
pipx install linguaedit

# Or with pip
pip install linguaedit

# Run
linguaedit-gui

πŸ“‹ System Requirements

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 extraction
  • hunspell β€” spell checking
  • git β€” version control integration

✨ Features

πŸ“„ 17+ File Formats

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

πŸ” Editor & Navigation

  • 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

🧘 Zen Translation Mode

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

⌨️ Keyboard Shortcuts

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

🧠 Translation Memory (TM)

  • 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

πŸ“– Glossary

  • Term management with source β†’ target pairs
  • Domain tagging
  • Consistency checking across the project
  • Import/export CSV
  • Real-time term highlighting in editor

πŸ€– AI & Machine Translation

  • 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

βœ… Quality Assurance

  • 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

πŸ“Š Project Dashboard (Ctrl+D)

  • 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 Integration

  • 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

🎬 Video Subtitle Translation

  • 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

πŸ” Security

  • 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

🌐 Platform Integration

  • Transifex β€” community translations with daily GitHub Actions sync (18 languages)
  • File associations β€” double-click .po, .ts, .xliff, etc. to open (macOS + Linux)
  • macOS .app bundle with proper menu bar name and icon
  • Linux .desktop file with MIME type definitions

🎨 Themes & UI

  • 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

πŸ§ͺ Testing

  • 90 unit tests covering parsers, linter, TM, settings, and security

πŸ› οΈ Advanced Tools

  • 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

🌍 Translations

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.


πŸ—οΈ Building from Source

# 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

Dependencies

  • Python 3.10+
  • PySide6 >= 6.5
  • Optional: ffmpeg (video subtitle extraction), hunspell (spell checking)

Cross-Platform Builds

# 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.txt

πŸ“¦ Package Repositories

Debian/Ubuntu (apt)

Repository: 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 linguaedit

RPM (dnf/yum)

Repository: 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 linguaedit

See debian-repo and rpm-repo for setup instructions.


πŸ“„ License

GPL-3.0-or-later β€” see LICENSE.


πŸ‘€ Author

Daniel Nylander β€” Dedicated contributor to Swedish open-source localization, with translations of Ubuntu, GNU binutils, Ardour, util-linux, Weblate, and many more projects.

🌍 Contributing Translations

This app is translated via Transifex. Help translate it into your language!

β†’ Translate on Transifex

Currently supported: Swedish (sv). More languages welcome!

For Translators

  1. Create a free account at Transifex
  2. Join the danielnylander organization
  3. Start translating!

Translations are automatically synced via GitHub Actions.

About

Qt6/PySide6 translation file editor for PO, TS, XLIFF, JSON, YAML, Android XML, ARB, and PHP files

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages