-
Dosya Adı: ${currentVideoData.title}
-
Platform / Paylaşan: ${currentVideoData.uploader || 'Bilinmiyor'}
-
Dosya Boyutu: ${result.stats.size}
-
İndirme Süresi: ${result.stats.duration}
-
Format ve Kalite: ${currentFormat} (${currentQuality === '320' || currentQuality === '1080' ? 'En Yüksek' : currentQuality})
-
Kaydedilen Klasör:
${result.stats.outputDir}
+
+
${t('swal_file_name')} ${currentVideoData.title}
+
${t('swal_platform_uploader')} ${currentVideoData.uploader || t('duration_unknown')}
+
${t('swal_file_size')} ${result.stats.size}
+
${t('swal_duration')} ${localizedDuration}
+
${t('swal_format_quality')} ${currentFormat} (${currentQuality === '320' || currentQuality === '1080' ? t('quality_best') : currentQuality})
+
${t('swal_output_dir')}
${result.stats.outputDir}
`,
icon: 'success',
background: 'rgba(23, 20, 38, 0.95)',
color: '#fff',
- confirmButtonText: 'Klasörü Aç 📂',
+ confirmButtonText: t('swal_btn_open_folder'),
showCancelButton: true,
- cancelButtonText: 'Yeni İndirme 🔄',
+ cancelButtonText: t('swal_btn_new_download'),
confirmButtonColor: '#7000ff',
cancelButtonColor: 'rgba(255, 255, 255, 0.1)',
backdrop: 'rgba(0, 0, 0, 0.6)'
@@ -308,7 +409,7 @@ downloadBtn.addEventListener('click', async () => {
showError(result.error);
downloadProgressPanel.style.display = 'none';
if (statusBadge) {
- statusBadge.textContent = 'Hata';
+ statusBadge.textContent = t('badge_error');
statusBadge.className = 'status-badge ready';
statusBadge.style.borderColor = 'rgba(255, 77, 77, 0.3)';
statusBadge.style.color = '#ff4d4d';
@@ -328,12 +429,13 @@ downloadBtn.addEventListener('click', async () => {
function showError(msg) {
let friendlyMsg = msg;
if (msg.includes('Could not copy') && msg.includes('cookie database')) {
- friendlyMsg = 'Seçtiğiniz tarayıcı (Chrome/Edge/Brave vb.) şu anda arka planda açık olduğu için çerez veritabanı kilitlendi. Lütfen tarayıcı pencerelerinizi tamamen kapatıp ardından tekrar "Analiz Et" butonuna basın.';
+ friendlyMsg = t('err_cookies_locked');
} else if (msg.includes('You need to log in to access this content')) {
- friendlyMsg = 'Bu özel içeriğe erişmek için giriş yapılması gerekiyor. Lütfen aşağıdaki çerez seçeneğini aktif edip giriş yapmış olduğunuz tarayıcıyı seçin.';
+ friendlyMsg = t('err_login_required');
} else if (msg.includes('Failed to decrypt with DPAPI')) {
- friendlyMsg = 'Tarayıcı çerez anahtarı çözülemedi (DPAPI Hatası). Bu durum genellikle uygulamayı veya terminali "Yönetici Olarak Çalıştır" (Administrator) modunda açtığınızda oluşur. Çerezlerinize erişebilmek için lütfen uygulamayı normal kullanıcı modunda başlatıp tekrar deneyin.';
+ friendlyMsg = t('err_dpapi_fail');
}
- errorMessage.textContent = `Hata: ${friendlyMsg}`;
+ errorMessage.textContent = `${t('err_prefix')}${friendlyMsg}`;
errorCard.style.display = 'flex';
}
+
diff --git a/src/style.css b/src/style.css
index 6569560..d625a82 100644
--- a/src/style.css
+++ b/src/style.css
@@ -775,3 +775,127 @@ input[type="text"]:focus {
gap: 14px;
}
}
+
+/* Premium Language Switcher Selector */
+.language-selector-wrapper {
+ display: flex;
+ align-items: center;
+ margin-right: 8px;
+ height: 100%;
+}
+
+.language-select {
+ background: rgba(23, 20, 38, 0.7);
+ color: #dcd7eb;
+ border: 1px solid rgba(255, 255, 255, 0.12);
+ border-radius: 8px;
+ padding: 4px 26px 4px 8px;
+ font-size: 0.8rem;
+ font-weight: 500;
+ cursor: pointer;
+ outline: none;
+ font-family: inherit;
+ backdrop-filter: blur(10px);
+ -webkit-backdrop-filter: blur(10px);
+ transition: all 0.25s ease;
+ appearance: none;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23ff0080' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
+ background-repeat: no-repeat;
+ background-position: right 8px center;
+ background-size: 10px;
+}
+
+.language-select:hover {
+ background: rgba(23, 20, 38, 0.9);
+ border-color: rgba(255, 0, 128, 0.5);
+ box-shadow: 0 0 10px rgba(255, 0, 128, 0.2);
+}
+
+.language-select option {
+ background: #171426;
+ color: #fff;
+}
+
+/* RTL (Right to Left) Styles for Arabic Support */
+html[dir="rtl"] {
+ direction: rtl;
+}
+
+html[dir="rtl"] * {
+ text-align: right;
+}
+
+html[dir="rtl"] .text-center,
+html[dir="rtl"] .text-center * {
+ text-align: center;
+}
+
+html[dir="rtl"] .custom-titlebar {
+ flex-direction: row-reverse;
+}
+
+html[dir="rtl"] .titlebar-drag {
+ padding-right: 16px;
+ padding-left: 0;
+ flex-direction: row;
+}
+
+html[dir="rtl"] .language-selector-wrapper {
+ margin-right: 0;
+ margin-left: 8px;
+}
+
+html[dir="rtl"] .language-select {
+ padding: 4px 8px 4px 26px;
+ background-position: left 8px center;
+}
+
+html[dir="rtl"] .back-button {
+ flex-direction: row;
+ gap: 8px;
+}
+
+html[dir="rtl"] .back-button:hover {
+ transform: translateX(2px);
+}
+
+html[dir="rtl"] .back-chevron {
+ transform: rotate(180deg);
+}
+
+html[dir="rtl"] .track-item {
+ flex-direction: row;
+}
+
+html[dir="rtl"] .track-details {
+ text-align: right;
+}
+
+html[dir="rtl"] .track-details h4,
+html[dir="rtl"] .track-details p,
+html[dir="rtl"] .track-details span {
+ text-align: right;
+}
+
+html[dir="rtl"] .progress-panel .subtext {
+ text-align: right;
+}
+
+html[dir="rtl"] .option-row {
+ flex-direction: row;
+}
+
+html[dir="rtl"] .format-btn {
+ flex-direction: row;
+}
+
+html[dir="rtl"] .quality-pills {
+ flex-direction: row;
+}
+
+html[dir="rtl"] .error-card {
+ flex-direction: row;
+}
+