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
+9 -4
View File
@@ -176,7 +176,8 @@
"please_enter_url": "الرجاء إدخال رابط أولاً.",
"please_set_path": "الرجاء تحديد مسار التنزيل أولاً.",
"please_enter_url_and_path": "الرجاء إدخال رابط وتحديد مسار التنزيل.",
"please_select_format": "الرجاء اختيار تنسيق أولاً."
"please_select_format": "الرجاء اختيار تنسيق أولاً.",
"downloading_fallback": "⚡ جاري التنزيل..."
},
"update": {
"title": "تحديث yt-dlp",
@@ -208,7 +209,8 @@
"running_pip_install": "📦 جاري تشغيل pip install --upgrade...",
"pip_completed": "✅ اكتمل تحديث pip بنجاح!",
"pip_failed": "❌ فشل تحديث pip: {error}",
"already_up_to_date": "✅ yt-dlp محدث بالفعل!"
"already_up_to_date": "✅ yt-dlp محدث بالفعل!",
"pip_timeout": "❌ انتهت مهلة تحديث pip بعد 5 دقائق"
},
"about": {
"title": "حول YTSage",
@@ -307,7 +309,9 @@
"analyzing_loading_thumbnail_ytdlp": "التحليل (85%)... جاري تحميل الصورة المصغرة",
"analyzing_processing_subtitles_ytdlp": "التحليل (90%)... جاري معالجة الترجمات",
"select_subtitles": "اختر الترجمات...",
"sponsorblock_categories": "فئات SponsorBlock..."
"sponsorblock_categories": "فئات SponsorBlock...",
"invalid_url_or_enter": "عنوان URL غير صالح أو الرجاء إدخال عنوان URL.",
"zero_selected": "تم اختيار 0"
},
"sponsorblock": {
"sponsor": "الراعي",
@@ -374,7 +378,8 @@
"playlist": {
"unknown": "قائمة تشغيل غير معروفة",
"total_videos": "إجمالي الفيديوهات: {count}",
"display_format": "قائمة التشغيل: {title} | {count} فيديوهات"
"display_format": "قائمة التشغيل: {title} | {count} فيديوهات",
"select_videos_title": "اختر مقاطع الفيديو من قائمة التشغيل"
},
"subtitle_selection": {
"count_selected": "{count} محدد"
+9 -4
View File
@@ -176,7 +176,8 @@
"please_enter_url": "Bitte geben Sie zuerst eine URL ein.",
"please_set_path": "Bitte setzen Sie zuerst einen Download-Pfad.",
"please_enter_url_and_path": "Bitte geben Sie eine URL ein und setzen Sie einen Download-Pfad.",
"please_select_format": "Bitte wählen Sie zuerst ein Format aus."
"please_select_format": "Bitte wählen Sie zuerst ein Format aus.",
"downloading_fallback": "⚡ Wird heruntergeladen..."
},
"update": {
"title": "yt-dlp aktualisieren",
@@ -208,7 +209,8 @@
"running_pip_install": "📦 pip install --upgrade wird ausgeführt...",
"pip_completed": "✅ Pip-Update erfolgreich abgeschlossen!",
"pip_failed": "❌ Pip-Update fehlgeschlagen: {error}",
"already_up_to_date": "✅ yt-dlp ist bereits auf dem neuesten Stand!"
"already_up_to_date": "✅ yt-dlp ist bereits auf dem neuesten Stand!",
"pip_timeout": "❌ Pip-Update nach 5 Minuten abgelaufen"
},
"about": {
"title": "Über YTSage",
@@ -307,7 +309,9 @@
"analyzing_loading_thumbnail_ytdlp": "Analysiere (85%)... Thumbnail wird geladen",
"analyzing_processing_subtitles_ytdlp": "Analysiere (90%)... Untertitel werden verarbeitet",
"select_subtitles": "Untertitel auswählen...",
"sponsorblock_categories": "SponsorBlock-Kategorien..."
"sponsorblock_categories": "SponsorBlock-Kategorien...",
"invalid_url_or_enter": "Ungültige URL oder bitte geben Sie eine URL ein.",
"zero_selected": "0 ausgewählt"
},
"sponsorblock": {
"sponsor": "Sponsor",
@@ -374,7 +378,8 @@
"playlist": {
"unknown": "Unbekannte Playlist",
"total_videos": "Gesamtanzahl Videos: {count}",
"display_format": "Playlist: {title} | {count} Videos"
"display_format": "Playlist: {title} | {count} Videos",
"select_videos_title": "Playlist-Videos auswählen"
},
"subtitle_selection": {
"count_selected": "{count} ausgewählt"
+9 -4
View File
@@ -176,7 +176,8 @@
"please_enter_url": "Please enter a URL first.",
"please_set_path": "Please set a download path first.",
"please_enter_url_and_path": "Please enter a URL and set download path.",
"please_select_format": "Please select a format first."
"please_select_format": "Please select a format first.",
"downloading_fallback": "⚡ Downloading..."
},
"update": {
"title": "Update yt-dlp",
@@ -208,7 +209,8 @@
"updating_from_to": "⬆️ Updating from {current} to {latest}...",
"running_pip_install": "📦 Running pip install --upgrade...",
"pip_completed": "✅ Pip update completed successfully!",
"pip_failed": "❌ Pip update failed: {error}"
"pip_failed": "❌ Pip update failed: {error}",
"pip_timeout": "❌ Pip update timed out after 5 minutes"
},
"about": {
"title": "About YTSage",
@@ -307,7 +309,9 @@
"analyzing_loading_thumbnail_ytdlp": "Analyzing (85%)... Loading thumbnail",
"analyzing_processing_subtitles_ytdlp": "Analyzing (90%)... Processing subtitles",
"select_subtitles": "Select Subtitles...",
"sponsorblock_categories": "SponsorBlock Categories..."
"sponsorblock_categories": "SponsorBlock Categories...",
"invalid_url_or_enter": "Invalid URL or please enter a URL.",
"zero_selected": "0 selected"
},
"sponsorblock": {
"sponsor": "Sponsor",
@@ -374,7 +378,8 @@
"playlist": {
"unknown": "Unknown Playlist",
"total_videos": "Total Videos: {count}",
"display_format": "Playlist: {title} | {count} videos"
"display_format": "Playlist: {title} | {count} videos",
"select_videos_title": "Select Playlist Videos"
},
"subtitle_selection": {
"count_selected": "{count} selected"
+9 -4
View File
@@ -137,7 +137,8 @@
"please_enter_url": "Por favor ingresa una URL primero.",
"please_set_path": "Por favor establece una ruta de descarga primero.",
"please_enter_url_and_path": "Por favor ingresa URL y establece ruta de descarga.",
"please_select_format": "Por favor selecciona un formato primero."
"please_select_format": "Por favor selecciona un formato primero.",
"downloading_fallback": "⚡ Descargando..."
},
"formats": {
"show_formats": "Mostrar formatos:",
@@ -221,7 +222,8 @@
"updating_from_to": "⬆️ Actualizando de {current} a {latest}...",
"running_pip_install": "📦 Ejecutando pip install --upgrade...",
"pip_completed": "✅ ¡Actualización de pip completada exitosamente!",
"pip_failed": "❌ Actualización de pip falló: {error}"
"pip_failed": "❌ Actualización de pip falló: {error}",
"pip_timeout": "❌ Tiempo de espera agotado para actualización de pip después de 5 minutos"
},
"settings": {
"title": "Configuración de Descarga",
@@ -290,7 +292,9 @@
"analyzing_loading_thumbnail_ytdlp": "Analizando (85%)... Cargando miniatura",
"analyzing_processing_subtitles_ytdlp": "Analizando (90%)... Procesando subtítulos",
"select_subtitles": "Seleccionar Subtítulos...",
"sponsorblock_categories": "Categorías SponsorBlock..."
"sponsorblock_categories": "Categorías SponsorBlock...",
"invalid_url_or_enter": "URL inválida o por favor ingresa una URL.",
"zero_selected": "0 seleccionados"
},
"sponsorblock": {
"sponsor": "Patrocinador",
@@ -357,7 +361,8 @@
"playlist": {
"unknown": "Lista de reproducción desconocida",
"total_videos": "Total de Videos: {count}",
"display_format": "Lista de reproducción: {title} | {count} videos"
"display_format": "Lista de reproducción: {title} | {count} videos",
"select_videos_title": "Seleccionar Videos de la Lista de Reproducción"
},
"subtitle_selection": {
"count_selected": "{count} seleccionados"
+9 -4
View File
@@ -176,7 +176,8 @@
"please_enter_url": "Veuillez d'abord entrer une URL.",
"please_set_path": "Veuillez d'abord définir un chemin de téléchargement.",
"please_enter_url_and_path": "Veuillez entrer une URL et définir un chemin de téléchargement.",
"please_select_format": "Veuillez d'abord sélectionner un format."
"please_select_format": "Veuillez d'abord sélectionner un format.",
"downloading_fallback": "⚡ Téléchargement..."
},
"update": {
"title": "Mettre à jour yt-dlp",
@@ -208,7 +209,8 @@
"running_pip_install": "📦 Exécution de pip install --upgrade...",
"pip_completed": "✅ Mise à jour pip terminée avec succès !",
"pip_failed": "❌ Échec de la mise à jour pip : {error}",
"already_up_to_date": "✅ yt-dlp est déjà à jour !"
"already_up_to_date": "✅ yt-dlp est déjà à jour !",
"pip_timeout": "❌ Délai d'attente de mise à jour pip dépassé après 5 minutes"
},
"about": {
"title": "À propos de YTSage",
@@ -307,7 +309,9 @@
"analyzing_loading_thumbnail_ytdlp": "Analyse (85%)... Chargement de la miniature",
"analyzing_processing_subtitles_ytdlp": "Analyse (90%)... Traitement des sous-titres",
"select_subtitles": "Sélectionner les sous-titres...",
"sponsorblock_categories": "Catégories SponsorBlock..."
"sponsorblock_categories": "Catégories SponsorBlock...",
"invalid_url_or_enter": "URL invalide ou veuillez entrer une URL.",
"zero_selected": "0 sélectionné"
},
"sponsorblock": {
"sponsor": "Sponsor",
@@ -374,7 +378,8 @@
"playlist": {
"unknown": "Playlist inconnue",
"total_videos": "Total des vidéos : {count}",
"display_format": "Playlist : {title} | {count} vidéos"
"display_format": "Playlist : {title} | {count} vidéos",
"select_videos_title": "Sélectionner les Vidéos de la Playlist"
},
"subtitle_selection": {
"count_selected": "{count} sélectionné(s)"
+9 -4
View File
@@ -176,7 +176,8 @@
"please_enter_url": "कृपया पहले URL दर्ज करें।",
"please_set_path": "कृपया पहले डाउनलोड पथ सेट करें।",
"please_enter_url_and_path": "कृपया URL दर्ज करें और डाउनलोड पथ सेट करें।",
"please_select_format": "कृपया पहले प्रारूप चुनें।"
"please_select_format": "कृपया पहले प्रारूप चुनें।",
"downloading_fallback": "⚡ डाउनलोड हो रहा है..."
},
"update": {
"title": "yt-dlp अपडेट करें",
@@ -208,7 +209,8 @@
"running_pip_install": "📦 pip install --upgrade चल रहा है...",
"pip_completed": "✅ Pip अपडेट सफलतापूर्वक पूर्ण!",
"pip_failed": "❌ Pip अपडेट असफल: {error}",
"already_up_to_date": "✅ yt-dlp पहले से अप टू डेट है!"
"already_up_to_date": "✅ yt-dlp पहले से अप टू डेट है!",
"pip_timeout": "❌ pip अपडेट 5 मिनट के बाद समय समाप्त हो गया"
},
"about": {
"title": "YTSage के बारे में",
@@ -307,7 +309,9 @@
"analyzing_loading_thumbnail_ytdlp": "विश्लेषण (85%)... थंबनेल लोड हो रहा है",
"analyzing_processing_subtitles_ytdlp": "विश्लेषण (90%)... उपशीर्षक प्रोसेस हो रहे हैं",
"select_subtitles": "उपशीर्षक चुनें...",
"sponsorblock_categories": "SponsorBlock श्रेणियां..."
"sponsorblock_categories": "SponsorBlock श्रेणियां...",
"invalid_url_or_enter": "अमान्य URL या कृपया URL दर्ज करें।",
"zero_selected": "0 चयनित"
},
"sponsorblock": {
"sponsor": "प्रायोजक",
@@ -374,7 +378,8 @@
"playlist": {
"unknown": "अज्ञात प्लेलिस्ट",
"total_videos": "कुल वीडियो: {count}",
"display_format": "प्लेलिस्ट: {title} | {count} वीडियो"
"display_format": "प्लेलिस्ट: {title} | {count} वीडियो",
"select_videos_title": "प्लेलिस्ट वीडियो चुनें"
},
"subtitle_selection": {
"count_selected": "{count} चुना गया"
+9 -4
View File
@@ -176,7 +176,8 @@
"please_enter_url": "Silakan masukkan URL terlebih dahulu.",
"please_set_path": "Silakan atur jalur unduhan terlebih dahulu.",
"please_enter_url_and_path": "Silakan masukkan URL dan atur jalur unduhan.",
"please_select_format": "Silakan pilih format terlebih dahulu."
"please_select_format": "Silakan pilih format terlebih dahulu.",
"downloading_fallback": "⚡ Mengunduh..."
},
"update": {
"title": "Perbarui yt-dlp",
@@ -208,7 +209,8 @@
"running_pip_install": "📦 Menjalankan pip install --upgrade...",
"pip_completed": "✅ Pembaruan pip berhasil diselesaikan!",
"pip_failed": "❌ Pembaruan pip gagal: {error}",
"already_up_to_date": "✅ yt-dlp sudah terbaru!"
"already_up_to_date": "✅ yt-dlp sudah terbaru!",
"pip_timeout": "❌ Waktu habis untuk pembaruan pip setelah 5 menit"
},
"about": {
"title": "Tentang YTSage",
@@ -307,7 +309,9 @@
"analyzing_loading_thumbnail_ytdlp": "Menganalisis (85%)... Memuat thumbnail",
"analyzing_processing_subtitles_ytdlp": "Menganalisis (90%)... Memproses subtitle",
"select_subtitles": "Pilih subtitle...",
"sponsorblock_categories": "Kategori SponsorBlock..."
"sponsorblock_categories": "Kategori SponsorBlock...",
"invalid_url_or_enter": "URL tidak valid atau silakan masukkan URL.",
"zero_selected": "0 dipilih"
},
"sponsorblock": {
"sponsor": "Sponsor",
@@ -374,7 +378,8 @@
"playlist": {
"unknown": "Playlist Tidak Dikenal",
"total_videos": "Total Video: {count}",
"display_format": "Playlist: {title} | {count} video"
"display_format": "Playlist: {title} | {count} video",
"select_videos_title": "Pilih Video Playlist"
},
"subtitle_selection": {
"count_selected": "{count} dipilih"
+9 -4
View File
@@ -176,7 +176,8 @@
"please_enter_url": "Inserisci prima un URL.",
"please_set_path": "Imposta prima un percorso di download.",
"please_enter_url_and_path": "Inserisci un URL e imposta un percorso di download.",
"please_select_format": "Seleziona prima un formato."
"please_select_format": "Seleziona prima un formato.",
"downloading_fallback": "⚡ Download in corso..."
},
"update": {
"title": "Aggiorna yt-dlp",
@@ -208,7 +209,8 @@
"running_pip_install": "📦 Esecuzione pip install --upgrade...",
"pip_completed": "✅ Aggiornamento pip completato con successo!",
"pip_failed": "❌ Aggiornamento pip fallito: {error}",
"already_up_to_date": "✅ yt-dlp è già aggiornato!"
"already_up_to_date": "✅ yt-dlp è già aggiornato!",
"pip_timeout": "❌ Timeout aggiornamento pip dopo 5 minuti"
},
"about": {
"title": "Informazioni su YTSage",
@@ -307,7 +309,9 @@
"analyzing_loading_thumbnail_ytdlp": "Analisi (85%)... Caricamento miniatura",
"analyzing_processing_subtitles_ytdlp": "Analisi (90%)... Elaborazione sottotitoli",
"select_subtitles": "Seleziona sottotitoli...",
"sponsorblock_categories": "Categorie SponsorBlock..."
"sponsorblock_categories": "Categorie SponsorBlock...",
"invalid_url_or_enter": "URL non valido o inserisci un URL.",
"zero_selected": "0 selezionati"
},
"sponsorblock": {
"sponsor": "Sponsor",
@@ -374,7 +378,8 @@
"playlist": {
"unknown": "Playlist sconosciuta",
"total_videos": "Video totali: {count}",
"display_format": "Playlist: {title} | {count} video"
"display_format": "Playlist: {title} | {count} video",
"select_videos_title": "Seleziona Video Playlist"
},
"subtitle_selection": {
"count_selected": "{count} selezionati"
+9 -4
View File
@@ -176,7 +176,8 @@
"please_enter_url": "最初にURLを入力してください。",
"please_set_path": "最初にダウンロードパスを設定してください。",
"please_enter_url_and_path": "URLを入力し、ダウンロードパスを設定してください。",
"please_select_format": "最初にフォーマットを選択してください。"
"please_select_format": "最初にフォーマットを選択してください。",
"downloading_fallback": "⚡ ダウンロード中..."
},
"update": {
"title": "yt-dlpを更新",
@@ -208,7 +209,8 @@
"running_pip_install": "📦 pip install --upgradeを実行中...",
"pip_completed": "✅ pipの更新が正常に完了しました!",
"pip_failed": "❌ pipの更新に失敗しました: {error}",
"already_up_to_date": "✅ yt-dlpはすでに最新です!"
"already_up_to_date": "✅ yt-dlpはすでに最新です!",
"pip_timeout": "❌ pip更新が5分後にタイムアウトしました"
},
"about": {
"title": "YTSageについて",
@@ -307,7 +309,9 @@
"analyzing_loading_thumbnail_ytdlp": "解析中 (85%)... サムネイルを読み込み中",
"analyzing_processing_subtitles_ytdlp": "解析中 (90%)... 字幕を処理中",
"select_subtitles": "字幕を選択...",
"sponsorblock_categories": "SponsorBlockカテゴリ..."
"sponsorblock_categories": "SponsorBlockカテゴリ...",
"invalid_url_or_enter": "無効なURLまたはURLを入力してください。",
"zero_selected": "0個選択"
},
"sponsorblock": {
"sponsor": "スポンサー",
@@ -374,7 +378,8 @@
"playlist": {
"unknown": "不明な再生リスト",
"total_videos": "総動画数: {count}",
"display_format": "再生リスト: {title} | {count}個の動画"
"display_format": "再生リスト: {title} | {count}個の動画",
"select_videos_title": "プレイリスト動画を選択"
},
"subtitle_selection": {
"count_selected": "{count}個選択"
+9 -4
View File
@@ -176,7 +176,8 @@
"please_enter_url": "Proszę najpierw wprowadzić URL.",
"please_set_path": "Proszę najpierw ustawić ścieżkę pobierania.",
"please_enter_url_and_path": "Proszę wprowadzić URL i ustawić ścieżkę pobierania.",
"please_select_format": "Proszę najpierw wybrać format."
"please_select_format": "Proszę najpierw wybrać format.",
"downloading_fallback": "⚡ Pobieranie..."
},
"update": {
"title": "Zaktualizuj yt-dlp",
@@ -208,7 +209,8 @@
"running_pip_install": "📦 Uruchamianie pip install --upgrade...",
"pip_completed": "✅ Aktualizacja pip zakończona pomyślnie!",
"pip_failed": "❌ Aktualizacja pip nie powiodła się: {error}",
"already_up_to_date": "✅ yt-dlp jest już aktualny!"
"already_up_to_date": "✅ yt-dlp jest już aktualny!",
"pip_timeout": "❌ Przekroczono limit czasu aktualizacji pip po 5 minutach"
},
"about": {
"title": "O YTSage",
@@ -307,7 +309,9 @@
"analyzing_loading_thumbnail_ytdlp": "Analizowanie (85%)... Ładowanie miniatury",
"analyzing_processing_subtitles_ytdlp": "Analizowanie (90%)... Przetwarzanie napisów",
"select_subtitles": "Wybierz napisy...",
"sponsorblock_categories": "Kategorie SponsorBlock..."
"sponsorblock_categories": "Kategorie SponsorBlock...",
"invalid_url_or_enter": "Nieprawidłowy URL lub wprowadź URL.",
"zero_selected": "0 wybranych"
},
"sponsorblock": {
"sponsor": "Sponsor",
@@ -374,7 +378,8 @@
"playlist": {
"unknown": "Nieznana playlista",
"total_videos": "Wszystkich wideo: {count}",
"display_format": "Playlista: {title} | {count} wideo"
"display_format": "Playlista: {title} | {count} wideo",
"select_videos_title": "Wybierz Filmy z Playlisty"
},
"subtitle_selection": {
"count_selected": "{count} wybrano"
+9 -4
View File
@@ -176,7 +176,8 @@
"please_enter_url": "Por favor, digite uma URL primeiro.",
"please_set_path": "Por favor, defina um caminho de download primeiro.",
"please_enter_url_and_path": "Por favor, digite uma URL e defina o caminho de download.",
"please_select_format": "Por favor, selecione um formato primeiro."
"please_select_format": "Por favor, selecione um formato primeiro.",
"downloading_fallback": "⚡ Baixando..."
},
"update": {
"title": "Atualizar yt-dlp",
@@ -208,7 +209,8 @@
"running_pip_install": "📦 Executando pip install --upgrade...",
"pip_completed": "✅ Atualização pip concluída com sucesso!",
"pip_failed": "❌ Atualização pip falhou: {error}",
"already_up_to_date": "✅ yt-dlp já está atualizado!"
"already_up_to_date": "✅ yt-dlp já está atualizado!",
"pip_timeout": "❌ Tempo limite de atualização do pip esgotado após 5 minutos"
},
"about": {
"title": "Sobre YTSage",
@@ -307,7 +309,9 @@
"analyzing_loading_thumbnail_ytdlp": "Analisando (85%)... Carregando miniatura",
"analyzing_processing_subtitles_ytdlp": "Analisando (90%)... Processando legendas",
"select_subtitles": "Selecionar Legendas...",
"sponsorblock_categories": "Categorias SponsorBlock..."
"sponsorblock_categories": "Categorias SponsorBlock...",
"invalid_url_or_enter": "URL inválido ou por favor insira um URL.",
"zero_selected": "0 selecionados"
},
"sponsorblock": {
"sponsor": "Patrocinador",
@@ -374,7 +378,8 @@
"playlist": {
"unknown": "Playlist Desconhecida",
"total_videos": "Total de Vídeos: {count}",
"display_format": "Playlist: {title} | {count} vídeos"
"display_format": "Playlist: {title} | {count} vídeos",
"select_videos_title": "Selecionar Vídeos da Playlist"
},
"subtitle_selection": {
"count_selected": "{count} selecionadas"
+9 -4
View File
@@ -176,7 +176,8 @@
"please_enter_url": "Пожалуйста, введите URL сначала.",
"please_set_path": "Пожалуйста, установите путь загрузки сначала.",
"please_enter_url_and_path": "Пожалуйста, введите URL и установите путь загрузки.",
"please_select_format": "Пожалуйста, выберите формат сначала."
"please_select_format": "Пожалуйста, выберите формат сначала.",
"downloading_fallback": "⚡ Загрузка..."
},
"update": {
"title": "Обновить yt-dlp",
@@ -208,7 +209,8 @@
"running_pip_install": "📦 Выполнение pip install --upgrade...",
"pip_completed": "✅ Обновление pip завершено успешно!",
"pip_failed": "❌ Обновление pip не удалось: {error}",
"already_up_to_date": "✅ yt-dlp уже актуален!"
"already_up_to_date": "✅ yt-dlp уже актуален!",
"pip_timeout": "❌ Время ожидания обновления pip истекло через 5 минут"
},
"about": {
"title": "О YTSage",
@@ -307,7 +309,9 @@
"analyzing_loading_thumbnail_ytdlp": "Анализ (85%)... Загрузка миниатюры",
"analyzing_processing_subtitles_ytdlp": "Анализ (90%)... Обработка субтитров",
"select_subtitles": "Выбрать субтитры...",
"sponsorblock_categories": "Категории SponsorBlock..."
"sponsorblock_categories": "Категории SponsorBlock...",
"invalid_url_or_enter": "Неверный URL или пожалуйста введите URL.",
"zero_selected": "0 выбрано"
},
"sponsorblock": {
"sponsor": "Спонсор",
@@ -374,7 +378,8 @@
"playlist": {
"unknown": "Неизвестный плейлист",
"total_videos": "Всего видео: {count}",
"display_format": "Плейлист: {title} | {count} видео"
"display_format": "Плейлист: {title} | {count} видео",
"select_videos_title": "Выбрать Видео из Плейлиста"
},
"subtitle_selection": {
"count_selected": "выбрано: {count}"
+9 -4
View File
@@ -176,7 +176,8 @@
"please_enter_url": "Lütfen önce bir URL girin.",
"please_set_path": "Lütfen önce indirme yolunu ayarlayın.",
"please_enter_url_and_path": "Lütfen bir URL girin ve indirme yolunu ayarlayın.",
"please_select_format": "Lütfen önce bir format seçin."
"please_select_format": "Lütfen önce bir format seçin.",
"downloading_fallback": "⚡ İndiriliyor..."
},
"update": {
"title": "yt-dlp'yi güncelle",
@@ -208,7 +209,8 @@
"running_pip_install": "📦 pip install --upgrade çalıştırılıyor...",
"pip_completed": "✅ Pip güncellemesi başarıyla tamamlandı!",
"pip_failed": "❌ Pip güncellemesi başarısız: {error}",
"already_up_to_date": "✅ yt-dlp zaten güncel!"
"already_up_to_date": "✅ yt-dlp zaten güncel!",
"pip_timeout": "❌ pip güncellemesi 5 dakika sonra zaman aşımına uğradı"
},
"about": {
"title": "YTSage Hakkında",
@@ -307,7 +309,9 @@
"analyzing_loading_thumbnail_ytdlp": "Analiz ediliyor (85%)... Küçük resim yükleniyor",
"analyzing_processing_subtitles_ytdlp": "Analiz ediliyor (90%)... Altyazılar işleniyor",
"select_subtitles": "Altyazı seç...",
"sponsorblock_categories": "SponsorBlock kategorileri..."
"sponsorblock_categories": "SponsorBlock kategorileri...",
"invalid_url_or_enter": "Geçersiz URL veya lütfen bir URL girin.",
"zero_selected": "0 seçildi"
},
"sponsorblock": {
"sponsor": "Sponsor",
@@ -374,7 +378,8 @@
"playlist": {
"unknown": "Bilinmeyen Oynatma Listesi",
"total_videos": "Toplam Video: {count}",
"display_format": "Oynatma Listesi: {title} | {count} video"
"display_format": "Oynatma Listesi: {title} | {count} video",
"select_videos_title": "Oynatma Listesi Videolarını Seç"
},
"subtitle_selection": {
"count_selected": "{count} seçildi"
+8 -3
View File
@@ -176,7 +176,8 @@
"please_enter_url": "请先输入网址。",
"please_set_path": "请先设置下载路径。",
"please_enter_url_and_path": "请输入网址并设置下载路径。",
"please_select_format": "请先选择格式。"
"please_select_format": "请先选择格式。",
"downloading_fallback": "⚡ 正在下载..."
},
"update": {
"title": "更新 yt-dlp",
@@ -208,6 +209,7 @@
"running_pip_install": "📦 运行 pip install --upgrade...",
"pip_completed": "✅ pip 更新完成成功!",
"pip_failed": "❌ pip 更新失败:{error}",
"pip_timeout": "❌ pip 更新超时(超过5分钟)",
"already_up_to_date": "✅ yt-dlp已是最新版本!"
},
"about": {
@@ -307,7 +309,9 @@
"analyzing_loading_thumbnail_ytdlp": "分析中 (85%)... 正在加载缩略图",
"analyzing_processing_subtitles_ytdlp": "分析中 (90%)... 正在处理字幕",
"select_subtitles": "选择字幕...",
"sponsorblock_categories": "SponsorBlock 分类..."
"sponsorblock_categories": "SponsorBlock 分类...",
"invalid_url_or_enter": "无效的URL或请输入URL。",
"zero_selected": "已选择 0 个"
},
"sponsorblock": {
"sponsor": "赞助商",
@@ -374,7 +378,8 @@
"playlist": {
"unknown": "未知播放列表",
"total_videos": "总视频数:{count}",
"display_format": "播放列表:{title} | {count}个视频"
"display_format": "播放列表:{title} | {count}个视频",
"select_videos_title": "选择播放列表视频"
},
"subtitle_selection": {
"count_selected": "已选择{count}个"
+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()