A graphical translator for the KDE desktop that works fully offline. It is a Kirigami client for Dragomand (website: dragomand.l10n-bg.dev), the per-user daemon that runs Mozilla's Firefox translation models locally, so no text leaves the computer.
- Translate: pick the two languages, type or paste, and the
translation follows as you type (or press
Ctrl+Return). Several translations stay open in tabs (Ctrl+T,Ctrl+W); only the visible one translates while typing, and the tabs return on the next start.- The direction is detected: text in the target language swaps the languages, and text in a third language offers to translate from it.
- Pasted formatting (headings, bold, italic, links, lists, tables) can be kept, and the translation keeps it too.
- In plain text, the sentence under the cursor is highlighted in the translation, from the engine's own sentence alignment.
- Both texts can be read aloud (Qt TextToSpeech), and the source is spell checked in its language (Sonnet).
- Text on screen or in an image is read with Tesseract and translated. The screen region is picked with Spectacle where it is installed, and through the desktop portal's screenshot elsewhere (GNOME, the Flatpak).
- When no direct model exists the daemon pivots through English, which the page points out, and each model's quality score is shown.
- Documents and subtitles: plain text, Markdown, SubRip and WebVTT
files are translated through a file descriptor, text only: code,
links, numbering, timings and speaker tags stay as they are. Also from
Dolphin's context menu and KDE's Share menus, or
krakoman --document FILE. - History and phrasebook: translations are kept on this computer (unless turned off); starred ones form a phrasebook.
- Desktop: a system tray icon (optional),
Meta+Alt+Tto translate the selected text from any application, and optionally translating whatever is copied. - Language pairs: every pair Mozilla publishes, installed or not, with version, size, origin and quality; install, update, remove, and check the provider for updates.
- Daemon status: version, memory in use, queued requests and loaded pairs, fetched on demand only (polling would keep an idle daemon from exiting).
While translating as you type, a missing pair is only reported, with an Install and Translate button; nothing is downloaded without an explicit request.
The command line pre-fills the window, and a second launch hands its arguments to the running one:
krakoman --source bg --target en "Добро утро"
krakoman --document talk.srtKeyboard: Ctrl+Return translates, Ctrl+L goes to the text,
Ctrl+Shift+S swaps the languages, Ctrl+Shift+C copies the
translation, Ctrl+T and Ctrl+W open and close tabs.
Needs CMake 3.24, extra-cmake-modules, libdragoman-qt, KF6 (Config, CoreAddons, Crash, DBusAddons, GlobalAccel, GuiAddons, I18n, Kirigami, Sonnet, StatusNotifierItem) 6.13 or newer and Qt 6.8 or newer (Concurrent, Core, DBus, Gui, Qml, Quick, QuickControls2, Widgets). Optional: KF6 Purpose (the Share menu entry) and Tesseract (reading text on screen and in images, through pkg-config). At run time it needs Kirigami Addons and the KItemModels and Sonnet QML modules; the QtTextToSpeech QML module with a speech engine enables reading aloud. Translation itself needs a running Dragomand 0.2 or newer:
cmake -S . -B build -G Ninja # add -DDragomanQt_DIR=<libdragoman-qt build>/buildtree for an uninstalled library
cmake --build build
ctest --test-dir build
cmake --install build --prefix ~/.local # or sudo cmake --install buildThe tests run the tabs, documents and pair list against libdragoman-qt's
fake daemon on a private dbus-daemon, and never touch the session bus.
packaging/flatpak/ holds a Flatpak manifest (KDE 6.11 runtime). The
sandbox reaches the host's Dragomand over the session bus; the runtime
has no Tesseract and no speech engine, so those two features are not
part of that build.
src/*.{h,cpp} the QML-facing models and controllers
src/qml/ the Kirigami pages
purpose/ the Share menu plugin
data/ Dolphin's service menu
packaging/flatpak/ the Flatpak manifest
autotests/ unit tests and the fake daemon they share
po/ translations (scripts/update-translations.sh)
The D-Bus client itself lives in libdragoman-qt, shared with the other Qt front ends.
scripts/update-translations.sh extracts the strings into
po/krakoman.pot and merges them into every po/<language>/krakoman.po.
Language names come from the iso-codes catalogs when those are
installed; the library's own messages are translated in libdragoman-qt.
GPL-3.0-or-later. The project follows the REUSE
specification: every file states its license, and the texts are in
LICENSES/.