- Cross-platform builds — Official macOS .app bundle and Windows portable version
- macOS DMG installer — Ready-to-use drag-and-drop installer (64MB)
- Windows portable ZIP — Python-based portable version with batch launcher (1.5MB)
- Professional packaging — DEB/RPM packages with proper dependencies and desktop integration
- GitHub repository integration — DEB (Ubuntu/Debian) and RPM (Fedora/RHEL) repositories
- Updated installation documentation — Complete installation guide for all platforms
- Man page generation — Created during package build for proper documentation
- Package metadata — Corrected descriptions and dependencies across all formats
- Repository publishing — Automated package deployment to GitHub Pages repositories
- macOS:
LinguaEdit-1.8.14-macOS-arm64.dmg(Apple Silicon native) - Windows:
LinguaEdit-1.8.14-Windows-Portable.zip(Python + requirements) - Linux DEB: Available via
apt install linguaeditfrom yeager repository - Linux RPM: Available via
dnf install linguaeditfrom yeager repository - Python PyPI: Available via
pip install linguaedit(cross-platform)
- DEB repo: https://yeager.github.io/debian-repo/
- RPM repo: https://yeager.github.io/rpm-repo/
- Source: https://github.com/yeager/linguaedit
- Drag & drop — save dialog when dropping a file with unsaved changes
- Drag & drop — video file handling with subtitle track extraction
- Windows DPAPI keystore — native credential storage via ctypes (no keyring dependency)
- .qm translations compiled for all languages with actual translations
- Transifex — redirect handling fix for API calls
- Crowdin — ZIP extraction +
project_idtype coercion fix - Currency format —
%1$variables no longer falsely detected as currency symbols - Windows locale detection — proper system language detection for UI language selection
- Small .qm exclusion — translation files under 20 KB excluded from builds (empty/near-empty)
- Removed 11 empty translation files (.ts/.qm) with zero translated strings
- Browse buttons for Transifex, Weblate, and Crowdin — list projects/orgs without manual input
- Context column for file types with context (TS/PO/XLIFF)
- svlang integration — svengelska detection + consistency checks for Swedish translations
- Windows keyring verification for credential storage
- Default sort order changed to file order (ascending)
- Number localization lint changed to info severity
- Clean error messages from platform APIs (no more raw HTML dumps)
- 33 missing Swedish translations fixed (newline strings)
- Duplicate .ts messages cleaned up
- update_translations.py false positive fix
- Flag icons — replaced painted stripes with proper flag images from FlagKit (MIT). Works on all platforms including Windows.
- Flag icons on Windows — Windows doesn't render flag emoji; now uses painted stripe flags instead (works everywhere)
- Windows translations — PyInstaller bundle: translations dir lookup via
sys._MEIPASS - Auto-detect language — Welcome wizard now pre-selects system language instead of defaulting to English
- i18n logging — added debug logging for translation loading (helps diagnose issues)
- macOS-only code guarded —
defaults readfallback only runs on macOS
- Flag icons on Windows — use Segoe UI Emoji instead of Apple Color Emoji (Linux: Noto Color Emoji)
- Translations on Windows — improved translations directory discovery (importlib.resources + Windows site-packages path)
- Swedish translation — 21 inconsistencies corrected (terminology, accelerators, formatting)
- CI — compile only non-empty translations, remove stale .qm before build
- Language picker — dynamic selector with country flags, based on available .qm files
- Transifex source sync — CI workflow pushes new source strings automatically
- Update checker — startup background check for new GitHub releases
- Weblate/Crowdin/Transifex — platform browser with translation statistics
- Translations — consolidated to single
src/linguaedit/translations/directory - Language picker — only shows languages with actual translations (skips empty .qm)
- CI — Transifex workflow now pushes source strings before pulling translations
- 1,522 source strings (up from 1,282)
- Quit — now prompts to save unsaved changes
- Stats — counter and row color update correctly after editing translations
- Pre-translate — runs in background QThread (UI no longer freezes)
- Pre-translate — API key field added directly in dialog (no need for separate dialog)
- Pre-translate — source language auto-detection (Auto-detect option in dropdown)
- Transifex — integration for community translations (18 languages, daily sync via GitHub Actions)
- i18n — all Swedish source strings in code replaced with English (proper i18n)
- CI — .ts/.qm build automation for all languages
- Pre-translate — show API error dialog with skip/continue/stop options
- Pre-translate — keep completed translations on cancel (don't discard)
- Pre-translate — progress dialog with ETA and cancel button
- Lingva — update dead
lingva.mlURL to workingtranslate.plausibility.cloudinstance - i18n — move pre-translate strings to correct
LinguaEditWindowcontext - i18n — fix context placement for 36 strings + add
update_translations.py - i18n — fix 4 missing
\nin translations + add 12 new strings - i18n — Redaktör → Redigerare (editor)
- keystore — remove
-T ''flag from macOS Keychain storage (was blocking all apps)
- i18n — translate 51 missing strings (menu accelerators, preferences, dialogs)
- i18n — fix 50 DeepL mistranslations (Error→"Gilla", Bold→"Boll", TMX→"Toronto-börsen", etc.)
- i18n — fix accelerator translations mangled by DeepL (
&translated as "Och") - i18n — wrap 2 OCR dialog strings in
self.tr()
- CI — added
lreleasestep to compile translations in all GitHub Actions builds (macOS, Windows, Linux)
- FFmpeg — fix Windows pipe deadlock by draining stderr in background thread
- FFmpeg — search common Windows install paths (Chocolatey, Scoop, Program Files) when not on PATH
- Video subtitle overlay — rewritten to use QGraphicsView + QGraphicsVideoItem; subtitles are now actually visible on the video
- Subtitle color logic — yellow for translated or no-translations-yet, red only for untranslated when file has other translations
- Video overlay resync — overlay resyncs automatically after editing translations
- Subtitle column widths — 20% time / 40% source / 40% translation
- Default columns — auto-size for #/tags/status, equal stretch for source and translation
- i18n — 14 newly wrapped strings in
self.tr() - Complete Swedish translation — updated via DeepL (1,337 strings)
- Mass operations — subtitles case added to
_set_entry_translation
- Complete Swedish translation — expanded from 285 to 1,323 translated strings
- Video subtitle overlay — shows only translation text in yellow; untranslated segments show source in red
- Translation .qm files in git — compiled translations now tracked in repository (previously gitignored)
- macOS icon — fixed icon display issues on macOS
- Live-update translation column — tree view updates in real-time while typing
- Extended selection — Shift+click range and Ctrl+click multi-select in tree view
- Resizable column headers — all tree view columns can be resized by dragging
- Incomplete subtitle warning — warns when saving subtitle file with untranslated entries
- Unity MonoBehaviour parser — support for Unity localization tables with SharedData/TableData pattern
- Video preview rewrite — 16:9 aspect ratio, full transport controls, subtitle overlay painted on video widget, volume control
- Side panel auto-hide — hides string info, TM, reference, context, preview when video dock is visible
- Subtitle save fallback — SRT/VTT save now falls back to source text when no translation exists (fixes roundtrip)
- Replaced
QThreadwith daemonthreading.Threadfor machine translation (fixes SIGABRT crash) - Disabled Qt accessibility on macOS to prevent SIGSEGV in
libqcocoa.dylib - Fixed
locale.getdefaultlocale()deprecation warning for Python 3.13+
- QThread crash — proper cleanup of MT thread before creating new one
- Subtitle overlay — use child widget on QVideoWidget for reliable overlay display
- Dark mode contrast — MT Suggestions and context panel text now visible in dark mode
- Save/Save As — use Path objects consistently for file paths
- Video subtitle extraction — progress dialog no longer disappears; removed auto-copy source
- Multi-selection crash — fixed crash when selecting multiple entries
- App icon — fixed icon display on macOS and Windows
- Swedish .qm translation — now properly included in package
- SubtitleEntry attributes — fixed character counter and stats using wrong attribute names
- Unity asset roundtrip — fixed YAML parsing for Unity-specific tags and document format
- SRT roundtrip — fixed empty entries being dropped on save/reload cycle
- Settings test — target_language auto-detection from system locale
- Resizable source text view — drag the splitter between source and translation to adjust heights
- Larger default source text area (150px vs 90px), supports up to 300px
- Save As toolbar button — quick access to Save As directly from the main toolbar
- TM matches marked fuzzy — Translation Memory matches and quick TM actions now auto-mark entries as fuzzy until manually approved
- All auto-applied translations (MT, TM, batch) consistently marked as fuzzy
- Save As… (Ctrl+Shift+S) — file dialog with suggested filename and directory
- Simple Mode (Ctrl+Shift+L) — minimal UI: hides sidebar, context panel, minimap, quick actions toolbar
- Default sort: Untranslated first — entries now sorted by status (untranslated → errors → fuzzy → translated) by default
- Machine translation always marks fuzzy — MT-applied entries are marked as "needs work" until manually approved
- Save confirmation dialog when closing tabs with unsaved changes
- Scrollbars on comment and plural editor fields
- FFmpeg subtitle extraction now shows progress bar with cancel support
- FFmpeg error handling with user-friendly warning dialogs
- Fuzzy toggle button now works correctly for TS files (no longer auto-cleared on save)
- Fuzzy toggle button now works correctly for SDLXLIFF/MQXLIFF files (confirmed flag respects fuzzy state)
- Side panel can now be freely resized (removed maximum width constraint)
- FFmpeg timeout reduced from 120s to 30s for faster error recovery
- Side panel minimum width reduced to 200px for more flexible layouts
- Fuzzy toggle now works correctly for TS files (was using
entry.typeinstead ofentry.translation_type) - FFmpeg subtitle extraction shows progress dialog instead of blank window
- FFmpeg extraction has timeout handling and error reporting
- Scrollbars on all text areas (source, translation, comment)
- Unsaved changes dialog when closing or opening new file
- Window geometry and splitter positions saved/restored via QSettings
- 90 unit tests added (parsers, linter, TM, settings, security)
- Unity .asset parser doesn't handle
!u!YAML tags
- Fixed TM autocomplete crash (
lookup_tm()keyword argument mismatch) - Fixed Concordance dialog crash (
Settings.get()vsget_value()) - Fixed AI Review crash with TS files (used PO-specific attributes)
- Fixed
pyside6-lupdatemissing strings inside f-strings
- Compile button shows visual status: green ✓ (success), red ✗ (error), neutral (not compiled)
- Compile icon resets to neutral when translation text is edited
- Modern rounded arrow icons for Undo/Redo (orange) and Previous/Next (blue chevrons)
- File open dialog remembers last used directory
- Swedish translation 100% complete (1257/1257 strings)
- 6 professional screenshots added to README and website
- Cross-platform credential storage — macOS Keychain, Windows Credential Locker, Linux Secret Service, AES-encrypted fallback
- Security status in Preferences — shows which backend is active with 🔒/
⚠️ indicator
- Auto video preview — opening a subtitle file automatically shows the matching video
- Extraction prompt with progress bar — percentage-based progress when extracting subtitles from video
- Editable timestamps — subtitle time intervals as a dedicated editable column
- Non-modal preview — video plays alongside the editor
- Fuzzy click fixed — column index mismatch (was writing to col 3 instead of col 5)
- Fuzzy toggle for TS/XLIFF — now works for all file formats, not just PO
- Ubuntu 25.10 compatible — removed python3-pyside6 dependency, improved postinst with pip fallbacks
- Better install docs — separate sections for Linux, macOS, and Windows
- Swedish translation: 100% coverage (1023 strings)
- Updated POT template with all extractable strings
- File type associations for macOS and Linux (.desktop + MIME XML)
- Zen Translation Mode (Ctrl+Shift+Z) — distraction-free source → translation workflow
- Horizontal layout toggle — editor on right or below (View menu)
- Inline MT suggestions — DeepL/OpenAI suggestions appear as you translate
- Spell check — red wavy underlines with suggestions and custom dictionary
- Poedit-style shortcuts — Alt+Enter (next untranslated), Ctrl+Shift+Up/Down (prev/next fuzzy)
- Tab navigation flow — Tab saves and moves to next, Ctrl+Enter to next untranslated
- Save flash animation — green border flash confirming save
- Colored entry borders — red (untranslated), orange (fuzzy), green (translated)
- Auto-collapsing side panel — hides when empty, thin tab bar when collapsed
- Context-aware toolbar — right-click to customize, overflow menu for less-used actions
- Dark theme — comprehensive 200-line QSS dark theme
- "Reviewed" status filter — filter entries by review status
- SDLXLIFF (Trados) parser with segment definitions and confirmation status
- MQXLIFF (memoQ) parser with namespace detection and segment properties
- File type associations — double-click .po/.ts/.xliff etc. to open in LinguaEdit (macOS + Linux)
- Project Dashboard (Ctrl+D) — per-language progress bars, pie/bar charts, CSV export
- Git-based diff (Ctrl+Shift+D) — compare with previous commits, detect outdated translations
- Batch Machine Translate (Ctrl+Alt+T) — one-click MT for all untranslated with preview
- FFmpeg video subtitle extraction — extract subtitles from video files (.mkv, .mp4, .avi, etc.)
- FFmpeg missing dialog — user-friendly dialog when FFmpeg is not installed, with options to get install info, browse manually, retry, or cancel
- Video subtitle stream selection — pick which subtitle track to extract from multi-stream videos
- Enhanced sidebar — large icons for better navigation and visibility
- Increased Source/Translation margins — more readable editing area
LinguaEdit 1.0.0 marks a major milestone with 55+ new features, 15+ supported file formats, and comprehensive translation tools for professionals and hobbyists alike.
- Search & Replace (Ctrl+H) with regex support, case sensitivity, and whole word matching
- Translation Memory (SQLite) with fuzzy matching and auto-learning from your translations
- Batch editing (Ctrl+Shift+B) for bulk fuzzy fixes and search/replace across all entries
- Autocomplete from TM suggestions speeds up repetitive translation work
- Inline editing - double-click any entry in the list to edit directly
- Plural forms editor with CLDR rules for proper localization
- Translator comments editing for better context and collaboration
- Propagate identical translations across entries with same source text
- Focus mode (Ctrl+Shift+F) shows only untranslated or fuzzy entries
- Fullscreen mode (F11) for distraction-free translation
- Syntax highlighting for HTML tags, format strings, and escape sequences
- Drag & drop files for quick opening
- Glossary system with consistency checking across your project
- Enhanced linter detecting HTML tag mismatches, missing accelerator keys, duplicates, case mismatches, CLDR validation, and number localization issues
- AI Review (Ctrl+Shift+A) with offline heuristic fallback for quality scoring
- Confidence score per translation entry with visual indicators
- Back-translation verification to catch meaning drift
- Regex tester for format string validation
- Layout simulator with pixel width checking for UI text
- Unicode inspector for character encoding issues
- HTML/PDF reports with quality scores, progress charts, and detailed metrics
- Statistics dialog (Ctrl+I) with word counts, character counts, and completion rates
- Burndown chart showing translation progress over time
- Locale map - world map visualization with translation status by region
- PO (gettext) - GNU gettext portable object files
- TS (Qt Linguist) - Qt translation source files
- XLIFF - XML Localization Interchange File Format
- JSON - Generic JSON translation files
- YAML - YAML-based translation files
- Android XML - Android string resources
- ARB - Application Resource Bundle (Flutter/Dart)
- PHP - PHP array-based translation files
- Apple .strings/.stringsdict - iOS/macOS localization files
- Unity .asset - Unity game engine localization
- RESX (.NET) - Microsoft .NET resource files
- Java .properties - Java properties files
- Chrome i18n JSON - Chrome extension localization
- Godot .csv/.tres - Godot game engine translation files
- Subtitles .srt/.vtt - Subtitle file support
- TMX import/export - Translation Memory eXchange format
- Weblate/Transifex/Crowdin sync for cloud-based translation platforms
- Git integration - commit and push directly from the application
- Email translations to Translation Project coordinator
- Gettext msgmerge integration for updating translation files
- Source code context from local files or GitHub repositories
- OCR screenshot text extraction for translating UI elements
- Bookmarks (Ctrl+B, F2) for marking important entries and quick navigation
- Tags and filters per entry for custom organization
- Review mode with approve/reject workflow for translation teams
- Macro recording/playback for automating repetitive tasks
- Pomodoro timer built-in for focused translation sessions
- Watch mode - auto-reload files when changed externally
- Quick actions (Ctrl+.) for common operations
- Pinned entries - keep important translations visible
- 5 beautiful themes: Light, Dark, Solarized Dark, Nord, and Monokai
- Plugin system (
~/.local/share/linguaedit/plugins/) for custom extensions - Character counter with configurable length limits
- TTS preview - hear your translations spoken aloud
- Gamification system with achievements and progress tracking
- File header editor (Ctrl+Shift+H) for metadata management
- Project view (Ctrl+Shift+O) for multi-file project management
- Preview panel showing formatted output
- Minimap for quick navigation in large files
- Diff view (Ctrl+D) comparing source and target languages
- Performance optimizations for large translation files (10,000+ entries)
- Memory usage improvements with lazy loading and caching
- Crash recovery with auto-save and session restore
- Export optimizations for faster file generation
- Database indexing for faster Translation Memory searches
- Multi-threading for non-blocking UI operations
- Swedish translation - Native svenska språkstöd
- German translation - Deutsche Übersetzung (partial)
- French translation - Traduction française (partial)
- Spanish translation - Traducción en español (partial)
- Right-to-left (RTL) support for Arabic, Hebrew, and other RTL languages
- Fixed memory leaks in large file processing
- Resolved Unicode handling issues in file saving
- Fixed crash when opening corrupted translation files
- Improved error handling for network operations
- Fixed search highlighting in dark themes
- Resolved export formatting issues for various file types
- Fixed keyboard shortcuts in macOS
- Improved file locking to prevent data corruption
- Fixed drag and drop on Windows and Linux
- Resolved Qt6 compatibility issues
- CI/CD pipeline with automated testing and building
- Cross-platform builds for Windows, macOS, and Linux
- Flatpak packaging for Linux distributions
- Windows installer with proper uninstall support
- macOS app bundle with code signing
- AppImage support for universal Linux compatibility
Migration from 0.8.x: This release includes automatic migration of settings and translation memories. Your existing projects will be upgraded seamlessly.
Breaking Changes: Plugin API has been updated - plugins written for 0.8.x will need minor updates.
Download: Available on GitHub Releases, Flathub, and package managers.
Contributors: Special thanks to all beta testers and translators who helped make this release possible.
Total additions since v0.8.0: 55+ features, 15+ file formats, 12 languages, 1,000+ commits