LinguaEdit
LinguaEdit is a desktop editor for software localization files and subtitles. It runs on Linux, macOS, and Windows and is built with Python, PySide6, and Qt 6.
- Website: linguaedit.org
- Downloads: GitHub Releases
- Changelog: CHANGELOG.md
- Bugs and feature requests: GitHub Issues
Screenshots
Editor
Validation
Subtitle editing
Install
The latest release is v1.8.20. Download the file for your system:
| Platform | Download | Install |
|---|---|---|
| macOS, Apple Silicon | ZIP | Unzip and move LinguaEdit to Applications. |
| macOS, Intel | ZIP | Unzip and move LinguaEdit to Applications. |
| Windows | Installer | Run the installer. |
| Debian or Ubuntu | DEB package | Install with APT or a package manager. |
| Python | Wheel | Install with pip; requires Python 3.10 or newer. |
The Python package published on PyPI may lag behind the GitHub release. For v1.8.20, download the wheel above, then run:
python -m pip install ./linguaedit-1.8.20-py3-none-any.whl
linguaedit-gui
The macOS app requires macOS 13 or newer. The Windows installer does not require a separate Python installation. The Debian package requires Python 3.10 or newer and installs its Python dependencies during setup.
Optional tools: ffmpeg for extracting subtitles from video, hunspell for spell checking, and git for version control features.
Supported formats
LinguaEdit edits the following localization formats:
| Format | Extensions |
|---|---|
| GNU gettext | .po, .pot |
| Qt Linguist | .ts |
| XLIFF 1.2 and 2.0 | .xliff, .xlf |
| SDLXLIFF | .sdlxliff |
| memoQ XLIFF | .mqxliff |
| JSON localization files | .json |
| YAML | .yml, .yaml |
| Android resources | .xml |
| Flutter ARB | .arb |
| PHP arrays | .php |
| Java Properties | .properties |
| Apple Strings and Stringsdict | .strings, .stringsdict |
| Unity assets | .asset |
| .NET resources | .resx |
| Chrome extension messages | messages.json |
| Godot translations | .csv, .tres |
| SubRip and WebVTT subtitles | .srt, .vtt |
TMX is supported for translation-memory import and export. It is not an editable catalog format. See Supported Formats for details.
Features
- Edit several files in tabs; open files by drag and drop.
- Find and replace text with regular expressions, case matching, or whole-word matching.
- Filter entries by translation status, warnings, bookmarks, and tags.
- Use translation memory with fuzzy matches, context weighting, and TMX import/export.
- Maintain glossaries with approved and forbidden terms, and check term consistency.
- Get suggestions from DeepL, OpenAI, Google, Lingva, MyMemory, Argos Translate, and OpenNMT-py. Hosted services may require API credentials. Argos and OpenNMT can run locally; OpenNMT also requires a compatible model and
onmt_translateonPATH. - Check placeholders, markup, plural forms, terminology, accessibility, and other translation issues before saving.
- Review changes with Git, monitor files for external edits, and recover unsaved work from local snapshots.
- Translate subtitle files and extract subtitles from video with FFmpeg.
- Use the dashboard, layout simulator, regex tester, OCR, text-to-speech, macros, and configurable QA profiles.
Keyboard shortcuts
| Shortcut | Action |
|---|---|
Ctrl+O |
Open a file |
Ctrl+S |
Save |
Ctrl+H |
Find and replace |
Ctrl+U |
Toggle fuzzy status |
Alt+Enter |
Go to the next untranslated entry |
Ctrl+Enter |
Save and go to the next untranslated entry |
Ctrl+B |
Copy source text to translation |
Ctrl+D |
Open the project dashboard |
Ctrl+Shift+D |
Show Git diff |
Ctrl+Alt+T |
Open batch translation |
Ctrl+Shift+F |
Toggle focus mode |
Ctrl+Alt+Z |
Toggle Zen mode |
Ctrl+R |
Toggle review mode |
Ctrl+Shift+A |
Open AI review |
F11 |
Toggle full screen |
Translations
The project has 18 language catalogs with 1,612 messages. Catalog updates sync daily from Transifex through GitHub Actions. Release builds include catalogs that are more than 20% translated.
To contribute a translation, join the project on Transifex.
Build from source
git clone https://github.com/yeager/linguaedit.git
cd linguaedit
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[dev]" build
linguaedit-gui
Build a wheel with:
python -m build --wheel
The build compiles .ts catalogs to .qm files inside the package when a catalog is more than 20% translated. Compiled .qm files are build artifacts and are not stored in the source tree. The release workflow builds the macOS apps, Windows installer, Debian package, and Python wheel; see GitHub Actions.
The automated suite contains 147 tests. To run it locally:
QT_QPA_PLATFORM=offscreen pytest -q
License
GPL-3.0-or-later. See LICENSE.
Author
Daniel Nylander — danielnylander.se · GitHub
Metadata
Release files for linguaedit 1.8.20
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| linguaedit-1.8.20.tar.gz | 986.1 kB | With provenance | Details for linguaedit-1.8.20.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| linguaedit-1.8.20-py3-none-any.whl | Python 3 | none | any | Details for linguaedit-1.8.20-py3-none-any.whl |
Total release size: 2.3 MB
Release files / linguaedit-1.8.20.tar.gz
| Download URL | linguaedit-1.8.20.tar.gz |
|---|---|
| Size | 986.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e62fa662227809317b32d5a1f7968840f41e37175f4445895e74897b5c71b34b
|
|
BLAKE2b-256 checksum How to use checksums |
c391cccfa8ad8893856eaf39e2836c88d469bad3a7a04455c0635a83cf91d936
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.
Transparency logRelease files / linguaedit-1.8.20-py3-none-any.whl
| Download URL | linguaedit-1.8.20-py3-none-any.whl |
|---|---|
| Size | 1.3 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cc414ccf5f52ac77bff40c8c1304906c97d09d52387e7986523ffd0f12d801fb
|
|
BLAKE2b-256 checksum How to use checksums |
0d38340c01a1f8f8fbe7dc15b660bc53385d42decf576a776897241676e6a0ee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.
Transparency logSecurity for linguaedit 1.8.20
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for linguaedit-1.8.20.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.