supervertaler 1.9.177b0__tar.gz → 1.9.178__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 (372) hide show
  1. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/CHANGELOG.md +15 -1
  2. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/PKG-INFO +1 -1
  3. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/Supervertaler.py +64 -24
  4. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/index.html +4 -4
  5. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/mqxliff_handler.py +71 -2
  6. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/tm_metadata_manager.py +23 -18
  7. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/pyproject.toml +1 -1
  8. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/supervertaler.egg-info/PKG-INFO +1 -1
  9. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/FAQ.md +0 -0
  10. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/LICENSE +0 -0
  11. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/MANIFEST.in +0 -0
  12. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/README.md +0 -0
  13. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/ICON_CONVERSION_GUIDE.md +0 -0
  14. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/MB.ico +0 -0
  15. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/README.md +0 -0
  16. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/generate_icons.py +0 -0
  17. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/icon.ico +0 -0
  18. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/icon_128.png +0 -0
  19. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/icon_24.png +0 -0
  20. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/icon_256.png +0 -0
  21. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/icon_32.png +0 -0
  22. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/icon_48.png +0 -0
  23. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/icon_64.png +0 -0
  24. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/icon_preview.html +0 -0
  25. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/icon_sv_modern.svg +0 -0
  26. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/icon_sv_modern_paths.svg +0 -0
  27. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/icon_sv_simple.svg +0 -0
  28. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/patent-drawing-1951.jpg +0 -0
  29. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/supervertaler_icon_colours.png +0 -0
  30. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/.nojekyll +0 -0
  31. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/CNAME +0 -0
  32. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/SIMILAR_APPS.md +0 -0
  33. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/apple-touch-icon.png +0 -0
  34. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/BUGFIX_README.md +0 -0
  35. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/CHANGELIST.md +0 -0
  36. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/CHANGELOG_Old.md +0 -0
  37. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/FAQ.md +0 -0
  38. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/INSTALLATION_v1.7.8.md +0 -0
  39. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/PROJECT_ORGANIZATION.md +0 -0
  40. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/TERMBASE_REFACTORING_SUMMARY.md +0 -0
  41. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/USER_GUIDE_v1.7.8.md +0 -0
  42. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/VERIFICATION_CHECKLIST.md +0 -0
  43. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/BEFORE_AFTER_COMPARISON.md +0 -0
  44. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/BUGFIX_SESSION_SUMMARY.md +0 -0
  45. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/COLOR_SCHEME_REFERENCE.md +0 -0
  46. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/COMPACT_LAYOUT_CHANGELOG.md +0 -0
  47. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/COMPACT_LAYOUT_DOCUMENTATION_INDEX.md +0 -0
  48. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/COMPACT_LAYOUT_IMPLEMENTATION_SUMMARY.md +0 -0
  49. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/COMPACT_LAYOUT_UPDATE.md +0 -0
  50. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/COMPLETE_IMPLEMENTATION_SUMMARY.md +0 -0
  51. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/COMPLETE_PROJECT_SUMMARY.md +0 -0
  52. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/DATABASE_FINAL_SUMMARY.md +0 -0
  53. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/DATABASE_IMPLEMENTATION.md +0 -0
  54. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/DATABASE_PRODUCTION_READY.md +0 -0
  55. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/DATABASE_QUICK_REFERENCE.md +0 -0
  56. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/DUAL_VERSION_STRATEGY.md +0 -0
  57. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/FINAL_SESSION_SUMMARY.md +0 -0
  58. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/FOLDER_STRUCTURE_UPDATE.md +0 -0
  59. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/GITHUB_PAGES_SETUP.md +0 -0
  60. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/IMPLEMENTATION_CHECKLIST.md +0 -0
  61. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/IMPLEMENTATION_COMPLETE.md +0 -0
  62. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/IMPLEMENTATION_COMPLETE_COMPACT_LAYOUT.md +0 -0
  63. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/IMPLEMENTATION_READY.md +0 -0
  64. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/IMPLEMENTATION_STATUS_PHASE2_READY.md +0 -0
  65. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/KEYBOARD_SHORTCUTS_MATCHES.md +0 -0
  66. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/LAYOUT_BEFORE_AFTER.md +0 -0
  67. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/MASTER_INDEX.md +0 -0
  68. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/MATCH_DISPLAY_IMPROVEMENTS.md +0 -0
  69. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/MATCH_DISPLAY_LONG_SEGMENTS_UPDATE.md +0 -0
  70. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/MATCH_DISPLAY_QUICK_REFERENCE.md +0 -0
  71. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/MATCH_INSERTION_FEATURES.md +0 -0
  72. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/MATCH_SHORTCUTS_QUICK_REF.md +0 -0
  73. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/MODULAR_ARCHITECTURE_GUIDE.md +0 -0
  74. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/PHASE2_IMPLEMENTATION_CHECKLIST.md +0 -0
  75. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/PHASE2_IMPLEMENTATION_DETAILED_CHECKLIST.md +0 -0
  76. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/PHASE2_IMPLEMENTATION_IN_PROGRESS.md +0 -0
  77. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/PHASE2_NEXT_STEPS.md +0 -0
  78. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/PHASE2_READY_TO_IMPLEMENT.md +0 -0
  79. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/PHASE2_START_HERE.md +0 -0
  80. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/QT_MIGRATION_PLAN.md +0 -0
  81. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/QT_SESSION_SUMMARY.md +0 -0
  82. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/QUICK_SESSION_SUMMARY.md +0 -0
  83. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/RELEASE_Qt_v1.0.0_Phase5.md +0 -0
  84. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/RELEASE_v1.9.38.md +0 -0
  85. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/RELEASE_v3.7.1.md +0 -0
  86. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/RELEASE_v3.7.6.md +0 -0
  87. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/RELEASE_v3.7.7.md +0 -0
  88. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/RESTRUCTURE_COMPLETE.md +0 -0
  89. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/SESSION_DOCUMENTATION_INDEX.md +0 -0
  90. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/SESSION_IMPLEMENTATION_SUMMARY.md +0 -0
  91. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/SESSION_LONG_SEGMENTS_COMPLETE.md +0 -0
  92. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/SESSION_MATCH_FEATURES_COMPLETE.md +0 -0
  93. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/SESSION_STATUS.md +0 -0
  94. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/SESSION_SUMMARY_Phase5.md +0 -0
  95. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/START_HERE.md +0 -0
  96. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/START_IMPLEMENTATION_HERE.md +0 -0
  97. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/STYLE_GUIDES_DELIVERABLES.md +0 -0
  98. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/STYLE_GUIDES_DOCUMENTATION_INDEX.md +0 -0
  99. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/STYLE_GUIDES_FEATURE_SUMMARY.md +0 -0
  100. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/STYLE_GUIDES_IMPLEMENTATION.md +0 -0
  101. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/STYLE_GUIDES_PROJECT_COMPLETION.md +0 -0
  102. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/STYLE_GUIDES_QUICK_REFERENCE.md +0 -0
  103. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/STYLE_GUIDES_VISUAL_ARCHITECTURE.md +0 -0
  104. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TERMBASE_FIXES.md +0 -0
  105. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TERMBASE_IMPLEMENTATION.md +0 -0
  106. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TERMBASE_QUICK_START.md +0 -0
  107. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TMX_CONCORDANCE_STYLE_HIGHLIGHTING.md +0 -0
  108. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TMX_DUAL_HIGHLIGHTING.md +0 -0
  109. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TMX_EDITOR_HIGHLIGHTING_UPDATE.md +0 -0
  110. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TMX_EDITOR_IMPLEMENTATION.md +0 -0
  111. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TMX_EDITOR_WORD_HIGHLIGHTING.md +0 -0
  112. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TMX_TABLE_LAYOUT_INTEGRATED_EDIT.md +0 -0
  113. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TMX_TREEVIEW_GRID_RESIZABLE.md +0 -0
  114. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TMX_WORD_HIGHLIGHTING_IMPLEMENTATION_COMPLETE.md +0 -0
  115. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TMX_WORD_HIGHLIGHTING_SUMMARY.md +0 -0
  116. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TM_MATCH_PANE_CHECKLIST.md +0 -0
  117. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TM_MATCH_PANE_IMPLEMENTATION.md +0 -0
  118. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TM_MATCH_PANE_VISUAL_GUIDE.md +0 -0
  119. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/VISUAL_COLOR_REFERENCE.md +0 -0
  120. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/VISUAL_IMPLEMENTATION_SUMMARY.md +0 -0
  121. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/COLOR_FIX_EXPLANATION.md +0 -0
  122. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/DATABASE_CONSOLIDATION_REPORT.md +0 -0
  123. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/DUAL_EDITOR_WORKFLOW.md +0 -0
  124. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/DUAL_SELECTION_SYSTEM.md +0 -0
  125. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/IMPROVEMENTS_SUMMARY.md +0 -0
  126. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/ISSUES_FIXES_PROGRESS.md +0 -0
  127. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/MATCH_DISPLAY_COMPACT_FIXES.md +0 -0
  128. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/README_SESSION_TERMBASE.md +0 -0
  129. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/SAFE_DELETION_REMINDER.txt +0 -0
  130. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/SESSION_SUMMARY.md +0 -0
  131. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/TERMBASE_FIXES_APPLIED.md +0 -0
  132. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/TESTING_CHECKLIST.md +0 -0
  133. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/TMX_EDITOR_ANNOUNCEMENT.md +0 -0
  134. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/TRANSLATION_RESULTS_IMPROVEMENTS.md +0 -0
  135. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/assets/Figure1.png +0 -0
  136. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/assets/patent-drawing-1951.jpg +0 -0
  137. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/changelog.html +0 -0
  138. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/dev-notes/QA.md +0 -0
  139. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/dev-notes/STYLE_GUIDES_UI_TEMPLATE.py +0 -0
  140. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/dev-notes/_Notes_2025-11-21.md +0 -0
  141. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/dev-notes/_things_to_remind_AIs_of_when_translating.md +0 -0
  142. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/dev-notes/issue_28.md +0 -0
  143. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/dev-notes/openai_debug.txt +0 -0
  144. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/dev-notes/pre-translation-dialog-enhancement.md +0 -0
  145. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/emoji_mockup.html +0 -0
  146. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/favicon.ico +0 -0
  147. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/guides/AI_PROMPT_ASSISTANT_USER_GUIDE.md +0 -0
  148. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/guides/ENCODING_REPAIR_TOOL.md +0 -0
  149. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/guides/FAQ.md +0 -0
  150. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/guides/GLOSSARY_OF_SUPERVERTALER_TERMINOLOGY.md +0 -0
  151. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/guides/JSON_EDITORS_AND_HUMAN_READABLE_FORMAT.md +0 -0
  152. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/guides/KEYBOARD_SHORTCUTS.md +0 -0
  153. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/guides/PDF_RESCUE.md +0 -0
  154. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/guides/PROMPT_ASSISTANT_USER_GUIDE.md +0 -0
  155. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/guides/QT_SETTINGS_DIALOG_GUIDE.md +0 -0
  156. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/guides/TERM_EXTRACTION_GUIDE.md +0 -0
  157. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/guides/USER_DATA_FOLDER_SETUP.md +0 -0
  158. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/idea_beijer.bot_integration_idea/BEIJERBOT_FEATURE_ANALYSIS.md +0 -0
  159. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/idea_beijer.bot_integration_idea/CLI_BRIDGE_SPECIFICATION.md +0 -0
  160. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/idea_beijer.bot_integration_idea/IMPLEMENTATION_ROADMAP.md +0 -0
  161. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/idea_beijer.bot_integration_idea/QUICKMENU_INTEGRATION_PLAN.md +0 -0
  162. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/idea_beijer.bot_integration_idea/README.md +0 -0
  163. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/idea_tag-cleaner/tag_cleaner.md +0 -0
  164. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/idea_use_vscode_as_cat_tool/ai-agent-translation-workflow.md +0 -0
  165. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/logo.png +0 -0
  166. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/2025-10-13_00-46-16.jpg +0 -0
  167. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Superlookup_Web_resources.jpg +0 -0
  168. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Supervertaler_AI-Assistant.jpg +0 -0
  169. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Supervertaler_CLASSIC_v2.4.1_(tkinter).jpg +0 -0
  170. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Supervertaler_Prompt_Manager_2026-01-14.png +0 -0
  171. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Supervertaler_Qt_LLM_LeaderboardResults_2025-11-12.jpg +0 -0
  172. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Supervertaler_Qt_LLM_Leaderboard_2025-11-12.jpg +0 -0
  173. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Supervertaler_Superbrowser.jpg +0 -0
  174. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Supervertaler_dark_mode_2025-12-16.jpg +0 -0
  175. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Supervertaler_dark_mode_2025-12-17.jpg +0 -0
  176. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Supervertaler_grid.jpg +0 -0
  177. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Supervertaler_tkinter (v3.7.7).jpg +0 -0
  178. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Supervertaler_v1.9.102_compare_panel_2026-01-14.png +0 -0
  179. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Supervertaler_v1.9.102_grid_2026-01-14.png +0 -0
  180. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/new/Supervertaler-grid.jpg +0 -0
  181. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/new/Supervertaler_AI-Assistant.jpg +0 -0
  182. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/new/Supervertaler_Prompt-Library.jpg +0 -0
  183. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/new/Supervertaler_Qt_LLM_LeaderboardResults_2025-11-12.jpg +0 -0
  184. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/new/Supervertaler_Qt_LLM_Leaderboard_2025-11-12.jpg +0 -0
  185. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/new/Supervertaler_Superbrowser.jpg +0 -0
  186. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/old/2025-10-13_00-50-24.jpg +0 -0
  187. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/old/Supervertaler_Qt_2025-11-12.jpg +0 -0
  188. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/script.js +0 -0
  189. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/site.webmanifest +0 -0
  190. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/specifications/AI_ASSISTANT_PHASE2_IMPLEMENTATION.md +0 -0
  191. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/specifications/AI_PROMPT_ASSISTANT.md +0 -0
  192. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/specifications/AI_PROMPT_ASSISTANT_IMPLEMENTATION.md +0 -0
  193. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/specifications/EXPORT_MENU_UPDATE.md +0 -0
  194. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/specifications/IMPLEMENTATION_SUMMARY.md +0 -0
  195. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/specifications/QT_PHASE2_COMPLETE.md +0 -0
  196. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/specifications/QT_PHASE3_COMPLETE.md +0 -0
  197. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/specifications/SUPERVERTALER_DATA_FORMAT.md +0 -0
  198. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/specifications/TASK_TYPE_SYSTEM.md +0 -0
  199. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/specifications/TERMINOLOGY_UPDATE_SUMMARY.md +0 -0
  200. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/specifications/opus-api-integration.md +0 -0
  201. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/styles.css +0 -0
  202. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/.gitbook/assets/supervertaler-logo.png +0 -0
  203. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/.gitbook/assets/sv-icon.svg +0 -0
  204. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/GITBOOK_LANDING_DRAFT.md +0 -0
  205. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/README.md +0 -0
  206. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/SUMMARY.md +0 -0
  207. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/ai-translation/batch-translation.md +0 -0
  208. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/ai-translation/ollama.md +0 -0
  209. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/ai-translation/overview.md +0 -0
  210. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/ai-translation/prompt-library.md +0 -0
  211. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/ai-translation/prompts.md +0 -0
  212. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/ai-translation/providers.md +0 -0
  213. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/ai-translation/single-segment.md +0 -0
  214. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/cat-tools/cafetran.md +0 -0
  215. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/cat-tools/memoq.md +0 -0
  216. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/cat-tools/overview.md +0 -0
  217. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/cat-tools/phrase.md +0 -0
  218. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/cat-tools/trados.md +0 -0
  219. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/editor/editing-confirming.md +0 -0
  220. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/editor/filtering.md +0 -0
  221. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/editor/find-replace.md +0 -0
  222. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/editor/keyboard-shortcuts.md +0 -0
  223. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/editor/navigation.md +0 -0
  224. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/editor/pagination.md +0 -0
  225. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/editor/translation-grid.md +0 -0
  226. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/get-started/api-keys.md +0 -0
  227. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/get-started/first-project.md +0 -0
  228. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/get-started/installation.md +0 -0
  229. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/get-started/quick-start.md +0 -0
  230. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/glossaries/basics.md +0 -0
  231. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/glossaries/creating.md +0 -0
  232. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/glossaries/extraction.md +0 -0
  233. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/glossaries/highlighting.md +0 -0
  234. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/glossaries/importing.md +0 -0
  235. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/import-export/bilingual-tables.md +0 -0
  236. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/import-export/docx-import.md +0 -0
  237. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/import-export/exporting.md +0 -0
  238. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/import-export/formats.md +0 -0
  239. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/import-export/multi-file.md +0 -0
  240. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/import-export/txt-import.md +0 -0
  241. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/qa/non-translatables.md +0 -0
  242. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/qa/spellcheck.md +0 -0
  243. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/qa/tag-validation.md +0 -0
  244. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/reference/changelog.md +0 -0
  245. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/reference/contributing.md +0 -0
  246. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/reference/faq.md +0 -0
  247. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/reference/file-formats.md +0 -0
  248. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/settings/fonts.md +0 -0
  249. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/settings/general.md +0 -0
  250. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/settings/shortcuts.md +0 -0
  251. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/settings/theme.md +0 -0
  252. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/settings/view.md +0 -0
  253. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/superlookup/glossary-search.md +0 -0
  254. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/superlookup/mt.md +0 -0
  255. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/superlookup/overview.md +0 -0
  256. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/superlookup/tm-search.md +0 -0
  257. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/superlookup/web-resources.md +0 -0
  258. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/tools/autofingers.md +0 -0
  259. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/tools/image-extractor.md +0 -0
  260. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/tools/pdf-rescue.md +0 -0
  261. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/tools/tmx-editor.md +0 -0
  262. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/tools/voice-commands.md +0 -0
  263. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/translation-memory/basics.md +0 -0
  264. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/translation-memory/fuzzy-matching.md +0 -0
  265. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/translation-memory/importing-tmx.md +0 -0
  266. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/translation-memory/managing-tms.md +0 -0
  267. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/translation-memory/supermemory.md +0 -0
  268. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/troubleshooting/api-issues.md +0 -0
  269. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/troubleshooting/common-issues.md +0 -0
  270. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/troubleshooting/import-export-errors.md +0 -0
  271. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/troubleshooting/linux.md +0 -0
  272. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/troubleshooting/performance.md +0 -0
  273. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/sv-icon.svg +0 -0
  274. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/technical/AI_ASSISTANT_GUIDE.md +0 -0
  275. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/technical/AI_ASSISTANT_IMPLEMENTATION.md +0 -0
  276. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/technical/AI_ASSISTANT_INTEGRATION.md +0 -0
  277. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/technical/AI_ASSISTANT_QUICK_REFERENCE.md +0 -0
  278. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/technical/DATABASE_LOCATIONS.md +0 -0
  279. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/technical/FILTER_HIGHLIGHTING_FIX.md +0 -0
  280. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/technical/MODULE_HEADER_PATTERN.md +0 -0
  281. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/technical/README.md +0 -0
  282. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/technical/SUPERBROWSER_GUIDE.md +0 -0
  283. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/technical/SUPERVOICE_TROUBLESHOOTING.md +0 -0
  284. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/technical/UNIFIED_PROMPT_LIBRARY_GUIDE.md +0 -0
  285. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/technical/VOICE_DICTATION_GUIDE.md +0 -0
  286. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/tests/test_encoding_corruption.txt +0 -0
  287. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/web-app-manifest-192x192.png +0 -0
  288. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/web-app-manifest-512x512.png +0 -0
  289. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/__init__.py +0 -0
  290. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/ai_actions.py +0 -0
  291. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/ai_attachment_manager.py +0 -0
  292. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/ai_file_viewer_dialog.py +0 -0
  293. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/autofingers_engine.py +0 -0
  294. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/cafetran_docx_handler.py +0 -0
  295. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/config_manager.py +0 -0
  296. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/database_manager.py +0 -0
  297. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/database_migrations.py +0 -0
  298. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/dejavurtf_handler.py +0 -0
  299. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/document_analyzer.py +0 -0
  300. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/docx_handler.py +0 -0
  301. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/encoding_repair.py +0 -0
  302. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/encoding_repair_Qt.py +0 -0
  303. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/encoding_repair_ui.py +0 -0
  304. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/feature_manager.py +0 -0
  305. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/figure_context_manager.py +0 -0
  306. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/file_dialog_helper.py +0 -0
  307. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/find_replace.py +0 -0
  308. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/find_replace_qt.py +0 -0
  309. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/glossary_manager.py +0 -0
  310. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/image_extractor.py +0 -0
  311. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/keyboard_shortcuts_widget.py +0 -0
  312. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/llm_clients.py +0 -0
  313. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/llm_leaderboard.py +0 -0
  314. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/llm_superbench_ui.py +0 -0
  315. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/local_llm_setup.py +0 -0
  316. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/model_update_dialog.py +0 -0
  317. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/model_version_checker.py +0 -0
  318. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/non_translatables_manager.py +0 -0
  319. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/pdf_rescue_Qt.py +0 -0
  320. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/pdf_rescue_tkinter.py +0 -0
  321. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/phrase_docx_handler.py +0 -0
  322. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/project_home_panel.py +0 -0
  323. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/prompt_assistant.py +0 -0
  324. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/prompt_library.py +0 -0
  325. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/prompt_library_migration.py +0 -0
  326. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/quick_access_sidebar.py +0 -0
  327. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/ribbon_widget.py +0 -0
  328. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/sdlppx_handler.py +0 -0
  329. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/setup_wizard.py +0 -0
  330. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/shortcut_manager.py +0 -0
  331. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/simple_segmenter.py +0 -0
  332. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/spellcheck_manager.py +0 -0
  333. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/statuses.py +0 -0
  334. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/style_guide_manager.py +0 -0
  335. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/superbench_ui.py +0 -0
  336. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/superbrowser.py +0 -0
  337. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/supercleaner.py +0 -0
  338. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/supercleaner_ui.py +0 -0
  339. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/superdocs.py +0 -0
  340. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/superdocs_viewer_qt.py +0 -0
  341. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/superlookup.py +0 -0
  342. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/tag_cleaner.py +0 -0
  343. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/tag_manager.py +0 -0
  344. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/term_extractor.py +0 -0
  345. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/termbase_entry_editor.py +0 -0
  346. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/termbase_import_export.py +0 -0
  347. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/termbase_manager.py +0 -0
  348. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/termview_widget.py +0 -0
  349. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/theme_manager.py +0 -0
  350. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/tm_editor_dialog.py +0 -0
  351. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/tm_manager_qt.py +0 -0
  352. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/tmx_editor.py +0 -0
  353. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/tmx_editor_qt.py +0 -0
  354. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/tmx_generator.py +0 -0
  355. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/tracked_changes.py +0 -0
  356. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/trados_docx_handler.py +0 -0
  357. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/translation_memory.py +0 -0
  358. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/translation_results_panel.py +0 -0
  359. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/translation_services.py +0 -0
  360. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/unified_prompt_library.py +0 -0
  361. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/unified_prompt_manager_qt.py +0 -0
  362. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/voice_commands.py +0 -0
  363. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/voice_dictation.py +0 -0
  364. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/voice_dictation_lite.py +0 -0
  365. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/setup.cfg +0 -0
  366. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/setup.py +0 -0
  367. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/supervertaler.egg-info/SOURCES.txt +0 -0
  368. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/supervertaler.egg-info/dependency_links.txt +0 -0
  369. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/supervertaler.egg-info/entry_points.txt +0 -0
  370. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/supervertaler.egg-info/not-zip-safe +0 -0
  371. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/supervertaler.egg-info/requires.txt +0 -0
  372. {supervertaler-1.9.177b0 → supervertaler-1.9.178}/supervertaler.egg-info/top_level.txt +0 -0
@@ -2,10 +2,24 @@
2
2
 
3
3
  All notable changes to Supervertaler are documented in this file.
4
4
 
5
- **Current Version:** v1.9.177-beta (January 28, 2026)
5
+ **Current Version:** v1.9.178-beta (January 28, 2026)
6
6
 
7
7
 
8
8
 
9
+ ## v1.9.178-beta - January 28, 2026
10
+
11
+ ### 🐛 Bug Fixes
12
+
13
+ - **Slovak Language in Import Dialogs**: Slovak and other languages were missing from the Trados and Phrase import language dropdowns. Both dialogs now use the full language list matching the main New Project dialog.
14
+
15
+ - **mqxliff Target Loading for Pretranslated Files**: When importing pretranslated mqxliff files, the target translations were not being loaded. Added new `extract_bilingual_segments()` method to properly extract both source and target text from memoQ XLIFF files.
16
+
17
+ - **TM Activation for Global TMs**: Fixed issue where TMs created when no project was loaded would not save segments later. The TM activation system now properly handles global activations (project_id=0), so TMs activated before loading a project continue to work after a project is opened.
18
+
19
+ - **TM Storage Consistency**: The `get_writable_tm_ids`, `get_active_tm_ids`, and `is_tm_active` functions now include globally-activated TMs in addition to project-specific activations.
20
+
21
+ ---
22
+
9
23
  ## v1.9.177-beta - January 28, 2026
10
24
 
11
25
  ### ✨ New Features
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: supervertaler
3
- Version: 1.9.177b0
3
+ Version: 1.9.178
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
@@ -3,8 +3,6 @@ Supervertaler
3
3
  =============
4
4
  The Ultimate Translation Workbench.
5
5
  Modern PyQt6 interface with specialised modules to handle any problem.
6
- Version: 1.9.153 (Tab Layout Reorganization)
7
- Release Date: January 23, 2026
8
6
  Framework: PyQt6
9
7
 
10
8
  This is the modern edition of Supervertaler using PyQt6 framework.
@@ -34,7 +32,7 @@ License: MIT
34
32
  """
35
33
 
36
34
  # Version Information.
37
- __version__ = "1.9.176-beta"
35
+ __version__ = "1.9.178"
38
36
  __phase__ = "0.9"
39
37
  __release_date__ = "2026-01-28"
40
38
  __edition__ = "Qt"
@@ -10622,7 +10620,11 @@ class SupervertalerQt(QMainWindow):
10622
10620
  button_layout = QHBoxLayout()
10623
10621
 
10624
10622
  create_btn = QPushButton("+ Create New TM")
10625
- create_btn.clicked.connect(lambda: self._show_create_tm_dialog(tm_metadata_mgr, refresh_tm_list, project_id))
10623
+ # Get project_id dynamically - use 0 (global) when no project is loaded
10624
+ create_btn.clicked.connect(lambda: self._show_create_tm_dialog(
10625
+ tm_metadata_mgr, refresh_tm_list,
10626
+ self.current_project.id if (hasattr(self, 'current_project') and self.current_project and hasattr(self.current_project, 'id')) else 0
10627
+ ))
10626
10628
  button_layout.addWidget(create_btn)
10627
10629
 
10628
10630
  import_btn = QPushButton("📥 Import TMX")
@@ -14974,8 +14976,8 @@ class SupervertalerQt(QMainWindow):
14974
14976
  )
14975
14977
 
14976
14978
  if result:
14977
- # Auto-activate for current project
14978
- if project_id:
14979
+ # Auto-activate for current project (or global=0 if no project loaded)
14980
+ if project_id is not None:
14979
14981
  tm_metadata_mgr.activate_tm(result, project_id)
14980
14982
 
14981
14983
  QMessageBox.information(self, "Success", f"Translation Memory '{name}' created successfully!")
@@ -26694,24 +26696,32 @@ class SupervertalerQt(QMainWindow):
26694
26696
  )
26695
26697
  return
26696
26698
 
26697
- # Extract segments
26698
- mqxliff_segments = handler.extract_source_segments()
26699
-
26699
+ # Extract segments (including targets for pretranslated files)
26700
+ mqxliff_segments = handler.extract_bilingual_segments()
26701
+
26700
26702
  if not mqxliff_segments:
26701
26703
  QMessageBox.warning(
26702
26704
  self, "No Segments",
26703
26705
  "No segments found in the memoQ XLIFF file."
26704
26706
  )
26705
26707
  return
26706
-
26708
+
26709
+ # Count pretranslated segments
26710
+ pretranslated_count = sum(1 for s in mqxliff_segments if s.get('target', '').strip())
26711
+
26707
26712
  # Convert to internal Segment format
26708
26713
  segments = []
26709
26714
  for i, mq_seg in enumerate(mqxliff_segments):
26715
+ # Map status from mqxliff
26716
+ status = mq_seg.get('status', 'not_started')
26717
+ if status not in ['not_started', 'pre_translated', 'translated', 'confirmed', 'locked']:
26718
+ status = 'not_started'
26719
+
26710
26720
  segment = Segment(
26711
26721
  id=i + 1,
26712
- source=mq_seg.plain_text,
26713
- target="",
26714
- status=DEFAULT_STATUS.key,
26722
+ source=mq_seg.get('source', ''),
26723
+ target=mq_seg.get('target', ''),
26724
+ status=status,
26715
26725
  notes="",
26716
26726
  )
26717
26727
  segments.append(segment)
@@ -26755,11 +26765,17 @@ class SupervertalerQt(QMainWindow):
26755
26765
  # Log success
26756
26766
  self.log(f"✓ Imported {len(segments)} segments from memoQ XLIFF: {Path(file_path).name}")
26757
26767
  self.log(f" Source: {source_lang}, Target: {target_lang}")
26758
-
26768
+ if pretranslated_count > 0:
26769
+ self.log(f" Pretranslated: {pretranslated_count} segments with target text")
26770
+
26771
+ # Build message with pretranslation info
26772
+ msg = f"Successfully imported {len(segments)} segment(s) from memoQ XLIFF.\n\nLanguages: {source_lang} → {target_lang}"
26773
+ if pretranslated_count > 0:
26774
+ msg += f"\n\nPretranslated: {pretranslated_count} segment(s) with target text loaded."
26775
+
26759
26776
  QMessageBox.information(
26760
26777
  self, "Import Successful",
26761
- f"Successfully imported {len(segments)} segment(s) from memoQ XLIFF.\n\n"
26762
- f"Languages: {source_lang} → {target_lang}"
26778
+ msg
26763
26779
  )
26764
26780
  except Exception as e:
26765
26781
  self.log(f"❌ Error importing memoQ XLIFF: {e}")
@@ -27168,7 +27184,19 @@ class SupervertalerQt(QMainWindow):
27168
27184
  source_row = QHBoxLayout()
27169
27185
  source_row.addWidget(QLabel("Source Language:"))
27170
27186
  source_combo = QComboBox()
27171
- source_combo.addItems(["English", "Dutch", "German", "French", "Spanish", "Italian", "Portuguese", "Polish", "Chinese", "Japanese", "Korean", "Russian"])
27187
+ # Full language list (same as New Project dialog)
27188
+ available_languages = [
27189
+ "Afrikaans", "Albanian", "Arabic", "Armenian", "Basque", "Bengali",
27190
+ "Bulgarian", "Catalan", "Chinese (Simplified)", "Chinese (Traditional)",
27191
+ "Croatian", "Czech", "Danish", "Dutch", "English", "Estonian",
27192
+ "Finnish", "French", "Galician", "Georgian", "German", "Greek",
27193
+ "Hebrew", "Hindi", "Hungarian", "Icelandic", "Indonesian", "Irish",
27194
+ "Italian", "Japanese", "Korean", "Latvian", "Lithuanian", "Macedonian",
27195
+ "Malay", "Norwegian", "Persian", "Polish", "Portuguese", "Romanian",
27196
+ "Russian", "Serbian", "Slovak", "Slovenian", "Spanish", "Swahili",
27197
+ "Swedish", "Thai", "Turkish", "Ukrainian", "Urdu", "Vietnamese", "Welsh"
27198
+ ]
27199
+ source_combo.addItems(available_languages)
27172
27200
  # Try to match current UI selection
27173
27201
  current_source = self.source_lang_combo.currentText() if hasattr(self, 'source_lang_combo') else "English"
27174
27202
  source_idx = source_combo.findText(current_source)
@@ -27176,12 +27204,12 @@ class SupervertalerQt(QMainWindow):
27176
27204
  source_combo.setCurrentIndex(source_idx)
27177
27205
  source_row.addWidget(source_combo)
27178
27206
  lang_group_layout.addLayout(source_row)
27179
-
27207
+
27180
27208
  # Target language
27181
27209
  target_row = QHBoxLayout()
27182
27210
  target_row.addWidget(QLabel("Target Language:"))
27183
27211
  target_combo = QComboBox()
27184
- target_combo.addItems(["English", "Dutch", "German", "French", "Spanish", "Italian", "Portuguese", "Polish", "Chinese", "Japanese", "Korean", "Russian"])
27212
+ target_combo.addItems(available_languages)
27185
27213
  # Try to match current UI selection
27186
27214
  current_target = self.target_lang_combo.currentText() if hasattr(self, 'target_lang_combo') else "Dutch"
27187
27215
  target_idx = target_combo.findText(current_target)
@@ -27189,15 +27217,15 @@ class SupervertalerQt(QMainWindow):
27189
27217
  target_combo.setCurrentIndex(target_idx)
27190
27218
  target_row.addWidget(target_combo)
27191
27219
  lang_group_layout.addLayout(target_row)
27192
-
27220
+
27193
27221
  lang_layout.addWidget(lang_group)
27194
-
27222
+
27195
27223
  # Buttons
27196
27224
  lang_buttons = QDialogButtonBox(QDialogButtonBox.StandardButton.Ok | QDialogButtonBox.StandardButton.Cancel)
27197
27225
  lang_buttons.accepted.connect(lang_dialog.accept)
27198
27226
  lang_buttons.rejected.connect(lang_dialog.reject)
27199
27227
  lang_layout.addWidget(lang_buttons)
27200
-
27228
+
27201
27229
  if lang_dialog.exec() != QDialog.DialogCode.Accepted:
27202
27230
  self.log("✗ User cancelled Trados import during language selection")
27203
27231
  return
@@ -27848,7 +27876,19 @@ class SupervertalerQt(QMainWindow):
27848
27876
  source_row = QHBoxLayout()
27849
27877
  source_row.addWidget(QLabel("Source Language:"))
27850
27878
  source_combo = QComboBox()
27851
- source_combo.addItems(["English", "Dutch", "German", "French", "Spanish", "Italian", "Portuguese", "Polish", "Chinese", "Japanese", "Korean", "Russian"])
27879
+ # Full language list (same as New Project dialog)
27880
+ available_languages = [
27881
+ "Afrikaans", "Albanian", "Arabic", "Armenian", "Basque", "Bengali",
27882
+ "Bulgarian", "Catalan", "Chinese (Simplified)", "Chinese (Traditional)",
27883
+ "Croatian", "Czech", "Danish", "Dutch", "English", "Estonian",
27884
+ "Finnish", "French", "Galician", "Georgian", "German", "Greek",
27885
+ "Hebrew", "Hindi", "Hungarian", "Icelandic", "Indonesian", "Irish",
27886
+ "Italian", "Japanese", "Korean", "Latvian", "Lithuanian", "Macedonian",
27887
+ "Malay", "Norwegian", "Persian", "Polish", "Portuguese", "Romanian",
27888
+ "Russian", "Serbian", "Slovak", "Slovenian", "Spanish", "Swahili",
27889
+ "Swedish", "Thai", "Turkish", "Ukrainian", "Urdu", "Vietnamese", "Welsh"
27890
+ ]
27891
+ source_combo.addItems(available_languages)
27852
27892
  # Try to match current UI selection
27853
27893
  current_source = self.source_lang_combo.currentText() if hasattr(self, 'source_lang_combo') else "English"
27854
27894
  source_idx = source_combo.findText(current_source)
@@ -27861,7 +27901,7 @@ class SupervertalerQt(QMainWindow):
27861
27901
  target_row = QHBoxLayout()
27862
27902
  target_row.addWidget(QLabel("Target Language:"))
27863
27903
  target_combo = QComboBox()
27864
- target_combo.addItems(["English", "Dutch", "German", "French", "Spanish", "Italian", "Portuguese", "Polish", "Chinese", "Japanese", "Korean", "Russian"])
27904
+ target_combo.addItems(available_languages)
27865
27905
  # Try to match current UI selection
27866
27906
  current_target = self.target_lang_combo.currentText() if hasattr(self, 'target_lang_combo') else "Dutch"
27867
27907
  target_idx = target_combo.findText(current_target)
@@ -17,7 +17,7 @@
17
17
  <link rel="apple-touch-icon" href="apple-touch-icon.png">
18
18
  <link rel="manifest" href="site.webmanifest">
19
19
 
20
- <link rel="stylesheet" href="styles.css?v=1.9.177-beta">
20
+ <link rel="stylesheet" href="styles.css?v=1.9.178-beta">
21
21
  <link rel="preconnect" href="https://fonts.googleapis.com">
22
22
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
23
23
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap"
@@ -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.177-beta</a>
53
+ class="nav-version" title="Current version">v1.9.178-beta</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.177-beta</p>
77
+ <p class="version-badge">v1.9.178-beta</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.177-beta</div>
714
+ <div class="download-badge" style="background: #6366F1;">v1.9.178-beta</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
@@ -159,9 +159,78 @@ class MQXLIFFHandler:
159
159
 
160
160
  segment = FormattedSegment(trans_unit_id, plain_text, formatted_xml)
161
161
  segments.append(segment)
162
-
162
+
163
163
  return segments
164
-
164
+
165
+ def extract_bilingual_segments(self) -> List[Dict]:
166
+ """
167
+ Extract all source AND target segments from the MQXLIFF file.
168
+ Used for importing pretranslated mqxliff files.
169
+
170
+ Returns:
171
+ List of dicts with 'id', 'source', 'target', 'status' keys
172
+ """
173
+ segments = []
174
+
175
+ if self.body_element is None:
176
+ return segments
177
+
178
+ # Find all trans-unit elements (with or without namespace)
179
+ trans_units = self.body_element.findall('.//xliff:trans-unit', self.NAMESPACES)
180
+ if not trans_units:
181
+ trans_units = self.body_element.findall('.//trans-unit')
182
+
183
+ for trans_unit in trans_units:
184
+ trans_unit_id = trans_unit.get('id', 'unknown')
185
+
186
+ # Skip auxiliary segments (like hyperlink URLs with mq:nosplitjoin="true")
187
+ nosplitjoin = trans_unit.get('{MQXliff}nosplitjoin', 'false')
188
+ if nosplitjoin == 'true':
189
+ continue
190
+
191
+ # Find source element
192
+ source_elem = trans_unit.find('xliff:source', self.NAMESPACES)
193
+ if source_elem is None:
194
+ source_elem = trans_unit.find('source')
195
+
196
+ # Find target element
197
+ target_elem = trans_unit.find('xliff:target', self.NAMESPACES)
198
+ if target_elem is None:
199
+ target_elem = trans_unit.find('target')
200
+
201
+ source_text = ""
202
+ target_text = ""
203
+
204
+ if source_elem is not None:
205
+ source_text = self._extract_plain_text(source_elem)
206
+
207
+ if target_elem is not None:
208
+ target_text = self._extract_plain_text(target_elem)
209
+
210
+ # Get memoQ status if available
211
+ mq_status = trans_unit.get('{MQXliff}status', '')
212
+
213
+ # Map memoQ status to internal status
214
+ # memoQ statuses: "NotStarted", "Editing", "Confirmed", "Reviewed", "Rejected", etc.
215
+ status = 'not_started'
216
+ if mq_status in ['Confirmed', 'ProofRead', 'Reviewed']:
217
+ status = 'confirmed'
218
+ elif mq_status == 'Editing':
219
+ status = 'translated'
220
+ elif target_text.strip():
221
+ # Has target but unknown status - mark as pre-translated
222
+ status = 'pre_translated'
223
+
224
+ segments.append({
225
+ 'id': trans_unit_id,
226
+ 'source': source_text,
227
+ 'target': target_text,
228
+ 'status': status,
229
+ 'mq_status': mq_status
230
+ })
231
+
232
+ return segments
233
+
165
234
  def _extract_plain_text(self, element: ET.Element) -> str:
166
235
  """
167
236
  Recursively extract plain text from an XML element, stripping all tags.
@@ -344,19 +344,22 @@ class TMMetadataManager:
344
344
  """Check if a TM is active for a project (or global when project_id=0)"""
345
345
  if project_id is None:
346
346
  return False # If None (not 0), default to inactive
347
-
347
+
348
348
  try:
349
349
  cursor = self.db_manager.cursor
350
-
350
+
351
+ # Check if TM is active for this project OR globally (project_id=0)
351
352
  cursor.execute("""
352
- SELECT is_active FROM tm_activation
353
- WHERE tm_id = ? AND project_id = ?
353
+ SELECT is_active FROM tm_activation
354
+ WHERE tm_id = ? AND (project_id = ? OR project_id = 0)
355
+ ORDER BY project_id DESC
354
356
  """, (tm_db_id, project_id))
355
-
356
- row = cursor.fetchone()
357
- if row:
358
- return bool(row[0])
359
-
357
+
358
+ # Return True if any activation is active (project-specific takes priority due to ORDER BY)
359
+ for row in cursor.fetchall():
360
+ if bool(row[0]):
361
+ return True
362
+
360
363
  # If no activation record exists, TM is inactive by default
361
364
  return False
362
365
  except Exception as e:
@@ -382,15 +385,16 @@ class TMMetadataManager:
382
385
 
383
386
  try:
384
387
  cursor = self.db_manager.cursor
385
-
388
+
386
389
  # Only return TMs that have been explicitly activated (is_active = 1)
390
+ # Include both project-specific activations AND global activations (project_id=0)
387
391
  cursor.execute("""
388
- SELECT tm.tm_id
392
+ SELECT DISTINCT tm.tm_id
389
393
  FROM translation_memories tm
390
394
  INNER JOIN tm_activation ta ON tm.id = ta.tm_id
391
- WHERE ta.project_id = ? AND ta.is_active = 1
395
+ WHERE (ta.project_id = ? OR ta.project_id = 0) AND ta.is_active = 1
392
396
  """, (project_id,))
393
-
397
+
394
398
  return [row[0] for row in cursor.fetchall()]
395
399
  except Exception as e:
396
400
  self.log(f"✗ Error fetching active tm_ids: {e}")
@@ -422,16 +426,17 @@ class TMMetadataManager:
422
426
 
423
427
  try:
424
428
  cursor = self.db_manager.cursor
425
-
429
+
426
430
  # Return TMs where Write checkbox is enabled (read_only = 0)
427
- # AND the TM has an activation record for this project
431
+ # AND the TM has an activation record for this project OR for global (project_id=0)
432
+ # This ensures TMs created when no project was loaded still work
428
433
  cursor.execute("""
429
- SELECT tm.tm_id
434
+ SELECT DISTINCT tm.tm_id
430
435
  FROM translation_memories tm
431
436
  INNER JOIN tm_activation ta ON tm.id = ta.tm_id
432
- WHERE ta.project_id = ? AND tm.read_only = 0
437
+ WHERE (ta.project_id = ? OR ta.project_id = 0) AND tm.read_only = 0
433
438
  """, (project_id,))
434
-
439
+
435
440
  return [row[0] for row in cursor.fetchall()]
436
441
  except Exception as e:
437
442
  self.log(f"✗ Error fetching writable tm_ids: {e}")
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "supervertaler"
7
- version = "1.9.177-beta"
7
+ version = "1.9.178"
8
8
  description = "Professional AI-enhanced translation workbench with multi-LLM support, glossary system, TM, spellcheck, voice commands, and PyQt6 interface. Batteries included (core)."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: supervertaler
3
- Version: 1.9.177b0
3
+ Version: 1.9.178
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