v1.0.1 Feature Update and Polish
Full Changelog: [New Features] - Added Native Translation Mode: - Whisper model now fully supports Translating any language to English - Added 'task' and 'language' parameters to Transcriber core - Dual Hotkey Support: - Added separate Global Hotkeys for Transcribe (default F8) and Translate (default F10) - Both hotkeys are fully customizable in Settings - Engine dynamically switches modes based on which key is pressed [UI/UX Improvements] - Settings Window: - Widened Hotkey Input fields (240px) to accommodate long combinations - Added Pretty-Printing for hotkey sequences (e.g. 'ctrl+f9' display as 'Ctrl + F9') - Replaced Country Code dropdown with Full Language Names (99+ languages) - Made Language Dropdown scrollable (max height 300px) to prevent screen overflow - Removed redundant 'Task' selector (replaced by dedicated hotkeys) - System Tray: - Tooltip now displays both Transcribe and Translate hotkeys - Tooltip hotkeys are formatted readably [Core & Performance] - Bootstrapper: - Implemented Smart Incremental Sync - Now checks filesize and content hash before copying files - Drastically reduces startup time for subsequent runs - Preserves user settings.json during updates - Backend: - Fixed HotkeyManager to support dynamic configuration keys - Fixed Language Lock: selecting a language now correctly forces the model to use it - Refactored bridge/main connection for language list handling
This commit is contained in:
32
src/utils/formatters.py
Normal file
32
src/utils/formatters.py
Normal file
@@ -0,0 +1,32 @@
|
||||
"""
|
||||
Formatter Utilities
|
||||
===================
|
||||
Helper functions for text formatting.
|
||||
"""
|
||||
|
||||
def format_hotkey(sequence: str) -> str:
|
||||
"""
|
||||
Formats a hotkey sequence string (e.g. 'ctrl+alt+f9')
|
||||
into a pretty readable string (e.g. 'Ctrl + Alt + F9').
|
||||
"""
|
||||
if not sequence:
|
||||
return "None"
|
||||
|
||||
parts = sequence.split('+')
|
||||
formatted_parts = []
|
||||
|
||||
for p in parts:
|
||||
p = p.strip().lower()
|
||||
if p == 'ctrl': formatted_parts.append('Ctrl')
|
||||
elif p == 'alt': formatted_parts.append('Alt')
|
||||
elif p == 'shift': formatted_parts.append('Shift')
|
||||
elif p == 'win': formatted_parts.append('Win')
|
||||
elif p == 'esc': formatted_parts.append('Esc')
|
||||
else:
|
||||
# Capitalize first letter
|
||||
if len(p) > 0:
|
||||
formatted_parts.append(p[0].upper() + p[1:])
|
||||
else:
|
||||
formatted_parts.append(p)
|
||||
|
||||
return " + ".join(formatted_parts)
|
||||
Reference in New Issue
Block a user