mirror of
https://github.com/fankes/beszel.git
synced 2025-10-20 02:09:28 +08:00
add translations for chart tooltips
This commit is contained in:
@@ -12,6 +12,7 @@ import {
|
|||||||
// import Spinner from '../spinner'
|
// import Spinner from '../spinner'
|
||||||
import { ChartData } from "@/types"
|
import { ChartData } from "@/types"
|
||||||
import { memo, useMemo } from "react"
|
import { memo, useMemo } from "react"
|
||||||
|
import { useTranslation } from "react-i18next"
|
||||||
|
|
||||||
/** [label, key, color, opacity] */
|
/** [label, key, color, opacity] */
|
||||||
type DataKeys = [string, string, number, number]
|
type DataKeys = [string, string, number, number]
|
||||||
@@ -38,6 +39,7 @@ export default memo(function AreaChartDefault({
|
|||||||
chartData: ChartData
|
chartData: ChartData
|
||||||
}) {
|
}) {
|
||||||
const { yAxisWidth, updateYAxisWidth } = useYAxisWidth()
|
const { yAxisWidth, updateYAxisWidth } = useYAxisWidth()
|
||||||
|
const { t } = useTranslation()
|
||||||
|
|
||||||
const { chartTime } = chartData
|
const { chartTime } = chartData
|
||||||
|
|
||||||
@@ -45,26 +47,26 @@ export default memo(function AreaChartDefault({
|
|||||||
|
|
||||||
const dataKeys: DataKeys[] = useMemo(() => {
|
const dataKeys: DataKeys[] = useMemo(() => {
|
||||||
// [label, key, color, opacity]
|
// [label, key, color, opacity]
|
||||||
if (chartName === "CPU Usage") {
|
if (chartName === t("alerts.info.cpu_usage")) {
|
||||||
return [[chartName, "cpu", 1, 0.4]]
|
return [[chartName, "cpu", 1, 0.4]]
|
||||||
} else if (chartName === "dio") {
|
} else if (chartName === "dio") {
|
||||||
return [
|
return [
|
||||||
["Write", "dw", 3, 0.3],
|
[t("monitor.write"), "dw", 3, 0.3],
|
||||||
["Read", "dr", 1, 0.3],
|
[t("monitor.read"), "dr", 1, 0.3],
|
||||||
]
|
]
|
||||||
} else if (chartName === "bw") {
|
} else if (chartName === "bw") {
|
||||||
return [
|
return [
|
||||||
["Sent", "ns", 5, 0.2],
|
[t("monitor.sent"), "ns", 5, 0.2],
|
||||||
["Received", "nr", 2, 0.2],
|
[t("monitor.received"), "nr", 2, 0.2],
|
||||||
]
|
]
|
||||||
} else if (chartName.startsWith("efs")) {
|
} else if (chartName.startsWith("efs")) {
|
||||||
return [
|
return [
|
||||||
["Write", `${chartName}.w`, 3, 0.3],
|
[t("monitor.write"), `${chartName}.w`, 3, 0.3],
|
||||||
["Read", `${chartName}.r`, 1, 0.3],
|
[t("monitor.read"), `${chartName}.r`, 1, 0.3],
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
return []
|
return []
|
||||||
}, [])
|
}, [t])
|
||||||
|
|
||||||
// console.log('Rendered at', new Date())
|
// console.log('Rendered at', new Date())
|
||||||
|
|
||||||
|
@@ -12,6 +12,7 @@ import {
|
|||||||
} from "@/lib/utils"
|
} from "@/lib/utils"
|
||||||
import { ChartData } from "@/types"
|
import { ChartData } from "@/types"
|
||||||
import { memo } from "react"
|
import { memo } from "react"
|
||||||
|
import { useTranslation } from "react-i18next"
|
||||||
|
|
||||||
export default memo(function DiskChart({
|
export default memo(function DiskChart({
|
||||||
dataKey,
|
dataKey,
|
||||||
@@ -23,6 +24,7 @@ export default memo(function DiskChart({
|
|||||||
chartData: ChartData
|
chartData: ChartData
|
||||||
}) {
|
}) {
|
||||||
const { yAxisWidth, updateYAxisWidth } = useYAxisWidth()
|
const { yAxisWidth, updateYAxisWidth } = useYAxisWidth()
|
||||||
|
const { t } = useTranslation()
|
||||||
|
|
||||||
if (chartData.systemStats.length === 0) {
|
if (chartData.systemStats.length === 0) {
|
||||||
return null
|
return null
|
||||||
@@ -66,7 +68,7 @@ export default memo(function DiskChart({
|
|||||||
/>
|
/>
|
||||||
<Area
|
<Area
|
||||||
dataKey={dataKey}
|
dataKey={dataKey}
|
||||||
name="Disk Usage"
|
name={t("alerts.info.disk_usage")}
|
||||||
type="monotoneX"
|
type="monotoneX"
|
||||||
fill="hsl(var(--chart-4))"
|
fill="hsl(var(--chart-4))"
|
||||||
fillOpacity={0.4}
|
fillOpacity={0.4}
|
||||||
|
@@ -4,8 +4,10 @@ import { ChartContainer, ChartTooltip, ChartTooltipContent, xAxis } from "@/comp
|
|||||||
import { useYAxisWidth, cn, toFixedFloat, decimalString, formatShortDate, chartMargin } from "@/lib/utils"
|
import { useYAxisWidth, cn, toFixedFloat, decimalString, formatShortDate, chartMargin } from "@/lib/utils"
|
||||||
import { memo } from "react"
|
import { memo } from "react"
|
||||||
import { ChartData } from "@/types"
|
import { ChartData } from "@/types"
|
||||||
|
import { useTranslation } from "react-i18next"
|
||||||
|
|
||||||
export default memo(function MemChart({ chartData }: { chartData: ChartData }) {
|
export default memo(function MemChart({ chartData }: { chartData: ChartData }) {
|
||||||
|
const { t } = useTranslation()
|
||||||
const { yAxisWidth, updateYAxisWidth } = useYAxisWidth()
|
const { yAxisWidth, updateYAxisWidth } = useYAxisWidth()
|
||||||
|
|
||||||
const totalMem = toFixedFloat(chartData.systemStats.at(-1)?.stats.m ?? 0, 1)
|
const totalMem = toFixedFloat(chartData.systemStats.at(-1)?.stats.m ?? 0, 1)
|
||||||
@@ -57,7 +59,7 @@ export default memo(function MemChart({ chartData }: { chartData: ChartData }) {
|
|||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
<Area
|
<Area
|
||||||
name="Used"
|
name={t("monitor.used")}
|
||||||
order={3}
|
order={3}
|
||||||
dataKey="stats.mu"
|
dataKey="stats.mu"
|
||||||
type="monotoneX"
|
type="monotoneX"
|
||||||
@@ -81,7 +83,7 @@ export default memo(function MemChart({ chartData }: { chartData: ChartData }) {
|
|||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
<Area
|
<Area
|
||||||
name="Cache / Buffers"
|
name={t("monitor.cache_buffers")}
|
||||||
order={1}
|
order={1}
|
||||||
dataKey="stats.mb"
|
dataKey="stats.mb"
|
||||||
type="monotoneX"
|
type="monotoneX"
|
||||||
|
@@ -11,9 +11,11 @@ import {
|
|||||||
} from "@/lib/utils"
|
} from "@/lib/utils"
|
||||||
import { ChartData } from "@/types"
|
import { ChartData } from "@/types"
|
||||||
import { memo } from "react"
|
import { memo } from "react"
|
||||||
|
import { useTranslation } from "react-i18next"
|
||||||
|
|
||||||
export default memo(function SwapChart({ chartData }: { chartData: ChartData }) {
|
export default memo(function SwapChart({ chartData }: { chartData: ChartData }) {
|
||||||
const { yAxisWidth, updateYAxisWidth } = useYAxisWidth()
|
const { yAxisWidth, updateYAxisWidth } = useYAxisWidth()
|
||||||
|
const { t } = useTranslation()
|
||||||
|
|
||||||
if (chartData.systemStats.length === 0) {
|
if (chartData.systemStats.length === 0) {
|
||||||
return null
|
return null
|
||||||
@@ -50,7 +52,7 @@ export default memo(function SwapChart({ chartData }: { chartData: ChartData })
|
|||||||
/>
|
/>
|
||||||
<Area
|
<Area
|
||||||
dataKey="stats.su"
|
dataKey="stats.su"
|
||||||
name="Swap Usage"
|
name={t("monitor.used")}
|
||||||
type="monotoneX"
|
type="monotoneX"
|
||||||
fill="hsl(var(--chart-2))"
|
fill="hsl(var(--chart-2))"
|
||||||
fillOpacity={0.4}
|
fillOpacity={0.4}
|
||||||
|
@@ -235,9 +235,9 @@ export default function SystemDetail({ name }: { name: string }) {
|
|||||||
let uptime: number | string = system.info.u
|
let uptime: number | string = system.info.u
|
||||||
if (system.info.u < 172800) {
|
if (system.info.u < 172800) {
|
||||||
const hours = Math.trunc(uptime / 3600)
|
const hours = Math.trunc(uptime / 3600)
|
||||||
uptime = `${hours} hour${hours == 1 ? "" : "s"}`
|
uptime = t("hours", { count: hours })
|
||||||
} else {
|
} else {
|
||||||
uptime = `${Math.trunc(system.info?.u / 86400)} days`
|
uptime = t("days", { count: Math.trunc(system.info?.u / 86400) })
|
||||||
}
|
}
|
||||||
return [
|
return [
|
||||||
{ value: system.host, Icon: GlobeIcon },
|
{ value: system.host, Icon: GlobeIcon },
|
||||||
@@ -261,7 +261,7 @@ export default function SystemDetail({ name }: { name: string }) {
|
|||||||
Icon: any
|
Icon: any
|
||||||
hide?: boolean
|
hide?: boolean
|
||||||
}[]
|
}[]
|
||||||
}, [system.info])
|
}, [system.info, t])
|
||||||
|
|
||||||
/** Space for tooltip if more than 12 containers */
|
/** Space for tooltip if more than 12 containers */
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -376,7 +376,12 @@ export default function SystemDetail({ name }: { name: string }) {
|
|||||||
)}`}
|
)}`}
|
||||||
cornerEl={isLongerChart ? <SelectAvgMax store={cpuMaxStore} /> : null}
|
cornerEl={isLongerChart ? <SelectAvgMax store={cpuMaxStore} /> : null}
|
||||||
>
|
>
|
||||||
<AreaChartDefault chartData={chartData} chartName="CPU Usage" maxToggled={cpuMaxStore[0]} unit="%" />
|
<AreaChartDefault
|
||||||
|
chartData={chartData}
|
||||||
|
chartName={t("alerts.info.cpu_usage")}
|
||||||
|
maxToggled={cpuMaxStore[0]}
|
||||||
|
unit="%"
|
||||||
|
/>
|
||||||
</ChartCard>
|
</ChartCard>
|
||||||
|
|
||||||
{containerFilterBar && (
|
{containerFilterBar && (
|
||||||
|
@@ -90,7 +90,7 @@
|
|||||||
"to_ensure_alerts_are_delivered": "لضمان تسليم التنبيهات.",
|
"to_ensure_alerts_are_delivered": "لضمان تسليم التنبيهات.",
|
||||||
"to_email_s": "إلى البريد الإلكتروني",
|
"to_email_s": "إلى البريد الإلكتروني",
|
||||||
"enter_email_address": "أدخل عنوان البريد الإلكتروني...",
|
"enter_email_address": "أدخل عنوان البريد الإلكتروني...",
|
||||||
"des": "احفظ العنوان باستخدام مفتاح الإدخال أو الفاصلة. اتركه فا<EFBFBD><EFBFBD>غاً لتعطيل إشعارات البريد الإلكتروني."
|
"des": "احفظ العنوان باستخدام مفتاح الإدخال أو الفاصلة. اتركه فاغاً لتعطيل إشعارات البريد الإلكتروني."
|
||||||
},
|
},
|
||||||
"webhook_push": {
|
"webhook_push": {
|
||||||
"title": "إشعارات Webhook / Push",
|
"title": "إشعارات Webhook / Push",
|
||||||
@@ -176,7 +176,13 @@
|
|||||||
"usage": "الاستخدام",
|
"usage": "الاستخدام",
|
||||||
"disk_usage_of": "استخدام القرص لـ",
|
"disk_usage_of": "استخدام القرص لـ",
|
||||||
"throughput_of": "معدل نقل",
|
"throughput_of": "معدل نقل",
|
||||||
"waiting_for": "في انتظار سجلات كافية للعرض"
|
"waiting_for": "في انتظار سجلات كافية للعرض",
|
||||||
|
"cache_buffers": "ذاكرة التخزين المؤقت / المخازن المؤقتة",
|
||||||
|
"read": "قراءة",
|
||||||
|
"write": "كتابة",
|
||||||
|
"sent": "مرسل",
|
||||||
|
"received": "مستلم",
|
||||||
|
"used": "مستخدم"
|
||||||
},
|
},
|
||||||
"auth": {
|
"auth": {
|
||||||
"login": "الرجاء تسجيل الدخول إلى حسابك",
|
"login": "الرجاء تسجيل الدخول إلى حسابك",
|
||||||
|
@@ -178,7 +178,13 @@
|
|||||||
"usage": "Nutzung",
|
"usage": "Nutzung",
|
||||||
"disk_usage_of": "Festplattennutzung von",
|
"disk_usage_of": "Festplattennutzung von",
|
||||||
"throughput_of": "Durchsatz von",
|
"throughput_of": "Durchsatz von",
|
||||||
"waiting_for": "Warten auf genügend Datensätze zur Anzeige"
|
"waiting_for": "Warten auf genügend Datensätze zur Anzeige",
|
||||||
|
"cache_buffers": "Cache/Puffer",
|
||||||
|
"read": "Lesen",
|
||||||
|
"write": "Schreiben",
|
||||||
|
"sent": "Gesendet",
|
||||||
|
"received": "Empfangen",
|
||||||
|
"used": "Verwendet"
|
||||||
},
|
},
|
||||||
"auth": {
|
"auth": {
|
||||||
"login": "Bitte melden Sie sich bei Ihrem Konto an",
|
"login": "Bitte melden Sie sich bei Ihrem Konto an",
|
||||||
|
@@ -160,6 +160,7 @@
|
|||||||
"docker_cpu_usage": "Docker CPU Usage",
|
"docker_cpu_usage": "Docker CPU Usage",
|
||||||
"docker_cpu_des": "Average CPU utilization of containers",
|
"docker_cpu_des": "Average CPU utilization of containers",
|
||||||
"total_memory_usage": "Total Memory Usage",
|
"total_memory_usage": "Total Memory Usage",
|
||||||
|
"cache_buffers": "Cache / Buffers",
|
||||||
"memory_des": "Precise utilization at the recorded time",
|
"memory_des": "Precise utilization at the recorded time",
|
||||||
"docker_memory_usage": "Docker Memory Usage",
|
"docker_memory_usage": "Docker Memory Usage",
|
||||||
"docker_memory_des": "Memory usage of docker containers",
|
"docker_memory_des": "Memory usage of docker containers",
|
||||||
@@ -167,8 +168,12 @@
|
|||||||
"disk_des": "Usage of root partition",
|
"disk_des": "Usage of root partition",
|
||||||
"disk_io": "Disk I/O",
|
"disk_io": "Disk I/O",
|
||||||
"disk_io_des": "Throughput of root filesystem",
|
"disk_io_des": "Throughput of root filesystem",
|
||||||
|
"read": "Read",
|
||||||
|
"write": "Write",
|
||||||
"bandwidth": "Bandwidth",
|
"bandwidth": "Bandwidth",
|
||||||
"bandwidth_des": "Network traffic of public interfaces",
|
"bandwidth_des": "Network traffic of public interfaces",
|
||||||
|
"sent": "Sent",
|
||||||
|
"received": "Received",
|
||||||
"docker_network_io": "Docker Network I/O",
|
"docker_network_io": "Docker Network I/O",
|
||||||
"docker_network_io_des": "Network traffic of docker containers",
|
"docker_network_io_des": "Network traffic of docker containers",
|
||||||
"swap_usage": "Swap Usage",
|
"swap_usage": "Swap Usage",
|
||||||
@@ -176,6 +181,7 @@
|
|||||||
"temperature": "Temperature",
|
"temperature": "Temperature",
|
||||||
"temperature_des": "Temperatures of system sensors",
|
"temperature_des": "Temperatures of system sensors",
|
||||||
"usage": "Usage",
|
"usage": "Usage",
|
||||||
|
"used": "Used",
|
||||||
"disk_usage_of": "Disk usage of",
|
"disk_usage_of": "Disk usage of",
|
||||||
"throughput_of": "Throughput of",
|
"throughput_of": "Throughput of",
|
||||||
"waiting_for": "Waiting for enough records to display"
|
"waiting_for": "Waiting for enough records to display"
|
||||||
|
@@ -178,7 +178,13 @@
|
|||||||
"usage": "Uso",
|
"usage": "Uso",
|
||||||
"disk_usage_of": "Uso de disco de",
|
"disk_usage_of": "Uso de disco de",
|
||||||
"throughput_of": "Rendimiento de",
|
"throughput_of": "Rendimiento de",
|
||||||
"waiting_for": "Esperando suficientes registros para mostrar"
|
"waiting_for": "Esperando suficientes registros para mostrar",
|
||||||
|
"cache_buffers": "Caché/Búferes",
|
||||||
|
"read": "Lectura",
|
||||||
|
"write": "Escritura",
|
||||||
|
"sent": "Enviado",
|
||||||
|
"received": "Recibido",
|
||||||
|
"used": "Usado"
|
||||||
},
|
},
|
||||||
"auth": {
|
"auth": {
|
||||||
"login": "Por favor, inicie sesión en su cuenta",
|
"login": "Por favor, inicie sesión en su cuenta",
|
||||||
|
@@ -180,7 +180,13 @@
|
|||||||
"usage": "Utilisation",
|
"usage": "Utilisation",
|
||||||
"disk_usage_of": "Utilisation du disque de",
|
"disk_usage_of": "Utilisation du disque de",
|
||||||
"throughput_of": "Débit de",
|
"throughput_of": "Débit de",
|
||||||
"waiting_for": "En attente de suffisamment d'enregistrements pour afficher"
|
"waiting_for": "En attente de suffisamment d'enregistrements pour afficher",
|
||||||
|
"cache_buffers": "Cache/Tampons",
|
||||||
|
"read": "Lecture",
|
||||||
|
"write": "Écriture",
|
||||||
|
"sent": "Envoyé",
|
||||||
|
"received": "Reçu",
|
||||||
|
"used": "Utilisé"
|
||||||
},
|
},
|
||||||
"auth": {
|
"auth": {
|
||||||
"login": "Veuillez vous connecter à votre compte",
|
"login": "Veuillez vous connecter à votre compte",
|
||||||
|
@@ -179,7 +179,13 @@
|
|||||||
"usage": "使用率",
|
"usage": "使用率",
|
||||||
"disk_usage_of": "のディスク使用率",
|
"disk_usage_of": "のディスク使用率",
|
||||||
"throughput_of": "のスループット",
|
"throughput_of": "のスループット",
|
||||||
"waiting_for": "表示に必要な記録を待機中"
|
"waiting_for": "表示に必要な記録を待機中",
|
||||||
|
"cache_buffers": "キャッシュ/バッファ",
|
||||||
|
"read": "読み込み",
|
||||||
|
"write": "書き込み",
|
||||||
|
"sent": "送信",
|
||||||
|
"received": "受信",
|
||||||
|
"used": "使用済み"
|
||||||
},
|
},
|
||||||
"auth": {
|
"auth": {
|
||||||
"login": "アカウントにサインインしてください",
|
"login": "アカウントにサインインしてください",
|
||||||
|
@@ -179,7 +179,13 @@
|
|||||||
"usage": "사용량",
|
"usage": "사용량",
|
||||||
"disk_usage_of": "디스크 사용량",
|
"disk_usage_of": "디스크 사용량",
|
||||||
"throughput_of": "처리량",
|
"throughput_of": "처리량",
|
||||||
"waiting_for": "표시할 충분한 기록을 기다리는 중"
|
"waiting_for": "표시할 충분한 기록을 기다리는 중",
|
||||||
|
"cache_buffers": "캐시/버퍼",
|
||||||
|
"read": "읽기",
|
||||||
|
"write": "쓰기",
|
||||||
|
"sent": "전송됨",
|
||||||
|
"received": "수신됨",
|
||||||
|
"used": "사용됨"
|
||||||
},
|
},
|
||||||
"auth": {
|
"auth": {
|
||||||
"login": "계정에 로그인하세요",
|
"login": "계정에 로그인하세요",
|
||||||
|
@@ -178,7 +178,13 @@
|
|||||||
"usage": "Uso",
|
"usage": "Uso",
|
||||||
"disk_usage_of": "Uso de disco de",
|
"disk_usage_of": "Uso de disco de",
|
||||||
"throughput_of": "Taxa de transferência de",
|
"throughput_of": "Taxa de transferência de",
|
||||||
"waiting_for": "Aguardando registros suficientes para exibir"
|
"waiting_for": "Aguardando registros suficientes para exibir",
|
||||||
|
"cache_buffers": "Cache/Buffers",
|
||||||
|
"read": "Leitura",
|
||||||
|
"write": "Escrita",
|
||||||
|
"sent": "Enviado",
|
||||||
|
"received": "Recebido",
|
||||||
|
"used": "Usado"
|
||||||
},
|
},
|
||||||
"auth": {
|
"auth": {
|
||||||
"login": "Por favor, faça login em sua conta",
|
"login": "Por favor, faça login em sua conta",
|
||||||
|
@@ -180,7 +180,13 @@
|
|||||||
"usage": "Использование",
|
"usage": "Использование",
|
||||||
"disk_usage_of": "Использование диска",
|
"disk_usage_of": "Использование диска",
|
||||||
"throughput_of": "Пропускная способность",
|
"throughput_of": "Пропускная способность",
|
||||||
"waiting_for": "Ожидание достаточного количества записей для отображения"
|
"waiting_for": "Ожидание достаточного количества записей для отображения",
|
||||||
|
"cache_buffers": "Кэш/Буферы",
|
||||||
|
"read": "Чтение",
|
||||||
|
"write": "Запись",
|
||||||
|
"sent": "Отправлено",
|
||||||
|
"received": "Получено",
|
||||||
|
"used": "Использовано"
|
||||||
},
|
},
|
||||||
"auth": {
|
"auth": {
|
||||||
"login": "Пожалуйста, войдите в свою учетную запись",
|
"login": "Пожалуйста, войдите в свою учетную запись",
|
||||||
|
@@ -179,7 +179,13 @@
|
|||||||
"usage": "Sử dụng",
|
"usage": "Sử dụng",
|
||||||
"disk_usage_of": "Sử dụng ổ đĩa của",
|
"disk_usage_of": "Sử dụng ổ đĩa của",
|
||||||
"throughput_of": "Thông lượng của",
|
"throughput_of": "Thông lượng của",
|
||||||
"waiting_for": "Đang chờ đủ bản ghi để hiển thị"
|
"waiting_for": "Đang chờ đủ bản ghi để hiển thị",
|
||||||
|
"cache_buffers": "Bộ nhớ đệm/Buffer",
|
||||||
|
"read": "Đọc",
|
||||||
|
"write": "Ghi",
|
||||||
|
"sent": "Đã gửi",
|
||||||
|
"received": "Đã nhận",
|
||||||
|
"used": "Đã sử dụng"
|
||||||
},
|
},
|
||||||
"auth": {
|
"auth": {
|
||||||
"login": "Vui lòng đăng nhập vào tài khoản của bạn",
|
"login": "Vui lòng đăng nhập vào tài khoản của bạn",
|
||||||
|
@@ -179,7 +179,13 @@
|
|||||||
"usage": "使用率",
|
"usage": "使用率",
|
||||||
"disk_usage_of": "的磁盘使用率",
|
"disk_usage_of": "的磁盘使用率",
|
||||||
"throughput_of": "的吞吐量",
|
"throughput_of": "的吞吐量",
|
||||||
"waiting_for": "等待足够的记录以显示"
|
"waiting_for": "等待足够的记录以显示",
|
||||||
|
"cache_buffers": "缓存/缓冲区",
|
||||||
|
"read": "读取",
|
||||||
|
"write": "写入",
|
||||||
|
"sent": "已发送",
|
||||||
|
"received": "已接收",
|
||||||
|
"used": "已使用"
|
||||||
},
|
},
|
||||||
"auth": {
|
"auth": {
|
||||||
"login": "请登入你的账户",
|
"login": "请登入你的账户",
|
||||||
|
@@ -178,7 +178,13 @@
|
|||||||
"usage": "使用率",
|
"usage": "使用率",
|
||||||
"disk_usage_of": "的磁碟使用率",
|
"disk_usage_of": "的磁碟使用率",
|
||||||
"throughput_of": "的吞吐量",
|
"throughput_of": "的吞吐量",
|
||||||
"waiting_for": "等待足夠的記錄以顯示"
|
"waiting_for": "等待足夠的記錄以顯示",
|
||||||
|
"cache_buffers": "快取/緩衝區",
|
||||||
|
"read": "讀取",
|
||||||
|
"write": "寫入",
|
||||||
|
"sent": "已發送",
|
||||||
|
"received": "已接收",
|
||||||
|
"used": "已使用"
|
||||||
},
|
},
|
||||||
"auth": {
|
"auth": {
|
||||||
"login": "請登入你的賬戶",
|
"login": "請登入你的賬戶",
|
||||||
|
Reference in New Issue
Block a user