diff --git a/src/components/connection/connection-detail.tsx b/src/components/connection/connection-detail.tsx
index 1ddfc2c..055fb71 100644
--- a/src/components/connection/connection-detail.tsx
+++ b/src/components/connection/connection-detail.tsx
@@ -54,29 +54,32 @@ const InnerConnectionDetail = ({ data, onClose }: InnerProps) => {
: `${metadata.destinationIP}:${metadata.destinationPort}`;
const information = [
- { label: "Host", value: host },
- { label: "Download", value: parseTraffic(data.download).join(" ") },
- { label: "Upload", value: parseTraffic(data.upload).join(" ") },
+ { label: t("Host"), value: host },
+ { label: t("Downloaded"), value: parseTraffic(data.download).join(" ") },
+ { label: t("Uploaded"), value: parseTraffic(data.upload).join(" ") },
{
- label: "DL Speed",
+ label: t("DL Speed"),
value: parseTraffic(data.curDownload ?? -1).join(" ") + "/s",
},
{
- label: "UL Speed",
+ label: t("UL Speed"),
value: parseTraffic(data.curUpload ?? -1).join(" ") + "/s",
},
- { label: "Chains", value: chains },
- { label: "Rule", value: rule },
+ { label: t("Chains"), value: chains },
+ { label: t("Rule"), value: rule },
{
- label: "Process",
+ label: t("Process"),
value: `${metadata.process}${
metadata.processPath ? `(${metadata.processPath})` : ""
}`,
},
- { label: "Time", value: dayjs(data.start).fromNow() },
- { label: "Source", value: `${metadata.sourceIP}:${metadata.sourcePort}` },
- { label: "Destination IP", value: metadata.destinationIP },
- { label: "Type", value: `${metadata.type}(${metadata.network})` },
+ { label: t("Time"), value: dayjs(data.start).fromNow() },
+ {
+ label: t("Source"),
+ value: `${metadata.sourceIP}:${metadata.sourcePort}`,
+ },
+ { label: t("Destination IP"), value: metadata.destinationIP },
+ { label: t("Type"), value: `${metadata.type}(${metadata.network})` },
];
const onDelete = useLockFn(async () => deleteConnection(data.id));
@@ -92,13 +95,13 @@ const InnerConnectionDetail = ({ data, onClose }: InnerProps) => {
diff --git a/src/components/connection/connection-table.tsx b/src/components/connection/connection-table.tsx
index 036d844..be1461e 100644
--- a/src/components/connection/connection-table.tsx
+++ b/src/components/connection/connection-table.tsx
@@ -7,6 +7,7 @@ import {
} from "@mui/x-data-grid";
import { truncateStr } from "@/utils/truncate-str";
import parseTraffic from "@/utils/parse-traffic";
+import { t } from "i18next";
interface Props {
connections: IConnectionsItem[];
@@ -21,10 +22,10 @@ export const ConnectionTable = (props: Props) => {
>({});
const columns: GridColDef[] = [
- { field: "host", headerName: "Host", flex: 220, minWidth: 220 },
+ { field: "host", headerName: t("Host"), flex: 220, minWidth: 220 },
{
field: "download",
- headerName: "Download",
+ headerName: t("Downloaded"),
width: 88,
align: "right",
headerAlign: "right",
@@ -33,7 +34,7 @@ export const ConnectionTable = (props: Props) => {
},
{
field: "upload",
- headerName: "Upload",
+ headerName: t("Uploaded"),
width: 88,
align: "right",
headerAlign: "right",
@@ -42,7 +43,7 @@ export const ConnectionTable = (props: Props) => {
},
{
field: "dlSpeed",
- headerName: "DL Speed",
+ headerName: t("DL Speed"),
width: 88,
align: "right",
headerAlign: "right",
@@ -51,19 +52,19 @@ export const ConnectionTable = (props: Props) => {
},
{
field: "ulSpeed",
- headerName: "UL Speed",
+ headerName: t("UL Speed"),
width: 88,
align: "right",
headerAlign: "right",
valueFormatter: (params: GridValueFormatterParams) =>
parseTraffic(params.value).join(" ") + "/s",
},
- { field: "chains", headerName: "Chains", flex: 360, minWidth: 360 },
- { field: "rule", headerName: "Rule", flex: 300, minWidth: 250 },
- { field: "process", headerName: "Process", flex: 240, minWidth: 120 },
+ { field: "chains", headerName: t("Chains"), flex: 360, minWidth: 360 },
+ { field: "rule", headerName: t("Rule"), flex: 300, minWidth: 250 },
+ { field: "process", headerName: t("Process"), flex: 240, minWidth: 120 },
{
field: "time",
- headerName: "Time",
+ headerName: t("Time"),
flex: 120,
minWidth: 100,
align: "right",
@@ -74,14 +75,14 @@ export const ConnectionTable = (props: Props) => {
valueFormatter: (params: GridValueFormatterParams) =>
dayjs(params.value).fromNow(),
},
- { field: "source", headerName: "Source", flex: 200, minWidth: 130 },
+ { field: "source", headerName: t("Source"), flex: 200, minWidth: 130 },
{
field: "destinationIP",
- headerName: "Destination IP",
+ headerName: t("Destination IP"),
flex: 200,
minWidth: 130,
},
- { field: "type", headerName: "Type", flex: 160, minWidth: 100 },
+ { field: "type", headerName: t("Type"), flex: 160, minWidth: 100 },
];
const connRows = useMemo(() => {
diff --git a/src/locales/en.json b/src/locales/en.json
index 17b5c4f..0aa249d 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -25,6 +25,7 @@
"Test URL": "Test URL",
"Test All": "Test All",
+ "Paste": "Paste",
"Profiles": "Profiles",
"Profile URL": "Profile URL",
"Import": "Import",
@@ -70,6 +71,19 @@
"Update All": "Update All",
"Update At": "Update At",
+ "Host": "Host",
+ "Downloaded": "Downloaded",
+ "Uploaded": "Uploaded",
+ "DL Speed": "DL Speed",
+ "UL Speed": "UL Speed",
+ "Chains": "Chains",
+ "Rule": "Rule",
+ "Process": "Process",
+ "Time": "Time",
+ "Source": "Source",
+ "Destination IP": "Destination IP",
+ "Close Connection": "Close Connection",
+
"Type": "Type",
"Name": "Name",
"Descriptions": "Descriptions",
diff --git a/src/locales/ru.json b/src/locales/ru.json
index fafd7c8..e4d7636 100644
--- a/src/locales/ru.json
+++ b/src/locales/ru.json
@@ -25,6 +25,7 @@
"Test URL": "Тестовый URL",
"Test All": "Тест Все",
+ "Paste": "Вставить",
"Profiles": "Профили",
"Profile URL": "URL профиля",
"Import": "Импорт",
@@ -70,6 +71,19 @@
"Update All": "Обновить все",
"Update At": "Обновлено в",
+ "Host": "Хост",
+ "Downloaded": "Скачано",
+ "Uploaded": "Загружено",
+ "DL Speed": "Скорость загрузки",
+ "UL Speed": "Скорость выгрузки",
+ "Chains": "Цепочки",
+ "Rule": "Правило",
+ "Process": "Процесс",
+ "Time": "Время подключения",
+ "Source": "Исходный адрес",
+ "Destination IP": "IP-адрес назначения",
+ "Close Connection": "Закрыть соединение",
+
"Type": "Тип",
"Name": "Название",
"Descriptions": "Описания",
diff --git a/src/locales/zh.json b/src/locales/zh.json
index 19a7e7b..22cec44 100644
--- a/src/locales/zh.json
+++ b/src/locales/zh.json
@@ -25,6 +25,7 @@
"Test URL": "测试地址",
"Test All": "测试全部",
+ "Paste": "粘贴",
"Profiles": "订阅",
"Profile URL": "订阅文件链接",
"Import": "导入",
@@ -70,6 +71,19 @@
"Update All": "更新全部",
"Update At": "更新于",
+ "Host": "主机",
+ "Downloaded": "下载量",
+ "Uploaded": "上传量",
+ "DL Speed": "下载速度",
+ "UL Speed": "上传速度",
+ "Chains": "链路",
+ "Rule": "规则",
+ "Process": "进程",
+ "Time": "连接时间",
+ "Source": "源地址",
+ "Destination IP": "目标地址",
+ "Close Connection": "关闭连接",
+
"Type": "类型",
"Name": "名称",
"Descriptions": "描述",
diff --git a/src/pages/connections.tsx b/src/pages/connections.tsx
index 87b9ec7..96c9a03 100644
--- a/src/pages/connections.tsx
+++ b/src/pages/connections.tsx
@@ -134,8 +134,12 @@ const ConnectionsPage = () => {
contentStyle={{ height: "100%" }}
header={
- Download: {parseTraffic(download)}
- Upload: {parseTraffic(upload)}
+
+ {t("Downloaded")}: {parseTraffic(download)}
+
+
+ {t("Uploaded")}: {parseTraffic(upload)}
+