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
121 lines
2.5 KiB
Python
121 lines
2.5 KiB
Python
"""
|
|
Supported Languages Module
|
|
==========================
|
|
Full list of languages supported by OpenAI Whisper.
|
|
Maps ISO codes to display names.
|
|
"""
|
|
|
|
LANGUAGES = {
|
|
"auto": "Auto Detect",
|
|
"af": "Afrikaans",
|
|
"sq": "Albanian",
|
|
"am": "Amharic",
|
|
"ar": "Arabic",
|
|
"hy": "Armenian",
|
|
"as": "Assamese",
|
|
"az": "Azerbaijani",
|
|
"ba": "Bashkir",
|
|
"eu": "Basque",
|
|
"be": "Belarusian",
|
|
"bn": "Bengali",
|
|
"bs": "Bosnian",
|
|
"br": "Breton",
|
|
"bg": "Bulgarian",
|
|
"my": "Burmese",
|
|
"ca": "Catalan",
|
|
"zh": "Chinese",
|
|
"hr": "Croatian",
|
|
"cs": "Czech",
|
|
"da": "Danish",
|
|
"nl": "Dutch",
|
|
"en": "English",
|
|
"et": "Estonian",
|
|
"fo": "Faroese",
|
|
"fi": "Finnish",
|
|
"fr": "French",
|
|
"gl": "Galician",
|
|
"ka": "Georgian",
|
|
"de": "German",
|
|
"el": "Greek",
|
|
"gu": "Gujarati",
|
|
"ht": "Haitian",
|
|
"ha": "Hausa",
|
|
"haw": "Hawaiian",
|
|
"he": "Hebrew",
|
|
"hi": "Hindi",
|
|
"hu": "Hungarian",
|
|
"is": "Icelandic",
|
|
"id": "Indonesian",
|
|
"it": "Italian",
|
|
"ja": "Japanese",
|
|
"jw": "Javanese",
|
|
"kn": "Kannada",
|
|
"kk": "Kazakh",
|
|
"km": "Khmer",
|
|
"ko": "Korean",
|
|
"lo": "Lao",
|
|
"la": "Latin",
|
|
"lv": "Latvian",
|
|
"ln": "Lingala",
|
|
"lt": "Lithuanian",
|
|
"lb": "Luxembourgish",
|
|
"mk": "Macedonian",
|
|
"mg": "Malagasy",
|
|
"ms": "Malay",
|
|
"ml": "Malayalam",
|
|
"mt": "Maltese",
|
|
"mi": "Maori",
|
|
"mr": "Marathi",
|
|
"mn": "Mongolian",
|
|
"ne": "Nepali",
|
|
"no": "Norwegian",
|
|
"oc": "Occitan",
|
|
"pa": "Punjabi",
|
|
"ps": "Pashto",
|
|
"fa": "Persian",
|
|
"pl": "Polish",
|
|
"pt": "Portuguese",
|
|
"ro": "Romanian",
|
|
"ru": "Russian",
|
|
"sa": "Sanskrit",
|
|
"sr": "Serbian",
|
|
"sn": "Shona",
|
|
"sd": "Sindhi",
|
|
"si": "Sinhala",
|
|
"sk": "Slovak",
|
|
"sl": "Slovenian",
|
|
"so": "Somali",
|
|
"es": "Spanish",
|
|
"su": "Sundanese",
|
|
"sw": "Swahili",
|
|
"sv": "Swedish",
|
|
"tl": "Tagalog",
|
|
"tg": "Tajik",
|
|
"ta": "Tamil",
|
|
"tt": "Tatar",
|
|
"te": "Telugu",
|
|
"th": "Thai",
|
|
"bo": "Tibetan",
|
|
"tr": "Turkish",
|
|
"tk": "Turkmen",
|
|
"uk": "Ukrainian",
|
|
"ur": "Urdu",
|
|
"uz": "Uzbek",
|
|
"vi": "Vietnamese",
|
|
"cy": "Welsh",
|
|
"yi": "Yiddish",
|
|
"yo": "Yoruba",
|
|
}
|
|
|
|
def get_language_names():
|
|
return list(LANGUAGES.values())
|
|
|
|
def get_code_by_name(name):
|
|
for code, lang in LANGUAGES.items():
|
|
if lang == name:
|
|
return code
|
|
return "auto"
|
|
|
|
def get_name_by_code(code):
|
|
return LANGUAGES.get(code, "Auto Detect")
|