diff --git a/app/dashboard/servers/[server_id]/Server.tsx b/app/dashboard/servers/[server_id]/Server.tsx index 172b5f0..16e8b53 100644 --- a/app/dashboard/servers/[server_id]/Server.tsx +++ b/app/dashboard/servers/[server_id]/Server.tsx @@ -22,6 +22,7 @@ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@ import { ScrollArea } from "@/components/ui/scroll-area" import { Button } from "@/components/ui/button" import NextLink from "next/link" +import { useTranslations } from "next-intl" interface ServerHistory { labels: string[]; @@ -69,6 +70,7 @@ interface GetServersResponse { } export default function ServerDetail() { + const t = useTranslations() const params = useParams() const serverId = params.server_id as string const [server, setServer] = useState(null) @@ -214,7 +216,7 @@ export default function ServerDetail() { data: { labels: timeLabels, datasets: [{ - label: 'CPU Usage', + label: t('Common.Server.CPU') + ' ' + t('Common.Server.Usage'), data: history.datasets.cpu, borderColor: 'rgb(75, 192, 192)', backgroundColor: 'rgba(75, 192, 192, 0.1)', @@ -227,7 +229,7 @@ export default function ServerDetail() { plugins: { title: { display: true, - text: 'CPU Usage History', + text: t('Common.Server.CPU') + ' ' + t('Server.UsageHistory'), font: { size: 14 } @@ -261,7 +263,7 @@ export default function ServerDetail() { data: { labels: timeLabels, datasets: [{ - label: 'RAM Usage', + label: t('Common.Server.RAM') + ' ' + t('Common.Server.Usage'), data: history.datasets.ram, borderColor: 'rgb(153, 102, 255)', backgroundColor: 'rgba(153, 102, 255, 0.1)', @@ -274,7 +276,7 @@ export default function ServerDetail() { plugins: { title: { display: true, - text: 'RAM Usage History', + text: t('Common.Server.RAM') + ' ' + t('Server.UsageHistory'), font: { size: 14 } @@ -308,7 +310,7 @@ export default function ServerDetail() { data: { labels: timeLabels, datasets: [{ - label: 'Disk Usage', + label: t('Common.Server.Disk') + ' ' + t('Common.Server.Usage'), data: history.datasets.disk, borderColor: 'rgb(255, 159, 64)', backgroundColor: 'rgba(255, 159, 64, 0.1)', @@ -321,7 +323,7 @@ export default function ServerDetail() { plugins: { title: { display: true, - text: 'Disk Usage History', + text: t('Common.Server.Disk') + ' ' + t('Server.UsageHistory'), font: { size: 14 } @@ -355,7 +357,7 @@ export default function ServerDetail() { data: { labels: timeLabels, datasets: [{ - label: 'GPU Usage', + label: t('Common.Server.GPU') + ' ' + t('Common.Server.Usage'), data: history.datasets.gpu, borderColor: 'rgb(255, 99, 132)', backgroundColor: 'rgba(255, 99, 132, 0.1)', @@ -368,7 +370,7 @@ export default function ServerDetail() { plugins: { title: { display: true, - text: 'GPU Usage History', + text: t('Common.Server.GPU') + ' ' + t('Common.Server.UsageHistory'), font: { size: 14 } @@ -402,7 +404,7 @@ export default function ServerDetail() { data: { labels: timeLabels, datasets: [{ - label: 'Temperature', + label: t('Common.Server.Temperature'), data: history.datasets.temp, borderColor: 'rgb(255, 159, 64)', backgroundColor: 'rgba(255, 159, 64, 0.1)', @@ -415,7 +417,7 @@ export default function ServerDetail() { plugins: { title: { display: true, - text: 'Temperature History', + text: t('Common.Server.TemperatureHistory'), font: { size: 14 } @@ -478,12 +480,12 @@ export default function ServerDetail() { - My Infrastructure + {t('Servers.MyInfrastructure')} - Servers + {t('Servers.Title')} {server && ( @@ -524,7 +526,7 @@ export default function ServerDetail() { - Loading... + {t('Common.Loading')} ) : server ? ( @@ -540,9 +542,9 @@ export default function ServerDetail() { {server.name} - {server.os || "No OS specified"} • {server.isVM ? "Virtual Machine" : "Physical Server"} + {server.os || t('Common.Server.OS')} • {server.isVM ? t('Server.VM') : t('Server.Physical')} {server.isVM && server.hostServer && ( - <> • Hosted on {server.hostedVMs?.[0]?.name} + <> • {t('Server.HostedOn')} {server.hostedVMs?.[0]?.name} )} @@ -553,7 +555,7 @@ export default function ServerDetail() { {server.online && server.uptime && ( - since {server.uptime} + {t('Common.since', { date: server.uptime })} )} @@ -562,25 +564,25 @@ export default function ServerDetail() {
-

Hardware

+

{t('Server.Hardware')}

-
CPU:
+
{t('Common.Server.CPU')}:
{server.cpu || "-"}
-
GPU:
+
{t('Common.Server.GPU')}:
{server.gpu || "-"}
-
RAM:
+
{t('Common.Server.RAM')}:
{server.ram || "-"}
-
Disk:
+
{t('Common.Server.Disk')}:
{server.disk || "-"}
-

Network

+

{t('Server.Network')}

-
IP Address:
+
{t('Common.Server.IP')}:
{server.ip || "-"}
-
Management URL:
+
{t('Server.ManagementURL')}:
{server.url ? ( @@ -595,9 +597,9 @@ export default function ServerDetail() { {server.monitoring && (
-

Current Usage

+

{t('Server.CurrentUsage')}

-
CPU Usage:
+
{t('Common.Server.CPU')} {t('Common.Server.Usage')}:
- {server.cpuUsage !== null && server.cpuUsage !== undefined ? `${server.cpuUsage}%` : "NO DATA"} + {server.cpuUsage !== null && server.cpuUsage !== undefined ? `${server.cpuUsage}%` : t('Common.noData')}
-
RAM Usage:
+
{t('Common.Server.RAM')} {t('Common.Server.Usage')}:
- {server.ramUsage !== null && server.ramUsage !== undefined ? `${server.ramUsage}%` : "NO DATA"} + {server.ramUsage !== null && server.ramUsage !== undefined ? `${server.ramUsage}%` : t('Common.noData')}
-
Disk Usage:
+
{t('Common.Server.Disk')} {t('Common.Server.Usage')}:
- {server.diskUsage !== null && server.diskUsage !== undefined ? `${server.diskUsage}%` : "NO DATA"} + {server.diskUsage !== null && server.diskUsage !== undefined ? `${server.diskUsage}%` : t('Common.noData')}
{server.gpuUsage && server.gpuUsage !== null && server.gpuUsage !== undefined && server.gpuUsage.toString() !== "0" && ( <> -
GPU Usage:
+
{t('Common.Server.GPU')} {t('Common.Server.Usage')}:
-
80 ? "bg-destructive" : server.gpuUsage && server.gpuUsage > 60 ? "bg-amber-500" : "bg-emerald-500"}`} - style={{ width: `${server.gpuUsage || 0}%` }} - /> -
- - {server.gpuUsage && server.gpuUsage !== null && server.gpuUsage !== undefined ? `${server.gpuUsage}%` : "NO DATA"} +
80 ? "bg-destructive" : server.gpuUsage && server.gpuUsage > 60 ? "bg-amber-500" : "bg-emerald-500"}`} + style={{ width: `${server.gpuUsage || 0}%` }} + /> +
+ {server.gpuUsage && server.gpuUsage !== null && server.gpuUsage !== undefined ? `${server.gpuUsage}%` : t('Common.noData')}
)} {server.temp && server.temp !== null && server.temp !== undefined && server.temp.toString() !== "0" && ( <> -
Temperature:
+
{t('Common.Server.Temperature')}:
-
80 ? "bg-destructive" : server.temp && server.temp > 60 ? "bg-amber-500" : "bg-emerald-500"}`} - style={{ width: `${Math.min(server.temp || 0, 100)}%` }} - /> -
- {server.temp !== null && server.temp !== undefined && server.temp !== 0 ? `${server.temp}°C` : "NO DATA"} +
80 ? "bg-destructive" : server.temp && server.temp > 60 ? "bg-amber-500" : "bg-emerald-500"}`} + style={{ width: `${Math.min(server.temp || 0, 100)}%` }} + /> +
+ {server.temp !== null && server.temp !== undefined && server.temp !== 0 ? `${server.temp}°C` : t('Common.noData')}
)} @@ -670,30 +671,30 @@ export default function ServerDetail() {
- Resource Usage History + {t('Server.ResourceUsageHistory')} {timeRange === '1h' - ? 'Last hour, per minute' + ? t('Server.TimeRange.LastHour') : timeRange === '1d' - ? 'Last 24 hours, 15-minute intervals' + ? t('Server.TimeRange.Last24Hours') : timeRange === '7d' - ? 'Last 7 days, hourly intervals' - : 'Last 30 days, 4-hour intervals'} + ? t('Server.TimeRange.Last7Days') + : t('Server.TimeRange.Last30Days')}
- +
@@ -728,8 +729,8 @@ export default function ServerDetail() { {server.hostedVMs && server.hostedVMs.length > 0 && ( - Virtual Machines - Virtual machines hosted on this server + {t('Server.VirtualMachines')} + {t('Server.VirtualMachinesDescription')}
@@ -758,7 +759,7 @@ export default function ServerDetail() { {hostedVM.online && hostedVM.uptime && ( - since {hostedVM.uptime} + {t('Common.since', { date: hostedVM.uptime })} )}
@@ -773,43 +774,43 @@ export default function ServerDetail() {
- OS: {hostedVM.os || "-"} + {t('Common.Server.OS')}: {hostedVM.os || "-"}
- IP: {hostedVM.ip || "Not set"} + {t('Common.Server.IP')}: {hostedVM.ip || t('Common.notSet')}
-

Hardware Information

+

{t('Server.HardwareInformation')}

- CPU: {hostedVM.cpu || "-"} + {t('Common.Server.CPU')}: {hostedVM.cpu || "-"}
- GPU: {hostedVM.gpu || "-"} + {t('Common.Server.GPU')}: {hostedVM.gpu || "-"}
- RAM: {hostedVM.ram || "-"} + {t('Common.Server.RAM')}: {hostedVM.ram || "-"}
- Disk: {hostedVM.disk || "-"} + {t('Common.Server.Disk')}: {hostedVM.disk || "-"}
@@ -824,7 +825,7 @@ export default function ServerDetail() {
- CPU + {t('Common.Server.CPU')}
{hostedVM.cpuUsage || 0}% @@ -842,7 +843,7 @@ export default function ServerDetail() {
- RAM + {t('Common.Server.RAM')}
{hostedVM.ramUsage || 0}% @@ -860,7 +861,7 @@ export default function ServerDetail() {
- Disk + {t('Common.Server.Disk')}
{hostedVM.diskUsage || 0}% @@ -885,8 +886,8 @@ export default function ServerDetail() {
) : (
-

Server not found

-

The requested server could not be found or you don't have permission to view it.

+

{t('Server.NotFound')}

+

{t('Server.NotFoundDescription')}

)}
diff --git a/i18n/languages/en.json b/i18n/languages/en.json index 57b3195..39147ef 100644 --- a/i18n/languages/en.json +++ b/i18n/languages/en.json @@ -9,6 +9,25 @@ "since": "since {date}", "notSet": "Not set", "noData": "No data", + "Loading": "Loading...", + "Refresh": "Refresh", + "Server": { + "CPU": "CPU", + "GPU": "GPU", + "RAM": "RAM", + "Disk": "Disk", + "OS": "OS", + "IP": "IP", + "Host": "Host", + "Temperature": "Temperature", + "Usage": "Usage", + "Tabs": { + "General": "General", + "Hardware": "Hardware", + "Host": "Host", + "Monitoring": "Monitoring" + } + }, "ItemsPerPage": { "items": "items", "item": "item", @@ -19,24 +38,31 @@ "20": "20 items", "25": "25 items", "Custom": "Custom (1-100)" - }, - "Server": { - "CPU": "CPU", - "GPU": "GPU", - "RAM": "RAM", - "Disk": "Disk", - "OS": "OS", - "IP": "IP", - "Host": "Host", - "Temperature": "Temperature", - "Tabs": { - "General": "General", - "Hardware": "Hardware", - "Host": "Host", - "Monitoring": "Monitoring" - } } }, + "Server": { + "Hardware": "Hardware", + "Network": "Network", + "CurrentUsage": "Current Usage", + "UsageHistory": "Usage History", + "ResourceUsageHistory": "Resource Usage History", + "TimeRange": { + "Select": "Select time range", + "LastHour": "Last Hour", + "Last24Hours": "Last 24 Hours", + "Last7Days": "Last 7 Days", + "Last30Days": "Last 30 Days" + }, + "VirtualMachines": "Virtual Machines", + "VirtualMachinesDescription": "Virtual machines hosted on this server", + "HardwareInformation": "Hardware Information", + "ManagementURL": "Management URL", + "VM": "VM", + "Physical": "Physical", + "HostedOn": "Hosted on", + "NotFound": "Server not found", + "NotFoundDescription": "The server you are looking for could not be found." + }, "Sidebar": { "Main Navigation": "Main Navigation", "Dashboard": "Dashboard",