fix(properties): harden protocol-aware resume recovery

This commit is contained in:
NimBold
2026-08-04 23:37:56 +03:30
parent 135ba75a69
commit 48a727798c
18 changed files with 645 additions and 95 deletions
+7 -1
View File
@@ -221,6 +221,11 @@ const common = {
speed: 'Speed',
eta: 'ETA',
connections: 'Connections',
configuredConcurrency: 'Configured concurrency',
connectedPeers: 'connected peers',
details: 'Details',
queueId: 'Queue',
resumable: 'Resumable',
connectionCount: '{{active}}/{{total}}',
connectionCountUnknown: '—/{{total}}',
connectionsUnavailable: '—',
@@ -266,7 +271,7 @@ const common = {
torrentPeerDiagnosticsLoading: 'Loading peer diagnostics…',
torrentPeerDiagnosticsUnavailable: 'Peer diagnostics are available while this Torrent is active or paused.',
torrentPeerDiagnosticsFailed: 'Could not read Torrent peer diagnostics.',
torrentPeerDiagnosticsHint: 'Peer addresses and IDs are shown in this window only; Aria2 does not provide country metadata. Raw bitfields are not retained.',
torrentPeerDiagnosticsHint: 'Validated peer addresses and ports are shown ephemerally; peer IDs and raw bitfields are never retained.',
torrentPeerAddress: 'Peer address',
torrentPeerId: 'Peer ID',
torrentFileProgress: 'Torrent file progress',
@@ -419,6 +424,7 @@ const common = {
mirrors: 'Mirrors',
username: 'Username',
password: 'Password',
clear: 'Clear',
enterValidUrl: 'Enter a valid URL.',
fileNameEmpty: 'File name cannot be empty.',
cancel: 'Cancel',
+7 -1
View File
@@ -221,6 +221,11 @@ const fa = {
speed: 'سرعت',
eta: 'زمان باقیمانده',
connections: 'اتصالات',
configuredConcurrency: 'هم‌زمانی پیکربندی‌شده',
connectedPeers: 'همتای متصل',
details: 'جزئیات',
queueId: 'صف',
resumable: 'قابل ادامه',
connectionCount: '{{active}}/{{total}} فعال',
connectionCountUnknown: '—/{{total}} فعال',
connectionsUnavailable: '—',
@@ -266,7 +271,7 @@ const fa = {
torrentPeerDiagnosticsLoading: 'در حال دریافت اطلاعات همتاها…',
torrentPeerDiagnosticsUnavailable: 'اطلاعات همتاها هنگام فعال یا متوقف بودن تورنت در دسترس است.',
torrentPeerDiagnosticsFailed: 'خواندن اطلاعات همتاهای تورنت ممکن نیست.',
torrentPeerDiagnosticsHint: 'نشانی و شناسهٔ همتا فقط در همین پنجره نمایش داده می‌شود؛ آریا۲ اطلاعات کشور ارائه نمی‌کند و بیت‌فیلد خام ذخیره نمی‌شود.',
torrentPeerDiagnosticsHint: 'آدرس و پورت معتبر همتاها فقط به‌صورت موقت نمایش داده می‌شوند؛ شناسه همتا و بیت‌فیلد خام هرگز نگه‌داری نمی‌شود.',
torrentPeerAddress: 'نشانی همتا',
torrentPeerId: 'شناسهٔ همتا',
torrentFileProgress: 'پیشرفت فایل‌های تورنت',
@@ -419,6 +424,7 @@ const fa = {
mirrors: 'آینه‌ها',
username: 'نام کاربری',
password: 'رمز عبور',
clear: 'پاک کردن',
enterValidUrl: 'یک URL معتبر وارد کنید.',
fileNameEmpty: 'نام فایل نمی‌تواند خالی باشد.',
cancel: 'لغو',
+7 -1
View File
@@ -221,6 +221,11 @@ const he = {
speed: 'מהירות',
eta: 'זמן נותר',
connections: 'חיבורים',
configuredConcurrency: 'מקביליות מוגדרת',
connectedPeers: 'עמיתים מחוברים',
details: 'פרטים',
queueId: 'תור',
resumable: 'ניתן להמשך',
connectionCount: '{{active}}/{{total}} פעילות',
connectionCountUnknown: '—/{{total}} פעילות',
connectionsUnavailable: '—',
@@ -266,7 +271,7 @@ const he = {
torrentPeerDiagnosticsLoading: 'טוען אבחון עמיתים…',
torrentPeerDiagnosticsUnavailable: 'אבחון עמיתים זמין כשהטורנט פעיל או מושהה.',
torrentPeerDiagnosticsFailed: 'לא ניתן לקרוא את אבחון עמיתי הטורנט.',
torrentPeerDiagnosticsHint: 'כתובת ומזהה העמית מוצגים בחלון זה בלבד; Aria2 אינה מספקת נתוני מדינה. שדות ביטים גולמיים אינם נשמרים.',
torrentPeerDiagnosticsHint: 'כתובות ויציאות מאומתות של עמיתים מוצגות באופן זמני בלבד; מזהי עמיתים ושדות סיביות גולמיים לעולם אינם נשמרים.',
torrentPeerAddress: 'כתובת עמית',
torrentPeerId: 'מזהה עמית',
torrentFileProgress: 'התקדמות קובצי הטורנט',
@@ -419,6 +424,7 @@ const he = {
mirrors: 'מראות',
username: 'שם משתמש',
password: 'סיסמה',
clear: 'ניקוי',
enterValidUrl: 'נא להזין כתובת URL תקינה.',
fileNameEmpty: 'שם הקובץ אינו יכול להיות ריק.',
cancel: 'ביטול',
+7 -1
View File
@@ -221,6 +221,11 @@ const ru = {
speed: 'Скорость',
eta: 'Осталось',
connections: 'Соединения',
configuredConcurrency: 'Настроенная параллельность',
connectedPeers: 'подключённых пиров',
details: 'Подробности',
queueId: 'Очередь',
resumable: 'Возобновляемая',
connectionCount: '{{active}}/{{total}} активных',
connectionCountUnknown: '—/{{total}} активных',
connectionsUnavailable: '—',
@@ -266,7 +271,7 @@ const ru = {
torrentPeerDiagnosticsLoading: 'Загрузка диагностики пиров…',
torrentPeerDiagnosticsUnavailable: 'Диагностика пиров доступна, пока торрент активен или приостановлен.',
torrentPeerDiagnosticsFailed: 'Не удалось получить диагностику пиров торрента.',
torrentPeerDiagnosticsHint: 'Адреса и идентификаторы пиров показываются только в этом окне; Aria2 не предоставляет данные о стране. Исходные битовые поля не сохраняются.',
torrentPeerDiagnosticsHint: 'Проверенные адреса и порты пиров показываются только временно; идентификаторы пиров и исходные битовые поля никогда не сохраняются.',
torrentPeerAddress: 'Адрес пира',
torrentPeerId: 'ID пира',
torrentFileProgress: 'Прогресс файлов торрента',
@@ -419,6 +424,7 @@ const ru = {
mirrors: 'Зеркала',
username: 'Имя пользователя',
password: 'Пароль',
clear: 'Очистить',
enterValidUrl: 'Введите корректный URL.',
fileNameEmpty: 'Имя файла не может быть пустым.',
cancel: 'Отмена',
+7 -1
View File
@@ -221,6 +221,11 @@ const uk = {
speed: 'Швидкість',
eta: 'Залишилось',
connections: 'З\'єднання',
configuredConcurrency: 'Налаштована паралельність',
connectedPeers: 'підключених пірів',
details: 'Деталі',
queueId: 'Черга',
resumable: 'Можна продовжити',
connectionCount: '{{active}}/{{total}} активних',
connectionCountUnknown: '—/{{total}} активних',
connectionsUnavailable: '—',
@@ -266,7 +271,7 @@ const uk = {
torrentPeerDiagnosticsLoading: 'Завантаження діагностики пірів…',
torrentPeerDiagnosticsUnavailable: 'Діагностика пірів доступна, поки торрент активний або призупинений.',
torrentPeerDiagnosticsFailed: 'Не вдалося отримати діагностику пірів торрента.',
torrentPeerDiagnosticsHint: 'Адреси та ідентифікатори пірів показуються лише в цьому вікні; Aria2 не надає даних про країну. Сирі бітові поля не зберігаються.',
torrentPeerDiagnosticsHint: 'Перевірені адреси й порти пірів показуються лише тимчасово; ідентифікатори пірів і сирі бітові поля ніколи не зберігаються.',
torrentPeerAddress: 'Адреса піра',
torrentPeerId: 'ID піра',
torrentFileProgress: 'Прогрес файлів торрента',
@@ -419,6 +424,7 @@ const uk = {
mirrors: 'Дзеркала',
username: 'Ім\'я користувача',
password: 'Пароль',
clear: 'Очистити',
enterValidUrl: 'Введіть дійсну URL-адресу.',
fileNameEmpty: 'Ім\'я файлу не може бути порожнім.',
cancel: 'Скасувати',
+7 -1
View File
@@ -221,6 +221,11 @@ const zhCN = {
speed: '速度',
eta: '剩余时间',
connections: '连接数',
configuredConcurrency: '已配置并发数',
connectedPeers: '已连接对等端',
details: '详细信息',
queueId: '队列',
resumable: '可续传',
connectionCount: '{{active}}/{{total}} 个连接',
connectionCountUnknown: '—/{{total}} 个连接',
connectionsUnavailable: '—',
@@ -266,7 +271,7 @@ const zhCN = {
torrentPeerDiagnosticsLoading: '正在加载对等节点诊断…',
torrentPeerDiagnosticsUnavailable: 'Torrent 活跃或暂停时可查看对等节点诊断。',
torrentPeerDiagnosticsFailed: '无法读取 Torrent 对等节点诊断。',
torrentPeerDiagnosticsHint: '节点地址和 ID 仅在此窗口显示;Aria2 不提供国家信息。不会保留原始位域。',
torrentPeerDiagnosticsHint: '仅临时显示经过验证的对等端地址和端口;永不保留对等端 ID 或原始位域。',
torrentPeerAddress: '节点地址',
torrentPeerId: '节点 ID',
torrentFileProgress: 'Torrent 文件进度',
@@ -419,6 +424,7 @@ const zhCN = {
mirrors: '镜像源',
username: '用户名',
password: '密码',
clear: '清除',
enterValidUrl: '请输入有效的 URL。',
fileNameEmpty: '文件名不能为空。',
cancel: '取消',