i18n(panel): migrate hardcoded panel strings to en-US and translate all locales

Surface ~400 hardcoded English labels, tooltips, placeholders, dt/divider
text, modal okText/cancelText, and Spin loading from the panel pages
(clients/groups/inbounds/nodes/settings/xray/sub/index) into
web/translation/en-US.json under existing pages.<page>.* namespaces, with
JSX swapped to t(...). Brand and protocol identifiers (TLS, MTU, SNI,
NordVPN, Cloudflare WARP, etc.) stay literal.

Sync all 12 non-English locales (ar-EG, es-ES, fa-IR, id-ID, ja-JP,
pt-BR, ru-RU, tr-TR, uk-UA, vi-VN, zh-CN, zh-TW) to match en-US's
structure and translate the 521 new key paths per locale. Every locale
file now has 1539 lines, mirroring en-US ordering.

Also remove a dead duplicate "info": "Info" key under pages.inbounds
that collided with the new pages.inbounds.info.* object.

Backend: bulk attach/detach errors in web/service/client.go now route
through logger.Warningf (so they appear under /panel/api/server/logs/)
instead of only living on the response payload.
This commit is contained in:
MHSanaei
2026-05-28 18:03:07 +02:00
parent 0829f1ecd4
commit 72b97efa8a
34 changed files with 6391 additions and 1125 deletions
+459 -89
View File
@@ -20,6 +20,10 @@
"protocol": "پروتکل",
"search": "جستجو",
"filter": "فیلتر",
"all": "همه",
"from": "از",
"to": "تا",
"done": "انجام شد",
"loading": "...در حال بارگذاری",
"refresh": "تازه‌سازی",
"clear": "پاک کردن",
@@ -35,14 +39,14 @@
"info": "اطلاعات بیشتر",
"edit": "ویرایش",
"delete": "حذف",
"reset": "ریست",
"reset": "بازنشانی",
"noData": "داده‌ای وجود ندارد.",
"copySuccess": "باموفقیت کپی‌شد",
"sure": "مطمئن",
"encryption": "رمزگذاری",
"useIPv4ForHost": "از IPv4 برای میزبان استفاده کنید",
"transmission": "راه‌اتصال",
"host": "آدرس",
"host": "میزبان",
"path": "مسیر",
"camouflage": "مبهم‌سازی",
"status": "وضعیت",
@@ -100,9 +104,10 @@
"dashboard": "نمای کلی",
"inbounds": "ورودی‌ها",
"clients": "کلاینت‌ها",
"groups": "گروه‌ها",
"nodes": "نودها",
"settings": "تنظیمات پنل",
"xray": "پیکربندی ایکس‌ری",
"xray": "پیکربندی Xray",
"apiDocs": "مستندات API",
"logout": "خروج",
"link": "مدیریت",
@@ -123,16 +128,16 @@
},
"index": {
"title": "نمای کلی",
"cpu": "پردازنده",
"cpu": "CPU",
"logicalProcessors": "پردازنده‌های منطقی",
"frequency": "فرکانس",
"swap": "سواپ",
"swap": "Swap",
"storage": "ذخیره‌سازی",
"memory": "حافظه رم",
"threads": "رشته‌ها",
"xrayStatus": "ایکس‌ری",
"memory": "RAM",
"threads": "نخ‌ها",
"xrayStatus": "Xray",
"stopXray": "توقف",
"restartXray": "شروع‌مجدد",
"restartXray": "راه‌اندازی مجدد",
"xraySwitch": "‌نسخه",
"xrayUpdates": "به‌روزرسانی‌های Xray",
"xraySwitchClick": "نسخه مورد نظر را انتخاب کنید",
@@ -229,7 +234,7 @@
"customGeoErrUpdateAllIncomplete": "به‌روزرسانی یک یا چند منبع geo سفارشی ناموفق بود",
"customGeoEmpty": "هنوز منبع geo سفارشی‌ای ثبت نشده — برای ایجاد روی «افزودن» کلیک کنید",
"dontRefresh": "در حال نصب، لطفا صفحه را رفرش نکنید",
"logs": زارش‌ها",
"logs": "لاگ‌ها",
"config": "پیکربندی",
"backup": "پشتیبان‌گیری",
"backupTitle": "پشتیبان‌گیری و بازیابی",
@@ -244,18 +249,18 @@
"getConfigError": "خطا در دریافت فایل پیکربندی"
},
"inbounds": {
"title": "کاربران",
"title": "ورودی‌ها",
"totalDownUp": "دریافت/ارسال کل",
"totalUsage": "‌مصرف کل",
"inboundCount": "کل ورودی‌ها",
"operate": "عملیات",
"operate": "منو",
"enable": "فعال",
"remark": "نام",
"node": "نود",
"deployTo": "استقرار روی",
"localPanel": "پنل لوکال",
"fallbacks": {
"title": "فال‌بک‌ها",
"title": "Fallbackها",
"help": "وقتی اتصالی روی این اینباند با هیچ کلاینتی تطبیق پیدا نمی‌کند، به یک اینباند دیگر ارجاع داده می‌شود. یک فرزند انتخاب کنید، فیلدهای مسیریابی (SNI / ALPN / Path / xver) خودکار از روی transport آن پر می‌شود — برای بیشتر تنظیمات نیازی به ویرایش نیست. هر فرزند باید روی 127.0.0.1 با security=none گوش بدهد.",
"empty": "هنوز فال‌بکی اضافه نشده",
"add": "افزودن فال‌بک",
@@ -273,14 +278,14 @@
},
"protocol": "پروتکل",
"port": "پورت",
"portMap": "پورت‌های نظیر",
"portMap": "نگاشت پورت",
"traffic": "ترافیک",
"details": "توضیحات",
"transportConfig": "نحوه اتصال",
"transportConfig": "انتقال",
"expireDate": "مدت زمان",
"createdAt": "ایجاد",
"updatedAt": "به‌روزرسانی",
"resetTraffic": "ریست ترافیک",
"resetTraffic": "بازنشانی ترافیک",
"addInbound": "افزودن ورودی",
"generalActions": "عملیات کلی",
"modifyInbound": "ویرایش ورودی",
@@ -295,29 +300,29 @@
"delAllClients": "حذف همه کلاینت‌ها",
"delAllClientsConfirmTitle": "حذف هر {count} کلاینت اینباند «{remark}»؟",
"delAllClientsConfirmContent": "تمام کلاینت‌های این اینباند به همراه رکوردهای ترافیک‌شان حذف می‌شوند. خود اینباند باقی می‌ماند. این عمل غیرقابل بازگشت است.",
"attachClients": "اتصال کلاینت‌ها به…",
"addClientsToGroup": "افزودن کلاینت‌ها به گروه…",
"attachClientsTitle": "اتصال کلاینت‌های «{remark}»",
"attachClientsDesc": "همان {count} کلاینت (با همان UUID/پسورد و ترافیک مشترک) را به اینباند(های) انتخاب‌شده هم متصل می‌کند. روی این اینباند هم باقی می‌مانند.",
"attachClientsTargets": "اینباندهای مقصد",
"attachClientsNoTargets": "اینباند سازگار دیگری برای اتصال وجود ندارد.",
"attachClientsResult": "{attached} متصل شد، {skipped} رد شد.",
"attachClientsResultMixed": "{attached} متصل شد، {skipped} رد شد، {errors} خطا.",
"attachClientsSelectLabel": لاینت‌های قابل اتصال",
"attachClients": "الصاق کاربران به…",
"addClientsToGroup": "افزودن کاربران به گروه…",
"attachClientsTitle": "الصاق کاربران از «{remark}»",
"attachClientsDesc": "همان {count} کاربر (با UUID/رمز یکسان و ترافیک مشترک) را به ورودی‌(های) انتخابی الصاق می‌کند. در این ورودی هم باقی می‌مانند.",
"attachClientsTargets": "ورودی‌های مقصد",
"attachClientsNoTargets": "هیچ ورودی سازگار دیگری برای الصاق در دسترس نیست.",
"attachClientsResult": "الصاق شد {attached}، نادیده {skipped}.",
"attachClientsResultMixed": "الصاق شد {attached}، نادیده {skipped}، خطا {errors}.",
"attachClientsSelectLabel": اربران برای الصاق",
"attachClientsSearchPlaceholder": "جستجوی ایمیل یا توضیح",
"attachClientsStatusDisabled": "غیرفعال",
"attachClientsSelectedCount": "{selected} از {total} انتخاب‌شده",
"detachClients": "جداسازی کلاینت‌ها",
"detachClientsTitle": "جداسازی کلاینت‌های «{remark}»",
"detachClientsDesc": لاینت‌های انتخاب‌شده فقط از همین اینباند جدا می‌شوند. خود رکورد کلاینت‌ها حفظ می‌شود (برای حذف کامل از Delete استفاده کنید). این اینباند مجموعاً {count} کلاینت دارد.",
"detachClientsResult": "{detached} جدا شد، {skipped} رد شد.",
"detachClientsResultMixed": "{detached} جدا شد، {skipped} رد شد، {errors} خطا.",
"detachClientsSelectLabel": لاینت‌های قابل جداسازی",
"detachClients": "جداسازی کاربران",
"detachClientsTitle": "جداسازی کاربران از «{remark}»",
"detachClientsDesc": اربر(های) انتخابی را تنها از این ورودی حذف می‌کند. خود رکورد کاربر حفظ می‌شود (برای حذف کامل از Delete استفاده کنید). مبدا در مجموع {count} کاربر دارد.",
"detachClientsResult": "جدا شد {detached}، نادیده {skipped}.",
"detachClientsResultMixed": "جدا شد {detached}، نادیده {skipped}، خطا {errors}.",
"detachClientsSelectLabel": اربران برای جداسازی",
"exportLinksTitle": "خروجی لینک‌های اینباند",
"exportSubsTitle": "خروجی لینک‌های ساب",
"exportAllLinksTitle": "خروجی لینک‌های همه اینباندها",
"exportAllSubsTitle": "خروجی لینک‌های ساب همه اینباندها",
"inboundJsonTitle": "JSON اینباند",
"inboundJsonTitle": "JSON ورودی",
"deleteClient": "حذف کاربر",
"deleteClientContent": "آیا مطمئن به حذف کاربر هستید؟",
"resetTrafficContent": "آیا مطمئن به ریست ترافیک هستید؟",
@@ -327,7 +332,7 @@
"destinationPort": "پورت مقصد",
"targetAddress": "آدرس مقصد",
"monitorDesc": "به‌طور پیش‌فرض خالی‌بگذارید",
"meansNoLimit": "0 = واحد: گیگابایت) نامحدود)",
"meansNoLimit": "= نامحدود. (واحد: GB)",
"totalFlow": "ترافیک کل",
"leaveBlankToNeverExpire": "برای منقضی‌نشدن خالی‌بگذارید",
"noRecommendKeepDefault": "توصیه‌می‌شود به‌طور پیش‌فرض حفظ‌شود",
@@ -362,9 +367,10 @@
"IPLimitlogDesc": "گزارش تاریخچه آی‌پی. برای فعال کردن ورودی پس از غیرفعال شدن، گزارش را پاک کنید",
"IPLimitlogclear": "پاک کردن گزارش‌ها",
"setDefaultCert": "استفاده از گواهی پنل",
"streamTab": "استریم",
"setDefaultCertEmpty": "هیچ گواهی‌ای برای پنل پیکربندی نشده. ابتدا از تنظیمات یکی تعیین کنید.",
"streamTab": "Stream",
"securityTab": "امنیت",
"sniffingTab": "اسنیفینگ",
"sniffingTab": "Sniffing",
"sniffingMetadataOnly": "فقط متادیتا",
"sniffingRouteOnly": "فقط مسیریابی",
"sniffingIpsExcluded": "IPهای مستثنا",
@@ -382,15 +388,14 @@
"allHelp": "شیء کامل اینباند با همه فیلدها در یک ویرایشگر.",
"settings": "تنظیمات",
"settingsHelp": "ساختار بلوک settings در Xray:",
"sniffing": "اسنیفینگ",
"sniffing": "Sniffing",
"sniffingHelp": "ساختار بلوک sniffing در Xray:",
"stream": "استریم",
"stream": "Stream",
"streamHelp": "ساختار بلوک stream در Xray:",
"jsonErrorPrefix": "JSON پیشرفته"
},
"telegramDesc": "لطفا شناسه گفتگوی تلگرام را وارد کنید. (از دستور '/id' در ربات استفاده کنید) یا ({'@'}userinfobot)",
"subscriptionDesc": "شما می‌توانید لینک سابسکربپشن خودرا در 'جزئیات' پیدا کنید، همچنین می‌توانید از همین نام برای چندین کاربر استفاده‌کنید",
"info": "اطلاعات",
"same": "همسان",
"inboundData": "داده‌های ورودی",
"exportInbound": "استخراج ورودی",
@@ -427,6 +432,139 @@
"getNewmldsa65Error": "خطا در دریافت گواهی mldsa65.",
"getNewVlessEncError": "خطا در دریافت گواهی VlessEnc."
},
"form": {
"moveUp": "بالا",
"moveDown": "پایین",
"addAll": "افزودن همه",
"addAllFallbackTooltip": "برای هر ورودی واجد شرایط که هنوز متصل نشده یک ردیف fallback اضافه می‌کند",
"peers": "Peers",
"addPeer": "افزودن peer",
"keepAlive": "Keep-alive",
"autoSystemRoutesTooltip": "فقط ویندوز. CIDRها به‌صورت خودکار به جدول مسیریابی سیستم اضافه می‌شوند تا ترافیک مطابق از TUN عبور کند.",
"autoOutboundsInterface": "رابط خروجی خودکار",
"autoOutboundsInterfaceTooltip": "رابط فیزیکی برای ترافیک خروجی. از auto برای تشخیص استفاده کنید؛ زمانی که Auto system routes فعال باشد، به‌صورت خودکار فعال می‌شود.",
"rewriteAddress": "بازنویسی آدرس",
"rewritePort": "بازنویسی پورت",
"allowedNetwork": "شبکه مجاز",
"followRedirect": "دنبال‌کردن Redirect",
"accounts": "حساب‌ها",
"allowTransparent": "اجازه شفاف",
"encryptionMethod": "روش رمزنگاری",
"visionTestseed": "Vision testseed",
"version": "نسخه",
"udpIdleTimeout": "UDP idle timeout (s)",
"masquerade": "استتار",
"type": "نوع",
"upstreamUrl": "آدرس Upstream",
"rewriteHost": "بازنویسی Host",
"skipTlsVerify": "رد تایید TLS",
"directory": "دایرکتوری",
"statusCode": "کد وضعیت",
"body": "Body",
"headers": "هدرها",
"proxyProtocol": "Proxy Protocol",
"requestVersion": "نسخه درخواست",
"requestMethod": "متد درخواست",
"requestPath": "مسیر درخواست",
"requestHeaders": "هدرهای درخواست",
"responseVersion": "نسخه پاسخ",
"responseStatus": "وضعیت پاسخ",
"responseReason": "دلیل پاسخ",
"responseHeaders": "هدرهای پاسخ",
"heartbeatPeriod": "دوره Heartbeat",
"serviceName": "نام سرویس",
"authority": "Authority",
"multiMode": "حالت چندگانه",
"maxBufferedUpload": "حداکثر آپلود بافرشده",
"maxUploadSize": "حداکثر اندازه آپلود (بایت)",
"streamUpServer": "سرور Stream-Up",
"serverMaxHeaderBytes": "حداکثر بایت هدر سرور",
"paddingBytes": "بایت‌های Padding",
"uplinkHttpMethod": "متد HTTP آپلینک",
"paddingObfsMode": "حالت ابهام Padding",
"paddingKey": "کلید Padding",
"paddingHeader": "هدر Padding",
"paddingPlacement": "محل Padding",
"paddingMethod": "روش Padding",
"sessionPlacement": "محل نشست",
"sessionKey": "کلید نشست",
"sequencePlacement": "محل Sequence",
"sequenceKey": "Sequence Key",
"uplinkDataPlacement": "محل داده Uplink",
"uplinkDataKey": "کلید داده Uplink",
"noSseHeader": "بدون هدر SSE",
"ttiMs": "TTI (ms)",
"uplinkMbps": "آپلود (MB/s)",
"downlinkMbps": "دانلود (MB/s)",
"cwndMultiplier": "ضریب CWND",
"maxSendingWindow": "حداکثر پنجره ارسال",
"externalProxy": "پراکسی خارجی",
"sniPlaceholder": "SNI (پیش‌فرض همان host)",
"fingerprint": "اثرانگشت",
"defaultOption": "پیش‌فرض",
"routeMark": "علامت مسیر",
"tcpKeepAliveInterval": "بازه TCP Keep Alive",
"tcpKeepAliveIdle": "TCP Keep Alive Idle",
"tcpMaxSeg": "TCP Max Seg",
"tcpUserTimeout": "TCP User Timeout",
"tcpWindowClamp": "TCP Window Clamp",
"tcpFastOpen": "TCP Fast Open",
"multipathTcp": "Multipath TCP",
"penetrate": "Penetrate",
"v6Only": "فقط IPv6",
"tcpCongestion": "تراکم TCP",
"dialerProxy": "Dialer Proxy",
"trustedXForwardedFor": "X-Forwarded-For مورد اعتماد",
"addressPortStrategy": "استراتژی آدرس+پورت",
"tryDelayMs": "تأخیر تلاش (ms)",
"prioritizeIPv6": "اولویت IPv6",
"interleave": "Interleave",
"maxConcurrentTry": "حداکثر تلاش هم‌زمان",
"customSockopt": "Sockopt دلخواه",
"addCustomOption": "افزودن گزینه دلخواه",
"serverNameIndication": "SNI",
"cipherSuites": "مجموعه‌های رمز",
"autoOption": "خودکار",
"minMaxVersion": "نسخه حداقل/حداکثر",
"rejectUnknownSni": "رد SNI ناشناخته",
"disableSystemRoot": "غیرفعال‌سازی System Root",
"sessionResumption": "ازسرگیری نشست",
"oneTimeLoading": "بارگذاری یک‌بار",
"usageOption": "گزینه استفاده",
"buildChain": "ساخت زنجیره",
"echKey": "کلید ECH",
"echConfig": "پیکربندی ECH",
"getNewEchCert": "دریافت گواهی ECH جدید",
"show": "نمایش",
"xver": "Xver",
"target": "هدف",
"maxTimeDiff": "حداکثر اختلاف زمان (ms)",
"minClientVer": "حداقل نسخه کلاینت",
"maxClientVer": "حداکثر نسخه کلاینت",
"shortIds": "Short IDها",
"spiderX": "SpiderX",
"getNewCert": "دریافت گواهی جدید",
"mldsa65Seed": "mldsa65 Seed",
"mldsa65Verify": "mldsa65 Verify",
"getNewSeed": "دریافت Seed جدید"
},
"info": {
"mode": "حالت",
"grpcServiceName": "grpc serviceName",
"grpcMultiMode": "grpc multiMode",
"interfaceName": "نام رابط",
"mtu": "MTU",
"gateway": "Gateway",
"dns": "DNS",
"outboundsInterface": "رابط خروجی",
"autoSystemRoutes": "مسیریابی خودکار سیستم",
"followRedirect": "FollowRedirect",
"auth": "احراز",
"noKernelTun": "TUN غیرکرنل",
"keepAlive": "Keep alive",
"peerNumber": "Peer {n}",
"peerNumberConfig": "پیکربندی Peer {n}"
},
"stream": {
"general": {
"request": "درخواست",
@@ -477,6 +615,20 @@
"days": "روز",
"renew": "تمدید خودکار",
"renewDesc": "تمدید خودکار پس از انقضا. (۰ = غیرفعال) (واحد: روز)",
"searchPlaceholder": "جستجوی ایمیل، توضیح، Sub ID، UUID، رمز، احراز...",
"filterTitle": "فیلتر کاربران",
"clearAllFilters": "پاک کردن همه",
"sortOldest": "قدیمی‌ترین",
"sortNewest": "جدیدترین",
"sortRecentlyUpdated": "اخیراً به‌روزشده",
"sortRecentlyOnline": "اخیراً آنلاین",
"sortEmailAZ": "ایمیل ا→ی",
"sortEmailZA": "ایمیل ی→ا",
"sortMostTraffic": "بیشترین ترافیک",
"sortHighestRemaining": "بیشترین باقی‌مانده",
"sortExpiringSoonest": "نزدیک‌ترین انقضا",
"has": "دارد",
"hasNot": "ندارد",
"title": "کلاینت‌ها",
"actions": "عملیات",
"totalGB": "مجموع ارسال/دریافت (گیگابایت)",
@@ -487,6 +639,9 @@
"subId": "شناسه اشتراک",
"online": "آنلاین",
"email": "ایمیل",
"group": "گروه",
"groupDesc": "برچسبی منطقی برای دسته‌بندی کاربران مرتبط (مثل تیم، مشتری، منطقه). از نوار ابزار قابل فیلتر است.",
"groupPlaceholder": "مثلاً customer-a",
"comment": "توضیحات",
"traffic": "ترافیک",
"offline": "آفلاین",
@@ -510,32 +665,45 @@
"resetAllTraffics": "بازنشانی ترافیک همه کلاینت‌ها",
"resetAllTrafficsTitle": "بازنشانی ترافیک همه کلاینت‌ها؟",
"resetAllTrafficsContent": "شمارنده ارسال/دریافت همه کلاینت‌ها به صفر می‌رسد. سهمیه و تاریخ انقضا تغییری نمی‌کند. این عمل غیرقابل بازگشت است.",
"empty": "هنوز کلاینتی نیست — برای شروع یکی اضافه کنید.",
"deleteConfirmTitle": "حذف کلاینت {email}؟",
"deleteConfirmContent": "این کلاینت از تمام اینباندهای متصل حذف و سابقه ترافیک آن پاک می‌شود. این عمل غیرقابل بازگشت است.",
"deleteSelected": "حذف ({count})",
"adjustSelected": "تنظیم ({count})",
"attach": "اتصال",
"adjust": "تنظیم",
"subLinks": "لینک‌های ساب",
"selectedCount": "{count} انتخاب‌شده",
"ungroup": "حذف گروه",
"ungroupConfirmTitle": "{count} کلاینت از گروهشان حذف شود؟",
"ungroupConfirmContent": "برچسب گروه از هر کلاینت انتخاب‌شده پاک می‌شود. خود کلاینت‌ها حفظ می‌شوند (برای حذف کامل، از Delete استفاده کنید).",
"subLinksSelected": "لینک‌های اشتراک ({count})",
"addToGroupTitle": "افزودن {count} کاربر به یک گروه",
"addToGroupTooltip": "یک گروه موجود را انتخاب کنید یا نام جدیدی تایپ کنید. برای حذف کاربران از گروه فعلی، از Ungroup استفاده کنید.",
"addToGroupPlaceholder": "نام گروه",
"addToGroupSuccessToast": "{count} کاربر به {group} اضافه شد",
"ungroupSuccessToast": "گروه از {count} کاربر پاک شد",
"ungroup": "خارج از گروه",
"ungroupConfirmTitle": "حذف {count} کاربر از گروهشان؟",
"ungroupConfirmContent": "برچسب گروه را روی هر کاربر انتخابی پاک می‌کند. کاربران حفظ می‌شوند (برای حذف کامل از Delete استفاده کنید).",
"addToGroup": "افزودن به گروه",
"attachSelected": "اتصال ({count})",
"attachToInboundsTitle": "اتصال {count} کلاینت به اینباند(ها)",
"attachToInboundsDesc": "{count} کلاینت انتخاب‌شده (با همان UUID/پسورد و ترافیک مشترک) به اینباند(های) انتخابی متصل می‌شوند. روی اینباندهای فعلی هم باقی می‌مانند.",
"attachToInboundsTargets": "اینباندهای مقصد",
"attachToInboundsNoTargets": "اینباند سازگار برای اتصال وجود ندارد.",
"attach": "الصاق",
"adjust": "تنظیم",
"subLinks": "لینک‌های اشتراک",
"selectedCount": "{count} انتخاب‌شده",
"attachSelected": "الصاق ({count})",
"attachToInboundsTitle": "الصاق {count} کاربر به ورودی‌(ها)",
"attachToInboundsDesc": "{count} کاربر انتخاب‌شده (همان UUID/رمز و ترافیک مشترک) را به ورودی‌های انتخابی الصاق می‌کند. الصاق‌های قبلی حفظ می‌شوند.",
"attachToInboundsTargets": "ورودی‌های مقصد",
"attachToInboundsNoTargets": "هیچ ورودی چندکاربره‌ای برای الصاق در دسترس نیست.",
"detachSelected": "جداسازی ({count})",
"detach": "جداسازی",
"detachFromInboundsTitle": "جداسازی {count} کلاینت از اینباند(ها)",
"detachFromInboundsDesc": "{count} کلاینت انتخاب‌شده از اینباند(های) انتخابی جدا می‌شوند. زوج‌هایی که کلاینت در آن‌ها متصل نیست بی‌صدا رد می‌شوند. خود رکورد کلاینت‌ها حفظ می‌شود (برای حذف کامل از Delete استفاده کنید).",
"detachFromInboundsTargets": "اینباندهای مبدأ",
"detachFromInboundsNoTargets": "اینباند سازگار وجود ندارد.",
"detachFromInboundsResult": "{detached} جدا شد، {skipped} رد شد.",
"detachFromInboundsResultMixed": "{detached} جدا شد، {skipped} رد شد، {errors} خطا.",
"detachFromInboundsTitle": "جداسازی {count} کاربر از ورودی‌(ها)",
"detachFromInboundsDesc": "{count} کاربر انتخاب‌شده را از ورودی‌های انتخابی حذف می‌کند. در مواردی که کاربر الصاق نبوده، نادیده گرفته می‌شود. رکورد کاربر حفظ می‌شود (برای حذف کامل از Delete استفاده کنید).",
"detachFromInboundsTargets": "ورودی‌هایی برای جداسازی",
"detachFromInboundsNoTargets": "هیچ ورودی چندکاربره‌ای در دسترس نیست.",
"detachFromInboundsResult": "جدا شد {detached}، نادیده گرفته شد {skipped}.",
"detachFromInboundsResultMixed": "جدا شد {detached}، نادیده {skipped}، خطا {errors}.",
"subLinksTitle": "لینک‌های اشتراک ({count})",
"subLinkColumn": "آدرس اشتراک",
"subJsonLinkColumn": "آدرس JSON اشتراک",
"subLinksCopyAll": "کپی همه",
"subLinksCopiedAll": "{count} لینک کپی شد",
"subLinksEmpty": "هیچ‌کدام از کاربران انتخابی شناسه اشتراک ندارند.",
"subLinksDisabled": "سرویس اشتراک غیرفعال است.",
"subLinksDisabledHint": "برای ساخت لینک، اشتراک را در تنظیمات پنل ← اشتراک فعال کنید.",
"bulkDeleteConfirmTitle": "حذف {count} کلاینت؟",
"bulkDeleteConfirmContent": "هر کلاینت انتخاب‌شده از تمام اینباندهای متصل حذف و سابقه ترافیک آن پاک می‌شود. این عمل غیرقابل بازگشت است.",
"bulkAdjustTitle": "تنظیم {count} کلاینت",
@@ -546,12 +714,12 @@
"delDepleted": "حذف اتمام‌یافته‌ها",
"delDepletedConfirmTitle": "حذف کلاینت‌های اتمام‌یافته؟",
"delDepletedConfirmContent": "هر کلاینتی که سهمیه ترافیک‌اش تمام شده یا تاریخ انقضایش گذشته است حذف می‌شود. این عمل غیرقابل بازگشت است.",
"auth": "Auth",
"hysteriaAuth": "Auth (هیستریا)",
"auth": "احراز",
"hysteriaAuth": "احراز Hysteria",
"uuid": "UUID",
"flow": "Flow",
"vmessSecurity": "امنیت VMess",
"reverseTag": "Reverse tag",
"reverseTag": "تگ معکوس",
"reverseTagPlaceholder": "Reverse tag اختیاری",
"telegramId": "شناسه کاربر تلگرام",
"telegramIdPlaceholder": "شناسه عددی کاربر تلگرام (۰ = هیچ)",
@@ -571,6 +739,44 @@
"delDepleted": "{count} کلاینت اتمام‌یافته حذف شد"
}
},
"groups": {
"title": "گروه‌ها",
"name": "نام",
"clientCount": "کاربران در گروه",
"totalGroups": "تعداد گروه‌ها",
"totalGroupedClients": "کاربران دارای گروه",
"emptyGroups": "گروه‌های خالی",
"addGroup": "افزودن گروه",
"createSuccess": "گروه «{name}» ایجاد شد.",
"rename": "تغییر نام",
"renameTitle": "تغییر نام {name}",
"renameCollision": "گروهی به نام «{name}» از قبل وجود دارد.",
"renameSuccess": "گروه روی {count} کاربر تغییر نام داده شد.",
"deleteConfirmTitle": "حذف گروه {name}؟",
"deleteConfirmContent": "این عمل گروه را حذف می‌کند و برچسب آن را از {count} کاربر پاک می‌کند. خود کاربران حذف نمی‌شوند.",
"deleteSuccess": "گروه از {count} کاربر پاک شد.",
"resetTraffic": "بازنشانی ترافیک",
"resetConfirmTitle": "بازنشانی ترافیک گروه {name}؟",
"resetConfirmContent": "این عمل آپلود/دانلود تمام {count} کاربر این گروه را صفر می‌کند.",
"resetSuccess": "ترافیک {count} کاربر بازنشانی شد.",
"adjustSuccess": "{count} کاربر در {name} تنظیم شد.",
"emptyForAction": "این گروه هنوز کاربری ندارد.",
"deleteGroupOnly": "حذف گروه (نگه داشتن کاربران)",
"deleteClients": "حذف کاربران گروه",
"deleteClientsConfirmTitle": "حذف همه کاربران در {name}؟",
"deleteClientsConfirmContent": "این عمل {count} کاربر را به همراه رکورد ترافیک‌شان برای همیشه حذف می‌کند. برچسب گروه نیز پاک می‌شود. این عمل قابل بازگشت نیست.",
"deleteClientsSuccess": "{count} کاربر حذف شد.",
"deleteClientsMixed": "{ok} حذف شد، {failed} نادیده گرفته شد",
"addToGroup": "افزودن کاربران…",
"addToGroupTitle": "افزودن کاربران به گروه «{name}»",
"addToGroupDesc": "کاربرانی را برای افزودن به این گروه انتخاب کنید. الصاق‌های ورودی فعلی حفظ می‌شود؛ تنها برچسب گروه تغییر می‌کند. کاربرانی که از قبل در این گروه هستند نشان داده نمی‌شوند.",
"addToGroupEmpty": "کاربر دیگری برای افزودن در دسترس نیست.",
"addToGroupResult": "{count} کاربر به {name} اضافه شد.",
"removeFromGroup": "حذف کاربران…",
"removeFromGroupTitle": "حذف کاربران از گروه «{name}»",
"removeFromGroupDesc": "اعضایی را برای حذف از این گروه انتخاب کنید. خود کاربران حفظ می‌شوند (برای حذف کامل از «حذف کاربران گروه» استفاده کنید).",
"removeFromGroupResult": "{count} کاربر از {name} حذف شد."
},
"nodes": {
"title": "نودها",
"addNode": "افزودن نود",
@@ -596,9 +802,9 @@
"allowPrivateAddressHint": "فقط برای نودهای روی شبکه خصوصی یا VPN فعال شود.",
"enable": "فعال",
"status": "وضعیت",
"cpu": "پردازنده",
"cpu": "CPU",
"mem": "حافظه",
"uptime": "زمان کارکرد",
"uptime": "مدت فعالیت",
"latency": "تاخیر",
"lastHeartbeat": "آخرین ضربان",
"xrayVersion": "نسخه Xray",
@@ -633,7 +839,7 @@
"title": "تنظیمات پنل",
"save": "ذخیره",
"infoDesc": "برای اعمال تغییرات در این بخش باید پس از ذخیره کردن، پنل را ریستارت کنید",
"restartPanel": یستارت پنل",
"restartPanel": اه‌اندازی مجدد پنل",
"restartPanelDesc": "آیا مطمئن به ریستارت پنل هستید؟ اگر پس‌از ریستارت نمی‌توانید به پنل دسترسی پیدا کنید، لطفاً گزارش‌های موجود در اسکریپت پنل را بررسی کنید",
"restartPanelSuccess": "پنل با موفقیت راه‌اندازی مجدد شد",
"actions": "عملیات ها",
@@ -658,12 +864,12 @@
"publicKeyPathDesc": "مسیر فایل کلیدعمومی برای وب پنل. با '/' شروع‌می‌شود",
"privateKeyPath": "مسیر کلید خصوصی",
"privateKeyPathDesc": "مسیر فایل کلیدخصوصی برای وب پنل. با '/' شروع‌می‌شود",
"panelUrlPath": "URI مسیر",
"panelUrlPath": "مسیر URI",
"panelUrlPathDesc": "برای وب پنل. با '/' شروع‌ و با '/' خاتمه‌ می‌یابد URI مسیر",
"pageSize": "اندازه صفحه بندی جدول",
"pageSizeDesc": "(اندازه صفحه برای جدول ورودی‌ها.(0 = غیرفعال",
"panelProxy": "پراکسی شبکه‌ی پنل",
"panelProxyDesc": "درخواست‌های خروجیِ خودِ پنل (آپدیت geo، چک نسخه‌ی Xray و پنل، تلگرام) را از این پراکسی عبور می‌دهد تا فیلترینگ سروری گیت‌هاب/تلگرام دور زده شود. پشتیبانی از socks5:// و http(s)://، برای نمونه یک اینباند SOCKS لوکالِ Xray. برای اتصال مستقیم خالی بگذارید.",
"panelProxy": "پراکسی شبکه پنل",
"panelProxyDesc": "درخواست‌های خروجی خود پنل (به‌روزرسانی geo، بررسی نسخه Xray/پنل، تلگرام) را از این پراکسی عبور می‌دهد تا فیلترینگ GitHub/تلگرام در سرور دور زده شود. socks5:// یا http(s):// قابل قبول است، مثل ورودی SOCKS محلی Xray. برای اتصال مستقیم خالی بگذارید.",
"remarkModel": "نام‌کانفیگ و جداکننده",
"datepicker": "نوع تقویم",
"datepickerPlaceholder": "انتخاب تاریخ",
@@ -677,7 +883,7 @@
"telegramBotEnableDesc": "ربات تلگرام را فعال می‌کند",
"telegramToken": "توکن تلگرام",
"telegramTokenDesc": "دریافت کنید {'@'}botfather توکن را می‌توانید از",
"telegramProxy": "SOCKS پراکسی",
"telegramProxy": "پراکسی SOCKS",
"telegramProxyDesc": "را برای اتصال به تلگرام فعال می کند SOCKS5 پراکسی",
"telegramAPIServer": "سرور API تلگرام",
"telegramAPIServerDesc": "API سرور تلگرام برای اتصال را تغییر میدهد. برای استفاده از سرور پیش فرض خالی بگذارید",
@@ -703,6 +909,8 @@
"subEnable": "فعال‌سازی سرویس سابسکریپشن",
"subEnableDesc": "سرویس سابسکریپشن‌ را فعال‌می‌کند",
"subJsonEnable": "فعال/غیرفعال‌سازی مستقل نقطه دسترسی سابسکریپشن JSON.",
"subJsonEnableTitle": "اشتراک JSON",
"subClashEnableTitle": "اشتراک Clash / Mihomo",
"subTitle": "عنوان اشتراک",
"subTitleDesc": "عنوان نمایش داده شده در کلاینت VPN",
"subSupportUrl": "آدرس پشتیبانی",
@@ -723,13 +931,13 @@
"subCertPathDesc": "مسیر فایل کلیدعمومی برای سرویس سابیکریپشن. با '/' شروع‌می‌شود",
"subKeyPath": "مسیر کلید خصوصی",
"subKeyPathDesc": "مسیر فایل کلیدخصوصی برای سرویس سابسکریپشن. با '/' شروع‌می‌شود",
"subPath": "URI مسیر",
"subPath": "مسیر URI",
"subPathDesc": "برای سرویس سابسکریپشن. با '/' شروع‌ و با '/' خاتمه‌ می‌یابد URI مسیر",
"subDomain": "نام دامنه",
"subDomainDesc": "آدرس دامنه برای سرویس سابسکریپشن. برای گوش دادن به تمام دامنه‌ها و آی‌پی‌ها خالی‌بگذارید‌",
"subUpdates": "فاصله بروزرسانی‌ سابسکریپشن",
"subUpdatesDesc": "(فاصله مابین بروزرسانی در برنامه‌های کاربری. (واحد: ساعت",
"subEncrypt": "کدگذاری",
"subEncrypt": "انکود",
"subEncryptDesc": "کدگذاری خواهدشد Base64 محتوای برگشتی سرویس سابسکریپشن برپایه",
"subShowInfo": "نمایش اطلاعات مصرف",
"subShowInfoDesc": "ترافیک و زمان باقی‌مانده را در برنامه‌های کاربری نمایش می‌دهد",
@@ -738,7 +946,7 @@
"subURI": "پروکسی معکوس URI مسیر",
"subURIDesc": "سابسکریپشن را برای استفاده در پشت پراکسی‌ها تغییر می‌دهد URI مسیر",
"externalTrafficInformEnable": "اطلاع رسانی خارجی مصرف ترافیک",
"externalTrafficInformEnableDesc": "مصرف ترافیک به سرویس خارجی ارسال می شود",
"externalTrafficInformEnableDesc": "به API خارجی در هر به‌روزرسانی ترافیک اطلاع بده.",
"externalTrafficInformURI": "لینک اطلاع رسانی خارجی مصرف ترافیک",
"externalTrafficInformURIDesc": "ترافیک های مصرفی به این لینک هم ارسال می شود",
"restartXrayOnClientDisable": "ری‌استارت Xray بعد از غیرفعال‌سازی خودکار",
@@ -748,7 +956,55 @@
"fragmentSett": "تنظیمات فرگمنت",
"noisesDesc": "فعال کردن Noises.",
"noisesSett": "تنظیمات Noises",
"mux": "ماکس",
"trustedProxyCidrs": "CIDRهای پراکسی مورد اعتماد",
"trustedProxyCidrsDesc": "IPها/CIDRها (با کاما) که مجازند هدرهای host، proto و client IP فوروارد را تنظیم کنند.",
"ldap": {
"enable": "فعال‌سازی همگام‌سازی LDAP",
"host": "میزبان LDAP",
"port": "پورت LDAP",
"useTls": "استفاده از TLS (LDAPS)",
"bindDn": "Bind DN",
"passwordConfigured": "تنظیم‌شده؛ برای حفظ رمز فعلی خالی بگذارید.",
"passwordUnconfigured": "تنظیم نشده.",
"passwordPlaceholder": "تنظیم‌شده – برای جایگزینی مقدار جدید وارد کنید",
"baseDn": "Base DN",
"userFilter": "فیلتر کاربر",
"userAttr": "صفت کاربر (username/email)",
"vlessField": "صفت پرچم VLESS",
"flagField": "صفت پرچم عمومی (اختیاری)",
"flagFieldDesc": "اگر تعیین شود، پرچم VLESS را override می‌کند — مثل shadowInactive.",
"truthyValues": "مقادیر صحیح",
"truthyValuesDesc": "با کاما جدا شده؛ پیش‌فرض: true,1,yes,on",
"invertFlag": "وارونگی پرچم",
"invertFlagDesc": "وقتی صفت به معنی «غیرفعال» است فعال کنید (مثل shadowInactive).",
"syncSchedule": "زمان‌بندی همگام‌سازی",
"syncScheduleDesc": "رشته شبیه cron، مثل @every 1m",
"inboundTags": "تگ‌های ورودی",
"inboundTagsDesc": "ورودی‌هایی که همگام‌سازی LDAP اجازه دارد روی آن‌ها کاربر بسازد یا حذف کند.",
"noInbounds": "هیچ ورودی یافت نشد. ابتدا از بخش ورودی‌ها یکی بسازید.",
"autoCreate": "ساخت خودکار کاربران",
"autoDelete": "حذف خودکار کاربران",
"defaultTotalGb": "حجم پیش‌فرض (GB)",
"defaultExpiryDays": "انقضای پیش‌فرض (روز)",
"defaultIpLimit": "محدودیت IP پیش‌فرض"
},
"subFormats": {
"packets": "بسته‌ها",
"length": "طول",
"interval": "بازه",
"maxSplit": "حداکثر تقسیم",
"noises": "نویزها",
"noiseItem": "نویز №{n}",
"type": "نوع",
"packet": "بسته",
"delayMs": "تأخیر (ms)",
"applyTo": "اعمال بر",
"addNoise": "+ نویز",
"concurrency": "هم‌زمانی",
"xudpConcurrency": "هم‌زمانی xudp",
"xudpUdp443": "xudp UDP 443"
},
"mux": "Mux",
"muxDesc": "چندین جریان داده مستقل را در یک جریان داده ثابت منتقل می کند",
"muxSett": "تنظیمات ماکس",
"direct": "اتصال مستقیم",
@@ -801,8 +1057,11 @@
"xray": {
"title": "پیکربندی ایکس‌ری",
"save": "ذخیره",
"restart": یستارت ایکس‌ری",
"restart": اه‌اندازی مجدد Xray",
"restartSuccess": "Xray با موفقیت راه‌اندازی مجدد شد",
"restartOutputTitle": "خروجی راه‌اندازی مجدد Xray",
"restartConfirmTitle": "راه‌اندازی مجدد xray؟",
"restartConfirmContent": "سرویس xray با پیکربندی ذخیره‌شده دوباره بارگذاری می‌شود.",
"stopSuccess": "Xray با موفقیت متوقف شد",
"restartError": "خطا در راه‌اندازی مجدد Xray.",
"stopError": "خطا در توقف Xray.",
@@ -810,7 +1069,7 @@
"advancedTemplate": "پیشرفته",
"generalConfigs": "استراتژی‌ کلی",
"generalConfigsDesc": "این گزینه‌ها استراتژی کلی ترافیک را تعیین می‌کنند",
"logConfigs": زارش",
"logConfigs": "لاگ",
"logConfigsDesc": "گزارش‌ها ممکن است بر کارایی سرور شما تأثیر بگذارد. توصیه می شود فقط در صورت نیاز آن را عاقلانه فعال کنید",
"blockConfigsDesc": "این گزینه‌ها ترافیک را بر اساس پروتکل‌های درخواستی خاص، و وب سایت‌ها مسدود می‌کند",
"basicRouting": "مسیریابی پایه",
@@ -840,11 +1099,11 @@
"Outbounds": "خروجی‌ها",
"Balancers": "بالانسرها",
"balancerTagRequired": "تگ الزامی است",
"balancerSelectorRequired": "حداقل یک outbound انتخاب کنید",
"balancerSelectorRequired": "حداقل یک خروجی انتخاب کنید",
"OutboundsDesc": "مسیر ترافیک خروجی را تنظیم کنید",
"Routings": "قوانین مسیریابی",
"RoutingsDesc": "اولویت هر قانون مهم است",
"completeTemplate": "کامل",
"completeTemplate": "همه",
"logLevel": "سطح گزارش",
"logLevelDesc": "سطح گزارش برای گزارش های خطا، نشان دهنده اطلاعاتی است که باید ثبت شوند.",
"accessLog": "مسیر گزارش",
@@ -879,6 +1138,73 @@
"edit": "ویرایش قانون",
"useComma": "موارد جدا شده با کاما"
},
"routing": {
"dragToReorder": "برای تغییر ترتیب بکشید"
},
"ruleForm": {
"sourceIps": "IPهای مبدا",
"sourcePort": "پورت مبدا",
"vlessRoute": "مسیر VLESS",
"attributes": "صفت‌ها",
"value": "مقدار",
"user": "کاربر",
"inboundTags": "تگ‌های ورودی",
"outboundTag": "تگ خروجی",
"balancerTag": "تگ بالانسر",
"balancerTagTooltip": "ترافیک را از یکی از بالانسرهای پیکربندی‌شده عبور می‌دهد"
},
"outboundForm": {
"tagDuplicate": "این تگ توسط خروجی دیگری استفاده شده است",
"tagRequired": "تگ الزامی است",
"tagPlaceholder": "تگ-منحصربه‌فرد",
"localIpPlaceholder": "IP محلی",
"addressRequired": "آدرس الزامی است",
"portRequired": "پورت الزامی است",
"optional": "اختیاری",
"udpOverTcp": "UDP over TCP",
"uotVersion": "نسخه UoT",
"inboundTag": "تگ ورودی",
"inboundTagPlaceholder": "تگ ورودی استفاده‌شده در قوانین مسیریابی",
"responseType": "نوع پاسخ",
"rewriteNetwork": "بازنویسی شبکه",
"unchanged": "(بدون تغییر)",
"unchangedAddress": "(بدون تغییر) مثل 1.1.1.1",
"rules": "قوانین",
"ruleN": "قانون {n}",
"action": "عمل",
"redirect": "بازهدایت",
"fragment": "Fragment",
"finalRules": "قوانین نهایی",
"overrideXrayPrivateIp": "override بلاک پیش‌فرض IP خصوصی Xray",
"blockDelay": "تأخیر بلاک (ms)",
"reverseSniffing": "Sniffing معکوس",
"workers": "Workerها",
"reserved": "رزرو شده",
"minUploadInterval": "حداقل بازه آپلود (ms)",
"maxUploadSizeBytes": "حداکثر اندازه آپلود (بایت)",
"uplinkChunkSize": "اندازه قطعه آپلینک",
"noGrpcHeader": "بدون هدر gRPC",
"maxConcurrency": "حداکثر هم‌زمانی",
"maxConnections": "حداکثر اتصال‌ها",
"maxReuseTimes": "حداکثر استفاده مجدد",
"maxRequestTimes": "حداکثر تعداد درخواست",
"maxReusableSecs": "حداکثر ثانیه قابل استفاده مجدد",
"keepAlivePeriod": "دوره Keep alive",
"authPassword": "رمز احراز",
"visionTestpre": "Vision testpre",
"serverNamePlaceholder": "نام سرور",
"verifyPeerName": "تایید نام Peer",
"pinnedSha256": "SHA256 پین‌شده",
"shortId": "Short ID",
"sockopts": "Sockopts",
"keepAliveInterval": "بازه Keep alive",
"markFwmark": "علامت (fwmark)",
"interface": "رابط",
"ipv6Only": "فقط IPv6",
"acceptProxyProtocol": "پذیرش Proxy Protocol",
"tcpUserTimeoutMs": "TCP user timeout (ms)",
"tcpKeepAliveIdleS": "TCP keep-alive idle (s)"
},
"outbound": {
"addOutbound": "افزودن خروجی",
"addReverse": "افزودن معکوس",
@@ -887,7 +1213,7 @@
"reverseTag": "تگ معکوس",
"reverseTagDesc": "تگ خروجی پروکسی معکوس ساده VLESS. برای غیرفعال کردن خالی بگذارید. در صورت تنظیم، اتصالات این کلاینت می‌توانند به عنوان تونل پروکسی معکوس استفاده شوند.",
"reverseTagPlaceholder": "تگ خروجی (خالی = غیرفعال)",
"tag": "برچسب",
"tag": "تگ",
"tagDesc": "برچسب یگانه",
"address": "آدرس",
"reverse": "معکوس",
@@ -907,6 +1233,8 @@
"testSuccess": "تست موفقیت‌آمیز",
"testFailed": "تست ناموفق",
"testError": "خطا در تست خروجی",
"testModeTooltip": "TCP: فقط dial سریع. HTTP: درخواست کامل از طریق xray.",
"testAll": "تست همه",
"nordvpn": "NordVPN",
"accessToken": "توکن دسترسی",
"country": "کشور",
@@ -921,8 +1249,18 @@
"editBalancer": "ویرایش بالانسر",
"balancerStrategy": "استراتژی",
"balancerSelectors": "انتخاب‌گرها",
"tag": "برچسب",
"tag": "تگ",
"tagDesc": "برچسب یگانه",
"tagDuplicate": "این تگ توسط بالانسر دیگری استفاده شده است",
"tagPlaceholder": "تگ منحصربه‌فرد بالانسر",
"selector": "انتخابگر",
"fallback": "Fallback",
"expected": "مورد انتظار",
"expectedPlaceholder": "تعداد نود بهینه",
"maxRtt": "حداکثر RTT",
"tolerance": "تحمل",
"baselines": "خطوط پایه",
"costs": "هزینه‌ها",
"balancerDesc": "امکان استفاده همزمان balancerTag و outboundTag باهم وجود ندارد. درصورت استفاده همزمان فقط outboundTag عمل خواهد کرد."
},
"wireguard": {
@@ -939,6 +1277,38 @@
"userLevel": "سطح کاربر",
"userLevelDesc": "تمام اتصالات انجام‌شده از طریق این ورودی از این سطح کاربری استفاده خواهند کرد. مقدار پیش‌فرض 0 است"
},
"nord": {
"accessToken": "توکن دسترسی",
"privateKey": "کلید خصوصی",
"noServers": "سروری برای کشور انتخابی پیدا نشد",
"noPublicKey": "سرور انتخابی کلید عمومی NordLynx اعلام نمی‌کند.",
"outboundAdded": "خروجی NordVPN اضافه شد",
"outboundUpdated": "خروجی NordVPN به‌روزرسانی شد"
},
"warp": {
"licenseError": "تنظیم لایسنس WARP ناموفق بود.",
"fetchFirst": "ابتدا پیکربندی WARP را دریافت کنید.",
"createAccount": "ایجاد حساب WARP",
"accessToken": "توکن دسترسی",
"deviceId": "شناسه دستگاه",
"licenseKey": "کلید لایسنس",
"privateKey": "کلید خصوصی",
"deleteAccount": "حذف حساب",
"settings": "تنظیمات",
"licenseKeyLabel": "کلید لایسنس WARP / WARP+",
"key": "کلید",
"keyPlaceholder": "کلید ۲۶ کاراکتری WARP+",
"accountInfo": "اطلاعات حساب",
"deviceName": "نام دستگاه",
"deviceModel": "مدل دستگاه",
"deviceEnabled": "دستگاه فعال",
"accountType": "نوع حساب",
"role": "نقش",
"warpPlusData": "داده WARP+",
"quota": "سهمیه",
"usage": "مصرف",
"addOutbound": "افزودن خروجی"
},
"dns": {
"enable": "فعال کردن حل دامنه",
"enableDesc": "سرور حل دامنه داخلی را فعال کنید",
@@ -1006,7 +1376,7 @@
"hours": "ساعت",
"minutes": "دقیقه",
"unknown": "نامشخص",
"inbounds": "ورودی ها",
"inbounds": "ورودیها",
"clients": "کاربران",
"offline": "🔴 آفلاین",
"online": "🟢 آنلاین",
@@ -1039,24 +1409,24 @@
"2faFailed": "خطای 2FA",
"report": "🕰 گزارشات‌زمان‌بندی‌شده: {{ .RunTime }}\r\n",
"datetime": "⏰ تاریخ‌وزمان: {{ .DateTime }}\r\n",
"hostname": "💻 نام‌میزبان: {{ .Hostname }}\r\n",
"hostname": "💻 میزبان: {{ .Hostname }}\r\n",
"version": "🚀 نسخه‌پنل: {{ .Version }}\r\n",
"xrayVersion": "📡 نسخه‌هسته: {{ .XrayVersion }}\r\n",
"ipv6": "🌐 IPv6: {{ .IPv6 }}\r\n",
"ipv4": "🌐 IPv4: {{ .IPv4 }}\r\n",
"ip": "🌐 آدرس‌آی‌پی: {{ .IP }}\r\n",
"ips": "🔢 آدرس‌های آی‌پی:\r\n{{ .IPs }}\r\n",
"ip": "🌐 IP: {{ .IP }}\r\n",
"ips": "🔢 IPها:\r\n{{ .IPs }}\r\n",
"serverUpTime": "⏳ مدت‌کارکردسیستم: {{ .UpTime }} {{ .Unit }}\r\n",
"serverLoad": "📈 بارسیستم: {{ .Load1 }}, {{ .Load2 }}, {{ .Load3 }}\r\n",
"serverMemory": "📋 RAM: {{ .Current }}/{{ .Total }}\r\n",
"tcpCount": "🔹 TCP: {{ .Count }}\r\n",
"udpCount": "🔸 UDP: {{ .Count }}\r\n",
"traffic": "🚦 ترافیک: {{ .Total }} (↑{{ .Upload }},↓{{ .Download }})\r\n",
"xrayStatus": "️ وضعیت‌ایکس‌ری: {{ .State }}\r\n",
"xrayStatus": "️ وضعیت: {{ .State }}\r\n",
"username": "👤 نام‌کاربری: {{ .Username }}\r\n",
"reason": "❗️ دلیل: {{ .Reason }}\r\n",
"time": "⏰ زمان: {{ .Time }}\r\n",
"inbound": "📍 نام‌ورودی: {{ .Remark }}\r\n",
"inbound": "📍 ورودی: {{ .Remark }}\r\n",
"port": "🔌 پورت: {{ .Port }}\r\n",
"expire": "📅 تاریخ‌انقضا: {{ .Time }}\r\n\r\n",
"expireIn": "📅 باقی‌ مانده‌ تا انقضا: {{ .Time }}\r\n\r\n",
@@ -1065,9 +1435,9 @@
"online": "🌐 وضعیت اتصال: {{ .Status }}\r\n",
"lastOnline": "🔙 آخرین فعالیت: {{ .Time }}\r\n",
"email": "📧 ایمیل: {{ .Email }}\r\n",
"upload": "🔼 آپلود: {{ .Upload }}\r\n",
"download": "🔽 دانلود: {{ .Download }}\r\n",
"total": "🔄 کل: {{ .UpDown }} / {{ .Total }}\r\n",
"upload": "🔼 آپلود: {{ .Upload }}\r\n",
"download": "🔽 دانلود: {{ .Download }}\r\n",
"total": "📊 کل: ↑↓{{ .UpDown }} / {{ .Total }}\r\n",
"TGUser": "👤 کاربر تلگرام: {{ .TelegramID }}\r\n",
"exhaustedMsg": "🚨 {{ .Type }} به‌اتمام‌رسیده‌است:\r\n",
"exhaustedCount": "🚨 تعداد {{ .Type }} به‌اتمام‌رسیده‌است:\r\n",
@@ -1134,11 +1504,11 @@
"submitDisable": "ارسال به عنوان غیرفعال ☑️",
"submitEnable": "ارسال به عنوان فعال ✅",
"use_default": "🏷️ استفاده از پیش‌فرض",
"change_id": "⚙️🔑 شناسه",
"change_id": "⚙️🔑 ID",
"change_password": "⚙️🔑 گذرواژه",
"change_email": "⚙️📧 ایمیل",
"change_comment": "⚙️💬 نظر",
"change_flow": "⚙️🚦 جریان",
"change_flow": "⚙️🚦 Flow",
"ResetAllTraffics": "بازنشانی همه ترافیک‌ها",
"SortedTrafficUsageReport": "گزارش استفاده از ترافیک مرتب‌شده"
},
@@ -1166,4 +1536,4 @@
"chooseInbound": "یک ورودی انتخاب کنید"
}
}
}
}