What's Changed
Localization Updates
- Spanish: Added Spanish translation by @ericdq (#283)
- Finnish: Updated translation, documentation, and user guide by @jkinnunen (#284, #316, #342)
- Simplified Chinese: Updated documentation and UI translations by @cary-rowen (#293, #369)
- Portuguese: Translation update by @George-br (#296)
- French: Translation updated by @sofquipeut (#313)
- Georgian: Translation updated by @DraganRatkovich (#368)
Features & Enhancements
- Introduced the online Baidu OCR engine by @cary-rowen (#334)
- Added Vivo OCR engine (by NVDACN) by @cary-rowen (#338)
- Implemented Global and Local Media Key Controls for TTS by @cary-rowen (#328)
- Added a text wrapping option in the UI by @cary-rowen (#299)
- Added bookmark sorting by position by @pauliyobo (#324)
- Allowed book metadata to be imported from QRD files by @pauliyobo (#310)
- Added the 'View Change Log' menu item by @cary-rowen (#337)
Document Handling
- Update the documents cache whenever EPUB or Word files are modified by @pauliyobo (#289)
- Fixed regression where
.docxdocuments were not opening by @pauliyobo (#312, #315) - Preserve original URI to correctly restore the last read position for converted documents by @cary-rowen (#340)
- EPUB specific fixes:
- Handle missing
<head>or<body>tags in EPUB HTML fragments by @cary-rowen (#319) - Fix table accessibility and structure for EPUBs by @cary-rowen (#362)
- Add exception handling for malformed HTML content in
_get_title_for_sectionby @cary-rowen (#356) - Corrected typo in
get_epub_html_item_by_hrefby @cary-rowen (#357)
- Handle missing
Navigation & Comments
- Allow comments to target specific sections of a line instead of the whole line by @pauliyobo (#280)
- Fix annotation navigation and improve point-based comment behavior by @cary-rowen (#336)
- Fix documents losing associated comments when changing storage path by @pauliyobo, @cary-rowen (#349)
- Resolve incomplete link text display and footnote navigation issues, including cursor position adjustments by @cary-rowen (#318, #320, #322)
General Fixes & Improvements
- Implement robust version comparison for update checks by @cary-rowen (#301)
- Harden speech engine loading and resolve configuration mismatch by @cary-rowen (#339)
- Add User-Agent to
http_resourcerequests by @pauliyobo (#347) - Use a specific TextFixerConfig instance to control ftfy's text fixing process by @cary-rowen (#298)
- Swap zoom button labels for clarity in BookViewerToolbar by @cary-rowen (#292)
Dependency & Tooling Updates
- Build & Environment:
- Migrate to uv/ruff and modernize build system and environment metadata by @cary-rowen (#351, #352)
- Add CI workflow for pytest by @cary-rowen (#355)
- Add automated winget publishing workflow by @cary-rowen (#359)
- Configure dependabot for automated updates by @cary-rowen (#360)
- Dependency Bumps:
- Upgrade dependencies to resolve deprecation warnings by @cary-rowen (#358)
- Bump
urllib3to 2.6.3 by @dependabot and @cary-rowen (#345, #350, #353, #354) - Bump
jinja2to 3.1.6 by @dependabot (#291, #308) - Bump
requestsfrom 2.32.3 to 2.32.4 by @dependabot (#325) - Bump
mammothfrom 1.7.1 to 1.11.0 by @dependabot (#344) - Bump the actions group by @dependabot (#361, #365)
New Contributors
- @ericdq made their first contribution (#283)
- @George-br made their first contribution (#296)
- @sofquipeut made their first contribution (#313)
Full Changelog: 2024.2...2026.1