d009202230
Replaces manual update check logic in DownloadSettingsDialog with a dedicated YTDLPUpdateDialog for progress tracking. Removes the 'Update yt-dlp' button and related logic from the main window. Updates translation strings in all supported languages to reflect the new update dialog flow and button labeling.
460 lines
23 KiB
JSON
460 lines
23 KiB
JSON
{
|
|
"language": {
|
|
"display_name": "Bahasa Indonesia (Indonesian)",
|
|
"select_language": "Pilih Bahasa:",
|
|
"current_language": "Bahasa saat ini: {language}",
|
|
"restart_required": "Perubahan bahasa akan berlaku setelah memulai ulang aplikasi.",
|
|
"english": "Bahasa Inggris",
|
|
"spanish": "Bahasa Spanyol",
|
|
"portuguese": "Bahasa Portugis",
|
|
"russian": "Bahasa Rusia",
|
|
"chinese": "Bahasa Mandarin",
|
|
"german": "Bahasa Jerman",
|
|
"french": "Bahasa Prancis",
|
|
"hindi": "Bahasa Hindi",
|
|
"indonesian": "Bahasa Indonesia",
|
|
"turkish": "Bahasa Turki",
|
|
"polish": "Bahasa Polandia",
|
|
"italian": "Bahasa Italia",
|
|
"arabic": "Bahasa Arab",
|
|
"japanese": "Bahasa Jepang",
|
|
"help_text": "Pilih bahasa yang diinginkan untuk antarmuka.",
|
|
"restart_notice": "Perubahan bahasa akan berlaku setelah memulai ulang aplikasi."
|
|
},
|
|
"app": {
|
|
"title": "YTSage",
|
|
"version": "v{version}",
|
|
"ready": "Siap"
|
|
},
|
|
"formats": {
|
|
"show_formats": "Tampilkan format:",
|
|
"video_format": "Format video:",
|
|
"audio_format": "Format audio:",
|
|
"no_formats": "Tidak ada format yang tersedia",
|
|
"loading": "Memuat format...",
|
|
"select": "Pilih",
|
|
"quality": "Kualitas",
|
|
"extension": "Ekstensi",
|
|
"resolution": "Resolusi",
|
|
"file_size": "Ukuran file",
|
|
"codec": "Codec",
|
|
"audio": "Audio",
|
|
"fps": "FPS",
|
|
"hdr": "HDR",
|
|
"will_merge_audio": "Audio akan digabungkan",
|
|
"has_audio": "✓ Memiliki audio",
|
|
"audio_only": "Audio saja",
|
|
"best_4k": "Terbaik (4K)",
|
|
"best_2k": "Terbaik (2K)",
|
|
"high_1080p": "Tinggi (1080p)",
|
|
"high_720p": "Tinggi (720p)",
|
|
"medium_480p": "Sedang (480p)",
|
|
"low_quality": "Kualitas rendah",
|
|
"best_audio": "Audio terbaik",
|
|
"high_audio": "Audio tinggi",
|
|
"medium_audio": "Audio sedang",
|
|
"low_audio": "Audio rendah",
|
|
"audio_only_resolution": "Audio saja"
|
|
},
|
|
"buttons": {
|
|
"download": "Unduh",
|
|
"pause": "Jeda",
|
|
"resume": "Lanjutkan",
|
|
"cancel": "Batal",
|
|
"browse": "Jelajahi",
|
|
"clear": "Bersihkan",
|
|
"ok": "OK",
|
|
"apply": "Terapkan",
|
|
"close": "Tutup",
|
|
"run_command": "Jalankan perintah",
|
|
"custom_command_help": "Bantuan",
|
|
"about": "Tentang",
|
|
"analyze": "Analisis",
|
|
"paste_url": "Tempel URL",
|
|
"select_videos": "Pilih video...",
|
|
"video": "Video",
|
|
"audio_only": "Audio saja",
|
|
"custom_options": "Opsi khusus",
|
|
"trim_video": "Potong video",
|
|
"download_settings": "Pengaturan unduhan",
|
|
"update": "Perbarui yt-dlp",
|
|
"select_defaults": "Pilih default",
|
|
"select_all": "Pilih semua",
|
|
"deselect_all": "Batalkan pilihan semua",
|
|
"open_folder": "Buka lokasi folder",
|
|
"history": "Riwayat"
|
|
},
|
|
"dialogs": {
|
|
"custom_options": "Opsi khusus",
|
|
"settings": "Pengaturan",
|
|
"select_folder": "Pilih folder unduhan",
|
|
"sponsorblock_categories": "Kategori SponsorBlock",
|
|
"sponsorblock_description": "Pilih jenis segmen video yang akan dihapus secara otomatis selama pengunduhan.\nSponsorBlock menggunakan data yang dikirimkan komunitas untuk mengidentifikasi segmen ini.",
|
|
"select_subtitles": "Pilih subtitle",
|
|
"filter_languages_placeholder": "Filter bahasa (misalnya: id, en)...",
|
|
"no_subtitles_available": "Tidak ada subtitle yang tersedia",
|
|
"matching": "yang cocok"
|
|
},
|
|
"tabs": {
|
|
"cookies": "Masuk dengan cookies",
|
|
"custom_command": "Perintah khusus",
|
|
"proxy": "Proxy",
|
|
"language": "Bahasa"
|
|
},
|
|
"cookies": {
|
|
"help_text": "Pilih cara memberikan cookies untuk autentikasi.\nIni memungkinkan pengunduhan video pribadi dan file audio berkualitas tinggi.",
|
|
"cookie_source": "Sumber cookie",
|
|
"use_cookie_file": "Gunakan file cookie",
|
|
"extract_from_browser": "Ekstrak dari browser",
|
|
"recommended": "Direkomendasikan",
|
|
"cookie_file": "File cookie",
|
|
"cookie_file_placeholder": "Jalur ke file cookies.txt...",
|
|
"browser_selection": "Pilihan browser",
|
|
"browser_help": "Pilih browser untuk mengekstrak cookies:",
|
|
"browser_label": "Browser:",
|
|
"profile_label": "Profil:",
|
|
"profile_placeholder": "Default",
|
|
"browser_extract_message": "Cookies browser akan diekstrak saat diterapkan",
|
|
"file_selected_message": "File cookie dipilih - Klik OK untuk menerapkan",
|
|
"select_file_title": "Pilih file cookie",
|
|
"file_filter": "File cookie (*.txt *.lwp)",
|
|
"file_selected_title": "File Cookie Diterapkan",
|
|
"file_applied_message": "File cookie diterapkan: {path}",
|
|
"browser_selected_title": "Cookies Browser Diterapkan",
|
|
"browser_applied_message": "Cookies browser akan diekstrak dari: {browser}",
|
|
"cleared_title": "Cookies Dihapus",
|
|
"cleared_message": "Pengaturan cookie telah dihapus"
|
|
},
|
|
"custom_command": {
|
|
"help_text": "Masukkan perintah yt-dlp khusus Anda di bawah. URL saat ini akan ditambahkan secara otomatis.<br><br>Untuk daftar lengkap opsi dan contoh penggunaan <a href=\"{docs_url}\">klik di sini untuk melihat dokumentasi resmi yt-dlp</a>.<br><br>Catatan: Jalur unduhan dan template nama file ditangani secara otomatis.",
|
|
"input_label": "Argumen yt-dlp:",
|
|
"input_placeholder": "Masukkan argumen yt-dlp di sini...\n\nContoh: --extract-audio --audio-format mp3",
|
|
"output_label": "Output perintah:",
|
|
"output_placeholder": "Output perintah akan muncul di sini...",
|
|
"command_placeholder": "Masukkan perintah yt-dlp khusus...",
|
|
"command_help": "Placeholder yang tersedia:\n{url} - URL video\n{output} - Folder output\n\nContoh: --write-info-json --write-thumbnail",
|
|
"full_command": "🔧 Perintah lengkap: {command}",
|
|
"command_success": "✅ Perintah khusus berhasil dijalankan!",
|
|
"command_failed": "❌ Perintah gagal dengan kode keluar {code}",
|
|
"command_error": "❌ Kesalahan menjalankan perintah khusus: {error}"
|
|
},
|
|
"proxy": {
|
|
"help_text": "Konfigurasi pengaturan proxy untuk unduhan. Biarkan kosong untuk koneksi langsung.",
|
|
"main_proxy": "Proxy utama",
|
|
"main_proxy_help": "Server proxy utama untuk semua unduhan. Mendukung protokol HTTP/HTTPS dan SOCKS5.",
|
|
"proxy_url_label": "URL Proxy:",
|
|
"proxy_url_placeholder": "http://proxy:port atau socks5://proxy:port",
|
|
"proxy_examples": "Contoh:\n• HTTP: http://proxy.example.com:8080\n• SOCKS5: socks5://proxy.example.com:1080",
|
|
"geo_proxy": "Proxy bypass geografis",
|
|
"geo_proxy_help": "Proxy sekunder khusus untuk mem-bypass pembatasan geografis.",
|
|
"geo_proxy_url_label": "URL proxy bypass geografis:",
|
|
"geo_proxy_url_placeholder": "http://geo-proxy:port",
|
|
"clear_main_proxy": "Hapus proxy utama",
|
|
"clear_geo_proxy": "Hapus proxy geografis",
|
|
"proxy_url": "URL Proxy",
|
|
"proxy_placeholder": "http://proxy:port atau socks5://proxy:port",
|
|
"geo_bypass": "Proxy bypass geografis (untuk pembatasan geografis)",
|
|
"geo_bypass_placeholder": "http://proxy:port untuk mem-bypass geo-blocking",
|
|
"invalid_main_url": "Format URL proxy utama tidak valid",
|
|
"invalid_geo_url": "Format URL proxy geografis tidak valid",
|
|
"main_configured": "Proxy utama dikonfigurasi",
|
|
"geo_configured": "Proxy geografis dikonfigurasi"
|
|
},
|
|
"download": {
|
|
"preparing": "Mempersiapkan unduhan...",
|
|
"starting": "🚀 Memulai unduhan...",
|
|
"fetching_info": "🔍 Mengambil informasi video...",
|
|
"preparing_streams": "🎯 Mempersiapkan aliran video...",
|
|
"downloading_audio": "⏬ Mengunduh audio...",
|
|
"downloading_video": "⏬ Mengunduh video...",
|
|
"downloading_subtitle": "⏬ Mengunduh subtitle...",
|
|
"downloading": "⏬ Mengunduh...",
|
|
"completed": "✅ Unduhan selesai!",
|
|
"video_completed": "✅ Unduhan video selesai!",
|
|
"audio_completed": "✅ Unduhan audio selesai!",
|
|
"subtitle_completed": "✅ Unduhan subtitle selesai!",
|
|
"completed_cleaning": "✅ Unduhan selesai! Membersihkan...",
|
|
"cancelled": "Unduhan dibatalkan",
|
|
"processing_playlist": "📋 Memproses data playlist...",
|
|
"paused": "Unduhan dijeda",
|
|
"resumed": "Unduhan dilanjutkan",
|
|
"merging_formats": "✨ Pasca-pemrosesan: Menggabungkan format...",
|
|
"removing_sponsor_segments": "✨ Pasca-pemrosesan: Menghapus segmen sponsor...",
|
|
"speed": "Kecepatan",
|
|
"eta": "Waktu tersisa",
|
|
"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.",
|
|
"downloading_fallback": "⚡ Mengunduh..."
|
|
},
|
|
"update": {
|
|
"title": "Perbarui yt-dlp",
|
|
"checking": "Memeriksa pembaruan...",
|
|
"update_available": "Pembaruan tersedia!\nVersi saat ini: {current}\nVersi terbaru: {latest}",
|
|
"up_to_date": "yt-dlp sudah terbaru (Versi {version})",
|
|
"could_not_determine": "Tidak dapat menentukan versi.",
|
|
"error_comparing": "Kesalahan membandingkan versi: {error}",
|
|
"update_available_failed": "Pembaruan tersedia! (Perbandingan gagal)\nSaat ini: {current}\nTerbaru: {latest}",
|
|
"updating": "Memperbarui...",
|
|
"initializing": "🚀 Menginisialisasi proses pembaruan...",
|
|
"checking_current": "🔍 Memeriksa instalasi saat ini...",
|
|
"found_at": "📍 yt-dlp ditemukan di: {path}",
|
|
"error_getting_path": "❌ Kesalahan mendapatkan jalur yt-dlp: {error}",
|
|
"updating_binary": "📦 Memperbarui binary yt-dlp yang dikelola aplikasi...",
|
|
"update_failed": "❌ Pembaruan yt-dlp gagal. Silakan coba lagi atau periksa koneksi internet Anda.",
|
|
"binary_updated": "✅ Binary berhasil diperbarui!",
|
|
"update_failed_stderr": "❌ Pembaruan yt-dlp gagal: {error}",
|
|
"update_timeout": "❌ Timeout pembaruan yt-dlp.",
|
|
"unexpected_error": "❌ Kesalahan tak terduga selama pembaruan: {error}",
|
|
"already_up_to_date": "✅ yt-dlp sudah terbaru!",
|
|
"update_success": "✅ yt-dlp telah berhasil diperbarui!",
|
|
"already_latest": "yt-dlp sudah terbaru (versi {version})",
|
|
"network_error": "❌ Kesalahan jaringan selama pembaruan: {error}",
|
|
"general_error": "❌ Pembaruan gagal: {error}"
|
|
},
|
|
"about": {
|
|
"title": "Tentang YTSage",
|
|
"version": "Versi {version}",
|
|
"description": "Pengunduh YouTube modern dengan antarmuka PySide6 yang bersih.",
|
|
"author": "Oleh: {author}",
|
|
"github": "GitHub: {repo}",
|
|
"system_info": "Informasi sistem",
|
|
"loading": "🔄 Memuat informasi sistem...",
|
|
"refresh": "🔄",
|
|
"refreshing": "🔄 Menyegarkan...",
|
|
"refresh_failed": "Gagal menyegarkan",
|
|
"refresh_failed_message": "Tidak dapat menyegarkan informasi versi.",
|
|
"detected": "✓ Terdeteksi",
|
|
"missing": "✗ Hilang",
|
|
"not_available": "Tidak tersedia"
|
|
},
|
|
"time_range": {
|
|
"title": "Potong video",
|
|
"time_range_group": "Rentang waktu",
|
|
"start_time": "Waktu mulai (HH:MM:SS)",
|
|
"end_time": "Waktu selesai (HH:MM:SS)",
|
|
"start_placeholder": "00:00:00",
|
|
"end_placeholder": "00:00:00",
|
|
"start_time_placeholder": "Waktu mulai (HH:MM:SS)",
|
|
"end_time_placeholder": "Waktu selesai (HH:MM:SS)",
|
|
"force_keyframes": "Paksa keyframe pada titik potong",
|
|
"help_text": "Atur waktu mulai dan selesai untuk memotong video.\nBiarkan kosong untuk mengunduh video penuh.",
|
|
"invalid_format": "Format waktu tidak valid. Gunakan format HH:MM:SS.",
|
|
"start_after_end": "Waktu mulai tidak boleh setelah waktu selesai."
|
|
},
|
|
"settings": {
|
|
"title": "Pengaturan unduhan",
|
|
"download_path": "Jalur unduhan",
|
|
"browse": "Jelajahi...",
|
|
"speed_limit": "Batas kecepatan",
|
|
"speed_limit_placeholder": "Tidak ada",
|
|
"auto_update_ytdlp": "Pembaruan otomatis yt-dlp",
|
|
"enable_auto_updates": "Aktifkan pembaruan otomatis yt-dlp",
|
|
"update_frequency": "Frekuensi pembaruan:",
|
|
"check_startup": "Periksa setiap startup (minimal 1 jam antara pemeriksaan)",
|
|
"check_daily": "Periksa harian",
|
|
"check_weekly": "Periksa mingguan",
|
|
"check_updates_now": "Perbarui yt-dlp",
|
|
"update_check_title": "Pemeriksaan pembaruan",
|
|
"could_not_determine_version": "Tidak dapat menentukan versi yt-dlp saat ini.",
|
|
"update_available_dialog": "Pembaruan tersedia!\n\nSaat ini: {current}\nTerbaru: {latest}\n\nKlik OK untuk melanjutkan pembaruan.",
|
|
"up_to_date_dialog": "yt-dlp sudah terbaru!\n\nVersi saat ini: {version}",
|
|
"error_checking_updates": "Kesalahan memeriksa pembaruan: {error}",
|
|
"settings_saved_title": "Pengaturan disimpan",
|
|
"settings_saved_message": "Pengaturan pembaruan otomatis berhasil disimpan!",
|
|
"error_title": "Kesalahan",
|
|
"failed_save_settings": "Gagal menyimpan pengaturan pembaruan otomatis.",
|
|
"error_saving_settings": "Kesalahan menyimpan pengaturan pembaruan otomatis: {error}",
|
|
"auto_update_title": "Pengaturan pembaruan otomatis",
|
|
"auto_update_header": "🔄 Pengaturan pembaruan otomatis",
|
|
"auto_update_description": "Konfigurasi pembaruan otomatis untuk yt-dlp untuk memastikan Anda selalu memiliki fitur dan perbaikan bug terbaru.",
|
|
"current_status": "Status saat ini",
|
|
"current_version_label": "Versi yt-dlp saat ini: Memeriksa...",
|
|
"last_check_label": "Pemeriksaan pembaruan terakhir: Tidak pernah",
|
|
"next_check_label": "Pemeriksaan berikutnya: Berdasarkan pengaturan",
|
|
"manual_check_button": "🔍 Periksa pembaruan sekarang",
|
|
"update_frequency_group": "Frekuensi pembaruan",
|
|
"save_settings": "Simpan pengaturan",
|
|
"settings_saved_successfully": "✅ Pengaturan berhasil disimpan!",
|
|
"error_saving": "❌ Kesalahan menyimpan pengaturan: {error}"
|
|
},
|
|
"main_ui": {
|
|
"url_placeholder": "Masukkan URL video atau playlist YouTube",
|
|
"merge_subtitles": "Gabungkan subtitle",
|
|
"save_thumbnail": "Simpan thumbnail",
|
|
"save_description": "Simpan deskripsi",
|
|
"embed_chapters": "Sematkan bab",
|
|
"subtitles_selected": "{count} dipilih",
|
|
"all_selected": "Semua dipilih",
|
|
"select_videos_all": "Pilih video... (Semua dipilih)",
|
|
"please_enter_url": "Silakan masukkan URL terlebih dahulu",
|
|
"error_title": "Kesalahan",
|
|
"cookie_file_selected_title": "File cookie dipilih",
|
|
"cookie_file_selected_message": "File cookie dipilih: {path}",
|
|
"browser_cookies_selected_title": "Cookies browser dipilih",
|
|
"browser_cookies_selected_message": "Cookies browser akan diekstrak dari: {browser}",
|
|
"error_no_format_info": "Kesalahan: Tidak ada informasi format yang tersedia.",
|
|
"error_extract_info": "Kesalahan: Tidak dapat mengekstrak informasi video dasar. Silakan periksa tautan Anda.",
|
|
"analyzing_preparing": "Menganalisis (0%)... Mempersiapkan permintaan",
|
|
"analyzing_extracting_basic": "Menganalisis (15%)... Mengekstrak informasi dasar",
|
|
"analyzing_extracting_detailed": "Menganalisis (30%)... Mengekstrak informasi detail",
|
|
"analyzing_processing_video": "Menganalisis (45%)... Memproses data video",
|
|
"analyzing_processing_formats": "Menganalisis (60%)... Memproses format",
|
|
"analyzing_loading_thumbnail": "Menganalisis (75%)... Memuat thumbnail",
|
|
"analyzing_processing_subtitles": "Menganalisis (85%)... Memproses subtitle",
|
|
"analyzing_updating_table": "Menganalisis (95%)... Memperbarui tabel format",
|
|
"analysis_complete": "Analisis selesai!",
|
|
"analyzing_extracting_ytdlp": "Menganalisis (30%)... Mengekstrak informasi dengan executable yt-dlp",
|
|
"analyzing_processing_data": "Menganalisis (60%)... Memproses data",
|
|
"analyzing_processing_formats_ytdlp": "Menganalisis (75%)... Memproses format",
|
|
"analyzing_loading_thumbnail_ytdlp": "Menganalisis (85%)... Memuat thumbnail",
|
|
"analyzing_processing_subtitles_ytdlp": "Menganalisis (90%)... Memproses subtitle",
|
|
"select_subtitles": "Pilih subtitle...",
|
|
"sponsorblock_categories": "Kategori SponsorBlock...",
|
|
"invalid_url_or_enter": "URL tidak valid atau silakan masukkan URL.",
|
|
"zero_selected": "0 dipilih"
|
|
},
|
|
"sponsorblock": {
|
|
"sponsor": "Sponsor",
|
|
"sponsor_desc": "Iklan berbayar, rekomendasi berbayar dan iklan langsung",
|
|
"selfpromo": "Promosi diri tidak berbayar",
|
|
"selfpromo_desc": "Iklan tidak berbayar untuk konten kreator sendiri",
|
|
"interaction": "Pengingat interaksi",
|
|
"interaction_desc": "Pemirsa diminta untuk menyukai, berlangganan atau mengikuti media sosial",
|
|
"intro": "Intro",
|
|
"intro_desc": "Intro video yang dapat dilewati",
|
|
"outro": "Outro/Kartu akhir",
|
|
"outro_desc": "Kredit atau saat video berakhir",
|
|
"preview": "Pratinjau/Ringkasan",
|
|
"preview_desc": "Ringkasan singkat video sebelumnya atau pratinjau konten mendatang",
|
|
"music_offtopic": "Bagian non-musik",
|
|
"music_offtopic_desc": "Hanya untuk video musik. Menandai bagian non-musik",
|
|
"filler": "Tangensial pengisi",
|
|
"filler_desc": "Adegan tangensial yang ditambahkan hanya sebagai pengisi atau untuk humor"
|
|
},
|
|
"video_info": {
|
|
"channel": "Saluran",
|
|
"views": "Tayangan",
|
|
"likes": "Suka",
|
|
"upload_date": "Tanggal upload",
|
|
"duration": "Durasi",
|
|
"unknown_channel": "Saluran tidak diketahui",
|
|
"unknown_date": "Tanggal tidak diketahui",
|
|
"unknown_title": "Judul tidak diketahui"
|
|
},
|
|
"command": {
|
|
"running": "Berjalan...",
|
|
"run_command": "Jalankan perintah"
|
|
},
|
|
"selection": {
|
|
"none_selected": "0 dipilih",
|
|
"one_selected": "1 kategori dipilih",
|
|
"count_selected": "{count} dipilih"
|
|
},
|
|
"status": {
|
|
"ready": "Siap",
|
|
"file_exists": "⚠️ File sudah ada",
|
|
"video_file_exists": "⚠️ File video sudah ada",
|
|
"audio_file_exists": "⚠️ File audio sudah ada",
|
|
"subtitle_file_exists": "⚠️ File subtitle sudah ada",
|
|
"cancelling": "Membatalkan unduhan..."
|
|
},
|
|
"errors": {
|
|
"playlist_no_videos": "Kesalahan: Playlist tidak berisi video yang valid.",
|
|
"playlist_no_url": "Kesalahan: Tidak dapat mendapatkan URL untuk video playlist pertama.",
|
|
"ytdlp_not_found": "Kesalahan: Executable yt-dlp tidak ditemukan. Silakan instal yt-dlp terlebih dahulu.",
|
|
"ytdlp_not_found_path": "Kesalahan: Executable yt-dlp tidak ditemukan. Ini bisa karena instalasi yang tidak tepat atau masalah PATH.",
|
|
"no_data_returned": "Kesalahan: Tidak ada data yang dikembalikan dari yt-dlp",
|
|
"no_format_info": "Kesalahan: Tidak ada informasi format yang tersedia.",
|
|
"analysis_timeout": "Kesalahan: Analisis timeout. Silakan coba lagi.",
|
|
"invalid_speed_limit": "❌ Kesalahan: Nilai batas kecepatan tidak valid yang diatur dalam pengaturan.",
|
|
"ytdlp_failed": "Kesalahan: yt-dlp gagal: {error}",
|
|
"parse_failed": "Kesalahan: Gagal mengurai output yt-dlp: {error}",
|
|
"analysis_failed": "Kesalahan: Analisis gagal: {error}",
|
|
"generic_error": "Kesalahan: {error}"
|
|
},
|
|
"update_dialog": {
|
|
"title": "Pembaruan Tersedia",
|
|
"new_version_available": "Versi baru YTSage tersedia!",
|
|
"current_version_label": "Versi saat ini:",
|
|
"latest_version_label": "Versi terbaru:",
|
|
"changelog": "Catatan perubahan",
|
|
"download_update": "Unduh Pembaruan",
|
|
"remind_later": "Ingatkan Nanti"
|
|
},
|
|
"playlist": {
|
|
"unknown": "Playlist Tidak Dikenal",
|
|
"total_videos": "Total Video: {count}",
|
|
"display_format": "Playlist: {title} | {count} video",
|
|
"select_videos_title": "Pilih Video Playlist"
|
|
},
|
|
"subtitle_selection": {
|
|
"count_selected": "{count} dipilih"
|
|
},
|
|
"file_exists_dialog": {
|
|
"title": "File Sudah Ada",
|
|
"message": "File sudah ada:\n{filename}",
|
|
"info": "Video ini sudah pernah diunduh."
|
|
},
|
|
"auto_update": {
|
|
"last_check_never": "Pemeriksaan terakhir: Tidak pernah",
|
|
"last_check": "Pemeriksaan terakhir: {time}",
|
|
"next_check_disabled": "Pemeriksaan berikutnya: Dinonaktifkan",
|
|
"next_check_startup": "Pemeriksaan berikutnya: Saat startup",
|
|
"next_check_overdue": "Pemeriksaan berikutnya: Sekarang (terlambat)",
|
|
"next_check": "Pemeriksaan berikutnya: {time}",
|
|
"next_check_error": "Pemeriksaan berikutnya: Kesalahan perhitungan",
|
|
"checking": "🔄 Memeriksa...",
|
|
"check_now": "🔍 Periksa pembaruan sekarang"
|
|
},
|
|
"url_validation": {
|
|
"empty_url": "URL tidak boleh kosong",
|
|
"invalid_format": "Format URL tidak valid",
|
|
"invalid_scheme": "URL harus dimulai dengan http:// atau https://",
|
|
"missing_domain": "URL tidak valid: nama domain hilang",
|
|
"unsupported_platform": "YTSage hanya mendukung URL YouTube dan YouTube Music.\nDomain '{domain}' tidak didukung.",
|
|
"invalid_youtu_be": "URL youtu.be tidak valid: ID video hilang"
|
|
},
|
|
"ytdlp_errors": {
|
|
"private_video": "Ini adalah video privat. Anda dapat mengunduhnya dengan masuk ke akun Anda menggunakan cookie.\nBuka 'Opsi Kustom' → 'Masuk dengan Cookie' → 'Ekstrak cookie dari browser' untuk autentikasi.",
|
|
"age_restricted": "Video ini dibatasi usia. Anda perlu masuk untuk mengaksesnya.\nGunakan 'Opsi Kustom' → 'Masuk dengan Cookie' untuk autentikasi dengan akun Anda.",
|
|
"geo_blocked": "Video ini tidak tersedia di wilayah Anda (diblokir geografis).\nAnda mungkin perlu menggunakan VPN atau video mungkin dibatasi di negara Anda.",
|
|
"video_unavailable": "Video ini telah dihapus atau tidak lagi tersedia.\nVideo mungkin telah dihapus oleh pengunggah atau dihapus karena pelanggaran kebijakan.",
|
|
"live_stream": "Ini adalah siaran langsung yang tidak dapat diunduh saat aktif.\nTunggu hingga siaran berakhir, lalu coba unduh versi arsip.",
|
|
"playlist_error": "Tidak dapat mengakses playlist ini. Mungkin privat, dihapus, atau kosong.\nPeriksa apakah playlist ada dan dapat diakses publik.",
|
|
"network_error": "Kesalahan koneksi jaringan. Silakan periksa koneksi internet Anda dan coba lagi.\nJika masalah berlanjut, server video mungkin tidak tersedia sementara.",
|
|
"invalid_url": "URL tidak valid atau tidak didukung. Silakan periksa tautan dan coba lagi.\nPastikan Anda menggunakan URL YouTube, Vimeo, atau platform didukung lainnya yang valid.",
|
|
"premium_content": "Konten ini memerlukan YouTube Premium atau keanggotaan channel.\nAnda perlu masuk dengan akun yang memiliki akses ke konten ini.",
|
|
"copyright_blocked": "Video ini diblokir karena klaim hak cipta.\nPemilik konten telah membatasi akses ke video ini.",
|
|
"extraction_failed": "Gagal mengekstrak informasi video. Ini mungkin masalah sementara.\nSilakan coba lagi dalam beberapa menit, atau periksa apakah tautan video benar.",
|
|
"generic_error": "Tidak dapat mengekstrak informasi video. Silakan periksa tautan Anda.\nDetail teknis: {error}"
|
|
},
|
|
"history": {
|
|
"title": "Riwayat Unduhan",
|
|
"clear_all": "Hapus Semua",
|
|
"clear_confirm_title": "Hapus Riwayat?",
|
|
"clear_confirm_message": "Apakah Anda yakin? Ini tidak dapat dibatalkan.",
|
|
"no_history": "Belum ada riwayat",
|
|
"no_history_description": "Unduhan Anda akan muncul di sini",
|
|
"search_placeholder": "Cari...",
|
|
"open_location": "Buka Lokasi",
|
|
"redownload": "Unduh Lagi",
|
|
"remove": "Hapus",
|
|
"file_not_found": "File tidak ditemukan",
|
|
"file_not_found_message": "File dipindahkan atau dihapus:\n{path}",
|
|
"downloaded_on": "Diunduh: {date}",
|
|
"file_size": "Ukuran: {size}",
|
|
"audio_download": "Audio",
|
|
"video_download": "Video",
|
|
"remove_confirm_title": "Hapus?",
|
|
"remove_confirm_message": "Hapus dari riwayat?\n\n{title}",
|
|
"item_removed": "Dihapus",
|
|
"history_cleared": "Riwayat dihapus",
|
|
"entries_count": "{count} unduhan",
|
|
"one_entry": "1 unduhan",
|
|
"redownload_confirm_title": "Unduh Lagi?",
|
|
"redownload_confirm_message": "Unduh lagi?\n\n{title}",
|
|
"redownload_started": "Unduhan dimulai"
|
|
}
|
|
} |