From 99f26be30d5f35fd6af114528c3f6e13643b3bef Mon Sep 17 00:00:00 2001
From: "Shishkevich D." <135337715+shishkevichd@users.noreply.github.com>
Date: Wed, 5 Mar 2025 19:27:25 +0700
Subject: [PATCH] feat: add statistics section (#2718)
the "Outbounds Traffic" parameter, which was misleading, was also renamed and moved
---
web/html/xui/xray.html | 45 ++++++++++++++++++++++++++--
web/translation/translate.en_US.toml | 11 +++++--
web/translation/translate.es_ES.toml | 11 +++++--
web/translation/translate.fa_IR.toml | 11 +++++--
web/translation/translate.id_ID.toml | 11 +++++--
web/translation/translate.ja_JP.toml | 11 +++++--
web/translation/translate.pt_BR.toml | 11 +++++--
web/translation/translate.ru_RU.toml | 11 +++++--
web/translation/translate.tr_TR.toml | 11 +++++--
web/translation/translate.uk_UA.toml | 11 +++++--
web/translation/translate.vi_VN.toml | 11 +++++--
web/translation/translate.zh_CN.toml | 11 +++++--
web/translation/translate.zh_TW.toml | 11 +++++--
13 files changed, 150 insertions(+), 27 deletions(-)
diff --git a/web/html/xui/xray.html b/web/html/xui/xray.html
index 3a078eee..45ab621f 100644
--- a/web/html/xui/xray.html
+++ b/web/html/xui/xray.html
@@ -143,7 +143,14 @@
-
+
+
+
+
+
+
+
+
@@ -1882,7 +1889,40 @@
this.templateSettings = newTemplateSettings;
}
},
- outboundTraffic: {
+ statsInboundUplink: {
+ get: function () {
+ if (!this.templateSettings || !this.templateSettings.policy.system || !this.templateSettings.policy.system.statsInboundUplink) return false;
+ return this.templateSettings.policy.system.statsInboundUplink;
+ },
+ set: function (newValue) {
+ newTemplateSettings = this.templateSettings;
+ newTemplateSettings.policy.system.statsInboundUplink = newValue;
+ this.templateSettings = newTemplateSettings;
+ }
+ },
+ statsInboundDownlink: {
+ get: function () {
+ if (!this.templateSettings || !this.templateSettings.policy.system || !this.templateSettings.policy.system.statsInboundDownlink) return false;
+ return this.templateSettings.policy.system.statsInboundDownlink;
+ },
+ set: function (newValue) {
+ newTemplateSettings = this.templateSettings;
+ newTemplateSettings.policy.system.statsInboundDownlink = newValue;
+ this.templateSettings = newTemplateSettings;
+ }
+ },
+ statsOutboundUplink: {
+ get: function () {
+ if (!this.templateSettings || !this.templateSettings.policy.system || !this.templateSettings.policy.system.statsOutboundUplink) return false;
+ return this.templateSettings.policy.system.statsOutboundUplink;
+ },
+ set: function (newValue) {
+ newTemplateSettings = this.templateSettings;
+ newTemplateSettings.policy.system.statsOutboundUplink = newValue;
+ this.templateSettings = newTemplateSettings;
+ }
+ },
+ statsOutboundDownlink: {
get: function () {
if (!this.templateSettings || !this.templateSettings.policy.system || !this.templateSettings.policy.system.statsOutboundDownlink) return false;
return this.templateSettings.policy.system.statsOutboundDownlink;
@@ -1890,7 +1930,6 @@
set: function (newValue) {
newTemplateSettings = this.templateSettings;
newTemplateSettings.policy.system.statsOutboundDownlink = newValue;
- newTemplateSettings.policy.system.statsOutboundUplink = newValue;
this.templateSettings = newTemplateSettings;
}
},
diff --git a/web/translation/translate.en_US.toml b/web/translation/translate.en_US.toml
index 885c01bb..46dc6d3f 100644
--- a/web/translation/translate.en_US.toml
+++ b/web/translation/translate.en_US.toml
@@ -372,10 +372,17 @@
"errorLogDesc" = "The file path for the error log. The special value 'none' disabled error logs"
"dnsLog" = "DNS Log"
"dnsLogDesc" = "Whether to enable DNS query logs"
-"outboundTraffic" = "Outbounds Traffic"
-"outboundTrafficDesc" = "Whether to enable outbound traffic"
"maskAddress" = "Mask Address"
"maskAddressDesc" = "IP address mask, when enabled, will automatically replace the IP address that appears in the log."
+"statistics" = "Statistics"
+"statsInboundUplink" = "Inbound Upload Statistics"
+"statsInboundUplinkDesc" = "Enables the statistics collection for upstream traffic of all inbound proxies."
+"statsInboundDownlink" = "Inbound Download Statistics"
+"statsInboundDownlinkDesc" = "Enables the statistics collection for downstream traffic of all inbound proxies."
+"statsOutboundUplink" = "Outbound Upload Statistics"
+"statsOutboundUplinkDesc" = "Enables the statistics collection for upstream traffic of all outbound proxies."
+"statsOutboundDownlink" = "Outbound Download Statistics"
+"statsOutboundDownlinkDesc" = "Enables the statistics collection for downstream traffic of all outbound proxies."
[pages.xray.rules]
"first" = "First"
diff --git a/web/translation/translate.es_ES.toml b/web/translation/translate.es_ES.toml
index 1268ae8c..171f0a69 100644
--- a/web/translation/translate.es_ES.toml
+++ b/web/translation/translate.es_ES.toml
@@ -372,10 +372,17 @@
"errorLogDesc" = "La ruta del archivo para el registro de errores. El valor especial 'none' desactiva los registros de errores."
"dnsLog" = "Registro DNS"
"dnsLogDesc" = "Si habilitar los registros de consulta DNS"
-"outboundTraffic" = "Tráfico saliente"
-"outboundTrafficDesc" = "Si se debe habilitar el tráfico saliente"
"maskAddress" = "Enmascarar Dirección"
"maskAddressDesc" = "Máscara de dirección IP, cuando se habilita, reemplazará automáticamente la dirección IP que aparece en el registro."
+"statistics" = "Estadísticas"
+"statsInboundUplink" = "Estadísticas de Subida de Entrada"
+"statsInboundUplinkDesc" = "Habilita la recopilación de estadísticas para el tráfico ascendente de todos los proxies de entrada."
+"statsInboundDownlink" = "Estadísticas de Bajada de Entrada"
+"statsInboundDownlinkDesc" = "Habilita la recopilación de estadísticas para el tráfico descendente de todos los proxies de entrada."
+"statsOutboundUplink" = "Estadísticas de Subida de Salida"
+"statsOutboundUplinkDesc" = "Habilita la recopilación de estadísticas para el tráfico ascendente de todos los proxies de salida."
+"statsOutboundDownlink" = "Estadísticas de Bajada de Salida"
+"statsOutboundDownlinkDesc" = "Habilita la recopilación de estadísticas para el tráfico descendente de todos los proxies de salida."
[pages.xray.rules]
"first" = "Primero"
diff --git a/web/translation/translate.fa_IR.toml b/web/translation/translate.fa_IR.toml
index 2c171d9a..ed4f69df 100644
--- a/web/translation/translate.fa_IR.toml
+++ b/web/translation/translate.fa_IR.toml
@@ -372,10 +372,17 @@
"errorLogDesc" = "مسیر فایل برای ورود به سیستم خطا. مقدار ویژه «هیچ» گزارش های خطا را غیرفعال میکند"
"dnsLog" = "گزارش DNS"
"dnsLogDesc" = "آیا ثبتهای درخواست DNS را فعال کنید"
-"outboundTraffic" = "ترافیک خروجی"
-"outboundTrafficDesc" = "فعال کردن ترافیک خروجی"
"maskAddress" = "پنهان کردن آدرس"
"maskAddressDesc" = "پوشش آدرس IP، هنگامی که فعال میشود، به طور خودکار آدرس IP که در لاگ ظاهر میشود را جایگزین میکند."
+"statistics" = "آمار"
+"statsInboundUplink" = "آمار آپلود ورودی"
+"statsInboundUplinkDesc" = "جمعآوری آمار برای ترافیک بالارو (آپلود) تمام پروکسیهای ورودی را فعال میکند."
+"statsInboundDownlink" = "آمار دانلود ورودی"
+"statsInboundDownlinkDesc" = "جمعآوری آمار برای ترافیک پایینرو (دانلود) تمام پروکسیهای ورودی را فعال میکند."
+"statsOutboundUplink" = "آمار آپلود خروجی"
+"statsOutboundUplinkDesc" = "جمعآوری آمار برای ترافیک بالارو (آپلود) تمام پروکسیهای خروجی را فعال میکند."
+"statsOutboundDownlink" = "آمار دانلود خروجی"
+"statsOutboundDownlinkDesc" = "جمعآوری آمار برای ترافیک پایینرو (دانلود) تمام پروکسیهای خروجی را فعال میکند."
[pages.xray.rules]
"first" = "اولین"
diff --git a/web/translation/translate.id_ID.toml b/web/translation/translate.id_ID.toml
index 4ea8e16d..de9c1f64 100644
--- a/web/translation/translate.id_ID.toml
+++ b/web/translation/translate.id_ID.toml
@@ -371,10 +371,17 @@
"errorLogDesc" = "Jalur file untuk log kesalahan. Nilai khusus 'tidak ada' menonaktifkan log kesalahan"
"dnsLog" = "Log DNS"
"dnsLogDesc" = "Apakah akan mengaktifkan log kueri DNS"
-"outboundTraffic" = "Lalu Lintas Keluar"
-"outboundTrafficDesc" = "Apakah mengaktifkan lalu lintas keluar"
"maskAddress" = "Alamat Masker"
"maskAddressDesc" = "Masker alamat IP, ketika diaktifkan, akan secara otomatis mengganti alamat IP yang muncul di log."
+"statistics" = "Statistik"
+"statsInboundUplink" = "Statistik Unggah Masuk"
+"statsInboundUplinkDesc" = "Mengaktifkan pengumpulan statistik untuk lalu lintas unggah dari semua proxy masuk."
+"statsInboundDownlink" = "Statistik Unduh Masuk"
+"statsInboundDownlinkDesc" = "Mengaktifkan pengumpulan statistik untuk lalu lintas unduh dari semua proxy masuk."
+"statsOutboundUplink" = "Statistik Unggah Keluar"
+"statsOutboundUplinkDesc" = "Mengaktifkan pengumpulan statistik untuk lalu lintas unggah dari semua proxy keluar."
+"statsOutboundDownlink" = "Statistik Unduh Keluar"
+"statsOutboundDownlinkDesc" = "Mengaktifkan pengumpulan statistik untuk lalu lintas unduh dari semua proxy keluar."
[pages.xray.rules]
"first" = "Pertama"
diff --git a/web/translation/translate.ja_JP.toml b/web/translation/translate.ja_JP.toml
index 01d340af..7e9208fb 100644
--- a/web/translation/translate.ja_JP.toml
+++ b/web/translation/translate.ja_JP.toml
@@ -372,10 +372,17 @@
"errorLogDesc" = "エラーログのファイルパス。特殊値 'none' はエラーログを無効にします"
"dnsLog" = "DNS ログ"
"dnsLogDesc" = "DNSクエリのログを有効にするかどうか"
-"outboundTraffic" = "アウトバウンドトラフィック"
-"outboundTrafficDesc" = "アウトバウンドトラフィックを有効にするかどうか"
"maskAddress" = "アドレスをマスク"
"maskAddressDesc" = "IPアドレスをマスクし、有効にするとログに表示されるIPアドレスを自動的に置き換えます"
+"statistics" = "統計"
+"statsInboundUplink" = "インバウンドアップロード統計"
+"statsInboundUplinkDesc" = "すべてのインバウンドプロキシのアップストリームトラフィックの統計収集を有効にします。"
+"statsInboundDownlink" = "インバウンドダウンロード統計"
+"statsInboundDownlinkDesc" = "すべてのインバウンドプロキシのダウンストリームトラフィックの統計収集を有効にします。"
+"statsOutboundUplink" = "アウトバウンドアップロード統計"
+"statsOutboundUplinkDesc" = "すべてのアウトバウンドプロキシのアップストリームトラフィックの統計収集を有効にします。"
+"statsOutboundDownlink" = "アウトバウンドダウンロード統計"
+"statsOutboundDownlinkDesc" = "すべてのアウトバウンドプロキシのダウンストリームトラフィックの統計収集を有効にします。"
[pages.xray.rules]
"first" = "最初"
diff --git a/web/translation/translate.pt_BR.toml b/web/translation/translate.pt_BR.toml
index 8da4a852..362a87ed 100644
--- a/web/translation/translate.pt_BR.toml
+++ b/web/translation/translate.pt_BR.toml
@@ -372,10 +372,17 @@
"errorLogDesc" = "O caminho do arquivo para o log de erros. O valor especial 'none' desativa os logs de erro."
"dnsLog" = "Log DNS"
"dnsLogDesc" = "Se ativar logs de consulta DNS"
-"outboundTraffic" = "Tráfego de saída"
-"outboundTrafficDesc" = "Se deve habilitar o tráfego de saída"
"maskAddress" = "Mascarar Endereço"
"maskAddressDesc" = "Máscara de endereço IP, quando ativado, substitui automaticamente o endereço IP que aparece no log."
+"statistics" = "Estatísticas"
+"statsInboundUplink" = "Estatísticas de Upload de Entrada"
+"statsInboundUplinkDesc" = "Habilita a coleta de estatísticas para o tráfego de upload de todos os proxies de entrada."
+"statsInboundDownlink" = "Estatísticas de Download de Entrada"
+"statsInboundDownlinkDesc" = "Habilita a coleta de estatísticas para o tráfego de download de todos os proxies de entrada."
+"statsOutboundUplink" = "Estatísticas de Upload de Saída"
+"statsOutboundUplinkDesc" = "Habilita a coleta de estatísticas para o tráfego de upload de todos os proxies de saída."
+"statsOutboundDownlink" = "Estatísticas de Download de Saída"
+"statsOutboundDownlinkDesc" = "Habilita a coleta de estatísticas para o tráfego de download de todos os proxies de saída."
[pages.xray.rules]
"first" = "Primeiro"
diff --git a/web/translation/translate.ru_RU.toml b/web/translation/translate.ru_RU.toml
index 1988b1e1..ef423ce0 100644
--- a/web/translation/translate.ru_RU.toml
+++ b/web/translation/translate.ru_RU.toml
@@ -372,10 +372,17 @@
"errorLogDesc" = "Путь к файлу журнала ошибок. Специальное значение «none» отключает журналы ошибок."
"dnsLog" = "DNS Журнал"
"dnsLogDesc" = "Включить логи запросов DNS"
-"outboundTraffic" = "Исходящий трафик"
-"outboundTrafficDesc" = "Включить исходящий трафик"
"maskAddress" = "Маскировать Адрес"
"maskAddressDesc" = "При активации реальный IP-адрес заменяется на маскировочный в логах."
+"statistics" = "Статистика"
+"statsInboundUplink" = "Статистика входящего аплинка"
+"statsInboundUplinkDesc" = "Включает сбор статистики для исходящего трафика всех входящих прокси."
+"statsInboundDownlink" = "Статистика входящего даунлинка"
+"statsInboundDownlinkDesc" = "Включает сбор статистики для входящего трафика всех входящих прокси."
+"statsOutboundUplink" = "Статистика исходящего аплинка"
+"statsOutboundUplinkDesc" = "Включает сбор статистики для исходящего трафика всех исходящих прокси."
+"statsOutboundDownlink" = "Статистика исходящего даунлинка"
+"statsOutboundDownlinkDesc" = "Включает сбор статистики для входящего трафика всех исходящих прокси."
[pages.xray.rules]
"first" = "Первый"
diff --git a/web/translation/translate.tr_TR.toml b/web/translation/translate.tr_TR.toml
index 56b808a2..3bab97e0 100644
--- a/web/translation/translate.tr_TR.toml
+++ b/web/translation/translate.tr_TR.toml
@@ -372,10 +372,17 @@
"errorLogDesc" = "Hata günlüğü için dosya yolu. 'none' özel değeri hata günlüklerini devre dışı bırakır"
"dnsLog" = "DNS Günlüğü"
"dnsLogDesc" = "DNS sorgu günlüklerini etkinleştirin"
-"outboundTraffic" = "Gidenler trafiği"
-"outboundTrafficDesc" = "Çıkış trafiğini etkinleştirip etkinleştirmeyeceğiniz"
"maskAddress" = "Adres Maskesi"
"maskAddressDesc" = "IP adresi maskesi, etkinleştirildiğinde, günlükte görünen IP adresini otomatik olarak değiştirecektir."
+"statistics" = "İstatistikler"
+"statsInboundUplink" = "Gelen Yükleme İstatistikleri"
+"statsInboundUplinkDesc" = "Tüm gelen proxy'lerin yükleme trafiği için istatistik toplamayı etkinleştirir."
+"statsInboundDownlink" = "Gelen İndirme İstatistikleri"
+"statsInboundDownlinkDesc" = "Tüm gelen proxy'lerin indirme trafiği için istatistik toplamayı etkinleştirir."
+"statsOutboundUplink" = "Giden Yükleme İstatistikleri"
+"statsOutboundUplinkDesc" = "Tüm giden proxy'lerin yükleme trafiği için istatistik toplamayı etkinleştirir."
+"statsOutboundDownlink" = "Giden İndirme İstatistikleri"
+"statsOutboundDownlinkDesc" = "Tüm giden proxy'lerin indirme trafiği için istatistik toplamayı etkinleştirir."
[pages.xray.rules]
"first" = "İlk"
diff --git a/web/translation/translate.uk_UA.toml b/web/translation/translate.uk_UA.toml
index bdf394ad..05d5c854 100644
--- a/web/translation/translate.uk_UA.toml
+++ b/web/translation/translate.uk_UA.toml
@@ -372,10 +372,17 @@
"errorLogDesc" = "Шлях до файлу журналу помилок. Спеціальне значення 'none' вимикає журнали помилок"
"dnsLog" = "Журнал DNS"
"dnsLogDesc" = "Чи включити журнали запитів DNS"
-"outboundTraffic" = "Вихідний трафік"
-"outboundTrafficDesc" = "Чи потрібно увімкнути вихідний трафік"
"maskAddress" = "Маскувати Адресу"
"maskAddressDesc" = "Маска IP-адреси, при активації автоматично замінює IP-адресу, яка з'являється у журналі."
+"statistics" = "Статистика"
+"statsInboundUplink" = "Статистика вхідного аплінку"
+"statsInboundUplinkDesc" = "Увімкнення збору статистики для вхідного трафіку всіх вхідних проксі."
+"statsInboundDownlink" = "Статистика вхідного даунлінку"
+"statsInboundDownlinkDesc" = "Увімкнення збору статистики для вихідного трафіку всіх вхідних проксі."
+"statsOutboundUplink" = "Статистика вихідного аплінку"
+"statsOutboundUplinkDesc" = "Увімкнення збору статистики для вхідного трафіку всіх вихідних проксі."
+"statsOutboundDownlink" = "Статистика вихідного даунлінку"
+"statsOutboundDownlinkDesc" = "Увімкнення збору статистики для вихідного трафіку всіх вихідних проксі."
[pages.xray.rules]
"first" = "Перший"
diff --git a/web/translation/translate.vi_VN.toml b/web/translation/translate.vi_VN.toml
index eb3f41ed..7e5babaa 100644
--- a/web/translation/translate.vi_VN.toml
+++ b/web/translation/translate.vi_VN.toml
@@ -372,10 +372,17 @@
"errorLogDesc" = "Đường dẫn tệp cho nhật ký lỗi. Nhật ký lỗi bị vô hiệu hóa có giá trị đặc biệt 'không'"
"dnsLog" = "Nhật ký DNS"
"dnsLogDesc" = "Có bật nhật ký truy vấn DNS không"
-"outboundTraffic" = "Lưu lượng đi ra"
-"outboundTrafficDesc" = "Có nên bật lưu lượng ra không"
"maskAddress" = "Ẩn Địa Chỉ"
"maskAddressDesc" = "Mặt nạ địa chỉ IP, khi được bật, sẽ tự động thay thế địa chỉ IP xuất hiện trong nhật ký."
+"statistics" = "Thống kê"
+"statsInboundUplink" = "Thống kê tải lên đầu vào"
+"statsInboundUplinkDesc" = "Kích hoạt thu thập thống kê cho lưu lượng tải lên của tất cả các proxy đầu vào."
+"statsInboundDownlink" = "Thống kê tải xuống đầu vào"
+"statsInboundDownlinkDesc" = "Kích hoạt thu thập thống kê cho lưu lượng tải xuống của tất cả các proxy đầu vào."
+"statsOutboundUplink" = "Thống kê tải lên đầu ra"
+"statsOutboundUplinkDesc" = "Kích hoạt thu thập thống kê cho lưu lượng tải lên của tất cả các proxy đầu ra."
+"statsOutboundDownlink" = "Thống kê tải xuống đầu ra"
+"statsOutboundDownlinkDesc" = "Kích hoạt thu thập thống kê cho lưu lượng tải xuống của tất cả các proxy đầu ra."
[pages.xray.rules]
"first" = "Đầu tiên"
diff --git a/web/translation/translate.zh_CN.toml b/web/translation/translate.zh_CN.toml
index 3e2e076f..9f094fdf 100644
--- a/web/translation/translate.zh_CN.toml
+++ b/web/translation/translate.zh_CN.toml
@@ -372,10 +372,17 @@
"errorLogDesc" = "错误日志的文件路径。特殊值 'none' 禁用错误日志"
"dnsLog" = "DNS 日志"
"dnsLogDesc" = "是否启用 DNS 查询日志"
-"outboundTraffic" = "出站流量"
-"outboundTrafficDesc" = "是否启用出站流量"
"maskAddress" = "隐藏地址"
"maskAddressDesc" = "IP 地址掩码,启用时会自动替换日志中出现的 IP 地址。"
+"statistics" = "统计"
+"statsInboundUplink" = "入站上传统计"
+"statsInboundUplinkDesc" = "启用所有入站代理的上行流量统计收集。"
+"statsInboundDownlink" = "入站下载统计"
+"statsInboundDownlinkDesc" = "启用所有入站代理的下行流量统计收集。"
+"statsOutboundUplink" = "出站上传统计"
+"statsOutboundUplinkDesc" = "启用所有出站代理的上行流量统计收集。"
+"statsOutboundDownlink" = "出站下载统计"
+"statsOutboundDownlinkDesc" = "启用所有出站代理的下行流量统计收集。"
[pages.xray.rules]
"first" = "置顶"
diff --git a/web/translation/translate.zh_TW.toml b/web/translation/translate.zh_TW.toml
index f86d3a31..8796ff21 100644
--- a/web/translation/translate.zh_TW.toml
+++ b/web/translation/translate.zh_TW.toml
@@ -372,10 +372,17 @@
"errorLogDesc" = "錯誤日誌的檔案路徑。特殊值 'none' 禁用錯誤日誌"
"dnsLog" = "DNS 日誌"
"dnsLogDesc" = "是否啟用 DNS 查詢日誌"
-"outboundTraffic" = "出站流量"
-"outboundTrafficDesc" = "是否啟用出站流量"
"maskAddress" = "隱藏地址"
"maskAddressDesc" = "IP 地址掩碼,啟用時會自動替換日誌中出現的 IP 地址。"
+"statistics" = "統計"
+"statsInboundUplink" = "入站上傳統計"
+"statsInboundUplinkDesc" = "啟用所有入站代理的上行流量統計收集。"
+"statsInboundDownlink" = "入站下載統計"
+"statsInboundDownlinkDesc" = "啟用所有入站代理的下行流量統計收集。"
+"statsOutboundUplink" = "出站上傳統計"
+"statsOutboundUplinkDesc" = "啟用所有出站代理的上行流量統計收集。"
+"statsOutboundDownlink" = "出站下載統計"
+"statsOutboundDownlinkDesc" = "啟用所有出站代理的下行流量統計收集。"
[pages.xray.rules]
"first" = "置頂"