+ [[ client.email ]]
+ [[ client.comment ]]
+ |
+ ||
[[ client.email ]] | +||
{{ i18n "pages.inbounds.traffic" }} | Password | |
---|---|---|
[[ client.email ]] | +
+
+
+ [[ client.email ]]
+ [[ client.comment ]]
+ |
[[ client.password ]] |
[[ clientEmail ]]
+[[ clientEmail ]]
+[[ clientEmail ]]
+[[ clientEmail ]]
+
- [[ client.email ]]
- [[ client.comment ]]
- |
- ||
[[ client.email ]] | -||
{{ i18n "pages.inbounds.traffic" }} | Password | |
---|---|---|
-
-
- [[ client.email ]]
- [[ client.comment ]]
- |
+ [[ client.email ]] | [[ client.password ]] |
↑[[ SizeFormatter.sizeFormat(dbInbound.up) ]] | -↓[[ SizeFormatter.sizeFormat(dbInbound.down) ]] | -
{{ i18n "remained" }} | -[[ SizeFormatter.sizeFormat(dbInbound.total - dbInbound.up - dbInbound.down) ]] | -
↑[[ SizeFormatter.sizeFormat(dbInbound.up) ]] | +↓[[ SizeFormatter.sizeFormat(dbInbound.down) ]] | +
{{ i18n "remained" }} | +[[ SizeFormatter.sizeFormat(dbInbound.total - dbInbound.up - dbInbound.down) ]] | +
{{ i18n "pages.inbounds.protocol" }} | -
- |
- ||||||||||||||||||||
{{ i18n "pages.inbounds.port" }} | -|||||||||||||||||||||
{{ i18n "clients" }} | -
-
- [[ clientEmail ]]
-
-
-
- [[ clientEmail ]]
-
-
-
- [[ clientEmail ]]
-
-
-
- [[ clientEmail ]]
-
-
- |
- ||||||||||||||||||||
{{ i18n "pages.inbounds.traffic" }} | -
-
|
+
{{ .ID }}
"
-"helpAdminCommands" = "🔃 Для перезапуска Xray Core:\r\n/restart
\r\n\r\n🔎 Для поиска клиента по email:\r\n/usage [Email]
\r\n\r\n📊 Для поиска подключений (со статистикой клиентов):\r\n/inbound [имя подключения]
\r\n\r\n🆔 Ваш Telegram User ID:\r\n/id
"
+"helpAdminCommands" = "🔃 Для перезапуска Xray Core:\r\n/restart
\r\n\r\n🔎 Для поиска клиента по email:\r\n/usage [Email]
\r\n\r\n📊 Для поиска инбаундов (со статистикой клиентов):\r\n/inbound [имя подключения]
\r\n\r\n🆔 Ваш Telegram User ID:\r\n/id
"
"helpClientCommands" = "💲 Для просмотра информации о вашей подписке используйте команду:\r\n/usage [Email]
\r\n\r\n🆔 Ваш Telegram User ID:\r\n/id
"
"restartUsage" = "\r\n\r\n/restart
"
"restartSuccess" = "✅ Ядро Xray успешно перезапущено."
@@ -653,8 +653,8 @@
"pass_prompt" = "🔑 Стандартный пароль: {{ .ClientPassword }}\n\nВведите ваш пароль."
"email_prompt" = "📧 Стандартный email: {{ .ClientEmail }}\n\nВведите ваш email."
"comment_prompt" = "💬 Стандартный комментарий: {{ .ClientComment }}\n\nВведите ваш комментарий."
-"inbound_client_data_id" = "🔄 Подключения: {{ .InboundRemark }}\n\n🔑 ID: {{ .ClientId }}\n📧 Email: {{ .ClientEmail }}\n📊 Трафик: {{ .ClientTraffic }}\n📅 Дата исчерпания: {{ .ClientExp }}\n💬 Комментарий: {{ .ClientComment }}\n\nТеперь вы можете добавить клиента в подключение!"
-"inbound_client_data_pass" = "🔄 Подключения: {{ .InboundRemark }}\n\n🔑 Пароль: {{ .ClientPass }}\n📧 Email: {{ .ClientEmail }}\n📊 Трафик: {{ .ClientTraffic }}\n📅 Дата исчерпания: {{ .ClientExp }}\n💬 Комментарий: {{ .ClientComment }}\n\nТеперь вы можете добавить клиента в подключение!"
+"inbound_client_data_id" = "🔄 Инбаунды: {{ .InboundRemark }}\n\n🔑 ID: {{ .ClientId }}\n📧 Email: {{ .ClientEmail }}\n📊 Трафик: {{ .ClientTraffic }}\n📅 Дата исчерпания: {{ .ClientExp }}\n💬 Комментарий: {{ .ClientComment }}\n\nТеперь вы можете добавить клиента в инбаунд!"
+"inbound_client_data_pass" = "🔄 Инбаунды: {{ .InboundRemark }}\n\n🔑 Пароль: {{ .ClientPass }}\n📧 Email: {{ .ClientEmail }}\n📊 Трафик: {{ .ClientTraffic }}\n📅 Дата исчерпания: {{ .ClientExp }}\n💬 Комментарий: {{ .ClientComment }}\n\nТеперь вы можете добавить клиента в инбаунд!"
"cancel" = "❌ Процесс отменён! \n\nВы можете снова начать с /start в любое время. 🔄"
"error_add_client" = "⚠️ Ошибка:\n\n {{ .error }}"
"using_default_value" = "Используется значение по умолчанию👌"
@@ -676,7 +676,7 @@
"confirmToggle" = "✅ Подтвердить вкл/выкл пользователя?"
"dbBackup" = "📂 Бэкап БД"
"serverUsage" = "💻 Состояние сервера"
-"getInbounds" = "🔌 Подключения"
+"getInbounds" = "🔌 Инбаунды"
"depleteSoon" = "⚠️ Скоро конец"
"clientUsage" = "Статистика клиента"
"onlines" = "🟢 Онлайн"
@@ -714,7 +714,7 @@
[tgbot.answers]
"successfulOperation" = "✅ Успешно!"
"errorOperation" = "❗ Ошибка в операции."
-"getInboundsFailed" = "❌ Не удалось получить подключения."
+"getInboundsFailed" = "❌ Не удалось получить инбаунды."
"getClientsFailed" = "❌ Не удалось получить клиентов."
"canceled" = "❌ {{ .Email }}: Операция отменена."
"clientRefreshSuccess" = "✅ {{ .Email }}: Клиент успешно обновлен."
@@ -731,5 +731,5 @@
"enableSuccess" = "✅ {{ .Email }}: Включено успешно."
"disableSuccess" = "✅ {{ .Email }}: Отключено успешно."
"askToAddUserId" = "❌ Ваша конфигурация не найдена!\r\n💭 Пожалуйста, попросите администратора использовать ваш Telegram User ID в конфигурации.\r\n\r\n🆔 Ваш User ID: {{ .TgUserID }}
"
-"chooseClient" = "Выберите клиента для подключения {{ .Inbound }}"
-"chooseInbound" = "Выберите подключение"
+"chooseClient" = "Выберите клиента для инбаунда {{ .Inbound }}"
+"chooseInbound" = "Выберите инбаунд"
From 49b8f46864ca21c19eba8733cc2b9d34f806035f Mon Sep 17 00:00:00 2001
From: "Shishkevich D." <135337715+shishkevichd@users.noreply.github.com>
Date: Wed, 25 Jun 2025 00:30:08 +0700
Subject: [PATCH 7/8] fix: selecting a supported language
english could be selected by default at first load, even if the user's language was supported by the panel
---
web/assets/js/util/index.js | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/web/assets/js/util/index.js b/web/assets/js/util/index.js
index c40e02c4..4bf760d7 100644
--- a/web/assets/js/util/index.js
+++ b/web/assets/js/util/index.js
@@ -795,6 +795,25 @@ class LanguageManager {
if (window.navigator) {
lang = window.navigator.language || window.navigator.userLanguage;
+ const simularLangs = [
+ ["ar", this.supportedLanguages[0].value],
+ ["fa", this.supportedLanguages[2].value],
+ ["ja", this.supportedLanguages[5].value],
+ ["ru", this.supportedLanguages[6].value],
+ ["vi", this.supportedLanguages[7].value],
+ ["es", this.supportedLanguages[8].value],
+ ["id", this.supportedLanguages[9].value],
+ ["uk", this.supportedLanguages[10].value],
+ ["tr", this.supportedLanguages[11].value],
+ ["pt", this.supportedLanguages[12].value],
+ ]
+
+ simularLangs.forEach((pair) => {
+ if (lang === pair[0]) {
+ lang = pair[1];
+ }
+ });
+
if (LanguageManager.isSupportLanguage(lang)) {
CookieManager.setCookie("lang", lang, 150);
} else {
From c8c0e77714e294e02fe847c7851092484387b615 Mon Sep 17 00:00:00 2001
From: "Shishkevich D." <135337715+shishkevichd@users.noreply.github.com>
Date: Wed, 25 Jun 2025 00:38:03 +0700
Subject: [PATCH 8/8] chore: mark `2053` port as unsecured
---
web/html/settings.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/web/html/settings.html b/web/html/settings.html
index 840778f5..1c55ea81 100644
--- a/web/html/settings.html
+++ b/web/html/settings.html
@@ -548,7 +548,7 @@
if (!this.allSetting) return [];
var alerts = []
if (window.location.protocol !== "https:") alerts.push('{{ i18n "secAlertSSL" }}');
- if (this.allSetting.webPort == 54321) alerts.push('{{ i18n "secAlertPanelPort" }}');
+ if (this.allSetting.webPort === 2053) alerts.push('{{ i18n "secAlertPanelPort" }}');
panelPath = window.location.pathname.split('/').length < 4
if (panelPath && this.allSetting.webBasePath == '/') alerts.push('{{ i18n "secAlertPanelURI" }}');
if (this.allSetting.subEnable) {