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)} +