Skip to content

Bug Fixes and Improvements in Host Management #1758

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Apr 17, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
114 changes: 103 additions & 11 deletions dashboard/public/statics/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,10 @@
"cMaxReuseTimes": "Max Reuse Times",
"cMaxLifetime": "Max Lifetime",
"hMaxRequestTimes": "Max Request Times",
"hKeepAlivePeriod": "Keep Alive Period"
"hKeepAlivePeriod": "Keep Alive Period",
"downloadSettings": "Download Settings",
"downloadSettingsInfo": "Select a host to use for download settings",
"selectDownloadSettings": "Select download settings host"
},
"grpc": {
"multiMode": "Multi Mode",
Expand All @@ -218,14 +221,27 @@
"writeBufferSize": "Write Buffer Size"
},
"tcp": {
"header": "Header",
"request": "Request",
"version": "Version",
"headers": "Headers",
"method": "Method",
"response": "Response",
"status": "Status",
"reason": "Reason"
"title": "TCP Settings",
"header": "Header Type",
"request": {
"title": "Request Settings",
"version": "HTTP Version",
"method": "HTTP Method",
"headers": "Request Headers"
},
"response": {
"title": "Response Settings",
"version": "HTTP Version",
"status": "Status Code",
"reason": "Status Reason",
"headers": "Response Headers"
},
"headerName": "Header Name",
"headerValue": "Header Value",
"addHeader": "Add Header",
"removeHeader": "Remove Header",
"requestHeaders": "Request Headers",
"responseHeaders": "Response Headers"
},
"websocket": {
"heartbeatPeriod": "Heartbeat Period"
Expand Down Expand Up @@ -314,7 +330,79 @@
"host.multiHost": "To set multiple addresses, separate them with <badge>,</badge>. A random address will be selected each time.",
"host.wildcard": "Use <badge>*</badge> to generate a random string (works for wildcard domains)",
"sni.info": "SNI (Server Name Indication) is used to specify which hostname the client is trying to connect to. This is particularly useful when you have multiple domains pointing to the same IP address.",
"useSniAsHost": "Use SNI as Host"
"useSniAsHost": "Use SNI as Host",
"httpVersions": {
"1.0": "HTTP/1.0",
"1.1": "HTTP/1.1",
"2.0": "HTTP/2.0",
"3.0": "HTTP/3.0"
},
"httpMethods": {
"GET": "GET",
"POST": "POST",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD",
"OPTIONS": "OPTIONS",
"PATCH": "PATCH",
"TRACE": "TRACE",
"CONNECT": "CONNECT"
},
"httpReasons": {
"100": "Continue",
"101": "Switching Protocols",
"200": "OK",
"201": "Created",
"202": "Accepted",
"203": "Non-Authoritative Information",
"204": "No Content",
"205": "Reset Content",
"206": "Partial Content",
"300": "Multiple Choices",
"301": "Moved Permanently",
"302": "Found",
"303": "See Other",
"304": "Not Modified",
"305": "Use Proxy",
"307": "Temporary Redirect",
"308": "Permanent Redirect",
"400": "Bad Request",
"401": "Unauthorized",
"402": "Payment Required",
"403": "Forbidden",
"404": "Not Found",
"405": "Method Not Allowed",
"406": "Not Acceptable",
"407": "Proxy Authentication Required",
"408": "Request Timeout",
"409": "Conflict",
"410": "Gone",
"411": "Length Required",
"412": "Precondition Failed",
"413": "Payload Too Large",
"414": "URI Too Long",
"415": "Unsupported Media Type",
"416": "Range Not Satisfiable",
"417": "Expectation Failed",
"418": "I'm a teapot",
"421": "Misdirected Request",
"422": "Unprocessable Entity",
"423": "Locked",
"424": "Failed Dependency",
"425": "Too Early",
"426": "Upgrade Required",
"428": "Precondition Required",
"429": "Too Many Requests",
"431": "Request Header Fields Too Large",
"451": "Unavailable For Legal Reasons",
"500": "Internal Server Error",
"501": "Not Implemented",
"502": "Bad Gateway",
"503": "Service Unavailable",
"504": "Gateway Timeout",
"505": "HTTP Version Not Supported"
},
"selectReason": "Select Reason"
},
"inbound": "Inbound",
"remark": "Host Name",
Expand Down Expand Up @@ -441,7 +529,11 @@
"disableSuccess": "Host «{{name}}» has been disabled successfully",
"disableFailed": "Failed to disable host «{{name}}»",
"duplicateSuccess": "Host «{{name}}» has been duplicated successfully",
"duplicateFailed": "Failed to duplicate host «{{name}}»"
"duplicateFailed": "Failed to duplicate host «{{name}}»",
"xudp_proxy_443": "XUDP Proxy 443",
"reject": "Reject",
"allow": "Allow",
"skip": "Skip"
},
"usersTable.sortByExpire": "Sort by expiry time",
"dateInfo.day": " day",
Expand Down
130 changes: 111 additions & 19 deletions dashboard/public/statics/locales/fa.json
Original file line number Diff line number Diff line change
Expand Up @@ -159,14 +159,17 @@
"scMaxEachPostBytes": "حداکثر بایت هر پست",
"scMinPostsIntervalMs": "حداقل فاصله پست‌ها (میلی‌ثانیه)",
"scMaxBufferedPosts": "حداکثر پست‌های بافر شده",
"scStreamUpServerSecs": "جریان بالا سرور (ثانیه)",
"scStreamUpServerSecs": "سرور استریم بالا (ثانیه)",
"xmux": "تنظیمات XMux",
"maxConcurrency": "حداکثر هم‌زمانی",
"maxConcurrency": "حداکثر همزمانی",
"maxConnections": "حداکثر اتصالات",
"cMaxReuseTimes": "حداکثر دفعات استفاده مجدد",
"cMaxLifetime": "حداکثر طول عمر",
"hMaxRequestTimes": "حداکثر زمان‌های درخواست",
"hKeepAlivePeriod": "دوره نگهداری اتصال"
"hMaxRequestTimes": "حداکثر دفعات درخواست",
"hKeepAlivePeriod": "دوره نگهداری اتصال",
"downloadSettings": "تنظیمات دانلود",
"downloadSettingsInfo": "انتخاب هاست برای تنظیمات دانلود",
"selectDownloadSettings": "انتخاب هاست تنظیمات دانلود"
},
"grpc": {
"multiMode": "حالت چندگانه",
Expand All @@ -186,14 +189,27 @@
"writeBufferSize": "اندازه بافر نوشتن"
},
"tcp": {
"header": "هدر",
"request": "درخواست",
"version": "نسخه",
"headers": "هدرها",
"method": "متد",
"response": "پاسخ",
"status": "وضعیت",
"reason": "دلیل"
"title": "تنظیمات TCP",
"header": "نوع هدر",
"request": {
"title": "تنظیمات درخواست",
"version": "نسخه HTTP",
"method": "متد HTTP",
"headers": "هدرهای درخواست"
},
"response": {
"title": "تنظیمات پاسخ",
"version": "نسخه HTTP",
"status": "کد وضعیت",
"reason": "دلیل وضعیت",
"headers": "هدرهای پاسخ"
},
"headerName": "نام هدر",
"headerValue": "مقدار هدر",
"addHeader": "افزودن هدر",
"removeHeader": "حذف هدر",
"requestHeaders": "هدرهای درخواست",
"responseHeaders": "هدرهای پاسخ"
},
"websocket": {
"heartbeatPeriod": "دوره ضربان قلب"
Expand Down Expand Up @@ -274,7 +290,79 @@
"port.info": "به طور پیش‌فرض، هاست از پورت اعلام شده در ورودی استفاده می‌کند. اگر ترافیک از پورت دیگری هدایت می‌شود، می‌توانید پورت سفارشی تنظیم کنید. به عنوان مثال، سرور ممکن است ترافیک را از پورت 443 به پورت پیش‌فرض ورودی شما هدایت کند.",
"proxyOutbound.info": "ترافیک خروجی اضافی (فقط در پیکربندی سفارشی v2ray)",
"security.info": "اگر سرور واسط این هاست از لایه امنیتی متفاوتی نسبت به پیش‌فرض ورودی شما استفاده می‌کند، می‌توانید لایه امنیتی سفارشی را اینجا تنظیم کنید.",
"useSniAsHost": "استفاده از SNI به عنوان هاست"
"useSniAsHost": "استفاده از SNI به عنوان هاست",
"httpVersions": {
"1.0": "HTTP/1.0",
"1.1": "HTTP/1.1",
"2.0": "HTTP/2.0",
"3.0": "HTTP/3.0"
},
"httpMethods": {
"GET": "GET",
"POST": "POST",
"PUT": "PUT",
"DELETE": "DELETE",
"HEAD": "HEAD",
"OPTIONS": "OPTIONS",
"PATCH": "PATCH",
"TRACE": "TRACE",
"CONNECT": "CONNECT"
},
"httpReasons": {
"100": "ادامه",
"101": "تغییر پروتکل",
"200": "موفق",
"201": "ایجاد شد",
"202": "پذیرفته شد",
"203": "اطلاعات غیرمجاز",
"204": "بدون محتوا",
"205": "بازنشانی محتوا",
"206": "محتوی جزئی",
"300": "انتخاب چندگانه",
"301": "انتقال دائمی",
"302": "پیدا شد",
"303": "مشاهده مکان دیگر",
"304": "تغییر نکرده",
"305": "استفاده از پراکسی",
"307": "انتقال موقت",
"308": "انتقال دائمی",
"400": "درخواست نامعتبر",
"401": "غیرمجاز",
"402": "نیاز به پرداخت",
"403": "ممنوع",
"404": "پیدا نشد",
"405": "متد مجاز نیست",
"406": "قابل قبول نیست",
"407": "نیاز به احراز هویت پراکسی",
"408": "زمان درخواست به پایان رسید",
"409": "تضاد",
"410": "حذف شده",
"411": "نیاز به طول",
"412": "شرط اولیه برقرار نیست",
"413": "بار درخواست خیلی بزرگ است",
"414": "URI خیلی طولانی است",
"415": "نوع رسانه پشتیبانی نمی‌شود",
"416": "محدوده درخواست قابل اجرا نیست",
"417": "انتظار برآورده نشد",
"418": "من یک قوری هستم",
"421": "درخواست اشتباه",
"422": "موجودیت غیرقابل پردازش",
"423": "قفل شده",
"424": "وابستگی شکست خورده",
"425": "خیلی زود",
"426": "نیاز به ارتقا",
"428": "نیاز به شرط اولیه",
"429": "درخواست‌های خیلی زیاد",
"431": "فیلدهای هدر درخواست خیلی بزرگ هستند",
"451": "به دلایل قانونی در دسترس نیست",
"500": "خطای داخلی سرور",
"501": "پیاده‌سازی نشده",
"502": "درگاه نامعتبر",
"503": "سرویس در دسترس نیست",
"504": "زمان درگاه به پایان رسید",
"505": "نسخه HTTP پشتیبانی نمی‌شود"
},
"selectReason": "انتخاب دلیل"
},
"inbound": "ورودی",
"remark": "اسم هاست",
Expand Down Expand Up @@ -399,12 +487,16 @@
"enable": "فعالسازی",
"editHost.title": "ویرایش هاست",
"host": {
"enableSuccess": "هاست «{{name}}» با موفقیت فعال شد",
"enableFailed": "فعال‌سازی هاست «{{name}}» با خطا مواجه شد",
"disableSuccess": "هاست «{{name}}» با موفقیت غیرفعال شد",
"disableFailed": "غیرفعال‌سازی هاست «{{name}}» با خطا مواجه شد",
"duplicateSuccess": "هاست «{{name}}» با موفقیت کپی شد",
"duplicateFailed": "کپی‌سازی هاست «{{name}}» با خطا مواجه شد"
"enableSuccess": "میزبان «{{name}}» با موفقیت فعال شد",
"enableFailed": "فعال کردن میزبان «{{name}}» با شکست مواجه شد",
"disableSuccess": "میزبان «{{name}}» با موفقیت غیرفعال شد",
"disableFailed": "غیرفعال کردن میزبان «{{name}}» با شکست مواجه شد",
"duplicateSuccess": "میزبان «{{name}}» با موفقیت کپی شد",
"duplicateFailed": "کپی کردن میزبان «{{name}}» با شکست مواجه شد",
"xudp_proxy_443": "پراکسی XUDP 443",
"reject": "رد کردن",
"allow": "اجازه دادن",
"skip": "رد شدن"
},
"usersTable.sortByExpire": "مرتب‌سازی بر اساس زمان انقضا",
"group": {
Expand Down
Loading