From 5d7b94fc4867bbdca22f8a46268c238145d626d9 Mon Sep 17 00:00:00 2001 From: Fringg Date: Sat, 28 Mar 2026 22:52:30 +0300 Subject: [PATCH] fix: add i18n keys for Traffic tab, prevent sort mutation - Add traffic tab/section locale keys to ru, en, zh, fa - Use spread copy before .sort() to avoid mutating React Query cache --- src/locales/en.json | 10 ++++++++++ src/locales/fa.json | 10 ++++++++++ src/locales/ru.json | 10 ++++++++++ src/locales/zh.json | 10 ++++++++++ src/pages/AdminRemnawave.tsx | 4 ++-- 5 files changed, 42 insertions(+), 2 deletions(-) diff --git a/src/locales/en.json b/src/locales/en.json index a8e63da..99893f7 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -1493,9 +1493,19 @@ "tabs": { "overview": "Overview", "nodes": "Nodes", + "traffic": "Traffic", "squads": "Squads", "sync": "Sync" }, + "traffic": { + "noData": "No traffic data available", + "totalDownload": "Download", + "totalUpload": "Upload", + "totalTraffic": "Total", + "online": "online", + "inbounds": "Inbounds", + "outbounds": "Outbounds" + }, "overview": { "system": "System", "usersOnline": "Online", diff --git a/src/locales/fa.json b/src/locales/fa.json index 43a2a44..def8574 100644 --- a/src/locales/fa.json +++ b/src/locales/fa.json @@ -2755,9 +2755,19 @@ "tabs": { "overview": "نمای کلی", "nodes": "گره‌ها", + "traffic": "ترافیک", "squads": "گروه‌ها", "sync": "همگام‌سازی" }, + "traffic": { + "noData": "داده ترافیکی موجود نیست", + "totalDownload": "دانلود", + "totalUpload": "آپلود", + "totalTraffic": "مجموع", + "online": "آنلاین", + "inbounds": "ورودی‌ها", + "outbounds": "خروجی‌ها" + }, "nodes": { "confirmRestartAll": "آیا مطمئنید می‌خواهید همه گره‌ها را راه‌اندازی مجدد کنید؟", "disable": "غیرفعال", diff --git a/src/locales/ru.json b/src/locales/ru.json index aaa9a5c..adfef96 100644 --- a/src/locales/ru.json +++ b/src/locales/ru.json @@ -1514,9 +1514,19 @@ "tabs": { "overview": "Обзор", "nodes": "Ноды", + "traffic": "Трафик", "squads": "Сквады", "sync": "Синхронизация" }, + "traffic": { + "noData": "Нет данных о трафике", + "totalDownload": "Загрузка", + "totalUpload": "Отдача", + "totalTraffic": "Всего", + "online": "онлайн", + "inbounds": "Inbounds", + "outbounds": "Outbounds" + }, "overview": { "system": "Система", "usersOnline": "Онлайн", diff --git a/src/locales/zh.json b/src/locales/zh.json index b436038..2b0e3fd 100644 --- a/src/locales/zh.json +++ b/src/locales/zh.json @@ -2763,9 +2763,19 @@ "tabs": { "overview": "概览", "nodes": "节点", + "traffic": "流量", "squads": "小队", "sync": "同步" }, + "traffic": { + "noData": "暂无流量数据", + "totalDownload": "下载", + "totalUpload": "上传", + "totalTraffic": "总计", + "online": "在线", + "inbounds": "入站", + "outbounds": "出站" + }, "nodes": { "confirmRestartAll": "确定要重启所有节点吗?", "disable": "禁用", diff --git a/src/pages/AdminRemnawave.tsx b/src/pages/AdminRemnawave.tsx index 13f9b0e..4cf8420 100644 --- a/src/pages/AdminRemnawave.tsx +++ b/src/pages/AdminRemnawave.tsx @@ -928,7 +928,7 @@ function TrafficTab({ data, isLoading, onRefresh }: TrafficTabProps) {

{t('admin.remnawave.traffic.inbounds', 'Inbounds')}

- {node.inbounds + {[...node.inbounds] .sort((a, b) => b.totalBytes - a.totalBytes) .map((ib) => (
{t('admin.remnawave.traffic.outbounds', 'Outbounds')}

- {node.outbounds + {[...node.outbounds] .sort((a, b) => b.totalBytes - a.totalBytes) .map((ob) => (