diff --git a/src/i18n/catalogs/fa.ts b/src/i18n/catalogs/fa.ts index 8cb71cc..439713d 100644 --- a/src/i18n/catalogs/fa.ts +++ b/src/i18n/catalogs/fa.ts @@ -30,7 +30,7 @@ const fa = { resizeSidebar: 'تغییر اندازه نوار کناری', cancel: 'لغو', continue: 'ادامه', - dismissNotification: 'رد کردن اعلان', + dismissNotification: 'بستن اعلان', queueName: 'نام صف', addNewQueue: 'افزودن صف جدید', startQueue: 'شروع صف', @@ -91,8 +91,8 @@ const fa = { retrying: 'در حال تلاش مجدد', }, values: { - processing: 'در حال پردازش...', - muxing: 'ترکیب...', + processing: 'در حال پردازش…', + muxing: 'در حال ترکیب…', }, }, speedLimiter: { @@ -103,11 +103,11 @@ const fa = { description: 'در مورد انتقال‌های جدید و فعال aria2 و دانلودهای رسانه جدید yt-dlp اعمال می‌شود. محدودیت‌های خاص هر دانلود برای آن انتقال‌ها به قوت خود باقی می‌ماند.', quickPresets: 'پیش‌تنظیم‌های سریع', removePreset: 'حذف پیش‌تنظیم {{value}} {{unit}}', - customPresetIn: 'پیش‌تنظیم سفارشی در {{unit}}', + customPresetIn: 'پیش‌تنظیم سفارشی بر حسب {{unit}}', addQuickPreset: 'افزودن پیش‌تنظیم سریع', globalLimitSaved: 'محدودیت کلی در {{value}} {{unit}} ذخیره شد', globalLimitDisabled: 'محدودیت سرعت کلی غیرفعال شد', - saveFailed: 'محدودیت سرعت کلی ذخیره نشد: {{detail}}', + saveFailed: 'ذخیره محدودیت سرعت کلی ناموفق بود: {{detail}}', presetAlreadyExists: '{{value}} {{unit}} از قبل در پیش‌تنظیم‌های سریع وجود دارد', presetAdded: 'پیش‌تنظیم سریع {{value}} {{unit}} اضافه شد', presetRemoved: 'پیش‌تنظیم سریع {{value}} {{unit}} حذف شد', @@ -132,19 +132,19 @@ const fa = { exportButton: 'خروجی گزارش‌ها', logFiles: 'فایل‌های گزارش', localDiagnostics: 'تشخیص‌های محلی:', - diagnosticsDescription: 'جمع‌آوری تشخیص‌ها انتخابی، محدود و محلی است. اسرار رایج، درخواست‌های URL و مسیرهای پوشه خانگی هنگام نمایش و خروجی پنهان می‌شوند. هیچ چیز به طور خودکار بارگذاری نمی‌شود.', - noEntries: 'هنوز هیچ گزارش ذخیره‌شده‌ای در دسترس نیست.', + diagnosticsDescription: 'جمع‌آوری اطلاعات تشخیصی اختیاری، محدود و محلی است. اطلاعات حساسی مانند کلیدها، پارامترهای URL و مسیرهای پوشه شخصی هنگام نمایش و خروجی پنهان می‌شوند. هیچ داده‌ای به طور خودکار بارگذاری نمی‌شود.', + noEntries: 'هنوز هیچ گزارش ذخیره‌شده‌ای وجود ندارد.', disabledDescription: 'گزارش‌گیری تشخیصی خاموش است. گزارش‌های پشتیبانی موجود در صورت در دسترس بودن در اینجا ظاهر می‌شوند.', copy: 'کپی', copied: 'در کلیپ‌بورد کپی شد', copyFailed: 'کپی در کلیپ‌بورد ناموفق بود', exported: 'گزارش‌های پشتیبانی صادر شدند', - exportFailed: 'گزارش‌ها صادر نشدند: {{detail}}', + exportFailed: 'صدور گزارش‌ها ناموفق بود: {{detail}}', cleared: 'گزارش‌ها پاک شدند', - clearFailed: 'گزارش‌ها پاک نشدند: {{detail}}', + clearFailed: 'پاک کردن گزارش‌ها ناموفق بود: {{detail}}', enabled: 'گزارش‌گیری تشخیصی فعال شد', disabled: 'گزارش‌گیری تشخیصی غیرفعال شد', - updateFailed: 'گزارش‌گیری تشخیصی به‌روزرسانی نشد: {{detail}}', + updateFailed: 'به‌روزرسانی گزارش‌گیری تشخیصی ناموفق بود: {{detail}}', }, scheduler: { title: 'زمان‌بند', @@ -158,34 +158,34 @@ const fa = { timing: 'زمان‌بندی', startTime: 'زمان شروع', stopTime: 'زمان پایان', - timingDescription: 'اگر Firelink در زمان شروع در حالت خواب باشد، صف‌های انتخاب‌شده را هنگام بازگشت در ادامه آن روز شروع می‌کند، مگر اینکه زمان پایان گذشته باشد.', + timingDescription: 'اگر Firelink در زمان شروع در حالت خواب باشد، صف‌های انتخاب‌شده را هنگام بیدار شدن در ادامه آن روز شروع می‌کند، مگر اینکه زمان پایان گذشته باشد.', runEveryDay: 'اجرای هر روز', queuesToSchedule: 'صف‌ها برای زمان‌بندی', defaultQueue: 'صف پیش‌فرض', afterCompletion: 'پس از تکمیل', afterCompletionDescription: 'انتخاب کنید پس از پایان دانلودهای شروع‌شده توسط زمان‌بند، چه اتفاقی بیفتد.', - actionWarning: 'این اقدام می‌تواند سایر کارهای کامپیوتر را مختل کند. Firelink بلافاصله پس از اتمام صف زمان‌بندی‌شده، آن را فراخوانی می‌کند.', + actionWarning: 'این اقدام می‌تواند سایر کارهای کامپیوتر را مختل کند. Firelink بلافاصله پس از اتمام صف زمان‌بندی‌شده، آن را اجرا می‌کند.', systemPermissions: 'مجوزهای سیستم', - macPermissionDescription: 'خواب، راه‌اندازی مجدد و خاموش کردن به مجوز macOS Automation برای رویدادهای سیستم نیاز دارد.', - permissionGranted: 'مجوز اتوماسیون داده شد', - permissionChecking: 'در حال بررسی مجوز اتوماسیون...', - permissionMissing: 'مجوز اتوماسیون وجود ندارد', + macPermissionDescription: 'خواب، راه‌اندازی مجدد و خاموش کردن به مجوز macOS Automation برای System Events نیاز دارد.', + permissionGranted: 'مجوز اتوماسیون اعطا شد', + permissionChecking: 'در حال بررسی مجوز اتوماسیون…', + permissionMissing: 'مجوز اتوماسیون موجود نیست', revokePermission: 'لغو مجوز', - grantPermission: 'دادن مجوز', + grantPermission: 'اعطای مجوز', permissionAvailable: 'مجوز اتوماسیون در دسترس است.', - permissionMissingDetails: 'مجوز اتوماسیون وجود ندارد. Firelink را در زیر Automation برای System Events در System Settings فعال کنید.', - revokePermissionDetails: 'macOS اجازه نمی‌دهد Firelink مجوز اتوماسیون را مستقیماً لغو کند. دسترسی System Events را در System Settings لغو کنید و سپس به Firelink برگردید.', - requestingPermission: 'در حال درخواست مجوز اتوماسیون...', - enablePermissionDetails: 'Firelink را در زیر Automation برای System Events در System Settings فعال کنید و سپس به Firelink برگردید.', + permissionMissingDetails: 'مجوز اتوماسیون موجود نیست. Firelink را در بخش System Settings > Privacy & Security > Automation برای System Events فعال کنید.', + revokePermissionDetails: 'سیستم‌عامل macOS اجازه نمی‌دهد Firelink مجوز اتوماسیون را مستقیماً لغو کند. دسترسی System Events را در System Settings لغو کنید و سپس به Firelink بازگردید.', + requestingPermission: 'در حال درخواست مجوز اتوماسیون…', + enablePermissionDetails: 'Firelink را در بخش System Settings > Privacy & Security > Automation برای System Events فعال کنید و سپس به Firelink بازگردید.', systemActions: 'اقدامات سیستم', - windowsActionsDescription: 'خواب، راه‌اندازی مجدد و خاموش کردن از امتیازات سیستم Windows استفاده می‌کنند. Firelink هنگام اجرا هر اقدام رد شده‌ای را گزارش می‌دهد؛ هیچ مجوز دائمی از قبل دریافت نمی‌شود.', - linuxActionsDescription: 'خواب، راه‌اندازی مجدد و خاموش کردن از دسکتاپ و سیاست سیستم Linux شما استفاده می‌کنند. Firelink هنگام اجرا هر اقدام رد شده‌ای را گزارش می‌دهد؛ هیچ مجوز دائمی از قبل دریافت نمی‌شود.', + windowsActionsDescription: 'خواب، راه‌اندازی مجدد و خاموش کردن از دسترسی‌های سیستم Windows استفاده می‌کنند. Firelink هنگام اجرا هر اقدام رد شده‌ای را گزارش می‌دهد؛ هیچ مجوز دائمی از قبل درخواست نمی‌شود.', + linuxActionsDescription: 'خواب، راه‌اندازی مجدد و خاموش کردن از دسکتاپ و سیاست‌های سیستم Linux استفاده می‌کنند. Firelink هنگام اجرا هر اقدام رد شده‌ای را گزارش می‌دهد؛ هیچ مجوز دائمی از قبل درخواست نمی‌شود.', validationDay: 'حداقل یک روز برای زمان‌بند انتخاب کنید', validationQueue: 'حداقل یک صف برای زمان‌بند انتخاب کنید', validationStopTime: 'زمان پایان باید بعد از زمان شروع باشد', saved: 'تنظیمات زمان‌بند ذخیره شد', - trackingOne: 'در حال ردیابی ۱ دانلود زمان‌بندی‌شده', - trackingMany: 'در حال ردیابی {{count}} دانلود زمان‌بندی‌شده', + trackingOne: 'در حال پیگیری ۱ دانلود زمان‌بندی‌شده', + trackingMany: 'در حال پیگیری {{count}} دانلود زمان‌بندی‌شده', noStartableDownloads: 'هیچ دانلودی در صف‌های انتخاب‌شده قابل شروع نیست', pausedOne: '۱ دانلود فعال متوقف شد', pausedMany: '{{count}} دانلود فعال متوقف شد', @@ -210,7 +210,7 @@ const fa = { progress: 'پیشرفت', size: 'اندازه', speed: 'سرعت', - eta: 'زمان تخمینی', + eta: 'زمان باقیمانده', connections: 'اتصالات', speedCap: 'سقف سرعت', category: 'دسته', @@ -218,34 +218,34 @@ const fa = { dateAdded: 'تاریخ افزودن', destination: 'مقصد', lastError: 'آخرین خطا', - saved: ' (ذخیره شده)', + saved: ' (ذخیره‌شده)', defaultValue: ' (پیش‌فرض)', - savedTooltip: 'برای این دانلود ذخیره شد؛ تغییرات تنظیمات در دانلودهای جدید اعمال می‌شود.', + savedTooltip: 'برای این دانلود ذخیره شد؛ تغییرات تنظیمات روی دانلودهای جدید اعمال می‌شود.', defaultTooltip: 'استفاده از پیش‌فرض کنونی برای دانلودهای جدید.', - identityReadOnly: 'هویت فایل فقط-خواندنی است. تنظیمات انتقال برای دانلود مجدد ذخیره می‌شود.', + identityReadOnly: 'هویت فایل فقط‌خواندنی است. تنظیمات انتقال برای دانلود مجدد ذخیره می‌شوند.', transferSettings: 'تنظیمات انتقال را می‌توان پس از توقف تغییر داد. انتقال‌های کنونی گزینه‌های فعلی خود را حفظ می‌کنند.', download: 'دانلود', url: 'URL', fileName: 'نام فایل', saveLocation: 'محل ذخیره', select: 'انتخاب', - perFile: 'در هر فایل', + perFile: 'برای هر فایل', useCurrentDefault: 'استفاده از پیش‌فرض کنونی ({{count}})', - savedPerDownload: 'برای هر دانلود ذخیره شد. پیش‌فرض تنظیمات در دانلودهای جدید اعمال می‌شود.', + savedPerDownload: 'برای هر دانلود ذخیره شد. پیش‌فرض تنظیمات روی دانلودهای جدید اعمال می‌شود.', limit: 'محدودیت', siteLogin: 'ورود به سایت', siteLoginRedownload: 'ورود به سایت برای دانلود مجدد', - matchingSiteLogin: 'ورود به سایت منطبق', + matchingSiteLogin: 'اطلاعات ورود منطبق با سایت', customCredentials: 'اعتبارنامه‌های سفارشی', noLogin: 'بدون ورود', - useSavedLogin: 'در صورت وجود از ورود ذخیره‌شده استفاده خواهد کرد.', + useSavedLogin: 'در صورت وجود از اطلاعات ورود ذخیره‌شده استفاده خواهد شد.', advancedTransfer: 'انتقال پیشرفته', advancedTransferRedownload: 'انتقال پیشرفته برای دانلود مجدد', checksum: 'چک‌سام', verify: 'تأیید', algorithm: 'الگوریتم', digest: 'هش', - expectedDigest: 'هش موردانتظار', + expectedDigest: 'هش مورد انتظار', cookies: 'کوکی‌ها', headers: 'هدرها', mirrors: 'آینه‌ها', @@ -261,35 +261,35 @@ const fa = { stores: { portable: 'پوشه داده‌های قابل‌حمل Firelink', windows: 'مدیر اعتبارنامه Windows', - linux: 'مخزن اعتبارنامه Linux شما', - macos: 'Keychain macOS', - system: "مخزن اعتبارنامه‌های این سیستم", - siteCredentials: "مخزن اعتبارنامه‌های سیستم", + linux: 'مخزن اعتبارنامه‌های Linux شما', + macos: 'Keychain در macOS', + system: 'مخزن اعتبارنامه‌های این سیستم', + siteCredentials: 'مخزن اعتبارنامه‌های سیستم', }, grantLabelPortable: 'ادامه', grantLabelMacos: 'اعطای دسترسی', grantLabelDefault: 'فعال‌سازی ذخیره‌سازی امن', - description: 'Firelink از افزونه مرورگر برای ثبت دانلودها استفاده می‌کند. برای جفت ماندن افزونه پس از راه‌اندازی مجدد، Firelink توکن جفت‌سازی خود را در {{pairingStore}} ذخیره می‌کند. اعتبارنامه‌های سایت دلخواه در {{siteCredentialStore}} ذخیره می‌شوند.', - portableExplanation: 'توکن جفت‌سازی با این پوشه قابل حمل است. اعتبارنامه‌های سایت در مخزن اعتبارنامه‌های سیستم باقی می‌مانند؛ ممکن است پس از اعطای دسترسی، یک اعلان سیستم ظاهر شود.', - macosExplanation: 'macOS ممکن است پس از اعطای دسترسی، یک اعلان Keychain را نشان دهد.', - defaultExplanation: 'این کار معمولاً بی‌صدا انجام می‌شود. اگر سرویس اعتبارنامه در دسترس نباشد، Firelink در اینجا خطا را نشان می‌دهد و افزونه فقط برای این جلسه جفت باقی می‌ماند.', + description: 'Firelink از افزونه مرورگر برای ثبت دانلودها استفاده می‌کند. برای جفت ماندن افزونه پس از راه‌اندازی مجدد، Firelink توکن جفت‌سازی خود را در {{pairingStore}} ذخیره می‌کند. اعتبارنامه‌های اختیاری سایت در {{siteCredentialStore}} ذخیره می‌شوند.', + portableExplanation: 'توکن جفت‌سازی همراه با این پوشه قابل حمل است. اعتبارنامه‌های سایت در مخزن اعتبارنامه‌های سیستم باقی می‌مانند؛ ممکن است پس از اعطای دسترسی، یک پیغام سیستم ظاهر شود.', + macosExplanation: 'macOS ممکن است پس از اعطای دسترسی، یک پیغام Keychain را نشان دهد.', + defaultExplanation: 'این کار معمولاً بدون پیغام انجام می‌شود. اگر سرویس اعتبارنامه در دسترس نباشد، Firelink خطا را در اینجا نشان می‌دهد و افزونه فقط برای این جلسه جفت باقی می‌ماند.', note: 'توجه:', - portableNote: 'حالت قابل حمل فقط توکن جفت‌سازی را در این پوشه ذخیره می‌کند. رمزهای عبور سایت یا اعتبارنامه‌های مرورگر را کپی نمی‌کند.', - defaultNote: 'Firelink فقط ورودی اعتبارنامه اختصاصی خود را می‌نویسد. نمی‌تواند به سایر رمزهای عبور ذخیره‌شده یا موارد اعتبارنامه در سیستم شما دسترسی پیدا کند.', + portableNote: 'حالت قابل‌حمل فقط توکن جفت‌سازی را در این پوشه ذخیره می‌کند. این حالت رمزهای عبور سایت یا اعتبارنامه‌های مرورگر را کپی نمی‌کند.', + defaultNote: 'Firelink فقط ورودی اعتبارنامه اختصاصی خود را می‌نویسد و به سایر رمزهای عبور ذخیره‌شده در سیستم شما دسترسی ندارد.', hint: 'راهنمایی:', - portableHint: 'توکن جفت‌سازی قابل حمل از قبل با این پوشه ذخیره شده است؛ می‌توانید آن را در اینجا فعال کنید یا بعداً را انتخاب کنید.', + portableHint: 'توکن جفت‌سازی قابل‌حمل از قبل در این پوشه ذخیره شده است؛ می‌توانید آن را در اینجا فعال کنید یا بعداً را انتخاب کنید.', defaultHint: 'اگر بعداً را انتخاب کنید، افزونه فقط برای این جلسه کار خواهد کرد.', enableFromSettings: 'در هر زمان می‌توانید ذخیره‌سازی را از تنظیمات > یکپارچه‌سازی فعال کنید.', later: 'بعداً', - enabling: 'در حال فعال‌سازی...', - timeout: 'درخواست ذخیره‌سازی اعتبارنامه مهلت زمانی‌اش تمام شد. می‌توانید بعداً را انتخاب کنید و دوباره امتحان کنید.', + enabling: 'در حال فعال‌سازی…', + timeout: 'مهلت درخواست ذخیره‌سازی اعتبارنامه به پایان رسید. می‌توانید بعداً را انتخاب کرده و دوباره امتحان کنید.', unavailable: '{{store}} در دسترس نیست.', - accessRequired: 'پیش از ایجاد دوباره توکن جفت‌سازی، به مخزن اعتبارنامه‌ها دسترسی بدهید.', + accessRequired: 'پیش از ایجاد مجدد توکن جفت‌سازی، دسترسی به مخزن اعتبارنامه‌ها را اعطا کنید.', storeUnavailable: 'دسترسی به مخزن اعتبارنامه در دسترس نیست.', }, app: { loading: 'در حال بارگذاری…', - settingsSaveFailed: 'تنظیمات ذخیره نشدند. مجوزهای ذخیره‌سازی را بررسی کنید و دوباره امتحان کنید.', + settingsSaveFailed: 'تنظیمات ذخیره نشدند. دسترسی‌های ذخیره‌سازی را بررسی کرده و دوباره امتحان کنید.', systemActionCountdown: '{{action}} در ۱۰ ثانیه.', systemActionCancelled: 'اقدام سیستم لغو شد زیرا دانلود دیگری فعال یا در صف است.', systemActionFailed: 'اقدام سیستم زمان‌بندی‌شده ناموفق بود: {{detail}}', @@ -303,15 +303,15 @@ const fa = { copyToken: 'کپی توکن', integrations: 'یکپارچه‌سازی', copyTokenFailed: 'کپی توکن جفت‌سازی ناموفق بود: {{detail}}', - credentialPersistenceFailed: 'تداوم اعتبارنامه امن در دسترس نیست. جفت‌سازی مرورگر فقط برای این جلسه کار می‌کند: {{detail}}', + credentialPersistenceFailed: 'ذخیره‌سازی امن اعتبارنامه در دسترس نیست. جفت‌سازی مرورگر فقط برای این جلسه کار می‌کند: {{detail}}', resumeDownloadsFailed: 'ادامه دانلودهای ذخیره‌شده ناموفق بود: {{detail}}', - updateAvailable: 'Firelink {{version}} در دسترس است.', - viewRelease: 'مشاهده انتشار', + updateAvailable: 'نسخه جدید Firelink {{version}} در دسترس است.', + viewRelease: 'مشاهده تغییرات نسخه', sleepPreventionFailed: 'جلوگیری از خواب سیستم به‌روزرسانی نشد: {{detail}}', schedulerNoQueues: 'زمان‌بند هیچ صف معتبری انتخاب نکرده است. تنظیمات زمان‌بندی را به‌روزرسانی کنید.', schedulerPauseOneFailed: 'زمان‌بند نتوانست ۱ دانلود را متوقف کند.', schedulerPauseManyFailed: 'زمان‌بند نتوانست {{count}} دانلود را متوقف کند.', - scheduledIncomplete: 'همه دانلودهای زمان‌بندی‌شده تکمیل نشدند. اقدام سیستم پس از صف رد شد.', + scheduledIncomplete: 'همه دانلودهای زمان‌بندی‌شده تکمیل نشدند. اقدام سیستم پس از اتمام صف رد شد.', scheduledActionSkippedActive: 'اقدام سیستم زمان‌بندی‌شده رد شد زیرا دانلود دیگری فعال یا در صف است.', notificationsDisabled: 'اعلان‌های سیستم برای Firelink غیرفعال شده‌اند.', notificationsFailed: 'پیکربندی اعلان‌ها ناموفق بود: {{detail}}', @@ -335,13 +335,13 @@ const fa = { size: 'اندازه', status: 'وضعیت', speed: 'سرعت', - eta: 'زمان تخمینی', + eta: 'زمان باقیمانده', dateAdded: 'تاریخ افزودن', }, columnOptions: { open: 'گزینه‌های ستون {{column}}', dragToReorder: 'برای جابه‌جایی ستون‌ها بکشید', - alignContent: 'جایگاه محتوا', + alignContent: 'تراز محتوا', left: 'چپ', center: 'وسط', right: 'راست', @@ -351,15 +351,15 @@ const fa = { resumeAll: 'ادامه همه', pauseAll: 'توقف همه', queueEmpty: 'صف خالی است', - noCompletedDownloads: 'بدون دانلود تکمیل‌شده', - noDownloads: 'بدون دانلود', - queueEmptyDescription: 'دانلودها را از منوی یک مورد یا پنجره افزودن به این صف اضافه کنید.', + noCompletedDownloads: 'هیچ دانلود تکمیل‌شده‌ای وجود ندارد', + noDownloads: 'هیچ دانلودی وجود ندارد', + queueEmptyDescription: 'دانلودها را از منوی آیتم‌ها یا پنجره افزودن به این صف اضافه کنید.', completedDescription: 'دانلودهای تکمیل‌شده در اینجا ظاهر می‌شوند.', - clickToAdd: 'برای افزودن دانلودها، روی دکمه', + clickToAdd: 'برای افزودن دانلودها، روی', addButtonOr: 'یا', toAddDownloads: 'کلیک کنید', - nonResumableOne: '۱ دانلود از ادامه پشتیبانی نمی‌کند. اگر آن را متوقف کنید، بعداً باید دوباره شروع کنید. آیا مطمئن هستید که می‌خواهید متوقف کنید؟', - nonResumableMany: '{{count}} دانلود از ادامه پشتیبانی نمی‌کنند. اگر آنها را متوقف کنید، بعداً باید دوباره شروع کنید. آیا مطمئن هستید که می‌خواهید متوقف کنید؟', + nonResumableOne: '۱ دانلود از ادامه‌دادن پشتیبانی نمی‌کند. اگر آن را متوقف کنید، بعداً باید از ابتدا شروع کنید. آیا از توقف آن مطمئن هستید؟', + nonResumableMany: '{{count}} دانلود از ادامه‌دادن پشتیبانی نمی‌کنند. اگر آن‌ها را متوقف کنید، بعداً باید از ابتدا شروع کنید. آیا از توقف آن‌ها مطمئن هستید؟', interactionError: '{{message}}: {{detail}}', openFileFailed: 'باز کردن فایل دانلودشده ناموفق بود', revealFileFailed: 'نمایش فایل دانلودشده در پوشه ناموفق بود', @@ -385,16 +385,16 @@ const fa = { copyFilePath: 'کپی مسیر فایل', properties: 'ویژگی‌ها', backendRejectedStart: 'درخواست شروع/ادامه توسط موتور دانلود رد شد.', - transferActive: 'نمی‌توانید ویژگی‌ها را هنگام فعال بودن انتقال تغییر دهید. ابتدا آن را متوقف کنید.', + transferActive: 'نمی‌توانید ویژگی‌ها را هنگام فعال بودن دانلود تغییر دهید. ابتدا آن را متوقف کنید.', redownloadNotFound: 'دانلود مجدد ناموفق: دانلود پیدا نشد.', - redownloadActive: 'نمی‌توانید یک دانلود {{status}} را دوباره دانلود کنید. ابتدا آن را متوقف کنید یا منتظر بمانید تا تمام شود.', + redownloadActive: 'نمی‌توانید یک دانلود با وضعیت {{status}} را دوباره دانلود کنید. ابتدا آن را متوقف کنید یا منتظر بمانید تا تمام شود.', originalUrlMissing: 'دانلود مجدد ناموفق: URL اصلی وجود ندارد.', pauseBeforeMove: 'قبل از انتقال {{file}} به صف دیگر، آن را متوقف کنید.', }, addDownloads: { unknownSize: 'اندازه نامشخص', unknown: 'نامشخص', - discardSetup: 'حذف این راه‌اندازی دانلود؟', + discardSetup: 'صرف‌نظر از این پیکربندی دانلود؟', speedInvalid: 'محدودیت سرعت باید بیشتر از صفر باشد', duplicateResolveFailed: 'دانلودهای تکراری برطرف نشدند: {{detail}}', addedWithFailures: '{{added}} اضافه شد، {{failed}} ناموفق بود. {{detail}}', @@ -406,24 +406,24 @@ const fa = { destinationConflict: 'یک دانلود انتخاب‌شده دیگر از این مقصد استفاده می‌کند', existingDownloadDestination: 'دانلود Firelink موجود از این مقصد استفاده می‌کند', matchingDownloadFilename: 'یک دانلود ناتمام از قبل همین نام فایل را دارد', - fileExistsOnDisk: 'فایل در دیسک وجود دارد؛ برای جلوگیری از حذف داده‌های نامرتبط، تغییر نام دهید یا رد شوید', + fileExistsOnDisk: 'فایل روی دیسک وجود دارد؛ برای جلوگیری از حذف داده‌های نامرتبط، نام آن را تغییر دهید یا رد شوید', backendRejectedStart: 'شروع دانلود توسط موتور دانلود رد شد.', playlistNoEntries: 'لیست پخش شامل هیچ ورودی قابل دانلودی نیست', - invalidMediaMetadata: 'متادیتا رسانه نامعتبر است یا هیچ فرمتی یافت نشد', + invalidMediaMetadata: 'متادیتای رسانه نامعتبر است یا هیچ فرمتی یافت نشد', noAvailableName: 'یک نام در دسترس برای {{file}} پیدا نشد.', pauseBeforeReplace: 'قبل از جایگزینی {{file}}، آن را متوقف کنید.', cannotReplace: 'نمی‌توان {{file}} را جایگزین کرد: فایل متعلق به یک دانلود Firelink نیست.', downloadLinks: 'پیوندهای دانلود', - pastePlaceholder: '\u2066URL\u2069های \u2066HTTP\u2069، \u2066HTTPS\u2069، \u2066FTP\u2069 یا \u2066SFTP\u2069 را در اینجا جای‌گذاری کنید...\n\nبرای دانلود رسانه، پیوندهایی از \u2066YouTube\u2069، \u2066X\u2069، \u2066TikTok\u2069، \u2066Instagram\u2069، \u2066Reddit\u2069 و غیره جای‌گذاری کنید.', - playlistSummary: 'لیست پخش "{{title}}": {{loaded}}{{total}} ورودی بارگیری شد{{truncated}}{{skipped}}', - safeEntryLimit: ' (به حد نصاب ایمن ورودی‌ها رسیدیم)', - selectedSummary: '{{ready}} انتخاب‌شده آماده، {{fallback}} بازگشتی، {{mediaRetry}} تلاش مجدد رسانه، {{blocked}} مسدودشده', + pastePlaceholder: '\u2066URL\u2069های \u2066HTTP\u2069، \u2066HTTPS\u2069، \u2066FTP\u2069 یا \u2066SFTP\u2069 را در اینجا جای‌گذاری کنید…\n\nبرای دانلود رسانه، پیوندهایی از \u2066YouTube\u2069، \u2066X\u2069، \u2066TikTok\u2069، \u2066Instagram\u2069، \u2066Reddit\u2069 و غیره جای‌گذاری کنید.', + playlistSummary: 'لیست پخش "{{title}}": {{loaded}} از {{total}} ورودی بارگیری شد{{truncated}}{{skipped}}', + safeEntryLimit: ' (به حد مجاز ایمن ورودی‌ها رسیدیم)', + selectedSummary: '{{ready}} انتخاب‌شده آماده، {{fallback}} اطلاعات جایگزین، {{mediaRetry}} تلاش مجدد رسانه، {{blocked}} مسدودشده', clearSelection: 'پاک کردن انتخاب', selectAll: 'انتخاب همه', refreshMetadata: 'تازه‌سازی متادیتا', files: 'فایل‌ها', required: 'الزامی', - free: 'آزاد', + free: 'فضای آزاد', preview: 'پیش‌نمایش', file: 'فایل', size: 'اندازه', @@ -431,25 +431,25 @@ const fa = { downloadPreview: 'پیش‌نمایش دانلود', noLinks: 'هنوز هیچ پیوندی اضافه نشده است.', selectItem: 'انتخاب {{file}}', - fetchingPlaylist: 'در حال دریافت لیست پخش...', - fetching: 'در حال دریافت...', + fetchingPlaylist: 'در حال دریافت لیست پخش…', + fetching: 'در حال دریافت…', unsafeUrl: 'URL ناامن', - playlistFailed: 'لیست پخش ناموفق بود', - metadataFailed: 'متادیتا ناموفق بود', - fallback: 'بازگشتی', + playlistFailed: 'دریافت لیست پخش ناموفق بود', + metadataFailed: 'دریافت متادیتا ناموفق بود', + fallback: 'گزینه جایگزین', invalid: 'نامعتبر', ready: 'آماده', mediaFormat: 'فرمت رسانه', playlistItem: 'مورد لیست پخش {{index}}', - fetchingMediaStreams: 'در حال دریافت جریان‌های رسانه...', + fetchingMediaStreams: 'در حال دریافت جریان‌های رسانه…', availableStreams: 'جریان‌های موجود', availableMediaStreams: 'جریان‌های رسانه موجود', metadataUnavailable: 'متادیتا در دسترس نیست. پیش از افزودن این رسانه، متادیتا را تازه‌سازی کنید.', saveLocation: 'محل ذخیره', - browse: 'انتخاب', - categoryFolders: 'فایل‌ها در پوشه‌های دسته سازماندهی خواهند شد.', - sharedFolder: 'تمام دانلودهای انتخاب‌شده از این پوشه استفاده خواهند کرد.', - dedicatedFolder: 'ذخیره در پوشه‌ای جدید', + browse: 'انتخاب…', + categoryFolders: 'فایل‌ها در پوشه‌های دسته‌بندی سازمان‌دهی خواهند شد.', + sharedFolder: 'همه دانلودهای انتخاب‌شده از این پوشه استفاده خواهند کرد.', + dedicatedFolder: 'ذخیره در پوشه جدید', dedicatedFolderName: 'نام پوشه', dedicatedFolderDescription: 'این پوشه را داخل هر پوشه دسته‌بندی خودکار ایجاد می‌کند.', dedicatedFolderManualDescription: 'این پوشه را داخل محل ذخیره انتخاب‌شده ایجاد می‌کند.', @@ -459,7 +459,7 @@ const fa = { connectionsPerFile: 'اتصالات در هر فایل', connectionsPerFileAria: 'اتصالات در هر فایل', limitSpeedPerFile: 'محدودیت سرعت در هر فایل', - speedLimitPerFileAria: 'محدودیت سرعت برای هر فایل', + speedLimitPerFileAria: 'محدودیت سرعت در هر فایل', authorization: 'احراز هویت', useAuthorization: 'استفاده از احراز هویت', username: 'نام کاربری', @@ -481,19 +481,19 @@ const fa = { correctInvalidOne: 'قبل از ادامه، {{count}} URL نامعتبر را اصلاح یا حذف کنید.', correctInvalidFew: 'قبل از ادامه، {{count}} URL نامعتبر را اصلاح یا حذف کنید.', correctInvalidMany: 'قبل از ادامه، {{count}} URL نامعتبر را اصلاح یا حذف کنید.', - waitingForMetadataOne: 'در انتظار متادیتای {{count}} دانلود.', - waitingForMetadataFew: 'در انتظار متادیتای {{count}} دانلود.', - waitingForMetadataMany: 'در انتظار متادیتای {{count}} دانلود.', + waitingForMetadataOne: 'در انتظار متادیتای {{count}} دانلود…', + waitingForMetadataFew: 'در انتظار متادیتای {{count}} دانلود…', + waitingForMetadataMany: 'در انتظار متادیتای {{count}} دانلود…', removeUnsafeOne: 'قبل از ادامه، {{count}} URL ناامن را حذف کنید.', removeUnsafeFew: 'قبل از ادامه، {{count}} URL ناامن را حذف کنید.', removeUnsafeMany: 'قبل از ادامه، {{count}} URL ناامن را حذف کنید.', mediaMetadataUnavailableSummaryOne: 'متادیتای رسانه برای {{count}} مورد در دسترس نیست. پیش از افزودن، متادیتا را تازه‌سازی کنید.', mediaMetadataUnavailableSummaryFew: 'متادیتای رسانه برای {{count}} مورد در دسترس نیست. پیش از افزودن، متادیتا را تازه‌سازی کنید.', mediaMetadataUnavailableSummaryMany: 'متادیتای رسانه برای {{count}} مورد در دسترس نیست. پیش از افزودن، متادیتا را تازه‌سازی کنید.', - metadataUnavailableFallback: 'متادیتا در دسترس نیست. دانلودها همچنان می‌توانند با استفاده از جزئیات بازگشتی اضافه شوند.', - fallbackReadyOne: '{{ready}} دانلود آماده؛ برای {{failed}} از نام فایل بازگشتی و اندازه نامشخص استفاده خواهد شد.', - fallbackReadyFew: '{{ready}} دانلود آماده؛ برای {{failed}} از نام فایل بازگشتی و اندازه نامشخص استفاده خواهد شد.', - fallbackReadyMany: '{{ready}} دانلود آماده؛ برای {{failed}} از نام فایل بازگشتی و اندازه نامشخص استفاده خواهد شد.', + metadataUnavailableFallback: 'متادیتا در دسترس نیست. دانلودها همچنان می‌توانند با اطلاعات جایگزین اضافه شوند.', + fallbackReadyOne: '{{ready}} دانلود آماده؛ برای {{failed}} از نام فایل جایگزین و اندازه نامشخص استفاده خواهد شد.', + fallbackReadyFew: '{{ready}} دانلود آماده؛ برای {{failed}} از نام فایل جایگزین و اندازه نامشخص استفاده خواهد شد.', + fallbackReadyMany: '{{ready}} دانلود آماده؛ برای {{failed}} از نام فایل جایگزین و اندازه نامشخص استفاده خواهد شد.', readyToAddOne: 'آماده برای افزودن {{count}} دانلود.', readyToAddFew: 'آماده برای افزودن {{count}} دانلود.', readyToAddMany: 'آماده برای افزودن {{count}} دانلود.', @@ -501,7 +501,7 @@ const fa = { settings: { tabs: { downloads: 'دانلودها', - lookAndFeel: 'ظاهر', + lookAndFeel: 'ظاهر', network: 'شبکه', locations: 'مکان‌ها', siteLogins: 'ورود به سایت‌ها', @@ -512,24 +512,24 @@ const fa = { }, common: { thisOs: 'این سیستم‌عامل', - checking: 'در حال بررسی...', + checking: 'در حال بررسی…', ready: 'آماده', errorMissing: 'خطا / یافت نشد', hideTechnicalDetails: 'پنهان کردن جزئیات فنی', showTechnicalDetails: 'نمایش جزئیات فنی', - binary: 'باینری', + binary: 'فایل باینری', expected: 'مقدار مورد انتظار', error: 'خطا', tip: 'نکته', stderr: 'stderr', - daemonProcessAlive: 'فرآیند دیمون زنده است', - rpcReady: 'RPC آماده است', + daemonProcessAlive: 'فرآیند پس‌زمینه (Daemon) فعال است', + rpcReady: 'سرویس RPC آماده است', rpcPort: 'پورت RPC', - daemonStderr: 'دیمون stderr', - packaging: 'بسته‌بندی: PyInstaller onedir (نیاز به _internal دارد)', + daemonStderr: 'خروجی stderr سرویس پس‌زمینه', + packaging: 'بسته‌بندی: PyInstaller onedir (نیاز به پوشه _internal)', internalDirectoryFound: 'پوشه _internal پیدا شد', - pythonRuntimeFound: 'زمان‌اجرای Python پیدا شد', - externalOpenFailed: 'باز نشد {{label}}: {{detail}}', + pythonRuntimeFound: 'محیط اجرای Python پیدا شد', + externalOpenFailed: 'باز کردن {{label}} ناموفق بود: {{detail}}', updateUnexpectedResponse: 'بررسی به‌روزرسانی با یک پاسخ غیرمنتظره مواجه شد.', updateUntrustedReleaseUrl: 'بررسی به‌روزرسانی با یک URL انتشار نامعتبر مواجه شد.', updateFailed: 'بررسی به‌روزرسانی ناموفق بود: {{detail}}', @@ -611,7 +611,7 @@ const fa = { customProxyDescription: 'دانلودها از نقطه پایانی پروکسی HTTP پیکربندی‌شده برای متادیتا و موتورهای دانلود استفاده می‌کنند.', invalidCustomProxy: 'برای فعال کردن پروکسی سفارشی یک میزبان و پورت پروکسی HTTP معتبر وارد کنید.', incompleteCustomProxy: 'برای فعال کردن پروکسی سفارشی یک میزبان و پورت پروکسی وارد کنید.', - checkingSystemProxy: 'در حال بررسی پیکربندی پروکسی سیستم...', + checkingSystemProxy: 'در حال بررسی پیکربندی پروکسی سیستم…', detectedSystemProxy: 'یک پروکسی سیستم شناسایی شد. دانلودهای فایل عادی به یک نقطه پایانی HTTP یا HTTPS نیاز دارند؛ دانلودهای رسانه می‌توانند از SOCKS استفاده کنند.', noSystemProxy: 'هیچ پروکسی سیستم قابل استفاده‌ای شناسایی نشد. دانلودها از هیچ پروکسی‌ای استفاده نخواهند کرد.', systemProxyReadFailed: 'پیکربندی پروکسی سیستم قابل خواندن نیست. بدون پروکسی را انتخاب کنید یا هنگامی که در دسترس است دوباره امتحان کنید.', @@ -632,7 +632,7 @@ const fa = { locations: { baseDownloadFolder: 'پوشه اصلی دانلود', baseDownloadFolderDescription: 'پوشه‌های دسته خودکار در داخل این پوشه ایجاد می‌شوند.', - browse: 'انتخاب', + browse: 'انتخاب…', baseFolderCreateFailed: 'پوشه اصلی ذخیره شد، اما ایجاد پوشه‌های دسته ناموفق بود: {{detail}}', baseFolderUpdated: 'پوشه اصلی دانلود به‌روزرسانی شد', askWhereToSave: 'هنگام افزودن دانلود بپرس کجا ذخیره شود', @@ -663,7 +663,7 @@ const fa = { password: 'رمز عبور:', usernamePlaceholder: 'نام کاربری', passwordPlaceholder: 'رمز عبور', - saving: 'در حال ذخیره...', + saving: 'در حال ذخیره…', addLogin: 'افزودن ورود', urlPatternRequired: 'الگوی URL الزامی است.', urlPatternWhitespace: 'الگوی URL نمی‌تواند شامل فاصله باشد.', @@ -700,7 +700,7 @@ const fa = { portablePairingAvailable: 'جفت‌سازی قابل‌حمل در دسترس است', credentialStorageNeeded: 'نیاز به ذخیره‌سازی اعتبارنامه', portableAvailableDescription: 'توکن جفت‌سازی شما با این پوشه قابل‌حمل Firelink ذخیره می‌شود و پس از راه‌اندازی مجدد باقی می‌ماند. برای مشاهده هشدار ذخیره‌سازی قابل‌حمل آن را اینجا فعال کنید.', - credentialStorageDescription: "Firelink به دسترسی به مخزن اعتبارنامه‌های این سیستم نیاز دارد تا توکن جفت‌سازی شما را پس از راه‌اندازی مجدد به‌طور امن حفظ کند. در حال حاضر، افزونه شما فقط برای این جلسه متصل باقی می‌ماند.", + credentialStorageDescription: 'Firelink به دسترسی به مخزن اعتبارنامه‌های این سیستم نیاز دارد تا توکن جفت‌سازی شما را پس از راه‌اندازی مجدد به‌طور امن حفظ کند. در حال حاضر، افزونه شما فقط برای این جلسه متصل باقی می‌ماند.', reviewPortablePairing: 'بررسی جفت‌سازی قابل‌حمل', grantCredentialAccess: 'اعطای دسترسی اعتبارنامه', copyToken: 'کپی توکن', @@ -714,7 +714,7 @@ const fa = { firefoxAddons: 'افزونه‌های Firefox', chromiumZip: 'Chromium ZIP', pasteConnect: 'جای‌گذاری و اتصال', - pasteConnectDescription: "روی آیکون Firelink در نوار ابزار مرورگر خود کلیک کنید و توکن کپی‌شده را جای‌گذاری کنید.", + pasteConnectDescription: 'روی آیکون Firelink در نوار ابزار مرورگر خود کلیک کنید و توکن کپی‌شده را جای‌گذاری کنید.', extensionServerStatus: 'وضعیت سرور افزونه:', listening: '● در حال گوش دادن به 127.0.0.1:{{port}}', unavailable: '● سرور در دسترس نیست', @@ -732,7 +732,7 @@ const fa = { updates: 'به‌روزرسانی‌ها', checkForUpdates: 'بررسی به‌روزرسانی‌ها', updateDescription: 'Firelink انتشار‌های GitHub را برای نسخه‌های جدید بررسی می‌کند.', - checking: 'در حال بررسی...', + checking: 'در حال بررسی…', checkNow: 'اکنون بررسی کن', automaticUpdates: 'بررسی خودکار برای به‌روزرسانی‌ها', createdBy: 'ایجاد شده توسط NimBold', diff --git a/src/i18n/catalogs/he.ts b/src/i18n/catalogs/he.ts index 128b6cf..e02a441 100644 --- a/src/i18n/catalogs/he.ts +++ b/src/i18n/catalogs/he.ts @@ -2,15 +2,15 @@ const he = { navigation: { library: 'ספרייה', filters: { - all: 'הכל', - active: 'פעיל', - completed: 'הושלם', - unfinished: 'לא הושלם', + all: 'הכול', + active: 'פעילות', + completed: 'הושלמו', + unfinished: 'לא הושלמו', }, categories: { musics: 'מוזיקה', movies: 'סרטים', - compressed: 'דחוס', + compressed: 'קבצים דחוסים', documents: 'מסמכים', pictures: 'תמונות', applications: 'יישומים', @@ -27,13 +27,13 @@ const he = { actions: { hideSidebar: 'הסתרת סרגל צד', showSidebar: 'הצגת סרגל צד', - resizeSidebar: 'שינוי גודל סרגל צד', + resizeSidebar: 'שינוי גודל סרגל הצד', cancel: 'ביטול', continue: 'המשך', dismissNotification: 'סגירת התראה', queueName: 'שם התור', addNewQueue: 'הוספת תור חדש', - startQueue: 'התחלת תור', + startQueue: 'הפעלת תור', pauseQueue: 'השהיית תור', renameQueue: 'שינוי שם תור', deleteQueue: 'מחיקת תור', @@ -46,15 +46,15 @@ const he = { }, duplicateDownloads: { title: 'זוהו הורדות כפולות', - description: 'חלק מההורדות שאתה מוסיף כבר קיימות בתור או בדיסק. אנא בחר כיצד לפתור התנגשויות אלו.', + description: 'חלק מההורדות שברצונך להוסיף כבר קיימות בתור או בדיסק. נא לבחור כיצד לפתור התנגשויות אלו.', rename: 'שינוי שם', replace: 'החלפה', skip: 'דילוג', }, removeDownload: { title: 'הסרת הורדה', - confirmationSingle: 'האם אתה בטוח שברצונך להסיר פריט זה מהרשימה? תוכל גם לבחור למחוק את הקובץ המקורי מהכונן הקשיח.', - confirmationMultiple: 'האם אתה בטוח שברצונך להסיר {{count}} פריטים אלו מהרשימה? תוכל גם לבחור למחוק את הקבצים המקוריים מהכונן הקשיח.', + confirmationSingle: 'האם ברצונך להסיר פריט זה מהרשימה? ניתן לבחור למחוק גם את הקובץ מהכונן הקשיח.', + confirmationMultiple: 'האם ברצונך להסיר {{count}} פריטים אלו מהרשימה? ניתן לבחור למחוק גם את הקבצים מהכונן הקשיח.', errorSummary: '{{succeeded}} הוסרו, {{failed}} נכשלו: {{detail}}', remove: 'הסרה', deleteFile: 'מחיקת קובץ', @@ -71,8 +71,8 @@ const he = { moveUp: 'הזזה למעלה', moveDown: 'הזזה למטה', pause: 'השהייה', - start: 'התחלה', - resume: 'המשך', + start: 'הפעלה', + resume: 'חידוש', options: 'אפשרויות', }, size: { @@ -88,29 +88,29 @@ const he = { paused: 'מושהה', completed: 'הושלם', failed: 'נכשל', - retrying: 'מנסה שוב', + retrying: 'ניסיון חוזר', }, values: { - processing: 'מעבד...', - muxing: 'ממזג...', + processing: 'מעבד…', + muxing: 'ממזג…', }, }, speedLimiter: { title: 'הגבלת מהירות', unlimited: 'ללא הגבלה', saveLimit: 'שמירת הגבלה', - globalSpeedLimit: 'הגבלת מהירות כללית', - description: 'חל על העברות חדשות ופעילות של aria2 והורדות מדיה חדשות של yt-dlp. הגבלות פרטניות מפורשות להורדה נשארות צמודות להעברות אלה.', - quickPresets: 'הגדרות מהירות', - removePreset: 'הסרת הגדרה של {{value}} {{unit}}', - customPresetIn: 'הגדרה מותאמת אישית ב-{{unit}}', - addQuickPreset: 'הוספת הגדרה מהירה', - globalLimitSaved: 'הגבלה כללית נשמרה כ-{{value}} {{unit}}', - globalLimitDisabled: 'הגבלת מהירות כללית מושבתת', - saveFailed: 'לא ניתן לשמור את הגבלת המהירות הכללית: {{detail}}', - presetAlreadyExists: '{{value}} {{unit}} כבר נמצא בהגדרות המהירות', - presetAdded: 'נוספה הגדרה מהירה של {{value}} {{unit}}', - presetRemoved: 'הוסרה הגדרה מהירה של {{value}} {{unit}}', + globalSpeedLimit: 'הגבלת מהירות כוללת', + description: 'חלה על העברות aria2 חדשות ופעילות ועל הורדות מדיה חדשות של yt-dlp. הגבלות פרטניות עבור הורדה מסוימת נשמרות.', + quickPresets: 'פרופילים מהירים', + removePreset: 'הסרת פרופיל {{value}} {{unit}}', + customPresetIn: 'פרופיל מותאם אישית ב-{{unit}}', + addQuickPreset: 'הוספת פרופיל מהיר', + globalLimitSaved: 'הגבלה כוללת נשמרה: {{value}} {{unit}}', + globalLimitDisabled: 'הגבלת מהירות כוללת הושבתה', + saveFailed: 'לא ניתן לשמור את הגבלת המהירות הכוללת: {{detail}}', + presetAlreadyExists: '{{value}} {{unit}} כבר קיים בפרופילים מהירים', + presetAdded: 'נוסף פרופיל מהיר של {{value}} {{unit}}', + presetRemoved: 'הוסר פרופיל מהיר של {{value}} {{unit}}', }, logs: { title: 'יומנים', @@ -127,13 +127,13 @@ const he = { }, pauseLogging: 'השהיית רישום אבחון', enableLogging: 'הפעלת רישום אבחון', - clearDisplayed: 'ניקוי יומנים מוצגים', + clearDisplayed: 'ניקוי היומנים המוצגים', export: 'ייצוא יומנים', exportButton: 'ייצוא יומנים', logFiles: 'קבצי יומן', localDiagnostics: 'אבחון מקומי:', - diagnosticsDescription: 'איסוף אבחון נעשה מבחירה, מוגבל ומקומי. סודות נפוצים, שאילתות URL ונתיבי תיקיית בית מוסתרים במהלך הצגה וייצוא. שום דבר אינו מועלה באופן אוטומטי.', - noEntries: 'אין עדיין רשומות יומן שמורות זמינות.', + diagnosticsDescription: 'איסוף אבחון נעשה בהסכמה, מוגבל בהיקפו ומקומי. נתונים רגישים, שאילתות URL ונתיבי תיקיית הבית מוסתרים בעת הצגה וייצוא. שום דבר אינו מועלה באופן אוטומטי.', + noEntries: 'אין עדיין רשומות יומן שמורות.', disabledDescription: 'רישום אבחון כבוי. יומני תמיכה קיימים יופיעו כאן כאשר יהיו זמינים.', copy: 'העתקה', copied: 'הועתק ללוח', @@ -142,9 +142,9 @@ const he = { exportFailed: 'לא ניתן לייצא יומנים: {{detail}}', cleared: 'היומנים נוקו', clearFailed: 'לא ניתן לנקות יומנים: {{detail}}', - enabled: 'רישום אבחון מופעל', - disabled: 'רישום אבחון מושבת', - updateFailed: 'לא ניתן לעדכן רישום אבחון: {{detail}}', + enabled: 'רישום אבחון הופעל', + disabled: 'רישום אבחון הושבת', + updateFailed: 'לא ניתן לעדכן את רישום האבחון: {{detail}}', }, scheduler: { title: 'מתזמן', @@ -152,41 +152,41 @@ const he = { disabled: 'המתזמן מושבת', noScheduledDay: 'לא נבחר יום מתוזמן', unsavedChanges: 'שינויים שלא נשמרו', - runNow: 'הפעל כעת', + runNow: 'הפעלה כעת', pause: 'השהייה', saveSettings: 'שמירת הגדרות', timing: 'תזמון', startTime: 'שעת התחלה', stopTime: 'שעת סיום', - timingDescription: 'אם Firelink ישן בשעת ההתחלה, הוא יפעיל את התורים שנבחרו כשיחזור מאוחר יותר באותו יום, אלא אם כן שעת הסיום כבר עברה.', - runEveryDay: 'הפעל כל יום', + timingDescription: 'אם Firelink נמצא במצב שינה בשעת ההתחלה, הוא יפעיל את התורים שנבחרו כשיחזור לפעולה מאוחר יותר באותו יום, אלא אם כן שעת הסיום כבר עברה.', + runEveryDay: 'הפעלה בכל יום', queuesToSchedule: 'תורים לתזמון', defaultQueue: 'תור ברירת מחדל', - afterCompletion: 'לאחר השלמה', - afterCompletionDescription: 'בחר מה יקרה לאחר סיום ההורדות שהופעלו על ידי המתזמן.', - actionWarning: 'פעולה זו עשויה להפריע לעבודה אחרת במחשב. Firelink מפעיל אותה מיד לאחר שהתור המתוזמן מסתיים.', + afterCompletion: 'לאחר הסיום', + afterCompletionDescription: 'בחר מה יתרחש לאחר סיום ההורדות שהופעלו על ידי המתזמן.', + actionWarning: 'פעולה זו עשויה להפריע לעבודה אחרת במחשב. Firelink יבצע אותה מיד לאחר שהתור המתוזמן מסתיים.', systemPermissions: 'הרשאות מערכת', - macPermissionDescription: 'שינה, הפעלה מחדש וכיבוי דורשים הרשאת Automation ל-System Events ב-macOS.', + macPermissionDescription: 'שינה, הפעלה מחדש וכיבוי דורשים הרשאת Automation עבור System Events ב-macOS.', permissionGranted: 'ניתנה הרשאת Automation', - permissionChecking: 'בודק הרשאת Automation...', + permissionChecking: 'בודק הרשאת Automation…', permissionMissing: 'חסרה הרשאת Automation', - revokePermission: 'שלילת הרשאה', + revokePermission: 'ביטול הרשאה', grantPermission: 'מתן הרשאה', permissionAvailable: 'הרשאת Automation זמינה.', permissionMissingDetails: 'חסרה הרשאת Automation. הפעל את Firelink תחת Automation עבור System Events בהגדרות המערכת.', - revokePermissionDetails: 'macOS אינה מאפשרת ל-Firelink לשלול הרשאת Automation ישירות. שלול גישה ל-System Events בהגדרות המערכת, ולאחר מכן חזור ל-Firelink.', - requestingPermission: 'מבקש הרשאת Automation...', + revokePermissionDetails: 'macOS אינה מאפשרת ל-Firelink לבטל הרשאת Automation ישירות. בטל גישה ל-System Events בהגדרות המערכת, ולאחר מכן חזור ל-Firelink.', + requestingPermission: 'מבקש הרשאת Automation…', enablePermissionDetails: 'הפעל את Firelink תחת Automation עבור System Events בהגדרות המערכת, ולאחר מכן חזור ל-Firelink.', systemActions: 'פעולות מערכת', - windowsActionsDescription: 'שינה, הפעלה מחדש וכיבוי משתמשים בהרשאות מערכת של Windows. Firelink מדווח על כל פעולה שנדחתה כאשר היא פועלת; לא נדרשת הרשאה קבועה מראש.', - linuxActionsDescription: 'שינה, הפעלה מחדש וכיבוי משתמשים בשולחן העבודה שלך ובמדיניות המערכת של Linux. Firelink מדווח על כל פעולה שנדחתה כאשר היא פועלת; לא נדרשת הרשאה קבועה מראש.', - validationDay: 'בחר לפחות יום אחד למתזמן', - validationQueue: 'בחר לפחות תור אחד למתזמן', + windowsActionsDescription: 'שינה, הפעלה מחדש וכיבוי משתמשים בהרשאות מערכת של Windows. Firelink מדווח על כל פעולה שנדחתה בעת ביצועה; לא נדרשת הרשאה קבועה מראש.', + linuxActionsDescription: 'שינה, הפעלה מחדש וכיבוי משתמשים בשולחן העבודה ובמדיניות המערכת של Linux. Firelink מדווח על כל פעולה שנדחתה בעת ביצועה; לא נדרשת הרשאה קבועה מראש.', + validationDay: 'יש לבחור לפחות יום אחד למתזמן', + validationQueue: 'יש לבחור לפחות תור אחד למתזמן', validationStopTime: 'שעת הסיום חייבת להיות מאוחרת משעת ההתחלה', saved: 'הגדרות המתזמן נשמרו', trackingOne: 'עוקב אחר הורדה מתוזמנת אחת', trackingMany: 'עוקב אחר {{count}} הורדות מתוזמנות', - noStartableDownloads: 'אין הורדות בתורים שנבחרו שניתן להתחיל', + noStartableDownloads: 'אין הורדות שניתן להפעיל בתורים שנבחרו', pausedOne: 'הושהתה הורדה פעילה אחת', pausedMany: 'הושהתו {{count}} הורדות פעילות', noActiveDownloads: 'אין הורדות פעילות', @@ -200,7 +200,7 @@ const he = { sa: 'ש\'', }, postActions: { - none: 'אל תעשה כלום', + none: 'ללא פעולה', sleep: 'שינה', restart: 'הפעלה מחדש', shutdown: 'כיבוי', @@ -220,39 +220,39 @@ const he = { lastError: 'שגיאה אחרונה', saved: ' (נשמר)', defaultValue: ' (ברירת מחדל)', - savedTooltip: 'נשמר עבור הורדה זו; שינויי הגדרות חלים על הורדות חדשות.', + savedTooltip: 'נשמר עבור הורדה זו; שינויים בהגדרות יחולו על הורדות חדשות.', defaultTooltip: 'שימוש בברירת המחדל הנוכחית להורדות חדשות.', - identityReadOnly: 'זהות הקובץ לקריאה בלבד. הגדרות ההעברה נשמרות להורדה מחדש.', - transferSettings: 'ניתן לשנות את הגדרות ההעברה לאחר עצירה או השהייה. העברות נוכחיות שומרות על אפשרויות ההעברה הקיימות שלהן.', + identityReadOnly: 'זהות הקובץ היא לקריאה בלבד. הגדרות ההעברה נשמרות להורדה מחדש.', + transferSettings: 'ניתן לשנות את הגדרות ההעברה לאחר עצירה או השהייה. העברות נוכחיות שומרות על אפשרויות המנוע הקיימות שלהן.', download: 'הורדה', url: 'URL', fileName: 'שם קובץ', saveLocation: 'מיקום שמירה', select: 'בחירה', perFile: 'לקובץ', - useCurrentDefault: 'השתמש בברירת המחדל הנוכחית ({{count}})', - savedPerDownload: 'נשמר לכל הורדה. ברירת המחדל של ההגדרות חלה על הורדות חדשות.', + useCurrentDefault: 'שימוש בברירת המחדל הנוכחית ({{count}})', + savedPerDownload: 'נשמר עבור כל הורדה. ברירת המחדל בהגדרות חלה על הורדות חדשות.', limit: 'הגבלה', siteLogin: 'התחברות לאתר', siteLoginRedownload: 'התחברות לאתר להורדה מחדש', - matchingSiteLogin: 'התחברות תואמת לאתר', + matchingSiteLogin: 'פרטי התחברות תואמים לאתר', customCredentials: 'אישורים מותאמים אישית', noLogin: 'ללא התחברות', - useSavedLogin: 'ישתמש בהתחברות שמורה אם זמינה.', + useSavedLogin: 'יעשה שימוש בהתחברות שמורה אם היא זמינה.', advancedTransfer: 'העברה מתקדמת', advancedTransferRedownload: 'העברה מתקדמת להורדה מחדש', checksum: 'סכום ביקורת', verify: 'אימות', algorithm: 'אלגוריתם', - digest: 'תקציר', - expectedDigest: 'תקציר צפוי', + digest: 'ערך גיבוב', + expectedDigest: 'ערך גיבוב צפוי', cookies: 'עוגיות', headers: 'כותרות (Headers)', mirrors: 'מראות', username: 'שם משתמש', password: 'סיסמה', - enterValidUrl: 'הזן URL תקין.', - fileNameEmpty: 'שם קובץ אינו יכול להיות ריק.', + enterValidUrl: 'נא להזין כתובת URL תקינה.', + fileNameEmpty: 'שם הקובץ אינו יכול להיות ריק.', cancel: 'ביטול', save: 'שמירה', }, @@ -261,30 +261,30 @@ const he = { stores: { portable: 'תיקיית הנתונים הניידת של Firelink', windows: 'מנהל האישורים של Windows', - linux: 'אחסון האישורים של Linux שלך', + linux: 'אחסון האישורים של Linux', macos: 'Keychain של macOS', system: 'אחסון האישורים של מערכת זו', siteCredentials: 'אחסון האישורים של המערכת', }, grantLabelPortable: 'המשך', - grantLabelMacos: 'הענקת גישה', + grantLabelMacos: 'מתן גישה', grantLabelDefault: 'הפעלת אחסון מאובטח', description: 'Firelink משתמש בתוסף הדפדפן כדי ללכוד הורדות. כדי לשמור על חיבור התוסף לאחר הפעלה מחדש, Firelink שומר את אסימון הצימוד שלו ב-{{pairingStore}}. אישורי אתר אופציונליים נשמרים ב-{{siteCredentialStore}}.', - portableExplanation: 'אסימון הצימוד נייד יחד עם תיקייה זו. אישורי אתרים נשארים באחסון האישורים של המערכת; ייתכן שתופיע בקשת מערכת לאחר שתעניק גישה.', - macosExplanation: 'macOS עשויה להציג בקשת Keychain לאחר שתעניק גישה.', - defaultExplanation: 'לרוב זה מסתיים בשקט. אם שירות האישורים אינו זמין, Firelink יציג את השגיאה כאן והתוסף יישאר מצומד עבור הפעלה זו בלבד.', + portableExplanation: 'אסימון הצימוד נייד יחד עם תיקייה זו. אישורי אתרים נשארים באחסון האישורים של המערכת; ייתכן שתופיע בקשת מערכת לאחר מתן הגישה.', + macosExplanation: 'macOS עשויה להציג בקשת Keychain לאחר מתן הגישה.', + defaultExplanation: 'לרוב זה מתבצע ברקע. אם שירות האישורים אינו זמין, Firelink יציג את השגיאה כאן והתוסף יישאר מחובר עבור הפעלה זו בלבד.', note: 'הערה:', portableNote: 'מצב נייד שומר רק את אסימון הצימוד בתיקייה זו. הוא אינו מעתיק סיסמאות אתרים או אישורי דפדפן.', - defaultNote: 'Firelink כותב רק רשומת אישור ייעודית משלו. אין לו גישה לסיסמאות שמורות אחרות או לפריטי אישורים במערכת שלך.', + defaultNote: 'Firelink כותב רק רשומת אישור ייעודית משלו. אין לו גישה לסיסמאות שמורות אחרות במערכת שלך.', hint: 'רמז:', - portableHint: 'אסימון הצימוד הנייד כבר שמור בתיקייה זו; תוכל להפעיל אותו כאן או לבחור "מאוחר יותר".', + portableHint: 'אסימון הצימוד הנייד כבר שמור בתיקייה זו; ניתן להפעיל אותו כאן או לבחור "מאוחר יותר".', defaultHint: 'אם תבחר "מאוחר יותר", התוסף יפעל עבור הפעלה זו בלבד.', - enableFromSettings: 'תוכל להפעיל את האחסון בכל עת דרך הגדרות > שילובים.', + enableFromSettings: 'ניתן להפעיל את האחסון בכל עת דרך הגדרות > שילובים.', later: 'מאוחר יותר', - enabling: 'מפעיל...', - timeout: 'בקשת האחסון של האישורים הסתיימה. תוכל לבחור "מאוחר יותר" ולנסות שוב.', + enabling: 'מפעיל…', + timeout: 'בקשת האחסון של האישורים הסתיימה. ניתן לבחור "מאוחר יותר" ולנסות שוב.', unavailable: '{{store}} אינו זמין.', - accessRequired: 'הענק גישה לאחסון האישורים לפני יצירה מחדש של אסימון הצימוד.', + accessRequired: 'יש להעניק גישה לאחסון האישורים לפני יצירה מחדש של אסימון הצימוד.', storeUnavailable: 'הגישה לאחסון האישורים אינה זמינה.', }, app: { @@ -304,11 +304,11 @@ const he = { integrations: 'שילובים', copyTokenFailed: 'לא ניתן להעתיק את אסימון הצימוד: {{detail}}', credentialPersistenceFailed: 'שמירת אישורים מאובטחת אינה זמינה. צימוד הדפדפן פועל עבור הפעלה זו בלבד: {{detail}}', - resumeDownloadsFailed: 'לא ניתן להמשיך הורדות שמורות: {{detail}}', + resumeDownloadsFailed: 'לא ניתן לחדש הורדות שמורות: {{detail}}', updateAvailable: 'Firelink {{version}} זמין.', - viewRelease: 'הצגת שחרור', + viewRelease: 'הצגת פרטי שחרור', sleepPreventionFailed: 'לא ניתן לעדכן את מניעת השינה: {{detail}}', - schedulerNoQueues: 'למתזמן אין תורים חוקיים שנבחרו. עדכן את הגדרות המתזמן.', + schedulerNoQueues: 'למתזמן אין תורים תקינים שנבחרו. עדכן את הגדרות המתזמן.', schedulerPauseOneFailed: 'המתזמן לא הצליח להשהות הורדה אחת.', schedulerPauseManyFailed: 'המתזמן לא הצליח להשהות {{count}} הורדות.', scheduledIncomplete: 'ההורדות המתוזמנות לא הושלמו במלואן. פעולת המערכת לאחר התור דולגה.', @@ -321,15 +321,15 @@ const he = { deleteQueueFailed: 'לא ניתן למחוק את התור: {{detail}}', queueNameEmpty: 'שם התור אינו יכול להיות ריק', queueNameExists: 'כבר קיים תור בשם זה', - startQueueFailed: 'לא ניתן להתחיל את התור: {{detail}}', + startQueueFailed: 'לא ניתן להפעיל את התור: {{detail}}', pauseQueueFailed: 'לא ניתן להשהות את התור: {{detail}}', }, downloadTable: { unknownQueue: 'תור לא ידוע', allDownloads: 'כל ההורדות', - active: 'פעיל', - completed: 'הושלם', - unfinished: 'לא הושלם', + active: 'פעילות', + completed: 'הושלמו', + unfinished: 'לא הושלמו', headers: { fileName: 'שם קובץ', size: 'גודל', @@ -341,14 +341,14 @@ const he = { columnOptions: { open: 'אפשרויות עמודה: {{column}}', dragToReorder: 'גררו כדי לשנות את סדר העמודות', - alignContent: 'מיקום התוכן', + alignContent: 'יישור תוכן העמודה', left: 'שמאל', center: 'מרכז', right: 'ימין', resetLayout: 'איפוס פריסת העמודות', }, addDownload: 'הוספת הורדה', - resumeAll: 'המשך הכל', + resumeAll: 'חידוש הכל', pauseAll: 'השהיית הכל', queueEmpty: 'התור ריק', noCompletedDownloads: 'אין הורדות שהושלמו', @@ -358,13 +358,13 @@ const he = { clickToAdd: 'לחץ על לחצן', addButtonOr: 'או', toAddDownloads: 'כדי להוסיף הורדות', - nonResumableOne: 'הורדה אחת אינה תומכת בהמשך. אם תשהה אותה, תצטרך להתחיל מהתחלה מאוחר יותר. האם אתה בטוח שברצונך להשהות?', - nonResumableMany: '{{count}} הורדות אינן תומכות בהמשך. אם תשהה אותן, תצטרך להתחיל מהתחלה מאוחר יותר. האם אתה בטוח שברצונך להשהות?', + nonResumableOne: 'הורדה אחת אינה תומכת בחידוש. אם תשהה אותה, תצטרך להתחיל מהתחלה מאוחר יותר. האם ברצונך להשהות?', + nonResumableMany: '{{count}} הורדות אינן תומכות בחידוש. אם תשהה אותן, תצטרך להתחיל מהתחלה מאוחר יותר. האם ברצונך להשהות?', interactionError: '{{message}}: {{detail}}', openFileFailed: 'לא ניתן לפתוח את הקובץ שהורד', - revealFileFailed: 'לא ניתן להציג את ההורדה ב-Finder', + revealFileFailed: 'לא ניתן להציג את הקובץ ב-Finder', pauseFailed: 'לא ניתן להשהות את ההורדה', - resumeFailed: 'לא ניתן להמשיך את {{fileName}}', + resumeFailed: 'לא ניתן לחדש את {{fileName}}', moveManyFailed: 'לא ניתן להעביר הורדות לתור', moveOneFailed: 'לא ניתן להעביר הורדה לתור', copyAddressesFailed: 'לא ניתן להעתיק כתובות', @@ -372,22 +372,22 @@ const he = { copyPathFailed: 'לא ניתן להעתיק נתיב קובץ', missingFileName: 'שם הקובץ חסר', redownloadFailed: 'הורדה מחדש נכשלה', - startResume: 'התחלה/המשך', + startResume: 'הפעלה/חידוש', addToQueue: 'הוספה לתור', copyAddress: 'העתקת כתובת', remove: 'הסרה', open: 'פתיחה', showInFolder: 'הצגה בתיקייה', pause: 'השהייה', - start: 'התחלה', - resume: 'המשך', + start: 'הפעלה', + resume: 'חידוש', redownload: 'הורדה מחדש', copyFilePath: 'העתקת נתיב קובץ', properties: 'מאפיינים', - backendRejectedStart: 'העורף דחה את בקשת ההתחלה/המשך.', + backendRejectedStart: 'מנוע הרקע דחה את בקשת ההפעלה/החידוש.', transferActive: 'לא ניתן לשנות מאפיינים בזמן שההעברה פעילה. השהה אותה תחילה.', redownloadNotFound: 'לא ניתן להוריד מחדש: ההורדה לא נמצאה.', - redownloadActive: 'לא ניתן להוריד מחדש הורדה בסטטוס {{status}}. השהה או המתן שתסתיים תחילה.', + redownloadActive: 'לא ניתן להוריד מחדש הורדה בסטטוס "{{status}}". השהה או המתן שתסתיים תחילה.', originalUrlMissing: 'לא ניתן להוריד מחדש: ה-URL המקורי חסר.', pauseBeforeMove: 'השהה את {{file}} לפני העברתו לתור אחר.', }, @@ -402,21 +402,21 @@ const he = { addedMany: '{{count}} הורדות נוספו', updatedOne: 'הורדה אחת עודכנה', updatedMany: '{{count}} הורדות עודכנו', - urlAlreadyQueued: 'URL כבר בתור', + urlAlreadyQueued: 'URL כבר נמצא בתור', destinationConflict: 'הורדה אחרת שנבחרה משתמשת ביעד זה', existingDownloadDestination: 'הורדת Firelink קיימת משתמשת ביעד זה', matchingDownloadFilename: 'להורדה שלא הושלמה יש כבר שם קובץ זה', fileExistsOnDisk: 'הקובץ קיים בדיסק; שנה שם או דלג כדי למנוע מחיקת נתונים שאינם קשורים', - backendRejectedStart: 'העורף דחה את התחלת ההורדה.', - playlistNoEntries: 'הפלייליסט אינו מכיל רשומות הניתנות להורדה', - invalidMediaMetadata: 'מטא נתונים של מדיה לא חוקיים או שלא נמצאו פורמטים', + backendRejectedStart: 'מנוע הרקע דחה את התחלת ההורדה.', + playlistNoEntries: 'רשימת ההשמעה אינה מכילה פריטים הניתנים להורדה', + invalidMediaMetadata: 'מטא נתונים של המדיה אינם תקינים או שלא נמצאו פורמטים', noAvailableName: 'לא נמצא שם פנוי עבור {{file}}.', pauseBeforeReplace: 'השהה את {{file}} לפני החלפתו.', cannotReplace: 'לא ניתן להחליף את {{file}}: הקובץ אינו שייך להורדת Firelink.', downloadLinks: 'קישורי הורדה', - pastePlaceholder: 'הדבק כתובות \u2066HTTP\u2069, \u2066HTTPS\u2069, \u2066FTP\u2069 או \u2066SFTP\u2069 כאן...\n\nעבור הורדות מדיה, הדבק קישורים מ-\u2066YouTube\u2069, \u2066X\u2069, \u2066TikTok\u2069, \u2066Instagram\u2069, \u2066Reddit\u2069 וכו\'.', - playlistSummary: 'פלייליסט "{{title}}": {{loaded}} מתוך {{total}} רשומות נטענו{{truncated}}{{skipped}}', - safeEntryLimit: ' (הגיע למגבלת רשומות בטוחה)', + pastePlaceholder: 'הדבק כתובות \u2066HTTP\u2069, \u2066HTTPS\u2069, \u2066FTP\u2069 או \u2066SFTP\u2069 כאן…\n\nעבור הורדות מדיה, הדבק קישורים מ-\u2066YouTube\u2069, \u2066X\u2069, \u2066TikTok\u2069, \u2066Instagram\u2069, \u2066Reddit\u2069 וכו\'.', + playlistSummary: 'רשימת השמעה "{{title}}": {{loaded}} מתוך {{total}} פריטים נטענו{{truncated}}{{skipped}}', + safeEntryLimit: ' (הושגה מגבלת הפריטים הבטוחה)', selectedSummary: '{{ready}} נבחרו ומוכנים, {{fallback}} לגיבוי, {{mediaRetry}} מדיה לניסיון חוזר, {{blocked}} חסומים', clearSelection: 'ניקוי בחירה', selectAll: 'בחירת הכל', @@ -431,22 +431,22 @@ const he = { downloadPreview: 'תצוגה מקדימה של הורדה', noLinks: 'טרם נוספו קישורים.', selectItem: 'בחר {{file}}', - fetchingPlaylist: 'מביא פלייליסט...', - fetching: 'מביא...', + fetchingPlaylist: 'טוען את רשימת ההשמעה…', + fetching: 'טוען…', unsafeUrl: 'URL לא בטוח', - playlistFailed: 'טעינת הפלייליסט נכשלה', + playlistFailed: 'טעינת רשימת ההשמעה נכשלה', metadataFailed: 'אחזור המטא-נתונים נכשל', fallback: 'גיבוי', - invalid: 'לא חוקי', + invalid: 'לא תקין', ready: 'מוכן', mediaFormat: 'פורמט מדיה', - playlistItem: 'פריט פלייליסט {{index}}', - fetchingMediaStreams: 'מביא זרמי מדיה...', + playlistItem: 'פריט רשימת השמעה {{index}}', + fetchingMediaStreams: 'טוען זרמי מדיה…', availableStreams: 'זרמים זמינים', availableMediaStreams: 'זרמי מדיה זמינים', metadataUnavailable: 'מטא נתונים אינם זמינים. רענן מטא נתונים לפני הוספת מדיה זו.', saveLocation: 'מיקום שמירה', - browse: 'עיון', + browse: 'עיון…', categoryFolders: 'הקבצים יאורגנו בתיקיות קטגוריה.', sharedFolder: 'כל ההורדות שנבחרו ישתמשו בתיקייה זו.', dedicatedFolder: 'שמירה בתיקייה חדשה', @@ -467,7 +467,7 @@ const he = { advancedTransfer: 'העברה מתקדמת', verifyChecksum: 'אימות סכום ביקורת', checksumAlgorithm: 'אלגוריתם סכום ביקורת', - expectedDigest: 'תקציר צפוי', + expectedDigest: 'ערך גיבוב צפוי', headers: 'כותרות (Headers)', requestHeaders: 'כותרות בקשה', cookies: 'עוגיות', @@ -478,9 +478,9 @@ const he = { addToQueue: 'הוספה לתור', pasteOneOrMore: 'הדבק קישור אחד או יותר.', selectAtLeastOne: 'בחר לפחות הורדה אחת.', - correctInvalidOne: 'תקן או הסר {{count}} כתובת URL לא חוקית לפני שתמשיך.', - correctInvalidFew: 'תקן או הסר {{count}} כתובות URL לא חוקיות לפני שתמשיך.', - correctInvalidMany: 'תקן או הסר {{count}} כתובות URL לא חוקיות לפני שתמשיך.', + correctInvalidOne: 'תקן או הסר {{count}} כתובת URL לא תקינה לפני שתמשיך.', + correctInvalidFew: 'תקן או הסר {{count}} כתובות URL לא תקינות לפני שתמשיך.', + correctInvalidMany: 'תקן או הסר {{count}} כתובות URL לא תקינות לפני שתמשיך.', waitingForMetadataOne: 'ממתין למטא נתונים עבור {{count}} הורדה.', waitingForMetadataFew: 'ממתין למטא נתונים עבור {{count}} הורדות.', waitingForMetadataMany: 'ממתין למטא נתונים עבור {{count}} הורדות.', @@ -512,12 +512,12 @@ const he = { }, common: { thisOs: 'מערכת הפעלה זו', - checking: 'בודק...', + checking: 'בודק…', ready: 'מוכן', errorMissing: 'שגיאה / חסר', hideTechnicalDetails: 'הסתרת פרטים טכניים', showTechnicalDetails: 'הצגת פרטים טכניים', - binary: 'קובץ בינארי (Binary)', + binary: 'קובץ בינארי', expected: 'צפוי', error: 'שגיאה', tip: 'טיפ', @@ -632,7 +632,7 @@ const he = { locations: { baseDownloadFolder: 'תיקיית הורדות בסיסית', baseDownloadFolderDescription: 'תיקיות קטגוריה אוטומטיות נוצרות בתוך תיקייה זו.', - browse: 'עיון', + browse: 'עיון…', baseFolderCreateFailed: 'תיקיית הבסיס נשמרה, אך לא ניתן היה ליצור תיקיות קטגוריה: {{detail}}', baseFolderUpdated: 'תיקיית הורדות בסיסית עודכנה', askWhereToSave: 'שאל היכן לשמור בעת הוספת הורדות', @@ -732,7 +732,7 @@ const he = { updates: 'עדכונים', checkForUpdates: 'בדוק עדכונים', updateDescription: 'Firelink בודק מהדורות ב-GitHub עבור גרסאות חדשות.', - checking: 'בודק...', + checking: 'בודק…', checkNow: 'בדוק כעת', automaticUpdates: 'בדוק עדכונים אוטומטית', createdBy: 'נוצר על ידי NimBold', diff --git a/src/i18n/catalogs/ru.ts b/src/i18n/catalogs/ru.ts index f20f904..bf81984 100644 --- a/src/i18n/catalogs/ru.ts +++ b/src/i18n/catalogs/ru.ts @@ -13,7 +13,7 @@ const ru = { compressed: 'Архивы', documents: 'Документы', pictures: 'Изображения', - applications: 'Приложения', + applications: 'Программы', other: 'Другое', }, folders: 'Папки', @@ -32,7 +32,7 @@ const ru = { continue: 'Продолжить', dismissNotification: 'Закрыть уведомление', queueName: 'Название очереди', - addNewQueue: 'Добавить очередь', + addNewQueue: 'Добавить новую очередь', startQueue: 'Запустить очередь', pauseQueue: 'Приостановить очередь', renameQueue: 'Переименовать очередь', @@ -55,7 +55,7 @@ const ru = { title: 'Удалить загрузку', confirmationSingle: 'Вы действительно хотите удалить этот элемент из списка? Вы также можете удалить файл с диска.', confirmationMultiple: 'Вы действительно хотите удалить выбранные элементы ({{count}}) из списка? Вы также можете удалить файлы с диска.', - errorSummary: 'Успешно удалено: {{succeeded}}, с ошибкой: {{failed}}: {{detail}}', + errorSummary: 'Удалено {{succeeded}}, с ошибкой {{failed}}: {{detail}}', remove: 'Удалить', deleteFile: 'Удалить файл', }, @@ -68,10 +68,10 @@ const ru = { }, downloads: { actions: { - moveUp: 'Вверх', - moveDown: 'Вниз', - pause: 'Пауза', - start: 'Старт', + moveUp: 'Переместить вверх', + moveDown: 'Переместить вниз', + pause: 'Приостановить', + start: 'Запустить', resume: 'Возобновить', options: 'Параметры', }, @@ -108,7 +108,7 @@ const ru = { globalLimitSaved: 'Общее ограничение сохранено: {{value}} {{unit}}', globalLimitDisabled: 'Общее ограничение скорости отключено', saveFailed: 'Не удалось сохранить общее ограничение скорости: {{detail}}', - presetAlreadyExists: 'Пресет {{value}} {{unit}} уже существует в быстрых пресетах', + presetAlreadyExists: 'Пресет {{value}} {{unit}} уже есть в быстрых пресетах', presetAdded: 'Добавлен быстрый пресет {{value}} {{unit}}', presetRemoved: 'Удалён быстрый пресет {{value}} {{unit}}', }, @@ -132,9 +132,9 @@ const ru = { exportButton: 'Экспортировать журнал', logFiles: 'Файлы журнала', localDiagnostics: 'Локальная диагностика:', - diagnosticsDescription: 'Сбор диагностики выполняется с вашего согласия, ограничен по объёму и хранится локально. Секретные данные, параметры URL и пути к домашнему каталогу скрываются при отображении и экспорте. Никакие данные не отправляются автоматически.', + diagnosticsDescription: 'Сбор диагностики выполняется по желанию, ограничен по объёму и хранится локально. Конфиденциальные данные, параметры URL и пути к домашней папке скрываются при отображении и экспорте. Никакие данные не отправляются автоматически.', noEntries: 'Сохранённых записей журнала пока нет.', - disabledDescription: 'Ведение журнала диагностики отключено. Сохранённые логи появятся здесь при их наличии.', + disabledDescription: 'Ведение журнала диагностики отключено. Существующие логи поддержки появятся здесь при наличии.', copy: 'Копировать', copied: 'Скопировано в буфер обмена', copyFailed: 'Не удалось скопировать в буфер обмена', @@ -142,29 +142,29 @@ const ru = { exportFailed: 'Не удалось экспортировать журнал: {{detail}}', cleared: 'Журнал очищен', clearFailed: 'Не удалось очистить журнал: {{detail}}', - enabled: 'Ведение журнала включено', - disabled: 'Ведение журнала отключено', - updateFailed: 'Не удалось обновить параметры ведения журнала: {{detail}}', + enabled: 'Ведение журнала диагностики включено', + disabled: 'Ведение журнала диагностики отключено', + updateFailed: 'Не удалось обновить ведение журнала диагностики: {{detail}}', }, scheduler: { title: 'Планировщик', running: 'Работает', - disabled: 'Планировщик отключен', + disabled: 'Планировщик отключён', noScheduledDay: 'Дни выполнения не выбраны', unsavedChanges: 'Несохранённые изменения', runNow: 'Запустить сейчас', pause: 'Приостановить', saveSettings: 'Сохранить настройки', - timing: 'Время работы', + timing: 'Расписание', startTime: 'Время начала', stopTime: 'Время окончания', - timingDescription: 'Если компьютер находится в спящем режиме во время запуска, Firelink запустит выбранные очереди после пробуждения в этот же день, если время окончания ещё не наступило.', + timingDescription: 'Если Firelink находится в спящем режиме во время запуска, он запустит выбранные очереди после пробуждения в этот же день, если время окончания ещё не наступило.', runEveryDay: 'Запускать каждый день', queuesToSchedule: 'Очереди для запуска', defaultQueue: 'Очередь по умолчанию', afterCompletion: 'После завершения', afterCompletionDescription: 'Выберите действие после завершения загрузок, запущенных планировщиком.', - actionWarning: 'Это действие может прервать работу других программ. Firelink выполнит его сразу после завершения запланированной очереди.', + actionWarning: 'Это действие может прервать работу других программ на компьютере. Firelink выполнит его сразу после завершения запланированной очереди.', systemPermissions: 'Системные разрешения', macPermissionDescription: 'Для перехода в спящий режим, перезагрузки и выключения требуется разрешение macOS «Автоматизация» для System Events.', permissionGranted: 'Разрешение «Автоматизация» предоставлено', @@ -173,20 +173,20 @@ const ru = { revokePermission: 'Отозвать разрешение', grantPermission: 'Предоставить разрешение', permissionAvailable: 'Разрешение «Автоматизация» доступно.', - permissionMissingDetails: 'Отсутствует разрешение «Автоматизация». Включите Firelink в разделе «Системные настройки» > «Конфиденциальность и безопасность» > «Автоматизация» для System Events.', - revokePermissionDetails: 'macOS не позволяет отзывать разрешение «Автоматизация» напрямую из приложения. Отключите доступ к System Events в Системных настройках, затем вернитесь в Firelink.', + permissionMissingDetails: 'Отсутствует разрешение «Автоматизация». В Системных настройках откройте раздел «Автоматизация» для System Events и включите Firelink.', + revokePermissionDetails: 'macOS не позволяет отзывать разрешение «Автоматизация» напрямую из Firelink. Отключите доступ Firelink к System Events в Системных настройках, затем вернитесь в Firelink.', requestingPermission: 'Запрос разрешения «Автоматизация»…', - enablePermissionDetails: 'Включите Firelink в разделе «Системные настройки» > «Автоматизация» для System Events, затем вернитесь в Firelink.', + enablePermissionDetails: 'В Системных настройках откройте раздел «Автоматизация» для System Events и включите Firelink, затем вернитесь в Firelink.', systemActions: 'Системные действия', - windowsActionsDescription: 'Спящий режим, перезагрузка и выключение используют системные привилегии Windows. При выполнении Firelink сообщит, если действие не удалось.', - linuxActionsDescription: 'Спящий режим, перезагрузка и выключение используют системные службы Linux. При выполнении Firelink сообщит, если действие не удалось.', + windowsActionsDescription: 'Спящий режим, перезагрузка и выключение используют системные привилегии Windows. Firelink сообщит о любых отклонённых действиях при их запуске; постоянное разрешение заранее не запрашивается.', + linuxActionsDescription: 'Спящий режим, перезагрузка и выключение используют системную политику и рабочий стол Linux. Firelink сообщит о любых отклонённых действиях при их запуске; постоянное разрешение заранее не запрашивается.', validationDay: 'Выберите хотя бы один день для планировщика', validationQueue: 'Выберите хотя бы одну очередь для планировщика', validationStopTime: 'Время окончания должно быть позже времени начала', saved: 'Настройки планировщика сохранены', trackingOne: 'Отслеживается 1 запланированная загрузка', trackingMany: 'Отслеживается {{count}} запланированных загрузок', - noStartableDownloads: 'В выбранных очередях нет загрузок для запуска', + noStartableDownloads: 'В выбранных очередях нет загрузок, которые можно запустить', pausedOne: 'Приостановлена 1 активная загрузка', pausedMany: 'Приостановлено {{count}} активных загрузок', noActiveDownloads: 'Нет активных загрузок', @@ -220,25 +220,25 @@ const ru = { lastError: 'Последняя ошибка', saved: ' (сохранено)', defaultValue: ' (по умолчанию)', - savedTooltip: 'Сохранено для этой загрузки. Изменения в Настройках будут применяться только к новым загрузкам.', - defaultTooltip: 'Используется значение по умолчанию для новых загрузок.', - identityReadOnly: 'Параметры файла доступны только для чтения. Настройки передачи сохранены для повторного скачивания.', - transferSettings: 'Настройки передачи можно изменить после приостановки или остановки. Текущие загрузки продолжат использовать существующие параметры.', + savedTooltip: 'Сохранено для этой загрузки. Изменения в Настройках будут применяться к новым загрузкам.', + defaultTooltip: 'Используется текущее значение по умолчанию для новых загрузок.', + identityReadOnly: 'Идентификация файла доступна только для чтения. Настройки передачи сохранены для повторного скачивания.', + transferSettings: 'Настройки передачи можно изменить после остановки или приостановки. Текущие загрузки сохраняют свои параметры.', download: 'Загрузка', url: 'URL', fileName: 'Имя файла', - saveLocation: 'Папка для сохранения', + saveLocation: 'Место сохранения', select: 'Выбрать', perFile: 'на файл', useCurrentDefault: 'По умолчанию ({{count}})', - savedPerDownload: 'Индивидуально для загрузки. Настройки по умолчанию применяются к новым загрузкам.', + savedPerDownload: 'Сохранено для этой загрузки. Значение из Настроек применяется к новым загрузкам.', limit: 'Ограничение', siteLogin: 'Авторизация на сайте', siteLoginRedownload: 'Авторизация для повторного скачивания', - matchingSiteLogin: 'Сохранённые учётные данные', - customCredentials: 'Другие учётные данные', + matchingSiteLogin: 'Учётные данные сайта', + customCredentials: 'Пользовательские учётные данные', noLogin: 'Без авторизации', - useSavedLogin: 'Будет использован сохранённый логин, если доступен.', + useSavedLogin: 'Будет использован сохранённый логин, если он доступен.', advancedTransfer: 'Дополнительные параметры', advancedTransferRedownload: 'Дополнительные параметры повторного скачивания', checksum: 'Контрольная сумма', @@ -261,7 +261,7 @@ const ru = { stores: { portable: 'портативная папка Firelink', windows: 'Диспетчер учётных данных Windows', - linux: 'системное хранилище Linux', + linux: 'хранилище учётных данных Linux', macos: 'Связка ключей macOS', system: 'системное хранилище учётных данных', siteCredentials: 'системное хранилище учётных данных', @@ -269,58 +269,58 @@ const ru = { grantLabelPortable: 'Продолжить', grantLabelMacos: 'Предоставить доступ', grantLabelDefault: 'Включить защищённое хранилище', - description: 'Firelink использует расширение браузера для перехвата загрузок. Чтобы расширение оставалось привязанным после перезапуска, Firelink сохраняет токен сопряжения в {{pairingStore}}. Сохранённые учётные данные сайтов хранятся в {{siteCredentialStore}}.', - portableExplanation: 'Токен сопряжения сохраняется в этой папке. Учётные данные сайтов остаются в системном хранилище; при предоставлении доступа может появиться системный запрос.', - macosExplanation: 'macOS может запросить разрешение на доступ к Связке ключей.', - defaultExplanation: 'Обычно доступ предоставляется автоматически. Если служба учётных данных недоступна, Firelink покажет ошибку, и расширение останется привязанным только на текущий сеанс.', + description: 'Firelink использует расширение браузера для перехвата загрузок. Чтобы расширение оставалось привязанным после перезапуска, Firelink сохраняет токен сопряжения в {{pairingStore}}. Дополнительные учётные данные сайтов хранятся в {{siteCredentialStore}}.', + portableExplanation: 'Токен сопряжения переносится вместе с этой папкой. Учётные данные сайтов остаются в системном хранилище; после предоставления доступа может появиться системный запрос.', + macosExplanation: 'macOS может показать запрос Связки ключей после предоставления доступа.', + defaultExplanation: 'Обычно это происходит незаметно. Если служба учётных данных недоступна, Firelink покажет ошибку здесь, и расширение останется привязанным только на текущий сеанс.', note: 'Примечание:', - portableNote: 'В портативном режиме в папке сохраняется только токен сопряжения. Пароли сайтов и учётные данные браузера не копируются.', - defaultNote: 'Firelink создаёт только собственную изолированную запись и не имеет доступа к другим вашим паролям.', + portableNote: 'В портативном режиме в этой папке сохраняется только токен сопряжения. Пароли сайтов и учётные данные браузера не копируются.', + defaultNote: 'Firelink создаёт только собственную изолированную запись учётных данных. Приложение не имеет доступа к другим сохранённым паролям вашей системы.', hint: 'Подсказка:', - portableHint: 'Портативный токен сопряжения уже сохранён в этой папке. Вы можете включить хранилище сейчас или нажать «Позже».', - defaultHint: 'Если вы нажмёте «Позже», интеграция с браузером будет работать только во время текущего сеанса.', + portableHint: 'Портативный токен сопряжения уже сохранён в этой папке. Вы можете включить его здесь или выбрать «Позже».', + defaultHint: 'Если вы выберете «Позже», расширение будет работать только во время текущего сеанса.', enableFromSettings: 'Вы можете включить хранилище в любое время в меню «Настройки» > «Интеграции».', later: 'Позже', enabling: 'Включение…', - timeout: 'Время ожидания ответа хранилища истекло. Нажмите «Позже» и попробуйте снова.', + timeout: 'Время ожидания запроса к хранилищу учётных данных истекло. Вы можете выбрать «Позже» и попробовать снова.', unavailable: 'Хранилище {{store}} недоступно.', - accessRequired: 'Предоставьте доступ к хранилищу учётных данных перед созданием нового токена.', + accessRequired: 'Предоставьте доступ к хранилищу учётных данных перед повторной генерацией токена сопряжения.', storeUnavailable: 'Доступ к хранилищу учётных данных недоступен.', }, app: { loading: 'Загрузка…', - settingsSaveFailed: 'Не удалось сохранить настройки. Проверьте права доступа к папке и попробуйте снова.', + settingsSaveFailed: 'Не удалось сохранить настройки. Проверьте разрешения хранилища и попробуйте снова.', systemActionCountdown: '{{action}} через 10 секунд.', - systemActionCancelled: 'Системное действие отменено, так как есть активные или запланированные загрузки.', - systemActionFailed: 'Не удалось выполнить запланированное действие: {{detail}}', + systemActionCancelled: 'Системное действие отменено, так как есть активная или запланированная загрузка.', + systemActionFailed: 'Не удалось выполнить запланированное системное действие: {{detail}}', downloadCompleteTitle: 'Загрузка завершена', downloadCompleteBody: 'Загрузка {{fileName}} завершена.', unknownFile: 'Файл', downloadFailedTitle: 'Ошибка загрузки', downloadFailedBody: 'Не удалось загрузить {{fileName}}.', - initializeDownloadsFailed: 'Не удалось загрузить сохранённый список скачиваний: {{detail}}', - extensionDisconnected: 'Расширение браузера отключено, так как токен сопряжения изменился.', + initializeDownloadsFailed: 'Не удалось инициализировать сохранённые загрузки: {{detail}}', + extensionDisconnected: 'Расширение браузера отключено, так как его токен сопряжения изменился.', copyToken: 'Скопировать токен', integrations: 'Интеграции', copyTokenFailed: 'Не удалось скопировать токен сопряжения: {{detail}}', credentialPersistenceFailed: 'Безопасное сохранение учётных данных недоступно. Сопряжение с браузером работает только в текущем сеансе: {{detail}}', - resumeDownloadsFailed: 'Не удалось возобновить загрузки: {{detail}}', - updateAvailable: 'Доступна новая версия Firelink {{version}}.', + resumeDownloadsFailed: 'Не удалось возобновить сохранённые загрузки: {{detail}}', + updateAvailable: 'Доступна Firelink {{version}}.', viewRelease: 'Просмотреть релиз', - sleepPreventionFailed: 'Не удалось обновить запрет спящего режима: {{detail}}', - schedulerNoQueues: 'В планировщике не выбрано ни одной очереди. Проверьте настройки планировщика.', + sleepPreventionFailed: 'Не удалось обновить предотвращение перехода в спящий режим: {{detail}}', + schedulerNoQueues: 'В планировщике не выбраны действительные очереди. Обновите настройки планировщика.', schedulerPauseOneFailed: 'Планировщик не смог приостановить 1 загрузку.', schedulerPauseManyFailed: 'Планировщик не смог приостановить {{count}} загрузок.', - scheduledIncomplete: 'Не все запланированные загрузки были завершены. Системное действие отменено.', - scheduledActionSkippedActive: 'Системное действие пропущено, так как есть активные или запланированные загрузки.', + scheduledIncomplete: 'Не все запланированные загрузки были завершены. Системное действие после завершения очереди пропущено.', + scheduledActionSkippedActive: 'Запланированное системное действие пропущено, так как есть активная или находящаяся в очереди загрузка.', notificationsDisabled: 'Системные уведомления отключены для Firelink.', notificationsFailed: 'Не удалось настроить уведомления: {{detail}}', }, sidebar: { - deleteQueueConfirm: 'Удалить очередь «{{name}}»? Незавершённые загрузки будут перемещены в Главную очередь.', + deleteQueueConfirm: 'Удалить очередь «{{name}}»? Её незавершённые загрузки будут перемещены в Главную очередь.', deleteQueueFailed: 'Не удалось удалить очередь: {{detail}}', - queueNameEmpty: 'Имя очереди не может быть пустым', - queueNameExists: 'Очередь с таким именем уже существует', + queueNameEmpty: 'Название очереди не может быть пустым', + queueNameExists: 'Очередь с таким названием уже существует', startQueueFailed: 'Не удалось запустить очередь: {{detail}}', pauseQueueFailed: 'Не удалось приостановить очередь: {{detail}}', }, @@ -339,12 +339,12 @@ const ru = { dateAdded: 'Дата добавления', }, columnOptions: { - open: 'Параметры столбца: {{column}}', - dragToReorder: 'Перетащите, чтобы изменить порядок столбцов', - alignContent: 'Положение содержимого', - left: 'Слева', + open: 'Параметры столбца «{{column}}»', + dragToReorder: 'Перетащите для изменения порядка столбцов', + alignContent: 'Выравнивание содержимого', + left: 'По левому краю', center: 'По центру', - right: 'Справа', + right: 'По правому краю', resetLayout: 'Сбросить макет столбцов', }, addDownload: 'Добавить загрузку', @@ -353,16 +353,16 @@ const ru = { queueEmpty: 'Очередь пуста', noCompletedDownloads: 'Нет завершённых загрузок', noDownloads: 'Нет загрузок', - queueEmptyDescription: 'Добавляйте загрузки в эту очередь из меню элементов или окна добавления.', + queueEmptyDescription: 'Добавьте загрузки в эту очередь из меню элемента или окна добавления.', completedDescription: 'Завершённые загрузки будут отображаться здесь.', clickToAdd: 'Нажмите кнопку', addButtonOr: 'или', toAddDownloads: 'чтобы добавить загрузки', - nonResumableOne: '1 загрузка не поддерживает возобновление. При приостановке её придётся скачивать заново. Вы действительно хотите приостановить?', - nonResumableMany: 'Загрузок без поддержки возобновления: {{count}}. При приостановке их придётся скачивать заново. Вы действительно хотите приостановить?', + nonResumableOne: '1 загрузка не поддерживает возобновление. Если вы приостановите её, позже придётся начинать скачивание заново. Вы действительно хотите приостановить?', + nonResumableMany: '{{count}} загрузок не поддерживают возобновление. Если вы приостановите их, позже придётся начинать скачивание заново. Вы действительно хотите приостановить?', interactionError: '{{message}}: {{detail}}', - openFileFailed: 'Не удалось открыть файл', - revealFileFailed: 'Не удалось показать файл в папке', + openFileFailed: 'Не удалось открыть скачанный файл', + revealFileFailed: 'Не удалось показать файл в Finder', pauseFailed: 'Не удалось приостановить загрузку', resumeFailed: 'Не удалось возобновить {{fileName}}', moveManyFailed: 'Не удалось переместить загрузки в очередь', @@ -384,15 +384,15 @@ const ru = { redownload: 'Скачать повторно', copyFilePath: 'Скопировать путь к файлу', properties: 'Свойства', - backendRejectedStart: 'Запрос на запуск/возобновление отклонён сервером.', - transferActive: 'Нельзя изменять свойства во время загрузки. Сначала приостановите её.', - redownloadNotFound: 'Не удалось скачать повторно: загрузка не найдена.', - redownloadActive: 'Нельзя повторно скачать загрузку в статусе «{{status}}». Сначала приостановите её или дождитесь завершения.', - originalUrlMissing: 'Не удалось скачать повторно: исходный URL отсутствует.', + backendRejectedStart: 'Фоновый модуль отклонил запрос на запуск/возобновление.', + transferActive: 'Нельзя изменять свойства во время активной передачи. Сначала приостановите её.', + redownloadNotFound: 'Невозможно скачать повторно: загрузка не найдена.', + redownloadActive: 'Невозможно повторно скачать загрузку в статусе «{{status}}». Сначала приостановите её или дождитесь завершения.', + originalUrlMissing: 'Невозможно скачать повторно: исходный URL отсутствует.', pauseBeforeMove: 'Приостановите {{file}} перед перемещением в другую очередь.', }, addDownloads: { - unknownSize: 'Размер неизвестен', + unknownSize: 'Неизвестный размер', unknown: 'Неизвестно', discardSetup: 'Отменить настройку этой загрузки?', speedInvalid: 'Ограничение скорости должно быть больше нуля', @@ -403,22 +403,22 @@ const ru = { updatedOne: 'Обновлена 1 загрузка', updatedMany: 'Обновлено {{count}} загрузок', urlAlreadyQueued: 'URL уже находится в очереди', - destinationConflict: 'Другая выбранная загрузка использует ту же папку назначения', + destinationConflict: 'Другая выбранная загрузка использует это место назначения', existingDownloadDestination: 'Существующая загрузка Firelink использует эту папку назначения', matchingDownloadFilename: 'Незавершённая загрузка уже использует это имя файла', - fileExistsOnDisk: 'Файл уже существует на диске. Переименуйте или пропустите его, чтобы не перезаписать данные.', - backendRejectedStart: 'Сервер отклонил запуск загрузки.', + fileExistsOnDisk: 'Файл уже существует на диске; переименуйте или пропустите его, чтобы не удалить сторонние данные', + backendRejectedStart: 'Фоновый модуль отклонил запуск загрузки.', playlistNoEntries: 'Плейлист не содержит доступных элементов', - invalidMediaMetadata: 'Некорректные метаданные медиа или доступные форматы не найдены', - noAvailableName: 'Не удалось подобрать свободное имя для {{file}}.', + invalidMediaMetadata: 'Некорректные метаданные медиа или форматы не найдены', + noAvailableName: 'Не удалось найти доступное имя для {{file}}.', pauseBeforeReplace: 'Приостановите {{file}} перед заменой.', - cannotReplace: 'Нельзя заменить {{file}}: файл не относится к загрузкам Firelink.', + cannotReplace: 'Невозможно заменить {{file}}: файл не принадлежит загрузке Firelink.', downloadLinks: 'Ссылки для скачивания', - pastePlaceholder: 'Вставьте URL-адреса HTTP, HTTPS, FTP или SFTP…\n\nДля загрузки медиа поддерживаются ссылки с YouTube, X, TikTok, Instagram, Reddit и др.', + pastePlaceholder: 'Вставьте сюда URL-адреса HTTP, HTTPS, FTP или SFTP…\n\nДля загрузки медиа вставляйте ссылки с YouTube, X, TikTok, Instagram, Reddit и т. д.', playlistSummary: 'Плейлист «{{title}}»: загружено {{loaded}} из {{total}} элементов{{truncated}}{{skipped}}', - safeEntryLimit: ' (достигнут лимит)', - selectedSummary: 'Выбрано: {{ready}} готовых, {{fallback}} с базовыми данными, {{mediaRetry}} повторных медиа, {{blocked}} заблокированных', - clearSelection: 'Сбросить выбор', + safeEntryLimit: ' (достигнут безопасный лимит элементов)', + selectedSummary: 'Выбрано: {{ready}} готовых, {{fallback}} с резервными данными, {{mediaRetry}} повторов медиа, {{blocked}} заблокировано', + clearSelection: 'Очистить выбор', selectAll: 'Выбрать все', refreshMetadata: 'Обновить метаданные', files: 'Файлы', @@ -436,7 +436,7 @@ const ru = { unsafeUrl: 'Небезопасный URL', playlistFailed: 'Ошибка плейлиста', metadataFailed: 'Ошибка метаданных', - fallback: 'Базовые данные', + fallback: 'Резервный режим', invalid: 'Некорректный', ready: 'Готово', mediaFormat: 'Формат медиа', @@ -444,18 +444,18 @@ const ru = { fetchingMediaStreams: 'Получение медиапотоков…', availableStreams: 'Доступные потоки', availableMediaStreams: 'Доступные медиапотоки', - metadataUnavailable: 'Метаданные недоступны. Обновите метаданные перед добавлением.', - saveLocation: 'Папка для сохранения', + metadataUnavailable: 'Метаданные недоступны. Обновите метаданные перед добавлением этого медиа.', + saveLocation: 'Папка сохранения', browse: 'Обзор…', categoryFolders: 'Файлы будут распределены по папкам категорий.', - sharedFolder: 'Все выбранные загрузки будут сохранены в эту папку.', - dedicatedFolder: 'Сохранить в отдельную папку', + sharedFolder: 'Все выбранные загрузки будут использовать эту папку.', + dedicatedFolder: 'Сохранить в новую папку', dedicatedFolderName: 'Имя папки', dedicatedFolderDescription: 'Создаёт эту папку внутри каждой автоматической папки категории.', - dedicatedFolderManualDescription: 'Создаёт эту папку внутри выбранной папки сохранения.', + dedicatedFolderManualDescription: 'Создаёт эту папку внутри выбранного места сохранения.', saveFolderName: 'Имя папки сохранения', dedicatedFolderNameRequired: 'Введите имя папки перед сохранением.', - transferSettings: 'Параметры передачи', + transferSettings: 'Настройки передачи', connectionsPerFile: 'Соединений на файл', connectionsPerFileAria: 'Соединений на файл', limitSpeedPerFile: 'Ограничить скорость на файл', @@ -466,7 +466,7 @@ const ru = { password: 'Пароль', advancedTransfer: 'Дополнительные параметры', verifyChecksum: 'Проверять контрольную сумму', - checksumAlgorithm: 'Алгоритм хеширования', + checksumAlgorithm: 'Алгоритм контрольной суммы', expectedDigest: 'Ожидаемый хеш', headers: 'Заголовки', requestHeaders: 'Заголовки запроса', @@ -487,13 +487,13 @@ const ru = { removeUnsafeOne: 'Удалите {{count}} небезопасный URL-адрес перед продолжением.', removeUnsafeFew: 'Удалите {{count}} небезопасных URL-адреса перед продолжением.', removeUnsafeMany: 'Удалите {{count}} небезопасных URL-адресов перед продолжением.', - mediaMetadataUnavailableSummaryOne: 'Метаданные недоступны для {{count}} элемента. Обновите метаданные перед добавлением.', - mediaMetadataUnavailableSummaryFew: 'Метаданные недоступны для {{count}} элементов. Обновите метаданные перед добавлением.', - mediaMetadataUnavailableSummaryMany: 'Метаданные недоступны для {{count}} элементов. Обновите метаданные перед добавлением.', - metadataUnavailableFallback: 'Метаданные недоступны. Загрузки можно добавить с базовыми параметрами.', - fallbackReadyOne: 'Готово к добавлению: {{ready}} загрузка; для {{failed}} будет использовано имя по умолчанию и неизвестный размер.', - fallbackReadyFew: 'Готово к добавлению: {{ready}} загрузки; для {{failed}} будет использовано имя по умолчанию и неизвестный размер.', - fallbackReadyMany: 'Готово к добавлению: {{ready}} загрузок; для {{failed}} будет использовано имя по умолчанию и неизвестный размер.', + mediaMetadataUnavailableSummaryOne: 'Метаданные медиа недоступны для {{count}} элемента. Обновите метаданные перед добавлением.', + mediaMetadataUnavailableSummaryFew: 'Метаданные медиа недоступны для {{count}} элементов. Обновите метаданные перед добавлением.', + mediaMetadataUnavailableSummaryMany: 'Метаданные медиа недоступны для {{count}} элементов. Обновите метаданные перед добавлением.', + metadataUnavailableFallback: 'Метаданные недоступны. Загрузки всё равно можно добавить с резервными данными.', + fallbackReadyOne: 'Готова {{ready}} загрузка; для {{failed}} будет использовано резервное имя файла и неизвестный размер.', + fallbackReadyFew: 'Готовы {{ready}} загрузки; для {{failed}} будет использовано резервное имя файла и неизвестный размер.', + fallbackReadyMany: 'Готово {{ready}} загрузок; для {{failed}} будет использовано резервное имя файла и неизвестный размер.', readyToAddOne: 'Готово к добавлению: {{count}} загрузка.', readyToAddFew: 'Готово к добавлению: {{count}} загрузки.', readyToAddMany: 'Готово к добавлению: {{count}} загрузок.', @@ -506,7 +506,7 @@ const ru = { locations: 'Папки', siteLogins: 'Учётные данные', power: 'Питание', - engine: 'Движки', + engine: 'Движок', integrations: 'Интеграции', about: 'О программе', }, @@ -530,21 +530,21 @@ const ru = { internalDirectoryFound: 'Каталог _internal найден', pythonRuntimeFound: 'Среда выполнения Python найдена', externalOpenFailed: 'Не удалось открыть {{label}}: {{detail}}', - updateUnexpectedResponse: 'Получен неожиданный ответ при проверке обновлений.', - updateUntrustedReleaseUrl: 'Проверка обновлений вернула ненадёжный URL.', - updateFailed: 'Не удалось проверить обновления: {{detail}}', + updateUnexpectedResponse: 'Проверка обновлений вернула неожиданный ответ.', + updateUntrustedReleaseUrl: 'Проверка обновлений вернула ненадёжный URL релиза.', + updateFailed: 'Ошибка проверки обновлений: {{detail}}', }, downloads: { defaultConnections: 'Соединения по умолчанию:', defaultConnectionsDescription: 'Для новых загрузок; существующие элементы сохраняют своё значение', parallelDownloads: 'Параллельные загрузки:', - parallelDownloadsDescription: 'Максимальное количество одновременно активных файлов', + parallelDownloadsDescription: 'Максимальное число одновременно активных файлов', automaticRetries: 'Автоматические повторы:', automaticRetriesDescription: 'При сбое соединения', systemNotification: 'Показывать системное уведомление по завершении загрузки', - systemNotificationDescription: 'Использует системные настройки уведомлений', - completionChime: 'Воспроизводить звуковой сигнал в приложении', - completionChimeDescription: 'Звук Firelink, независимый от системных уведомлений', + systemNotificationDescription: 'Использует настройки уведомлений вашей операционной системы', + completionChime: 'Воспроизводить звуковой сигнал завершения в приложении', + completionChimeDescription: 'Дополнительный звук Firelink, независимый от системных уведомлений', clipboardLinks: 'Добавлять ссылки из буфера обмена при активации Firelink', clipboardLinksDescription: 'Открывает скопированные поддерживаемые ссылки в окне добавления. По умолчанию отключено.', }, @@ -552,7 +552,7 @@ const ru = { language: 'Язык', languageDescription: 'Выберите язык интерфейса Firelink.', sidebarPosition: 'Положение боковой панели', - sidebarPositionDescription: 'Выберите расположение боковой панели. В автоматическом режиме зависит от направления текста.', + sidebarPositionDescription: 'Выберите, где отображается боковая панель. В автоматическом режиме следует направлению интерфейса.', sidebarPositionAutomatic: 'Автоматически (рекомендуется)', sidebarPositionLeft: 'Слева', sidebarPositionRight: 'Справа', @@ -563,7 +563,7 @@ const ru = { languagePersian: 'Персидский', languageUkrainian: 'Украинский', languageRussian: 'Русский', - appTheme: 'Тема оформления', + appTheme: 'Тема приложения', theme: 'Тема', ariaLabel: 'Тема приложения', system: 'Системная', @@ -571,7 +571,7 @@ const ru = { dark: 'Тёмная', dracula: 'Dracula', nord: 'Nord', - systemAppearance: 'Автоматическое переключение между светлой и тёмной темой {{platform}}.', + systemAppearance: 'Системная тема соответствует текущему светлому или тёмному оформлению {{platform}}.', display: 'Отображение', fontSize: 'Размер шрифта', fontSizeDescription: 'Масштабирует список загрузок и компактные элементы управления.', @@ -579,7 +579,7 @@ const ru = { standard: 'Стандартный', large: 'Крупный', listDensity: 'Плотность списка', - listDensityDescription: 'Изменяет высоту строк, отступы и масштаб индикаторов.', + listDensityDescription: 'Изменяет высоту строк, отступы и масштаб индикатора прогресса.', compact: 'Компактный', comfortable: 'Удобный', relaxed: 'Просторный', @@ -589,15 +589,15 @@ const ru = { menuBarIcon: 'Показывать значок в строке меню', statusIndicatorIcon: 'Показывать значок состояния', systemTrayIcon: 'Показывать значок в системном трее', - macosTrayDescription: 'Быстрый доступ из строки меню macOS.', - windowsTrayDescription: 'Быстрый доступ из области уведомлений Windows.', - linuxTrayDescription: 'Быстрый доступ из системного трея Linux при наличии.', - defaultTrayDescription: 'Быстрый доступ из области системного трея.', + macosTrayDescription: 'Обеспечивает быстрый доступ из строки меню macOS.', + windowsTrayDescription: 'Обеспечивает быстрый доступ из области уведомлений Windows.', + linuxTrayDescription: 'Обеспечивает быстрый доступ из трея рабочего стола или области состояния Linux (при наличии).', + defaultTrayDescription: 'Обеспечивает быстрый доступ из области системного трея ОС (при наличии).', }, network: { proxy: 'Прокси', mode: 'Режим', - modeDescription: 'Управляет использованием прокси для новых загрузок.', + modeDescription: 'Управляет использованием прокси для новых запросов на загрузку.', noProxy: 'Без прокси', systemProxy: 'Системный прокси', customProxy: 'Собственный прокси', @@ -605,21 +605,21 @@ const ru = { proxyHostDescription: 'Имя хоста, IP-адрес или URL HTTP-прокси.', proxyHostPlaceholder: '127.0.0.1 или http://127.0.0.1', proxyPort: 'Порт прокси', - proxyPortDescription: 'Допустимый диапазон: от 1 до 65535.', - noProxyDescription: 'Загрузки выполняются напрямую без прокси.', - systemProxyDescription: 'Загрузки используют системный прокси {{platform}}. Для скачивания файлов требуется HTTP/HTTPS-прокси, для медиа поддерживается SOCKS.', - customProxyDescription: 'Загрузки используют указанный HTTP-прокси для метаданных и скачивания.', - invalidCustomProxy: 'Укажите корректный хост и порт HTTP-прокси.', - incompleteCustomProxy: 'Введите хост и порт для использования прокси.', - checkingSystemProxy: 'Проверка системного прокси…', - detectedSystemProxy: 'Обнаружен системный прокси. Для обычных файлов нужен HTTP/HTTPS-прокси, для медиа поддерживается SOCKS.', - noSystemProxy: 'Системный прокси не обнаружен. Загрузки будут выполняться напрямую.', - systemProxyReadFailed: 'Не удалось прочитать настройки системного прокси. Выберите «Без прокси» или повторите попытку.', + proxyPortDescription: 'Допустимый диапазон от 1 до 65535.', + noProxyDescription: 'Загрузки игнорируют настроенные прокси.', + systemProxyDescription: 'Загрузки используют обнаруженный системный прокси {{platform}}. Для обычных загрузок файлов требуется HTTP- или HTTPS-прокси; для загрузки медиа можно использовать SOCKS.', + customProxyDescription: 'Загрузки используют настроенный HTTP-прокси для получения метаданных и движков скачивания.', + invalidCustomProxy: 'Введите корректный хост и порт HTTP-прокси, чтобы включить собственный прокси.', + incompleteCustomProxy: 'Введите хост и порт прокси, чтобы включить собственный прокси.', + checkingSystemProxy: 'Проверка конфигурации системного прокси…', + detectedSystemProxy: 'Обнаружен системный прокси. Для обычных загрузок файлов требуется HTTP- или HTTPS-прокси; для загрузки медиа можно использовать SOCKS.', + noSystemProxy: 'Подходящий системный прокси не обнаружен. Загрузки будут выполняться без прокси.', + systemProxyReadFailed: 'Не удалось прочитать конфигурацию системного прокси. Выберите «Без прокси» или повторите попытку, когда она станет доступна.', identity: 'Идентификация', customUserAgent: 'Собственный User-Agent', - userAgentDescription: 'Применяется при получении метаданных и загрузке файлов.', - userAgentPlaceholder: 'Оставьте пустым для использования значения по умолчанию', - userAgentOverrides: 'Переопределяет заголовок User-Agent. Оставьте пустым для значений по умолчанию.', + userAgentDescription: 'Применяется при получении метаданных и работе движков загрузки.', + userAgentPlaceholder: 'Оставьте пустым, чтобы использовать значение Firelink по умолчанию', + userAgentOverrides: 'Переопределяет исходящий заголовок User-Agent. Оставьте пустым, чтобы использовать значения Firelink по умолчанию.', chromeWindows: 'Chrome (Windows)', chromeMacos: 'Chrome (macOS)', edgeWindows: 'Edge (Windows)', @@ -631,23 +631,23 @@ const ru = { }, locations: { baseDownloadFolder: 'Основная папка загрузок', - baseDownloadFolderDescription: 'Папки категорий создаются внутри этой папки.', + baseDownloadFolderDescription: 'Автоматические папки категорий создаются внутри этой папки.', browse: 'Обзор…', baseFolderCreateFailed: 'Основная папка сохранена, но не удалось создать папки категорий: {{detail}}', baseFolderUpdated: 'Основная папка загрузок обновлена', - askWhereToSave: 'Запрашивать папку для сохранения при добавлении загрузок', - rememberLastUsedDownloadDirectory: 'Запоминать последнюю использованную папку', - rememberLastUsedDownloadDirectoryDescription: 'Использовать последнюю выбранную папку для следующих загрузок до перезапуска приложения.', - automaticCategorySubfolders: 'Автоматически раскладывать файлы по папкам категорий', - automaticCategorySubfoldersDescription: 'Если отключено, файлы сохраняются непосредственно в основную папку.', - categorySubfolders: 'Папки категорий', + askWhereToSave: 'Запрашивать место сохранения при добавлении загрузок', + rememberLastUsedDownloadDirectory: 'Запоминать последнюю использованную папку загрузки', + rememberLastUsedDownloadDirectoryDescription: 'Использовать последнюю папку, выбранную в окне добавления, для следующей загрузки до перезапуска приложения.', + automaticCategorySubfolders: 'Автоматически сохранять файлы в подпапки категорий', + automaticCategorySubfoldersDescription: 'Если отключено, автоматические загрузки используют основную папку.', + categorySubfolders: 'Подпапки категорий', relativeToBase: 'Относительно основной папки', disabled: 'Отключено', - categorySubfolder: 'Папка для категории «{{category}}»', - customFolder: 'Другая папка', + categorySubfolder: 'Подпапка «{{category}}»', + customFolder: 'Собственная папка', useAutomatic: 'Автоматически', resetDefaults: 'Сбросить по умолчанию', - resetToast: 'Настройки папок сброшены к значениям по умолчанию', + resetToast: 'Настройки папок категорий сброшены по умолчанию', }, siteLogins: { title: 'Учётные данные сайтов', @@ -656,7 +656,7 @@ const ru = { deleteCredential: 'Удалить учётные данные', deletedCredential: 'Учётные данные удалены', deleteFailed: 'Не удалось удалить учётные данные: {{detail}}', - addTitle: 'Добавить логин для сайта', + addTitle: 'Добавить учётные данные сайта', urlPattern: 'Шаблон URL:', urlPatternPlaceholder: 'например *.example.com или example.com/downloads', username: 'Имя пользователя:', @@ -665,58 +665,58 @@ const ru = { passwordPlaceholder: 'Пароль', saving: 'Сохранение…', addLogin: 'Добавить логин', - urlPatternRequired: 'Укажите шаблон URL.', - urlPatternWhitespace: 'Шаблон URL не должен содержать пробелы.', - usernameRequired: 'Укажите имя пользователя.', - passwordRequired: 'Укажите пароль.', - accessBeforeSave: 'Предоставьте доступ к хранилищу учётных данных перед сохранением.', - saveFailed: 'Не удалось безопасно сохранить учётные данные.', - addedCredential: 'Учётные данные добавлены', + urlPatternRequired: 'Требуется указать шаблон URL.', + urlPatternWhitespace: 'Шаблон URL не может содержать пробелы.', + usernameRequired: 'Требуется указать имя пользователя.', + passwordRequired: 'Требуется указать пароль.', + accessBeforeSave: 'Предоставьте доступ к хранилищу учётных данных перед сохранением логина сайта.', + saveFailed: 'Не удалось безопасно сохранить учётные данные сайта.', + addedCredential: 'Добавлены учётные данные сайта', }, power: { title: 'Управление питанием', - preventSleep: 'Запрещать переход в спящий режим во время активных загрузок', - preventSleepDescription: 'Экран может выключаться. Firelink предотвращает только засыпание компьютера во время скачивания.', + preventSleep: 'Запрещать спящий режим системы во время активных загрузок', + preventSleepDescription: 'Экран всё ещё может выключаться. Firelink предотвращает засыпание устройства только настолько, чтобы завершить активные передачи.', }, engine: { - title: 'Движки скачивания и медиа', - description: 'Результаты проверки сохраняются на время сеанса. «Перепроверить» запускает повторную валидацию.', + title: 'Загрузчик медиа и движки', + description: 'Успешные результаты используются повторно в течение сеанса приложения. Повторная проверка запускает реальную валидацию заново.', recheck: 'Перепроверить движки', - coreDownloader: 'Основной модуль скачивания (aria2)', + coreDownloader: 'Основной загрузчик (aria2)', version: 'Версия:', status: 'Статус:', mediaExtractors: 'Экстракторы медиа', browserCookiesSource: 'Источник файлов cookie браузера:', - cookieDescription: 'yt-dlp использует куки браузера для доступа к закрытым видео и обхода ограничений. Firelink не сохраняет куки браузера.', + cookieDescription: 'yt-dlp читает файлы cookie браузера для обхода ограничений на загрузку видео или доступа к закрытым медиа. Firelink не сохраняет файлы cookie браузера.', none: 'Не использовать', }, integrations: { title: 'Подключение расширения браузера', - description: 'Перехватывайте загрузки из браузера за 3 простых шага.', + description: 'Перехватывайте загрузки прямо из браузера за три простых шага.', portablePairingEnabled: 'Портативное сопряжение включено', pairingTokenPersisted: 'Токен сопряжения сохранён', - portablePersistedDescription: 'Токен сопряжения хранится в этой портативной папке Firelink. При перемещении папки сопряжение сохранится.', - systemPersistedDescription: 'Токен сопряжения сохранён в системном хранилище и сохранится после перезапуска.', + portablePersistedDescription: 'Ваш токен сопряжения хранится в этой портативной папке Firelink и сохранится при перемещении папки. Относитесь к папке как к конфиденциальным данным.', + systemPersistedDescription: 'Ваш токен сопряжения сохранён в системном хранилище учётных данных и сохранится после перезапуска.', portablePairingAvailable: 'Доступно портативное сопряжение', credentialStorageNeeded: 'Требуется доступ к хранилищу учётных данных', - portableAvailableDescription: 'Токен сопряжения сохранён в портативной папке Firelink. Включите его здесь, чтобы ознакомиться с условиями.', - credentialStorageDescription: 'Firelink требуется доступ к системному хранилищу учётных данных для сохранения токена сопряжения между запусками. Без этого расширение будет работать только в текущем сеансе.', + portableAvailableDescription: 'Ваш токен сопряжения хранится в этой портативной папке Firelink и сохранится после перезапуска. Включите его здесь, чтобы ознакомиться с предупреждением о портативном хранилище.', + credentialStorageDescription: 'Firelink требуется доступ к системному хранилищу учётных данных для безопасного сохранения токена сопряжения между перезапусками приложения. В настоящее время ваше расширение будет оставаться подключённым только на время этого сеанса.', reviewPortablePairing: 'Проверить портативное сопряжение', - grantCredentialAccess: 'Предоставить доступ', + grantCredentialAccess: 'Предоставить доступ к хранилищу', copyToken: 'Скопировать токен', - tokenDescription: 'Этот токен используется для авторизации расширения браузера.', + tokenDescription: 'Этот защищённый токен авторизует ваше расширение браузера.', tokenCopied: 'Токен скопирован в буфер обмена!', tokenCopyFailed: 'Не удалось скопировать токен: {{detail}}', - pairingTokenRegenerated: 'Токен сопряжения обновлён', - regenerateFailed: 'Не удалось обновить токен сопряжения: {{detail}}', - getExtension: 'Установить расширение', - extensionDescription: 'Установите расширение Firelink Companion для Firefox или браузеров на базе Chromium.', + pairingTokenRegenerated: 'Токен сопряжения сгенерирован заново', + regenerateFailed: 'Не удалось сгенерировать токен сопряжения заново: {{detail}}', + getExtension: 'Получить расширение', + extensionDescription: 'Установите Firelink Companion для браузеров Firefox или Chromium.', firefoxAddons: 'Дополнения Firefox', chromiumZip: 'Chromium ZIP', pasteConnect: 'Вставить и подключить', - pasteConnectDescription: 'Нажмите на значок Firelink на панели браузера и вставьте скопированный токен.', + pasteConnectDescription: 'Нажмите на значок Firelink на панели инструментов браузера и вставьте скопированный токен.', extensionServerStatus: 'Статус сервера расширения:', - listening: '● Работает на 127.0.0.1:{{port}}', + listening: '● Прослушивание 127.0.0.1:{{port}}', unavailable: '● Сервер недоступен', }, about: { @@ -726,19 +726,19 @@ const ru = { description: 'Кроссплатформенный менеджер загрузок для macOS, Windows и Linux.', sourceCode: 'Исходный код', source: 'Исходный код', - upToDate: 'У вас установлена последняя версия Firelink ({{version}}).', + upToDate: 'У вас установлена актуальная версия Firelink ({{version}}).', updateAvailable: 'Доступна новая версия Firelink {{version}}.', viewRelease: 'Просмотреть релиз', updates: 'Обновления', checkForUpdates: 'Проверить обновления', - updateDescription: 'Firelink проверяет наличие новых версий на GitHub.', + updateDescription: 'Firelink проверяет наличие новых версий в GitHub Releases.', checking: 'Проверка…', checkNow: 'Проверить сейчас', automaticUpdates: 'Автоматически проверять наличие обновлений', createdBy: 'Разработчик: NimBold', mitLicense: 'Лицензия MIT', credits: 'Благодарности: aria2, yt-dlp, FFmpeg и Deno.', - copyright: '© 2026 NimBold. Все права защищены.', + copyright: 'Copyright © 2026 NimBold. Все права защищены.', }, }, status: { diff --git a/src/i18n/catalogs/uk.ts b/src/i18n/catalogs/uk.ts index 401cc68..cdfb2d4 100644 --- a/src/i18n/catalogs/uk.ts +++ b/src/i18n/catalogs/uk.ts @@ -53,8 +53,8 @@ const uk = { }, removeDownload: { title: 'Видалити завантаження', - confirmationSingle: 'Ви впевнені, що хочете видалити цей елемент зі списку? Ви також можете видалити сам файл з вашого жорсткого диска.', - confirmationMultiple: 'Ви впевнені, що хочете видалити ці {{count}} елементів зі списку? Ви також можете видалити самі файли з вашого жорсткого диска.', + confirmationSingle: 'Ви впевнені, що хочете видалити цей елемент зі списку? Ви також можете видалити сам файл з вашого диска.', + confirmationMultiple: 'Ви впевнені, що хочете видалити вибрані елементи ({{count}}) зі списку? Ви також можете видалити самі файли з диска.', errorSummary: '{{succeeded}} видалено, {{failed}} не вдалося: {{detail}}', remove: 'Видалити', deleteFile: 'Видалити файл', @@ -91,8 +91,8 @@ const uk = { retrying: 'Повторна спроба', }, values: { - processing: 'Обробка...', - muxing: 'Мультиплексування...', + processing: 'Обробка…', + muxing: 'Об\'єднання потоків…', }, }, speedLimiter: { @@ -103,7 +103,7 @@ const uk = { description: 'Застосовується до нових і активних завантажень aria2 та нових медіазавантажень yt-dlp. Індивідуальні обмеження для кожного завантаження залишаються прикріпленими до цих завантажень.', quickPresets: 'Швидкі пресети', removePreset: 'Видалити пресет {{value}} {{unit}}', - customPresetIn: 'Свій пресет в {{unit}}', + customPresetIn: 'Свій пресет у {{unit}}', addQuickPreset: 'Додати швидкий пресет', globalLimitSaved: 'Глобальне обмеження збережено на рівні {{value}} {{unit}}', globalLimitDisabled: 'Глобальне обмеження швидкості вимкнено', @@ -122,8 +122,8 @@ const uk = { error: 'Помилка', warn: 'Попередження', info: 'Інфо', - debug: 'Дебаг', - trace: 'Трейс', + debug: 'Налагодження', + trace: 'Трасування', }, pauseLogging: 'Призупинити діагностичне логування', enableLogging: 'Увімкнути діагностичне логування', @@ -168,14 +168,14 @@ const uk = { systemPermissions: 'Системні дозволи', macPermissionDescription: 'Сон, перезавантаження та вимкнення вимагають дозволу на автоматизацію macOS для системних подій (System Events).', permissionGranted: 'Дозвіл на автоматизацію надано', - permissionChecking: 'Перевірка дозволу на автоматизацію...', + permissionChecking: 'Перевірка дозволу на автоматизацію…', permissionMissing: 'Відсутній дозвіл на автоматизацію', revokePermission: 'Відкликати дозвіл', grantPermission: 'Надати дозвіл', permissionAvailable: 'Дозвіл на автоматизацію доступний.', permissionMissingDetails: 'Відсутній дозвіл на автоматизацію. Увімкніть Firelink у розділі Автоматизація для системних подій у Налаштуваннях системи.', revokePermissionDetails: 'macOS не дозволяє Firelink безпосередньо відкликати дозвіл на автоматизацію. Відкличте доступ до системних подій у Налаштуваннях системи, а потім поверніться до Firelink.', - requestingPermission: 'Запит дозволу на автоматизацію...', + requestingPermission: 'Запит дозволу на автоматизацію…', enablePermissionDetails: 'Увімкніть Firelink у розділі Автоматизація для системних подій у Налаштуваннях системи, а потім поверніться до Firelink.', systemActions: 'Системні дії', windowsActionsDescription: 'Сон, перезавантаження та вимкнення використовують системні привілеї Windows. Firelink повідомляє про будь-яку відхилену дію під час її виконання; жодні постійні дозволи заздалегідь не вимагаються.', @@ -263,8 +263,8 @@ const uk = { windows: 'Диспетчер облікових даних Windows', linux: 'ваше сховище облікових даних Linux', macos: 'В\'язка ключів macOS (Keychain)', - system: "сховище облікових даних цієї системи", - siteCredentials: "сховище облікових даних системи", + system: 'сховище облікових даних цієї системи', + siteCredentials: 'сховище облікових даних системи', }, grantLabelPortable: 'Продовжити', grantLabelMacos: 'Надати доступ', @@ -281,7 +281,7 @@ const uk = { defaultHint: 'Якщо ви виберете "Пізніше", розширення працюватиме лише для цього сеансу.', enableFromSettings: 'Ви можете увімкнути сховище будь-коли в Налаштування > Інтеграції.', later: 'Пізніше', - enabling: 'Увімкнення...', + enabling: 'Увімкнення…', timeout: 'Час очікування запиту до сховища облікових даних вичерпано. Ви можете вибрати "Пізніше" і спробувати ще раз.', unavailable: '{{store}} недоступно.', accessRequired: 'Надайте доступ до сховища облікових даних перед повторною генерацією токена підключення.', @@ -317,7 +317,7 @@ const uk = { notificationsFailed: 'Не вдалося налаштувати сповіщення: {{detail}}', }, sidebar: { - deleteQueueConfirm: 'Видалити чергу "{{name}}"? Її незавершені завантаження перемістяться до Головної черги (Main Queue).', + deleteQueueConfirm: 'Видалити чергу "{{name}}"? Її незавершені завантаження перемістяться до Головної черги.', deleteQueueFailed: 'Не вдалося видалити чергу: {{detail}}', queueNameEmpty: 'Назва черги не може бути порожньою', queueNameExists: 'Черга з такою назвою вже існує', @@ -362,7 +362,7 @@ const uk = { nonResumableMany: '{{count}} завантажень не підтримують відновлення. Якщо ви призупините їх, вам доведеться почати спочатку пізніше. Ви впевнені, що хочете призупинити?', interactionError: '{{message}}: {{detail}}', openFileFailed: 'Не вдалося відкрити завантажений файл', - revealFileFailed: 'Не вдалося показати завантаження в Finder / Провіднику', + revealFileFailed: 'Не вдалося показати завантаження в Finder', pauseFailed: 'Не вдалося призупинити завантаження', resumeFailed: 'Не вдалося відновити {{fileName}}', moveManyFailed: 'Не вдалося перемістити завантаження до черги', @@ -398,9 +398,9 @@ const uk = { speedInvalid: 'Обмеження швидкості має бути більшим за нуль', duplicateResolveFailed: 'Не вдалося вирішити конфлікт дублікатів завантажень: {{detail}}', addedWithFailures: '{{added}} додано, {{failed}} не вдалося. {{detail}}', - addedOne: '1 завантаження додано', - addedMany: '{{count}} завантажень додано', - updatedOne: '1 завантаження оновлено', + addedOne: 'Додано 1 завантаження', + addedMany: 'Додано {{count}} завантажень', + updatedOne: 'Оновлено 1 завантаження', updatedMany: 'Оновлено {{count}} завантажень', urlAlreadyQueued: 'URL-адреса вже в черзі', destinationConflict: 'Інше вибране завантаження використовує це місце призначення', @@ -414,8 +414,8 @@ const uk = { pauseBeforeReplace: 'Призупиніть {{file}} перед заміною.', cannotReplace: 'Неможливо замінити {{file}}: файл не належить до завантажень Firelink.', downloadLinks: 'Посилання для завантаження', - pastePlaceholder: 'Вставте URL-адреси HTTP, HTTPS, FTP або SFTP сюди...\n\nДля медіазавантажень вставте посилання з YouTube, X, TikTok, Instagram, Reddit тощо.', - playlistSummary: 'Плейлист “{{title}}”: {{loaded}}{{total}} елементів завантажено{{truncated}}{{skipped}}', + pastePlaceholder: 'Вставте URL-адреси HTTP, HTTPS, FTP або SFTP сюди…\n\nДля медіазавантажень вставте посилання з YouTube, X, TikTok, Instagram, Reddit тощо.', + playlistSummary: 'Плейлист “{{title}}”: {{loaded}} з {{total}} елементів завантажено{{truncated}}{{skipped}}', safeEntryLimit: ' (досягнуто безпечного ліміту елементів)', selectedSummary: '{{ready}} вибрано готових, {{fallback}} резервних, {{mediaRetry}} повторних медіа, {{blocked}} заблоковано', clearSelection: 'Очистити вибір', @@ -431,8 +431,8 @@ const uk = { downloadPreview: 'Попередній перегляд завантаження', noLinks: 'Поки що немає доданих посилань.', selectItem: 'Вибрати {{file}}', - fetchingPlaylist: 'Отримання плейлиста...', - fetching: 'Отримання...', + fetchingPlaylist: 'Отримання плейлиста…', + fetching: 'Отримання…', unsafeUrl: 'Небезпечна URL-адреса', playlistFailed: 'Помилка плейлиста', metadataFailed: 'Помилка метаданих', @@ -441,12 +441,12 @@ const uk = { ready: 'Готово', mediaFormat: 'Формат медіа', playlistItem: 'Елемент плейлиста {{index}}', - fetchingMediaStreams: 'Отримання медіапотоків...', + fetchingMediaStreams: 'Отримання медіапотоків…', availableStreams: 'Доступні потоки', availableMediaStreams: 'Доступні медіапотоки', metadataUnavailable: 'Метадані недоступні. Оновіть метадані перед додаванням цього медіа.', saveLocation: 'Місце збереження', - browse: 'Огляд', + browse: 'Огляд…', categoryFolders: 'Файли будуть організовані в папки категорій.', sharedFolder: 'Усі вибрані завантаження використовуватимуть цю папку.', dedicatedFolder: 'Зберегти в новій папці', @@ -480,13 +480,13 @@ const uk = { selectAtLeastOne: 'Виберіть хоча б одне завантаження.', correctInvalidOne: 'Виправте або видаліть {{count}} недійсну URL-адресу перед продовженням.', correctInvalidFew: 'Виправте або видаліть {{count}} недійсні URL-адреси перед продовженням.', - correctInvalidMany: 'Виправте або видаліть {{count}} недійсні URL-адреси перед продовженням.', - waitingForMetadataOne: 'Очікування метаданих для {{count}} завантаження.', - waitingForMetadataFew: 'Очікування метаданих для {{count}} завантажень.', - waitingForMetadataMany: 'Очікування метаданих для {{count}} завантажень.', + correctInvalidMany: 'Виправте або видаліть {{count}} недійсних URL-адрес перед продовженням.', + waitingForMetadataOne: 'Очікування метаданих для {{count}} завантаження…', + waitingForMetadataFew: 'Очікування метаданих для {{count}} завантажень…', + waitingForMetadataMany: 'Очікування метаданих для {{count}} завантажень…', removeUnsafeOne: 'Видаліть {{count}} небезпечну URL-адресу перед продовженням.', removeUnsafeFew: 'Видаліть {{count}} небезпечні URL-адреси перед продовженням.', - removeUnsafeMany: 'Видаліть {{count}} небезпечні URL-адреси перед продовженням.', + removeUnsafeMany: 'Видаліть {{count}} небезпечних URL-адрес перед продовженням.', mediaMetadataUnavailableSummaryOne: 'Метадані медіа недоступні для {{count}} елемента. Оновіть метадані перед додаванням.', mediaMetadataUnavailableSummaryFew: 'Метадані медіа недоступні для {{count}} елементів. Оновіть метадані перед додаванням.', mediaMetadataUnavailableSummaryMany: 'Метадані медіа недоступні для {{count}} елементів. Оновіть метадані перед додаванням.', @@ -512,7 +512,7 @@ const uk = { }, common: { thisOs: 'ця ОС', - checking: 'Перевірка...', + checking: 'Перевірка…', ready: 'Готово', errorMissing: 'Помилка / Відсутнє', hideTechnicalDetails: 'Сховати технічні деталі', @@ -632,7 +632,7 @@ const uk = { locations: { baseDownloadFolder: 'Базова папка завантажень', baseDownloadFolderDescription: 'Автоматичні папки категорій створюються всередині цієї папки.', - browse: 'Огляд', + browse: 'Огляд…', baseFolderCreateFailed: 'Базова папка збережена, але папки категорій не вдалося створити: {{detail}}', baseFolderUpdated: 'Базову папку завантажень оновлено', askWhereToSave: 'Запитувати, де зберігати під час додавання завантажень', @@ -700,7 +700,7 @@ const uk = { portablePairingAvailable: 'Доступно портативне підключення', credentialStorageNeeded: 'Потрібне сховище облікових даних', portableAvailableDescription: 'Ваш токен підключення збережено разом із цією портативною папкою Firelink, і він зберігатиметься після перезапусків. Увімкніть його тут, щоб переглянути попередження про портативне сховище.', - credentialStorageDescription: "Firelink потребує доступу до сховища облікових даних цієї системи, щоб безпечно зберегти ваш токен підключення після перезапусків програми. Наразі ваше розширення залишатиметься підключеним лише для цього сеансу.", + credentialStorageDescription: 'Firelink потребує доступу до сховища облікових даних цієї системи, щоб безпечно зберегти ваш токен підключення після перезапусків програми. Наразі ваше розширення залишатиметься підключеним лише для цього сеансу.', reviewPortablePairing: 'Переглянути портативне підключення', grantCredentialAccess: 'Надати доступ до облікових даних', copyToken: 'Скопіювати токен', @@ -714,7 +714,7 @@ const uk = { firefoxAddons: 'Додатки Firefox', chromiumZip: 'Chromium ZIP', pasteConnect: 'Вставити та підключити', - pasteConnectDescription: "Натисніть на іконку Firelink на панелі інструментів вашого браузера та вставте скопійований токен.", + pasteConnectDescription: 'Натисніть на іконку Firelink на панелі інструментів вашого браузера та вставте скопійований токен.', extensionServerStatus: 'Статус сервера розширень:', listening: '● Прослуховування на 127.0.0.1:{{port}}', unavailable: '● Сервер недоступний', @@ -732,7 +732,7 @@ const uk = { updates: 'Оновлення', checkForUpdates: 'Перевірити наявність оновлень', updateDescription: 'Firelink перевіряє GitHub Releases на наявність нових версій.', - checking: 'Перевірка...', + checking: 'Перевірка…', checkNow: 'Перевірити зараз', automaticUpdates: 'Автоматично перевіряти наявність оновлень', createdBy: 'Створено NimBold', diff --git a/src/i18n/catalogs/zh-CN.ts b/src/i18n/catalogs/zh-CN.ts index 53af408..9360b81 100644 --- a/src/i18n/catalogs/zh-CN.ts +++ b/src/i18n/catalogs/zh-CN.ts @@ -3,7 +3,7 @@ const zhCN = { library: '库', filters: { all: '全部', - active: '活动', + active: '进行中', completed: '已完成', unfinished: '未完成', }, @@ -32,15 +32,15 @@ const zhCN = { continue: '继续', dismissNotification: '关闭通知', queueName: '队列名称', - addNewQueue: '添加新队列', - startQueue: '开始队列', + addNewQueue: '新建队列', + startQueue: '启动队列', pauseQueue: '暂停队列', renameQueue: '重命名队列', deleteQueue: '删除队列', }, dialogs: { errorBoundary: { - title: '发生错误。', + title: '出现了一些问题。', description: 'React 组件树中发生了严重错误。下面的错误详情可以帮助确定根本原因。', reload: '重新加载应用', }, @@ -53,8 +53,8 @@ const zhCN = { }, removeDownload: { title: '移除下载', - confirmationSingle: '您确定要从列表中移除此项目吗?您也可以选择从硬盘中删除底层文件。', - confirmationMultiple: '您确定要从列表中移除这 {{count}} 个项目吗?您也可以选择从硬盘中删除底层文件。', + confirmationSingle: '您确定要从列表中移除此项目吗?您也可以选择同时从磁盘中删除底层文件。', + confirmationMultiple: '您确定要从列表中移除这 {{count}} 个项目吗?您也可以选择同时从磁盘中删除底层文件。', errorSummary: '成功移除 {{succeeded}} 个,失败 {{failed}} 个:{{detail}}', remove: '移除', deleteFile: '删除文件', @@ -71,13 +71,13 @@ const zhCN = { moveUp: '上移', moveDown: '下移', pause: '暂停', - start: '开始', - resume: '继续', + start: '启动', + resume: '恢复', options: '选项', }, size: { downloadedOf: '已下载 {{downloaded}} / 共 {{total}} {{unit}}', - downloadedOfApproximate: '已下载 {{downloaded}} / 约 {{total}} {{unit}}', + downloadedOfApproximate: '已下载 {{downloaded}} / 预估共 {{total}} {{unit}}', }, status: { ready: '就绪', @@ -91,31 +91,31 @@ const zhCN = { retrying: '重试中', }, values: { - processing: '处理中...', - muxing: '混流中...', + processing: '处理中…', + muxing: '混流中…', }, }, speedLimiter: { title: '速度限制', - unlimited: '无限制', + unlimited: '不限速', saveLimit: '保存限制', globalSpeedLimit: '全局速度限制', - description: '适用于新的和活动的 aria2 传输以及新的 yt-dlp 媒体下载。每个下载的显式限制仍然附加到这些传输上。', - quickPresets: '快速预设', + description: '适用于新的和活动中的 aria2 传输以及新的 yt-dlp 媒体下载。单个下载的专属限制仍将保留。', + quickPresets: '快捷预设', removePreset: '移除 {{value}} {{unit}} 预设', customPresetIn: '自定义预设 (单位:{{unit}})', - addQuickPreset: '添加快速预设', + addQuickPreset: '添加快捷预设', globalLimitSaved: '全局限制已保存为 {{value}} {{unit}}', globalLimitDisabled: '全局速度限制已禁用', saveFailed: '无法保存全局速度限制:{{detail}}', - presetAlreadyExists: '{{value}} {{unit}} 已在快速预设中', - presetAdded: '已添加 {{value}} {{unit}} 快速预设', - presetRemoved: '已移除 {{value}} {{unit}} 快速预设', + presetAlreadyExists: '{{value}} {{unit}} 已在快捷预设中', + presetAdded: '已添加 {{value}} {{unit}} 快捷预设', + presetRemoved: '已移除 {{value}} {{unit}} 快捷预设', }, logs: { title: '日志', entries: '({{count}} 条)', - collecting: '收集...', + collecting: '收集中', off: '关闭', allLevels: '所有级别', levels: { @@ -132,7 +132,7 @@ const zhCN = { exportButton: '导出日志', logFiles: '日志文件', localDiagnostics: '本地诊断:', - diagnosticsDescription: '诊断收集需要主动开启,受范围限制并且在本地进行。常见的密钥、URL 查询参数和主目录路径在显示和导出时都会被隐藏。不会自动上传任何数据。', + diagnosticsDescription: '诊断信息的收集需要主动开启,范围有限,并且仅在本地进行。常见的密钥、URL 查询参数和主目录路径在显示和导出时都会被隐藏。不会自动上传任何数据。', noEntries: '尚无持久化的日志条目。', disabledDescription: '诊断日志记录已关闭。现有的支持日志将在可用时显示在此处。', copy: '复制', @@ -158,24 +158,24 @@ const zhCN = { timing: '时间', startTime: '开始时间', stopTime: '停止时间', - timingDescription: '如果在开始时间 Firelink 处于休眠状态,它将在当天晚些时候恢复时启动所选队列,除非停止时间已过。', + timingDescription: '如果在开始时间 Firelink 处于休眠状态,它会在当天晚些时候恢复运行时启动所选队列,除非停止时间已过。', runEveryDay: '每天运行', - queuesToSchedule: '要调度的队列', + queuesToSchedule: '要计划运行的队列', defaultQueue: '默认队列', - afterCompletion: '完成之后', + afterCompletion: '完成后', afterCompletionDescription: '选择计划任务启动的下载完成后的操作。', actionWarning: '此操作可能会中断计算机上的其他工作。Firelink 会在计划的队列完成后立即执行它。', systemPermissions: '系统权限', macPermissionDescription: '睡眠、重启和关机需要 macOS 系统事件的自动化权限。', permissionGranted: '已授予自动化权限', - permissionChecking: '正在检查自动化权限...', + permissionChecking: '正在检查自动化权限…', permissionMissing: '缺少自动化权限', revokePermission: '撤销权限', grantPermission: '授予权限', permissionAvailable: '自动化权限可用。', permissionMissingDetails: '缺少自动化权限。请在“系统设置”的“系统事件”的“自动化”下启用 Firelink。', revokePermissionDetails: 'macOS 不允许 Firelink 直接撤销自动化权限。请在“系统设置”中撤销“系统事件”访问权限,然后返回 Firelink。', - requestingPermission: '正在请求自动化权限...', + requestingPermission: '正在请求自动化权限…', enablePermissionDetails: '请在“系统设置”的“系统事件”的“自动化”下启用 Firelink,然后返回 Firelink。', systemActions: '系统操作', windowsActionsDescription: '睡眠、重启和关机使用 Windows 系统权限。Firelink 在运行时会报告任何被拒绝的操作;不会提前声明任何永久权限。', @@ -200,7 +200,7 @@ const zhCN = { sa: '六', }, postActions: { - none: '无操作', + none: '不执行任何操作', sleep: '睡眠', restart: '重启', shutdown: '关机', @@ -216,11 +216,11 @@ const zhCN = { category: '类别', lastTry: '上次尝试', dateAdded: '添加日期', - destination: '目标路径', + destination: '保存目录', lastError: '上次错误', saved: ' (已保存)', defaultValue: ' (默认)', - savedTooltip: '已为此下载保存;设置的更改将应用于新的下载。', + savedTooltip: '已为此下载保存;设置中的更改将应用于新的下载。', defaultTooltip: '对新的下载使用当前默认值。', identityReadOnly: '文件标识为只读。传输设置会保存以备重新下载使用。', transferSettings: '停止或暂停后可以更改传输设置。当前的传输会保留其现有的后端选项。', @@ -244,11 +244,11 @@ const zhCN = { checksum: '校验和', verify: '验证', algorithm: '算法', - digest: '摘要', - expectedDigest: '预期摘要', + digest: '哈希值', + expectedDigest: '预期哈希值', cookies: 'Cookie', headers: '请求头', - mirrors: '镜像', + mirrors: '镜像源', username: '用户名', password: '密码', enterValidUrl: '请输入有效的 URL。', @@ -281,7 +281,7 @@ const zhCN = { defaultHint: '如果您选择“稍后”,扩展仅在本次会话中工作。', enableFromSettings: '您可以随时从“设置 > 集成”中启用存储。', later: '稍后', - enabling: '正在启用...', + enabling: '正在启用…', timeout: '凭据存储请求超时。您可以选择“稍后”并重试。', unavailable: '{{store}}不可用。', accessRequired: '在重新生成配对令牌之前,请授予凭据存储访问权限。', @@ -321,13 +321,13 @@ const zhCN = { deleteQueueFailed: '无法删除队列:{{detail}}', queueNameEmpty: '队列名称不能为空', queueNameExists: '同名队列已存在', - startQueueFailed: '无法开始队列:{{detail}}', + startQueueFailed: '无法启动队列:{{detail}}', pauseQueueFailed: '无法暂停队列:{{detail}}', }, downloadTable: { unknownQueue: '未知队列', allDownloads: '所有下载', - active: '活动', + active: '进行中', completed: '已完成', unfinished: '未完成', headers: { @@ -348,7 +348,7 @@ const zhCN = { resetLayout: '重置列布局', }, addDownload: '添加下载', - resumeAll: '全部继续', + resumeAll: '全部恢复', pauseAll: '全部暂停', queueEmpty: '队列为空', noCompletedDownloads: '没有已完成的下载', @@ -364,7 +364,7 @@ const zhCN = { openFileFailed: '无法打开下载的文件', revealFileFailed: '无法在文件管理器中显示下载', pauseFailed: '无法暂停下载', - resumeFailed: '无法继续 {{fileName}}', + resumeFailed: '无法恢复 {{fileName}}', moveManyFailed: '无法将下载移动到队列', moveOneFailed: '无法将下载移动到队列', copyAddressesFailed: '无法复制地址', @@ -372,19 +372,19 @@ const zhCN = { copyPathFailed: '无法复制文件路径', missingFileName: '缺少文件名', redownloadFailed: '重新下载失败', - startResume: '开始/继续', + startResume: '启动/恢复', addToQueue: '添加到队列', copyAddress: '复制地址', remove: '移除', open: '打开', showInFolder: '在文件夹中显示', pause: '暂停', - start: '开始', - resume: '继续', + start: '启动', + resume: '恢复', redownload: '重新下载', copyFilePath: '复制文件路径', properties: '属性', - backendRejectedStart: '后端拒绝了开始/继续请求。', + backendRejectedStart: '后端拒绝了启动/恢复请求。', transferActive: '传输处于活动状态时无法更改属性。请先暂停它。', redownloadNotFound: '无法重新下载:未找到下载。', redownloadActive: '无法重新下载{{status}}的下载。请先暂停或等待其完成。', @@ -406,7 +406,7 @@ const zhCN = { destinationConflict: '其他选定的下载已使用此目标路径', existingDownloadDestination: '现有的 Firelink 下载已使用此目标路径', matchingDownloadFilename: '已有一个未完成的下载使用此文件名', - fileExistsOnDisk: '磁盘上已存在该文件;请重命名或跳过以避免删除无关数据', + fileExistsOnDisk: '磁盘上已存在该文件;请重命名或跳过以避免覆盖无关数据', backendRejectedStart: '后端拒绝开始下载。', playlistNoEntries: '播放列表不包含可下载的条目', invalidMediaMetadata: '媒体元数据无效或未找到格式', @@ -414,7 +414,7 @@ const zhCN = { pauseBeforeReplace: '请在替换 {{file}} 前暂停它。', cannotReplace: '无法替换 {{file}}:文件不属于 Firelink 下载。', downloadLinks: '下载链接', - pastePlaceholder: '在此粘贴 HTTP、HTTPS、FTP 或 SFTP URL...\n\n对于媒体下载,请粘贴来自 YouTube、X、TikTok、Instagram、Reddit 等的链接。', + pastePlaceholder: '在此粘贴 HTTP、HTTPS、FTP 或 SFTP URL…\n\n对于媒体下载,请粘贴来自 YouTube、X、TikTok、Instagram、Reddit 等的链接。', playlistSummary: '播放列表“{{title}}”:已加载 {{loaded}} / {{total}} 个条目{{truncated}}{{skipped}}', safeEntryLimit: ' (达到安全条目限制)', selectedSummary: '准备就绪 {{ready}} 个,后备项 {{fallback}} 个,媒体重试 {{mediaRetry}} 个,已屏蔽 {{blocked}} 个', @@ -423,7 +423,7 @@ const zhCN = { refreshMetadata: '刷新元数据', files: '文件', required: '必需', - free: '空闲', + free: '可用空间', preview: '预览', file: '文件', size: '大小', @@ -431,17 +431,17 @@ const zhCN = { downloadPreview: '下载预览', noLinks: '尚未添加任何链接。', selectItem: '选择 {{file}}', - fetchingPlaylist: '正在获取播放列表...', - fetching: '正在获取...', + fetchingPlaylist: '正在获取播放列表…', + fetching: '正在获取…', unsafeUrl: '不安全的 URL', playlistFailed: '播放列表获取失败', metadataFailed: '元数据获取失败', - fallback: '后备项', + fallback: '备用项', invalid: '无效', ready: '就绪', mediaFormat: '媒体格式', playlistItem: '播放列表项目 {{index}}', - fetchingMediaStreams: '正在获取媒体流...', + fetchingMediaStreams: '正在获取媒体流…', availableStreams: '可用流', availableMediaStreams: '可用的媒体流', metadataUnavailable: '元数据不可用。在添加此媒体之前,请刷新元数据。', @@ -457,9 +457,9 @@ const zhCN = { dedicatedFolderNameRequired: '保存前请输入文件夹名称。', transferSettings: '传输设置', connectionsPerFile: '每个文件的连接数', - connectionsPerFileAria: '每个文件的连接数 (Aria)', + connectionsPerFileAria: '每个文件的连接数', limitSpeedPerFile: '限制每个文件的速度', - speedLimitPerFileAria: '每个文件的速度限制 (Aria)', + speedLimitPerFileAria: '每个文件的速度限制', authorization: '授权', useAuthorization: '使用授权', username: '用户名', @@ -472,7 +472,7 @@ const zhCN = { requestHeaders: '请求头', cookies: 'Cookie', cookiePlaceholder: 'name=value; other=value', - mirrors: '镜像', + mirrors: '镜像源', cancel: '取消', startDownloads: '开始下载', addToQueue: '添加到队列', @@ -501,7 +501,7 @@ const zhCN = { settings: { tabs: { downloads: '下载', - lookAndFeel: '外观', + lookAndFeel: '外观', network: '网络', locations: '位置', siteLogins: '站点登录', @@ -512,7 +512,7 @@ const zhCN = { }, common: { thisOs: '此操作系统', - checking: '正在检查...', + checking: '正在检查…', ready: '就绪', errorMissing: '错误 / 缺失', hideTechnicalDetails: '隐藏技术详细信息', @@ -611,7 +611,7 @@ const zhCN = { customProxyDescription: '下载使用配置的 HTTP 代理端点来获取元数据和进行引擎下载。', invalidCustomProxy: '输入有效的 HTTP 代理主机和端口以启用自定义代理。', incompleteCustomProxy: '输入代理主机和端口以启用自定义代理。', - checkingSystemProxy: '正在检查系统代理配置...', + checkingSystemProxy: '正在检查系统代理配置…', detectedSystemProxy: '检测到系统代理。普通文件下载需要 HTTP 或 HTTPS 端点;媒体下载可以使用 SOCKS。', noSystemProxy: '未检测到可用的系统代理。下载将不使用代理。', systemProxyReadFailed: '无法读取系统代理配置。请选择“无代理”,或者在其可用时重试。', @@ -663,7 +663,7 @@ const zhCN = { password: '密码:', usernamePlaceholder: '用户名', passwordPlaceholder: '密码', - saving: '正在保存...', + saving: '正在保存…', addLogin: '添加登录', urlPatternRequired: 'URL 模式是必需的。', urlPatternWhitespace: 'URL 模式不能包含空格。', @@ -732,7 +732,7 @@ const zhCN = { updates: '更新', checkForUpdates: '检查更新', updateDescription: 'Firelink 会在 GitHub Releases 检查新版本。', - checking: '正在检查...', + checking: '正在检查…', checkNow: '立即检查', automaticUpdates: '自动检查更新', createdBy: '由 NimBold 创建', @@ -743,10 +743,10 @@ const zhCN = { }, status: { ready: '就绪', - active: '{{count}} 个活动', + active: '{{count}} 个进行中', queued: '{{count}} 个排队', done: '{{count}} 个完成', }, -}; +} as const; export default zhCN;