agent_nodes gains probe_only; getConfig always serves the flag and withholds the sing-box payload (null config, empty hash) for flagged nodes while probe tasks, fast interval, stat iface and update intents ride as usual. The agent gates both core branches when the local agent.json preset or the master flag is on, retires a running core once (best-effort tail flush, switchover bookkeeping untouched so turning the flag off self-heals through the existing hash-current-but-not-running path), and makes the traffic cycle an explicit no-op. Panel: node create/update accept probeOnly, the node view overlays it from the binding, the node form gains a switch (carried into the generated install command), the list shows a probe-only tag in the core-version cell, and install-agent.sh --probe-only writes the preset, skips the core download/self-check and inherits the flag on no-arg reruns.
1644 lines
116 KiB
JSON
1644 lines
116 KiB
JSON
{
|
||
"username": "نامکاربری",
|
||
"password": "رمزعبور",
|
||
"login": "ورود",
|
||
"confirm": "تایید",
|
||
"cancel": "انصراف",
|
||
"close": "بستن",
|
||
"save": "ذخیره",
|
||
"logout": "خروج",
|
||
"create": "ایجاد",
|
||
"add": "افزودن",
|
||
"remove": "حذف",
|
||
"update": "بهروزرسانی",
|
||
"copy": "کپی",
|
||
"copied": "کپی شد",
|
||
"more": "بیشتر",
|
||
"download": "دانلود",
|
||
"regenerate": "تولید مجدد",
|
||
"jsonEditor": "ویرایشگر JSON",
|
||
"downloadImage": "دانلود تصویر",
|
||
"sort": "مرتبسازی",
|
||
"remark": "نام",
|
||
"enable": "فعال",
|
||
"protocol": "پروتکل",
|
||
"search": "جستجو",
|
||
"filter": "فیلتر",
|
||
"all": "همه",
|
||
"from": "از",
|
||
"to": "تا",
|
||
"done": "انجام شد",
|
||
"loading": "...در حال بارگذاری",
|
||
"refresh": "تازهسازی",
|
||
"clear": "پاک کردن",
|
||
"second": "ثانیه",
|
||
"minute": "دقیقه",
|
||
"hour": "ساعت",
|
||
"day": "روز",
|
||
"check": "چک کردن",
|
||
"indefinite": "نامحدود",
|
||
"unlimited": "نامحدود",
|
||
"none": "هیچ",
|
||
"qrCode": "QRکد",
|
||
"info": "اطلاعات بیشتر",
|
||
"edit": "ویرایش",
|
||
"delete": "حذف",
|
||
"reset": "بازنشانی",
|
||
"noData": "دادهای وجود ندارد.",
|
||
"copySuccess": "باموفقیت کپیشد",
|
||
"sure": "مطمئن",
|
||
"encryption": "رمزگذاری",
|
||
"transmission": "راهاتصال",
|
||
"host": "میزبان",
|
||
"path": "مسیر",
|
||
"camouflage": "مبهمسازی",
|
||
"status": "وضعیت",
|
||
"enabled": "فعال",
|
||
"disabled": "غیرفعال",
|
||
"depleted": "منقضی",
|
||
"depletingSoon": "درحالانقضا",
|
||
"offline": "آفلاین",
|
||
"online": "آنلاین",
|
||
"domainName": "آدرس دامنه",
|
||
"monitor": "آیپی اتصال",
|
||
"certificate": "گواهی دیجیتال",
|
||
"fail": "ناموفق",
|
||
"comment": "توضیحات",
|
||
"success": "موفق",
|
||
"lastOnline": "آخرین فعالیت",
|
||
"lastSubFetch": "آخرین دریافت اشتراک",
|
||
"install": "نصب",
|
||
"clients": "کاربران",
|
||
"usage": "استفاده",
|
||
"remained": "باقیمانده",
|
||
"security": "امنیت",
|
||
"somethingWentWrong": "مشکلی پیش آمد",
|
||
"subscription": {
|
||
"title": "اطلاعات سابسکریپشن",
|
||
"subId": "شناسه اشتراک",
|
||
"email": "ایمیل",
|
||
"status": "وضعیت",
|
||
"downloaded": "دانلود",
|
||
"uploaded": "آپلود",
|
||
"expiry": "تاریخ پایان",
|
||
"totalQuota": "حجم کلی",
|
||
"active": "فعال",
|
||
"inactive": "غیرفعال",
|
||
"unlimited": "نامحدود",
|
||
"noExpiry": "بدون انقضا",
|
||
"copyAllConfigs": "کپی همه کانفیگها",
|
||
"copyAllConfigsCopied": "همه کانفیگها کپی شدند",
|
||
"individualLinks": "لینکهای تکی"
|
||
},
|
||
"menu": {
|
||
"theme": "تم",
|
||
"dashboard": "نمای کلی",
|
||
"inbounds": "ورودیها",
|
||
"clients": "کلاینتها",
|
||
"nodes": "نودها",
|
||
"settings": "تنظیمات پنل",
|
||
"donate": "حمایت مالی",
|
||
"hosts": "میزبانها",
|
||
"docs": "مستندات",
|
||
"openMenu": "باز کردن منو",
|
||
"pinSidebar": "ثابت کردن نوار کناری",
|
||
"unpinSidebar": "برداشتن تثبیت نوار کناری"
|
||
},
|
||
"pages": {
|
||
"login": {
|
||
"hello": "سلام",
|
||
"title": "خوشآمدید",
|
||
"loginAgain": "مدت زمان استفاده بهاتمامرسیده، لطفا دوباره وارد شوید",
|
||
"toasts": {
|
||
"invalidFormData": "اطلاعات بهدرستی وارد نشدهاست",
|
||
"emptyUsername": "لطفا یک نامکاربری وارد کنید",
|
||
"emptyPassword": "لطفا یک رمزعبور وارد کنید",
|
||
"wrongUsernameOrPassword": "نام کاربری، رمز عبور یا کد دو مرحلهای نامعتبر است.",
|
||
"successLogin": "شما با موفقیت به حساب کاربری خود وارد شدید."
|
||
}
|
||
},
|
||
"index": {
|
||
"cpu": "پردازنده",
|
||
"swap": "سواپ",
|
||
"storage": "ذخیرهسازی",
|
||
"memory": "حافظه",
|
||
"updatePanel": "بهروزرسانی پنل",
|
||
"panelUpdateDesc": "این عملیات L-UI را به آخرین نسخه بهروزرسانی میکند و سرویس پنل را مجدداً راهاندازی میکند.",
|
||
"currentPanelVersion": "نسخه فعلی پنل",
|
||
"latestPanelVersion": "آخرین نسخه پنل",
|
||
"panelUpToDate": "پنل بهروز است",
|
||
"devChannel": "کانال توسعه (Dev)",
|
||
"devChannelWarning": "بیلدهای توسعه هر کامیت روی main را دنبال میکنند و نسخهٔ پایدار نیستند — بازگشت خودکار به نسخهٔ قبلی وجود ندارد.",
|
||
"currentCommit": "کامیت فعلی",
|
||
"latestCommit": "آخرین کامیت",
|
||
"updateChannelChanged": "کانال بهروزرسانی تغییر کرد",
|
||
"connectionCount": "تعداد کانکشن ها",
|
||
"ipAddresses": "آدرسهای IP",
|
||
"toggleIpVisibility": "تغییر وضعیت نمایش IP",
|
||
"overallSpeed": "سرعت کلی",
|
||
"upload": "آپلود",
|
||
"download": "دانلود",
|
||
"sent": "ارسال شده",
|
||
"received": "دریافت شده",
|
||
"panelUpdateDialog": "آیا مطمئن هستید که میخواهید پنل را بهروزرسانی کنید؟",
|
||
"panelUpdateDialogDesc": "این L-UI را به نسخه #version# بهروزرسانی کرده و سرویس پنل را مجدداً راهاندازی میکند.",
|
||
"panelUpdateStartedPopover": "بهروزرسانی پنل آغاز شد",
|
||
"panelUpdateFailedTitle": "بهروزرسانی پنل ناموفق بود",
|
||
"panelUpdateFailedDesc": "بهروزرسانی با موفقیت به پایان نرسید. گزارشهای سرور را بررسی کنید یا دستور «x-ui update» را از خط فرمان اجرا کنید.",
|
||
"panelUpdateUnknownTitle": "تأیید نشد که بهروزرسانی به پایان رسیده باشد",
|
||
"panelUpdateUnknownDesc": "پنل بهموقع نتیجهای گزارش نکرد. صفحه را بارگذاری مجدد کنید تا نسخه فعلی را بررسی کنید یا گزارشهای سرور را بررسی کنید.",
|
||
"dontRefresh": "در حال نصب، لطفا صفحه را رفرش نکنید",
|
||
"config": "پیکربندی",
|
||
"backupTitle": "پشتیبانگیری و بازیابی",
|
||
"exportDatabase": "پشتیبانگیری",
|
||
"exportDatabaseDesc": "برای دانلود یک فایل .db حاوی پشتیبان از پایگاه داده فعلی خود به دستگاهتان کلیک کنید. همین فایل در پنلی که روی PostgreSQL اجرا میشود نیز قابل بازیابی است.",
|
||
"importDatabase": "بازیابی",
|
||
"importDatabaseDesc": "برای انتخاب و آپلود یک پشتیبان .db یا فایل مهاجرت .dump از دستگاهتان جهت بازیابی پایگاه داده کلیک کنید.",
|
||
"importDatabaseSuccess": "پایگاه داده با موفقیت وارد شد",
|
||
"importDatabaseError": "خطا در وارد کردن پایگاه داده",
|
||
"readDatabaseError": "خطا در خواندن پایگاه داده",
|
||
"getDatabaseError": "خطا در دریافت پایگاه داده",
|
||
"getConfigError": "خطا در دریافت فایل پیکربندی",
|
||
"backupPostgresNote": "این پنل روی PostgreSQL اجرا میشود. «پشتیبانگیری» یک آرشیو pg_dump (.dump) دانلود میکند و «بازیابی» آن را با pg_restore بازمیگرداند. «بازیابی» همچنین پایگاهدادهٔ SQLite (.db) یا فایل مهاجرت SQLite را میپذیرد و دادههای آن را به PostgreSQL وارد میکند. سرور باید ابزارهای کلاینت PostgreSQL (pg_dump و pg_restore) را نصب داشته باشد.",
|
||
"exportDatabasePgDesc": "برای دانلود یک دامپ PostgreSQL (.dump) از پایگاه داده فعلی روی دستگاهتان کلیک کنید.",
|
||
"importDatabasePgDesc": "برای انتخاب و بارگذاری یک پشتیبان PostgreSQL (.dump)، پایگاهدادهٔ SQLite (.db) یا فایل مهاجرت SQLite جهت بازیابی پایگاه داده کلیک کنید. این کار همه دادههای فعلی را جایگزین میکند.",
|
||
"migrationDownload": "دانلود فایل مهاجرت",
|
||
"migrationDownloadPgDesc": "برای دانلود یک پایگاهدادهٔ SQLite با پسوند .db که از دادههای PostgreSQL شما ساخته میشود کلیک کنید؛ آمادهٔ اجرای این پنل روی SQLite.",
|
||
"free": "آزاد",
|
||
"openSockets": "اتصال باز",
|
||
"throughputSub": "کل اینترفیس",
|
||
"healthWarm": "{list} — رو به گرم شدن",
|
||
"healthCritical": "{list} — بحرانی",
|
||
"panel": "پنل",
|
||
"threads": "نخها",
|
||
"uptime": "مدت کارکرد",
|
||
"importKeepHostSettings": "حفظ تنظیمات این دستگاه",
|
||
"importKeepHostSettingsDesc": "آدرسها و پورتهای شنود، مسیر پایه، گواهیها و هویت نودِ همین پنل را نگه میدارد و آنها را از فایل بارگذاریشده نمیگیرد."
|
||
},
|
||
"inbounds": {
|
||
"totalDownUp": "دریافت/ارسال کل",
|
||
"totalUsage": "مصرف کل",
|
||
"inboundCount": "کل ورودیها",
|
||
"operate": "منو",
|
||
"enable": "فعال",
|
||
"remark": "نام",
|
||
"node": "نود",
|
||
"deployTo": "استقرار روی",
|
||
"localPanel": "پنل لوکال",
|
||
"fallbacks": {
|
||
"title": "Fallbackها",
|
||
"empty": "هنوز فالبکی اضافه نشده",
|
||
"add": "افزودن فالبک",
|
||
"pickInbound": "یک اینباند انتخاب کنید",
|
||
"matchAny": "همه",
|
||
"destPlaceholder": "خودکار (listen:port فرزند)",
|
||
"needsTls": "فالبکها پس از انتخاب TLS یا Reality در برگهی امنیت در دسترس میشوند (فقط VLESS/Trojan روی RAW)."
|
||
},
|
||
"protocol": "پروتکل",
|
||
"port": "پورت",
|
||
"portMap": "نگاشت پورت",
|
||
"traffic": "ترافیک",
|
||
"speed": "سرعت",
|
||
"expireDate": "مدت زمان",
|
||
"createdAt": "ایجاد",
|
||
"updatedAt": "بهروزرسانی",
|
||
"resetTraffic": "بازنشانی ترافیک",
|
||
"addInbound": "افزودن ورودی",
|
||
"generalActions": "عملیات کلی",
|
||
"modifyInbound": "ویرایش ورودی",
|
||
"deleteConfirmTitle": "اینباند «{remark}» حذف شود؟",
|
||
"deleteConfirmContent": "این اینباند و تمام کلاینتهای آن حذف میشود. این عمل غیرقابل بازگشت است.",
|
||
"resetConfirmTitle": "ترافیک اینباند «{remark}» صفر شود؟",
|
||
"resetConfirmContent": "شمارندههای ارسال/دریافت این اینباند به صفر برمیگردد.",
|
||
"selectedCount": "{count} انتخابشده",
|
||
"selectAll": "انتخاب همه",
|
||
"bulkDeleteConfirmTitle": "حذف {count} اینباند؟",
|
||
"bulkDeleteConfirmContent": "اینباندهای انتخابشده و تمام کلاینتهای آنها حذف میشوند. این عمل غیرقابل بازگشت است.",
|
||
"cloneConfirmTitle": "اینباند «{remark}» کپی شود؟",
|
||
"cloneConfirmContent": "یک نسخه با پورت جدید و لیست کلاینت خالی ساخته میشود.",
|
||
"delAllClients": "حذف همه کلاینتها",
|
||
"delAllClientsConfirmTitle": "حذف هر {count} کلاینت اینباند «{remark}»؟",
|
||
"delAllClientsConfirmContent": "تمام کلاینتهای این اینباند به همراه رکوردهای ترافیکشان حذف میشوند. خود اینباند باقی میماند. این عمل غیرقابل بازگشت است.",
|
||
"attachClients": "الصاق کاربران به…",
|
||
"attachClientsTitle": "الصاق کاربران از «{remark}»",
|
||
"attachClientsDesc": "همان {count} کاربر (با UUID/رمز یکسان و ترافیک مشترک) را به ورودی(های) انتخابی الصاق میکند. در این ورودی هم باقی میمانند.",
|
||
"attachClientsTargets": "ورودیهای مقصد",
|
||
"attachClientsNoTargets": "هیچ ورودی سازگار دیگری برای الصاق در دسترس نیست.",
|
||
"attachClientsResult": "الصاق شد {attached}، نادیده {skipped}.",
|
||
"attachClientsResultMixed": "الصاق شد {attached}، نادیده {skipped}، خطا {errors}.",
|
||
"attachClientsSelectLabel": "کاربران برای الصاق",
|
||
"attachClientsSearchPlaceholder": "جستجوی ایمیل یا توضیح",
|
||
"attachClientsStatusDisabled": "غیرفعال",
|
||
"attachClientsSelectedCount": "{selected} از {total} انتخابشده",
|
||
"attachExistingClients": "الصاق کاربران موجود…",
|
||
"attachExistingTitle": "الصاق کاربران موجود به «{remark}»",
|
||
"attachExistingDesc": "کاربران موجود ({count} کاربر در دسترس) را به این ورودی الصاق میکند — با همان UUID/رمز و ترافیک مشترک. کاربرانی که از قبل روی این ورودی هستند نادیده گرفته میشوند.",
|
||
"attachExistingNoClients": "هنوز هیچ کاربری وجود ندارد. ابتدا کاربر بسازید، سپس اینجا الصاق کنید.",
|
||
"attachExistingStatusAttached": "از قبل الصاقشده",
|
||
"detachClients": "جداسازی کاربران",
|
||
"detachClientsTitle": "جداسازی کاربران از «{remark}»",
|
||
"detachClientsDesc": "کاربر(های) انتخابی را تنها از این ورودی حذف میکند. خود رکورد کاربر حفظ میشود (برای حذف کامل از Delete استفاده کنید). مبدا در مجموع {count} کاربر دارد.",
|
||
"detachClientsResult": "جدا شد {detached}، نادیده {skipped}.",
|
||
"detachClientsResultMixed": "جدا شد {detached}، نادیده {skipped}، خطا {errors}.",
|
||
"detachClientsSelectLabel": "کاربران برای جداسازی",
|
||
"exportLinksTitle": "خروجی لینکهای اینباند",
|
||
"exportSubsTitle": "خروجی لینکهای ساب",
|
||
"exportAllLinksTitle": "خروجی لینکهای همه اینباندها",
|
||
"exportAllSubsTitle": "خروجی لینکهای ساب همه اینباندها",
|
||
"exportAllLinksFileName": "همه-ورودیها",
|
||
"exportAllSubsFileName": "همه-ورودیها-Subs",
|
||
"inboundJsonTitle": "JSON ورودی",
|
||
"resetTrafficContent": "آیا مطمئن به ریست ترافیک هستید؟",
|
||
"copyLink": "کپی لینک",
|
||
"address": "آدرس",
|
||
"network": "شبکه",
|
||
"destinationPort": "پورت مقصد",
|
||
"targetAddress": "آدرس مقصد",
|
||
"monitorDesc": "بهطور پیشفرض خالیبگذارید",
|
||
"meansNoLimit": "= نامحدود. (واحد: GB)",
|
||
"totalFlow": "ترافیک کل",
|
||
"leaveBlankToNeverExpire": "برای منقضینشدن خالیبگذارید",
|
||
"certificatePath": "مسیر فایل",
|
||
"certificateContent": "محتوای فایل",
|
||
"publicKey": "کلید عمومی",
|
||
"privatekey": "کلید خصوصی",
|
||
"client": "کاربر",
|
||
"export": "استخراج لینکها",
|
||
"clone": "شبیهسازی",
|
||
"resetAllTraffic": "ریست ترافیک کل ورودیها",
|
||
"resetAllTrafficTitle": "ریست ترافیک کل ورودیها",
|
||
"email": "ایمیل",
|
||
"IPLimit": "محدودیت آیپی",
|
||
"IPLimitlog": "گزارشها",
|
||
"IPLimitlogclear": "پاک کردن گزارشها",
|
||
"setDefaultCert": "استفاده از گواهی پنل",
|
||
"setDefaultCertEmpty": "هیچ گواهیای برای پنل پیکربندی نشده. ابتدا از تنظیمات یکی تعیین کنید.",
|
||
"streamTab": "انتقال",
|
||
"securityTab": "امنیت",
|
||
"sniffingTab": "شنود",
|
||
"forwardingTab": "Forwarding",
|
||
"forwarding": {
|
||
"mode": "Forwarding",
|
||
"direct": "Direct",
|
||
"forward": "Forward (entry → exit)",
|
||
"landing": "Landing",
|
||
"managed": "Managed landing",
|
||
"manual": "Manual endpoint",
|
||
"target": "Landing inbound",
|
||
"targetPlaceholder": "Pick a SOCKS (mixed) inbound",
|
||
"targetDisabled": "disabled",
|
||
"address": "Landing address",
|
||
"port": "Exit port",
|
||
"protocol": "Entry → exit protocol",
|
||
"username": "SOCKS5 username",
|
||
"password": "Landing password",
|
||
"importLink": "Import from link",
|
||
"importPlaceholder": "socks5://user:pass@host:port",
|
||
"importApply": "Import",
|
||
"importFailed": "Could not parse that link",
|
||
"help": "Applies when this inbound is deployed to an agent node: on every config pull the panel compiles this forwarding into a dedicated outbound plus a routing rule for that agent. A managed landing's address and credentials are resolved from the chosen inbound at build time."
|
||
},
|
||
"sniffingMetadataOnly": "فقط متادیتا",
|
||
"sniffingRouteOnly": "فقط مسیریابی",
|
||
"sniffingIpsExcluded": "IPهای مستثنا",
|
||
"sniffingDomainsExcluded": "دامنههای مستثنا",
|
||
"decryption": "رمزگشایی",
|
||
"encryption": "رمزنگاری",
|
||
"vlessAuthX25519": "X25519 (native)",
|
||
"vlessAuthMlkem768": "ML-KEM-768 (native)",
|
||
"vlessAuthX25519Xorpub": "X25519 (xorpub)",
|
||
"vlessAuthX25519Random": "X25519 (random)",
|
||
"vlessAuthMlkem768Xorpub": "ML-KEM-768 (xorpub)",
|
||
"vlessAuthMlkem768Random": "ML-KEM-768 (random)",
|
||
"vlessAuthCustom": "سفارشی",
|
||
"vlessAuthSelected": "انتخابشده: {auth}",
|
||
"vlessAuthGenerate": "تولید کلیدها",
|
||
"vlessAuthGenerateButton": "تولید",
|
||
"advanced": {
|
||
"title": "بخشهای JSON اینباند",
|
||
"subtitle": "JSON کامل اینباند و ویرایشگرهای جداگانه برای settings، sniffing و streamSettings.",
|
||
"all": "همه",
|
||
"allHelp": "شیء کامل اینباند با همه فیلدها در یک ویرایشگر.",
|
||
"settings": "تنظیمات",
|
||
"settingsHelp": "ساختار بلوک settings در Xray:",
|
||
"sniffing": "Sniffing",
|
||
"sniffingHelp": "ساختار بلوک sniffing در Xray:",
|
||
"stream": "Stream",
|
||
"streamHelp": "ساختار بلوک stream در Xray:"
|
||
},
|
||
"subSortIndex": "ترتیب اشتراک",
|
||
"inboundInfo": "اطلاعات ورودی",
|
||
"exportInbound": "استخراج ورودی",
|
||
"import": "افزودن",
|
||
"importInbound": "افزودن یک ورودی",
|
||
"periodicTrafficResetTitle": "بازنشانی ترافیک",
|
||
"periodicTrafficResetDay": "روز بازنشانی ماهانه",
|
||
"periodicTrafficReset": {
|
||
"never": "هرگز",
|
||
"daily": "روزانه",
|
||
"weekly": "هفتگی",
|
||
"monthly": "ماهانه",
|
||
"hourly": "هر ساعت"
|
||
},
|
||
"toasts": {
|
||
"obtain": "فراهمسازی",
|
||
"updateSuccess": "بروزرسانی با موفقیت انجام شد",
|
||
"logCleanSuccess": "لاگ پاکسازی شد",
|
||
"inboundUpdateSuccess": "ورودی با موفقیت بهروزرسانی شد",
|
||
"inboundCreateSuccess": "ورودی با موفقیت ایجاد شد",
|
||
"bulkDeleted": "{count} اینباند حذف شد",
|
||
"bulkDeletedMixed": "{ok} حذف، {failed} ناموفق",
|
||
"clonedMany": "{count} اینباند کلون شد",
|
||
"clonedMixed": "{ok} کلون، {failed} ناموفق",
|
||
"inboundDeleteSuccess": "ورودی با موفقیت حذف شد",
|
||
"inboundClientAddSuccess": "کلاینت(های) ورودی اضافه شدند",
|
||
"inboundClientDeleteSuccess": "کلاینت ورودی حذف شد",
|
||
"inboundClientUpdateSuccess": "کلاینت ورودی بهروزرسانی شد",
|
||
"savedNodeOfflineWillSync": "بهصورت محلی ذخیره شد. یک نود پشتیبان آفلاین یا غیرفعال است — تغییر پس از اتصال مجدد همگامسازی میشود.",
|
||
"resetAllClientTrafficSuccess": "تمام ترافیک کلاینت بازنشانی شد",
|
||
"resetAllTrafficSuccess": "تمام ترافیکها بازنشانی شدند",
|
||
"resetInboundClientTrafficSuccess": "ترافیک بازنشانی شد",
|
||
"resetInboundTrafficSuccess": "ترافیک ورودی بازنشانی شد",
|
||
"trafficGetError": "خطا در دریافت ترافیکها",
|
||
"getNewX25519CertError": "خطا در دریافت گواهی X25519.",
|
||
"getNewmldsa65Error": "خطا در دریافت گواهی mldsa65.",
|
||
"getNewVlessEncError": "خطا در دریافت گواهی VlessEnc.",
|
||
"scanRealityTargetError": "اسکن هدف REALITY ناموفق بود.",
|
||
"scanRealityTargetFeasible": "هدف مناسب است — هدف و SNI پر شد.",
|
||
"scanRealityTargetNotFeasible": "هدف در دسترس است اما برای REALITY مناسب نیست.",
|
||
"scanRealityTargetPrivate": "هدف کار میکند اما در شبکهٔ خصوصی/محلی قرار دارد.",
|
||
"invalidClientField": "کلاینت {client}: فیلد {field} — {reason}",
|
||
"invalidField": "{field} — {reason}",
|
||
"moreIssues": "{message} (+{count} مورد دیگر)"
|
||
},
|
||
"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": "روش رمزنگاری",
|
||
"fakeTlsDomain": "دامنه FakeTLS (SNI)",
|
||
"mtprotoSecret": "کلید مخفی",
|
||
"mtgDomainFrontingIp": "آیپی Domain fronting",
|
||
"mtgDomainFrontingPort": "پورت Domain fronting",
|
||
"mtgDomainFrontingProxyProtocol": "پروتکل PROXY برای Domain fronting",
|
||
"mtgDomainFrontingHint": "جایی که mtg ترافیک غیرتلگرامی را به آن ارسال میکند — مثلاً سایت جعلی NGINX شما. برای استفاده از دامنهٔ FakeTLS از طریق DNS، فیلد IP را خالی بگذارید؛ پورت پیشفرض 443 است.",
|
||
"mtgProxyProtocolListener": "پذیرش پروتکل PROXY (شنونده)",
|
||
"mtgPreferIp": "ترجیح IP",
|
||
"mtgDebug": "گزارش اشکالزدایی",
|
||
"mtgRouteThroughXray": "مسیریابی از طریق Xray",
|
||
"mtgRouteThroughXrayHint": "ترافیک تلگرام این پراکسی را از طریق Xray بفرستید تا از قوانین مسیریابی شما پیروی کند. سرویس جانبی mtg از طریق یک پل SOCKS محلی که با تگ همین ورودی نشانهگذاری شده خارج میشود؛ برای قوانین پیشرفته در تب مسیریابی به همان تگ ارجاع دهید.",
|
||
"mtgRouteOutbound": "خروجی",
|
||
"mtgRouteOutboundHint": "اختیاری. ترافیک تلگرام را وادار کنید از این خروجی (یا متعادلکننده) خارج شود. برای اینکه قوانین مسیریابی تصمیم بگیرند، خالی بگذارید.",
|
||
"mtgRouteOutboundPlaceholder": "استفاده از قوانین مسیریابی",
|
||
"mtprotoFakeTlsDomainHint": "دامنه پیشفرض FakeTLS برای ساخت سکرت کلاینت جدید. هر کلاینت میتواند دامنه مخصوص خود را داشته باشد.",
|
||
"mtgThrottleMaxConnections": "حداکثر اتصالات",
|
||
"mtgThrottleMaxConnectionsHint": "محدود کردن اتصالات همزمان همه کاربران با تقسیم منصفانه. مقدار ۰ غیرفعال است.",
|
||
"mtgAdTagInvalid": "برچسب تبلیغاتی باید دقیقاً ۳۲ کاراکتر هگزادسیمال باشد.",
|
||
"mtgPublicIpv4": "IPv4 عمومی",
|
||
"mtgPublicIpv6": "IPv6 عمومی",
|
||
"mtgPublicIpHint": "نشانی عمومی و دردسترس این سرور که پروکسی میانی برچسب تبلیغاتی از آن استفاده میکند. برای تشخیص خودکار توسط mtg، خالی بگذارید.",
|
||
"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": "کلید نشست",
|
||
"sessionIDTable": "جدول شناسه نشست",
|
||
"sessionIDTableHint": "مجموعه نویسهها برای تولید شناسه نشست: یک نام از پیشتعریفشده (ALPHABET، Base62، hex، number، …) یا یک رشته ASCII. برای مقدار پیشفرض xray-core خالی بگذارید.",
|
||
"sessionIDLength": "طول شناسه نشست",
|
||
"sessionIDLengthHint": "طول یا بازه (مثلاً 8-16) شناسه نشست تولیدشده. فقط وقتی جدول شناسه نشست تنظیم شده باشد استفاده میشود؛ کمینه باید بزرگتر از 0 باشد.",
|
||
"sequencePlacement": "محل Sequence",
|
||
"sequenceKey": "Sequence Key",
|
||
"uplinkDataPlacement": "محل داده Uplink",
|
||
"uplinkDataKey": "کلید داده Uplink",
|
||
"noSseHeader": "بدون هدر SSE",
|
||
"ttiMs": "TTI (ms)",
|
||
"uplinkMbps": "آپلود (MB/s)",
|
||
"downlinkMbps": "دانلود (MB/s)",
|
||
"cwndMultiplier": "ضریب CWND",
|
||
"maxSendingWindow": "حداکثر پنجره ارسال",
|
||
"externalProxy": "پراکسی خارجی",
|
||
"forceTls": "اجبار TLS",
|
||
"fingerprint": "اثرانگشت",
|
||
"defaultOption": "پیشفرض",
|
||
"routeMark": "علامت مسیر",
|
||
"tcpKeepAliveInterval": "بازه TCP Keep Alive",
|
||
"tcpKeepAliveIdle": "TCP Keep Alive Idle",
|
||
"tcpMaxSeg": "TCP Max Seg",
|
||
"tcpUserTimeout": "TCP User Timeout",
|
||
"tcpWindowClamp": "TCP Window Clamp",
|
||
"tcpWindowClampHint": "برای استفاده از پیشفرض سیستمعامل، مقدار را 0 بگذارید. مقادیر غیرصفر پنجرهٔ دریافت TCP اعلامشده را محدود میکنند؛ مقادیری مانند 600 (از مثال مستندات Xray) میتوانند نرخ عبور را روی لینکهای با تأخیر بالا بهشدت کاهش دهند.",
|
||
"tcpFastOpen": "TCP Fast Open",
|
||
"multipathTcp": "Multipath TCP",
|
||
"penetrate": "Penetrate",
|
||
"v6Only": "فقط IPv6",
|
||
"tcpCongestion": "تراکم TCP",
|
||
"dialerProxy": "Dialer Proxy",
|
||
"trustedXForwardedFor": "X-Forwarded-For مورد اعتماد",
|
||
"trustedXForwardedForHint": "این هدر درخواست برای گرفتن IP واقعی کاربر مورد اعتماد قرار میگیرد (مثلاً CF-Connecting-IP پشت CDN کلودفلر). فقط روی ترنسپورتهای WebSocket، HTTPUpgrade، XHTTP و gRPC اعمال میشود. برای نادیدهگرفتن هدرها خالی بگذارید.",
|
||
"proxyProtocolHint": "پذیرش هدر PROXY protocol برای گرفتن IP واقعی کاربر از یک تونل/رله L4 بالادست (HAProxy، gost، nginx-stream، Xray dokodemo-door) یا Cloudflare Spectrum. بالادست باید PROXY protocol را ارسال کند. روی TCP، WebSocket، HTTPUpgrade و gRPC کار میکند؛ روی mKCP خیر.",
|
||
"realClientIp": "IP واقعی کاربر",
|
||
"realClientIpHint": "وقتی ترافیک از طریق CDN یا رله به این ورودی میرسد، بهجای ثبت آدرس واسط، IP واقعی کاربر گرفته میشود. یک پریست انتخاب کنید تا فیلدهای sockopt مربوطه پایین تکمیل شوند. این فیلدها هرگز در اشتراکها به کلاینتها ارسال نمیشوند.",
|
||
"realClientIpPresetOff": "خاموش / مستقیم",
|
||
"realClientIpPresetCloudflare": "Cloudflare CDN",
|
||
"realClientIpPresetProxyProtocol": "رله L4 / Spectrum (PROXY)",
|
||
"realClientIpTrustedHeaderTransportWarn": "Trusted X-Forwarded-For فقط روی WebSocket، HTTPUpgrade و XHTTP اعمال میشود. روی ترنسپورت فعلی این هدر نادیده گرفته میشود.",
|
||
"realClientIpProxyProtocolTransportWarn": "PROXY protocol روی این ترنسپورت (mKCP) پشتیبانی نمیشود. از TCP/RAW، WebSocket، HTTPUpgrade، gRPC یا XHTTP استفاده کنید.",
|
||
"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",
|
||
"echSockopt": "Sockopt مربوط به ECH",
|
||
"echSockoptTip": "تنظیمات سوکت برای اتصالی که Xray برای دریافت لیست پیکربندی ECH استفاده میکند (مثلاً عبور این درخواست از یک dialerProxy). برای استفاده از پیشفرض غیرفعال بگذارید.",
|
||
"curvePreferences": "ترجیح منحنیها",
|
||
"curvePreferencesTip": "منحنیهای تبادل کلید TLS که سرور ارائه میدهد را بهترتیب اولویت محدود میکند (مثلاً X25519MLKEM768، X25519). خالی بگذارید تا پیشفرض Xray استفاده شود.",
|
||
"masterKeyLog": "لاگ کلید اصلی",
|
||
"masterKeyLogTip": "مسیر نوشتن کلیدهای اصلی TLS (قالب SSLKEYLOGFILE) برای دیباگ با Wireshark. در محیط عملیاتی خالی بگذارید — هرکس به این فایل دسترسی داشته باشد میتواند ترافیک را رمزگشایی کند.",
|
||
"pinFromCert": "پرکردن از گواهی همین ورودی",
|
||
"pinFromRemote": "گرفتن هش با پینگکردن SNI (xray tls ping)",
|
||
"pinFromRemoteNoSni": "ابتدا SNI (serverName) را تنظیم کنید تا گواهی راهدور پینگ شود.",
|
||
"pinFromRemoteFailed": "گرفتن هشِ گواهی راهدور ممکن نشد.",
|
||
"verifyPeerCertByName": "تأیید گواهی همتا با نام",
|
||
"verifyPeerCertByNameTip": "به کلاینتها میگوید گواهی سرور را بهجای SNI با این نام تأیید کنند. نامها با کاما جدا شوند. فقط در پنل — در لینکهای اشتراکگذاری گنجانده میشود (vcn). جایگزین مدرن allowInsecure که xray بعد از ۲۰۲۶-۰۶-۰۱ حذفش کرد.",
|
||
"pinnedPeerCertSha256": "SHA-256 پینشدهٔ گواهی همتا",
|
||
"pinnedPeerCertSha256Tip": "هشهای SHA-256 گواهی همتا بهصورت رشتهٔ هگزادسیمال (مثل e8e2d3…)، با کاما جدا شوند. فقط در پنل — در پیکربندی xray سرور نوشته نمیشود، اما در لینکهای اشتراکگذاری گنجانده میشود تا کلاینتها بتوانند گواهی را پین کنند.",
|
||
"pinnedPeerCertSha256Placeholder": "هش(های) هگزادسیمال، با کاما جدا شوند",
|
||
"getNewEchCert": "دریافت گواهی ECH جدید",
|
||
"show": "نمایش",
|
||
"xver": "Xver",
|
||
"target": "هدف",
|
||
"maxTimeDiff": "حداکثر اختلاف زمان (ms)",
|
||
"minClientVer": "حداقل نسخه کلاینت",
|
||
"maxClientVer": "حداکثر نسخه کلاینت",
|
||
"minClientVerHint": "خالی بودن به معنای بدون محدودیت نیست: در این حالت Xray-core حداقل داخلیِ نسخهٔ هستهای را که اجرا میکنید (در نسخههای فعلی 26.3.27) اعمال میکند و کلاینتهایی را که نسخهٔ قدیمیتری اعلام میکنند رد میکند — از جمله هستههای شخص ثالث مانند Mihomo و sing-box. مقدار 1.0.0 آنها را میپذیرد، به بهای پذیرش اثر انگشتهای TLS قدیمی.",
|
||
"maxClientVerHint": "خالی یعنی بدون سقف. در صورت تنظیم، نباید از حداقلِ مؤثر — حداقل نسخه کلاینت، و در صورت خالی بودن آن فیلد، حداقل داخلی Xray-core — کمتر باشد، وگرنه همهٔ کلاینتها رد میشوند.",
|
||
"clientVerInvalid": "نسخهٔ کلاینت باید حداکثر سه عدد جداشده با نقطه باشد، هر یک 0-255 (مثلاً 26.3.27)",
|
||
"maxClientVerBelowMin": "حداکثر نسخهٔ کلاینت نباید از حداقل نسخهٔ کلاینت کمتر باشد",
|
||
"shortIds": "Short IDها",
|
||
"realityTargetHint": "الزامی است. باید شامل پورت باشد (مثلاً example.com:443). بدون پورت، Xray-core اجرا نمیشود.",
|
||
"realityTargetRequired": "هدف REALITY الزامی است",
|
||
"realityTargetNeedsPort": "هدف REALITY باید شامل پورت باشد (مثلاً example.com:443)",
|
||
"realityTargetInvalidPort": "پورت هدف REALITY نامعتبر است",
|
||
"scan": "اسکن",
|
||
"findTargets": "یافتن هدفها",
|
||
"scanModalTitle": "اسکنر هدف REALITY",
|
||
"scanModalDesc": "یک دامنه را اعتبارسنجی کنید، یا یک محدودهی IP/CIDR را اسکن کنید تا هدفهای جدید REALITY از روی گواهیهایشان کشف شوند. برای بررسی کاندیدهای پیشفرض، کادر را خالی بگذارید.",
|
||
"scanDiscoverPlaceholder": "آیپی، CIDR یا دامنه — برای کاندیدهای پیشفرض خالی بگذارید",
|
||
"scanStatus": "وضعیت",
|
||
"scanFeasible": "مناسب",
|
||
"scanNotFeasible": "نامناسب",
|
||
"scanCurve": "تبادل کلید",
|
||
"scanCert": "گواهی",
|
||
"scanCertInvalid": "نامعتبر",
|
||
"scanCertExpiry": "انقضای گواهی",
|
||
"scanSniUsed": "SNI استفادهشده",
|
||
"scanPrivateNote": "بررسی از طریق شبکهٔ خصوصی/محلی انجام شد — این نشانی از اینترنت قابل دسترسی نیست.",
|
||
"scanPrivateConfirmTitle": "هدف در شبکهٔ محلی",
|
||
"scanPrivateConfirmContent": "«{target}» به یک نشانی خصوصی یا loopback اشاره میکند. بررسی تنها برای همین کاوش، محافظت SSRF پنل را نادیده میگیرد. ادامه میدهید؟",
|
||
"scanLatency": "تأخیر",
|
||
"scanUse": "استفاده",
|
||
"scanRescan": "اسکن مجدد",
|
||
"spiderX": "SpiderX",
|
||
"spiderXHint": "دانهی هر کاربر — پنل از روی آن مسیر spx یکتا برای هر کاربر میسازد؛ برای چرخش مسیر همه، دوباره تولید کنید",
|
||
"getNewCert": "دریافت گواهی جدید",
|
||
"mldsa65Seed": "mldsa65 Seed",
|
||
"mldsa65Verify": "mldsa65 Verify",
|
||
"getNewSeed": "دریافت Seed جدید",
|
||
"limitFallback": "محدودیت فالبک",
|
||
"limitFallbackUpload": "محدودیت فالبک آپلود",
|
||
"limitFallbackDownload": "محدودیت فالبک دانلود",
|
||
"afterBytes": "پس از (بایت)",
|
||
"afterBytesTip": "اجازه بده فالبک برای این تعداد بایت با سرعت کامل اجرا شود، سپس محدودسازی شروع شود. مقدار ۰ یعنی از همان بایت اول محدود شود.",
|
||
"bytesPerSec": "بایت بر ثانیه",
|
||
"bytesPerSecTip": "سقف سرعت (بایت بر ثانیه) که بعد از آستانه روی ترافیک فالبک اعمال میشود تا پروبها نتوانند سرورت را بهعنوان پهنایباند رایگان به مقصد استفاده کنند. مقدار ۰ یعنی بدون محدودیت (این جهت غیرفعال میشود).",
|
||
"burstBytesPerSec": "بایت انفجاری بر ثانیه",
|
||
"burstBytesPerSecTip": "سهمیه برای انفجارهای کوتاه بالاتر از نرخ ثابت (اندازهٔ token-bucket). اگر کمتر از «بایت بر ثانیه» باشد، به همان مقدار افزایش مییابد.",
|
||
"listenHelp": "میتوانید بهجای پورت TCP یک مسیر سوکت یونیکس وارد کنید (مثلاً /run/xray/in.sock)، یا یک نام سوکت انتزاعی با پیشوند @ (مثلاً @xray/in.sock)، تا روی سوکت گوش داده شود — در این حالت پورت را روی ۰ بگذارید.",
|
||
"shareAddrStrategy": "راهبرد آدرس اشتراکگذاری",
|
||
"shareAddrStrategyHelp": "مشخص میکند کدام آدرس در لینکهای اشتراکگذاری خروجی، کدهای QR و خروجی اشتراک نوشته شود.",
|
||
"shareAddr": "آدرس اشتراکگذاری سفارشی",
|
||
"shareAddrHelp": "فقط زمانی استفاده میشود که راهبرد آدرس اشتراکگذاری روی سفارشی باشد. میزبان یا IP را بدون طرح و پورت وارد کنید.",
|
||
"subSortIndex": "ترتیب در اشتراک",
|
||
"subSortIndexHelp": "جایگاه لینکهای این ورودی در خروجی اشتراک (صفحه اشتراک و برنامههای کلاینت). مقدار کمتر اول میآید و مقدارهای برابر ترتیب ایجاد را حفظ میکنند. روی فهرست ورودیهای پنل تأثیری ندارد.",
|
||
"disableFlow": "غیرفعالکردن جریان XTLS",
|
||
"disableFlowHelp": "این inbound را از تزریق خودکار xtls-rprx-vision کنار بگذارید، حتی وقتی ترنسپورت آن از flow پشتیبانی میکند (مثلاً یک inbound از نوع XHTTP تونلشده با رمزنگاری VLESS). کلاینتها Vision را روی سایر inboundهای سازگار در همان اشتراک حفظ میکنند. فقط برای VLESS.",
|
||
"shareAddrStrategyOptions": {
|
||
"node": "آدرس نود",
|
||
"listen": "آدرس شنود ورودی",
|
||
"custom": "سفارشی"
|
||
}
|
||
},
|
||
"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}"
|
||
},
|
||
"sniffingDestOverride": "بازنویسی مقصد"
|
||
},
|
||
"clients": {
|
||
"tabBasics": "پایه",
|
||
"tabCredentials": "اطلاعات اتصال",
|
||
"tabLinks": "لینکها",
|
||
"wireguardConfig": "پیکربندی WireGuard",
|
||
"config": "پیکربندی",
|
||
"linksHint": "لینکهای اشتراک شخصثالث و آدرس سابسکریپشنهای خارجی را اضافه کنید تا در سابسکریپشن این کاربر قرار گیرند.",
|
||
"addExternalLink": "افزودن لینک خارجی",
|
||
"addExternalSubscription": "افزودن سابسکریپشن خارجی",
|
||
"noExternalLinks": "هنوز لینک خارجیای اضافه نشده.",
|
||
"noExternalSubscriptions": "هنوز سابسکریپشن خارجیای اضافه نشده.",
|
||
"namePrefix": "پیشوند نام",
|
||
"lastFetchAt": "آخرین دریافت",
|
||
"lastFetchError": "خطای دریافت",
|
||
"neverFetched": "هنوز دریافت نشده",
|
||
"submitEdit": "ذخیره تغییرات",
|
||
"clientCount": "تعداد کلاینتها",
|
||
"bulk": "افزودن گروهی",
|
||
"selectAll": "انتخاب همه",
|
||
"clearAll": "پاک کردن همه",
|
||
"method": "روش",
|
||
"first": "اول",
|
||
"last": "آخر",
|
||
"ipLog": "گزارش IP",
|
||
"prefix": "پیشوند",
|
||
"postfix": "پسوند",
|
||
"delayedStart": "شروع پس از اولین استفاده",
|
||
"expireDays": "مدت اعتبار (روز)",
|
||
"renew": "تمدید خودکار",
|
||
"renewDesc": "تمدید خودکار پس از انقضا. (۰ = غیرفعال) (واحد: روز)",
|
||
"renewDays": "تمدید خودکار (روز)",
|
||
"searchPlaceholder": "جستجوی ایمیل، توضیح، Sub ID، UUID، رمز، احراز، Telegram ID...",
|
||
"filterTitle": "فیلتر کاربران",
|
||
"clearAllFilters": "پاک کردن همه",
|
||
"filters": {
|
||
"nodes": "نودها",
|
||
"localPanel": "محلی (همین پنل)"
|
||
},
|
||
"showingCount": "نمایش {shown} از {total}",
|
||
"sortOldest": "قدیمیترین",
|
||
"sortNewest": "جدیدترین",
|
||
"sortRecentlyUpdated": "اخیراً بهروزشده",
|
||
"sortRecentlyOnline": "اخیراً آنلاین",
|
||
"sortEmailAZ": "ایمیل ا→ی",
|
||
"sortEmailZA": "ایمیل ی→ا",
|
||
"sortMostTraffic": "بیشترین ترافیک",
|
||
"sortHighestRemaining": "بیشترین باقیمانده",
|
||
"sortExpiringSoonest": "نزدیکترین انقضا",
|
||
"has": "دارد",
|
||
"hasNot": "ندارد",
|
||
"actions": "عملیات",
|
||
"totalGB": "سقف حجم (گیگابایت)",
|
||
"totalGBDesc": "سهمیهی حجم مصرفی کلاینت. ۰ = نامحدود",
|
||
"expiryTime": "انقضا",
|
||
"addClients": "افزودن کلاینتها",
|
||
"limitIp": "محدودیت IP",
|
||
"limitIpDesc": "حداکثر تعداد IP همزمان. ۰ = نامحدود",
|
||
"limitHwid": "محدودیت HWID",
|
||
"limitHwidDesc": "حداکثر دستگاه ثبتشده برای درخواستهای اشتراک. ۰ = نامحدود",
|
||
"hwidLog": "دستگاههای HWID",
|
||
"hwidDevice": "دستگاه ثبتشده",
|
||
"noHwids": "هنوز دستگاه HWID ثبت نشده است",
|
||
"firstSeen": "اولین مشاهده",
|
||
"lastSeen": "آخرین مشاهده",
|
||
"deleteHwid": "حذف دستگاه",
|
||
"deleteHwidConfirm": "این دستگاه حذف شود؟ در دریافت بعدی اشتراک باید دوباره ثبتنام شود.",
|
||
"hwidDeleted": "دستگاه حذف شد.",
|
||
"clearHwidsConfirm": "همه دستگاههای ثبتشده حذف شوند؟ هر دستگاه در دریافت بعدی اشتراک باید دوباره ثبتنام شود.",
|
||
"limitIpFail2banMissing": "Fail2ban نصب نشده است، بنابراین محدودیت IP اعمال نمیشود. برای فعالسازی این گزینه، Fail2ban را از منوی بش x-ui نصب کنید.",
|
||
"limitIpFail2banWindows": "Fail2ban روی ویندوز در دسترس نیست، بنابراین محدودیت IP قابل اعمال نیست.",
|
||
"limitIpDisabled": "قابلیت محدودیت IP روی این سرور غیرفعال است.",
|
||
"password": "رمز عبور",
|
||
"passwordDesc": "فقط توسط کلاینتهای Trojan و Shadowsocks استفاده میشود؛ برای VLESS، VMess، Hysteria و WireGuard نادیده گرفته میشود.",
|
||
"subId": "شناسه اشتراک",
|
||
"online": "آنلاین",
|
||
"email": "ایمیل",
|
||
"emailInvalidChars": "ایمیل نمیتواند شامل فاصله، '/'، '\\' یا کاراکترهای کنترلی باشد",
|
||
"subIdInvalidChars": "شناسهی اشتراک نمیتواند شامل فاصله، '/'، '\\' یا کاراکترهای کنترلی باشد",
|
||
"group": "گروه",
|
||
"groupDesc": "برچسبی منطقی برای دستهبندی کاربران مرتبط (مثل تیم، مشتری، منطقه). از نوار ابزار قابل فیلتر است.",
|
||
"groupPlaceholder": "مثلاً customer-a",
|
||
"comment": "توضیحات",
|
||
"traffic": "ترافیک",
|
||
"speed": "سرعت",
|
||
"offline": "آفلاین",
|
||
"addClient": "افزودن کلاینت",
|
||
"qrCode": "کد QR",
|
||
"clientInfo": "اطلاعات کلاینت",
|
||
"editClient": "ویرایش کلاینت",
|
||
"client": "کلاینت",
|
||
"enabled": "فعال",
|
||
"remaining": "باقیمانده",
|
||
"duration": "مدت",
|
||
"attachedInbounds": "اینباندهای متصل",
|
||
"selectInbound": "یک یا چند اینباند انتخاب کنید",
|
||
"selectAllInbounds": "انتخاب همه",
|
||
"clearAllInbounds": "پاک کردن همه",
|
||
"noSubId": "این کلاینت subId ندارد، لینک اشتراکگذاری وجود ندارد.",
|
||
"noLinks": "لینکی برای اشتراکگذاری نیست — ابتدا این کلاینت را به یک اینباند با پروتکل سازگار متصل کنید.",
|
||
"link": "لینک",
|
||
"resetNotPossible": "ابتدا این کلاینت را به یک اینباند متصل کنید.",
|
||
"resetAllTraffics": "بازنشانی ترافیک همه کلاینتها",
|
||
"resetAllTrafficsTitle": "بازنشانی ترافیک همه کلاینتها؟",
|
||
"resetAllTrafficsContent": "شمارنده ارسال/دریافت همه کلاینتها به صفر میرسد. سهمیه و تاریخ انقضا تغییری نمیکند. این عمل غیرقابل بازگشت است.",
|
||
"deleteConfirmTitle": "حذف کلاینت {email}؟",
|
||
"deleteConfirmContent": "این کلاینت از تمام اینباندهای متصل حذف و سابقه ترافیک آن پاک میشود. این عمل غیرقابل بازگشت است.",
|
||
"attach": "الصاق",
|
||
"adjust": "تنظیم",
|
||
"subLinks": "لینکهای اشتراک",
|
||
"enable": "فعالسازی",
|
||
"disable": "غیرفعالسازی",
|
||
"bulkEnableConfirmTitle": "{count} کلاینت فعال شوند؟",
|
||
"bulkEnableConfirmContent": "هر کلاینت انتخابشده روی تمام اینباندهای متصل فعال میشود. کلاینتهایی که سهمیه آنها تمام شده یا تاریخ انقضایشان گذشته، بهطور خودکار دوباره غیرفعال میشوند.",
|
||
"bulkDisableConfirmTitle": "{count} کلاینت غیرفعال شوند؟",
|
||
"bulkDisableConfirmContent": "هر کلاینت انتخابشده روی تمام اینباندهای متصل غیرفعال میشود. دسترسی آنها بلافاصله قطع میشود اما رکورد و ترافیکشان حفظ میگردد.",
|
||
"selectedCount": "{count} انتخابشده",
|
||
"attachToInboundsTitle": "الصاق {count} کاربر به ورودی(ها)",
|
||
"attachToInboundsDesc": "{count} کاربر انتخابشده (همان UUID/رمز و ترافیک مشترک) را به ورودیهای انتخابی الصاق میکند. الصاقهای قبلی حفظ میشوند.",
|
||
"attachToInboundsTargets": "ورودیهای مقصد",
|
||
"attachToInboundsNoTargets": "هیچ ورودی چندکاربرهای برای الصاق در دسترس نیست.",
|
||
"detach": "جداسازی",
|
||
"detachFromInboundsTitle": "جداسازی {count} کاربر از ورودی(ها)",
|
||
"detachFromInboundsDesc": "{count} کاربر انتخابشده را از ورودیهای انتخابی حذف میکند. در مواردی که کاربر الصاق نبوده، نادیده گرفته میشود. رکورد کاربر حفظ میشود (برای حذف کامل از Delete استفاده کنید).",
|
||
"detachFromInboundsTargets": "ورودیهایی برای جداسازی",
|
||
"detachFromInboundsNoTargets": "هیچ ورودی چندکاربرهای در دسترس نیست.",
|
||
"detachFromInboundsResult": "جدا شد {detached}، نادیده گرفته شد {skipped}.",
|
||
"detachFromInboundsResultMixed": "جدا شد {detached}، نادیده {skipped}، خطا {errors}.",
|
||
"subLinksTitle": "لینکهای اشتراک ({count})",
|
||
"subLinkColumn": "آدرس اشتراک",
|
||
"subLinksCopyAll": "کپی همه",
|
||
"subLinksCopiedAll": "{count} لینک کپی شد",
|
||
"subLinksEmpty": "هیچکدام از کاربران انتخابی شناسه اشتراک ندارند.",
|
||
"subLinksDisabled": "سرویس اشتراک غیرفعال است.",
|
||
"subLinksDisabledHint": "برای ساخت لینک، اشتراک را در تنظیمات پنل ← اشتراک فعال کنید.",
|
||
"bulkDeleteConfirmTitle": "حذف {count} کلاینت؟",
|
||
"bulkDeleteConfirmContent": "هر کلاینت انتخابشده از تمام اینباندهای متصل حذف و سابقه ترافیک آن پاک میشود. این عمل غیرقابل بازگشت است.",
|
||
"bulkAdjustTitle": "تنظیم {count} کلاینت",
|
||
"bulkAdjustHint": "مقادیر مثبت اضافه و منفی کم میکنند. کلاینتهایی که زمان یا ترافیک نامحدود دارند برای همان فیلد رد میشوند.",
|
||
"bulkAdjustNothing": "قبل از اعمال، روز یا ترافیک را تنظیم کنید.",
|
||
"addDays": "افزودن روز",
|
||
"addTrafficGB": "افزودن ترافیک (گیگابایت)",
|
||
"bulkFlow": "تنظیم flow",
|
||
"bulkFlowNoChange": "بدون تغییر",
|
||
"bulkFlowDisable": "غیرفعال (پاک کردن flow)",
|
||
"delDepleted": "حذف اتمامیافتهها",
|
||
"delDepletedConfirmTitle": "حذف کلاینتهای اتمامیافته؟",
|
||
"delDepletedConfirmContent": "هر کلاینتی که سهمیه ترافیکاش تمام شده یا تاریخ انقضایش گذشته است حذف میشود. این عمل غیرقابل بازگشت است.",
|
||
"exportClients": "خروجی گرفتن از کلاینتها",
|
||
"importClients": "ورود کلاینتها",
|
||
"import": "ورود",
|
||
"delOrphans": "حذف کلاینتهای بدون اینباند",
|
||
"delOrphansConfirmTitle": "حذف کلاینتهای بدون اینباند؟",
|
||
"delOrphansConfirmContent": "هر کلاینتی که به هیچ اینباندی متصل نیست، همراه با رکورد ترافیکاش حذف میشود. این عمل غیرقابل بازگشت است.",
|
||
"auth": "احراز",
|
||
"hysteriaAuth": "احراز Hysteria",
|
||
"hysteriaAuthDesc": "اعتباری که فقط کلاینتهای Hysteria از آن استفاده میکنند. Trojan و Shadowsocks بهجای آن از فیلد «رمز عبور» استفاده میکنند.",
|
||
"uuid": "UUID",
|
||
"flow": "Flow",
|
||
"vmessSecurity": "امنیت VMess",
|
||
"wireguardPrivateKey": "کلید خصوصی وایرگارد",
|
||
"wireguardPublicKey": "کلید عمومی وایرگارد",
|
||
"wireguardPreSharedKey": "کلید پیشاشتراکی وایرگارد",
|
||
"wireguardAllowedIPs": "آیپیهای مجاز وایرگارد",
|
||
"wireguardAllowedIPsHint": "برای تخصیص خودکار خالی بگذارید؛ ورودیها را با کاما جدا کنید",
|
||
"amneziaWgPrivateKey": "کلید خصوصی AmneziaWG",
|
||
"amneziaWgPublicKey": "کلید عمومی AmneziaWG",
|
||
"amneziaWgPreSharedKey": "کلید پیشاشتراکی AmneziaWG",
|
||
"amneziaWgAllowedIPs": "آیپیهای مجاز AmneziaWG",
|
||
"amneziaWgAllowedIPsHint": "برای تخصیص خودکار خالی بگذارید؛ ورودیها را با کاما جدا کنید",
|
||
"amneziaWgForwardedPorts": "پورتهای هدایتشده",
|
||
"amneziaWgForwardedPortsHint": "پورتها/محدودههای DNAT شده به این کلاینت، مثلاً 80, 443, 8000-8100. برای غیرفعال بودن خالی بگذارید.",
|
||
"amneziaWgConfig": "پیکربندی AmneziaWG",
|
||
"mtprotoSecret": "سکرت MTProto",
|
||
"mtprotoSecretHint": "سکرت FakeTLS این کلاینت. برای تعویض، دوباره تولید کنید.",
|
||
"mtprotoAdTag": "برچسب تبلیغاتی (کانال حامی)",
|
||
"mtprotoAdTagHint": "برچسب هگزادسیمال اختیاری ۳۲ کاراکتری که هنگام ثبت پروکسی در تلگرام دریافت میشود. با تنظیم آن، این کلاینت از طریق پروکسیهای میانی تلگرام هدایت میشود و یک کانال حامی در بالای فهرست گفتگوهایش نمایش داده میشود.",
|
||
"reverseTag": "تگ معکوس",
|
||
"reverseTagPlaceholder": "Reverse tag اختیاری",
|
||
"telegramId": "شناسه کاربر تلگرام",
|
||
"telegramIdPlaceholder": "شناسه عددی کاربر تلگرام (۰ = هیچ)",
|
||
"ipLimit": "محدودیت IP",
|
||
"toasts": {
|
||
"deleted": "کلاینت حذف شد",
|
||
"trafficReset": "ترافیک بازنشانی شد",
|
||
"allTrafficsReset": "ترافیک همه کلاینتها بازنشانی شد",
|
||
"bulkDeleted": "{count} کلاینت حذف شد",
|
||
"bulkDeletedMixed": "{ok} حذف، {failed} ناموفق",
|
||
"bulkEnabled": "{count} کلاینت فعال شد",
|
||
"bulkEnabledMixed": "{ok} فعال، {failed} ناموفق",
|
||
"bulkDisabled": "{count} کلاینت غیرفعال شد",
|
||
"bulkDisabledMixed": "{ok} غیرفعال، {failed} ناموفق",
|
||
"bulkCreated": "{count} کلاینت ساخته شد",
|
||
"bulkCreatedMixed": "{ok} ساخته شد، {failed} ناموفق",
|
||
"bulkAdjusted": "{count} کلاینت تنظیم شد",
|
||
"bulkAdjustedMixed": "{ok} تنظیم، {skipped} رد شد",
|
||
"delDepleted": "{count} کلاینت اتمامیافته حذف شد",
|
||
"delOrphans": "{count} کلاینت بدون اینباند حذف شد",
|
||
"imported": "{count} کلاینت وارد شد",
|
||
"importedMixed": "{ok} وارد شد، {failed} رد شد"
|
||
},
|
||
"renewMax": "حداکثر تعداد تمدید",
|
||
"renewMaxDesc": "تمدید خودکار حداکثر چند بار اجرا شود پیش از آنکه کلاینت منقضی بماند. مقدار ۰ یعنی بدون محدودیت. جبران چند دورهٔ ازدسترفته، برای هر دوره یک تمدید مصرف میکند.",
|
||
"renewOnDay": "روز تمدید",
|
||
"renewOnDayDesc": "در این روز از هر ماه تقویمی، در نیمهشب به وقت پنل تمدید میشود، به جای هر N روز. اگر ماه کوتاهتر از روز انتخابی باشد، در آخرین روز آن ماه تمدید میشود. مقدار ۰ حالت بازهٔ روزانه را حفظ میکند.",
|
||
"renewsUsed": "تمدیدهای استفادهشده"
|
||
},
|
||
"nodes": {
|
||
"addNode": "افزودن نود",
|
||
"editNode": "ویرایش نود",
|
||
"totalNodes": "کل نودها",
|
||
"onlineNodes": "آنلاین",
|
||
"offlineNodes": "آفلاین",
|
||
"avgLatency": "میانگین تاخیر",
|
||
"name": "نام",
|
||
"namePlaceholder": "مثلاً de-frankfurt-1",
|
||
"addressPlaceholder": "panel.example.com یا 1.2.3.4",
|
||
"remark": "توضیحات",
|
||
"scheme": "پروتکل",
|
||
"address": "آدرس",
|
||
"port": "پورت",
|
||
"basePath": "مسیر پایه",
|
||
"apiToken": "توکن API",
|
||
"apiTokenPlaceholder": "توکن از صفحه تنظیمات پنل ریموت",
|
||
"apiTokenHint": "پنل ریموت توکن API خودش را در بخش احرازهویت → توکن API نمایش میدهد.",
|
||
"apiTokenKeepHint": "برای حفظ توکن فعلی خالی بگذارید",
|
||
"allowPrivateAddress": "اجازه آدرس خصوصی",
|
||
"allowPrivateAddressHint": "فقط برای نودهای روی شبکه خصوصی یا VPN فعال شود.",
|
||
"outboundTag": "خروجی اتصال",
|
||
"outboundTagHint": "ترافیک API پنل این نود را از طریق خروجی Xray انتخابشده مسیریابی کنید. یک inbound پل loopback بهصورت خودکار به پیکربندی در حال اجرا اضافه شده و بهصورت زنده اعمال میشود. برای اتصال مستقیم خالی بگذارید.",
|
||
"outboundTagPlaceholder": "اتصال مستقیم",
|
||
"inboundSyncMode": "وارد کردن اینباندها",
|
||
"inboundSyncModeHint": "اینباندهای قابل وارد کردن از این نود را انتخاب کنید. نودهای موجود بهطور پیشفرض همه را وارد میکنند.",
|
||
"allInbounds": "همه اینباندها",
|
||
"selectedInbounds": "اینباندهای انتخابشده",
|
||
"inboundTags": "اینباندها",
|
||
"inboundTagsHint": "انتخاب بر اساس تگ اینباند تطبیق داده میشود. انتخاب خالی چیزی وارد نمیکند.",
|
||
"inboundTagsPlaceholder": "اینباندها را بارگیری و انتخاب کنید",
|
||
"loadInbounds": "بارگیری اینباندها از نود",
|
||
"inboundsLoaded": "{{count}} اینباند بارگیری شد",
|
||
"inboundsLoadFailed": "بارگیری اینباندها ناموفق بود",
|
||
"enable": "فعال",
|
||
"status": "وضعیت",
|
||
"cpu": "CPU",
|
||
"mem": "حافظه",
|
||
"netUp": "آپلود شبکه (KB/s)",
|
||
"netDown": "دانلود شبکه (KB/s)",
|
||
"uptime": "مدت فعالیت",
|
||
"latency": "تاخیر",
|
||
"lastHeartbeat": "آخرین ضربان",
|
||
"coreVersion": "Core version",
|
||
"panelVersion": "نسخه پنل",
|
||
"actions": "عملیات",
|
||
"probe": "بررسی فوری",
|
||
"updatePanel": "بهروزرسانی پنل",
|
||
"updateSelected": "بهروزرسانی انتخابشدهها ({count})",
|
||
"updateAvailable": "بهروزرسانی موجود",
|
||
"updateConfirmTitle": "{count} نود به آخرین نسخه بهروزرسانی شوند؟",
|
||
"updateConfirmContent": "هر نود انتخابشده آخرین نسخه را دانلود و روی آن ریاستارت میشود. فقط نودهای فعال و آنلاین بهروزرسانی میشوند.",
|
||
"updateAgent": "Update Agent",
|
||
"updateAgentConfirmContent": "The agent on this node will download the latest release, verify it, and restart onto it. If the update fails, the node keeps running the current version.",
|
||
"agentInstallCommand": "Install Command",
|
||
"agentTokenNotStored": "This node's token is not stored on the master yet, so the command below has no token. The token is saved on the node itself in /etc/x-ui/agent.json; it will be filled in here automatically after the agent's next authenticated request.",
|
||
"updateDevChannel": "بهروزرسانی به کانال دِو (آخرین کامیت)",
|
||
"testConnection": "تست اتصال",
|
||
"connectionOk": "اتصال موفق ({ms} میلیثانیه)",
|
||
"connectionFailed": "اتصال ناموفق",
|
||
"never": "هرگز",
|
||
"justNow": "هماکنون",
|
||
"subNode": "نود فرعی",
|
||
"subNodeTip": "فقطخواندنی: یک نود پاییندستی که از طریق {parent} در دسترس است. آن را از پنل خودِ {parent} مدیریت کنید.",
|
||
"deleteConfirmTitle": "نود «{name}» حذف شود؟",
|
||
"deleteConfirmContent": "نظارت روی این نود متوقف میشود. خود پنل ریموت تغییری نمیکند.",
|
||
"statusValues": {
|
||
"online": "آنلاین",
|
||
"offline": "آفلاین",
|
||
"unknown": "نامشخص",
|
||
"xrayError": "خطای Xray",
|
||
"xrayStopped": "متوقف"
|
||
},
|
||
"toasts": {
|
||
"list": "بارگذاری نودها ناموفق",
|
||
"obtain": "بارگذاری نود ناموفق",
|
||
"add": "افزودن نود",
|
||
"update": "بهروزرسانی نود",
|
||
"delete": "حذف نود",
|
||
"deleted": "نود حذف شد",
|
||
"test": "تست اتصال",
|
||
"fillRequired": "نام، آدرس، پورت و توکن API الزامی است",
|
||
"probeFailed": "بررسی ناموفق",
|
||
"updateStarted": "بهروزرسانی پنل آغاز شد",
|
||
"updateResult": "بهروزرسانی روی {ok} نود آغاز شد، {failed} ناموفق",
|
||
"updateNoneEligible": "حداقل یک نود آنلاین و فعال انتخاب کنید",
|
||
"saveMtls": "ذخیره mTLS نود",
|
||
"reloadMtls": "Reload master mTLS credential"
|
||
},
|
||
"tlsVerifyMode": "اعتبارسنجی TLS",
|
||
"tlsVerifyModeHint": "اینکه پنل گواهی HTTPS نود را چطور بررسی کند. Pin یا Skip برای گواهیهای self-signed است (فقط نودهای https).",
|
||
"tlsVerify": "اعتبارسنجی (CA پیشفرض)",
|
||
"tlsPin": "Pin گواهی (SHA-256)",
|
||
"tlsSkip": "رد کردن اعتبارسنجی",
|
||
"tlsMtls": "TLS متقابل (گواهی کلاینت)",
|
||
"mtlsFormHint": "این نود با یک گواهی کلاینت، پنل را احراز هویت میکند. CA این پنل را از بخش mTLS نود به نود کپی کنید، CA مورد اعتماد آن را تنظیم کنید و سپس آن را راهاندازی مجدد کنید.",
|
||
"mtls": {
|
||
"title": "mTLS نود",
|
||
"intro": "TLS متقابل علاوه بر توکن API، یک عامل گواهی کلاینت برای ارتباط بین نودها اضافه میکند. اختیاری است: برای استفاده فقط از احراز هویت با توکن، آن را خالی بگذارید.",
|
||
"copyCa": "کپی CA این پنل",
|
||
"copyCaHint": "این CA را به نودهایی که این پنل مدیریت میکند بدهید، سپس حالت اعتبارسنجی TLS آنها را روی TLS متقابل تنظیم کنید.",
|
||
"caCopied": "گواهی CA در کلیپبورد کپی شد",
|
||
"caFailed": "دریافت گواهی CA ناموفق بود",
|
||
"trustLabel": "CA مورد اعتماد (پنل والد)",
|
||
"trustHint": "وقتی این پنل خود یک نود است، CA پنل مدیریتکننده را اینجا بچسبانید تا گواهی کلاینت آن الزامی شود. برای اعمال، پنل را راهاندازی مجدد کنید.",
|
||
"trustPlaceholder": "-----BEGIN CERTIFICATE-----",
|
||
"save": "ذخیره CA مورد اعتماد",
|
||
"saved": "CA مورد اعتماد ذخیره شد — برای اعمال، پنل را راهاندازی مجدد کنید"
|
||
},
|
||
"tlsSkipWarning": "رد کردن اعتبارسنجی محافظت در برابر حملهٔ مرد میانی را از بین میبرد و توکن API ممکن است شنود شود. ترجیحاً بهجای آن گواهی را Pin کنید.",
|
||
"pinnedCert": "SHA-256 گواهیِ Pinشده",
|
||
"pinnedCertHint": "SHA-256 گواهیِ نود بهصورت base64 یا hex. برای خواندنِ همین حالا از نود، از دکمهٔ Fetch استفاده کنید.",
|
||
"pinnedCertPlaceholder": "SHA-256 بهصورت base64 یا hex",
|
||
"fetchPin": "دریافت",
|
||
"pinFetched": "گواهیِ فعلیِ نود دریافت شد",
|
||
"pinFetchFailed": "دریافت گواهی ممکن نشد",
|
||
"nodeType": "Node Type",
|
||
"nodeTypeTraditional": "Traditional Panel Node",
|
||
"nodeTypeAgent": "Agent Lightweight Node",
|
||
"agentHint": "Agent nodes connect out to the master; no address, port or API token needed. An install command is generated on creation.",
|
||
"probeOnly": "Probe only",
|
||
"probeOnlyHint": "Probe-only mode: no proxy core runs on this node; only monitoring (heartbeat, metrics and latency probes) is active.",
|
||
"agentTokenTitle": "Agent Node Setup",
|
||
"agentTokenCreated": "Node {{name}} created successfully",
|
||
"agentTokenHint": "Copy the command below and run it on the node machine. This token is shown only once!",
|
||
"agentTokenInstructions": "The command downloads the installer, configures the master URL and token. The node comes online in ~30s.",
|
||
"agentTokenCopied": "Install command copied",
|
||
"agentTokenCopyFailed": "Copy failed, please copy manually",
|
||
"copyToken": "Copy Install Command",
|
||
"agentMasterUrlHint": "Master URL (used by agent to reach the master; change to public address if behind proxy):",
|
||
"agentMasterUrlRequired": "Master URL is empty — enter the master address first; the install command is generated only then.",
|
||
"probe": {
|
||
"title": "Public status page",
|
||
"hint": "Display and plan data for the public status page. Saving takes effect immediately.",
|
||
"public": "Show on public page",
|
||
"publicRemark": "Public remark",
|
||
"group": "Group",
|
||
"sort": "Sort order",
|
||
"price": "Price",
|
||
"currency": "Currency",
|
||
"billingCycle": "Billing cycle",
|
||
"cycleOnce": "One-time",
|
||
"cycleMonthly": "Monthly",
|
||
"cycleQuarterly": "Quarterly",
|
||
"cycleSemiannual": "Semiannual",
|
||
"cycleYearly": "Yearly",
|
||
"cycleBiennial": "Biennial",
|
||
"cycleTriennial": "Triennial",
|
||
"expiresAt": "Expires on (YYYY-MM-DD)",
|
||
"trafficLimit": "Traffic limit (GB, 0 = unlimited)",
|
||
"trafficMode": "Traffic counting",
|
||
"modeSum": "Up + down",
|
||
"modeUp": "Up only",
|
||
"modeDown": "Down only",
|
||
"modeMax": "Larger of up/down",
|
||
"trafficResetDay": "Traffic reset day",
|
||
"notify": "Expiry / traffic alerts",
|
||
"countryPin": "Country pin (e.g. JP)",
|
||
"ipv4Pin": "IPv4 pin",
|
||
"ipv6Pin": "IPv6 pin",
|
||
"calUp": "Uplink correction (GB)",
|
||
"calDown": "Downlink correction (GB)",
|
||
"calHint": "Corrections are added to the counted traffic (negative values subtract) and apply to panel statistics, the public page and traffic alerts.",
|
||
"statIface": "Counted interface",
|
||
"movedHint": "Probe metadata (pricing, traffic limits, calibration…) is edited on the probe settings page.",
|
||
"goSettings": "Open probe settings",
|
||
"save": "Save status page info",
|
||
"saved": "Status page info saved",
|
||
"saveFailed": "Saving status page info failed"
|
||
},
|
||
"probeTasks": {
|
||
"title": "Probe tasks",
|
||
"intro": "TCP latency probes run by agent nodes. Changes apply on each agent's next config poll (about 30 s); nothing restarts.",
|
||
"loading": "Loading…",
|
||
"empty": "No probe tasks yet. Add one to start measuring latency.",
|
||
"add": "Add probe",
|
||
"name": "Name",
|
||
"target": "Target",
|
||
"targetPlaceholder": "host:port, e.g. 1.1.1.1:443",
|
||
"interval": "Interval (s)",
|
||
"region": "Region",
|
||
"ungrouped": "Ungrouped",
|
||
"autoJoin": "Auto-join",
|
||
"autoJoinOn": "Auto",
|
||
"nodes": "Nodes",
|
||
"nodesPlaceholder": "Assign nodes",
|
||
"actions": "Actions",
|
||
"edit": "Edit",
|
||
"delete": "Delete",
|
||
"deleteConfirm": "Delete this probe and its history?",
|
||
"save": "Save",
|
||
"cancel": "Cancel",
|
||
"saved": "Probe task saved",
|
||
"deleted": "Probe task deleted",
|
||
"loadFailed": "Failed to load probe tasks",
|
||
"saveFailed": "Operation failed",
|
||
"batchTitle": "Batch add",
|
||
"batchPlaceholder": "One target per line, or comma-separated — host:port, e.g. 1.1.1.1:443",
|
||
"batchSubmit": "Add all",
|
||
"batchHint": "The shared fields apply to every target; leave the name empty to name each task after its target.",
|
||
"batchEmpty": "Enter at least one target",
|
||
"batchDone": "Added {{count}} probe tasks"
|
||
}
|
||
},
|
||
"settings": {
|
||
"probeThemes": {
|
||
"title": "Theme store",
|
||
"settingsTitle": "Public status page",
|
||
"publicPage": "Public page",
|
||
"publicPageHint": "When off, the status page and its API answer only to the logged-in panel.",
|
||
"siteName": "Site name",
|
||
"site": "Site URL",
|
||
"githubProxy": "GitHub proxy",
|
||
"githubProxyHint": "Prefix used when downloading theme packages from GitHub; leave empty to connect directly.",
|
||
"favicon": "Site icon (favicon)",
|
||
"touchIcon": "Touch icon (apple-touch-icon)",
|
||
"chooseImage": "Choose image",
|
||
"iconHint": "PNG, ICO, SVG, WebP, JPEG or GIF, at most 20 KiB; larger photos are scaled down. The icon follows the site across theme switches.",
|
||
"iconTooLarge": "The image cannot be fitted into 20 KiB",
|
||
"saved": "Saved",
|
||
"saveFailed": "Operation failed",
|
||
"uploadInstall": "Upload theme.tar.gz",
|
||
"installed": "Theme \"{{name}}\" installed",
|
||
"uploadFailed": "Upload failed",
|
||
"installByUrl": "Install by address",
|
||
"installByUrlPlaceholder": "Theme GitHub repository, e.g. https://github.com/author/repo",
|
||
"installFailed": "Install failed",
|
||
"inUse": "In use",
|
||
"use": "Use",
|
||
"builtin": "Built-in",
|
||
"deleteConfirm": "Delete this theme?",
|
||
"updatedTo": "Updated to {{version}}",
|
||
"alreadyLatest": "Already the latest version",
|
||
"config": "Theme settings"
|
||
},
|
||
"probe": {
|
||
"title": "Probe settings",
|
||
"retentionDays": "History retention (days)",
|
||
"retentionHint": "How long probe history (metrics and latency) is kept.",
|
||
"fastInterval": "Fast report interval",
|
||
"fastIntervalHint": "How often agents report runtime metrics; everything else still rides the 60 s heartbeat.",
|
||
"metaTitle": "Per-node probe metadata",
|
||
"metaNodePlaceholder": "Select a node"
|
||
},
|
||
"probeNotify": {
|
||
"notifyTitle": "Notifications",
|
||
"notifyHint": "Offline, traffic and expiry alerts, delivered to the channels below (Telegram reuses the panel bot settings).",
|
||
"grace": "Offline grace (minutes)",
|
||
"graceHint": "An alert fires only after reporting has stopped for this long; a recovery inside the grace stays silent.",
|
||
"trafficPct": "Traffic alert threshold (%)",
|
||
"trafficHint": "Alerts once at this percentage and once more at 100%, once per billing period each; 0 disables traffic alerts.",
|
||
"expiryDays": "Expiry alert (days)",
|
||
"expiryHint": "A daily digest of nodes expiring within this many days; online nodes roll over automatically by billing cycle; 0 disables.",
|
||
"loginAlert": "Panel sign-in alerts",
|
||
"telegramChannel": "Telegram channel",
|
||
"telegramHint": "The token and chat IDs are configured in the Telegram bot settings.",
|
||
"webhookChannel": "Webhook channel",
|
||
"configured": "Configured",
|
||
"notConfigured": "Not configured",
|
||
"telegramText": "Telegram text template",
|
||
"webhookUrl": "Webhook URL",
|
||
"webhookHeaders": "Headers (one Name: value per line)",
|
||
"webhookBody": "Body template (JSON)",
|
||
"secretSet": "Set (leave empty to keep)",
|
||
"clearSecret": "Clear",
|
||
"templateHint": "Placeholders: {{title}} {{message}} {{node}} {{event}} {{time}} {{count}} {{site}}",
|
||
"testSend": "Send a test alert",
|
||
"testSent": "Test alert sent: {{channels}}"
|
||
},
|
||
"defaultTag": "پیشفرض",
|
||
"title": "تنظیمات پنل",
|
||
"save": "ذخیره",
|
||
"restartPanel": "راهاندازی مجدد پنل",
|
||
"restartPanelDesc": "آیا مطمئن به ریستارت پنل هستید؟ اگر پساز ریستارت نمیتوانید به پنل دسترسی پیدا کنید، لطفاً گزارشهای موجود در اسکریپت پنل را بررسی کنید",
|
||
"restartPanelSuccess": "پنل با موفقیت راهاندازی مجدد شد",
|
||
"actions": "عملیات ها",
|
||
"resetDefaultConfig": "برگشت به پیشفرض",
|
||
"panelSettings": "پیکربندی",
|
||
"securitySettings": "احرازهویت",
|
||
"securityWarnings": "هشدارهای امنیتی",
|
||
"panelExposed": "ممکن است پنل شما در معرض خطر باشد:",
|
||
"warnHttp": "پنل از طریق HTTP ساده ارائه میشود — برای محیط عملیاتی TLS فعال کنید.",
|
||
"warnDefaultPort": "پورت پیشفرض 2053 شناختهشده است — آن را به یک پورت تصادفی تغییر دهید.",
|
||
"warnDefaultBasePath": "مسیر پایه پیشفرض «/» شناختهشده است — آن را به یک مسیر تصادفی تغییر دهید.",
|
||
"warnDefaultSubPath": "مسیر ساب پیشفرض «/sub/» شناختهشده است — تغییرش دهید.",
|
||
"panelListeningIP": "آدرس آیپی",
|
||
"panelListeningIPDesc": "آدرس آیپی برای وب پنل. برای گوشدادن بهتمام آیپیها خالیبگذارید",
|
||
"panelListeningDomain": "نام دامنه",
|
||
"panelListeningDomainDesc": "آدرس دامنه برای وب پنل. برای گوش دادن بهتمام دامنهها و آیپیها خالیبگذارید",
|
||
"panelPort": "پورت",
|
||
"panelPortDesc": "شماره پورت برای وب پنل. باید پورت استفاده نشدهباشد",
|
||
"publicKeyPath": "مسیر کلید عمومی",
|
||
"publicKeyPathDesc": "مسیر فایل کلیدعمومی برای وب پنل. با '/' شروعمیشود",
|
||
"privateKeyPath": "مسیر کلید خصوصی",
|
||
"privateKeyPathDesc": "مسیر فایل کلیدخصوصی برای وب پنل. با '/' شروعمیشود",
|
||
"panelUrlPath": "مسیر URI",
|
||
"panelUrlPathDesc": "برای وب پنل. با '/' شروع و با '/' خاتمه مییابد URI مسیر",
|
||
"pageSize": "اندازه صفحه بندی جدول",
|
||
"pageSizeDesc": "(اندازه صفحه برای جدول ورودیها.(0 = غیرفعال",
|
||
"remarkTemplate": "قالب ریمارک",
|
||
"remarkTemplateDesc": "اگر پر شود، جای مدلِ ریمارک را برای همهی لینکهای اشتراک میگیرد — فرمت دلخواهت را با توکنهای متغیر بنویس (از دکمه برای درج استفاده کن). خالی = استفاده از مدلِ بالا.",
|
||
"subShowIdentityOnAllLinks": "نمایش هویت در همه لینکها",
|
||
"subShowIdentityOnAllLinksDesc": "در صورت فعال بودن، {{EMAIL}} و {{USERNAME}} در یادداشت هر لینک بدنه اشتراک باقی میمانند. توکنهای مصرف همچنان فقط در لینک اول نمایش داده میشوند.",
|
||
"datepickerPlaceholder": "انتخاب تاریخ",
|
||
"oldUsername": "نامکاربری فعلی",
|
||
"currentPassword": "رمزعبور فعلی",
|
||
"newUsername": "نامکاربری جدید",
|
||
"newPassword": "رمزعبور جدید",
|
||
"sessionMaxAge": "بیشینه زمان جلسه وب",
|
||
"sessionMaxAgeDesc": "(بیشینه زمانی که میتوانید لاگین بمانید. (واحد: دقیقه",
|
||
"expireTimeDiff": "آستانه زمان باقی مانده",
|
||
"expireTimeDiffDesc": "(فاصله زمانی هشدار تا رسیدن به زمان انقضا. (واحد: روز",
|
||
"trafficDiff": "آستانه ترافیک باقی مانده",
|
||
"trafficDiffDesc": "(فاصله زمانی هشدار تا رسیدن به اتمام ترافیک. (واحد: گیگابایت",
|
||
"timeZone": "منطقه زمانی",
|
||
"timeZoneDesc": "وظایف برنامه ریزی شده بر اساس این منطقهزمانی اجرا میشود",
|
||
"subSettings": "سابسکریپشن",
|
||
"subEnable": "فعالسازی سرویس سابسکریپشن",
|
||
"subEnableDesc": "سرویس سابسکریپشن را فعالمیکند",
|
||
"subTitle": "عنوان اشتراک",
|
||
"subTitleDesc": "عنوان نمایش داده شده در کلاینت VPN. از توکنهای هویت کلاینت پشتیبانی میکند: {{EMAIL}}, {{ID}}, {{SHORT_ID}}, {{SUB_ID}}, {{TELEGRAM_ID}}.",
|
||
"subSupportUrl": "آدرس پشتیبانی",
|
||
"subSupportUrlDesc": "لینک پشتیبانی فنی که در کلاینت VPN نمایش داده میشود. از توکنهای هویت کلاینت پشتیبانی میکند: {{EMAIL}}, {{ID}}, {{SHORT_ID}}, {{SUB_ID}}, {{TELEGRAM_ID}}.",
|
||
"subProfileUrl": "آدرس پروفایل",
|
||
"subProfileUrlDesc": "لینک وبسایت شما که در کلاینت VPN نمایش داده میشود. از توکنهای هویت کلاینت پشتیبانی میکند: {{EMAIL}}, {{ID}}, {{SHORT_ID}}, {{SUB_ID}}, {{TELEGRAM_ID}}.",
|
||
"subAnnounce": "اعلان",
|
||
"subAnnounceDesc": "متن اعلانی که در کلاینت VPN نمایش داده میشود. از توکنهای هویت کلاینت پشتیبانی میکند: {{EMAIL}}, {{ID}}, {{SHORT_ID}}, {{SUB_ID}}, {{TELEGRAM_ID}}.",
|
||
"subHideSettings": "پنهان کردن تنظیمات سرور",
|
||
"subHideSettingsDesc": "پنهان کردن توانایی مشاهده و ویرایش پیکربندی سرور در کلاینت VPN. (فقط برای Happ)",
|
||
"subListen": "آدرس آیپی",
|
||
"subListenDesc": "آدرس آیپی برای سرویس سابسکریپشن. برای گوش دادن بهتمام آیپیها خالیبگذارید",
|
||
"subPort": "پورت",
|
||
"subPortDesc": "شماره پورت برای سرویس سابسکریپشن. باید پورت استفادهنشدهباشد. همچنین وقتی «مسیر پراکسی معکوس» خالی باشد، برای ساخت لینک/QR سابسکریپشن نمایشدادهشده در پنل استفاده میشود — اگر سابسکریپشن از پشت یک پراکسی معکوس روی پورت دیگری در دسترس است، به جای این، «مسیر پراکسی معکوس» را پر کنید.",
|
||
"subCertPath": "مسیر کلید عمومی",
|
||
"subCertPathDesc": "مسیر فایل کلیدعمومی برای سرویس سابیکریپشن. با '/' شروعمیشود",
|
||
"subKeyPath": "مسیر کلید خصوصی",
|
||
"subKeyPathDesc": "مسیر فایل کلیدخصوصی برای سرویس سابسکریپشن. با '/' شروعمیشود",
|
||
"subPath": "مسیر URI",
|
||
"subPathDesc": "برای سرویس سابسکریپشن. با '/' شروع و با '/' خاتمه مییابد URI مسیر",
|
||
"subDomain": "نام دامنه",
|
||
"subDomainDesc": "آدرس دامنه برای سرویس سابسکریپشن. برای گوش دادن به تمام دامنهها و آیپیها خالیبگذارید. همچنین وقتی «مسیر پراکسی معکوس» خالی باشد، به عنوان دامنه پیشفرض لینک سابسکریپشن نمایشدادهشده استفاده میشود — اگر پنل و سابسکریپشن از دامنههای متفاوتی در دسترس هستند (مثلاً پشت یک پراکسی معکوس)، «مسیر پراکسی معکوس» را پر کنید.",
|
||
"subUpdates": "فاصله بروزرسانی سابسکریپشن",
|
||
"subUpdatesDesc": "(فاصله مابین بروزرسانی در برنامههای کاربری. (واحد: ساعت",
|
||
"subEncrypt": "انکود",
|
||
"subEncryptDesc": "کدگذاری خواهدشد Base64 محتوای برگشتی سرویس سابسکریپشن برپایه",
|
||
"subURI": "پروکسی معکوس URI مسیر",
|
||
"subURIDesc": "آدرس پایه کامل (scheme://domain[:port]/path/) برای لینک سابسکریپشن و کد QR، به جای نام دامنه/پورت استفاده میشود. هر وقت سابسکریپشن از پشت یک پراکسی معکوس یا روی دامنه/پورت متفاوتی نسبت به موارد بالا در دسترس است، این را پر کنید.",
|
||
"restartXrayOnClientDisable": "ریاستارت Xray بعد از غیرفعالسازی خودکار",
|
||
"restartXrayOnClientDisableDesc": "وقتی کاربر بهصورت خودکار بهدلیل اتمام زمان یا ترافیک غیرفعال میشود، Xray ریاستارت شود.",
|
||
"fragment": "فرگمنت",
|
||
"fragmentDesc": "فعال کردن فرگمنت برای بستهی نخست تیالاس",
|
||
"fragmentSett": "تنظیمات فرگمنت",
|
||
"noisesDesc": "فعال کردن Noises.",
|
||
"noisesSett": "تنظیمات Noises",
|
||
"trustedProxyCidrs": "CIDRهای پراکسی مورد اعتماد",
|
||
"trustedProxyCidrsDesc": "IPها/CIDRها (با کاما) که مجازند هدرهای host، proto و client IP فوروارد را تنظیم کنند.",
|
||
"subFormats": {
|
||
"packets": "بستهها",
|
||
"length": "طول",
|
||
"interval": "بازه",
|
||
"maxSplit": "حداکثر تقسیم",
|
||
"noises": "نویزها",
|
||
"noiseItem": "نویز №{n}",
|
||
"type": "نوع",
|
||
"packet": "بسته",
|
||
"delayMs": "تأخیر (ms)",
|
||
"applyTo": "اعمال بر",
|
||
"concurrency": "همزمانی",
|
||
"xudpConcurrency": "همزمانی xudp",
|
||
"xudpUdp443": "xudp UDP 443"
|
||
},
|
||
"mux": "Mux",
|
||
"muxSett": "تنظیمات ماکس",
|
||
"certs": "گواهیها",
|
||
"dateAndTime": "تاریخ و زمان",
|
||
"proxyAndServer": "پراکسی و سرور",
|
||
"intervals": "فواصل",
|
||
"information": "اطلاعات",
|
||
"profile": "پروفایل",
|
||
"language": "زبان",
|
||
"security": {
|
||
"admin": "اعتبارنامههای ادمین",
|
||
"show": "نمایش",
|
||
"hide": "پنهان",
|
||
"apiTokenNew": "توکن جدید",
|
||
"apiTokenName": "نام",
|
||
"apiTokenNamePlaceholder": "مثلاً central-panel-a",
|
||
"apiTokenNameRequired": "نام الزامی است",
|
||
"apiTokenEmpty": "هنوز توکنی وجود ندارد — برای احراز هویت رباتها یا پنلهای راه دور یکی بسازید.",
|
||
"apiTokenDeleteWarning": "هر کلاینتی که از این توکن استفاده میکند بلافاصله احراز هویتش قطع میشود.",
|
||
"apiTokenCreatedTitle": "توکن ساخته شد",
|
||
"apiTokenCreatedNotice": "اکنون این توکن را کپی کنید. بهدلیل امنیتی بهصورت قابلخواندن ذخیره نمیشود و دوباره نمایش داده نخواهد شد."
|
||
},
|
||
"toasts": {
|
||
"modifySettings": "پارامترها تغییر کردهاند.",
|
||
"getSettings": "خطا در دریافت پارامترها",
|
||
"modifyUserError": "خطا در تغییر اعتبارنامههای مدیر سیستم.",
|
||
"modifyUser": "شما با موفقیت اعتبارنامههای مدیر سیستم را تغییر دادید.",
|
||
"originalUserPassIncorrect": "نامکاربری یا رمزعبور فعلی اشتباهاست",
|
||
"userPassMustBeNotEmpty": "نامکاربری یا رمزعبور جدید خالیاست",
|
||
"getOutboundTrafficError": "خطا در دریافت ترافیک خروجی",
|
||
"resetOutboundTrafficError": "خطا در بازنشانی ترافیک خروجی"
|
||
},
|
||
"eventNodeDown": "قطع",
|
||
"eventNodeUp": "وصل",
|
||
"eventCPUHigh": "بالا بودن CPU (٪)",
|
||
"requestFailed": "درخواست ناموفق بود",
|
||
"eventLoginAttempt": "تلاش برای ورود",
|
||
"eventMemoryHigh": "مصرف حافظه بالا (%)",
|
||
"validation": {
|
||
"pathLeadingSlash": "مسیر باید با / شروع شود"
|
||
},
|
||
"secretClear": "پاک کردن",
|
||
"secretClearUndo": "لغو پاک کردن",
|
||
"TGBotSettings": "ربات تلگرام",
|
||
"notifications": "اعلانها",
|
||
"notifyTime": {
|
||
"custom": "سفارشی (crontab)",
|
||
"daily": "@daily — هر روز ساعت ۰۰:۰۰",
|
||
"every": "@every — تکرار در یک بازه",
|
||
"hourly": "@hourly — هر ساعت",
|
||
"hours": "ساعت",
|
||
"interval": "بازه زمانی",
|
||
"minutes": "دقیقه",
|
||
"monthly": "@monthly — هر ماه",
|
||
"seconds": "ثانیه",
|
||
"unit": "واحد",
|
||
"weekly": "@weekly — هر هفته"
|
||
},
|
||
"telegramAPIServer": "سرور API تلگرام",
|
||
"telegramAPIServerDesc": "API سرور تلگرام برای اتصال را تغییر میدهد. برای استفاده از سرور پیش فرض خالی بگذارید",
|
||
"telegramBotEnable": "فعالسازی ربات تلگرام",
|
||
"telegramBotEnableDesc": "ربات تلگرام را فعال میکند",
|
||
"telegramBotLanguage": "زبان ربات تلگرام",
|
||
"telegramChatId": "آیدی چت مدیر",
|
||
"telegramChatIdDesc": "دریافت کنید ('/id'یا (دستور ({'@'}userinfobot) آیدی(های) چت تلگرام مدیر، از",
|
||
"telegramNotifyTime": "زمان نوتیفیکیشن",
|
||
"telegramNotifyTimeDesc": "هر چند وقت یکبار ربات تلگرام گزارش دورهای بفرستد. یک بازهٔ آماده انتخاب کنید یا گزینهٔ سفارشی را بزنید تا عبارت crontab وارد کنید.",
|
||
"telegramToken": "توکن تلگرام",
|
||
"telegramTokenConfigured": "پیکربندی شده؛ برای حفظ توکن فعلی خالی بگذارید.",
|
||
"telegramTokenDesc": "دریافت کنید {'@'}botfather توکن را میتوانید از",
|
||
"telegramTokenPlaceholder": "پیکربندی شده - برای جایگزینی، توکن جدید وارد کنید",
|
||
"testTgBot": "ارسال پیام آزمایشی",
|
||
"tgBotNotEnabled": "ربات تلگرام فعال نیست",
|
||
"tgBotNotRunning": "ربات تلگرام در حال اجرا نیست",
|
||
"tgEventBusNotify": "اعلانهای رویداد تلگرام",
|
||
"tgEventBusNotifyDesc": "انتخاب کنید کدام رویدادها اعلان تلگرام را فعال میکنند",
|
||
"tgNotifyBackup": "پشتیبانگیری از دیتابیس",
|
||
"tgNotifyBackupDesc": "فایل پشتیباندیتابیس را بههمراه گزارش ارسال میکند",
|
||
"tgTestFailed": "آزمایش تلگرام ناموفق بود",
|
||
"tgTestSuccess": "پیام آزمایشی به تلگرام ارسال شد",
|
||
"trafficStatsInboundUplink": "Inbound Upload Accounting",
|
||
"trafficStatsInboundDownlink": "Inbound Download Accounting",
|
||
"trafficStatsOutboundUplink": "Outbound Upload Accounting",
|
||
"trafficStatsOutboundDownlink": "Outbound Download Accounting",
|
||
"trafficStatsDesc": "Applies to the whole network. A direction pair (inbound or outbound) is counted only while both of its switches are on. While counting is off, that traffic is never recorded and the gap is permanent — it is not backfilled later — and expiry / over-quota auto-disable loses the data it relies on."
|
||
},
|
||
"xray": {
|
||
"basicTemplate": "پایه",
|
||
"advancedTemplate": "پیشرفته",
|
||
"Outbounds": "خروجیها",
|
||
"Balancers": "بالانسرها",
|
||
"rules": {
|
||
"inbound": "ورودی"
|
||
},
|
||
"outboundForm": {
|
||
"minUploadInterval": "حداقل بازه آپلود (ms)",
|
||
"maxConcurrency": "حداکثر همزمانی",
|
||
"maxConnections": "حداکثر اتصالها",
|
||
"maxReuseTimes": "حداکثر استفاده مجدد",
|
||
"maxRequestTimes": "حداکثر تعداد درخواست",
|
||
"maxReusableSecs": "حداکثر ثانیه قابل استفاده مجدد",
|
||
"keepAlivePeriod": "دوره Keep alive"
|
||
},
|
||
"wireguard": {
|
||
"secretKey": "کلید شخصی",
|
||
"publicKey": "کلید عمومی",
|
||
"subnetIp": "زیرشبکه",
|
||
"subnetCidr": "پیشوند زیرشبکه (CIDR)",
|
||
"allowedIPs": "آیپیهای مجاز",
|
||
"domainStrategy": "استراتژی حل دامنه"
|
||
},
|
||
"amneziawg": {
|
||
"privateKey": "کلید خصوصی",
|
||
"publicKey": "کلید عمومی",
|
||
"subnetIp": "زیرشبکه",
|
||
"subnetCidr": "پیشوند زیرشبکه (CIDR)",
|
||
"mtu": "MTU",
|
||
"primaryDns": "DNS اصلی",
|
||
"secondaryDns": "DNS ثانویه",
|
||
"externalInterface": "رابط خارجی",
|
||
"externalInterfaceHint": "رابط شبکه میزبان برای NAT (PostUp/PostDown). برای تشخیص خودکار خالی بگذارید.",
|
||
"ipv6Enabled": "فعالسازی IPv6",
|
||
"ipv6Subnet": "زیرشبکه IPv6",
|
||
"ipv6SubnetHint": "مثلاً fd86:ea04:1115::/64. هنگام فعال بودن IPv6 الزامی است.",
|
||
"ipv6ExternalInterface": "رابط خارجی IPv6",
|
||
"ipv6ExternalInterfaceHint": "رابط شبکه میزبان برای ورودیهای پراکسی NDP. برای استفاده از رابط خارجی خالی بگذارید.",
|
||
"obfuscation": "پارامترهای مبهمسازی",
|
||
"regenerateObfuscation": "بازتولید",
|
||
"jc": "Jc (تعداد بستههای زباله)",
|
||
"jmin": "Jmin (حداقل اندازه بسته زباله)",
|
||
"jmax": "Jmax (حداکثر اندازه بسته زباله)",
|
||
"s1": "S1 (اندازه پرکننده بسته init)",
|
||
"s2": "S2 (اندازه پرکننده بسته response)",
|
||
"s3": "S3 (پرکننده cookie reply)",
|
||
"s4": "S4 (پرکننده بسته انتقال)",
|
||
"h1": "H1 (سرصفحه جادویی)",
|
||
"h2": "H2 (سرصفحه جادویی)",
|
||
"h3": "H3 (سرصفحه جادویی)",
|
||
"h4": "H4 (سرصفحه جادویی)",
|
||
"hHint": "یک عدد صحیح یا یک بازه. برای مقادیر پیشفرض کلاسیک ۱/۲/۳/۴ خالی بگذارید.",
|
||
"i1": "I1 (بسته امضا)",
|
||
"i1Hint": "بسته امضای اختیاری. برای حذف آن خالی بگذارید.",
|
||
"i2": "I2 (بسته امضا)",
|
||
"i3": "I3 (بسته امضا)",
|
||
"i4": "I4 (بسته امضا)",
|
||
"i5": "I5 (بسته امضا)",
|
||
"headerProtectionKey": "HeaderProtectionKey (محافظت سرآیند)",
|
||
"headerProtectionKeyHint": "کلید Base64 با طول ۳۲ بایت؛ باید در پیکربندی همه کلاینتها یکسان باشد. برای غیرفعال کردن محافظت سرآیند خالی بگذارید.",
|
||
"contentPaddingAddition": "ContentPaddingAddition (پرکننده محتوا)",
|
||
"contentPaddingAdditionHint": "یک عدد صحیح یا بازه بایت که به بستههای محتوا افزوده میشود. برای غیرفعال کردن خالی بگذارید.",
|
||
"rekeyAfterTime": "RekeyAfterTime (ثانیه)",
|
||
"rekeyTimeout": "RekeyTimeout (ثانیه)",
|
||
"rejectAfterTime": "RejectAfterTime (ثانیه)",
|
||
"keepaliveTimeout": "KeepaliveTimeout (ثانیه)",
|
||
"maxHandshakeAttempts": "MaxHandshakeAttempts",
|
||
"timingRangeHint": "یک عدد صحیح یا یک بازه. برای استفاده از مقدار پیشفرض WireGuard خالی بگذارید.",
|
||
"maxHandshakeAttemptsHint": "تعداد تلاشهای دوباره دستدهی پیش از انصراف. برای مقدار پیشفرض خالی بگذارید.",
|
||
"randomTrailers": "RandomTrailers",
|
||
"randomTrailersHint": "به انتهای هر بسته بایتهای تصادفی میافزاید. هر دو طرف باید AmneziaWG 3.1+ باشند.",
|
||
"disableCookies": "DisableCookies",
|
||
"disableCookiesHint": "هرگز پاسخ کوکی ارسال نشود — اثر انگشت DPI را حذف میکند اما دفاع در برابر سیلآسا را ضعیف میکند."
|
||
},
|
||
"tun": {
|
||
"userLevel": "سطح کاربر"
|
||
}
|
||
},
|
||
"hosts": {
|
||
"addHost": "افزودن میزبان",
|
||
"editHost": "ویرایش میزبان",
|
||
"selectInbound": "یک اینباند انتخاب کنید",
|
||
"selectedCount": "{count} انتخابشده",
|
||
"summary": {
|
||
"total": "کل",
|
||
"enabled": "فعال",
|
||
"disabled": "غیرفعال"
|
||
},
|
||
"moveUp": "انتقال به بالا",
|
||
"moveDown": "انتقال به پایین",
|
||
"bulkEnable": "فعالسازی",
|
||
"bulkDisable": "غیرفعالسازی",
|
||
"bulkDelete": "حذف",
|
||
"bulkDeleteConfirm": "{count} میزبان انتخابشده حذف شود؟",
|
||
"deleteConfirmTitle": "میزبان «{name}» حذف شود؟",
|
||
"sections": {
|
||
"basic": "پایه",
|
||
"security": "امنیت",
|
||
"advanced": "پیشرفته",
|
||
"general": "عمومی",
|
||
"clash": "Clash (mihomo)"
|
||
},
|
||
"fields": {
|
||
"remark": "نام",
|
||
"serverDescription": "توضیحات",
|
||
"inbound": "اینباندها",
|
||
"address": "آدرس",
|
||
"port": "پورت",
|
||
"endpoint": "نقطه پایانی",
|
||
"enable": "فعال",
|
||
"actions": "عملیات",
|
||
"security": "امنیت",
|
||
"sni": "SNI",
|
||
"overrideSniFromAddress": "استفاده از آدرس بهعنوان SNI",
|
||
"keepSniBlank": "SNI خالی بماند",
|
||
"hostHeader": "هدر Host",
|
||
"path": "مسیر",
|
||
"alpn": "ALPN",
|
||
"fingerprint": "اثرانگشت",
|
||
"pins": "SHA-256 پینشدهٔ گواهی",
|
||
"verifyPeerCertByName": "بررسی گواهی همتا بر اساس نام",
|
||
"allowInsecure": "اجازهٔ اتصال ناامن",
|
||
"echConfigList": "فهرست پیکربندی ECH",
|
||
"muxParams": "Mux",
|
||
"sockoptParams": "Sockopt",
|
||
"finalMask": "ماسک نهایی",
|
||
"vlessRoute": "مسیر VLESS",
|
||
"mihomoIpVersion": "نسخه IP",
|
||
"mihomoX25519": "Mihomo X25519",
|
||
"shuffleHost": "درهمسازی میزبان",
|
||
"tags": "برچسبها",
|
||
"nodeGuids": "نودها",
|
||
"excludeFromSubTypes": "حذف از فرمتها",
|
||
"inheritAddress": "ارثبری آدرس"
|
||
},
|
||
"hints": {
|
||
"address": "برای ارثبری آدرس خودِ اینباند خالی بگذارید.",
|
||
"port": "مقدار ۰ پورت اینباند را به ارث میبرد.",
|
||
"tags": "برای کاربران نهایی قابل مشاهده نیست؛ فقط با اشتراک RAW ارسال میشود. تنها حروف بزرگ، ارقام، _ و : مجاز است.",
|
||
"nodeGuids": "نودهایی را که از این میزبان resolve میشوند انتخاب کنید. صرفاً انتساب نمایشی است.",
|
||
"serverDescription": "یادداشت اختیاری که زیر نام نمایش داده میشود.",
|
||
"allowInsecure": "رد کردن بررسی گواهی TLS (allowInsecure / skip-cert-verify).",
|
||
"vlessRoute": "یک مقدار مسیر VLESS (0 تا 65535) که در UUID جاسازی میشود، مثلاً 443. برای هیچکدام خالی بگذارید.",
|
||
"remark": "یک برچسب ساده برای این میزبان. تنها زمانی بهعنوان نام کانفیگ نمایش داده میشود که اینباند نام مخصوص خود را نداشته باشد."
|
||
},
|
||
"remarkVars": {
|
||
"title": "متغیرهای قالب",
|
||
"intro": "برای افزودن یک متغیر روی آن کلیک کنید. هنگام ساخت اشتراک، برای هر کاربر جایگزین میشود.",
|
||
"preview": "پیشنمایش",
|
||
"groups": {
|
||
"client": "کاربر",
|
||
"traffic": "ترافیک",
|
||
"time": "زمان و وضعیت",
|
||
"connection": "اتصال"
|
||
},
|
||
"descEMAIL": "ایمیل کاربر",
|
||
"descINBOUND": "نام خود اینباند (نام کانفیگ)",
|
||
"descHOST": "نام میزبان",
|
||
"descID": "UUID کاربر",
|
||
"descSHORT_ID": "۸ کاراکتر اول UUID",
|
||
"descTELEGRAM_ID": "شناسهٔ تلگرام کاربر (در صورت عدم تنظیم خالی)",
|
||
"descSUB_ID": "شناسهٔ اشتراک",
|
||
"descCOMMENT": "توضیحات کاربر",
|
||
"descTRAFFIC_USED": "ترافیک مصرفشده (قابل خواندن برای انسان)",
|
||
"descTRAFFIC_LEFT": "ترافیک باقیمانده (در صورت نامحدود بودن پنهان میشود)",
|
||
"descTRAFFIC_TOTAL": "ترافیک کل (در صورت نامحدود بودن پنهان میشود)",
|
||
"descTRAFFIC_USED_BYTES": "ترافیک مصرفشده به بایت",
|
||
"descTRAFFIC_LEFT_BYTES": "ترافیک باقیمانده به بایت",
|
||
"descTRAFFIC_TOTAL_BYTES": "ترافیک کل به بایت",
|
||
"descUP": "ترافیک آپلود",
|
||
"descDOWN": "ترافیک دانلود",
|
||
"descSTATUS": "فعال / منقضیشده / غیرفعال / مصرفشده",
|
||
"descSTATUS_EMOJI": "وضعیت بهصورت ایموجی (✅ ⏳ 🚫)",
|
||
"descDAYS_LEFT": "روزهای باقیمانده تا انقضا (در صورت نامحدود بودن پنهان میشود)",
|
||
"descTIME_LEFT": "زمان باقیمانده (مثلاً 12d 4h 30m)",
|
||
"descUSAGE_PERCENTAGE": "ترافیک مصرفشده به درصد (در صورت نامحدود بودن پنهان میشود)",
|
||
"descEXPIRE_DATE": "تاریخ انقضا (YYYY-MM-DD)",
|
||
"descJALALI_EXPIRE_DATE": "تاریخ انقضا در تقویم جلالی (YYYY/MM/DD)",
|
||
"descEXPIRE_UNIX": "انقضا بهصورت مهر زمانی Unix (ثانیه)",
|
||
"descCREATED_UNIX": "زمان ایجاد بهصورت مهر زمانی Unix (ثانیه)",
|
||
"descRESET_DAYS": "دورهٔ بازنشانی ترافیک به روز",
|
||
"descRESET_DAY": "روز ماه برای تمدید تقویمی",
|
||
"descPROTOCOL": "پروتکل اینباند (VLESS، VMess، Trojan، …)",
|
||
"descTRANSPORT": "شبکهٔ انتقال (tcp، ws، grpc، …)",
|
||
"descSECURITY": "امنیت انتقال (TLS، REALITY، NONE)"
|
||
},
|
||
"toasts": {
|
||
"list": "بارگذاری میزبانها ناموفق",
|
||
"obtain": "بارگذاری میزبان ناموفق",
|
||
"add": "افزودن میزبان",
|
||
"update": "بهروزرسانی میزبان",
|
||
"delete": "حذف میزبان",
|
||
"badTag": "برچسب نامعتبر",
|
||
"badVlessRoute": "یک عدد بین 0 تا 65535 وارد کنید"
|
||
}
|
||
}
|
||
},
|
||
"tgbot": {
|
||
"noIpRecord": "❗ رکورد آی پی وجود ندارد!",
|
||
"keyboardClosed": "❌ صفحه کلید بسته شد!",
|
||
"noResult": "❗ نتیجه ای یافت نشد!",
|
||
"noQuery": "❌ درخواست یافت نشد! لطفا دوباره تلاش کنید!",
|
||
"wentWrong": "❌ مشکلی پیش آمد!",
|
||
"noInbounds": "❗ هیچ ورودی یافت نشد!",
|
||
"unlimited": "♾ نامحدود(ریست)",
|
||
"add": "افزودن",
|
||
"month": "ماه",
|
||
"months": "ماه",
|
||
"days": "روز",
|
||
"hours": "ساعت",
|
||
"minutes": "دقیقه",
|
||
"unknown": "نامشخص",
|
||
"inbounds": "ورودیها",
|
||
"clients": "کاربران",
|
||
"offline": "🔴 آفلاین",
|
||
"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>",
|
||
"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": "🔚 فرآیند بازنشانی ترافیک برای همه مشتریان به پایان رسید.",
|
||
"eventErrorDetail": "خطا: {{ .Error }}",
|
||
"eventDelayDetail": "تأخیر: {{ .Delay }} میلیثانیه",
|
||
"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": "یک ورودی انتخاب کنید"
|
||
}
|
||
}
|
||
}
|