diff --git a/languages/ar.json b/languages/ar.json index a9afedc..910b66a 100644 --- a/languages/ar.json +++ b/languages/ar.json @@ -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} محدد" diff --git a/languages/de.json b/languages/de.json index 48f87ca..0e2daaf 100644 --- a/languages/de.json +++ b/languages/de.json @@ -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" diff --git a/languages/en.json b/languages/en.json index 73b5760..7b8560b 100644 --- a/languages/en.json +++ b/languages/en.json @@ -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" diff --git a/languages/es.json b/languages/es.json index 46ec22a..5093d00 100644 --- a/languages/es.json +++ b/languages/es.json @@ -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" diff --git a/languages/fr.json b/languages/fr.json index f5eb42f..5553bd5 100644 --- a/languages/fr.json +++ b/languages/fr.json @@ -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)" diff --git a/languages/hi.json b/languages/hi.json index 9c4967f..d01de5d 100644 --- a/languages/hi.json +++ b/languages/hi.json @@ -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} चुना गया" diff --git a/languages/id.json b/languages/id.json index 32eb539..e84fbef 100644 --- a/languages/id.json +++ b/languages/id.json @@ -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" diff --git a/languages/it.json b/languages/it.json index fc4f4f7..d0f4846 100644 --- a/languages/it.json +++ b/languages/it.json @@ -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" diff --git a/languages/ja.json b/languages/ja.json index 1f3a80d..6bd55b2 100644 --- a/languages/ja.json +++ b/languages/ja.json @@ -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}個選択" diff --git a/languages/pl.json b/languages/pl.json index 5249d6d..f6fe3fc 100644 --- a/languages/pl.json +++ b/languages/pl.json @@ -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" diff --git a/languages/pt.json b/languages/pt.json index 858d230..b3e8081 100644 --- a/languages/pt.json +++ b/languages/pt.json @@ -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" diff --git a/languages/ru.json b/languages/ru.json index 9d16b63..fd77997 100644 --- a/languages/ru.json +++ b/languages/ru.json @@ -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}" diff --git a/languages/tr.json b/languages/tr.json index 77ee0b6..acac341 100644 --- a/languages/tr.json +++ b/languages/tr.json @@ -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" diff --git a/languages/zh.json b/languages/zh.json index f444b50..a6e8804 100644 --- a/languages/zh.json +++ b/languages/zh.json @@ -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}个" diff --git a/src/core/ytsage_downloader.py b/src/core/ytsage_downloader.py index 4074203..7aace01 100644 --- a/src/core/ytsage_downloader.py +++ b/src/core/ytsage_downloader.py @@ -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) diff --git a/src/gui/ytsage_gui_dialogs/ytsage_dialogs_selection.py b/src/gui/ytsage_gui_dialogs/ytsage_dialogs_selection.py index 946ea76..9d36b6d 100644 --- a/src/gui/ytsage_gui_dialogs/ytsage_dialogs_selection.py +++ b/src/gui/ytsage_gui_dialogs/ytsage_dialogs_selection.py @@ -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 diff --git a/src/gui/ytsage_gui_dialogs/ytsage_dialogs_update.py b/src/gui/ytsage_gui_dialogs/ytsage_dialogs_update.py index 532262c..3712e61 100644 --- a/src/gui/ytsage_gui_dialogs/ytsage_dialogs_update.py +++ b/src/gui/ytsage_gui_dialogs/ytsage_dialogs_update.py @@ -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}") diff --git a/src/gui/ytsage_gui_main.py b/src/gui/ytsage_gui_main.py index 29face8..3ff61ca 100644 --- a/src/gui/ytsage_gui_main.py +++ b/src/gui/ytsage_gui_main.py @@ -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()