Download Latest Version PyGlossarySlint-5.4.2-Windows-x64-setup.exe (46.4 MB) Google Add to Preferred Sources
Home / 5.4.0
Name Modified Size InfoDownloads / Week
Parent folder
PyGlossaryTk-5.4.0-macos-14.dmg 2026-05-26 53.7 MB
PyGlossaryTk-5.4.0-macos-15.dmg 2026-05-26 54.2 MB
PyGlossary-5.4.0-Windows-x64-setup.exe 2026-05-26 39.2 MB
PyGlossary-5.4.0-Windows-X64-dist.zip 2026-05-26 57.3 MB
5.4.0 source code.tar.gz 2026-05-26 777.5 kB
5.4.0 source code.zip 2026-05-26 1.1 MB
README.md 2026-05-26 6.4 kB
Totals: 7 Items   206.2 MB 0

What's Changed

Compatibility changes

  • XDXF: switch to XSL transform mode by default to fix whitespace issues (#562)
  • On Windows and macOS, the default GUI is now tk_wizard (use --ui=tk for the classic Tkinter UI)
  • On Linux, auto-launching a GUI is disabled when neither PyGObject (gi) nor Tkinter is available (#713)

Bug fixes (security)

  • DataEntry.save: refuse absolute paths and ../ segments to prevent malicious dictionary content from writing files outside the chosen output directory. Thanks to @gistrec for the private report.

Bug fixes (core)

  • Avoid loading all plugin modules at startup despite reading from index.json, which could register plugins twice (#712)

Bug fixes (plugins)

  • Aard2 Slob writer: fix compatibility with Python 3.14: option file_size_approx misbehaving
  • Aard2 Slob writer: fix image link replacement (missing slash in replacement) (#723)
  • MOBI writer: fix leading double-quote in CSS charset declaration (#715)

Bug fixes (user interface)

  • Interactive CLI: fix text color on light terminal backgrounds
  • CLI: exit early when inputFormat is invalid
  • Gtk4 on macOS: fix AttributeError for display.get_primary_monitor (#724)
  • Gtk3 / Gtk4: fix exception when convertOptions=None
  • Tkinter UI: fix not applying infoOverride from flags like --name

Features

New read/write format functionalities

  • Babylon BGL writer: added for testing purposes for now; wraps HTML src / href resource links into BGL binary link format when bundled data entries are present
  • TMX reader (#716) — Translation Memory eXchange XML (.tmx), the standard interchange format for translation-memory tools. Use case: import source/target translation units from CAT tools or TM archives as glossary entries for lookup or conversion to StarDict, Tabfile, etc.
  • XLIFF reader (#716) — XML Localization Interchange File Format (.xlf, .xliff) used in software and document localization pipelines. Use case: turn bilingual XLIFF segments into term/definition pairs for dictionaries or further processing alongside TMX workflows.
  • FreeDict Markdown reader — reads FreeDict TEI (.tei) like the existing FreeDict plugin, but stores definitions as Markdown instead of HTML. Use case: feed FreeDict dictionaries into Markdown-friendly targets (e.g. Yomitan, view-glossary, or text-oriented writers) without HTML cleanup.
  • WordFrequency.info reader — tab-separated COCA lemma frequency lists (.wordfrequency, e.g. lemmas_60k.txt from wordfrequency.info (www.wordfrequency.info)), with part-of-speech tags and per-genre counts. Use case: build frequency-ranked vocabulary glossaries for learners, flashcard apps, or filtered word lists.
  • AppleDict Source reader — Apple Dictionary XML source bundles (.apple directories produced by Dictionary Development Kit). Use case: read and convert existing Apple dictionary source projects on any platform, edit entries outside macOS, or round-trip with the existing AppleDict writer.

New command-line features

Conversion flags and standalone CLI tools (pyglossary, pyglossary-view / view-glossary, pyglossary-diff / diff-glossary):

  • --skip-term-regex=REGEX — skip entries whose headword or alternate fully matches a regex (skip_term_regex config key; documented in doc/config.rst and doc/entry-filters.md)
  • pyglossary-view (view-glossary): render Markdown definitions (needs rich module)
  • Expand built-in help text: entry filters, sorting, read/write options, --interactive / --no-interactive, Gtk4 launcher, --log-time, and SQLite mode notes

New user interface features

  • Add ui_tk_wizard: step-by-step Tkinter wizard (--ui=tk_wizard, --tkw); default on Windows and macOS
  • Add ui_qt6: Qt 6 wizard-based interface (--ui=qt6, --ui=qt, --qt6, --qt); install with pip install pyglossary[qt6]
  • Gtk3 / Gtk4: add Options → Info / Metadata dialog — set Glossary Name, Source Language, and Target Language before conversion (same fields as the Tk/Qt dialogs and CLI flags --name, --source-lang, --target-lang); values are passed as glossary info to the output writer (e.g. StarDict .ifo, EPUB metadata)
  • About dialogs / tabs in Gtk3, Gtk4, Tk, Qt6 UIs: show Python and GUI toolkit versions

Improvements

Other changes

  • Update README.md format table with new readers
  • Refactor large modules into packages: Babylon BGL reader, Slob, Tkinter UI, interactive CLI
  • Replace scripts/gen bash script with a faster Python implementation
  • Add ARCHITECTURE.md, CONTRIBUTING.md, and doc/tabfile-spec.md
  • Ship some test data files with the repository
  • CI: add workflow to prevent large git objects; check that plugin names contain no spaces
  • Linting and typing: ruff/mypy cleanup across the codebase

New Contributors

  • @daxida made their first contribution in #718

Full Changelog: https://github.com/ilius/pyglossary/compare/5.3.0...5.4.0

Source: README.md, updated 2026-05-26