Add localization keys for fallback and status messages in UI

Replaced hardcoded status and fallback messages with localized strings across downloader, update, and main UI modules. Updated language files for all supported languages to include new keys for fallback download status, pip timeout, invalid URL, zero selected, and playlist selection dialog title. This improves internationalization and consistency of user-facing messages.
This commit is contained in:
Your Name
2025-10-06 17:26:16 +03:00
parent 2ccdb532b5
commit d80dff371c
18 changed files with 133 additions and 63 deletions
+2 -2
View File
@@ -568,7 +568,7 @@ class DownloadThread(QThread):
self.status_signal.emit(_("download.downloading"))
except Exception as e:
logger.exception(f"Error extracting filename from line '{line}': {e}")
self.status_signal.emit("⚡ Downloading...") # Fallback status
self.status_signal.emit(_("download.downloading_fallback")) # Fallback status
return # Don't process this line further for speed/ETA
# Check for specific download types in the output
@@ -693,7 +693,7 @@ class DownloadThread(QThread):
self.file_exists_signal.emit(filename)
else:
logger.info(f"Could not extract filename from 'already downloaded' line: {line}")
self.status_signal.emit("⚠️ File already exists") # Fallback status
self.status_signal.emit(_("download.file_exists")) # Fallback status
elif "Finished downloading" in line:
self.progress_signal.emit(100)
@@ -198,7 +198,7 @@ class SubtitleSelectionDialog(QDialog):
class PlaylistSelectionDialog(QDialog):
def __init__(self, playlist_entries, previously_selected_string, parent=None) -> None:
super().__init__(parent)
self.setWindowTitle("Select Playlist Videos")
self.setWindowTitle(_("playlist.select_videos_title"))
self.setMinimumWidth(500)
self.setMinimumHeight(400) # Allow more vertical space
@@ -276,7 +276,7 @@ class UpdateThread(QThread):
return False
except subprocess.TimeoutExpired:
self.update_status.emit("❌ Pip update timed out after 5 minutes")
self.update_status.emit(_("update.pip_timeout"))
return False
except Exception as e:
self.update_status.emit(f"❌ Error during pip update: {e}")
+4 -4
View File
@@ -675,7 +675,7 @@ class YTSageApp(QMainWindow, FormatTableMixin, VideoInfoMixin): # Inherit from
def analyze_url(self) -> None:
url = self.url_input.text().strip()
if not url:
self.signals.update_status.emit("Invalid URL or please enter a URL.")
self.signals.update_status.emit(_("main_ui.invalid_url_or_enter"))
return
self.signals.update_status.emit(_("main_ui.analyzing_preparing"))
@@ -1830,7 +1830,7 @@ class YTSageApp(QMainWindow, FormatTableMixin, VideoInfoMixin): # Inherit from
# Show playlist selection button
# update signal method from QMetaObject.invokeMethod to signals
self.signals.playlist_select_btn_text.emit("Select Videos... (All selected)")
self.signals.playlist_select_btn_text.emit(_("main_ui.select_videos_all"))
# update signal method from QMetaObject.invokeMethod to signals
self.signals.playlist_select_btn_visible.emit(True)
@@ -1883,10 +1883,10 @@ class YTSageApp(QMainWindow, FormatTableMixin, VideoInfoMixin): # Inherit from
# Update subtitle UI
# update signal method from QMetaObject.invokeMethod to signals
self.signals.selected_subs_label_text.emit("0 selected")
self.signals.selected_subs_label_text.emit(_("main_ui.zero_selected"))
# Update format table
self.signals.update_status.emit("Analyzing (95%)... Updating format table")
self.signals.update_status.emit(_("main_ui.analyzing_updating_table"))
self.video_button.setChecked(True)
self.audio_button.setChecked(False)
self.filter_formats()