supervertaler 1.9.204__tar.gz → 1.9.205__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.

Potentially problematic release.


This version of supervertaler might be problematic. Click here for more details.

Files changed (389) hide show
  1. {supervertaler-1.9.204 → supervertaler-1.9.205}/CHANGELOG.md +19 -1
  2. {supervertaler-1.9.204 → supervertaler-1.9.205}/PKG-INFO +1 -1
  3. {supervertaler-1.9.204 → supervertaler-1.9.205}/Supervertaler.py +146 -35
  4. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/index.html +4 -4
  5. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/ai_actions.py +14 -2
  6. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/quicktrans.py +3 -0
  7. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/termbase_entry_editor.py +9 -0
  8. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/theme_manager.py +10 -1
  9. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/translation_results_panel.py +6 -0
  10. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/unified_prompt_manager_qt.py +206 -4
  11. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/voice_dictation.py +9 -0
  12. {supervertaler-1.9.204 → supervertaler-1.9.205}/pyproject.toml +1 -1
  13. {supervertaler-1.9.204 → supervertaler-1.9.205}/supervertaler.egg-info/PKG-INFO +1 -1
  14. {supervertaler-1.9.204 → supervertaler-1.9.205}/FAQ.md +0 -0
  15. {supervertaler-1.9.204 → supervertaler-1.9.205}/LICENSE +0 -0
  16. {supervertaler-1.9.204 → supervertaler-1.9.205}/MANIFEST.in +0 -0
  17. {supervertaler-1.9.204 → supervertaler-1.9.205}/README.md +0 -0
  18. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/ICON_CONVERSION_GUIDE.md +0 -0
  19. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/MB.ico +0 -0
  20. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/README.md +0 -0
  21. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/README_ICONS.md +0 -0
  22. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/arrow_left_dark.png +0 -0
  23. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/arrow_left_light.png +0 -0
  24. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/arrow_right_dark.png +0 -0
  25. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/arrow_right_light.png +0 -0
  26. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/generate_icons.py +0 -0
  27. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/icon.ico +0 -0
  28. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/icon_128.png +0 -0
  29. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/icon_16x16.png +0 -0
  30. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/icon_24.png +0 -0
  31. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/icon_256.png +0 -0
  32. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/icon_256x256.png +0 -0
  33. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/icon_32.png +0 -0
  34. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/icon_32x32.png +0 -0
  35. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/icon_48.png +0 -0
  36. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/icon_48x48.png +0 -0
  37. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/icon_64.png +0 -0
  38. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/icon_preview.html +0 -0
  39. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/icon_sv_modern.svg +0 -0
  40. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/icon_sv_modern_paths.svg +0 -0
  41. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/icon_sv_simple.svg +0 -0
  42. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/icon_sv_website.svg +0 -0
  43. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/patent-drawing-1951.jpg +0 -0
  44. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/scrollbar_down.png +0 -0
  45. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/scrollbar_up.png +0 -0
  46. {supervertaler-1.9.204 → supervertaler-1.9.205}/assets/supervertaler_icon_colours.png +0 -0
  47. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/.nojekyll +0 -0
  48. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/CNAME +0 -0
  49. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/SIMILAR_APPS.md +0 -0
  50. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/apple-touch-icon.png +0 -0
  51. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/BUGFIX_README.md +0 -0
  52. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/CHANGELIST.md +0 -0
  53. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/CHANGELOG_Old.md +0 -0
  54. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/FAQ.md +0 -0
  55. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/INSTALLATION_v1.7.8.md +0 -0
  56. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/PROJECT_ORGANIZATION.md +0 -0
  57. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/TERMBASE_REFACTORING_SUMMARY.md +0 -0
  58. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/USER_GUIDE_v1.7.8.md +0 -0
  59. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/VERIFICATION_CHECKLIST.md +0 -0
  60. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/BEFORE_AFTER_COMPARISON.md +0 -0
  61. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/BUGFIX_SESSION_SUMMARY.md +0 -0
  62. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/COLOR_SCHEME_REFERENCE.md +0 -0
  63. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/COMPACT_LAYOUT_CHANGELOG.md +0 -0
  64. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/COMPACT_LAYOUT_DOCUMENTATION_INDEX.md +0 -0
  65. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/COMPACT_LAYOUT_IMPLEMENTATION_SUMMARY.md +0 -0
  66. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/COMPACT_LAYOUT_UPDATE.md +0 -0
  67. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/COMPLETE_IMPLEMENTATION_SUMMARY.md +0 -0
  68. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/COMPLETE_PROJECT_SUMMARY.md +0 -0
  69. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/DATABASE_FINAL_SUMMARY.md +0 -0
  70. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/DATABASE_IMPLEMENTATION.md +0 -0
  71. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/DATABASE_PRODUCTION_READY.md +0 -0
  72. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/DATABASE_QUICK_REFERENCE.md +0 -0
  73. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/DUAL_VERSION_STRATEGY.md +0 -0
  74. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/FINAL_SESSION_SUMMARY.md +0 -0
  75. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/FOLDER_STRUCTURE_UPDATE.md +0 -0
  76. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/GITHUB_PAGES_SETUP.md +0 -0
  77. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/IMPLEMENTATION_CHECKLIST.md +0 -0
  78. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/IMPLEMENTATION_COMPLETE.md +0 -0
  79. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/IMPLEMENTATION_COMPLETE_COMPACT_LAYOUT.md +0 -0
  80. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/IMPLEMENTATION_READY.md +0 -0
  81. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/IMPLEMENTATION_STATUS_PHASE2_READY.md +0 -0
  82. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/KEYBOARD_SHORTCUTS_MATCHES.md +0 -0
  83. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/LAYOUT_BEFORE_AFTER.md +0 -0
  84. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/MASTER_INDEX.md +0 -0
  85. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/MATCH_DISPLAY_IMPROVEMENTS.md +0 -0
  86. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/MATCH_DISPLAY_LONG_SEGMENTS_UPDATE.md +0 -0
  87. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/MATCH_DISPLAY_QUICK_REFERENCE.md +0 -0
  88. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/MATCH_INSERTION_FEATURES.md +0 -0
  89. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/MATCH_SHORTCUTS_QUICK_REF.md +0 -0
  90. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/MODULAR_ARCHITECTURE_GUIDE.md +0 -0
  91. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/PHASE2_IMPLEMENTATION_CHECKLIST.md +0 -0
  92. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/PHASE2_IMPLEMENTATION_DETAILED_CHECKLIST.md +0 -0
  93. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/PHASE2_IMPLEMENTATION_IN_PROGRESS.md +0 -0
  94. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/PHASE2_NEXT_STEPS.md +0 -0
  95. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/PHASE2_READY_TO_IMPLEMENT.md +0 -0
  96. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/PHASE2_START_HERE.md +0 -0
  97. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/QT_MIGRATION_PLAN.md +0 -0
  98. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/QT_SESSION_SUMMARY.md +0 -0
  99. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/QUICK_SESSION_SUMMARY.md +0 -0
  100. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/RELEASE_Qt_v1.0.0_Phase5.md +0 -0
  101. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/RELEASE_v1.9.38.md +0 -0
  102. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/RELEASE_v3.7.1.md +0 -0
  103. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/RELEASE_v3.7.6.md +0 -0
  104. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/RELEASE_v3.7.7.md +0 -0
  105. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/RESTRUCTURE_COMPLETE.md +0 -0
  106. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/SESSION_DOCUMENTATION_INDEX.md +0 -0
  107. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/SESSION_IMPLEMENTATION_SUMMARY.md +0 -0
  108. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/SESSION_LONG_SEGMENTS_COMPLETE.md +0 -0
  109. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/SESSION_MATCH_FEATURES_COMPLETE.md +0 -0
  110. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/SESSION_STATUS.md +0 -0
  111. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/SESSION_SUMMARY_Phase5.md +0 -0
  112. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/START_HERE.md +0 -0
  113. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/START_IMPLEMENTATION_HERE.md +0 -0
  114. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/STYLE_GUIDES_DELIVERABLES.md +0 -0
  115. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/STYLE_GUIDES_DOCUMENTATION_INDEX.md +0 -0
  116. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/STYLE_GUIDES_FEATURE_SUMMARY.md +0 -0
  117. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/STYLE_GUIDES_IMPLEMENTATION.md +0 -0
  118. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/STYLE_GUIDES_PROJECT_COMPLETION.md +0 -0
  119. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/STYLE_GUIDES_QUICK_REFERENCE.md +0 -0
  120. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/STYLE_GUIDES_VISUAL_ARCHITECTURE.md +0 -0
  121. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/TERMBASE_FIXES.md +0 -0
  122. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/TERMBASE_IMPLEMENTATION.md +0 -0
  123. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/TERMBASE_QUICK_START.md +0 -0
  124. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/TMX_CONCORDANCE_STYLE_HIGHLIGHTING.md +0 -0
  125. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/TMX_DUAL_HIGHLIGHTING.md +0 -0
  126. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/TMX_EDITOR_HIGHLIGHTING_UPDATE.md +0 -0
  127. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/TMX_EDITOR_IMPLEMENTATION.md +0 -0
  128. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/TMX_EDITOR_WORD_HIGHLIGHTING.md +0 -0
  129. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/TMX_TABLE_LAYOUT_INTEGRATED_EDIT.md +0 -0
  130. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/TMX_TREEVIEW_GRID_RESIZABLE.md +0 -0
  131. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/TMX_WORD_HIGHLIGHTING_IMPLEMENTATION_COMPLETE.md +0 -0
  132. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/TMX_WORD_HIGHLIGHTING_SUMMARY.md +0 -0
  133. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/TM_MATCH_PANE_CHECKLIST.md +0 -0
  134. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/TM_MATCH_PANE_IMPLEMENTATION.md +0 -0
  135. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/TM_MATCH_PANE_VISUAL_GUIDE.md +0 -0
  136. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/VISUAL_COLOR_REFERENCE.md +0 -0
  137. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/development/VISUAL_IMPLEMENTATION_SUMMARY.md +0 -0
  138. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/sessions/COLOR_FIX_EXPLANATION.md +0 -0
  139. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/sessions/DATABASE_CONSOLIDATION_REPORT.md +0 -0
  140. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/sessions/DUAL_EDITOR_WORKFLOW.md +0 -0
  141. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/sessions/DUAL_SELECTION_SYSTEM.md +0 -0
  142. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/sessions/IMPROVEMENTS_SUMMARY.md +0 -0
  143. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/sessions/ISSUES_FIXES_PROGRESS.md +0 -0
  144. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/sessions/MATCH_DISPLAY_COMPACT_FIXES.md +0 -0
  145. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/sessions/README_SESSION_TERMBASE.md +0 -0
  146. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/sessions/SAFE_DELETION_REMINDER.txt +0 -0
  147. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/sessions/SESSION_SUMMARY.md +0 -0
  148. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/sessions/TERMBASE_FIXES_APPLIED.md +0 -0
  149. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/sessions/TESTING_CHECKLIST.md +0 -0
  150. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/sessions/TMX_EDITOR_ANNOUNCEMENT.md +0 -0
  151. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/archive/sessions/TRANSLATION_RESULTS_IMPROVEMENTS.md +0 -0
  152. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/assets/Figure1.png +0 -0
  153. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/assets/patent-drawing-1951.jpg +0 -0
  154. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/changelog.html +0 -0
  155. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/dev-notes/QA.md +0 -0
  156. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/dev-notes/STYLE_GUIDES_UI_TEMPLATE.py +0 -0
  157. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/dev-notes/_Notes_2025-11-21.md +0 -0
  158. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/dev-notes/_things_to_remind_AIs_of_when_translating.md +0 -0
  159. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/dev-notes/issue_28.md +0 -0
  160. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/dev-notes/openai_debug.txt +0 -0
  161. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/dev-notes/pre-translation-dialog-enhancement.md +0 -0
  162. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/emoji_mockup.html +0 -0
  163. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/favicon.ico +0 -0
  164. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/guides/AI_PROMPT_ASSISTANT_USER_GUIDE.md +0 -0
  165. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/guides/ENCODING_REPAIR_TOOL.md +0 -0
  166. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/guides/FAQ.md +0 -0
  167. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/guides/GLOSSARY_OF_SUPERVERTALER_TERMINOLOGY.md +0 -0
  168. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/guides/JSON_EDITORS_AND_HUMAN_READABLE_FORMAT.md +0 -0
  169. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/guides/KEYBOARD_SHORTCUTS.md +0 -0
  170. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/guides/PDF_RESCUE.md +0 -0
  171. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/guides/PROMPT_ASSISTANT_USER_GUIDE.md +0 -0
  172. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/guides/QT_SETTINGS_DIALOG_GUIDE.md +0 -0
  173. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/guides/TERM_EXTRACTION_GUIDE.md +0 -0
  174. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/guides/USER_DATA_FOLDER_SETUP.md +0 -0
  175. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/idea_beijer.bot_integration_idea/BEIJERBOT_FEATURE_ANALYSIS.md +0 -0
  176. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/idea_beijer.bot_integration_idea/CLI_BRIDGE_SPECIFICATION.md +0 -0
  177. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/idea_beijer.bot_integration_idea/IMPLEMENTATION_ROADMAP.md +0 -0
  178. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/idea_beijer.bot_integration_idea/QUICKMENU_INTEGRATION_PLAN.md +0 -0
  179. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/idea_beijer.bot_integration_idea/README.md +0 -0
  180. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/idea_tag-cleaner/tag_cleaner.md +0 -0
  181. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/idea_use_vscode_as_cat_tool/ai-agent-translation-workflow.md +0 -0
  182. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/logo.png +0 -0
  183. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/screenshots/2025-10-13_00-46-16.jpg +0 -0
  184. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/screenshots/QuickTrans.png +0 -0
  185. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/screenshots/Superlookup_Web_resources.jpg +0 -0
  186. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/screenshots/Supervertaler_AI-Assistant.jpg +0 -0
  187. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/screenshots/Supervertaler_CLASSIC_v2.4.1_(tkinter).jpg +0 -0
  188. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/screenshots/Supervertaler_Prompt_Manager_2026-01-14.png +0 -0
  189. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/screenshots/Supervertaler_Qt_LLM_LeaderboardResults_2025-11-12.jpg +0 -0
  190. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/screenshots/Supervertaler_Qt_LLM_Leaderboard_2025-11-12.jpg +0 -0
  191. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/screenshots/Supervertaler_Superbrowser.jpg +0 -0
  192. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/screenshots/Supervertaler_dark_mode_2025-12-16.jpg +0 -0
  193. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/screenshots/Supervertaler_dark_mode_2025-12-17.jpg +0 -0
  194. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/screenshots/Supervertaler_grid.jpg +0 -0
  195. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/screenshots/Supervertaler_tkinter (v3.7.7).jpg +0 -0
  196. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/screenshots/Supervertaler_v1.9.102_compare_panel_2026-01-14.png +0 -0
  197. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/screenshots/Supervertaler_v1.9.102_grid_2026-01-14.png +0 -0
  198. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/screenshots/Supervertalerv1.9.195_2026-02-02.png +0 -0
  199. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/screenshots/new/Supervertaler-grid.jpg +0 -0
  200. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/screenshots/new/Supervertaler_AI-Assistant.jpg +0 -0
  201. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/screenshots/new/Supervertaler_Prompt-Library.jpg +0 -0
  202. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/screenshots/new/Supervertaler_Qt_LLM_LeaderboardResults_2025-11-12.jpg +0 -0
  203. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/screenshots/new/Supervertaler_Qt_LLM_Leaderboard_2025-11-12.jpg +0 -0
  204. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/screenshots/new/Supervertaler_Superbrowser.jpg +0 -0
  205. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/screenshots/old/2025-10-13_00-50-24.jpg +0 -0
  206. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/screenshots/old/Supervertaler_Qt_2025-11-12.jpg +0 -0
  207. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/script.js +0 -0
  208. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/site.webmanifest +0 -0
  209. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/specifications/AI_ASSISTANT_PHASE2_IMPLEMENTATION.md +0 -0
  210. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/specifications/AI_PROMPT_ASSISTANT.md +0 -0
  211. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/specifications/AI_PROMPT_ASSISTANT_IMPLEMENTATION.md +0 -0
  212. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/specifications/EXPORT_MENU_UPDATE.md +0 -0
  213. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/specifications/IMPLEMENTATION_SUMMARY.md +0 -0
  214. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/specifications/QT_PHASE2_COMPLETE.md +0 -0
  215. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/specifications/QT_PHASE3_COMPLETE.md +0 -0
  216. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/specifications/SUPERVERTALER_DATA_FORMAT.md +0 -0
  217. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/specifications/TASK_TYPE_SYSTEM.md +0 -0
  218. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/specifications/TERMINOLOGY_UPDATE_SUMMARY.md +0 -0
  219. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/specifications/opus-api-integration.md +0 -0
  220. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/styles.css +0 -0
  221. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/.gitbook/assets/supervertaler-logo.png +0 -0
  222. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/.gitbook/assets/sv-icon.svg +0 -0
  223. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/GITBOOK_LANDING_DRAFT.md +0 -0
  224. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/README.md +0 -0
  225. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/SUMMARY.md +0 -0
  226. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/ai-translation/batch-translation.md +0 -0
  227. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/ai-translation/ollama.md +0 -0
  228. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/ai-translation/overview.md +0 -0
  229. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/ai-translation/prompt-library.md +0 -0
  230. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/ai-translation/prompts.md +0 -0
  231. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/ai-translation/providers.md +0 -0
  232. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/ai-translation/single-segment.md +0 -0
  233. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/cat-tools/cafetran.md +0 -0
  234. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/cat-tools/memoq.md +0 -0
  235. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/cat-tools/overview.md +0 -0
  236. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/cat-tools/phrase.md +0 -0
  237. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/cat-tools/trados.md +0 -0
  238. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/editor/editing-confirming.md +0 -0
  239. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/editor/filtering.md +0 -0
  240. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/editor/find-replace.md +0 -0
  241. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/editor/keyboard-shortcuts.md +0 -0
  242. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/editor/navigation.md +0 -0
  243. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/editor/pagination.md +0 -0
  244. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/editor/translation-grid.md +0 -0
  245. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/get-started/api-keys.md +0 -0
  246. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/get-started/first-project.md +0 -0
  247. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/get-started/installation.md +0 -0
  248. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/get-started/quick-start.md +0 -0
  249. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/glossaries/basics.md +0 -0
  250. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/glossaries/creating.md +0 -0
  251. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/glossaries/extraction.md +0 -0
  252. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/glossaries/highlighting.md +0 -0
  253. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/glossaries/importing.md +0 -0
  254. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/import-export/bilingual-tables.md +0 -0
  255. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/import-export/docx-import.md +0 -0
  256. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/import-export/exporting.md +0 -0
  257. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/import-export/formats.md +0 -0
  258. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/import-export/multi-file.md +0 -0
  259. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/import-export/txt-import.md +0 -0
  260. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/qa/non-translatables.md +0 -0
  261. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/qa/spellcheck.md +0 -0
  262. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/qa/tag-validation.md +0 -0
  263. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/reference/changelog.md +0 -0
  264. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/reference/contributing.md +0 -0
  265. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/reference/faq.md +0 -0
  266. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/reference/file-formats.md +0 -0
  267. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/settings/fonts.md +0 -0
  268. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/settings/general.md +0 -0
  269. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/settings/shortcuts.md +0 -0
  270. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/settings/theme.md +0 -0
  271. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/settings/view.md +0 -0
  272. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/superlookup/glossary-search.md +0 -0
  273. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/superlookup/mt.md +0 -0
  274. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/superlookup/overview.md +0 -0
  275. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/superlookup/tm-search.md +0 -0
  276. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/superlookup/web-resources.md +0 -0
  277. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/tools/autofingers.md +0 -0
  278. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/tools/image-extractor.md +0 -0
  279. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/tools/pdf-rescue.md +0 -0
  280. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/tools/tmx-editor.md +0 -0
  281. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/tools/voice-commands.md +0 -0
  282. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/translation-memory/basics.md +0 -0
  283. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/translation-memory/fuzzy-matching.md +0 -0
  284. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/translation-memory/importing-tmx.md +0 -0
  285. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/translation-memory/managing-tms.md +0 -0
  286. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/translation-memory/supermemory.md +0 -0
  287. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/troubleshooting/api-issues.md +0 -0
  288. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/troubleshooting/common-issues.md +0 -0
  289. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/troubleshooting/import-export-errors.md +0 -0
  290. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/troubleshooting/linux.md +0 -0
  291. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/superdocs/troubleshooting/performance.md +0 -0
  292. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/sv-icon.svg +0 -0
  293. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/technical/AI_ASSISTANT_GUIDE.md +0 -0
  294. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/technical/AI_ASSISTANT_IMPLEMENTATION.md +0 -0
  295. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/technical/AI_ASSISTANT_INTEGRATION.md +0 -0
  296. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/technical/AI_ASSISTANT_QUICK_REFERENCE.md +0 -0
  297. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/technical/DATABASE_LOCATIONS.md +0 -0
  298. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/technical/FILTER_HIGHLIGHTING_FIX.md +0 -0
  299. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/technical/MODULE_HEADER_PATTERN.md +0 -0
  300. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/technical/README.md +0 -0
  301. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/technical/SUPERBROWSER_GUIDE.md +0 -0
  302. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/technical/SUPERVOICE_TROUBLESHOOTING.md +0 -0
  303. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/technical/UNIFIED_PROMPT_LIBRARY_GUIDE.md +0 -0
  304. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/technical/VOICE_DICTATION_GUIDE.md +0 -0
  305. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/tests/test_encoding_corruption.txt +0 -0
  306. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/web-app-manifest-192x192.png +0 -0
  307. {supervertaler-1.9.204 → supervertaler-1.9.205}/docs/web-app-manifest-512x512.png +0 -0
  308. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/__init__.py +0 -0
  309. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/ai_attachment_manager.py +0 -0
  310. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/ai_file_viewer_dialog.py +0 -0
  311. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/autofingers_engine.py +0 -0
  312. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/cafetran_docx_handler.py +0 -0
  313. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/config_manager.py +0 -0
  314. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/database_manager.py +0 -0
  315. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/database_migrations.py +0 -0
  316. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/dejavurtf_handler.py +0 -0
  317. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/document_analyzer.py +0 -0
  318. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/docx_handler.py +0 -0
  319. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/encoding_repair.py +0 -0
  320. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/encoding_repair_Qt.py +0 -0
  321. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/encoding_repair_ui.py +0 -0
  322. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/extract_tm.py +0 -0
  323. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/feature_manager.py +0 -0
  324. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/figure_context_manager.py +0 -0
  325. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/file_dialog_helper.py +0 -0
  326. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/find_replace.py +0 -0
  327. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/find_replace_qt.py +0 -0
  328. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/glossary_manager.py +0 -0
  329. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/image_extractor.py +0 -0
  330. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/keyboard_shortcuts_widget.py +0 -0
  331. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/llm_clients.py +0 -0
  332. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/llm_leaderboard.py +0 -0
  333. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/llm_superbench_ui.py +0 -0
  334. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/local_llm_setup.py +0 -0
  335. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/model_update_dialog.py +0 -0
  336. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/model_version_checker.py +0 -0
  337. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/mqxliff_handler.py +0 -0
  338. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/non_translatables_manager.py +0 -0
  339. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/pdf_rescue_Qt.py +0 -0
  340. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/pdf_rescue_tkinter.py +0 -0
  341. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/phrase_docx_handler.py +0 -0
  342. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/project_home_panel.py +0 -0
  343. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/project_tm.py +0 -0
  344. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/prompt_assistant.py +0 -0
  345. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/prompt_library.py +0 -0
  346. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/prompt_library_migration.py +0 -0
  347. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/quick_access_sidebar.py +0 -0
  348. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/ribbon_widget.py +0 -0
  349. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/sdlppx_handler.py +0 -0
  350. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/setup_wizard.py +0 -0
  351. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/shortcut_manager.py +0 -0
  352. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/simple_segmenter.py +0 -0
  353. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/spellcheck_manager.py +0 -0
  354. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/statuses.py +0 -0
  355. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/style_guide_manager.py +0 -0
  356. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/superbench_ui.py +0 -0
  357. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/superbrowser.py +0 -0
  358. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/supercleaner.py +0 -0
  359. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/supercleaner_ui.py +0 -0
  360. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/superdocs.py +0 -0
  361. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/superdocs_viewer_qt.py +0 -0
  362. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/superlookup.py +0 -0
  363. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/tag_cleaner.py +0 -0
  364. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/tag_manager.py +0 -0
  365. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/term_extractor.py +0 -0
  366. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/termbase_import_export.py +0 -0
  367. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/termbase_manager.py +0 -0
  368. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/termview_widget.py +0 -0
  369. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/tm_editor_dialog.py +0 -0
  370. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/tm_manager_qt.py +0 -0
  371. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/tm_metadata_manager.py +0 -0
  372. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/tmx_editor.py +0 -0
  373. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/tmx_editor_qt.py +0 -0
  374. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/tmx_generator.py +0 -0
  375. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/tracked_changes.py +0 -0
  376. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/trados_docx_handler.py +0 -0
  377. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/translation_memory.py +0 -0
  378. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/translation_services.py +0 -0
  379. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/unified_prompt_library.py +0 -0
  380. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/voice_commands.py +0 -0
  381. {supervertaler-1.9.204 → supervertaler-1.9.205}/modules/voice_dictation_lite.py +0 -0
  382. {supervertaler-1.9.204 → supervertaler-1.9.205}/setup.cfg +0 -0
  383. {supervertaler-1.9.204 → supervertaler-1.9.205}/setup.py +0 -0
  384. {supervertaler-1.9.204 → supervertaler-1.9.205}/supervertaler.egg-info/SOURCES.txt +0 -0
  385. {supervertaler-1.9.204 → supervertaler-1.9.205}/supervertaler.egg-info/dependency_links.txt +0 -0
  386. {supervertaler-1.9.204 → supervertaler-1.9.205}/supervertaler.egg-info/entry_points.txt +0 -0
  387. {supervertaler-1.9.204 → supervertaler-1.9.205}/supervertaler.egg-info/not-zip-safe +0 -0
  388. {supervertaler-1.9.204 → supervertaler-1.9.205}/supervertaler.egg-info/requires.txt +0 -0
  389. {supervertaler-1.9.204 → supervertaler-1.9.205}/supervertaler.egg-info/top_level.txt +0 -0
@@ -2,10 +2,28 @@
2
2
 
3
3
  All notable changes to Supervertaler are documented in this file.
4
4
 
5
- **Current Version:** v1.9.204 (February 3, 2026)
5
+ **Current Version:** v1.9.205 (February 3, 2026)
6
6
 
7
7
 
8
8
 
9
+ ## v1.9.205 - February 3, 2026
10
+
11
+ ### 🐛 Bug Fixes
12
+
13
+ - **CRITICAL: Project Segments Corruption Fixed**: Fixed a critical bug where importing a new document would save the OLD project's segments instead of the newly imported ones. This affected all import functions (DOCX, text, memoQ, Trados, SDL package, Phrase, CafeTran, Déjà Vu). The issue was that `_original_segment_order` wasn't being updated after imports, causing the save function to overwrite new segments with old ones.
14
+
15
+ - **QuickTrans Language Mapping**: Fixed QuickTrans not respecting project source/target language settings. Machine translation providers (MyMemory, DeepL, Microsoft, ModernMT) now correctly map language names like "English" and "Dutch" to ISO codes.
16
+
17
+ - **Focus Rectangles Removed**: Fixed dotted focus rectangles appearing on buttons throughout the application. Added global stylesheet rules in theme manager and individual button fixes where custom stylesheets were used.
18
+
19
+ ### ✨ Improvements
20
+
21
+ - **AI Assistant TM/Termbase Integration**: The "Click to include TM data" and "Click to include termbase data" buttons in the AI Assistant are now functional. Clicking toggles inclusion of TM matches and termbase entries in AI context.
22
+
23
+ - **AI Actions Error Messages**: Enhanced error messages for AI action debugging, showing received parameters when prompt creation fails.
24
+
25
+ ---
26
+
9
27
  ## v1.9.204 - February 3, 2026
10
28
 
11
29
  ### 🐛 Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: supervertaler
3
- Version: 1.9.204
3
+ Version: 1.9.205
4
4
  Summary: Professional AI-enhanced translation workbench with multi-LLM support, glossary system, TM, spellcheck, voice commands, and PyQt6 interface. Batteries included (core).
5
5
  Home-page: https://supervertaler.com
6
6
  Author: Michael Beijer
@@ -9544,6 +9544,9 @@ class SupervertalerQt(QMainWindow):
9544
9544
  QPushButton:hover {
9545
9545
  background-color: #2980b9;
9546
9546
  }
9547
+ QPushButton:focus {
9548
+ outline: none;
9549
+ }
9547
9550
  """)
9548
9551
  extract_btn.clicked.connect(self._on_extract_images)
9549
9552
  header_layout.addWidget(extract_btn)
@@ -21190,6 +21193,9 @@ class SupervertalerQt(QMainWindow):
21190
21193
  QPushButton:hover:!checked {
21191
21194
  background-color: #858585;
21192
21195
  }
21196
+ QPushButton:focus {
21197
+ outline: none;
21198
+ }
21193
21199
  """)
21194
21200
  wysiwyg_btn.clicked.connect(lambda: self.toggle_tag_view(False, None))
21195
21201
  view_mode_group.addButton(wysiwyg_btn, 0)
@@ -21216,6 +21222,9 @@ class SupervertalerQt(QMainWindow):
21216
21222
  QPushButton:hover:!checked {
21217
21223
  background-color: #858585;
21218
21224
  }
21225
+ QPushButton:focus {
21226
+ outline: none;
21227
+ }
21219
21228
  """)
21220
21229
  tags_btn.clicked.connect(lambda: self.toggle_tag_view(True, None))
21221
21230
  view_mode_group.addButton(tags_btn, 1)
@@ -21273,6 +21282,9 @@ class SupervertalerQt(QMainWindow):
21273
21282
  QPushButton:checked {
21274
21283
  background-color: #2E7D32;
21275
21284
  }
21285
+ QPushButton:focus {
21286
+ outline: none;
21287
+ }
21276
21288
  """)
21277
21289
  alwayson_btn.setToolTip("Toggle always-on voice listening\n\nWhen ON: Listens continuously for voice commands\nNo need to press F9")
21278
21290
  alwayson_btn.clicked.connect(lambda checked: self._toggle_alwayson_from_grid_btn(checked, alwayson_btn))
@@ -22032,6 +22044,9 @@ class SupervertalerQt(QMainWindow):
22032
22044
  QPushButton:pressed {
22033
22045
  background-color: #1565C0;
22034
22046
  }
22047
+ QPushButton:focus {
22048
+ outline: none;
22049
+ }
22035
22050
  """)
22036
22051
  self.scroll_up_btn.setToolTip("Scroll up one row (Precision scroll)")
22037
22052
  self.scroll_up_btn.clicked.connect(lambda: self.precision_scroll(-1))
@@ -22058,6 +22073,9 @@ class SupervertalerQt(QMainWindow):
22058
22073
  QPushButton:pressed {
22059
22074
  background-color: #1565C0;
22060
22075
  }
22076
+ QPushButton:focus {
22077
+ outline: none;
22078
+ }
22061
22079
  """)
22062
22080
  self.scroll_down_btn.setToolTip("Scroll down one row (Precision scroll)")
22063
22081
  self.scroll_down_btn.clicked.connect(lambda: self.precision_scroll(1))
@@ -24678,6 +24696,11 @@ class SupervertalerQt(QMainWindow):
24678
24696
  # Set as current project and load into grid
24679
24697
  self.current_project = project
24680
24698
  self.current_document_path = file_path # Store document path
24699
+
24700
+ # CRITICAL: Update _original_segment_order for new import
24701
+ # This prevents old segments from being saved instead of new ones
24702
+ self._original_segment_order = self.current_project.segments.copy()
24703
+
24681
24704
  self.load_segments_to_grid()
24682
24705
 
24683
24706
  # Initialize TM for this project
@@ -24912,14 +24935,18 @@ class SupervertalerQt(QMainWindow):
24912
24935
  # Set as current project and load into grid
24913
24936
  self.current_project = project
24914
24937
  self.current_document_path = file_path
24938
+
24939
+ # CRITICAL: Update _original_segment_order for new import
24940
+ self._original_segment_order = self.current_project.segments.copy()
24941
+
24915
24942
  self.load_segments_to_grid()
24916
-
24943
+
24917
24944
  # Initialize TM for this project
24918
24945
  self.initialize_tm_database()
24919
-
24946
+
24920
24947
  # Initialize spellcheck for target language
24921
24948
  self._initialize_spellcheck_for_target_language(target_lang)
24922
-
24949
+
24923
24950
  # Update status
24924
24951
  empty_count = sum(1 for seg in segments if not seg.source.strip())
24925
24952
  file_type = "Markdown file" if is_markdown else "text file"
@@ -24979,6 +25006,8 @@ class SupervertalerQt(QMainWindow):
24979
25006
  project.original_txt_path = file_path
24980
25007
  self.current_project = project
24981
25008
  self.current_document_path = file_path
25009
+ # CRITICAL: Update _original_segment_order for new import
25010
+ self._original_segment_order = self.current_project.segments.copy()
24982
25011
  self.load_segments_to_grid()
24983
25012
  self.initialize_tm_database()
24984
25013
  self.log(f"✓ Loaded {len(segments)} lines from text file")
@@ -26307,10 +26336,13 @@ class SupervertalerQt(QMainWindow):
26307
26336
  # Set as current project
26308
26337
  self.current_project = project
26309
26338
  self.current_document_path = folder_path
26310
-
26339
+
26340
+ # CRITICAL: Update _original_segment_order for new import
26341
+ self._original_segment_order = self.current_project.segments.copy()
26342
+
26311
26343
  # Load into grid
26312
26344
  self.load_segments_to_grid()
26313
-
26345
+
26314
26346
  # Initialize TM
26315
26347
  self.initialize_tm_database()
26316
26348
 
@@ -27183,10 +27215,14 @@ class SupervertalerQt(QMainWindow):
27183
27215
  # Update UI
27184
27216
  self.project_file_path = None
27185
27217
  self.project_modified = True
27218
+
27219
+ # CRITICAL: Update _original_segment_order for new import
27220
+ self._original_segment_order = self.current_project.segments.copy()
27221
+
27186
27222
  self.update_window_title()
27187
27223
  self.load_segments_to_grid()
27188
27224
  self.initialize_tm_database()
27189
-
27225
+
27190
27226
  # Deactivate all resources for new project, then auto-activate language-matching ones
27191
27227
  self._deactivate_all_resources_for_new_project()
27192
27228
 
@@ -27199,7 +27235,7 @@ class SupervertalerQt(QMainWindow):
27199
27235
  # If smart formatting was used, auto-enable Tags view so user sees the tags
27200
27236
  if self.memoq_smart_formatting:
27201
27237
  self._enable_tag_view_after_import()
27202
-
27238
+
27203
27239
  self.log(f"✓ Imported memoQ bilingual DOCX: {len(source_segments)} segments from {Path(file_path).name}")
27204
27240
 
27205
27241
  # Store current document path for AI Assistant
@@ -27692,10 +27728,14 @@ class SupervertalerQt(QMainWindow):
27692
27728
  # Update UI
27693
27729
  self.project_file_path = None
27694
27730
  self.project_modified = True
27731
+
27732
+ # CRITICAL: Update _original_segment_order for new import
27733
+ self._original_segment_order = self.current_project.segments.copy()
27734
+
27695
27735
  self.update_window_title()
27696
27736
  self.load_segments_to_grid()
27697
27737
  self.initialize_tm_database()
27698
-
27738
+
27699
27739
  # Deactivate all resources for new project, then auto-activate language-matching ones
27700
27740
  self._deactivate_all_resources_for_new_project()
27701
27741
 
@@ -27971,10 +28011,14 @@ class SupervertalerQt(QMainWindow):
27971
28011
  # Update UI
27972
28012
  self.project_file_path = None
27973
28013
  self.project_modified = True
28014
+
28015
+ # CRITICAL: Update _original_segment_order for new import
28016
+ self._original_segment_order = self.current_project.segments.copy()
28017
+
27974
28018
  self.update_window_title()
27975
28019
  self.load_segments_to_grid()
27976
28020
  self.initialize_tm_database()
27977
-
28021
+
27978
28022
  # Deactivate all resources for new project, then auto-activate language-matching ones
27979
28023
  self._deactivate_all_resources_for_new_project()
27980
28024
 
@@ -28192,6 +28236,9 @@ class SupervertalerQt(QMainWindow):
28192
28236
  # Store Trados source path in project for persistence across saves
28193
28237
  self.current_project.trados_source_path = file_path
28194
28238
 
28239
+ # CRITICAL: Update _original_segment_order for new import
28240
+ self._original_segment_order = self.current_project.segments.copy()
28241
+
28195
28242
  # Sync global language settings with imported project languages
28196
28243
  self.source_language = source_lang
28197
28244
  self.target_language = target_lang
@@ -28556,6 +28603,9 @@ class SupervertalerQt(QMainWindow):
28556
28603
  self.sdlppx_source_file = file_path
28557
28604
  self.current_project.sdlppx_source_path = file_path
28558
28605
 
28606
+ # CRITICAL: Update _original_segment_order for new import
28607
+ self._original_segment_order = self.current_project.segments.copy()
28608
+
28559
28609
  # Sync global language settings with imported project languages
28560
28610
  self.source_language = source_lang
28561
28611
  self.target_language = target_lang
@@ -28892,6 +28942,9 @@ class SupervertalerQt(QMainWindow):
28892
28942
  # Store Phrase source path in project for persistence across saves
28893
28943
  self.current_project.phrase_source_path = file_path
28894
28944
 
28945
+ # CRITICAL: Update _original_segment_order for new import
28946
+ self._original_segment_order = self.current_project.segments.copy()
28947
+
28895
28948
  # Sync global language settings with imported project languages
28896
28949
  self.source_language = source_lang
28897
28950
  self.target_language = target_lang
@@ -29194,20 +29247,23 @@ class SupervertalerQt(QMainWindow):
29194
29247
  dejavu_row_index=seg_data.row_index,
29195
29248
  )
29196
29249
  self.current_project.segments.append(segment)
29197
-
29250
+
29251
+ # CRITICAL: Update _original_segment_order for new import
29252
+ self._original_segment_order = self.current_project.segments.copy()
29253
+
29198
29254
  # Update UI
29199
29255
  self.project_file_path = None
29200
29256
  self.project_modified = True
29201
29257
  self.update_window_title()
29202
29258
  self.load_segments_to_grid()
29203
29259
  self.initialize_tm_database()
29204
-
29260
+
29205
29261
  # Auto-resize rows for better initial display
29206
29262
  self.auto_resize_rows()
29207
-
29263
+
29208
29264
  # Initialize spellcheck for target language
29209
29265
  self._initialize_spellcheck_for_target_language(target_lang)
29210
-
29266
+
29211
29267
  self.log(f"✓ Imported Déjà Vu X3 bilingual RTF: {len(segments_data)} segments from {Path(file_path).name}")
29212
29268
 
29213
29269
  # Store current document path for AI Assistant
@@ -44605,12 +44661,25 @@ OUTPUT ONLY THE SEGMENT MARKERS. DO NOT ADD EXPLANATIONS BEFORE OR AFTER."""
44605
44661
 
44606
44662
  translator = deepl.Translator(api_key)
44607
44663
 
44608
- # Convert source language code (DeepL uses uppercase, no variant needed for source)
44609
- src_code = source_lang.split('-')[0].split('_')[0].upper()
44664
+ # Map full language names to ISO codes
44665
+ lang_name_to_code = {
44666
+ 'english': 'en', 'dutch': 'nl', 'german': 'de', 'french': 'fr',
44667
+ 'spanish': 'es', 'italian': 'it', 'portuguese': 'pt', 'russian': 'ru',
44668
+ 'chinese': 'zh', 'japanese': 'ja', 'korean': 'ko', 'arabic': 'ar',
44669
+ 'polish': 'pl', 'swedish': 'sv', 'norwegian': 'no', 'danish': 'da',
44670
+ 'finnish': 'fi', 'greek': 'el', 'turkish': 'tr', 'czech': 'cs',
44671
+ 'hungarian': 'hu', 'romanian': 'ro', 'bulgarian': 'bg', 'ukrainian': 'uk',
44672
+ }
44673
+
44674
+ # Convert source language - try name mapping first, then code extraction
44675
+ src_lower = source_lang.lower().strip()
44676
+ src_base = lang_name_to_code.get(src_lower, src_lower.split('-')[0].split('_')[0])
44677
+ src_code = src_base.upper()
44610
44678
 
44611
- # Convert target language code - DeepL requires variants for some languages
44612
- # Handle full codes like "en-US", "en-GB", "pt-BR", "pt-PT"
44613
- tgt_upper = target_lang.upper().replace('_', '-')
44679
+ # Convert target language - try name mapping first, then handle DeepL variants
44680
+ tgt_lower = target_lang.lower().strip()
44681
+ tgt_base = lang_name_to_code.get(tgt_lower, tgt_lower)
44682
+ tgt_upper = tgt_base.upper().replace('_', '-')
44614
44683
 
44615
44684
  # DeepL target language mapping - some require specific variants
44616
44685
  deepl_target_map = {
@@ -44656,19 +44725,33 @@ OUTPUT ONLY THE SEGMENT MARKERS. DO NOT ADD EXPLANATIONS BEFORE OR AFTER."""
44656
44725
  """Call Microsoft Azure Translator API"""
44657
44726
  try:
44658
44727
  import requests
44659
-
44728
+
44660
44729
  api_keys = self.load_api_keys()
44661
44730
  if not api_key:
44662
44731
  api_key = api_keys.get("microsoft_translate") or api_keys.get("azure_translate")
44663
44732
  if not region:
44664
44733
  region = api_keys.get("microsoft_translate_region") or api_keys.get("azure_region") or "global"
44665
-
44734
+
44666
44735
  if not api_key:
44667
44736
  return "[Microsoft Translator requires API key]"
44668
-
44669
- # Convert language codes (Azure uses standard codes)
44670
- src_code = source_lang.split('-')[0].split('_')[0].lower()
44671
- tgt_code = target_lang.split('-')[0].split('_')[0].lower()
44737
+
44738
+ # Map full language names to ISO codes
44739
+ lang_name_to_code = {
44740
+ 'english': 'en', 'dutch': 'nl', 'german': 'de', 'french': 'fr',
44741
+ 'spanish': 'es', 'italian': 'it', 'portuguese': 'pt', 'russian': 'ru',
44742
+ 'chinese': 'zh', 'japanese': 'ja', 'korean': 'ko', 'arabic': 'ar',
44743
+ 'polish': 'pl', 'swedish': 'sv', 'norwegian': 'no', 'danish': 'da',
44744
+ 'finnish': 'fi', 'greek': 'el', 'turkish': 'tr', 'czech': 'cs',
44745
+ 'hungarian': 'hu', 'romanian': 'ro', 'bulgarian': 'bg', 'ukrainian': 'uk',
44746
+ 'hebrew': 'he', 'thai': 'th', 'vietnamese': 'vi', 'indonesian': 'id',
44747
+ }
44748
+
44749
+ # Convert language - try name mapping first, then code extraction
44750
+ src_lower = source_lang.lower().strip()
44751
+ tgt_lower = target_lang.lower().strip()
44752
+
44753
+ src_code = lang_name_to_code.get(src_lower, src_lower.split('-')[0].split('_')[0])
44754
+ tgt_code = lang_name_to_code.get(tgt_lower, tgt_lower.split('-')[0].split('_')[0])
44672
44755
 
44673
44756
  # Microsoft Translator API v3.0
44674
44757
  endpoint = f"https://api.cognitive.microsofttranslator.com/translate"
@@ -44756,17 +44839,30 @@ OUTPUT ONLY THE SEGMENT MARKERS. DO NOT ADD EXPLANATIONS BEFORE OR AFTER."""
44756
44839
  """Call ModernMT API"""
44757
44840
  try:
44758
44841
  import requests
44759
-
44842
+
44760
44843
  api_keys = self.load_api_keys()
44761
44844
  if not api_key:
44762
44845
  api_key = api_keys.get("modernmt")
44763
-
44846
+
44764
44847
  if not api_key:
44765
44848
  return "[ModernMT requires API key]"
44766
-
44767
- # Convert language codes
44768
- src_code = source_lang.split('-')[0].split('_')[0]
44769
- tgt_code = target_lang.split('-')[0].split('_')[0]
44849
+
44850
+ # Map full language names to ISO codes
44851
+ lang_name_to_code = {
44852
+ 'english': 'en', 'dutch': 'nl', 'german': 'de', 'french': 'fr',
44853
+ 'spanish': 'es', 'italian': 'it', 'portuguese': 'pt', 'russian': 'ru',
44854
+ 'chinese': 'zh', 'japanese': 'ja', 'korean': 'ko', 'arabic': 'ar',
44855
+ 'polish': 'pl', 'swedish': 'sv', 'norwegian': 'no', 'danish': 'da',
44856
+ 'finnish': 'fi', 'greek': 'el', 'turkish': 'tr', 'czech': 'cs',
44857
+ 'hungarian': 'hu', 'romanian': 'ro', 'bulgarian': 'bg', 'ukrainian': 'uk',
44858
+ }
44859
+
44860
+ # Convert language - try name mapping first, then code extraction
44861
+ src_lower = source_lang.lower().strip()
44862
+ tgt_lower = target_lang.lower().strip()
44863
+
44864
+ src_code = lang_name_to_code.get(src_lower, src_lower.split('-')[0].split('_')[0])
44865
+ tgt_code = lang_name_to_code.get(tgt_lower, tgt_lower.split('-')[0].split('_')[0])
44770
44866
 
44771
44867
  # ModernMT API endpoint
44772
44868
  url = "https://api.modernmt.com/translate"
@@ -44795,14 +44891,29 @@ OUTPUT ONLY THE SEGMENT MARKERS. DO NOT ADD EXPLANATIONS BEFORE OR AFTER."""
44795
44891
  """Call MyMemory Translation API (free tier available, simple REST API)"""
44796
44892
  try:
44797
44893
  import requests
44798
-
44894
+
44799
44895
  # MyMemory is free, but API key provides higher limits
44800
44896
  api_keys = self.load_api_keys()
44801
44897
  api_key = api_key or api_keys.get("mymemory") # Optional, works without key
44802
-
44803
- # Convert language codes (MyMemory uses 2-letter codes)
44804
- src_code = source_lang.split('-')[0].split('_')[0].lower()
44805
- tgt_code = target_lang.split('-')[0].split('_')[0].lower()
44898
+
44899
+ # Map full language names to ISO codes
44900
+ lang_name_to_code = {
44901
+ 'english': 'en', 'dutch': 'nl', 'german': 'de', 'french': 'fr',
44902
+ 'spanish': 'es', 'italian': 'it', 'portuguese': 'pt', 'russian': 'ru',
44903
+ 'chinese': 'zh', 'japanese': 'ja', 'korean': 'ko', 'arabic': 'ar',
44904
+ 'polish': 'pl', 'swedish': 'sv', 'norwegian': 'no', 'danish': 'da',
44905
+ 'finnish': 'fi', 'greek': 'el', 'turkish': 'tr', 'czech': 'cs',
44906
+ 'hungarian': 'hu', 'romanian': 'ro', 'bulgarian': 'bg', 'ukrainian': 'uk',
44907
+ 'hebrew': 'he', 'thai': 'th', 'vietnamese': 'vi', 'indonesian': 'id',
44908
+ 'malay': 'ms', 'hindi': 'hi', 'bengali': 'bn', 'tamil': 'ta',
44909
+ }
44910
+
44911
+ # Convert language - try name mapping first, then code extraction
44912
+ src_lower = source_lang.lower().strip()
44913
+ tgt_lower = target_lang.lower().strip()
44914
+
44915
+ src_code = lang_name_to_code.get(src_lower, src_lower.split('-')[0].split('_')[0])
44916
+ tgt_code = lang_name_to_code.get(tgt_lower, tgt_lower.split('-')[0].split('_')[0])
44806
44917
 
44807
44918
  # MyMemory API endpoint
44808
44919
  url = "https://api.mymemory.translated.net/get"
@@ -50,7 +50,7 @@
50
50
  class="nav-discussions">💬 Discussions</a></li>
51
51
  <li class="nav-action">
52
52
  <a href="https://github.com/michaelbeijer/Supervertaler/blob/main/CHANGELOG.md" target="_blank"
53
- class="nav-version" title="Current version">v1.9.204</a>
53
+ class="nav-version" title="Current version">v1.9.205</a>
54
54
  </li>
55
55
  <li class="nav-action">
56
56
  <a href="https://github.com/michaelbeijer/Supervertaler" target="_blank" class="nav-icon-link"
@@ -74,7 +74,7 @@
74
74
  Supervertaler
75
75
  <span class="gradient-text">The Ultimate Translation Workbench</span>
76
76
  </h1>
77
- <p class="version-badge">v1.9.204</p>
77
+ <p class="version-badge">v1.9.205</p>
78
78
  <p class="hero-subtitle">
79
79
  AI-enhanced translation workbench. Work with ChatGPT, Claude, and Gemini simultaneously.
80
80
  Built by translators, for translators and writers.
@@ -711,7 +711,7 @@
711
711
  <div style="text-align: center; margin: 40px 0;">
712
712
  <div class="download-card featured"
713
713
  style="border: 3px solid #6366F1; max-width: 700px; margin: 0 auto;">
714
- <div class="download-badge" style="background: #6366F1;">v1.9.204</div>
714
+ <div class="download-badge" style="background: #6366F1;">v1.9.205</div>
715
715
  <h3>🎨 Supervertaler</h3>
716
716
  <p class="download-description" style="font-weight: 600; color: #6366F1; margin-bottom: 10px;">
717
717
  Modern Professional Interface
@@ -1223,7 +1223,7 @@
1223
1223
  </svg>
1224
1224
  </button>
1225
1225
 
1226
- <script src="script.js?v=1.9.203"></script>
1226
+ <script src="script.js?v=1.9.205"></script>
1227
1227
  </body>
1228
1228
 
1229
1229
  </html>
@@ -168,9 +168,10 @@ class AIActionSystem:
168
168
 
169
169
  except json.JSONDecodeError as e:
170
170
  self.log(f"✗ Failed to parse action parameters: {e}")
171
+ self.log(f"[DEBUG] Raw params_str: {params_str[:500]}...") # Log what we tried to parse
171
172
  action_results.append({
172
173
  'action': action_name,
173
- 'params': params_str,
174
+ 'params': params_str[:200], # Truncate for display
174
175
  'success': False,
175
176
  'error': f"Invalid JSON parameters: {e}"
176
177
  })
@@ -325,7 +326,15 @@ class AIActionSystem:
325
326
  content = params.get('content')
326
327
 
327
328
  if not name or not content:
328
- raise ValueError("Missing required parameters: name and content")
329
+ # Log what we actually received for debugging
330
+ self.log(f"[DEBUG] create_prompt received params: {params}")
331
+ self.log(f"[DEBUG] name={repr(name)}, content={repr(content)[:100] if content else None}")
332
+ missing = []
333
+ if not name:
334
+ missing.append("name")
335
+ if not content:
336
+ missing.append("content")
337
+ raise ValueError(f"Missing required parameters: {', '.join(missing)}. Received keys: {list(params.keys())}")
329
338
 
330
339
  # Build relative path
331
340
  folder = params.get('folder', '')
@@ -960,5 +969,8 @@ PARAMS: {
960
969
  output += "\n"
961
970
  else:
962
971
  output += f"\n✗ **{action_name}**: {result['error']}\n"
972
+ # Show hint for common errors
973
+ if 'Missing required parameters' in result['error']:
974
+ output += " _Hint: The AI may not have generated the correct format. Try clicking the button again._\n"
963
975
 
964
976
  return output
@@ -289,6 +289,9 @@ class MTQuickPopup(QDialog):
289
289
  background-color: #e0e0e0;
290
290
  border-radius: 4px;
291
291
  }
292
+ QPushButton:focus {
293
+ outline: none;
294
+ }
292
295
  """)
293
296
  settings_btn.clicked.connect(self._open_settings)
294
297
  header_layout.addWidget(settings_btn)
@@ -447,6 +447,9 @@ class TermbaseEntryEditor(QDialog):
447
447
  QPushButton:hover {
448
448
  background-color: #d32f2f;
449
449
  }
450
+ QPushButton:focus {
451
+ outline: none;
452
+ }
450
453
  """)
451
454
  self.delete_btn.clicked.connect(self.delete_term)
452
455
  buttons_layout.addWidget(self.delete_btn)
@@ -465,6 +468,9 @@ class TermbaseEntryEditor(QDialog):
465
468
  QPushButton:hover {
466
469
  background-color: #e0e0e0;
467
470
  }
471
+ QPushButton:focus {
472
+ outline: none;
473
+ }
468
474
  """)
469
475
  self.cancel_btn.clicked.connect(self.reject)
470
476
  buttons_layout.addWidget(self.cancel_btn)
@@ -483,6 +489,9 @@ class TermbaseEntryEditor(QDialog):
483
489
  QPushButton:hover {
484
490
  background-color: #45a049;
485
491
  }
492
+ QPushButton:focus {
493
+ outline: none;
494
+ }
486
495
  """)
487
496
  self.save_btn.clicked.connect(self.save_term)
488
497
  buttons_layout.addWidget(self.save_btn)
@@ -370,7 +370,16 @@ class ThemeManager:
370
370
  QPushButton:disabled {{
371
371
  color: {theme.text_disabled};
372
372
  }}
373
-
373
+
374
+ /* Remove focus rectangles from buttons */
375
+ QPushButton:focus {{
376
+ outline: none;
377
+ }}
378
+
379
+ QToolButton:focus {{
380
+ outline: none;
381
+ }}
382
+
374
383
  /* Combo boxes */
375
384
  QComboBox {{
376
385
  background-color: {theme.base};
@@ -1190,6 +1190,9 @@ class TranslationResultsPanel(QWidget):
1190
1190
  QPushButton:hover {
1191
1191
  background-color: #0b7dda;
1192
1192
  }
1193
+ QPushButton:focus {
1194
+ outline: none;
1195
+ }
1193
1196
  """)
1194
1197
  self.termbase_refresh_btn.setFixedHeight(20)
1195
1198
  self.termbase_refresh_btn.setToolTip("Refresh entry from database")
@@ -1210,6 +1213,9 @@ class TranslationResultsPanel(QWidget):
1210
1213
  QPushButton:hover {
1211
1214
  background-color: #45a049;
1212
1215
  }
1216
+ QPushButton:focus {
1217
+ outline: none;
1218
+ }
1213
1219
  """)
1214
1220
  self.termbase_edit_btn.setFixedHeight(20)
1215
1221
  self.termbase_edit_btn.clicked.connect(self._on_edit_termbase_entry)