精简版第四轮补裁(P4): 页面层摘除 + Xray更新端点下线 + 本机核心监管下线
页面层(用户真机截图发现前两轮漏裁): - 设置: 摘除 Telegram机器人/邮件菜单与页面, 及页内残留入口(通知页/外部流量/LDAP/2FA设置页) - Xray配置: 摘除负载均衡/DNS/高级配置菜单与页面; 基础配置(出站+路由)完好 - 总览: 摘除 Xray更新弹窗(VersionModal+GeodataSection)全部入口, 版本号改为静态展示 - 13个locale同步摘除461个已删功能专属翻译键(逐键核查前后端引用为零; i18n-dead-keys测试全绿) Xray更新后端(经调查确认仅服务本机bin/xray, 与agent下发/订阅无关): - 删除 getXrayVersion/installXray/updateGeofile 路由与handler(访问返回404) - 删除 ServerService 对应实现与校验和函数; 同步api-docs/monitor白名单/openapi 本机核心监管下线(设计: 主控永不运行本机xray, 入站全在agent): - XrayService.RestartXray 降级为no-op(一次性Warning说明日志); StopXray无进程时幂等返回 - web.go 摘除启动拉起本机核心/CheckXrayRunning看门狗(1s)/ApplyPendingRestart cron(30s)/XrayTrafficJob/CheckClientIpJob 注册 - ApplyPendingRestart 降级为消费即清, 其测试更新为新语义 - XrayMetricsService.Sample 短路: 不再每2s探本机/debug/vars, 状态优雅置为不可用 - 配置生成(纯JSON)/agent链路/订阅/入站CRUD未动; 状态读数优雅归零(stop/Unknown) 注: TestGetXrayConfig_EnabledClientsStillEmitted 在基线945b3a5同样失败(既有问题, 非本轮引入)
This commit is contained in:
@@ -67,16 +67,12 @@
|
||||
"success": "موفق",
|
||||
"lastOnline": "آخرین فعالیت",
|
||||
"lastSubFetch": "آخرین دریافت اشتراک",
|
||||
"getVersion": "دریافت نسخه",
|
||||
"install": "نصب",
|
||||
"clients": "کاربران",
|
||||
"usage": "استفاده",
|
||||
"twoFactorCode": "کد",
|
||||
"remained": "باقیمانده",
|
||||
"security": "امنیت",
|
||||
"emptyDnsDesc": "هیچ سرور DNS اضافه نشده است.",
|
||||
"emptyFakeDnsDesc": "هیچ سرور Fake DNS اضافه نشده است.",
|
||||
"emptyBalancersDesc": "هیچ بالانسر اضافه نشده است.",
|
||||
"somethingWentWrong": "مشکلی پیش آمد",
|
||||
"subscription": {
|
||||
"title": "اطلاعات سابسکریپشن",
|
||||
@@ -87,7 +83,6 @@
|
||||
"uploaded": "آپلود",
|
||||
"expiry": "تاریخ پایان",
|
||||
"totalQuota": "حجم کلی",
|
||||
"individualLinks": "لینکهای تکی",
|
||||
"active": "فعال",
|
||||
"inactive": "غیرفعال",
|
||||
"unlimited": "نامحدود",
|
||||
@@ -136,9 +131,6 @@
|
||||
"xrayStatus": "Xray",
|
||||
"stopXray": "توقف",
|
||||
"restartXray": "راهاندازی مجدد",
|
||||
"xraySwitch": "نسخه",
|
||||
"xrayUpdates": "بهروزرسانیهای Xray",
|
||||
"xraySwitchClickDesk": "لطفا بادقت انتخاب کنید. درصورت انتخاب نسخه قدیمیتر، امکان ناهماهنگی با پیکربندی فعلی وجود دارد",
|
||||
"updatePanel": "بهروزرسانی پنل",
|
||||
"panelUpdateDesc": "این عملیات 3X-UI را به آخرین نسخه بهروزرسانی میکند و سرویس پنل را مجدداً راهاندازی میکند.",
|
||||
"currentPanelVersion": "نسخه فعلی پنل",
|
||||
@@ -200,9 +192,6 @@
|
||||
"download": "دانلود",
|
||||
"sent": "ارسال شده",
|
||||
"received": "دریافت شده",
|
||||
"xraySwitchVersionDialog": "آیا واقعاً میخواهید نسخه Xray را تغییر دهید؟",
|
||||
"xraySwitchVersionDialogDesc": "این کار نسخه Xray را به #version# تغییر میدهد.",
|
||||
"xraySwitchVersionPopover": "Xray با موفقیت بهروز شد",
|
||||
"panelUpdateDialog": "آیا مطمئن هستید که میخواهید پنل را بهروزرسانی کنید؟",
|
||||
"panelUpdateDialogDesc": "این 3X-UI را به نسخه #version# بهروزرسانی کرده و سرویس پنل را مجدداً راهاندازی میکند.",
|
||||
"panelUpdateStartedPopover": "بهروزرسانی پنل آغاز شد",
|
||||
@@ -210,24 +199,6 @@
|
||||
"panelUpdateFailedDesc": "بهروزرسانی با موفقیت به پایان نرسید. گزارشهای سرور را بررسی کنید یا دستور «x-ui update» را از خط فرمان اجرا کنید.",
|
||||
"panelUpdateUnknownTitle": "تأیید نشد که بهروزرسانی به پایان رسیده باشد",
|
||||
"panelUpdateUnknownDesc": "پنل بهموقع نتیجهای گزارش نکرد. صفحه را بارگذاری مجدد کنید تا نسخه فعلی را بررسی کنید یا گزارشهای سرور را بررسی کنید.",
|
||||
"geofileUpdateDialog": "آیا واقعاً میخواهید فایل جغرافیایی را بهروز کنید؟",
|
||||
"geofileUpdateDialogDesc": "این عمل فایل #filename# را بهروز میکند.",
|
||||
"geofilesUpdateDialogDesc": "با این کار همه فایلها بهروزرسانی میشوند.",
|
||||
"geofilesUpdateAll": "همه را بهروزرسانی کنید",
|
||||
"geofileUpdatePopover": "فایل جغرافیایی با موفقیت بهروز شد",
|
||||
"geodataTitle": "بهروزرسانی خودکار Geodata",
|
||||
"geodataHint": "Xray این فایلها را طبق زمانبندی دانلود کرده و بدون ریاستارت بارگذاری مجدد میکند. آدرسها باید HTTPS باشند. هر فایل باید از قبل در پوشه bin موجود باشد تا Xray بتواند آن را بهروزرسانی کند.",
|
||||
"geodataCron": "زمانبندی (cron)",
|
||||
"geodataOutbound": "دانلود از طریق خروجی (اختیاری)",
|
||||
"geodataFile": "نام فایل",
|
||||
"geodataAddFile": "افزودن فایل",
|
||||
"geodataSaveRestart": "ذخیره و ریاستارت Xray",
|
||||
"geodataConfirmTitle": "تنظیمات geodata ذخیره شود؟",
|
||||
"geodataConfirmContent": "قالب پیکربندی Xray بهروزرسانی و Xray ریاستارت میشود.",
|
||||
"geodataInvalidUrl": "هر فایل به یک آدرس HTTPS نیاز دارد.",
|
||||
"geodataInvalidFile": "نام فایل باید ساده باشد، مانند geosite_custom.dat (بدون مسیر).",
|
||||
"geodataInvalidCron": "Cron باید ۵ بخش داشته باشد، مثل 0 4 * * *",
|
||||
"geodataEmpty": "فایلی پیکربندی نشده است. در قوانین مسیریابی فایلها به صورت ext:geosite_custom.dat:category استفاده میشوند.",
|
||||
"dontRefresh": "در حال نصب، لطفا صفحه را رفرش نکنید",
|
||||
"logs": "لاگها",
|
||||
"accessLogs": "لاگهای دسترسی",
|
||||
@@ -1082,7 +1053,6 @@
|
||||
"warnDefaultBasePath": "مسیر پایه پیشفرض «/» شناختهشده است — آن را به یک مسیر تصادفی تغییر دهید.",
|
||||
"warnDefaultSubPath": "مسیر ساب پیشفرض «/sub/» شناختهشده است — تغییرش دهید.",
|
||||
"warnDefaultJsonPath": "مسیر JSON ساب پیشفرض «/json/» شناختهشده است — تغییرش دهید.",
|
||||
"TGBotSettings": "ربات تلگرام",
|
||||
"panelListeningIP": "آدرس آیپی",
|
||||
"panelListeningIPDesc": "آدرس آیپی برای وب پنل. برای گوشدادن بهتمام آیپیها خالیبگذارید",
|
||||
"panelListeningDomain": "نام دامنه",
|
||||
@@ -1111,43 +1081,12 @@
|
||||
"currentPassword": "رمزعبور فعلی",
|
||||
"newUsername": "نامکاربری جدید",
|
||||
"newPassword": "رمزعبور جدید",
|
||||
"telegramBotEnable": "فعالسازی ربات تلگرام",
|
||||
"telegramBotEnableDesc": "ربات تلگرام را فعال میکند",
|
||||
"telegramToken": "توکن تلگرام",
|
||||
"telegramTokenDesc": "دریافت کنید {'@'}botfather توکن را میتوانید از",
|
||||
"telegramProxy": "پراکسی SOCKS",
|
||||
"telegramProxyDesc": "را برای اتصال به تلگرام فعال می کند SOCKS5 پراکسی",
|
||||
"telegramAPIServer": "سرور API تلگرام",
|
||||
"telegramAPIServerDesc": "API سرور تلگرام برای اتصال را تغییر میدهد. برای استفاده از سرور پیش فرض خالی بگذارید",
|
||||
"telegramChatId": "آیدی چت مدیر",
|
||||
"telegramChatIdDesc": "دریافت کنید ('/id'یا (دستور ({'@'}userinfobot) آیدی(های) چت تلگرام مدیر، از",
|
||||
"telegramNotifyTime": "زمان نوتیفیکیشن",
|
||||
"telegramNotifyTimeDesc": "هر چند وقت یکبار ربات تلگرام گزارش دورهای بفرستد. یک بازهٔ آماده انتخاب کنید یا گزینهٔ سفارشی را بزنید تا عبارت crontab وارد کنید.",
|
||||
"notifyTime": {
|
||||
"every": "@every — تکرار در یک بازه",
|
||||
"hourly": "@hourly — هر ساعت",
|
||||
"daily": "@daily — هر روز ساعت ۰۰:۰۰",
|
||||
"weekly": "@weekly — هر هفته",
|
||||
"monthly": "@monthly — هر ماه",
|
||||
"custom": "سفارشی (crontab)",
|
||||
"seconds": "ثانیه",
|
||||
"minutes": "دقیقه",
|
||||
"hours": "ساعت",
|
||||
"interval": "بازه زمانی",
|
||||
"unit": "واحد"
|
||||
},
|
||||
"tgNotifyBackup": "پشتیبانگیری از دیتابیس",
|
||||
"tgNotifyBackupDesc": "فایل پشتیباندیتابیس را بههمراه گزارش ارسال میکند",
|
||||
"tgNotifyLogin": "اعلان ورود",
|
||||
"tgNotifyLoginDesc": "نامکاربری، آدرس آیپی، و زمان ورود، فردی که سعی میکند وارد پنل شود را نمایش میدهد",
|
||||
"sessionMaxAge": "بیشینه زمان جلسه وب",
|
||||
"sessionMaxAgeDesc": "(بیشینه زمانی که میتوانید لاگین بمانید. (واحد: دقیقه",
|
||||
"expireTimeDiff": "آستانه زمان باقی مانده",
|
||||
"expireTimeDiffDesc": "(فاصله زمانی هشدار تا رسیدن به زمان انقضا. (واحد: روز",
|
||||
"trafficDiff": "آستانه ترافیک باقی مانده",
|
||||
"trafficDiffDesc": "(فاصله زمانی هشدار تا رسیدن به اتمام ترافیک. (واحد: گیگابایت",
|
||||
"tgNotifyCpu": "آستانه هشدار بار پردازنده",
|
||||
"tgNotifyCpuDesc": "(اگر بار روی پردازنده ازاین آستانه فراتر رفت، برای شما پیام ارسال میشود. (واحد: درصد",
|
||||
"timeZone": "منطقه زمانی",
|
||||
"timeZoneDesc": "وظایف برنامه ریزی شده بر اساس این منطقهزمانی اجرا میشود",
|
||||
"subSettings": "سابسکریپشن",
|
||||
@@ -1212,10 +1151,6 @@
|
||||
"subEncryptDesc": "کدگذاری خواهدشد Base64 محتوای برگشتی سرویس سابسکریپشن برپایه",
|
||||
"subURI": "پروکسی معکوس URI مسیر",
|
||||
"subURIDesc": "آدرس پایه کامل (scheme://domain[:port]/path/) برای لینک سابسکریپشن و کد QR، به جای نام دامنه/پورت استفاده میشود. هر وقت سابسکریپشن از پشت یک پراکسی معکوس یا روی دامنه/پورت متفاوتی نسبت به موارد بالا در دسترس است، این را پر کنید.",
|
||||
"externalTrafficInformEnable": "اطلاع رسانی خارجی مصرف ترافیک",
|
||||
"externalTrafficInformEnableDesc": "به API خارجی در هر بهروزرسانی ترافیک اطلاع بده.",
|
||||
"externalTrafficInformURI": "لینک اطلاع رسانی خارجی مصرف ترافیک",
|
||||
"externalTrafficInformURIDesc": "ترافیک های مصرفی به این لینک هم ارسال می شود",
|
||||
"restartXrayOnClientDisable": "ریاستارت Xray بعد از غیرفعالسازی خودکار",
|
||||
"restartXrayOnClientDisableDesc": "وقتی کاربر بهصورت خودکار بهدلیل اتمام زمان یا ترافیک غیرفعال میشود، Xray ریاستارت شود.",
|
||||
"fragment": "فرگمنت",
|
||||
@@ -1225,38 +1160,6 @@
|
||||
"noisesSett": "تنظیمات Noises",
|
||||
"trustedProxyCidrs": "CIDRهای پراکسی مورد اعتماد",
|
||||
"trustedProxyCidrsDesc": "IPها/CIDRها (با کاما) که مجازند هدرهای host، proto و client IP فوروارد را تنظیم کنند.",
|
||||
"ldap": {
|
||||
"enable": "فعالسازی همگامسازی LDAP",
|
||||
"host": "میزبان LDAP",
|
||||
"port": "پورت LDAP",
|
||||
"useTls": "استفاده از TLS (LDAPS)",
|
||||
"skipTlsVerify": "رد کردن تأیید گواهی TLS",
|
||||
"skipTlsVerifyDesc": "ناامن — اعتبارسنجی گواهی سرور را غیرفعال میکند. فقط برای CAهای داخلی/غیرمعتبر استفاده کنید.",
|
||||
"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": {
|
||||
"finalMask": "Final Mask",
|
||||
"finalMaskDesc": "ماسکهای TCP/UDP مربوط به Xray finalmask و پارامترهای QUIC را به هر پروفایل Xray JSON تولیدشده اضافه میکند. به برنامهای با پشتیبانی از اشتراک Xray JSON و هسته جدید Xray نیاز دارد.",
|
||||
@@ -1280,31 +1183,15 @@
|
||||
"muxSett": "تنظیمات ماکس",
|
||||
"direct": "اتصال مستقیم",
|
||||
"directDesc": "به طور مستقیم با دامنه ها یا محدوده آیپی یک کشور خاص ارتباط برقرار می کند",
|
||||
"notifications": "اعلانها",
|
||||
"certs": "گواهیها",
|
||||
"externalTraffic": "ترافیک خارجی",
|
||||
"dateAndTime": "تاریخ و زمان",
|
||||
"proxyAndServer": "پراکسی و سرور",
|
||||
"intervals": "فواصل",
|
||||
"information": "اطلاعات",
|
||||
"profile": "پروفایل",
|
||||
"language": "زبان",
|
||||
"telegramBotLanguage": "زبان ربات تلگرام",
|
||||
"security": {
|
||||
"admin": "اعتبارنامههای ادمین",
|
||||
"twoFactor": "احراز هویت دو مرحلهای",
|
||||
"twoFactorEnable": "فعالسازی 2FA",
|
||||
"twoFactorEnableDesc": "یک لایه اضافی امنیتی برای احراز هویت فراهم میکند.",
|
||||
"twoFactorModalSetTitle": "فعالسازی احراز هویت دو مرحلهای",
|
||||
"twoFactorModalDeleteTitle": "غیرفعالسازی احراز هویت دو مرحلهای",
|
||||
"twoFactorModalSteps": "برای راهاندازی احراز هویت دو مرحلهای، مراحل زیر را انجام دهید:",
|
||||
"twoFactorModalFirstStep": "1. این کد QR را در برنامه احراز هویت اسکن کنید یا توکن کنار کد QR را کپی کرده و در برنامه بچسبانید",
|
||||
"twoFactorModalSecondStep": "2. کد را از برنامه وارد کنید",
|
||||
"twoFactorModalRemoveStep": "برای حذف احراز هویت دو مرحلهای، کد را از برنامه وارد کنید.",
|
||||
"twoFactorModalChangeCredentialsTitle": "تغییر اعتبارنامهها",
|
||||
"twoFactorModalChangeCredentialsStep": "برای تغییر اعتبارنامههای مدیر، کد را از برنامه وارد کنید.",
|
||||
"twoFactorModalSetSuccess": "احراز هویت دو مرحلهای با موفقیت برقرار شد",
|
||||
"twoFactorModalDeleteSuccess": "احراز هویت دو مرحلهای با موفقیت حذف شد",
|
||||
"twoFactorModalError": "کد نادرست",
|
||||
"show": "نمایش",
|
||||
"hide": "پنهان",
|
||||
@@ -1327,36 +1214,6 @@
|
||||
"getOutboundTrafficError": "خطا در دریافت ترافیک خروجی",
|
||||
"resetOutboundTrafficError": "خطا در بازنشانی ترافیک خروجی"
|
||||
},
|
||||
"smtpSettings": "تنظیمات SMTP",
|
||||
"smtpEnable": "فعالسازی اعلانهای ایمیلی",
|
||||
"smtpEnableDesc": "فعالسازی اعلانهای ایمیلی از طریق SMTP",
|
||||
"smtpHost": "میزبان SMTP",
|
||||
"smtpHostDesc": "نام میزبان سرور SMTP (مثلاً smtp.gmail.com)",
|
||||
"smtpPort": "پورت SMTP",
|
||||
"smtpPortDesc": "پورت سرور SMTP (پیشفرض: ۵۸۷)",
|
||||
"smtpUsername": "نامکاربری SMTP",
|
||||
"smtpUsernameDesc": "نامکاربری احراز هویت SMTP",
|
||||
"smtpFrom": "آدرس فرستنده (From)",
|
||||
"smtpFromDesc": "آدرس استفادهشده در سرآیند From ایمیل. برای استفاده از نام کاربری، خالی بگذارید.",
|
||||
"smtpFromName": "نام فرستنده (From)",
|
||||
"smtpFromNameDesc": "نام نمایشی اختیاری پیش از آدرس در سرآیند From.",
|
||||
"smtpPassword": "رمز عبور SMTP",
|
||||
"smtpPasswordDesc": "رمز عبور احراز هویت SMTP",
|
||||
"smtpTo": "گیرندگان",
|
||||
"smtpToDesc": "آدرسهای ایمیل گیرندگان، جداشده با کاما",
|
||||
"emailSettings": "ایمیل",
|
||||
"emailNotifications": "اعلانها",
|
||||
"smtpEventBusNotify": "اعلانهای رویداد ایمیلی",
|
||||
"smtpEventBusNotifyDesc": "انتخاب کنید کدام رویدادها اعلان ایمیلی را فعال میکنند",
|
||||
"tgEventBusNotify": "اعلانهای رویداد تلگرام",
|
||||
"tgEventBusNotifyDesc": "انتخاب کنید کدام رویدادها اعلان تلگرام را فعال میکنند",
|
||||
"testSmtp": "ارسال ایمیل آزمایشی",
|
||||
"testTgBot": "ارسال پیام آزمایشی",
|
||||
"eventGroupOutbound": "خروجی",
|
||||
"eventGroupXray": "هسته Xray",
|
||||
"eventGroupSystem": "سیستم",
|
||||
"eventGroupSecurity": "امنیت",
|
||||
"eventGroupNode": "نودها",
|
||||
"eventOutboundDown": "قطع",
|
||||
"eventOutboundUp": "وصل",
|
||||
"eventXrayCrash": "کرش",
|
||||
@@ -1364,36 +1221,7 @@
|
||||
"eventNodeUp": "وصل",
|
||||
"eventCPUHigh": "بالا بودن CPU (٪)",
|
||||
"requestFailed": "درخواست ناموفق بود",
|
||||
"smtpEncryption": "رمزنگاری",
|
||||
"smtpEncryptionDesc": "روش رمزنگاری اتصال SMTP",
|
||||
"smtpEncryptionNone": "هیچکدام (متن ساده)",
|
||||
"smtpEncryptionStartTLS": "STARTTLS",
|
||||
"smtpEncryptionTLS": "TLS (ضمنی)",
|
||||
"smtpStageConnect": "اتصال",
|
||||
"smtpStageAuth": "احراز هویت",
|
||||
"smtpStageSend": "ارسال",
|
||||
"smtpTestSuccess": "ایمیل آزمایشی با موفقیت ارسال شد",
|
||||
"smtpHostNotConfigured": "میزبان SMTP پیکربندی نشده است",
|
||||
"smtpNoRecipients": "هیچ گیرندهای پیکربندی نشده است",
|
||||
"smtpFromNotConfigured": "آدرس فرستنده SMTP پیکربندی نشده است",
|
||||
"eventLoginAttempt": "تلاش برای ورود",
|
||||
"telegramTokenConfigured": "پیکربندی شده؛ برای حفظ توکن فعلی خالی بگذارید.",
|
||||
"telegramTokenPlaceholder": "پیکربندی شده - برای جایگزینی، توکن جدید وارد کنید",
|
||||
"smtpPasswordConfigured": "پیکربندی شده؛ برای حفظ رمز عبور فعلی خالی بگذارید.",
|
||||
"smtpPasswordPlaceholder": "پیکربندی شده - برای جایگزینی، رمز عبور جدید وارد کنید",
|
||||
"smtpNotInitialized": "SMTP مقداردهی اولیه نشده است",
|
||||
"tgBotNotEnabled": "ربات تلگرام فعال نیست",
|
||||
"tgTestFailed": "آزمایش تلگرام ناموفق بود",
|
||||
"tgTestSuccess": "پیام آزمایشی به تلگرام ارسال شد",
|
||||
"tgBotNotRunning": "ربات تلگرام در حال اجرا نیست",
|
||||
"smtpErrorAuth": "احراز هویت ناموفق بود — نامکاربری و رمز عبور را بررسی کنید",
|
||||
"smtpErrorStarttls": "سرور به STARTTLS نیاز دارد — نوع رمزنگاری را تغییر دهید",
|
||||
"smtpErrorTls": "سرور به TLS نیاز دارد — نوع رمزنگاری را تغییر دهید",
|
||||
"smtpErrorRefused": "اتصال رد شد — میزبان و پورت را بررسی کنید",
|
||||
"smtpErrorTimeout": "مهلت اتصال به پایان رسید — میزبان در دسترس نیست",
|
||||
"smtpErrorRelay": "سرور ارسال از این آدرس را رد میکند",
|
||||
"smtpErrorEof": "اتصال توسط سرور بسته شد",
|
||||
"smtpErrorUnknown": "خطای SMTP: {{ .Error }}",
|
||||
"eventMemoryHigh": "مصرف حافظه بالا (%)",
|
||||
"validation": {
|
||||
"pathLeadingSlash": "مسیر باید با / شروع شود"
|
||||
@@ -1475,8 +1303,6 @@
|
||||
"directdomains": "دامنههای مستقیم",
|
||||
"ipv4Routing": "IPv4 مسیریابی",
|
||||
"ipv4RoutingDesc": "این گزینهها ترافیک را از طریق آیپی نسخه4 سرور، به مقصد هدایت میکند",
|
||||
"Template": "پیکربندی پیشرفته الگو ایکسری",
|
||||
"TemplateDesc": "فایل پیکربندی نهایی ایکسری بر اساس این الگو ایجاد میشود",
|
||||
"FreedomStrategy": "Freedom استراتژی پروتکل",
|
||||
"FreedomStrategyDesc": "تعیین میکند Freedom استراتژی خروجی شبکه را برای پروتکل",
|
||||
"FreedomHappyEyeballs": "Freedom Happy Eyeballs (IPv4/IPv6)",
|
||||
@@ -1492,11 +1318,6 @@
|
||||
"Balancers": "بالانسرها",
|
||||
"balancerTagRequired": "تگ الزامی است",
|
||||
"balancerSelectorRequired": "حداقل یک خروجی انتخاب کنید",
|
||||
"balancerLive": "هدف زنده",
|
||||
"balancerOverride": "اجبار مسیر",
|
||||
"balancerOverridePh": "خودکار (استراتژی)",
|
||||
"balancerLiveRefresh": "بهروزرسانی وضعیت زنده بالانسر",
|
||||
"balancerNotRunning": "این بالانسر در Xray در حال اجرا فعال نیست — ابتدا تغییرات را ذخیره کنید یا Xray را روشن کنید",
|
||||
"routeTester": "آزمایش مسیر",
|
||||
"routeTesterDesc": "از Xray در حال اجرا بپرسید یک اتصال از کدام خروجی عبور میکند. هیچ ترافیکی ارسال نمیشود — پاسخ مستقیماً از موتور مسیریابی زنده میآید.",
|
||||
"routeTesterDest": "دامنه یا IP",
|
||||
@@ -1513,7 +1334,6 @@
|
||||
"importOutbounds": "ورود خروجیها",
|
||||
"exportOutbounds": "خروج خروجیها",
|
||||
"importInvalidJson": "JSON نامعتبر — یک آرایه یا یک شیء با کلید متناظر انتظار میرود.",
|
||||
"completeTemplate": "همه",
|
||||
"logLevel": "سطح گزارش",
|
||||
"logLevelDesc": "سطح گزارش برای گزارش های خطا، نشان دهنده اطلاعاتی است که باید ثبت شوند.",
|
||||
"accessLog": "مسیر گزارش",
|
||||
@@ -1544,7 +1364,6 @@
|
||||
"source": "مبدا",
|
||||
"dest": "مقصد",
|
||||
"inbound": "ورودی",
|
||||
"balancer": "بالانسر",
|
||||
"useComma": "موارد جدا شده با کاما"
|
||||
},
|
||||
"routing": {
|
||||
@@ -1725,32 +1544,7 @@
|
||||
"alreadyAdded": "این سرور از قبل در فهرست خروجی است. برای تمدید کلید {reset} را بزنید.",
|
||||
"provisionFailed": "ساخت خروجی PIA ممکن نشد. دوباره تلاش کنید."
|
||||
},
|
||||
"tabBalancerSettings": "تنظیمات بالانسر",
|
||||
"tabObservatory": "رصدخانه",
|
||||
"observatory": {
|
||||
"autoManaged": "رصدگرها بهصورت خودکار از روی بالانسرهای شما مدیریت میشوند. در ادامه میتوانید نحوهٔ پروبزدن را تنظیم کنید؛ خروجیهای تحت نظر از سلکتورهای بالانسر پیروی میکنند.",
|
||||
"emptyHint": "هیچ رصدگر اتصالی فعال نیست. وقتی یک بالانسر Least Ping یا Least Load بسازید — یا یک بالانسر Random / Round-robin همراه با fallback — بهصورت خودکار یکی اضافه میشود تا بالانسرهای متکی به رصدگر بتوانند پیش از انتخاب مقصد، سلامت خروجیها را بررسی کنند.",
|
||||
"mixedLegacy": "این پیکربندی هم Observatory و هم Burst Observatory دارد. Xray فقط از یک رصدگر سراسری استفاده میکند، بنابراین این حالت قدیمیِ ترکیبی پشتیبانی نمیشود؛ ذخیرهٔ بالانسرها آن را به یک رصدگر عادیسازی میکند.",
|
||||
"subjectSelector": "خروجیهای تحت نظر",
|
||||
"subjectSelectorDesc": "تگ خروجیهایی که این رصدگر پروب میکند. بهصورت خودکار از روی بالانسرهای شما مدیریت میشود.",
|
||||
"probeURL": "آدرس پروب (URL)",
|
||||
"probeURLDesc": "آدرسی که برای سنجش هر خروجی فراخوانی میشود. باید HTTP 204 برگرداند.",
|
||||
"probeInterval": "بازهٔ پروب",
|
||||
"probeIntervalDesc": "هر چند وقت یکبار هر خروجی پروب شود، مثلاً 30s یا 1m یا 2h45m.",
|
||||
"enableConcurrency": "پروب همزمان",
|
||||
"enableConcurrencyDesc": "همهٔ خروجیهای تحت نظر را بهجای یکییکی، همزمان پروب کن. سریعتر است اما در شبکه نمایانتر.",
|
||||
"destination": "مقصد پروب",
|
||||
"destinationDesc": "آدرسی که برای سنجش هر خروجی فراخوانی میشود. باید HTTP 204 برگرداند.",
|
||||
"connectivity": "بررسی اتصال",
|
||||
"connectivityDesc": "آدرس اختیاری برای بررسی شبکهٔ محلی که فقط پس از شکست مقصد امتحان میشود. برای نادیدهگرفتن خالی بگذارید.",
|
||||
"interval": "بازهٔ پروب",
|
||||
"intervalDesc": "میانگین فاصلهٔ زمانی بین پروبها برای هر خروجی، مثلاً 1m. کمینه 10s.",
|
||||
"timeout": "مهلت پروب",
|
||||
"timeoutDesc": "چه مدت برای پاسخ یک پروب صبر شود تا ناموفق بهحساب بیاید، مثلاً 5s.",
|
||||
"sampling": "تعداد نمونهگیری",
|
||||
"samplingDesc": "تعداد نتایج اخیر پروب که برای امتیازدهی به هر خروجی نگه داشته میشود.",
|
||||
"httpMethod": "متد HTTP",
|
||||
"httpMethodDesc": "متد HTTP که برای پروبها استفاده میشود.",
|
||||
"deleteAlsoObservatory": "این آخرین بالانسری است که از Observatory استفاده میکند، بنابراین آن هم حذف خواهد شد.",
|
||||
"deleteAlsoBurst": "این آخرین بالانسری است که از Burst Observatory استفاده میکند، بنابراین آن هم حذف خواهد شد."
|
||||
},
|
||||
@@ -1762,25 +1556,7 @@
|
||||
},
|
||||
"balancer": {
|
||||
"balancerStrategy": "استراتژی",
|
||||
"tag": "تگ",
|
||||
"tagDuplicate": "این تگ توسط بالانسر دیگری استفاده شده است",
|
||||
"tagPlaceholder": "تگ منحصربهفرد بالانسر",
|
||||
"selector": "انتخابگر",
|
||||
"fallback": "Fallback",
|
||||
"cycleTooltip": "حلقه: {path} → (بازگشت به {start})",
|
||||
"expected": "مورد انتظار",
|
||||
"expectedPlaceholder": "تعداد نود بهینه",
|
||||
"maxRtt": "حداکثر RTT",
|
||||
"tolerance": "تحمل",
|
||||
"baselines": "خطوط پایه",
|
||||
"costs": "هزینهها",
|
||||
"costMatch": "الگوی برچسب",
|
||||
"costValue": "وزن",
|
||||
"costRegexp": "تطبیق با عبارت باقاعده",
|
||||
"balancerDeleteInUse": "امکان حذف این بالانسر وجود ندارد — به عنوان پشتیبان برای موارد زیر استفاده میشود: {names}",
|
||||
"balancerFallbackCycle": "امکان تنظیم این بالانسر به عنوان پشتیبان وجود ندارد — وابستگی دایرهای ایجاد میکند.",
|
||||
"balancerFallbackInfo": "ترافیک از مسیر زیر مسیریابی میشود: بالانسر → Loopback → سرور → بالانسر مقصد → اتصال خروجی. این یک پرش اضافی از طریق سرور اضافه میکند که ممکن است تأخیرهای جزئی ایجاد کند.",
|
||||
"fallbackBalancerHint": "یک بالانسر دیگر به عنوان پشتیبان انتخاب کنید",
|
||||
"reservedPrefix": "پیشوند _bl_ برای اشیاء loopback داخلی بالانسر رزرو شده است"
|
||||
},
|
||||
"wireguard": {
|
||||
@@ -1883,55 +1659,8 @@
|
||||
"usage": "مصرف",
|
||||
"addOutbound": "افزودن خروجی"
|
||||
},
|
||||
"dns": {
|
||||
"enable": "فعال کردن حل دامنه",
|
||||
"enableDesc": "سرور حل دامنه داخلی را فعال کنید",
|
||||
"tag": "برچسب",
|
||||
"tagDesc": "این برچسب در قوانین مسیریابی به عنوان یک برچسب ورودی قابل استفاده خواهد بود",
|
||||
"clientIp": "آیپی کلاینت",
|
||||
"clientIpDesc": "برای اطلاعرسانی به سرور درباره مکان IP مشخصشده در طول درخواستهای DNS استفاده میشود",
|
||||
"disableCache": "غیرفعالسازی کش",
|
||||
"disableCacheDesc": "کش DNS را غیرفعال میکند",
|
||||
"disableFallback": "غیرفعالسازی Fallback",
|
||||
"disableFallbackDesc": "درخواستهای DNS Fallback را غیرفعال میکند",
|
||||
"disableFallbackIfMatch": "غیرفعالسازی Fallback در صورت تطابق",
|
||||
"disableFallbackIfMatchDesc": "درخواستهای DNS Fallback را زمانی که لیست دامنههای مطابقتیافته سرور DNS فعال است، غیرفعال میکند",
|
||||
"enableParallelQuery": "فعالسازی پرسوجوی موازی",
|
||||
"enableParallelQueryDesc": "فعالسازی پرسوجوهای DNS موازی به چندین سرور برای وضوح سریعتر",
|
||||
"strategy": "استراتژی پرسوجو",
|
||||
"strategyDesc": "استراتژی کلی برای حل نام دامنه",
|
||||
"add": "افزودن سرور",
|
||||
"edit": "ویرایش سرور",
|
||||
"domains": "دامنهها",
|
||||
"expectIPs": "آیپیهای مورد انتظار",
|
||||
"unexpectIPs": "آیپیهای غیرمنتظره",
|
||||
"useSystemHosts": "استفاده از Hosts سیستم",
|
||||
"useSystemHostsDesc": "استفاده از فایل hosts یک سیستم نصبشده",
|
||||
"serveStale": "ارائه نتایج منقضی",
|
||||
"serveStaleDesc": "بازگرداندن نتایج منقضی کش هنگام بروزرسانی در پسزمینه",
|
||||
"serveExpiredTTL": "TTL نتایج منقضی",
|
||||
"serveExpiredTTLDesc": "مدت اعتبار نتایج منقضی به ثانیه؛ ۰ یعنی هرگز منقضی نمیشود",
|
||||
"timeoutMs": "زمان انتظار (میلیثانیه)",
|
||||
"skipFallback": "رد کردن Fallback",
|
||||
"finalQuery": "پرسوجوی نهایی",
|
||||
"hosts": "Hosts",
|
||||
"hostsAdd": "افزودن Host",
|
||||
"hostsEmpty": "هیچ Host تعریف نشده",
|
||||
"hostsDomain": "دامنه (مثلاً domain:example.com)",
|
||||
"hostsValues": "آیپی یا دامنه — تایپ کنید و Enter بزنید",
|
||||
"usePreset": "استفاده از پیشتنظیم",
|
||||
"dnsPresetTitle": "پیشتنظیمهای DNS",
|
||||
"dnsPresetFamily": "خانوادگی",
|
||||
"clearAll": "حذف همه",
|
||||
"clearAllTitle": "حذف همه سرورهای DNS؟",
|
||||
"clearAllConfirm": "این کار همه سرورهای DNS را از لیست حذف میکند و قابل بازگشت نیست.",
|
||||
"dnsLeakWarning": "DNS ممکن است از طریق localhost، UDP/TCP ساده، حالت محلی DoH/DoQ، درخواستهای fallback یا EDNS client IP نشت کند. برای حریم خصوصی از DoH مسیریابیشده، مقدارهای hosts ثابت و غیرفعالسازی fallback استفاده کنید."
|
||||
},
|
||||
"fakedns": {
|
||||
"add": "افزودن دیاناس جعلی",
|
||||
"ipPool": "زیرشبکه استخر آیپی",
|
||||
"poolSize": "اندازه استخر"
|
||||
},
|
||||
"dns": {},
|
||||
"fakedns": {},
|
||||
"defaultOutbound": "خروجی پیشفرض",
|
||||
"defaultOutboundDesc": "ترافیکی که با هیچ قانون مسیریابی جور نشود از این خروجی استفاده میکند (اولین خروجی در فهرست)."
|
||||
},
|
||||
@@ -2055,198 +1784,7 @@
|
||||
}
|
||||
},
|
||||
"tgbot": {
|
||||
"keyboardClosed": "❌ صفحه کلید بسته شد!",
|
||||
"noResult": "❗ نتیجه ای یافت نشد!",
|
||||
"noQuery": "❌ درخواست یافت نشد! لطفا دوباره تلاش کنید!",
|
||||
"wentWrong": "❌ مشکلی پیش آمد!",
|
||||
"noIpRecord": "❗ رکورد آی پی وجود ندارد!",
|
||||
"noInbounds": "❗ هیچ ورودی یافت نشد!",
|
||||
"unlimited": "♾ نامحدود(ریست)",
|
||||
"add": "افزودن",
|
||||
"month": "ماه",
|
||||
"months": "ماه",
|
||||
"days": "روز",
|
||||
"hours": "ساعت",
|
||||
"minutes": "دقیقه",
|
||||
"unknown": "نامشخص",
|
||||
"inbounds": "ورودیها",
|
||||
"clients": "کاربران",
|
||||
"offline": "🔴 آفلاین",
|
||||
"online": "🟢 آنلاین",
|
||||
"commands": {
|
||||
"unknown": "❗ دستور ناشناخته",
|
||||
"pleaseChoose": "👇 لطفاً انتخاب کنید:\r\n",
|
||||
"help": "🤖 به این ربات خوش آمدید! این ربات برای ارائه دادههای خاص از سرور طراحی شده است و به شما امکان تغییرات لازم را میدهد.\r\n\r\n",
|
||||
"start": "👋 سلام <i>{{ .Firstname }}</i>.\r\n",
|
||||
"welcome": "🤖 به ربات مدیریت <b>{{ .Hostname }}</b> خوش آمدید.\r\n",
|
||||
"status": "✅ ربات در حالت عادی است!",
|
||||
"usage": "❗ لطفاً یک متن برای جستجو وارد کنید!",
|
||||
"getID": "🆔 شناسه شما: <code>{{ .ID }}</code>",
|
||||
"helpAdminCommands": "برای راهاندازی مجدد Xray Core:\r\n<code>/restart</code>\r\n\r\nبرای جستجوی ایمیل مشتری:\r\n<code>/usage [ایمیل]</code>\r\n\r\nبرای جستجوی ورودیها (با آمار مشتری):\r\n<code>/inbound [توضیحات]</code>\r\n\r\nشناسه گفتگوی تلگرام:\r\n<code>/id</code>",
|
||||
"helpClientCommands": "برای جستجوی آمار، از دستور زیر استفاده کنید:\r\n<code>/usage [ایمیل]</code>\r\n\r\nشناسه گفتگوی تلگرام:\r\n<code>/id</code>",
|
||||
"restartUsage": "\r\n\r\n<code>/restart</code>",
|
||||
"restartSuccess": "✅ عملیات با موفقیت انجام شد!",
|
||||
"restartFailed": "❗ خطا در عملیات.\r\n\r\n<code>خطا: {{ .Error }}</code>.",
|
||||
"xrayNotRunning": "❗ Xray Core در حال اجرا نیست.",
|
||||
"startDesc": "نمایش منوی اصلی",
|
||||
"helpDesc": "راهنمای ربات",
|
||||
"statusDesc": "بررسی وضعیت ربات",
|
||||
"idDesc": "نمایش شناسه تلگرام شما",
|
||||
"usageDesc": "مشاهده مصرف کاربر: /usage ایمیل",
|
||||
"inboundDesc": "جستجوی ورودیها: /inbound نام (مدیر)",
|
||||
"restartDesc": "راهاندازی مجدد هسته Xray (مدیر)",
|
||||
"clearallDesc": "صفر کردن ترافیک همه کاربران (مدیر)"
|
||||
},
|
||||
"messages": {
|
||||
"cpuThreshold": "بار پردازنده {{ .Percent }}% بیشتر از آستانه است {{ .Threshold }}%",
|
||||
"selectUserFailed": "❌ خطا در انتخاب کاربر!",
|
||||
"userSaved": "✅ کاربر تلگرام ذخیره شد.",
|
||||
"loginSuccess": "✅ با موفقیت به پنل وارد شدید.\r\n",
|
||||
"loginFailed": "❗️ ورود به پنل ناموفقبود \r\n",
|
||||
"report": "🕰 گزارشاتزمانبندیشده: {{ .RunTime }}\r\n",
|
||||
"datetime": "⏰ تاریخوزمان: {{ .DateTime }}\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: {{ .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",
|
||||
"username": "👤 نامکاربری: {{ .Username }}\r\n",
|
||||
"reason": "❗️ دلیل: {{ .Reason }}\r\n",
|
||||
"time": "⏰ زمان: {{ .Time }}\r\n",
|
||||
"inbound": "📍 ورودی: {{ .Remark }}\r\n",
|
||||
"port": "🔌 پورت: {{ .Port }}\r\n",
|
||||
"expire": "📅 تاریخانقضا: {{ .Time }}\r\n\r\n",
|
||||
"expireIn": "📅 باقی مانده تا انقضا: {{ .Time }}\r\n\r\n",
|
||||
"active": "💡 فعال: {{ .Enable }}\r\n",
|
||||
"enabled": "🚨 وضعیت: {{ .Enable }}\r\n",
|
||||
"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",
|
||||
"TGUser": "👤 کاربر تلگرام: {{ .TelegramID }}\r\n",
|
||||
"exhaustedCount": "🚨 تعداد {{ .Type }} بهاتمامرسیدهاست:\r\n",
|
||||
"onlinesCount": "🌐 کاربرانآنلاین: {{ .Count }}\r\n",
|
||||
"disabled": "🛑 غیرفعال: {{ .Disabled }}\r\n",
|
||||
"depleteSoon": "🔜 بهزودیبهپایانخواهدرسید: {{ .Deplete }}\r\n\r\n",
|
||||
"backupTime": "🗄 زمانپشتیبانگیری: {{ .Time }}\r\n",
|
||||
"refreshedOn": "\r\n📋🔄 تازهسازی شده در: {{ .Time }}\r\n\r\n",
|
||||
"yes": "✅ بله",
|
||||
"no": "❌ خیر",
|
||||
"received_email": "📧📥 ایمیل بهروزرسانی شد.",
|
||||
"received_comment": "💬📥 نظر بهروزرسانی شد.",
|
||||
"email_prompt": "📧 ایمیل پیشفرض: {{ .ClientEmail }}\n\nایمیل خود را وارد کنید.",
|
||||
"comment_prompt": "💬 نظر پیشفرض: {{ .ClientComment }}\n\nنظر خود را وارد کنید.",
|
||||
"cancel": "❌ فرآیند لغو شد! \n\nمیتوانید هر زمان که خواستید /start را دوباره اجرا کنید. 🔄",
|
||||
"error_add_client": "⚠️ خطا:\n\n {{ .error }}",
|
||||
"using_default_value": "باشه، از مقدار پیشفرض استفاده میکنم. 😊",
|
||||
"incorrect_input": "ورودی شما معتبر نیست.\nعبارتها باید بدون فاصله باشند.\nمثال صحیح: aaaaaa\nمثال نادرست: aaa aaa 🚫",
|
||||
"AreYouSure": "مطمئنی؟ 🤔",
|
||||
"SuccessResetTraffic": "📧 ایمیل: {{ .ClientEmail }}\n🏁 نتیجه: ✅ موفقیتآمیز",
|
||||
"FailedResetTraffic": "📧 ایمیل: {{ .ClientEmail }}\n🏁 نتیجه: ❌ ناموفق \n\n🛠️ خطا: [ {{ .ErrorMessage }} ]",
|
||||
"FinishProcess": "🔚 فرآیند بازنشانی ترافیک برای همه مشتریان به پایان رسید.",
|
||||
"eventOutboundDown": "خروجی {{ .Tag }} قطع است",
|
||||
"eventOutboundUp": "خروجی {{ .Tag }} وصل است",
|
||||
"eventErrorDetail": "خطا: {{ .Error }}",
|
||||
"eventDelayDetail": "تأخیر: {{ .Delay }} میلیثانیه",
|
||||
"eventXrayCrash": "Xray کرش کرد",
|
||||
"eventXrayCrashError": "خطا: {{ .Error }}",
|
||||
"eventNodeDown": "نود {{ .Name }} قطع است",
|
||||
"eventNodeUp": "نود {{ .Name }} وصل است",
|
||||
"eventLoginFallback": "ورود ناموفق از {{ .Source }}",
|
||||
"memoryThreshold": "مصرف حافظه {{ .Percent }}% از حد آستانه {{ .Threshold }}% فراتر رفته است"
|
||||
},
|
||||
"buttons": {
|
||||
"closeKeyboard": "❌ بستن کیبورد",
|
||||
"cancel": "❌ لغو",
|
||||
"cancelReset": "❌ لغو تنظیم مجدد",
|
||||
"cancelIpLimit": "❌ لغو محدودیت آیپی",
|
||||
"confirmResetTraffic": "✅ تأیید تنظیم مجدد ترافیک؟",
|
||||
"confirmClearIps": "✅ تأیید پاکسازی آدرسهای آیپی؟",
|
||||
"confirmRemoveTGUser": "✅ تأیید حذف کاربر تلگرام؟",
|
||||
"confirmToggle": "✅ تایید فعال/غیرفعال کردن کاربر؟",
|
||||
"dbBackup": "دریافت پشتیبان",
|
||||
"serverUsage": "استفاده از سیستم",
|
||||
"getInbounds": "دریافت ورودیها",
|
||||
"depleteSoon": "بهزودی به پایان خواهد رسید",
|
||||
"clientUsage": "دریافت آمار کاربر",
|
||||
"onlines": "کاربران آنلاین",
|
||||
"commands": "دستورات",
|
||||
"refresh": "🔄 تازهسازی",
|
||||
"clearIPs": "❌ پاکسازی آدرسها",
|
||||
"removeTGUser": "❌ حذف کاربر تلگرام",
|
||||
"selectTGUser": "👤 انتخاب کاربر تلگرام",
|
||||
"selectOneTGUser": "👤 یک کاربر تلگرام را انتخاب کنید:",
|
||||
"resetTraffic": "📈 تنظیم مجدد ترافیک",
|
||||
"resetExpire": "📅 تنظیم مجدد تاریخ انقضا",
|
||||
"ipLog": "🔢 لاگ آدرسهای IP",
|
||||
"ipLimit": "🔢 محدودیت IP",
|
||||
"setTGUser": "👤 تنظیم کاربر تلگرام",
|
||||
"toggle": "🔘 فعال / غیرفعال",
|
||||
"custom": "🔢 سفارشی",
|
||||
"confirmNumber": "✅ تایید: {{ .Num }}",
|
||||
"confirmNumberAdd": "✅ تایید اضافه کردن: {{ .Num }}",
|
||||
"limitTraffic": "🚧 محدودیت ترافیک",
|
||||
"getBanLogs": "گزارش های بلوک را دریافت کنید",
|
||||
"allClients": "همه مشتریان",
|
||||
"addClient": "افزودن مشتری",
|
||||
"submitDisable": "ارسال به عنوان غیرفعال ☑️",
|
||||
"submitEnable": "ارسال به عنوان فعال ✅",
|
||||
"use_default": "🏷️ استفاده از پیشفرض",
|
||||
"change_email": "⚙️📧 ایمیل",
|
||||
"change_comment": "⚙️💬 نظر",
|
||||
"ResetAllTraffics": "بازنشانی همه ترافیکها",
|
||||
"SortedTrafficUsageReport": "گزارش استفاده از ترافیک مرتبشده"
|
||||
},
|
||||
"answers": {
|
||||
"successfulOperation": "✅ انجام شد!",
|
||||
"errorOperation": "❗ خطا در عملیات.",
|
||||
"getInboundsFailed": "❌ دریافت ورودیها با خطا مواجه شد.",
|
||||
"getClientsFailed": "❌ دریافت مشتریان با شکست مواجه شد.",
|
||||
"canceled": "❌ {{ .Email }} : عملیات لغو شد.",
|
||||
"clientRefreshSuccess": "✅ {{ .Email }} : کلاینت با موفقیت تازهسازی شد.",
|
||||
"IpRefreshSuccess": "✅ {{ .Email }} : آدرسها با موفقیت تازهسازی شدند.",
|
||||
"TGIdRefreshSuccess": "✅ {{ .Email }} : کاربر تلگرام کلاینت با موفقیت تازهسازی شد.",
|
||||
"resetTrafficSuccess": "✅ {{ .Email }} : ترافیک با موفقیت تنظیم مجدد شد.",
|
||||
"setTrafficLimitSuccess": "✅ {{ .Email }} : محدودیت ترافیک با موفقیت ذخیره شد.",
|
||||
"expireResetSuccess": "✅ {{ .Email }} : تاریخ انقضا با موفقیت تنظیم مجدد شد.",
|
||||
"resetIpSuccess": "✅ {{ .Email }} : محدودیت آدرس IP {{ .Count }} با موفقیت ذخیره شد.",
|
||||
"clearIpSuccess": "✅ {{ .Email }} : آدرسها با موفقیت پاکسازی شدند.",
|
||||
"getIpLog": "✅ {{ .Email }} : دریافت لاگ آدرسهای IP.",
|
||||
"getUserInfo": "✅ {{ .Email }} : دریافت اطلاعات کاربر تلگرام.",
|
||||
"removedTGUserSuccess": "✅ {{ .Email }} : کاربر تلگرام با موفقیت حذف شد.",
|
||||
"enableSuccess": "✅ {{ .Email }} : با موفقیت فعال شد.",
|
||||
"disableSuccess": "✅ {{ .Email }} : با موفقیت غیرفعال شد.",
|
||||
"askToAddUserId": "پیکربندی شما یافت نشد!\r\nلطفاً از مدیر خود بخواهید که شناسه کاربر تلگرام خود را در پیکربندی (های) خود استفاده کند.\r\n\r\nشناسه کاربری شما: <code>{{ .TgUserID }}</code>",
|
||||
"chooseClient": "یک مشتری برای ورودی {{ .Inbound }} انتخاب کنید",
|
||||
"chooseInbound": "یک ورودی انتخاب کنید"
|
||||
}
|
||||
"noIpRecord": "❗ رکورد آی پی وجود ندارد!"
|
||||
},
|
||||
"email": {
|
||||
"labelStatus": "وضعیت",
|
||||
"labelOutbound": "خروجی",
|
||||
"labelNode": "نود",
|
||||
"labelError": "خطا",
|
||||
"labelDelay": "تأخیر",
|
||||
"labelUsername": "نامکاربری",
|
||||
"labelIP": "IP",
|
||||
"labelReason": "دلیل",
|
||||
"labelSource": "مبدأ",
|
||||
"statusCrashed": "کرش کرد",
|
||||
"statusHigh": "بالا",
|
||||
"statusSuccess": "موفق",
|
||||
"statusFailed": "ناموفق",
|
||||
"statusDown": "قطع",
|
||||
"statusUp": "وصل"
|
||||
}
|
||||
"email": {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user