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.
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/CHANGELOG.md +15 -1
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/PKG-INFO +1 -1
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/Supervertaler.py +64 -24
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/index.html +4 -4
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/mqxliff_handler.py +71 -2
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/tm_metadata_manager.py +23 -18
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/pyproject.toml +1 -1
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/supervertaler.egg-info/PKG-INFO +1 -1
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/FAQ.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/LICENSE +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/MANIFEST.in +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/README.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/ICON_CONVERSION_GUIDE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/MB.ico +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/README.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/generate_icons.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/icon.ico +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/icon_128.png +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/icon_24.png +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/icon_256.png +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/icon_32.png +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/icon_48.png +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/icon_64.png +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/icon_preview.html +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/icon_sv_modern.svg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/icon_sv_modern_paths.svg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/icon_sv_simple.svg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/patent-drawing-1951.jpg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/assets/supervertaler_icon_colours.png +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/.nojekyll +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/CNAME +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/SIMILAR_APPS.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/apple-touch-icon.png +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/BUGFIX_README.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/CHANGELIST.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/CHANGELOG_Old.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/FAQ.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/INSTALLATION_v1.7.8.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/PROJECT_ORGANIZATION.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/TERMBASE_REFACTORING_SUMMARY.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/USER_GUIDE_v1.7.8.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/VERIFICATION_CHECKLIST.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/BEFORE_AFTER_COMPARISON.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/BUGFIX_SESSION_SUMMARY.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/COLOR_SCHEME_REFERENCE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/COMPACT_LAYOUT_CHANGELOG.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/COMPACT_LAYOUT_DOCUMENTATION_INDEX.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/COMPACT_LAYOUT_IMPLEMENTATION_SUMMARY.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/COMPACT_LAYOUT_UPDATE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/COMPLETE_IMPLEMENTATION_SUMMARY.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/COMPLETE_PROJECT_SUMMARY.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/DATABASE_FINAL_SUMMARY.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/DATABASE_IMPLEMENTATION.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/DATABASE_PRODUCTION_READY.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/DATABASE_QUICK_REFERENCE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/DUAL_VERSION_STRATEGY.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/FINAL_SESSION_SUMMARY.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/FOLDER_STRUCTURE_UPDATE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/GITHUB_PAGES_SETUP.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/IMPLEMENTATION_CHECKLIST.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/IMPLEMENTATION_COMPLETE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/IMPLEMENTATION_COMPLETE_COMPACT_LAYOUT.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/IMPLEMENTATION_READY.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/IMPLEMENTATION_STATUS_PHASE2_READY.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/KEYBOARD_SHORTCUTS_MATCHES.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/LAYOUT_BEFORE_AFTER.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/MASTER_INDEX.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/MATCH_DISPLAY_IMPROVEMENTS.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/MATCH_DISPLAY_LONG_SEGMENTS_UPDATE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/MATCH_DISPLAY_QUICK_REFERENCE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/MATCH_INSERTION_FEATURES.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/MATCH_SHORTCUTS_QUICK_REF.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/MODULAR_ARCHITECTURE_GUIDE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/PHASE2_IMPLEMENTATION_CHECKLIST.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/PHASE2_IMPLEMENTATION_DETAILED_CHECKLIST.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/PHASE2_IMPLEMENTATION_IN_PROGRESS.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/PHASE2_NEXT_STEPS.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/PHASE2_READY_TO_IMPLEMENT.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/PHASE2_START_HERE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/QT_MIGRATION_PLAN.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/QT_SESSION_SUMMARY.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/QUICK_SESSION_SUMMARY.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/RELEASE_Qt_v1.0.0_Phase5.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/RELEASE_v1.9.38.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/RELEASE_v3.7.1.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/RELEASE_v3.7.6.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/RELEASE_v3.7.7.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/RESTRUCTURE_COMPLETE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/SESSION_DOCUMENTATION_INDEX.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/SESSION_IMPLEMENTATION_SUMMARY.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/SESSION_LONG_SEGMENTS_COMPLETE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/SESSION_MATCH_FEATURES_COMPLETE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/SESSION_STATUS.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/SESSION_SUMMARY_Phase5.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/START_HERE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/START_IMPLEMENTATION_HERE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/STYLE_GUIDES_DELIVERABLES.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/STYLE_GUIDES_DOCUMENTATION_INDEX.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/STYLE_GUIDES_FEATURE_SUMMARY.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/STYLE_GUIDES_IMPLEMENTATION.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/STYLE_GUIDES_PROJECT_COMPLETION.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/STYLE_GUIDES_QUICK_REFERENCE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/STYLE_GUIDES_VISUAL_ARCHITECTURE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TERMBASE_FIXES.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TERMBASE_IMPLEMENTATION.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TERMBASE_QUICK_START.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TMX_CONCORDANCE_STYLE_HIGHLIGHTING.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TMX_DUAL_HIGHLIGHTING.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TMX_EDITOR_HIGHLIGHTING_UPDATE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TMX_EDITOR_IMPLEMENTATION.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TMX_EDITOR_WORD_HIGHLIGHTING.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TMX_TABLE_LAYOUT_INTEGRATED_EDIT.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TMX_TREEVIEW_GRID_RESIZABLE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TMX_WORD_HIGHLIGHTING_IMPLEMENTATION_COMPLETE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TMX_WORD_HIGHLIGHTING_SUMMARY.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TM_MATCH_PANE_CHECKLIST.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TM_MATCH_PANE_IMPLEMENTATION.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/TM_MATCH_PANE_VISUAL_GUIDE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/VISUAL_COLOR_REFERENCE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/VISUAL_IMPLEMENTATION_SUMMARY.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/COLOR_FIX_EXPLANATION.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/DATABASE_CONSOLIDATION_REPORT.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/DUAL_EDITOR_WORKFLOW.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/DUAL_SELECTION_SYSTEM.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/IMPROVEMENTS_SUMMARY.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/ISSUES_FIXES_PROGRESS.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/MATCH_DISPLAY_COMPACT_FIXES.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/README_SESSION_TERMBASE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/SAFE_DELETION_REMINDER.txt +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/SESSION_SUMMARY.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/TERMBASE_FIXES_APPLIED.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/TESTING_CHECKLIST.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/TMX_EDITOR_ANNOUNCEMENT.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/sessions/TRANSLATION_RESULTS_IMPROVEMENTS.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/assets/Figure1.png +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/assets/patent-drawing-1951.jpg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/changelog.html +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/dev-notes/QA.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/dev-notes/STYLE_GUIDES_UI_TEMPLATE.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/dev-notes/_Notes_2025-11-21.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/dev-notes/_things_to_remind_AIs_of_when_translating.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/dev-notes/issue_28.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/dev-notes/openai_debug.txt +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/dev-notes/pre-translation-dialog-enhancement.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/emoji_mockup.html +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/favicon.ico +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/guides/AI_PROMPT_ASSISTANT_USER_GUIDE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/guides/ENCODING_REPAIR_TOOL.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/guides/FAQ.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/guides/GLOSSARY_OF_SUPERVERTALER_TERMINOLOGY.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/guides/JSON_EDITORS_AND_HUMAN_READABLE_FORMAT.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/guides/KEYBOARD_SHORTCUTS.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/guides/PDF_RESCUE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/guides/PROMPT_ASSISTANT_USER_GUIDE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/guides/QT_SETTINGS_DIALOG_GUIDE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/guides/TERM_EXTRACTION_GUIDE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/guides/USER_DATA_FOLDER_SETUP.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/idea_beijer.bot_integration_idea/BEIJERBOT_FEATURE_ANALYSIS.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/idea_beijer.bot_integration_idea/CLI_BRIDGE_SPECIFICATION.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/idea_beijer.bot_integration_idea/IMPLEMENTATION_ROADMAP.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/idea_beijer.bot_integration_idea/QUICKMENU_INTEGRATION_PLAN.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/idea_beijer.bot_integration_idea/README.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/idea_tag-cleaner/tag_cleaner.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/idea_use_vscode_as_cat_tool/ai-agent-translation-workflow.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/logo.png +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/2025-10-13_00-46-16.jpg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Superlookup_Web_resources.jpg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Supervertaler_AI-Assistant.jpg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Supervertaler_CLASSIC_v2.4.1_(tkinter).jpg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Supervertaler_Prompt_Manager_2026-01-14.png +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Supervertaler_Qt_LLM_LeaderboardResults_2025-11-12.jpg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Supervertaler_Qt_LLM_Leaderboard_2025-11-12.jpg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Supervertaler_Superbrowser.jpg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Supervertaler_dark_mode_2025-12-16.jpg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Supervertaler_dark_mode_2025-12-17.jpg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Supervertaler_grid.jpg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Supervertaler_tkinter (v3.7.7).jpg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Supervertaler_v1.9.102_compare_panel_2026-01-14.png +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/Supervertaler_v1.9.102_grid_2026-01-14.png +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/new/Supervertaler-grid.jpg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/new/Supervertaler_AI-Assistant.jpg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/new/Supervertaler_Prompt-Library.jpg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/new/Supervertaler_Qt_LLM_LeaderboardResults_2025-11-12.jpg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/new/Supervertaler_Qt_LLM_Leaderboard_2025-11-12.jpg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/new/Supervertaler_Superbrowser.jpg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/old/2025-10-13_00-50-24.jpg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/screenshots/old/Supervertaler_Qt_2025-11-12.jpg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/script.js +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/site.webmanifest +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/specifications/AI_ASSISTANT_PHASE2_IMPLEMENTATION.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/specifications/AI_PROMPT_ASSISTANT.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/specifications/AI_PROMPT_ASSISTANT_IMPLEMENTATION.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/specifications/EXPORT_MENU_UPDATE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/specifications/IMPLEMENTATION_SUMMARY.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/specifications/QT_PHASE2_COMPLETE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/specifications/QT_PHASE3_COMPLETE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/specifications/SUPERVERTALER_DATA_FORMAT.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/specifications/TASK_TYPE_SYSTEM.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/specifications/TERMINOLOGY_UPDATE_SUMMARY.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/specifications/opus-api-integration.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/styles.css +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/.gitbook/assets/supervertaler-logo.png +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/.gitbook/assets/sv-icon.svg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/GITBOOK_LANDING_DRAFT.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/README.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/SUMMARY.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/ai-translation/batch-translation.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/ai-translation/ollama.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/ai-translation/overview.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/ai-translation/prompt-library.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/ai-translation/prompts.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/ai-translation/providers.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/ai-translation/single-segment.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/cat-tools/cafetran.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/cat-tools/memoq.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/cat-tools/overview.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/cat-tools/phrase.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/cat-tools/trados.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/editor/editing-confirming.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/editor/filtering.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/editor/find-replace.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/editor/keyboard-shortcuts.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/editor/navigation.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/editor/pagination.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/editor/translation-grid.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/get-started/api-keys.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/get-started/first-project.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/get-started/installation.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/get-started/quick-start.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/glossaries/basics.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/glossaries/creating.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/glossaries/extraction.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/glossaries/highlighting.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/glossaries/importing.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/import-export/bilingual-tables.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/import-export/docx-import.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/import-export/exporting.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/import-export/formats.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/import-export/multi-file.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/import-export/txt-import.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/qa/non-translatables.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/qa/spellcheck.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/qa/tag-validation.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/reference/changelog.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/reference/contributing.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/reference/faq.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/reference/file-formats.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/settings/fonts.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/settings/general.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/settings/shortcuts.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/settings/theme.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/settings/view.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/superlookup/glossary-search.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/superlookup/mt.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/superlookup/overview.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/superlookup/tm-search.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/superlookup/web-resources.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/tools/autofingers.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/tools/image-extractor.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/tools/pdf-rescue.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/tools/tmx-editor.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/tools/voice-commands.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/translation-memory/basics.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/translation-memory/fuzzy-matching.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/translation-memory/importing-tmx.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/translation-memory/managing-tms.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/translation-memory/supermemory.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/troubleshooting/api-issues.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/troubleshooting/common-issues.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/troubleshooting/import-export-errors.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/troubleshooting/linux.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/superdocs/troubleshooting/performance.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/sv-icon.svg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/technical/AI_ASSISTANT_GUIDE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/technical/AI_ASSISTANT_IMPLEMENTATION.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/technical/AI_ASSISTANT_INTEGRATION.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/technical/AI_ASSISTANT_QUICK_REFERENCE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/technical/DATABASE_LOCATIONS.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/technical/FILTER_HIGHLIGHTING_FIX.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/technical/MODULE_HEADER_PATTERN.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/technical/README.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/technical/SUPERBROWSER_GUIDE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/technical/SUPERVOICE_TROUBLESHOOTING.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/technical/UNIFIED_PROMPT_LIBRARY_GUIDE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/technical/VOICE_DICTATION_GUIDE.md +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/tests/test_encoding_corruption.txt +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/web-app-manifest-192x192.png +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/web-app-manifest-512x512.png +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/__init__.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/ai_actions.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/ai_attachment_manager.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/ai_file_viewer_dialog.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/autofingers_engine.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/cafetran_docx_handler.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/config_manager.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/database_manager.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/database_migrations.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/dejavurtf_handler.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/document_analyzer.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/docx_handler.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/encoding_repair.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/encoding_repair_Qt.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/encoding_repair_ui.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/feature_manager.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/figure_context_manager.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/file_dialog_helper.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/find_replace.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/find_replace_qt.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/glossary_manager.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/image_extractor.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/keyboard_shortcuts_widget.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/llm_clients.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/llm_leaderboard.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/llm_superbench_ui.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/local_llm_setup.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/model_update_dialog.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/model_version_checker.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/non_translatables_manager.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/pdf_rescue_Qt.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/pdf_rescue_tkinter.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/phrase_docx_handler.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/project_home_panel.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/prompt_assistant.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/prompt_library.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/prompt_library_migration.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/quick_access_sidebar.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/ribbon_widget.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/sdlppx_handler.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/setup_wizard.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/shortcut_manager.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/simple_segmenter.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/spellcheck_manager.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/statuses.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/style_guide_manager.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/superbench_ui.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/superbrowser.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/supercleaner.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/supercleaner_ui.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/superdocs.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/superdocs_viewer_qt.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/superlookup.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/tag_cleaner.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/tag_manager.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/term_extractor.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/termbase_entry_editor.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/termbase_import_export.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/termbase_manager.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/termview_widget.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/theme_manager.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/tm_editor_dialog.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/tm_manager_qt.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/tmx_editor.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/tmx_editor_qt.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/tmx_generator.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/tracked_changes.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/trados_docx_handler.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/translation_memory.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/translation_results_panel.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/translation_services.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/unified_prompt_library.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/unified_prompt_manager_qt.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/voice_commands.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/voice_dictation.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/modules/voice_dictation_lite.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/setup.cfg +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/setup.py +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/supervertaler.egg-info/SOURCES.txt +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/supervertaler.egg-info/dependency_links.txt +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/supervertaler.egg-info/entry_points.txt +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/supervertaler.egg-info/not-zip-safe +0 -0
- {supervertaler-1.9.177b0 → supervertaler-1.9.178}/supervertaler.egg-info/requires.txt +0 -0
- {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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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.
|
|
26713
|
-
target=
|
|
26714
|
-
status=
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
357
|
-
|
|
358
|
-
|
|
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.
|
|
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.
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/TERMBASE_REFACTORING_SUMMARY.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/BUGFIX_SESSION_SUMMARY.md
RENAMED
|
File without changes
|
{supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/COLOR_SCHEME_REFERENCE.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/COMPACT_LAYOUT_UPDATE.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/DATABASE_FINAL_SUMMARY.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/DUAL_VERSION_STRATEGY.md
RENAMED
|
File without changes
|
{supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/FINAL_SESSION_SUMMARY.md
RENAMED
|
File without changes
|
|
File without changes
|
{supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/GITHUB_PAGES_SETUP.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/IMPLEMENTATION_READY.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/LAYOUT_BEFORE_AFTER.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/PHASE2_NEXT_STEPS.md
RENAMED
|
File without changes
|
|
File without changes
|
{supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/PHASE2_START_HERE.md
RENAMED
|
File without changes
|
{supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/QT_MIGRATION_PLAN.md
RENAMED
|
File without changes
|
{supervertaler-1.9.177b0 → supervertaler-1.9.178}/docs/archive/development/QT_SESSION_SUMMARY.md
RENAMED
|
File without changes
|