mirror of
https://github.com/nimbold/Firelink.git
synced 2026-09-02 22:17:56 +00:00
feat(torrent): complete lifecycle controls
This commit is contained in:
@@ -89,6 +89,7 @@ const common = {
|
||||
queued: 'Queued',
|
||||
downloading: 'Downloading',
|
||||
processing: 'Processing',
|
||||
verifying: 'Verifying',
|
||||
seeding: 'Seeding',
|
||||
waitingToSeed: 'Waiting to seed',
|
||||
paused: 'Paused',
|
||||
@@ -251,6 +252,8 @@ const common = {
|
||||
torrentTrackerIntervalInvalid: 'Tracker interval must be a whole number from 0 to 604800 seconds',
|
||||
torrentVerifyIntegrity: 'Verify Torrent integrity',
|
||||
torrentVerifyIntegrityHint: 'Applied when this Torrent starts or retries. It may recheck pieces and download damaged data; active transfers cannot change it.',
|
||||
torrentVerifyNow: 'Verify now',
|
||||
torrentVerifyNowLoading: 'Verifying…',
|
||||
torrentMaxPeers: 'Maximum Torrent peers',
|
||||
torrentPeerSpeedLimit: 'Peer speed threshold',
|
||||
torrentMaxPeersInvalid: 'Torrent maximum peers must be an integer from 0 to 1000',
|
||||
@@ -262,6 +265,11 @@ const common = {
|
||||
torrentPeerDiagnosticsFailed: 'Could not read Torrent peer diagnostics.',
|
||||
torrentPeerDiagnosticsHint: 'Speeds and connection flags only are shown; peer IPs, ports, IDs, and bitfields are not retained.',
|
||||
torrentFileProgress: 'Torrent file progress',
|
||||
torrentFileSelection: 'Torrent file selection',
|
||||
torrentFileSelectionHint: 'Choose which files to download. Selecting every file removes the filter; at least one file must remain selected.',
|
||||
torrentFileSelectionRequired: 'Select at least one Torrent file.',
|
||||
torrentFileSelectionAll: 'Select all',
|
||||
torrentFileSelectionClear: 'Clear',
|
||||
torrentFileProgressRefresh: 'Refresh',
|
||||
torrentFileProgressLoading: 'Loading file progress…',
|
||||
torrentFileProgressUnavailable: 'File progress is available while this Torrent is active or paused.',
|
||||
@@ -300,6 +308,27 @@ const common = {
|
||||
torrentPrioritizePieceHint: 'Optional Aria2 preview policy: head, tail, or both; each may use a size such as 1M. Changes apply when the Torrent starts or retries.',
|
||||
torrentPrioritizePieceInvalid: 'Torrent piece priority must use head and/or tail with optional K or M sizes between 1K and 1024M',
|
||||
torrentEncryptionPolicy: 'Torrent encryption policy',
|
||||
torrentFileAllocation: 'Torrent file allocation',
|
||||
torrentFileAllocationPrealloc: 'Preallocate files',
|
||||
torrentFileAllocationNone: 'Allocate as needed',
|
||||
torrentFileAllocationHint: 'Preallocation reserves the selected files before transfer. Allocation as needed avoids that upfront disk reservation.',
|
||||
torrentDetails: 'Torrent details',
|
||||
torrentDetailsLoading: 'Loading Torrent details…',
|
||||
torrentDetailsUnavailable: 'Torrent details are not available.',
|
||||
torrentDetailsDisplayName: 'Display name',
|
||||
torrentDetailsInfoHash: 'Info hash',
|
||||
torrentDetailsSize: 'Total size',
|
||||
torrentDetailsFiles: 'Files',
|
||||
torrentDetailsPieces: 'Pieces',
|
||||
torrentDetailsPrivate: 'Private',
|
||||
torrentDetailsPrivateYes: 'Yes',
|
||||
torrentDetailsPrivateNo: 'No',
|
||||
torrentDetailsCreated: 'Created',
|
||||
torrentDetailsCreator: 'Creator',
|
||||
torrentDetailsComment: 'Comment',
|
||||
torrentDetailsTrackers: 'Trackers',
|
||||
torrentDetailsWebSeeds: 'Embedded web seeds',
|
||||
torrentDetailsPrivateHint: 'This private Torrent disables DHT, DHT6, PEX, and LPD discovery regardless of broader settings.',
|
||||
torrentEncryptionPolicyHint: 'Applied when this Torrent starts or retries. Choose one policy so the handshake and payload encryption settings stay consistent.',
|
||||
torrentEncryptionDisabled: 'Disabled',
|
||||
torrentEncryptionRequireCrypto: 'Require obfuscated handshake',
|
||||
@@ -819,6 +848,8 @@ const common = {
|
||||
torrentDhtDescription: 'Find peers without relying only on trackers. Disabling this also disables UDP tracker support.',
|
||||
torrentDht6: 'IPv6 DHT',
|
||||
torrentDht6Description: 'Use IPv6 for distributed peer discovery when the network provides a usable IPv6 path.',
|
||||
torrentIpv6Enabled: 'Enable IPv6 for Torrent networking',
|
||||
torrentIpv6EnabledDescription: 'Keep IPv6 available to BitTorrent, DHT, and peer discovery. Disabling this overrides IPv6 DHT even when its preference remains enabled.',
|
||||
torrentPex: 'Peer Exchange (PEX)',
|
||||
torrentPexDescription: 'Allow connected peers to share additional peer addresses.',
|
||||
torrentLpd: 'Local Peer Discovery (LPD)',
|
||||
@@ -834,6 +865,8 @@ const common = {
|
||||
torrentMaxConcurrentSeedsDescription: 'Maximum number of Torrents Firelink lets seed at once when separate capacity is enabled.',
|
||||
torrentListenPort: 'TCP peer ports',
|
||||
torrentListenPortDescription: 'TCP ports for incoming BitTorrent peer connections. Leave blank for Aria2’s default range.',
|
||||
torrentBindAddress: 'Torrent bind address',
|
||||
torrentBindAddressDescription: 'Optional local IPv4 or IPv6 address for Aria2 sockets. Invalid addresses are rejected; changes apply after restart.',
|
||||
torrentDhtListenPort: 'UDP/DHT ports',
|
||||
torrentDhtListenPortDescription: 'UDP ports for DHT and UDP trackers. Leave blank for Aria2’s default range.',
|
||||
torrentExternalIp: 'External IP address',
|
||||
@@ -855,6 +888,8 @@ const common = {
|
||||
torrentResourceLimits: 'BitTorrent resource limits',
|
||||
torrentMaxOpenFiles: 'Maximum open Torrent files',
|
||||
torrentMaxOpenFilesDescription: 'Global Aria2 limit for files open at once in multi-file Torrents. Lower values reduce file-descriptor use; the default is 100. Changes apply to new Torrents without restarting Aria2, and this does not raise your operating system limit.',
|
||||
aria2DiskCache: 'Aria2 disk cache',
|
||||
aria2DiskCacheDescription: 'Cache size for Aria2, using 0 or a positive value such as 16M. Accepts K/M values up to 1024M and applies after restart.',
|
||||
torrentMaxOpenFilesUpdateFailed: 'Could not apply the Torrent open-file limit: {{detail}}',
|
||||
torrentOverallUploadLimit: 'Overall Aria2 upload limit',
|
||||
torrentOverallUploadLimitDescription: 'Caps combined Aria2 upload traffic, primarily active Torrent seeding in Firelink. Leave blank for unlimited; the value is applied live and restored when Firelink restarts.',
|
||||
|
||||
@@ -89,6 +89,7 @@ const fa = {
|
||||
queued: 'در صف',
|
||||
downloading: 'در حال دانلود',
|
||||
processing: 'در حال پردازش',
|
||||
verifying: 'در حال بررسی صحت',
|
||||
seeding: 'در حال اشتراکگذاری',
|
||||
waitingToSeed: 'در انتظار اشتراکگذاری',
|
||||
paused: 'متوقفشده',
|
||||
@@ -251,6 +252,8 @@ const fa = {
|
||||
torrentTrackerIntervalInvalid: 'فاصله Tracker باید عددی صحیح بین ۰ تا ۶۰۴۸۰۰ ثانیه باشد',
|
||||
torrentVerifyIntegrity: 'بررسی صحت تورنت',
|
||||
torrentVerifyIntegrityHint: 'هنگام شروع یا تلاش مجدد این تورنت اعمال میشود. ممکن است قطعهها دوباره بررسی و دادههای خراب دوباره دانلود شوند؛ در انتقال فعال قابل تغییر نیست.',
|
||||
torrentVerifyNow: 'بررسی صحت اکنون',
|
||||
torrentVerifyNowLoading: 'در حال بررسی صحت…',
|
||||
torrentMaxPeers: 'حداکثر همتاهای تورنت',
|
||||
torrentPeerSpeedLimit: 'آستانه سرعت همتا',
|
||||
torrentMaxPeersInvalid: 'حداکثر همتاهای تورنت باید عددی صحیح بین ۰ و ۱۰۰۰ باشد',
|
||||
@@ -262,6 +265,11 @@ const fa = {
|
||||
torrentPeerDiagnosticsFailed: 'خواندن اطلاعات همتاهای تورنت ممکن نیست.',
|
||||
torrentPeerDiagnosticsHint: 'فقط سرعت و وضعیت اتصال نمایش داده میشود؛ IP، پورت، شناسه و بیتفیلد همتاها ذخیره نمیشود.',
|
||||
torrentFileProgress: 'پیشرفت فایلهای تورنت',
|
||||
torrentFileSelection: 'انتخاب فایلهای تورنت',
|
||||
torrentFileSelectionHint: 'فایلهای موردنظر برای دانلود را انتخاب کنید. انتخاب همهٔ فایلها فیلتر را حذف میکند؛ حداقل یک فایل باید انتخاب شود.',
|
||||
torrentFileSelectionRequired: 'حداقل یک فایل تورنت را انتخاب کنید.',
|
||||
torrentFileSelectionAll: 'انتخاب همه',
|
||||
torrentFileSelectionClear: 'پاککردن',
|
||||
torrentFileProgressRefresh: 'تازهسازی',
|
||||
torrentFileProgressLoading: 'در حال دریافت پیشرفت فایلها…',
|
||||
torrentFileProgressUnavailable: 'پیشرفت فایل هنگام فعال یا متوقفبودن تورنت در دسترس است.',
|
||||
@@ -300,6 +308,27 @@ const fa = {
|
||||
torrentPrioritizePieceHint: 'سیاست اختیاری پیشنمایش آریا۲: ابتدا، انتها یا هر دو؛ برای هرکدام میتوان اندازهای مثل 1M نوشت. تغییرات هنگام شروع یا تلاش مجدد اعمال میشوند.',
|
||||
torrentPrioritizePieceInvalid: 'اولویت قطعههای تورنت باید شامل ابتدا یا انتها، با اندازه اختیاری بین 1K و 1024M باشد',
|
||||
torrentEncryptionPolicy: 'سیاست رمزنگاری تورنت',
|
||||
torrentFileAllocation: 'نحوهٔ تخصیص فایل تورنت',
|
||||
torrentFileAllocationPrealloc: 'تخصیص از پیش',
|
||||
torrentFileAllocationNone: 'تخصیص هنگام نیاز',
|
||||
torrentFileAllocationHint: 'تخصیص از پیش فضای فایلهای انتخابشده را قبل از انتقال رزرو میکند؛ تخصیص هنگام نیاز این رزرو اولیه را انجام نمیدهد.',
|
||||
torrentDetails: 'جزئیات تورنت',
|
||||
torrentDetailsLoading: 'در حال دریافت جزئیات تورنت…',
|
||||
torrentDetailsUnavailable: 'جزئیات تورنت در دسترس نیست.',
|
||||
torrentDetailsDisplayName: 'نام نمایشی',
|
||||
torrentDetailsInfoHash: 'هش اطلاعات',
|
||||
torrentDetailsSize: 'حجم کل',
|
||||
torrentDetailsFiles: 'فایلها',
|
||||
torrentDetailsPieces: 'قطعهها',
|
||||
torrentDetailsPrivate: 'خصوصی',
|
||||
torrentDetailsPrivateYes: 'بله',
|
||||
torrentDetailsPrivateNo: 'خیر',
|
||||
torrentDetailsCreated: 'ایجادشده',
|
||||
torrentDetailsCreator: 'سازنده',
|
||||
torrentDetailsComment: 'توضیح',
|
||||
torrentDetailsTrackers: 'ترکرها',
|
||||
torrentDetailsWebSeeds: 'وبسیدهای داخلی',
|
||||
torrentDetailsPrivateHint: 'این تورنت خصوصی، مستقل از تنظیمات کلی، کشف DHT، DHT6، PEX و LPD را غیرفعال میکند.',
|
||||
torrentEncryptionPolicyHint: 'هنگام شروع یا تلاش مجدد اعمال میشود. یک سیاست واحد انتخاب کنید تا تنظیمات handshake و رمزنگاری payload آریا۲ سازگار بمانند.',
|
||||
torrentEncryptionDisabled: 'غیرفعال',
|
||||
torrentEncryptionRequireCrypto: 'الزام handshake مبهمسازیشده',
|
||||
@@ -819,6 +848,8 @@ const fa = {
|
||||
torrentDhtDescription: 'همتاها را بدون تکیه صرف بر ترکرها پیدا میکند. خاموش کردن آن پشتیبانی از ترکرهای UDP را هم خاموش میکند.',
|
||||
torrentDht6: 'DHT نسخه IPv6',
|
||||
torrentDht6Description: 'وقتی مسیر IPv6 قابل استفاده باشد، از آن برای کشف توزیعشده همتاها استفاده میکند.',
|
||||
torrentIpv6Enabled: 'فعالسازی IPv6 برای تورنت',
|
||||
torrentIpv6EnabledDescription: 'IPv6 را برای BitTorrent، DHT و کشف همتاها فعال نگه میدارد. غیرفعالکردن آن IPv6 DHT را خاموش میکند.',
|
||||
torrentPex: 'تبادل همتا (PEX)',
|
||||
torrentPexDescription: 'به همتاهای متصل اجازه میدهد آدرس همتاهای بیشتری را به اشتراک بگذارند.',
|
||||
torrentLpd: 'کشف همتای محلی (LPD)',
|
||||
@@ -834,6 +865,8 @@ const fa = {
|
||||
torrentMaxConcurrentSeedsDescription: 'وقتی ظرفیت جداگانه فعال است، حداکثر تعداد تورنتهایی که Firelink همزمان سید میکند.',
|
||||
torrentListenPort: 'پورتهای همتای TCP',
|
||||
torrentListenPortDescription: 'پورتهای TCP برای اتصالهای ورودی همتاهای بیتتورنت. برای محدوده پیشفرض Aria2 خالی بگذارید.',
|
||||
torrentBindAddress: 'نشانی اتصال تورنت',
|
||||
torrentBindAddressDescription: 'نشانی محلی اختیاری IPv4 یا IPv6 برای سوکتهای Aria2. نشانی نامعتبر رد میشود و تغییر پس از راهاندازی مجدد اعمال میشود.',
|
||||
torrentDhtListenPort: 'پورتهای UDP/DHT',
|
||||
torrentDhtListenPortDescription: 'پورتهای UDP برای DHT و ترکرهای UDP. برای محدوده پیشفرض Aria2 خالی بگذارید.',
|
||||
torrentExternalIp: 'آدرس IP خارجی',
|
||||
@@ -855,6 +888,8 @@ const fa = {
|
||||
torrentResourceLimits: 'محدودیت منابع بیتتورنت',
|
||||
torrentMaxOpenFiles: 'حداکثر فایلهای باز تورنت',
|
||||
torrentMaxOpenFilesDescription: 'حداکثر سراسری Aria2 برای تعداد فایلهای همزمان باز در تورنتهای چندفایلی. مقدار کمتر مصرف file descriptor را کم میکند؛ پیشفرض ۱۰۰ است. تغییرات برای تورنتهای جدید و بدون راهاندازی مجدد Aria2 اعمال میشوند و محدودیت سیستمعامل را افزایش نمیدهند.',
|
||||
aria2DiskCache: 'کش دیسک Aria2',
|
||||
aria2DiskCacheDescription: 'اندازهٔ کش Aria2؛ صفر یا مقداری مانند 16M وارد کنید. مقادیر K/M تا 1024M پذیرفته میشوند و پس از راهاندازی مجدد اعمال میشوند.',
|
||||
torrentMaxOpenFilesUpdateFailed: 'اعمال محدودیت فایلهای باز تورنت ممکن نشد: {{detail}}',
|
||||
torrentOverallUploadLimit: 'محدودیت کلی آپلود Aria2',
|
||||
torrentOverallUploadLimitDescription: 'سرعت کلی آپلود Aria2 را محدود میکند؛ در Firelink این مقدار عمدتاً برای سیدینگ تورنتهاست. برای نامحدود بودن خالی بگذارید؛ مقدار جدید زنده اعمال میشود و پس از راهاندازی مجدد Firelink برمیگردد.',
|
||||
|
||||
@@ -89,6 +89,7 @@ const he = {
|
||||
queued: 'בתור',
|
||||
downloading: 'מוריד',
|
||||
processing: 'מעבד',
|
||||
verifying: 'מאמת',
|
||||
seeding: 'משתף',
|
||||
waitingToSeed: 'ממתין לשיתוף',
|
||||
paused: 'מושהה',
|
||||
@@ -251,6 +252,8 @@ const he = {
|
||||
torrentTrackerIntervalInvalid: 'מרווח ה-Tracker חייב להיות מספר שלם בין 0 ל-604800 שניות',
|
||||
torrentVerifyIntegrity: 'אימות תקינות הטורנט',
|
||||
torrentVerifyIntegrityHint: 'מוחל כשהטורנט מתחיל או מנסה שוב. ייתכן שהחלקים ייבדקו מחדש ונתונים פגומים יורדו שוב; אי אפשר לשנות זאת בהעברה פעילה.',
|
||||
torrentVerifyNow: 'אמת עכשיו',
|
||||
torrentVerifyNowLoading: 'מאמת…',
|
||||
torrentMaxPeers: 'מספר העמיתים המרבי בטורנט',
|
||||
torrentPeerSpeedLimit: 'סף מהירות עמיתים',
|
||||
torrentMaxPeersInvalid: 'מספר העמיתים המרבי חייב להיות מספר שלם בין 0 ל-1000',
|
||||
@@ -262,6 +265,11 @@ const he = {
|
||||
torrentPeerDiagnosticsFailed: 'לא ניתן לקרוא את אבחון עמיתי הטורנט.',
|
||||
torrentPeerDiagnosticsHint: 'מוצגים רק מהירויות ודגלי חיבור; כתובות IP, יציאות, מזהים ושדות ביטים אינם נשמרים.',
|
||||
torrentFileProgress: 'התקדמות קובצי הטורנט',
|
||||
torrentFileSelection: 'בחירת קובצי טורנט',
|
||||
torrentFileSelectionHint: 'בחר אילו קבצים להוריד. בחירת כל הקבצים מסירה את הסינון; יש להשאיר לפחות קובץ אחד.',
|
||||
torrentFileSelectionRequired: 'בחר לפחות קובץ טורנט אחד.',
|
||||
torrentFileSelectionAll: 'בחר הכול',
|
||||
torrentFileSelectionClear: 'נקה',
|
||||
torrentFileProgressRefresh: 'רענון',
|
||||
torrentFileProgressLoading: 'טוען את התקדמות הקבצים…',
|
||||
torrentFileProgressUnavailable: 'התקדמות הקבצים זמינה כשהטורנט פעיל או מושהה.',
|
||||
@@ -300,6 +308,27 @@ const he = {
|
||||
torrentPrioritizePieceHint: 'מדיניות תצוגה מקדימה אופציונלית של Aria2: התחלה, סוף או שניהם; לכל אחד אפשר לציין גודל כמו 1M. השינוי חל בהפעלה או בניסיון חוזר.',
|
||||
torrentPrioritizePieceInvalid: 'תעדוף חלקי טורנט חייב לכלול התחלה ו/או סוף, עם גודל אופציונלי בין 1K ל-1024M',
|
||||
torrentEncryptionPolicy: 'מדיניות הצפנת Torrent',
|
||||
torrentFileAllocation: 'הקצאת קובצי Torrent',
|
||||
torrentFileAllocationPrealloc: 'הקצאה מראש',
|
||||
torrentFileAllocationNone: 'הקצאה לפי הצורך',
|
||||
torrentFileAllocationHint: 'הקצאה מראש שומרת מקום לקבצים לפני ההעברה; הקצאה לפי הצורך נמנעת מהשמירה הראשונית.',
|
||||
torrentDetails: 'פרטי טורנט',
|
||||
torrentDetailsLoading: 'טוען פרטי טורנט…',
|
||||
torrentDetailsUnavailable: 'פרטי הטורנט אינם זמינים.',
|
||||
torrentDetailsDisplayName: 'שם תצוגה',
|
||||
torrentDetailsInfoHash: 'גיבוב מידע',
|
||||
torrentDetailsSize: 'גודל כולל',
|
||||
torrentDetailsFiles: 'קבצים',
|
||||
torrentDetailsPieces: 'חלקים',
|
||||
torrentDetailsPrivate: 'פרטי',
|
||||
torrentDetailsPrivateYes: 'כן',
|
||||
torrentDetailsPrivateNo: 'לא',
|
||||
torrentDetailsCreated: 'נוצר',
|
||||
torrentDetailsCreator: 'יוצר',
|
||||
torrentDetailsComment: 'הערה',
|
||||
torrentDetailsTrackers: 'עוקבים',
|
||||
torrentDetailsWebSeeds: 'זרעי Web משובצים',
|
||||
torrentDetailsPrivateHint: 'טורנט פרטי זה משבית גילוי DHT, DHT6, PEX ו-LPD ללא קשר להגדרות הכלליות.',
|
||||
torrentEncryptionPolicyHint: 'מוחלת כשה-Torrent מתחיל או מנסה שוב. בחרו מדיניות אחת כדי לשמור על הגדרות handshake והצפנת payload עקביות.',
|
||||
torrentEncryptionDisabled: 'מושבתת',
|
||||
torrentEncryptionRequireCrypto: 'דרישת handshake מוסווה',
|
||||
@@ -819,6 +848,8 @@ const he = {
|
||||
torrentDhtDescription: 'מאתר עמיתים בלי להסתמך רק על מעקבים. השבתה מכבה גם תמיכה במעקבי UDP.',
|
||||
torrentDht6: 'DHT של IPv6',
|
||||
torrentDht6Description: 'משתמש ב-IPv6 לגילוי מבוזר של עמיתים כשיש נתיב IPv6 זמין.',
|
||||
torrentIpv6Enabled: 'הפעלת IPv6 עבור טורנטים',
|
||||
torrentIpv6EnabledDescription: 'משאיר את IPv6 זמין עבור BitTorrent, DHT וגילוי עמיתים. השבתה זו מכבה גם IPv6 DHT.',
|
||||
torrentPex: 'החלפת עמיתים (PEX)',
|
||||
torrentPexDescription: 'מאפשר לעמיתים מחוברים לשתף כתובות של עמיתים נוספים.',
|
||||
torrentLpd: 'גילוי עמיתים מקומיים (LPD)',
|
||||
@@ -834,6 +865,8 @@ const he = {
|
||||
torrentMaxConcurrentSeedsDescription: 'מספר הטורנטים המרבי ש-Firelink יזריע בו-זמנית כשהקיבולת הנפרדת פעילה.',
|
||||
torrentListenPort: 'יציאות עמיתי TCP',
|
||||
torrentListenPortDescription: 'יציאות TCP לחיבורי עמיתים נכנסים של BitTorrent. השאר ריק כדי להשתמש בטווח ברירת המחדל של Aria2.',
|
||||
torrentBindAddress: 'כתובת קישור לטורנטים',
|
||||
torrentBindAddressDescription: 'כתובת IPv4 או IPv6 מקומית ואופציונלית לשקעי Aria2. כתובות לא תקינות נדחות; השינוי חל לאחר הפעלה מחדש.',
|
||||
torrentDhtListenPort: 'יציאות UDP/DHT',
|
||||
torrentDhtListenPortDescription: 'יציאות UDP עבור DHT ועוקבי UDP. השאר ריק כדי להשתמש בטווח ברירת המחדל של Aria2.',
|
||||
torrentExternalIp: 'כתובת IP חיצונית',
|
||||
@@ -855,6 +888,8 @@ const he = {
|
||||
torrentResourceLimits: 'מגבלות משאבי BitTorrent',
|
||||
torrentMaxOpenFiles: 'מספר קובצי Torrent פתוחים מרבי',
|
||||
torrentMaxOpenFilesDescription: 'מגבלה כללית של Aria2 על מספר הקבצים הפתוחים בו-זמנית בטורנטים מרובי קבצים. ערך נמוך יותר מפחית שימוש ב-file descriptors; ברירת המחדל היא 100. השינויים חלים על טורנטים חדשים ללא הפעלה מחדש של Aria2, ואינם מגדילים את מגבלת מערכת ההפעלה.',
|
||||
aria2DiskCache: 'מטמון דיסק של Aria2',
|
||||
aria2DiskCacheDescription: 'גודל מטמון Aria2: 0 או ערך כמו 16M. ערכי K/M עד 1024M מתקבלים; חל לאחר הפעלה מחדש.',
|
||||
torrentMaxOpenFilesUpdateFailed: 'לא ניתן להחיל את מגבלת הקבצים הפתוחים של Torrent: {{detail}}',
|
||||
torrentOverallUploadLimit: 'מגבלת העלאה כוללת של Aria2',
|
||||
torrentOverallUploadLimitDescription: 'מגבילה את מהירות ההעלאה המשולבת של Aria2, בעיקר עבור העלאת טורנטים פעילים ב-Firelink. השאר ריק ללא הגבלה; הערך מוחל מיד ומשוחזר לאחר הפעלה מחדש של Firelink.',
|
||||
|
||||
@@ -89,6 +89,7 @@ const ru = {
|
||||
queued: 'В очереди',
|
||||
downloading: 'Загрузка',
|
||||
processing: 'Обработка',
|
||||
verifying: 'Проверка',
|
||||
seeding: 'Раздача',
|
||||
waitingToSeed: 'Ожидание раздачи',
|
||||
paused: 'Приостановлено',
|
||||
@@ -251,6 +252,8 @@ const ru = {
|
||||
torrentTrackerIntervalInvalid: 'Интервал трекера должен быть целым числом от 0 до 604800 секунд',
|
||||
torrentVerifyIntegrity: 'Проверять целостность торрента',
|
||||
torrentVerifyIntegrityHint: 'Применяется при запуске или повторной попытке. Может повторно проверить части и скачать повреждённые данные; во время активной передачи изменить нельзя.',
|
||||
torrentVerifyNow: 'Проверить сейчас',
|
||||
torrentVerifyNowLoading: 'Проверка…',
|
||||
torrentMaxPeers: 'Максимум пиров торрента',
|
||||
torrentPeerSpeedLimit: 'Порог скорости пиров',
|
||||
torrentMaxPeersInvalid: 'Максимум пиров должен быть целым числом от 0 до 1000',
|
||||
@@ -262,6 +265,11 @@ const ru = {
|
||||
torrentPeerDiagnosticsFailed: 'Не удалось получить диагностику пиров торрента.',
|
||||
torrentPeerDiagnosticsHint: 'Показываются только скорости и флаги соединения; IP-адреса, порты, идентификаторы и битовые поля не сохраняются.',
|
||||
torrentFileProgress: 'Прогресс файлов торрента',
|
||||
torrentFileSelection: 'Выбор файлов торрента',
|
||||
torrentFileSelectionHint: 'Выберите файлы для загрузки. Выбор всех файлов снимает фильтр; должен остаться хотя бы один файл.',
|
||||
torrentFileSelectionRequired: 'Выберите хотя бы один файл торрента.',
|
||||
torrentFileSelectionAll: 'Выбрать все',
|
||||
torrentFileSelectionClear: 'Очистить',
|
||||
torrentFileProgressRefresh: 'Обновить',
|
||||
torrentFileProgressLoading: 'Загрузка прогресса файлов…',
|
||||
torrentFileProgressUnavailable: 'Прогресс файлов доступен, пока торрент активен или приостановлен.',
|
||||
@@ -300,7 +308,28 @@ const ru = {
|
||||
torrentPrioritizePieceHint: 'Необязательная политика предпросмотра Aria2: начало, конец или оба варианта; для каждого можно указать размер, например 1M. Применяется при запуске или повторной попытке.',
|
||||
torrentPrioritizePieceInvalid: 'Приоритет частей торрента должен содержать начало и/или конец с необязательным размером от 1K до 1024M',
|
||||
torrentEncryptionPolicy: 'Политика шифрования Torrent',
|
||||
torrentFileAllocation: 'Выделение места для файлов Torrent',
|
||||
torrentFileAllocationPrealloc: 'Предварительное выделение',
|
||||
torrentFileAllocationNone: 'Выделять по мере необходимости',
|
||||
torrentFileAllocationHint: 'Предварительное выделение резервирует место до передачи; выделение по мере необходимости не делает начальное резервирование.',
|
||||
torrentEncryptionPolicyHint: 'Применяется при запуске или повторной попытке Torrent. Выберите одну политику, чтобы параметры handshake и шифрования payload оставались согласованными.',
|
||||
torrentDetails: 'Сведения о Torrent',
|
||||
torrentDetailsLoading: 'Загрузка сведений о Torrent…',
|
||||
torrentDetailsUnavailable: 'Сведения о Torrent недоступны.',
|
||||
torrentDetailsDisplayName: 'Отображаемое имя',
|
||||
torrentDetailsInfoHash: 'Инфохеш',
|
||||
torrentDetailsSize: 'Общий размер',
|
||||
torrentDetailsFiles: 'Файлы',
|
||||
torrentDetailsPieces: 'Части',
|
||||
torrentDetailsPrivate: 'Приватный',
|
||||
torrentDetailsPrivateYes: 'Да',
|
||||
torrentDetailsPrivateNo: 'Нет',
|
||||
torrentDetailsCreated: 'Создан',
|
||||
torrentDetailsCreator: 'Создатель',
|
||||
torrentDetailsComment: 'Комментарий',
|
||||
torrentDetailsTrackers: 'Трекеры',
|
||||
torrentDetailsWebSeeds: 'Встроенные веб-сиды',
|
||||
torrentDetailsPrivateHint: 'Этот приватный Torrent отключает обнаружение через DHT, DHT6, PEX и LPD независимо от общих настроек.',
|
||||
torrentEncryptionDisabled: 'Отключено',
|
||||
torrentEncryptionRequireCrypto: 'Требовать зашифрованное рукопожатие',
|
||||
torrentEncryptionForceEncryption: 'Принудительно шифровать payload (ARC4)',
|
||||
@@ -819,6 +848,8 @@ const ru = {
|
||||
torrentDhtDescription: 'Ищет пиры не только через трекеры. Отключение также отключает поддержку UDP-трекеров.',
|
||||
torrentDht6: 'DHT по IPv6',
|
||||
torrentDht6Description: 'Использует IPv6 для распределённого поиска пиров, если доступен рабочий IPv6-маршрут.',
|
||||
torrentIpv6Enabled: 'Использовать IPv6 для торрентов',
|
||||
torrentIpv6EnabledDescription: 'Оставляет IPv6 доступным для BitTorrent, DHT и поиска пиров. Отключение также выключает IPv6 DHT.',
|
||||
torrentPex: 'Обмен пирами (PEX)',
|
||||
torrentPexDescription: 'Позволяет подключённым пирам передавать адреса дополнительных пиров.',
|
||||
torrentLpd: 'Локальное обнаружение пиров (LPD)',
|
||||
@@ -834,6 +865,8 @@ const ru = {
|
||||
torrentMaxConcurrentSeedsDescription: 'Максимальное число торрентов, которые Firelink раздаёт одновременно при включённой отдельной ёмкости.',
|
||||
torrentListenPort: 'TCP-порты пиров',
|
||||
torrentListenPortDescription: 'TCP-порты для входящих соединений BitTorrent. Оставьте пустым, чтобы использовать диапазон Aria2 по умолчанию.',
|
||||
torrentBindAddress: 'Адрес привязки торрентов',
|
||||
torrentBindAddressDescription: 'Необязательный локальный IPv4- или IPv6-адрес для сокетов Aria2. Недопустимые адреса отклоняются; применяется после перезапуска.',
|
||||
torrentDhtListenPort: 'Порты UDP/DHT',
|
||||
torrentDhtListenPortDescription: 'UDP-порты для DHT и UDP-трекеров. Оставьте пустым, чтобы использовать диапазон Aria2 по умолчанию.',
|
||||
torrentExternalIp: 'Внешний IP-адрес',
|
||||
@@ -855,6 +888,8 @@ const ru = {
|
||||
torrentResourceLimits: 'Ограничения ресурсов BitTorrent',
|
||||
torrentMaxOpenFiles: 'Максимум открытых файлов Torrent',
|
||||
torrentMaxOpenFilesDescription: 'Глобальный лимит Aria2 на одновременно открытые файлы в многофайловых торрентах. Меньшие значения снижают расход дескрипторов; по умолчанию 100. Изменения применяются к новым торрентам без перезапуска Aria2 и не повышают лимит операционной системы.',
|
||||
aria2DiskCache: 'Дисковый кэш Aria2',
|
||||
aria2DiskCacheDescription: 'Размер кэша Aria2: 0 или значение вроде 16M. Допустимы K/M до 1024M; применяется после перезапуска.',
|
||||
torrentMaxOpenFilesUpdateFailed: 'Не удалось применить лимит открытых файлов Torrent: {{detail}}',
|
||||
torrentOverallUploadLimit: 'Общий лимит отдачи Aria2',
|
||||
torrentOverallUploadLimitDescription: 'Ограничивает суммарную скорость отдачи Aria2; в Firelink это в основном раздача активных торрентов. Оставьте поле пустым для снятия ограничения; значение применяется сразу и восстанавливается после перезапуска Firelink.',
|
||||
|
||||
@@ -89,6 +89,7 @@ const uk = {
|
||||
queued: 'У черзі',
|
||||
downloading: 'Завантаження',
|
||||
processing: 'Обробка',
|
||||
verifying: 'Перевірка',
|
||||
seeding: 'Роздача',
|
||||
waitingToSeed: 'Очікування роздачі',
|
||||
paused: 'Призупинено',
|
||||
@@ -251,6 +252,8 @@ const uk = {
|
||||
torrentTrackerIntervalInvalid: 'Інтервал трекера має бути цілим числом від 0 до 604800 секунд',
|
||||
torrentVerifyIntegrity: 'Перевіряти цілісність торрента',
|
||||
torrentVerifyIntegrityHint: 'Застосовується під час запуску або повторної спроби. Частини можуть перевірятися повторно, а пошкоджені дані — завантажуватися знову; під час активної передачі змінити не можна.',
|
||||
torrentVerifyNow: 'Перевірити зараз',
|
||||
torrentVerifyNowLoading: 'Перевірка…',
|
||||
torrentMaxPeers: 'Максимум пірів торрента',
|
||||
torrentPeerSpeedLimit: 'Поріг швидкості пірів',
|
||||
torrentMaxPeersInvalid: 'Максимум пірів має бути цілим числом від 0 до 1000',
|
||||
@@ -262,6 +265,11 @@ const uk = {
|
||||
torrentPeerDiagnosticsFailed: 'Не вдалося отримати діагностику пірів торрента.',
|
||||
torrentPeerDiagnosticsHint: 'Показуються лише швидкості та прапорці з’єднання; IP-адреси, порти, ідентифікатори й бітові поля не зберігаються.',
|
||||
torrentFileProgress: 'Прогрес файлів торрента',
|
||||
torrentFileSelection: 'Вибір файлів торрента',
|
||||
torrentFileSelectionHint: 'Виберіть файли для завантаження. Вибір усіх файлів прибирає фільтр; має залишитися хоча б один файл.',
|
||||
torrentFileSelectionRequired: 'Виберіть хоча б один файл торрента.',
|
||||
torrentFileSelectionAll: 'Вибрати все',
|
||||
torrentFileSelectionClear: 'Очистити',
|
||||
torrentFileProgressRefresh: 'Оновити',
|
||||
torrentFileProgressLoading: 'Завантаження прогресу файлів…',
|
||||
torrentFileProgressUnavailable: 'Прогрес файлів доступний, коли торрент активний або призупинений.',
|
||||
@@ -300,7 +308,28 @@ const uk = {
|
||||
torrentPrioritizePieceHint: 'Необов’язкова політика попереднього перегляду Aria2: початок, кінець або обидва варіанти; для кожного можна вказати розмір, наприклад 1M. Застосовується під час запуску або повторної спроби.',
|
||||
torrentPrioritizePieceInvalid: 'Пріоритет частин торрента має містити початок і/або кінець із необов’язковим розміром від 1K до 1024M',
|
||||
torrentEncryptionPolicy: 'Політика шифрування Torrent',
|
||||
torrentFileAllocation: 'Виділення місця для файлів Torrent',
|
||||
torrentFileAllocationPrealloc: 'Попереднє виділення',
|
||||
torrentFileAllocationNone: 'Виділяти за потреби',
|
||||
torrentFileAllocationHint: 'Попереднє виділення резервує місце до передачі; виділення за потреби не робить початкового резервування.',
|
||||
torrentEncryptionPolicyHint: 'Застосовується під час запуску або повторної спроби Torrent. Виберіть одну політику, щоб параметри handshake і шифрування payload залишалися узгодженими.',
|
||||
torrentDetails: 'Відомості про Torrent',
|
||||
torrentDetailsLoading: 'Завантаження відомостей про Torrent…',
|
||||
torrentDetailsUnavailable: 'Відомості про Torrent недоступні.',
|
||||
torrentDetailsDisplayName: 'Назва',
|
||||
torrentDetailsInfoHash: 'Інфохеш',
|
||||
torrentDetailsSize: 'Загальний розмір',
|
||||
torrentDetailsFiles: 'Файли',
|
||||
torrentDetailsPieces: 'Частини',
|
||||
torrentDetailsPrivate: 'Приватний',
|
||||
torrentDetailsPrivateYes: 'Так',
|
||||
torrentDetailsPrivateNo: 'Ні',
|
||||
torrentDetailsCreated: 'Створено',
|
||||
torrentDetailsCreator: 'Автор',
|
||||
torrentDetailsComment: 'Коментар',
|
||||
torrentDetailsTrackers: 'Трекери',
|
||||
torrentDetailsWebSeeds: 'Вбудовані веб-сиди',
|
||||
torrentDetailsPrivateHint: 'Цей приватний Torrent вимикає виявлення через DHT, DHT6, PEX і LPD незалежно від загальних налаштувань.',
|
||||
torrentEncryptionDisabled: 'Вимкнено',
|
||||
torrentEncryptionRequireCrypto: 'Вимагати зашифроване рукостискання',
|
||||
torrentEncryptionForceEncryption: 'Примусово шифрувати payload (ARC4)',
|
||||
@@ -819,6 +848,8 @@ const uk = {
|
||||
torrentDhtDescription: 'Шукає пірів не лише через трекери. Вимкнення також вимикає підтримку UDP-трекерів.',
|
||||
torrentDht6: 'DHT через IPv6',
|
||||
torrentDht6Description: 'Використовує IPv6 для розподіленого пошуку пірів, якщо доступний робочий маршрут IPv6.',
|
||||
torrentIpv6Enabled: 'Використовувати IPv6 для торентів',
|
||||
torrentIpv6EnabledDescription: 'Залишає IPv6 доступним для BitTorrent, DHT і пошуку пірів. Вимкнення також вимикає IPv6 DHT.',
|
||||
torrentPex: 'Обмін пірами (PEX)',
|
||||
torrentPexDescription: 'Дозволяє підключеним пірам передавати адреси додаткових пірів.',
|
||||
torrentLpd: 'Локальний пошук пірів (LPD)',
|
||||
@@ -834,6 +865,8 @@ const uk = {
|
||||
torrentMaxConcurrentSeedsDescription: 'Максимальна кількість торентів, які Firelink роздає одночасно за ввімкненої окремої місткості.',
|
||||
torrentListenPort: 'TCP-порти пірів',
|
||||
torrentListenPortDescription: 'TCP-порти для вхідних з’єднань BitTorrent. Залиште порожнім, щоб використати типовий діапазон Aria2.',
|
||||
torrentBindAddress: 'Адреса прив’язки торентів',
|
||||
torrentBindAddressDescription: 'Необов’язкова локальна IPv4- або IPv6-адреса для сокетів Aria2. Некоректні адреси відхиляються; застосовується після перезапуску.',
|
||||
torrentDhtListenPort: 'Порти UDP/DHT',
|
||||
torrentDhtListenPortDescription: 'UDP-порти для DHT і UDP-трекерів. Залиште порожнім, щоб використати типовий діапазон Aria2.',
|
||||
torrentExternalIp: 'Зовнішня IP-адреса',
|
||||
@@ -855,6 +888,8 @@ const uk = {
|
||||
torrentResourceLimits: 'Обмеження ресурсів BitTorrent',
|
||||
torrentMaxOpenFiles: 'Максимум відкритих файлів Torrent',
|
||||
torrentMaxOpenFilesDescription: 'Глобальне обмеження Aria2 на одночасно відкриті файли в багатофайлових торрентах. Менші значення зменшують використання дескрипторів; типове значення — 100. Зміни застосовуються до нових торрентів без перезапуску Aria2 і не підвищують обмеження операційної системи.',
|
||||
aria2DiskCache: 'Дисковий кеш Aria2',
|
||||
aria2DiskCacheDescription: 'Розмір кешу Aria2: 0 або значення на кшталт 16M. Допустимі K/M до 1024M; застосовується після перезапуску.',
|
||||
torrentMaxOpenFilesUpdateFailed: 'Не вдалося застосувати обмеження відкритих файлів Torrent: {{detail}}',
|
||||
torrentOverallUploadLimit: 'Загальне обмеження віддачі Aria2',
|
||||
torrentOverallUploadLimitDescription: 'Обмежує сумарну швидкість віддачі Aria2; у Firelink це переважно роздача активних торрентів. Залиште поле порожнім без обмеження; значення застосовується одразу й відновлюється після перезапуску Firelink.',
|
||||
|
||||
@@ -89,6 +89,7 @@ const zhCN = {
|
||||
queued: '已排队',
|
||||
downloading: '下载中',
|
||||
processing: '处理中',
|
||||
verifying: '校验中',
|
||||
seeding: '做种中',
|
||||
waitingToSeed: '等待做种',
|
||||
paused: '已暂停',
|
||||
@@ -251,6 +252,8 @@ const zhCN = {
|
||||
torrentTrackerIntervalInvalid: 'Tracker 间隔必须是 0 到 604800 秒之间的整数',
|
||||
torrentVerifyIntegrity: '验证 Torrent 完整性',
|
||||
torrentVerifyIntegrityHint: '在 Torrent 启动或重试时应用。可能会重新检查分片并重新下载损坏的数据;活动传输期间无法更改。',
|
||||
torrentVerifyNow: '立即验证',
|
||||
torrentVerifyNowLoading: '验证中…',
|
||||
torrentMaxPeers: 'Torrent 最大对等节点数',
|
||||
torrentPeerSpeedLimit: '对等节点速度阈值',
|
||||
torrentMaxPeersInvalid: 'Torrent 最大对等节点数必须是 0 到 1000 之间的整数',
|
||||
@@ -262,6 +265,11 @@ const zhCN = {
|
||||
torrentPeerDiagnosticsFailed: '无法读取 Torrent 对等节点诊断。',
|
||||
torrentPeerDiagnosticsHint: '仅显示速度和连接状态;不会保留对等节点 IP、端口、ID 或位域。',
|
||||
torrentFileProgress: 'Torrent 文件进度',
|
||||
torrentFileSelection: 'Torrent 文件选择',
|
||||
torrentFileSelectionHint: '选择要下载的文件。选择全部文件会移除筛选;至少要保留一个文件。',
|
||||
torrentFileSelectionRequired: '请至少选择一个 Torrent 文件。',
|
||||
torrentFileSelectionAll: '全选',
|
||||
torrentFileSelectionClear: '清除',
|
||||
torrentFileProgressRefresh: '刷新',
|
||||
torrentFileProgressLoading: '正在加载文件进度…',
|
||||
torrentFileProgressUnavailable: 'Torrent 活跃或暂停时可查看文件进度。',
|
||||
@@ -300,7 +308,28 @@ const zhCN = {
|
||||
torrentPrioritizePieceHint: '可选的 Aria2 预览策略:开头、结尾或两者;每项可使用 1M 等大小。Torrent 启动或重试时应用。',
|
||||
torrentPrioritizePieceInvalid: 'Torrent 片段优先级必须使用开头和/或结尾,并可选 1K 到 1024M 的大小',
|
||||
torrentEncryptionPolicy: 'Torrent 加密策略',
|
||||
torrentFileAllocation: 'Torrent 文件分配',
|
||||
torrentFileAllocationPrealloc: '预分配文件',
|
||||
torrentFileAllocationNone: '按需分配',
|
||||
torrentFileAllocationHint: '预分配会在传输前为选中文件预留空间;按需分配不会进行初始磁盘预留。',
|
||||
torrentEncryptionPolicyHint: '在 Torrent 启动或重试时应用。选择单一策略,确保握手和 payload 加密设置保持一致。',
|
||||
torrentDetails: 'Torrent 详细信息',
|
||||
torrentDetailsLoading: '正在加载 Torrent 详细信息…',
|
||||
torrentDetailsUnavailable: 'Torrent 详细信息不可用。',
|
||||
torrentDetailsDisplayName: '显示名称',
|
||||
torrentDetailsInfoHash: '信息哈希',
|
||||
torrentDetailsSize: '总大小',
|
||||
torrentDetailsFiles: '文件',
|
||||
torrentDetailsPieces: '分片',
|
||||
torrentDetailsPrivate: '私有',
|
||||
torrentDetailsPrivateYes: '是',
|
||||
torrentDetailsPrivateNo: '否',
|
||||
torrentDetailsCreated: '创建时间',
|
||||
torrentDetailsCreator: '创建者',
|
||||
torrentDetailsComment: '备注',
|
||||
torrentDetailsTrackers: 'Tracker',
|
||||
torrentDetailsWebSeeds: '内嵌 Web seed',
|
||||
torrentDetailsPrivateHint: '此私有 Torrent 会独立于全局设置禁用 DHT、DHT6、PEX 和 LPD 发现。',
|
||||
torrentEncryptionDisabled: '已禁用',
|
||||
torrentEncryptionRequireCrypto: '要求加密握手',
|
||||
torrentEncryptionForceEncryption: '强制加密 payload(ARC4)',
|
||||
@@ -819,6 +848,8 @@ const zhCN = {
|
||||
torrentDhtDescription: '不只依赖 Tracker 查找节点。关闭后也会禁用 UDP Tracker 支持。',
|
||||
torrentDht6: 'IPv6 分布式哈希表',
|
||||
torrentDht6Description: '当网络提供可用的 IPv6 路径时,使用 IPv6 进行分布式节点发现。',
|
||||
torrentIpv6Enabled: '为种子网络启用 IPv6',
|
||||
torrentIpv6EnabledDescription: '为 BitTorrent、DHT 和节点发现保留 IPv6。禁用后也会关闭 IPv6 DHT。',
|
||||
torrentPex: '节点交换(PEX)',
|
||||
torrentPexDescription: '允许已连接的节点共享其他节点的地址。',
|
||||
torrentLpd: '本地节点发现(LPD)',
|
||||
@@ -834,6 +865,8 @@ const zhCN = {
|
||||
torrentMaxConcurrentSeedsDescription: '启用独立容量后,Firelink 同时做种的 Torrent 数量上限。',
|
||||
torrentListenPort: 'TCP 节点端口',
|
||||
torrentListenPortDescription: '用于传入 BitTorrent 节点连接的 TCP 端口。留空以使用 Aria2 的默认范围。',
|
||||
torrentBindAddress: '种子绑定地址',
|
||||
torrentBindAddressDescription: '可选的本地 IPv4 或 IPv6 地址,用于 Aria2 套接字。无效地址会被拒绝;重启后生效。',
|
||||
torrentDhtListenPort: 'UDP/DHT 端口',
|
||||
torrentDhtListenPortDescription: '用于 DHT 和 UDP 跟踪器的 UDP 端口。留空以使用 Aria2 的默认范围。',
|
||||
torrentExternalIp: '外部 IP 地址',
|
||||
@@ -855,6 +888,8 @@ const zhCN = {
|
||||
torrentResourceLimits: 'BitTorrent 资源限制',
|
||||
torrentMaxOpenFiles: 'Torrent 最大打开文件数',
|
||||
torrentMaxOpenFilesDescription: 'Aria2 对多文件 Torrent 同时打开文件数的全局限制。较低的值可减少文件描述符占用;默认值为 100。修改会在不重启 Aria2 的情况下应用于新 Torrent,且不会提高操作系统的限制。',
|
||||
aria2DiskCache: 'Aria2 磁盘缓存',
|
||||
aria2DiskCacheDescription: 'Aria2 缓存大小:0 或类似 16M 的值。接受最大 1024M 的 K/M 值,重启后生效。',
|
||||
torrentMaxOpenFilesUpdateFailed: '无法应用 Torrent 打开文件数限制:{{detail}}',
|
||||
torrentOverallUploadLimit: 'Aria2 总上传限制',
|
||||
torrentOverallUploadLimitDescription: '限制 Aria2 的总上传速度,在 Firelink 中主要用于活动 Torrent 做种。留空表示不限速;新值会立即应用,并在 Firelink 重启后恢复。',
|
||||
|
||||
Reference in New Issue
Block a user