@@ -3,6 +3,7 @@ import { jsx } from '@emotion/core'
3
3
import styled from '@emotion/styled/macro'
4
4
import css from '@emotion/css/macro'
5
5
import bytes from 'bytes'
6
+ import { useTranslation } from 'react-i18next'
6
7
import tw from 'twin.macro'
7
8
import React , { useMemo , useState } from 'react'
8
9
import { ChevronRight } from '@sumup/icons'
@@ -17,6 +18,7 @@ interface TrafficDataRowProps {
17
18
}
18
19
19
20
const TrafficDataRow : React . FC < TrafficDataRowProps > = ( { name, data } ) => {
21
+ const { t } = useTranslation ( )
20
22
const [ isDetailsOpen , setIsDetailsOpen ] = useState < boolean > ( false )
21
23
const tcpStat = useMemo ( ( ) => {
22
24
if ( ! data . statistics || ! data . statistics . length ) return
@@ -44,7 +46,9 @@ const TrafficDataRow: React.FC<TrafficDataRowProps> = ({ name, data }) => {
44
46
< DataRowMain >
45
47
< div tw = "truncate flex-1 text-sm lg:text-base" > { name } </ div >
46
48
< div tw = "flex items-center ml-3 text-sm lg:text-base" >
47
- < div > 总计 { bytes ( data . in + data . out ) } </ div >
49
+ < div >
50
+ { t ( 'traffic.total' ) } { bytes ( data . in + data . out ) }
51
+ </ div >
48
52
< ChevronRight
49
53
css = { [
50
54
tw `ml-2 w-5 h-5 transition-transform duration-200 ease-in-out` ,
@@ -53,31 +57,45 @@ const TrafficDataRow: React.FC<TrafficDataRowProps> = ({ name, data }) => {
53
57
/>
54
58
</ div >
55
59
</ DataRowMain >
60
+
56
61
< Collapse isOpened = { isDetailsOpen } >
57
62
< div tw = "pb-3" >
58
63
< DataRowSub >
59
- < div > 流量 </ div >
64
+ < div > { t ( 'traffic.traffic' ) } </ div >
60
65
< div >
61
- 上传: { bytes ( data . out ) } 下载: { bytes ( data . in ) }
66
+ < span > { `${ t ( 'traffic.upload' ) } : ${ bytes ( data . out ) } ` } </ span >
67
+ < span > </ span >
68
+ < span > { `${ t ( 'traffic.download' ) } : ${ bytes ( data . in ) } ` } </ span >
62
69
</ div >
63
70
</ DataRowSub >
64
71
< DataRowSub >
65
- < div > 当前速度 </ div >
72
+ < div > { t ( 'traffic.current_speed' ) } </ div >
66
73
< div >
67
- 上传: { bytes ( data . outCurrentSpeed ) } /s 下载:{ ' ' }
68
- { bytes ( data . inCurrentSpeed ) } /s
74
+ < span > { `${ t ( 'traffic.upload' ) } : ${ bytes (
75
+ data . outCurrentSpeed ,
76
+ ) } /s`} </ span >
77
+ < span > </ span >
78
+ < span > { `${ t ( 'traffic.download' ) } : ${ bytes (
79
+ data . inCurrentSpeed ,
80
+ ) } /s`} </ span >
69
81
</ div >
70
82
</ DataRowSub >
71
83
< DataRowSub >
72
- < div > 最高速度 </ div >
84
+ < div > { t ( 'traffic.maximum_speed' ) } </ div >
73
85
< div >
74
- 上传: { bytes ( data . outMaxSpeed ) } /s 下载: { bytes ( data . inMaxSpeed ) } /s
86
+ < span > { `${ t ( 'traffic.upload' ) } : ${ bytes (
87
+ data . outMaxSpeed ,
88
+ ) } /s`} </ span >
89
+ < span > </ span >
90
+ < span > { `${ t ( 'traffic.download' ) } : ${ bytes (
91
+ data . inMaxSpeed ,
92
+ ) } /s`} </ span >
75
93
</ div >
76
94
</ DataRowSub >
77
95
{ ! ! tcpStat && (
78
96
< DataRowSub >
79
- < div > TCP 统计 </ div >
80
- < div > Avg. RTT { tcpStat } ms</ div >
97
+ < div > { t ( 'traffic.tcp_summary' ) } </ div >
98
+ < div > { ` ${ t ( 'traffic.avg_rtt' ) } $ {tcpStat } ms` } </ div >
81
99
</ DataRowSub >
82
100
) }
83
101
</ div >
0 commit comments