supervertaler 1.9.132__tar.gz → 1.9.166__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (408) hide show
  1. {supervertaler-1.9.132 → supervertaler-1.9.166}/CHANGELOG.md +583 -1
  2. {supervertaler-1.9.132 → supervertaler-1.9.166}/FAQ.md +3 -3
  3. {supervertaler-1.9.132 → supervertaler-1.9.166}/PKG-INFO +70 -7
  4. {supervertaler-1.9.132 → supervertaler-1.9.166}/README.md +68 -5
  5. {supervertaler-1.9.132 → supervertaler-1.9.166}/Supervertaler.py +3376 -822
  6. supervertaler-1.9.166/docs/dev-notes/pre-translation-dialog-enhancement.md +401 -0
  7. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/index.html +11 -11
  8. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/reference/faq.md +3 -3
  9. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/ai_attachment_manager.py +3 -3
  10. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/config_manager.py +10 -10
  11. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/database_manager.py +197 -52
  12. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/non_translatables_manager.py +1 -1
  13. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/prompt_library_migration.py +1 -1
  14. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/setup_wizard.py +8 -8
  15. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/superbrowser.py +16 -12
  16. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/superlookup.py +18 -10
  17. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/tag_manager.py +20 -2
  18. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/termview_widget.py +20 -12
  19. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/tm_metadata_manager.py +41 -0
  20. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/tmx_editor_qt.py +1 -1
  21. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/translation_memory.py +54 -9
  22. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/unified_prompt_library.py +1 -1
  23. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/unified_prompt_manager_qt.py +10 -29
  24. {supervertaler-1.9.132 → supervertaler-1.9.166}/pyproject.toml +2 -2
  25. {supervertaler-1.9.132 → supervertaler-1.9.166}/setup.py +1 -1
  26. {supervertaler-1.9.132 → supervertaler-1.9.166}/supervertaler.egg-info/PKG-INFO +70 -7
  27. {supervertaler-1.9.132 → supervertaler-1.9.166}/supervertaler.egg-info/SOURCES.txt +2 -37
  28. supervertaler-1.9.132/tests/test_add_term.py +0 -42
  29. supervertaler-1.9.132/tests/test_ai_actions.py +0 -614
  30. supervertaler-1.9.132/tests/test_all_matches.py +0 -65
  31. supervertaler-1.9.132/tests/test_api_keys.py +0 -79
  32. supervertaler-1.9.132/tests/test_attachment_manager.py +0 -176
  33. supervertaler-1.9.132/tests/test_autofingers.py +0 -187
  34. supervertaler-1.9.132/tests/test_autofingers_fuzzy.py +0 -308
  35. supervertaler-1.9.132/tests/test_cafetran_workflow.py +0 -141
  36. supervertaler-1.9.132/tests/test_chat_ui.py +0 -133
  37. supervertaler-1.9.132/tests/test_claude_models.py +0 -38
  38. supervertaler-1.9.132/tests/test_current_database.py +0 -71
  39. supervertaler-1.9.132/tests/test_database.py +0 -139
  40. supervertaler-1.9.132/tests/test_db_schema.py +0 -35
  41. supervertaler-1.9.132/tests/test_delete_entry.py +0 -43
  42. supervertaler-1.9.132/tests/test_doc_structure.py +0 -46
  43. supervertaler-1.9.132/tests/test_down_arrow_logic.py +0 -50
  44. supervertaler-1.9.132/tests/test_fts5_special_chars.py +0 -48
  45. supervertaler-1.9.132/tests/test_google_translate.py +0 -76
  46. supervertaler-1.9.132/tests/test_google_translate_locale.py +0 -90
  47. supervertaler-1.9.132/tests/test_google_translate_rest.py +0 -83
  48. supervertaler-1.9.132/tests/test_image_extractor.py +0 -51
  49. supervertaler-1.9.132/tests/test_lang_codes.py +0 -41
  50. supervertaler-1.9.132/tests/test_language_detection.py +0 -93
  51. supervertaler-1.9.132/tests/test_match_pane_ui.py +0 -83
  52. supervertaler-1.9.132/tests/test_memoq_navigation.py +0 -41
  53. supervertaler-1.9.132/tests/test_mt_apis.py +0 -81
  54. supervertaler-1.9.132/tests/test_pipe_formatting.py +0 -135
  55. supervertaler-1.9.132/tests/test_tag_cleaner_integration.py +0 -114
  56. supervertaler-1.9.132/tests/test_termbase.py +0 -40
  57. supervertaler-1.9.132/tests/test_termbase_highlighting.py +0 -88
  58. supervertaler-1.9.132/tests/test_termbase_search.py +0 -54
  59. supervertaler-1.9.132/tests/test_tm_metadata.py +0 -43
  60. supervertaler-1.9.132/tests/test_tm_methods.py +0 -57
  61. supervertaler-1.9.132/tests/test_tmx_editor.py +0 -31
  62. supervertaler-1.9.132/tests/test_tmx_export.py +0 -153
  63. supervertaler-1.9.132/tests/test_unified_prompt_library.py +0 -228
  64. {supervertaler-1.9.132 → supervertaler-1.9.166}/LICENSE +0 -0
  65. {supervertaler-1.9.132 → supervertaler-1.9.166}/MANIFEST.in +0 -0
  66. {supervertaler-1.9.132 → supervertaler-1.9.166}/assets/ICON_CONVERSION_GUIDE.md +0 -0
  67. {supervertaler-1.9.132 → supervertaler-1.9.166}/assets/MB.ico +0 -0
  68. {supervertaler-1.9.132 → supervertaler-1.9.166}/assets/README.md +0 -0
  69. {supervertaler-1.9.132 → supervertaler-1.9.166}/assets/generate_icons.py +0 -0
  70. {supervertaler-1.9.132 → supervertaler-1.9.166}/assets/icon.ico +0 -0
  71. {supervertaler-1.9.132 → supervertaler-1.9.166}/assets/icon_128.png +0 -0
  72. {supervertaler-1.9.132 → supervertaler-1.9.166}/assets/icon_24.png +0 -0
  73. {supervertaler-1.9.132 → supervertaler-1.9.166}/assets/icon_256.png +0 -0
  74. {supervertaler-1.9.132 → supervertaler-1.9.166}/assets/icon_32.png +0 -0
  75. {supervertaler-1.9.132 → supervertaler-1.9.166}/assets/icon_48.png +0 -0
  76. {supervertaler-1.9.132 → supervertaler-1.9.166}/assets/icon_64.png +0 -0
  77. {supervertaler-1.9.132 → supervertaler-1.9.166}/assets/icon_preview.html +0 -0
  78. {supervertaler-1.9.132 → supervertaler-1.9.166}/assets/icon_sv_modern.svg +0 -0
  79. {supervertaler-1.9.132 → supervertaler-1.9.166}/assets/icon_sv_modern_paths.svg +0 -0
  80. {supervertaler-1.9.132 → supervertaler-1.9.166}/assets/icon_sv_simple.svg +0 -0
  81. {supervertaler-1.9.132 → supervertaler-1.9.166}/assets/patent-drawing-1951.jpg +0 -0
  82. {supervertaler-1.9.132 → supervertaler-1.9.166}/assets/supervertaler_icon_colours.png +0 -0
  83. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/.nojekyll +0 -0
  84. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/CNAME +0 -0
  85. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/SIMILAR_APPS.md +0 -0
  86. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/apple-touch-icon.png +0 -0
  87. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/BUGFIX_README.md +0 -0
  88. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/CHANGELIST.md +0 -0
  89. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/CHANGELOG_Old.md +0 -0
  90. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/FAQ.md +0 -0
  91. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/INSTALLATION_v1.7.8.md +0 -0
  92. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/PROJECT_ORGANIZATION.md +0 -0
  93. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/TERMBASE_REFACTORING_SUMMARY.md +0 -0
  94. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/USER_GUIDE_v1.7.8.md +0 -0
  95. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/VERIFICATION_CHECKLIST.md +0 -0
  96. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/BEFORE_AFTER_COMPARISON.md +0 -0
  97. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/BUGFIX_SESSION_SUMMARY.md +0 -0
  98. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/COLOR_SCHEME_REFERENCE.md +0 -0
  99. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/COMPACT_LAYOUT_CHANGELOG.md +0 -0
  100. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/COMPACT_LAYOUT_DOCUMENTATION_INDEX.md +0 -0
  101. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/COMPACT_LAYOUT_IMPLEMENTATION_SUMMARY.md +0 -0
  102. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/COMPACT_LAYOUT_UPDATE.md +0 -0
  103. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/COMPLETE_IMPLEMENTATION_SUMMARY.md +0 -0
  104. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/COMPLETE_PROJECT_SUMMARY.md +0 -0
  105. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/DATABASE_FINAL_SUMMARY.md +0 -0
  106. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/DATABASE_IMPLEMENTATION.md +0 -0
  107. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/DATABASE_PRODUCTION_READY.md +0 -0
  108. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/DATABASE_QUICK_REFERENCE.md +0 -0
  109. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/DUAL_VERSION_STRATEGY.md +0 -0
  110. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/FINAL_SESSION_SUMMARY.md +0 -0
  111. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/FOLDER_STRUCTURE_UPDATE.md +0 -0
  112. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/GITHUB_PAGES_SETUP.md +0 -0
  113. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/IMPLEMENTATION_CHECKLIST.md +0 -0
  114. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/IMPLEMENTATION_COMPLETE.md +0 -0
  115. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/IMPLEMENTATION_COMPLETE_COMPACT_LAYOUT.md +0 -0
  116. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/IMPLEMENTATION_READY.md +0 -0
  117. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/IMPLEMENTATION_STATUS_PHASE2_READY.md +0 -0
  118. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/KEYBOARD_SHORTCUTS_MATCHES.md +0 -0
  119. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/LAYOUT_BEFORE_AFTER.md +0 -0
  120. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/MASTER_INDEX.md +0 -0
  121. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/MATCH_DISPLAY_IMPROVEMENTS.md +0 -0
  122. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/MATCH_DISPLAY_LONG_SEGMENTS_UPDATE.md +0 -0
  123. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/MATCH_DISPLAY_QUICK_REFERENCE.md +0 -0
  124. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/MATCH_INSERTION_FEATURES.md +0 -0
  125. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/MATCH_SHORTCUTS_QUICK_REF.md +0 -0
  126. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/MODULAR_ARCHITECTURE_GUIDE.md +0 -0
  127. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/PHASE2_IMPLEMENTATION_CHECKLIST.md +0 -0
  128. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/PHASE2_IMPLEMENTATION_DETAILED_CHECKLIST.md +0 -0
  129. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/PHASE2_IMPLEMENTATION_IN_PROGRESS.md +0 -0
  130. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/PHASE2_NEXT_STEPS.md +0 -0
  131. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/PHASE2_READY_TO_IMPLEMENT.md +0 -0
  132. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/PHASE2_START_HERE.md +0 -0
  133. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/QT_MIGRATION_PLAN.md +0 -0
  134. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/QT_SESSION_SUMMARY.md +0 -0
  135. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/QUICK_SESSION_SUMMARY.md +0 -0
  136. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/RELEASE_Qt_v1.0.0_Phase5.md +0 -0
  137. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/RELEASE_v1.9.38.md +0 -0
  138. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/RELEASE_v3.7.1.md +0 -0
  139. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/RELEASE_v3.7.6.md +0 -0
  140. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/RELEASE_v3.7.7.md +0 -0
  141. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/RESTRUCTURE_COMPLETE.md +0 -0
  142. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/SESSION_DOCUMENTATION_INDEX.md +0 -0
  143. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/SESSION_IMPLEMENTATION_SUMMARY.md +0 -0
  144. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/SESSION_LONG_SEGMENTS_COMPLETE.md +0 -0
  145. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/SESSION_MATCH_FEATURES_COMPLETE.md +0 -0
  146. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/SESSION_STATUS.md +0 -0
  147. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/SESSION_SUMMARY_Phase5.md +0 -0
  148. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/START_HERE.md +0 -0
  149. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/START_IMPLEMENTATION_HERE.md +0 -0
  150. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/STYLE_GUIDES_DELIVERABLES.md +0 -0
  151. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/STYLE_GUIDES_DOCUMENTATION_INDEX.md +0 -0
  152. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/STYLE_GUIDES_FEATURE_SUMMARY.md +0 -0
  153. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/STYLE_GUIDES_IMPLEMENTATION.md +0 -0
  154. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/STYLE_GUIDES_PROJECT_COMPLETION.md +0 -0
  155. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/STYLE_GUIDES_QUICK_REFERENCE.md +0 -0
  156. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/STYLE_GUIDES_VISUAL_ARCHITECTURE.md +0 -0
  157. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/TERMBASE_FIXES.md +0 -0
  158. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/TERMBASE_IMPLEMENTATION.md +0 -0
  159. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/TERMBASE_QUICK_START.md +0 -0
  160. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/TMX_CONCORDANCE_STYLE_HIGHLIGHTING.md +0 -0
  161. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/TMX_DUAL_HIGHLIGHTING.md +0 -0
  162. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/TMX_EDITOR_HIGHLIGHTING_UPDATE.md +0 -0
  163. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/TMX_EDITOR_IMPLEMENTATION.md +0 -0
  164. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/TMX_EDITOR_WORD_HIGHLIGHTING.md +0 -0
  165. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/TMX_TABLE_LAYOUT_INTEGRATED_EDIT.md +0 -0
  166. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/TMX_TREEVIEW_GRID_RESIZABLE.md +0 -0
  167. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/TMX_WORD_HIGHLIGHTING_IMPLEMENTATION_COMPLETE.md +0 -0
  168. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/TMX_WORD_HIGHLIGHTING_SUMMARY.md +0 -0
  169. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/TM_MATCH_PANE_CHECKLIST.md +0 -0
  170. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/TM_MATCH_PANE_IMPLEMENTATION.md +0 -0
  171. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/TM_MATCH_PANE_VISUAL_GUIDE.md +0 -0
  172. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/VISUAL_COLOR_REFERENCE.md +0 -0
  173. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/development/VISUAL_IMPLEMENTATION_SUMMARY.md +0 -0
  174. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/sessions/COLOR_FIX_EXPLANATION.md +0 -0
  175. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/sessions/DATABASE_CONSOLIDATION_REPORT.md +0 -0
  176. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/sessions/DUAL_EDITOR_WORKFLOW.md +0 -0
  177. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/sessions/DUAL_SELECTION_SYSTEM.md +0 -0
  178. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/sessions/IMPROVEMENTS_SUMMARY.md +0 -0
  179. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/sessions/ISSUES_FIXES_PROGRESS.md +0 -0
  180. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/sessions/MATCH_DISPLAY_COMPACT_FIXES.md +0 -0
  181. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/sessions/README_SESSION_TERMBASE.md +0 -0
  182. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/sessions/SAFE_DELETION_REMINDER.txt +0 -0
  183. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/sessions/SESSION_SUMMARY.md +0 -0
  184. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/sessions/TERMBASE_FIXES_APPLIED.md +0 -0
  185. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/sessions/TESTING_CHECKLIST.md +0 -0
  186. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/sessions/TMX_EDITOR_ANNOUNCEMENT.md +0 -0
  187. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/archive/sessions/TRANSLATION_RESULTS_IMPROVEMENTS.md +0 -0
  188. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/assets/Figure1.png +0 -0
  189. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/assets/patent-drawing-1951.jpg +0 -0
  190. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/changelog.html +0 -0
  191. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/dev-notes/QA.md +0 -0
  192. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/dev-notes/STYLE_GUIDES_UI_TEMPLATE.py +0 -0
  193. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/dev-notes/_Notes_2025-11-21.md +0 -0
  194. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/dev-notes/_things_to_remind_AIs_of_when_translating.md +0 -0
  195. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/dev-notes/issue_28.md +0 -0
  196. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/dev-notes/openai_debug.txt +0 -0
  197. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/emoji_mockup.html +0 -0
  198. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/favicon.ico +0 -0
  199. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/guides/AI_PROMPT_ASSISTANT_USER_GUIDE.md +0 -0
  200. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/guides/ENCODING_REPAIR_TOOL.md +0 -0
  201. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/guides/FAQ.md +0 -0
  202. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/guides/GLOSSARY_OF_SUPERVERTALER_TERMINOLOGY.md +0 -0
  203. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/guides/JSON_EDITORS_AND_HUMAN_READABLE_FORMAT.md +0 -0
  204. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/guides/KEYBOARD_SHORTCUTS.md +0 -0
  205. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/guides/PDF_RESCUE.md +0 -0
  206. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/guides/PROMPT_ASSISTANT_USER_GUIDE.md +0 -0
  207. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/guides/QT_SETTINGS_DIALOG_GUIDE.md +0 -0
  208. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/guides/TERM_EXTRACTION_GUIDE.md +0 -0
  209. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/guides/USER_DATA_FOLDER_SETUP.md +0 -0
  210. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/idea_beijer.bot_integration_idea/BEIJERBOT_FEATURE_ANALYSIS.md +0 -0
  211. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/idea_beijer.bot_integration_idea/CLI_BRIDGE_SPECIFICATION.md +0 -0
  212. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/idea_beijer.bot_integration_idea/IMPLEMENTATION_ROADMAP.md +0 -0
  213. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/idea_beijer.bot_integration_idea/QUICKMENU_INTEGRATION_PLAN.md +0 -0
  214. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/idea_beijer.bot_integration_idea/README.md +0 -0
  215. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/idea_tag-cleaner/tag_cleaner.md +0 -0
  216. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/idea_use_vscode_as_cat_tool/ai-agent-translation-workflow.md +0 -0
  217. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/logo.png +0 -0
  218. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/screenshots/2025-10-13_00-46-16.jpg +0 -0
  219. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/screenshots/Superlookup_Web_resources.jpg +0 -0
  220. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/screenshots/Supervertaler_AI-Assistant.jpg +0 -0
  221. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/screenshots/Supervertaler_CLASSIC_v2.4.1_(tkinter).jpg +0 -0
  222. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/screenshots/Supervertaler_Prompt_Manager_2026-01-14.png +0 -0
  223. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/screenshots/Supervertaler_Qt_LLM_LeaderboardResults_2025-11-12.jpg +0 -0
  224. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/screenshots/Supervertaler_Qt_LLM_Leaderboard_2025-11-12.jpg +0 -0
  225. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/screenshots/Supervertaler_Superbrowser.jpg +0 -0
  226. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/screenshots/Supervertaler_dark_mode_2025-12-16.jpg +0 -0
  227. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/screenshots/Supervertaler_dark_mode_2025-12-17.jpg +0 -0
  228. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/screenshots/Supervertaler_grid.jpg +0 -0
  229. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/screenshots/Supervertaler_tkinter (v3.7.7).jpg +0 -0
  230. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/screenshots/Supervertaler_v1.9.102_compare_panel_2026-01-14.png +0 -0
  231. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/screenshots/Supervertaler_v1.9.102_grid_2026-01-14.png +0 -0
  232. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/screenshots/new/Supervertaler-grid.jpg +0 -0
  233. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/screenshots/new/Supervertaler_AI-Assistant.jpg +0 -0
  234. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/screenshots/new/Supervertaler_Prompt-Library.jpg +0 -0
  235. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/screenshots/new/Supervertaler_Qt_LLM_LeaderboardResults_2025-11-12.jpg +0 -0
  236. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/screenshots/new/Supervertaler_Qt_LLM_Leaderboard_2025-11-12.jpg +0 -0
  237. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/screenshots/new/Supervertaler_Superbrowser.jpg +0 -0
  238. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/screenshots/old/2025-10-13_00-50-24.jpg +0 -0
  239. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/screenshots/old/Supervertaler_Qt_2025-11-12.jpg +0 -0
  240. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/script.js +0 -0
  241. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/site.webmanifest +0 -0
  242. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/specifications/AI_ASSISTANT_PHASE2_IMPLEMENTATION.md +0 -0
  243. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/specifications/AI_PROMPT_ASSISTANT.md +0 -0
  244. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/specifications/AI_PROMPT_ASSISTANT_IMPLEMENTATION.md +0 -0
  245. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/specifications/EXPORT_MENU_UPDATE.md +0 -0
  246. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/specifications/IMPLEMENTATION_SUMMARY.md +0 -0
  247. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/specifications/QT_PHASE2_COMPLETE.md +0 -0
  248. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/specifications/QT_PHASE3_COMPLETE.md +0 -0
  249. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/specifications/SUPERVERTALER_DATA_FORMAT.md +0 -0
  250. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/specifications/TASK_TYPE_SYSTEM.md +0 -0
  251. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/specifications/TERMINOLOGY_UPDATE_SUMMARY.md +0 -0
  252. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/specifications/opus-api-integration.md +0 -0
  253. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/styles.css +0 -0
  254. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/.gitbook/assets/supervertaler-logo.png +0 -0
  255. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/.gitbook/assets/sv-icon.svg +0 -0
  256. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/GITBOOK_LANDING_DRAFT.md +0 -0
  257. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/README.md +0 -0
  258. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/SUMMARY.md +0 -0
  259. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/ai-translation/batch-translation.md +0 -0
  260. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/ai-translation/ollama.md +0 -0
  261. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/ai-translation/overview.md +0 -0
  262. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/ai-translation/prompt-library.md +0 -0
  263. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/ai-translation/prompts.md +0 -0
  264. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/ai-translation/providers.md +0 -0
  265. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/ai-translation/single-segment.md +0 -0
  266. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/cat-tools/cafetran.md +0 -0
  267. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/cat-tools/memoq.md +0 -0
  268. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/cat-tools/overview.md +0 -0
  269. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/cat-tools/phrase.md +0 -0
  270. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/cat-tools/trados.md +0 -0
  271. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/editor/editing-confirming.md +0 -0
  272. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/editor/filtering.md +0 -0
  273. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/editor/find-replace.md +0 -0
  274. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/editor/keyboard-shortcuts.md +0 -0
  275. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/editor/navigation.md +0 -0
  276. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/editor/pagination.md +0 -0
  277. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/editor/translation-grid.md +0 -0
  278. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/get-started/api-keys.md +0 -0
  279. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/get-started/first-project.md +0 -0
  280. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/get-started/installation.md +0 -0
  281. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/get-started/quick-start.md +0 -0
  282. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/glossaries/basics.md +0 -0
  283. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/glossaries/creating.md +0 -0
  284. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/glossaries/extraction.md +0 -0
  285. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/glossaries/highlighting.md +0 -0
  286. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/glossaries/importing.md +0 -0
  287. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/import-export/bilingual-tables.md +0 -0
  288. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/import-export/docx-import.md +0 -0
  289. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/import-export/exporting.md +0 -0
  290. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/import-export/formats.md +0 -0
  291. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/import-export/multi-file.md +0 -0
  292. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/import-export/txt-import.md +0 -0
  293. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/qa/non-translatables.md +0 -0
  294. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/qa/spellcheck.md +0 -0
  295. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/qa/tag-validation.md +0 -0
  296. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/reference/changelog.md +0 -0
  297. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/reference/contributing.md +0 -0
  298. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/reference/file-formats.md +0 -0
  299. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/settings/fonts.md +0 -0
  300. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/settings/general.md +0 -0
  301. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/settings/shortcuts.md +0 -0
  302. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/settings/theme.md +0 -0
  303. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/settings/view.md +0 -0
  304. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/superlookup/glossary-search.md +0 -0
  305. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/superlookup/mt.md +0 -0
  306. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/superlookup/overview.md +0 -0
  307. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/superlookup/tm-search.md +0 -0
  308. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/superlookup/web-resources.md +0 -0
  309. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/tools/autofingers.md +0 -0
  310. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/tools/image-extractor.md +0 -0
  311. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/tools/pdf-rescue.md +0 -0
  312. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/tools/tmx-editor.md +0 -0
  313. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/tools/voice-commands.md +0 -0
  314. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/translation-memory/basics.md +0 -0
  315. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/translation-memory/fuzzy-matching.md +0 -0
  316. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/translation-memory/importing-tmx.md +0 -0
  317. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/translation-memory/managing-tms.md +0 -0
  318. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/translation-memory/supermemory.md +0 -0
  319. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/troubleshooting/api-issues.md +0 -0
  320. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/troubleshooting/common-issues.md +0 -0
  321. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/troubleshooting/import-export-errors.md +0 -0
  322. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/troubleshooting/linux.md +0 -0
  323. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/superdocs/troubleshooting/performance.md +0 -0
  324. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/sv-icon.svg +0 -0
  325. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/technical/AI_ASSISTANT_GUIDE.md +0 -0
  326. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/technical/AI_ASSISTANT_IMPLEMENTATION.md +0 -0
  327. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/technical/AI_ASSISTANT_INTEGRATION.md +0 -0
  328. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/technical/AI_ASSISTANT_QUICK_REFERENCE.md +0 -0
  329. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/technical/DATABASE_LOCATIONS.md +0 -0
  330. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/technical/FILTER_HIGHLIGHTING_FIX.md +0 -0
  331. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/technical/MODULE_HEADER_PATTERN.md +0 -0
  332. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/technical/README.md +0 -0
  333. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/technical/SUPERBROWSER_GUIDE.md +0 -0
  334. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/technical/SUPERVOICE_TROUBLESHOOTING.md +0 -0
  335. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/technical/UNIFIED_PROMPT_LIBRARY_GUIDE.md +0 -0
  336. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/technical/VOICE_DICTATION_GUIDE.md +0 -0
  337. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/tests/test_encoding_corruption.txt +0 -0
  338. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/web-app-manifest-192x192.png +0 -0
  339. {supervertaler-1.9.132 → supervertaler-1.9.166}/docs/web-app-manifest-512x512.png +0 -0
  340. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/__init__.py +0 -0
  341. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/ai_actions.py +0 -0
  342. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/ai_file_viewer_dialog.py +0 -0
  343. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/autofingers_engine.py +0 -0
  344. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/cafetran_docx_handler.py +0 -0
  345. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/database_migrations.py +0 -0
  346. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/dejavurtf_handler.py +0 -0
  347. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/document_analyzer.py +0 -0
  348. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/docx_handler.py +0 -0
  349. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/encoding_repair.py +0 -0
  350. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/encoding_repair_Qt.py +0 -0
  351. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/encoding_repair_ui.py +0 -0
  352. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/feature_manager.py +0 -0
  353. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/figure_context_manager.py +0 -0
  354. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/file_dialog_helper.py +0 -0
  355. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/find_replace.py +0 -0
  356. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/find_replace_qt.py +0 -0
  357. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/glossary_manager.py +0 -0
  358. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/image_extractor.py +0 -0
  359. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/keyboard_shortcuts_widget.py +0 -0
  360. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/llm_clients.py +0 -0
  361. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/llm_leaderboard.py +0 -0
  362. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/llm_superbench_ui.py +0 -0
  363. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/local_llm_setup.py +0 -0
  364. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/model_update_dialog.py +0 -0
  365. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/model_version_checker.py +0 -0
  366. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/mqxliff_handler.py +0 -0
  367. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/pdf_rescue_Qt.py +0 -0
  368. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/pdf_rescue_tkinter.py +0 -0
  369. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/phrase_docx_handler.py +0 -0
  370. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/project_home_panel.py +0 -0
  371. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/prompt_assistant.py +0 -0
  372. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/prompt_library.py +0 -0
  373. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/quick_access_sidebar.py +0 -0
  374. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/ribbon_widget.py +0 -0
  375. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/sdlppx_handler.py +0 -0
  376. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/shortcut_manager.py +0 -0
  377. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/simple_segmenter.py +0 -0
  378. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/spellcheck_manager.py +0 -0
  379. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/statuses.py +0 -0
  380. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/style_guide_manager.py +0 -0
  381. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/superbench_ui.py +0 -0
  382. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/supercleaner.py +0 -0
  383. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/supercleaner_ui.py +0 -0
  384. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/superdocs.py +0 -0
  385. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/superdocs_viewer_qt.py +0 -0
  386. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/tag_cleaner.py +0 -0
  387. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/term_extractor.py +0 -0
  388. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/termbase_entry_editor.py +0 -0
  389. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/termbase_import_export.py +0 -0
  390. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/termbase_manager.py +0 -0
  391. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/theme_manager.py +0 -0
  392. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/tm_editor_dialog.py +0 -0
  393. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/tm_manager_qt.py +0 -0
  394. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/tmx_editor.py +0 -0
  395. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/tmx_generator.py +0 -0
  396. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/tracked_changes.py +0 -0
  397. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/trados_docx_handler.py +0 -0
  398. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/translation_results_panel.py +0 -0
  399. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/translation_services.py +0 -0
  400. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/voice_commands.py +0 -0
  401. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/voice_dictation.py +0 -0
  402. {supervertaler-1.9.132 → supervertaler-1.9.166}/modules/voice_dictation_lite.py +0 -0
  403. {supervertaler-1.9.132 → supervertaler-1.9.166}/setup.cfg +0 -0
  404. {supervertaler-1.9.132 → supervertaler-1.9.166}/supervertaler.egg-info/dependency_links.txt +0 -0
  405. {supervertaler-1.9.132 → supervertaler-1.9.166}/supervertaler.egg-info/entry_points.txt +0 -0
  406. {supervertaler-1.9.132 → supervertaler-1.9.166}/supervertaler.egg-info/not-zip-safe +0 -0
  407. {supervertaler-1.9.132 → supervertaler-1.9.166}/supervertaler.egg-info/requires.txt +0 -0
  408. {supervertaler-1.9.132 → supervertaler-1.9.166}/supervertaler.egg-info/top_level.txt +0 -0
@@ -2,7 +2,589 @@
2
2
 
3
3
  All notable changes to Supervertaler are documented in this file.
4
4
 
5
- **Current Version:** v1.9.132 (January 20, 2026)
5
+ **Current Version:** v1.9.166 (January 27, 2026)
6
+
7
+ ## v1.9.166 - January 27, 2026
8
+
9
+ ### 🐛 Bug Fixes
10
+
11
+ - **CRITICAL: TM Write Checkbox Now Works**: Fixed confirmed translations going to "project" TM instead of user-designated TM. The Write checkbox (not Read) now determines where segments are saved. ([#126](https://github.com/michaelbeijer/Supervertaler/issues/126))
12
+ - **Root Cause**: `save_segment_to_activated_tms()` was using `get_active_tm_ids()` which only returns TMs with the Read checkbox enabled, ignoring the Write setting entirely.
13
+ - **Fix**: Added new `get_writable_tm_ids()` method that checks for TMs with Write enabled (`read_only = 0`), and updated save logic to use it.
14
+ - **Now**: Enabling Write checkbox alone (without Read) will save confirmed segments to that TM.
15
+
16
+ ---
17
+
18
+ ## v1.9.165 - January 27, 2026
19
+
20
+ ### ✨ New Features
21
+
22
+ - **Settings Panel Font Scaling**: Added UI Font Scale setting (80%-200%) in View Settings for better readability on high-DPI/4K displays. Especially useful for macOS users with Retina displays. Click "Apply" for instant preview or save to persist. ([#128](https://github.com/michaelbeijer/Supervertaler/issues/128))
23
+
24
+ ---
25
+
26
+ ## v1.9.164 - January 26, 2026
27
+
28
+ ### 🐛 Bug Fixes
29
+
30
+ - **macOS/Linux Compatibility**: Fixed `ModuleNotFoundError: No module named 'keyboard'` on non-Windows platforms. The `keyboard` module is Windows-only and is now imported conditionally with graceful fallback. ([#124](https://github.com/michaelbeijer/Supervertaler/issues/124))
31
+
32
+ ---
33
+
34
+ ## v1.9.163 - January 26, 2026
35
+
36
+ ### 🐛 Bug Fixes
37
+
38
+ - **DOCX Import**: Fixed paragraph style bold/italic not being captured. Headings using styles like "Title" or "Subtitle" now correctly export as bold. Previously only direct run-level formatting was detected.
39
+ - **Termview Font Settings**: Fixed spinbox up/down buttons not visible. Fixed font size changes only applying to bottom Termview, not Match Panel Termview.
40
+ - **View Settings Dialog**: Fixed "Settings Saved" dialog not closing when clicking OK.
41
+
42
+ ---
43
+
44
+ ## 🧪 Cache Kill Switch & Performance Improvements (v1.9.155-162) - January 26, 2026
45
+
46
+ **Experimental Cache Bypass for Faster Grid Navigation**
47
+
48
+ This release includes a series of performance optimizations and a new experimental feature for testing grid responsiveness.
49
+
50
+ ### 🧪 NEW: Cache Kill Switch (v1.9.162)
51
+
52
+ Added experimental setting to bypass all caching systems:
53
+
54
+ - **Location**: Settings → General → 🧪 Experimental Performance
55
+ - **Option**: "Disable all caches (for testing responsiveness)"
56
+ - **What it does**: Bypasses translation_matches_cache, termbase_cache, prefetch workers
57
+ - **Result**: Direct SQLite lookups - may actually be faster due to no lock contention!
58
+
59
+ Use this setting to test whether caching is helping or hurting your workflow.
60
+
61
+ ### ⚡ Performance Optimizations (v1.9.155-161)
62
+
63
+ **Ctrl+Enter Speed Improvements:**
64
+ - Reduced verbose logging overhead (15-20 fewer log calls per navigation)
65
+ - Preview tab now skips TM/glossary lookups entirely (faster reviewing)
66
+ - Idle prefetch system loads matches while you type (Ctrl+Enter feels instant)
67
+ - Direct termbase lookups in prefetch worker (no more race conditions)
68
+
69
+ **TM Matching Fixes:**
70
+ - Fixed missing fuzzy matches when using multiple TMs (increased FTS5 candidate pool)
71
+ - Fixed crashes when no TMs activated or only "Write" enabled
72
+ - Fixed wrong dictionary key in TM exact match lookups
73
+
74
+ **Proactive Grid Highlighting (v1.9.161):**
75
+ - Glossary terms now highlight in UPCOMING segments while you work on current one
76
+ - See terms in segments 255, 256, 257 while editing segment 254
77
+ - No more waiting for highlighting after navigation
78
+
79
+ ### 🔧 Bug Fixes
80
+
81
+ - Fixed batch translation crashes with empty TM lists
82
+ - Fixed TM pre-translation SQLite threading errors (now runs on main thread)
83
+ - Fixed retry pass variable scope issues in batch translate
84
+ - Fixed various logging and debug output issues
85
+
86
+ ---
87
+
88
+ ## 🎯 Match Panel Consolidation (v1.9.154) - January 25, 2026
89
+
90
+ **Streamlined Right Panel UI**
91
+
92
+ Replaced the Compare Panel with a more focused Match Panel that combines glossary terms and TM matches in one convenient view.
93
+
94
+ **What Changed:**
95
+ - **Compare Panel removed**: Was redundant with Translation Results panel
96
+ - **Match Panel introduced**: Combines Termview (glossary) + TM Source/Target boxes
97
+ - **Green TM boxes**: TM matches display with green background (#d4edda) for easy identification
98
+ - **Zoom shortcuts work**: Ctrl+Alt+= and Ctrl+Alt+- now zoom the Match Panel TM boxes
99
+ - **Cleaner tab structure**: Fewer tabs = less switching during translation
100
+
101
+ **New Right Panel Tabs:**
102
+ 1. Translation Results (TM/MT/Glossary matches in list view)
103
+ 2. Match Panel (Termview + TM Source/Target side-by-side)
104
+ 3. Preview (document preview)
105
+ 4. Segment Note
106
+ 5. Session Log
107
+
108
+ **Benefits:**
109
+ - ✅ Less tab clutter - removed redundant Compare Panel
110
+ - ✅ Glossary terms and TM matches visible together in Match Panel
111
+ - ✅ Green highlighting makes TM boxes easy to spot
112
+ - ✅ Keyboard zoom shortcuts work on TM boxes
113
+
114
+ ---
115
+
116
+ ## 📐 Tab Layout Reorganization (v1.9.153) - January 23, 2026
117
+
118
+ **Better Workflow Organization**
119
+
120
+ Redesigned the tab layout to consolidate resources and improve translation workflow:
121
+
122
+ **What Changed:**
123
+ - **Termview stays under grid**: Original position preserved for quick glossary access
124
+ - **Second Termview in right panel**: Duplicate instance so you can see terms while viewing other tabs
125
+ - **Segment Note moved**: Now in right panel alongside Compare Panel and Preview
126
+ - **Session Log moved**: Also in right panel for better organization
127
+ - **Simultaneous updates**: Both Termview instances update together automatically
128
+
129
+ **New Tab Structure:**
130
+ - **Left panel**: Grid + Termview (collapsible)
131
+ - **Right panel**: Translation Results, Compare Panel, Preview, Segment Note, Session Log, Termview (6 tabs)
132
+
133
+ **Benefits:**
134
+ - ✅ All reference materials (TM, glossary, notes) in one location
135
+ - ✅ Grid area cleaner - just grid + glossary
136
+ - ✅ Two Termview instances let you see terms while using other tabs
137
+ - ✅ Ctrl+N shortcut still works to jump to Segment Note tab
138
+
139
+ **Implementation:**
140
+ - New helper method: `_update_both_termviews()` - updates both instances simultaneously
141
+ - Updated 5 locations where Termview gets updated
142
+ - Modified tab creation code to reorganize layout
143
+ - Updated Ctrl+N shortcut to find tab by name (works regardless of tab visibility)
144
+
145
+ **Future Enhancement (Phase 2):**
146
+ User requested advanced docking: ability to drag tabs to dock them vertically in the right panel (like VS Code). This would require QDockWidget architecture - a significant refactor planned for future version.
147
+
148
+ ---
149
+
150
+ ## ⚡ Instant Glossary Updates (v1.9.152) - January 23, 2026
151
+
152
+ **Lightning-Fast Term Addition Performance**
153
+
154
+ Adding terms to glossaries is now instant! The 5-6 second delay when using Alt+Shift+Up/Down shortcuts has been eliminated.
155
+
156
+ **The Problem:**
157
+ - Users experienced 5-6 second delays after adding glossary terms during translation
158
+ - Long patent sentences with 50+ words required 50+ individual database searches
159
+ - The app was searching for ALL words again just to find the ONE term we just added
160
+
161
+ **The Solution:**
162
+ - **Direct cache update**: New term added directly to cache instead of full segment re-search
163
+ - **Immediate TermView update**: Display updates instantly using cached matches
164
+ - **Smart highlighting**: Source cell highlighting updated via direct function call
165
+ - **Zero database searches**: We already know what we added - no need to search for it!
166
+
167
+ **Result:**
168
+ - ✅ TermView shows new term instantly (< 0.1 seconds)
169
+ - ✅ Source highlighting updates instantly
170
+ - ✅ Smooth, responsive workflow for building glossaries
171
+ - ✅ Perfect for intensive patent translation workflows
172
+
173
+ **Technical Implementation:**
174
+ - Modified `_quick_add_term_with_priority()` to create match entry directly from added term
175
+ - Bypasses expensive `find_termbase_matches_in_source()` database search
176
+ - Calls `highlight_source_with_termbase()` directly with updated cache
177
+ - Maintains all existing functionality while eliminating performance bottleneck
178
+
179
+ **Files Modified:**
180
+ - `Supervertaler.py` - Optimized glossary quick-add workflow (~60 lines modified)
181
+
182
+ **🛡️ Exit Crash Fix:**
183
+ - Enhanced `_cleanup_web_views()` method to prevent Python crash on program exit
184
+ - Now properly stops all WebEngine page loading/rendering before cleanup
185
+ - Processes events multiple times and adds delay to ensure Qt finishes cleanup
186
+ - No more "Python has stopped working" dialog when using File → Exit
187
+
188
+ ---
189
+
190
+ ## 🔧 TM Pre-Translation Fixed (v1.9.151) - January 23, 2026
191
+
192
+ **Critical Fix:** "Pre-translate from TM" batch operation now correctly finds TM matches!
193
+
194
+ **What Was Broken:**
195
+ - Running Edit → Batch Operations → Pre-translate from TM found 0 matches
196
+ - Even when a 100% TM match was clearly visible in the Compare Panel
197
+ - Issue: SQLite databases cannot be shared across threads
198
+
199
+ **Root Cause:**
200
+ The `PreTranslationWorker` ran in a background thread, but SQLite connections created in the main thread cannot be used in other threads. This caused a `sqlite3.ProgrammingError`.
201
+
202
+ **The Fix:**
203
+ - TM pre-translation now runs **on the main thread** (same as the Compare Panel)
204
+ - Uses `QProgressDialog` to show progress and keep UI responsive
205
+ - Uses the **exact same database methods** that work for segment navigation
206
+ - No more SQLite threading errors!
207
+
208
+ **Before:** "Pre-translate from TM" → 0 matches found
209
+ **After:** "Pre-translate from TM" → Correctly finds all TM matches
210
+
211
+ ## 🔍 Superlookup Language-Aware Search Enhancement (v1.9.149-beta) - January 22, 2026
212
+
213
+ **Major Enhancement:** Superlookup TM search now intelligently handles language filters!
214
+
215
+ **What Changed:**
216
+ - **Intuitive Language Filters**: "From: Dutch → To: English" now means "Search FOR Dutch text and show me English translations"
217
+ - **Smart Column Detection**: Searches ALL TMs regardless of their stored direction (NL→EN or EN→NL)
218
+ - **Automatic Swapping**: Finds text in either column and automatically presents results in the correct order
219
+ - **More Powerful Than Traditional CAT Tools**: Unlike memoQ/Trados that only search one TM direction, Supervertaler finds matches everywhere
220
+
221
+ **How It Works:**
222
+ 1. Set "From: Dutch → To: English"
223
+ 2. Search for Dutch text
224
+ 3. System searches both NL→EN TMs (source column) AND EN→NL TMs (target column)
225
+ 4. Results automatically shown with Dutch in source, English in target
226
+
227
+ **UI Simplification:**
228
+ - **Removed Direction radio buttons** (Both/Source/Target) - always searches both columns now
229
+ - Cleaner, faster interface for translators
230
+ - Language dropdowns are all you need
231
+
232
+ **UI Polish:**
233
+ - **Renamed "QuickMenu" tab to "Prompt Manager"** - Better clarity for new users looking for translation prompts
234
+ - **Sub-tab renamed**: "Library" → "Prompt Library"
235
+ - Resolves confusion about where to find prompts for single-segment and batch translation
236
+
237
+ **Technical Details:**
238
+ - Language filters no longer restrict which TMs are searched
239
+ - Post-processing validates search text is in the correct language column
240
+ - Smart swapping ensures results always match user's requested language direction
241
+
242
+ **Files Modified:**
243
+ - `modules/database_manager.py` - Smart language-aware concordance search
244
+ - `modules/superlookup.py` - Column name handling
245
+ - `Supervertaler.py` - Removed Direction controls, simplified UI, renamed QuickMenu to Prompt Manager
246
+ - `modules/unified_prompt_manager_qt.py` - Updated tab and header labels
247
+
248
+ ---
249
+
250
+ ## 📁 User-Choosable Data Folder Location (v1.9.148-beta) - January 21, 2026
251
+
252
+ **Major Enhancement:** Users now choose where to store their data on first run!
253
+
254
+ **What Changed (from v1.9.147):**
255
+ - v1.9.147 stored data in hidden AppData folders - users couldn't easily find/backup their data
256
+ - v1.9.148 uses visible, accessible locations that users control
257
+
258
+ **The New System:**
259
+
260
+ | Platform | Default Location |
261
+ |----------|------------------|
262
+ | **Windows** | `C:\Users\Username\Supervertaler\` |
263
+ | **macOS** | `~/Supervertaler/` |
264
+ | **Linux** | `~/Supervertaler/` |
265
+
266
+ **Key Features:**
267
+ - **First-run dialog** lets users choose their data folder location
268
+ - **Default is visible** in home folder - easy to find and backup
269
+ - **Settings → General** includes "Change..." button to relocate data anytime
270
+ - **Auto-recovery** if config pointer is deleted but data exists at default location
271
+ - **Unified system** - ALL users (pip, EXE, dev) use the same approach
272
+
273
+ **How It Works:**
274
+ 1. On first run, a dialog asks where to store data
275
+ 2. User choice is saved to a small config pointer file:
276
+ - Windows: `%APPDATA%\Supervertaler\config.json`
277
+ - macOS: `~/Library/Application Support/Supervertaler/config.json`
278
+ - Linux: `~/.config/Supervertaler/config.json`
279
+ 3. This pointer just contains: `{"user_data_path": "C:\\Users\\John\\Supervertaler"}`
280
+ 4. If pointer is deleted, app auto-recovers by checking the default location
281
+
282
+ **Benefits:**
283
+ - ✅ Data is visible and easy to find
284
+ - ✅ Easy to backup (just copy the folder)
285
+ - ✅ User has full control over location
286
+ - ✅ Can use cloud folders (OneDrive, Dropbox, etc.)
287
+ - ✅ Survives pip upgrades
288
+ - ✅ Works identically for all installation types
289
+
290
+ ---
291
+
292
+ ## 📁 Persistent User Data Location (v1.9.147) - January 21, 2026
293
+
294
+ *Note: v1.9.148 improves on this by using visible locations and adding user choice.*
295
+
296
+ **Major Enhancement:** User data (API keys, TMs, glossaries, prompts, settings) now persists across pip upgrades!
297
+
298
+ **The Problem:**
299
+ - When users ran `pip install --upgrade supervertaler`, their data was wiped
300
+ - This happened because user_data/ was stored inside the pip package directory
301
+ - pip replaces the entire package directory on upgrade, deleting all user files
302
+
303
+ ---
304
+
305
+ ## 🔑 Gemini/Google API Key Alias Fix (v1.9.146) - January 21, 2026
306
+
307
+ **Bug Fix:** Fixed "Gemini API Key Missing" error when users had `google=...` instead of `gemini=...` in their api_keys.txt file.
308
+
309
+ **The Problem:**
310
+ - Users could use either `google=YOUR_KEY` or `gemini=YOUR_KEY` in api_keys.txt
311
+ - Some code paths only checked for `gemini`, others only for `google`
312
+ - This caused confusing "API Key Missing" dialogs even when keys were properly configured
313
+
314
+ **The Solution:**
315
+ - Added **automatic normalization** in `load_api_keys()` - if either `google` or `gemini` is set, both keys are now populated
316
+ - Users can use either name interchangeably
317
+ - Fixed 6+ locations where the alias wasn't being handled correctly:
318
+ - Single segment translation (Ctrl+T)
319
+ - Batch translation
320
+ - QuickMenu prompts
321
+ - Async LLM fetch for Translation Results panel
322
+ - Proofreading (also fixed `anthropic` → `claude` provider name bug)
323
+
324
+ **For Users:**
325
+ - Both `google=YOUR_KEY` and `gemini=YOUR_KEY` now work identically
326
+ - No action needed - existing api_keys.txt files will continue to work
327
+
328
+ ---
329
+
330
+ ## ✨ memoQ-Style Track Changes in Compare Panel (v1.9.145) - January 20, 2026
331
+
332
+ **Improvement:** Changed Compare Panel diff highlighting to match memoQ's "Track changes view" style.
333
+
334
+ **New Styling (memoQ-style):**
335
+ - **Deletions**: Red text + strikethrough (~~deleted~~)
336
+ - **Insertions**: Red text + underline (<u>inserted</u>)
337
+ - **Unchanged**: Normal text
338
+
339
+ This is cleaner and more familiar to translators who use Word's track changes or memoQ.
340
+
341
+ **Example:**
342
+ ```
343
+ Current: In een derde aspect betreft de huidige uitvinding het gebruik van een dichtingskit...
344
+ TM: In een tweede aspect betreft de huidige uitvinding een dichtingskit...
345
+
346
+ Compare Panel shows:
347
+ In een ~~tweede~~ derde aspect betreft de huidige uitvinding het gebruik van een dichtingskit...
348
+ ^^^^^^^^ ^^^^^^ ^^^^^^^^^^^^^^^^
349
+ red+strike red+under red+underline
350
+ ```
351
+
352
+ ---
353
+
354
+ ## ✨ Enhanced Compare Panel Diff Highlighting (v1.9.144) - January 20, 2026
355
+
356
+ **Improvement:** The Compare Panel now shows a complete diff with additions, deletions, and changes - matching what professional CAT tools display.
357
+
358
+ **Before:**
359
+ - Only showed text that was **different** (in red)
360
+ - Didn't show what was **added** in the current segment
361
+ - Hard to understand what changed between TM source and current source
362
+
363
+ **After:**
364
+ - **Red with strikethrough**: Text in TM that was changed/deleted in current segment
365
+ - **Green background**: Text in current segment that was added (not in TM)
366
+ - **Normal text**: Identical text in both
367
+
368
+ **Example:**
369
+ ```
370
+ Current: In een derde aspect betreft de huidige uitvinding het gebruik van een dichtingskit...
371
+ TM: In een tweede aspect betreft de huidige uitvinding een dichtingskit...
372
+
373
+ Compare Panel now shows:
374
+ In een [tweede→derde] aspect betreft de huidige uitvinding [+het gebruik van] een dichtingskit...
375
+ ```
376
+
377
+ **Technical:**
378
+ - Changed from character-level to word-level diffing for better readability
379
+ - Additions shown inline in green where they would appear
380
+ - Deletions shown with strikethrough so you can see what was removed
381
+
382
+ ---
383
+
384
+ ## 🐛 Fix: Deleting Glossary Entry from Termview (v1.9.143) - January 20, 2026
385
+
386
+ **Bug Fix:** Deleting glossary entries via right-click in Termview failed with an error.
387
+
388
+ **Error in Logs:**
389
+ ```
390
+ ✗ Error deleting glossary entry from database: 'DatabaseManager' object has no attribute 'get_connection'
391
+ ```
392
+
393
+ **Root Cause:**
394
+ - The delete handler was trying to call `db_manager.get_connection()` which doesn't exist
395
+ - Was using raw SQL instead of the existing `termbase_mgr.delete_term()` method
396
+
397
+ **The Fix:**
398
+ - Changed to use `self.termbase_mgr.delete_term(term_id)` which already exists and works correctly
399
+
400
+ ---
401
+
402
+ ## 🐛 Fix: Error When Editing Glossary Entry from Termview (v1.9.142) - January 20, 2026
403
+
404
+ **Bug Fix:** After editing a glossary entry via right-click → Edit in Termview, an error would occur preventing proper refresh.
405
+
406
+ **Error in Logs:**
407
+ ```
408
+ Error refreshing segment matches: SupervertalerQt.on_cell_selected() missing 2 required positional arguments: 'previous_row' and 'previous_col'
409
+ ```
410
+
411
+ **Root Cause:**
412
+ - The `_refresh_current_segment_matches()` method was calling `on_cell_selected(current_row, 2)` with only 2 arguments
413
+ - But `on_cell_selected()` requires 4 arguments: `current_row`, `current_col`, `previous_row`, `previous_col`
414
+
415
+ **The Fix:**
416
+ - Simplified `_refresh_current_segment_matches()` to use the targeted `_refresh_termbase_display_for_current_segment()` method
417
+ - This method already handles termbase cache clearing and display refresh correctly
418
+
419
+ ---
420
+
421
+ ## 🐛 Fix: Termview Blank After Adding Glossary Term (v1.9.141) - January 20, 2026
422
+
423
+ **Bug Fix:** After adding a term to a glossary via Alt+Down (or similar shortcuts), the Termview pane would go blank and stay blank until navigating to another segment.
424
+
425
+ **Error in Logs:**
426
+ ```
427
+ Error updating termview: list index out of range
428
+ ```
429
+
430
+ **Root Cause:**
431
+ - The `_refresh_termbase_display_for_current_segment()` method (added in v1.9.140) was using incorrect dictionary keys
432
+ - `find_termbase_matches_in_source()` returns dict with keys `source` and `translation`
433
+ - But the refresh method was looking for keys `source_term` and `target_term`
434
+ - This resulted in empty strings being passed to the termview, causing the index error
435
+
436
+ **The Fix:**
437
+ - Changed `match.get('source_term', '')` → `match.get('source', '')`
438
+ - Changed `match.get('target_term', '')` → `match.get('translation', '')`
439
+ - Applied same fix to Translation Results panel update section
440
+
441
+ ---
442
+
443
+ ## 🐛 Fix: Adding Glossary Term No Longer Triggers TM Search (v1.9.140) - January 20, 2026
444
+
445
+ **Performance Fix ([#118](https://github.com/michaelbeijer/Supervertaler/issues/118)):** Adding a term to a glossary was unnecessarily triggering a full Translation Memory search, causing delays.
446
+
447
+ **The Problem:**
448
+ - When adding a term via Ctrl+E, Ctrl+Q, or Ctrl+Shift+1/2, the app cleared BOTH caches and called `on_cell_selected()`
449
+ - This triggered a complete TM search even though adding a glossary term doesn't change the source/target text
450
+
451
+ **The Fix:**
452
+ - Created new targeted method `_refresh_termbase_display_for_current_segment()`
453
+ - Only clears the termbase cache (not TM cache)
454
+ - Updates TermView widget with fresh glossary matches
455
+ - Updates Translation Results panel's Termbases section only
456
+ - Re-highlights termbase matches in source cell
457
+ - TM results remain untouched
458
+
459
+ **Also in this release:**
460
+ - 🎤 Renamed "Voice OFF/ON" button to "Voice Commands OFF/ON" for clarity
461
+ - 🎤 Renamed "Dictate" button to "Dictation"
462
+
463
+ ---
464
+
465
+ ## 📐 Auto-Sizing Segment Number Column (v1.9.138) - January 20, 2026
466
+
467
+ **Grid UX Improvement:** The segment number column (#) now automatically sizes itself based on:
468
+ - The current font size (scales when you zoom in/out)
469
+ - The number of segments in the project (fits 3-digit, 4-digit numbers, etc.)
470
+
471
+ Uses Qt font metrics to calculate the exact pixel width needed. No more truncated numbers or wasted space!
472
+
473
+ **Also in this release:**
474
+ - Status column made slightly narrower (70px → 60px)
475
+
476
+ ---
477
+
478
+ ## 🏷️ Termview Punctuated Terms Fix (v1.9.138) - January 20, 2026
479
+
480
+ **Fixed: Glossary terms with punctuation now appear in Termview**
481
+
482
+ Glossary entries like "ca." (with period) or "typisch" (when appearing in parentheses as "(typisch)") were found by the termbase search (grid showed green highlighting) but did NOT appear in the Termview pane.
483
+
484
+ **Root Cause - Key Mismatch:**
485
+ - `matches_dict` keys were built using the raw source term: `"ca."` (with period)
486
+ - But lookup stripped punctuation from tokens: `"ca."` → `"ca"`
487
+ - Result: `matches_dict.get("ca")` returned nothing because the key was `"ca."`
488
+
489
+ **The Fix:**
490
+ - When building `matches_dict`, keys are now normalized by stripping punctuation
491
+ - Both the dictionary keys and lookup keys now use the same normalization
492
+ - Added brackets `()[]` to punctuation chars so "(typisch)" matches "typisch"
493
+
494
+ **Files Modified:**
495
+ - `modules/termview_widget.py` - Normalize punctuation in `matches_dict` keys and lookup
496
+
497
+ ---
498
+
499
+ ## 🔧 Termview Race Condition Fix (v1.9.137) - January 20, 2026
500
+
501
+ **Fixed: Glossary terms now appear in Termview pane**
502
+
503
+ When navigating to a segment, the Termview pane showed "No glossary matches" even though:
504
+ - The grid highlighted terms in green (glossary highlighting worked)
505
+ - Force Refresh (F5) would then show the terms correctly
506
+
507
+ **Root Cause - Timing/Race Condition:**
508
+ - `update_tab_segment_editor()` was called EARLY in the cell selection process
509
+ - It tried to read from `termbase_cache[segment_id]` to update Termview
510
+ - But the termbase search (`find_termbase_matches_in_source()`) hadn't run yet!
511
+ - Result: Termview called with empty list before matches were found
512
+
513
+ **The Fix:**
514
+ 1. Removed premature Termview update from `update_tab_segment_editor()`
515
+ 2. Termview is now updated ONLY after the termbase search completes in `_on_cell_selected_full()`
516
+ 3. Also fixed: Termview now updates even when no matches found (shows "No matches" state)
517
+
518
+ **Files Modified:**
519
+ - `Supervertaler.py` - Removed premature Termview update, fixed condition to always update Termview
520
+ - `modules/termview_widget.py` - Removed debug logging
521
+
522
+ ---
523
+
524
+ ## 📚 Glossary Matching Fix for Punctuation (v1.9.136) - January 20, 2026
525
+
526
+ **Fixed: Glossary terms with trailing punctuation now match correctly**
527
+
528
+ Glossary entries like "ca." (with period), "psi", and "typisch" were not being found in the Termview window when they appeared in source text like "ca. 2,2 (270 psi)".
529
+
530
+ **Root Cause:**
531
+ - When tokenizing source text, punctuation was stripped from words ("ca." → "ca")
532
+ - The database search then looked for "ca" but the glossary had "ca." — no match
533
+ - Short terms in parentheses like "(psi)" were also affected
534
+
535
+ **The Fix:**
536
+ 1. Now searches for BOTH the stripped word AND the original word with punctuation
537
+ 2. Database query enhanced with reverse matching: finds glossary terms where the search word matches the term with trailing punctuation stripped
538
+ 3. Handles entries like "ca.", "gew.%", "psi", etc.
539
+
540
+ **Files Modified:**
541
+ - `Supervertaler.py` - Enhanced `find_termbase_matches_in_source()` to search with original punctuation
542
+ - `modules/database_manager.py` - Enhanced `search_termbases()` with punctuation-tolerant matching
543
+
544
+ ---
545
+
546
+ ## 🔍 Filter Now Searches Entire Document (v1.9.135) - January 20, 2026
547
+
548
+ **Fixed: Filter Source/Target boxes now search across ALL pages**
549
+
550
+ Previously, the Filter Source and Filter Target boxes above the grid would only search within the currently visible page. If the text you were looking for was on a different page, it wouldn't be found.
551
+
552
+ Now, filtering searches through the **entire document** regardless of pagination. When a filter is active, ALL matching rows are displayed (pagination is temporarily ignored). When you clear the filter, normal pagination resumes.
553
+
554
+ **Files Modified:**
555
+ - `Supervertaler.py` - Fixed `_apply_pagination_to_grid()` to show all filter matches
556
+
557
+ ---
558
+
559
+ ## 🔊 Fuzzy TM Match Sound Effect (v1.9.134) - January 20, 2026
560
+
561
+ **New sound effect option: "Fuzzy TM match found"**
562
+
563
+ Plays when navigating to a segment and a fuzzy TM match (50-99%) is found, but NO 100% match exists.
564
+
565
+ **Access:** Settings → General → Sound Effects → "Fuzzy TM match found"
566
+
567
+ Disabled by default (set to "None"). Works with the same sound options as other effects.
568
+
569
+ ---
570
+
571
+ ## 🔊 New Sound Effects (v1.9.133) - January 20, 2026
572
+
573
+ **Two new sound effect options added:**
574
+
575
+ 1. **Segment confirmed** - Plays when you confirm a segment with Ctrl+Enter
576
+ 2. **100% TM match alert** - Plays when navigating to a segment and a 100% TM match is found and auto-inserted
577
+
578
+ **Access:** Settings → General → Sound Effects
579
+
580
+ Both sounds are disabled by default (set to "None"). Users can configure them to any of the available Windows system sounds:
581
+ - OK, Asterisk, Exclamation, Hand, Question
582
+ - Windows .wav files: Restore, Navigation Start, Speech Disambiguation, etc.
583
+
584
+ **Files Modified:**
585
+ - `Supervertaler.py` - Added sound effect options and trigger points
586
+
587
+ ---
6
588
 
7
589
  ## 🐛 Ctrl+K Superlookup Shortcut Fix (v1.9.132) - January 20, 2026
8
590
 
@@ -1136,9 +1136,9 @@ Michael Beijer, a professional translator, created Supervertaler to:
1136
1136
  - **Google Gemini:** Check current API terms for data retention
1137
1137
 
1138
1138
  **Local Storage:**
1139
- - Projects: `user_data/Projects/`
1140
- - TMs: `user_data/tm/`
1141
- - Termbases: `user_data/termbases/`
1139
+ - Projects: `user_data/projects/`
1140
+ - TMs: `user_data/resources/`
1141
+ - Termbases: `user_data/resources/`
1142
1142
  - All data remains on your machine
1143
1143
 
1144
1144
  **No Telemetry:**