diff --git a/client/src/Pages/Dashboard/Components/CardPicker.tsx b/client/src/Pages/Dashboard/Components/CardPicker.tsx index a01346926..4c18e3abc 100644 --- a/client/src/Pages/Dashboard/Components/CardPicker.tsx +++ b/client/src/Pages/Dashboard/Components/CardPicker.tsx @@ -8,7 +8,6 @@ import { useMemo } from "react"; import { Dialog, Checkbox } from "@/Components/inputs"; import { LAYOUT } from "@/Utils/Theme/constants"; -import { typographyLevels } from "@/Utils/Theme/Palette"; import { CardGroups, type CardDefinition, type CardGroup, type CardId } from "../cards"; interface CardPickerProps { @@ -91,7 +90,6 @@ export const CardPicker = ({ > {/* @@ -107,10 +105,7 @@ export const CardPicker = ({ + {t(`pages.dashboard.cards.${card.key}.title`)} } diff --git a/client/src/Pages/Dashboard/Components/CardPrimitives.tsx b/client/src/Pages/Dashboard/Components/CardPrimitives.tsx index a2452fd3a..176e37fad 100644 --- a/client/src/Pages/Dashboard/Components/CardPrimitives.tsx +++ b/client/src/Pages/Dashboard/Components/CardPrimitives.tsx @@ -142,7 +142,6 @@ export const CardRowLabel = ({ flex={1} > @@ -150,7 +149,6 @@ export const CardRowLabel = ({ {secondary && ( @@ -183,14 +181,7 @@ export const CardFigure = ({ > {value} - {caption && ( - - {caption} - - )} + {caption && {caption}} ); }; @@ -217,14 +208,8 @@ export const CardStatLine = ({ justifyContent="space-between" gap={theme.spacing(LAYOUT.SM)} > + {label} - {label} - - @@ -270,7 +255,6 @@ export const CardMeterRow = ({ > {typeof label === "string" ? ( diff --git a/client/src/Pages/Dashboard/Components/Cards/AdminCards.tsx b/client/src/Pages/Dashboard/Components/Cards/AdminCards.tsx index 3c319fed5..cef8b0361 100644 --- a/client/src/Pages/Dashboard/Components/Cards/AdminCards.tsx +++ b/client/src/Pages/Dashboard/Components/Cards/AdminCards.tsx @@ -6,7 +6,6 @@ import { useMemo } from "react"; import { useGet } from "@/Hooks/UseApi"; import { LAYOUT } from "@/Utils/Theme/constants"; -import { typographyLevels } from "@/Utils/Theme/Palette"; import { formatTimestamp } from "@/Utils/TimeUtils"; import { DashboardCard, CardMessage } from "../DashboardCard"; import { CardFigure, CardRow, CardRowLabel, CardStatLine } from "../CardPrimitives"; @@ -63,7 +62,6 @@ export const ChecksOnScheduleCard = () => { secondary={job.failReason} /> @@ -125,10 +123,7 @@ export const RecentErrorsCard = () => { isStale={isValidating && Boolean(data)} action={ errors > 0 ? ( - + {t("pages.dashboard.cards.recentErrors.count", { count: errors })} ) : null @@ -150,7 +145,6 @@ export const RecentErrorsCard = () => { secondary={[entry.service, entry.method].filter(Boolean).join(" · ")} /> {bucket.down > 0 && ( - + {t("pages.dashboard.cards.monitorsByType.down", { count: bucket.down, })} )} - + {bucket.total} diff --git a/client/src/Pages/Dashboard/Components/Cards/BusiestServersCard.tsx b/client/src/Pages/Dashboard/Components/Cards/BusiestServersCard.tsx index 1224e6b70..721974c78 100644 --- a/client/src/Pages/Dashboard/Components/Cards/BusiestServersCard.tsx +++ b/client/src/Pages/Dashboard/Components/Cards/BusiestServersCard.tsx @@ -5,7 +5,6 @@ import { useTranslation } from "react-i18next"; import { useMemo } from "react"; import { LAYOUT } from "@/Utils/Theme/constants"; -import { typographyLevels } from "@/Utils/Theme/Palette"; import { DashboardCard, CardMessage } from "../DashboardCard"; import { CardBar, CardRow, CardRowLabel } from "../CardPrimitives"; import { useMonitors } from "../../useDashboardData"; @@ -47,16 +46,8 @@ const Metric = ({ label, value }: { label: string; value: number | null }) => { justifyContent="space-between" gap={theme.spacing(LAYOUT.XS)} > - - {label} - - + {label} + {/* A down server reports nothing — show a dash, never 0%. */} {value === null ? "—" : `${value.toFixed(1)}%`} diff --git a/client/src/Pages/Dashboard/Components/Cards/CurrentlyDownCard.tsx b/client/src/Pages/Dashboard/Components/Cards/CurrentlyDownCard.tsx index 6dcfd77c8..81553afd1 100644 --- a/client/src/Pages/Dashboard/Components/Cards/CurrentlyDownCard.tsx +++ b/client/src/Pages/Dashboard/Components/Cards/CurrentlyDownCard.tsx @@ -7,7 +7,6 @@ import { useMemo } from "react"; import { Dot } from "@/Components/design-elements"; import { LAYOUT } from "@/Utils/Theme/constants"; -import { typographyLevels } from "@/Utils/Theme/Palette"; import { getStatusColor, getMonitorPath } from "@/Utils/MonitorUtils"; import { formatStatusCode } from "@/Utils/statusCode"; import { formatDuration } from "@/Utils/TimeUtils"; @@ -87,10 +86,7 @@ export const CurrentlyDownCard = () => { isStale={isValidating && Boolean(data)} action={ problems.length > 0 ? ( - + {t("pages.dashboard.cards.currentlyDown.count", { count: problems.length, })} @@ -129,7 +125,6 @@ export const CurrentlyDownCard = () => { gap={theme.spacing(LAYOUT.SM)} > @@ -137,7 +132,6 @@ export const CurrentlyDownCard = () => { {since && ( @@ -157,7 +151,6 @@ export const CurrentlyDownCard = () => { * inside the row's link is unreachable by keyboard. */} diff --git a/client/src/Pages/Dashboard/Components/Cards/MonitorStatusCard.tsx b/client/src/Pages/Dashboard/Components/Cards/MonitorStatusCard.tsx index 20994eacd..8f221488b 100644 --- a/client/src/Pages/Dashboard/Components/Cards/MonitorStatusCard.tsx +++ b/client/src/Pages/Dashboard/Components/Cards/MonitorStatusCard.tsx @@ -83,10 +83,7 @@ export const MonitorStatusCard = () => { > {summary.upMonitors} - + {t("pages.dashboard.cards.monitorStatus.upOfTotal", { total: summary.totalMonitors, })} @@ -124,16 +121,10 @@ export const MonitorStatusCard = () => { color={getStatusColor(state.status, theme)} size="md" /> - + {t(`pages.common.monitors.status.${state.key}`)} - + {state.count} diff --git a/client/src/Pages/Dashboard/Components/Cards/RankingCards.tsx b/client/src/Pages/Dashboard/Components/Cards/RankingCards.tsx index 20938a615..d83cc4758 100644 --- a/client/src/Pages/Dashboard/Components/Cards/RankingCards.tsx +++ b/client/src/Pages/Dashboard/Components/Cards/RankingCards.tsx @@ -5,7 +5,6 @@ import { useTranslation } from "react-i18next"; import { useMemo } from "react"; import { LAYOUT } from "@/Utils/Theme/constants"; -import { typographyLevels } from "@/Utils/Theme/Palette"; import { getMonitorPath, getUptimePercentageColor } from "@/Utils/MonitorUtils"; import { DashboardCard, CardMessage } from "../DashboardCard"; import { CardMeterRow, CardRow, CardRowLabel } from "../CardPrimitives"; @@ -32,10 +31,7 @@ const RankingCount = ({ shown, total }: { shown: number; total: number }) => { const theme = useTheme(); const { t } = useTranslation(); return ( - + {t("pages.dashboard.cards.ranking.topOf", { shown, total })} ); @@ -90,7 +86,6 @@ export const SlowestMonitorsCard = () => { color={theme.palette.primary.main} trailing={ @@ -161,7 +156,6 @@ export const LowestUptimeCard = () => { color={theme.palette[palette].main} trailing={ diff --git a/client/src/Pages/Dashboard/Components/Cards/RecentIncidentsCard.tsx b/client/src/Pages/Dashboard/Components/Cards/RecentIncidentsCard.tsx index 448e02bfd..f69aca839 100644 --- a/client/src/Pages/Dashboard/Components/Cards/RecentIncidentsCard.tsx +++ b/client/src/Pages/Dashboard/Components/Cards/RecentIncidentsCard.tsx @@ -6,7 +6,6 @@ import { useTranslation } from "react-i18next"; import { useGet } from "@/Hooks/UseApi"; import { Dot } from "@/Components/design-elements"; import { LAYOUT } from "@/Utils/Theme/constants"; -import { typographyLevels } from "@/Utils/Theme/Palette"; import { formatDuration, formatTimestamp } from "@/Utils/TimeUtils"; import { DashboardCard, CardMessage } from "../DashboardCard"; import { CardRow, CardRowLabel } from "../CardPrimitives"; @@ -43,10 +42,7 @@ export const RecentIncidentsCard = () => { isStale={isValidating && Boolean(data)} action={ data && data.totalActive > 0 ? ( - + {t("pages.dashboard.cards.recentIncidents.active", { count: data.totalActive, })} @@ -78,7 +74,6 @@ export const RecentIncidentsCard = () => { secondary={formatTimestamp(incident.startTime)} /> @@ -88,7 +83,6 @@ export const RecentIncidentsCard = () => { {incident.resolutionType === "manual" && ( diff --git a/client/src/Pages/Dashboard/Components/Cards/SummaryCards.tsx b/client/src/Pages/Dashboard/Components/Cards/SummaryCards.tsx index edf6aefec..a8d89907f 100644 --- a/client/src/Pages/Dashboard/Components/Cards/SummaryCards.tsx +++ b/client/src/Pages/Dashboard/Components/Cards/SummaryCards.tsx @@ -7,7 +7,6 @@ import { useMemo } from "react"; import { useGet } from "@/Hooks/UseApi"; import { Dot } from "@/Components/design-elements"; import { LAYOUT } from "@/Utils/Theme/constants"; -import { typographyLevels } from "@/Utils/Theme/Palette"; import { formatTimestamp } from "@/Utils/TimeUtils"; import { DashboardCard, CardMessage } from "../DashboardCard"; import { @@ -243,7 +242,6 @@ export const StatusPagesCard = () => { })} /> diff --git a/client/src/Pages/Dashboard/Components/DashboardCard.tsx b/client/src/Pages/Dashboard/Components/DashboardCard.tsx index 5b5a050b6..3596c18f6 100644 --- a/client/src/Pages/Dashboard/Components/DashboardCard.tsx +++ b/client/src/Pages/Dashboard/Components/DashboardCard.tsx @@ -9,7 +9,6 @@ import { useTranslation } from "react-i18next"; import { BaseBox } from "@/Components/design-elements"; import { LAYOUT } from "@/Utils/Theme/constants"; -import { typographyLevels } from "@/Utils/Theme/Palette"; import { useCardSlot } from "./CardSlotContext"; import type { ReactNode } from "react"; @@ -83,7 +82,6 @@ export const DashboardCard = ({ > - - {text} - + {text} {action} ); diff --git a/client/src/locales/ar.json b/client/src/locales/ar.json index 55f34650d..430e30b97 100644 --- a/client/src/locales/ar.json +++ b/client/src/locales/ar.json @@ -181,7 +181,8 @@ "statusPages": "صفحات الحالة", "maintenance": "الصيانة", "logs": "السجلات", - "settings": "الإعدادات" + "settings": "الإعدادات", + "dashboard": "لوحة المعلومات" }, "bottomMenu": { "support": "الدعم", @@ -223,6 +224,146 @@ } }, "pages": { + "dashboard": { + "header": { + "title": "لوحة المعلومات", + "description": "اطّلع على وقت التشغيل والبنية التحتية والحوادث والفحوصات في مكان واحد، لتلاحظ ما يحتاج إلى انتباه دون فتح كل صفحة." + }, + "card": { + "error": "تعذّر تحميل هذه البطاقة." + }, + "cards": { + "monitorStatus": { + "title": "حالة المراقبات", + "empty": "لا توجد مراقبات بعد.", + "upOfTotal": "من {{total}} تعمل" + }, + "currentlyDown": { + "title": "متوقفة حاليًا", + "empty": "جميع المراقبات تعمل. لا توجد حوادث مفتوحة.", + "count": "{{count}} تحتاج إلى انتباه" + }, + "monitorsByType": { + "title": "المراقبات حسب النوع", + "empty": "لا توجد مراقبات بعد.", + "down": "{{count}} متوقفة" + }, + "recentIncidents": { + "title": "الحوادث الأخيرة", + "empty": "لا توجد حوادث — جميع الأنظمة سليمة.", + "active": "{{count}} مفتوحة", + "ongoing": "جارية", + "manual": "يدوي", + "unknownMonitor": "مراقبة غير معروفة" + }, + "failedChecks": { + "title": "الفحوصات الفاشلة", + "empty": "لا توجد فحوصات بعد.", + "ratio": "{{failed}} من {{total}} في آخر يوم" + }, + "checkmateServer": { + "title": "خادم Checkmate", + "memory": "الذاكرة", + "eventLoop": "تأخير حلقة الأحداث", + "uptime": "مدة التشغيل", + "database": "قاعدة البيانات", + "readsWrites": "{{reads}} قراءة/ث · {{writes}} كتابة/ث" + }, + "ranking": { + "topOf": "أعلى {{shown}} من {{total}}", + "notEnough": "لا توجد مراقبات كافية للترتيب." + }, + "slowestMonitors": { + "title": "أبطأ المراقبات" + }, + "lowestUptime": { + "title": "أدنى وقت تشغيل" + }, + "monitorsByGroup": { + "title": "المراقبات حسب المجموعة", + "empty": "لا توجد مجموعات بعد. تُحدَّد المجموعات لكل مراقبة." + }, + "busiestServers": { + "title": "أكثر الخوادم انشغالًا", + "empty": "لا توجد مراقبات بنية تحتية بعد.", + "cpu": "المعالج", + "memory": "الذاكرة", + "disk": "القرص" + }, + "incidentStats": { + "title": "إحصائيات الحوادث", + "openNow": "مفتوحة الآن", + "avgResolution": "متوسط وقت الحل", + "hours": "{{hours}} س", + "mostIncidents": "الأكثر حوادث", + "total": "الإجمالي", + "resolved": "تم حلها", + "automatic": "تلقائي", + "manual": "يدوي", + "autoManual": "{{automatic}} تلقائي · {{manual}} يدوي" + }, + "notificationChannels": { + "title": "قنوات الإشعارات", + "empty": "لا توجد قنوات بعد." + }, + "maintenance": { + "title": "نوافذ الصيانة", + "empty": "لا توجد صيانة مجدولة.", + "runningNow": "قيد التشغيل", + "next": "النافذة التالية" + }, + "statusPages": { + "title": "صفحات الحالة", + "empty": "لا توجد صفحات حالة بعد.", + "monitorCount": "{{count}} مراقبة", + "published": "منشورة", + "draft": "مسودة" + }, + "checksOnSchedule": { + "title": "طابور الفحوصات", + "healthy": "جميع المهام البالغ عددها {{jobs}} تسير وفق الجدول على {{workers}} عامل.", + "failing": "المهام الفاشلة", + "scheduled": "المهام المجدولة", + "runningNow": "قيد التشغيل" + }, + "recentErrors": { + "title": "الأخطاء الأخيرة", + "empty": "لم تُسجَّل أخطاء.", + "count": "{{count}} أخطاء", + "warnings": "التحذيرات" + }, + "team": { + "title": "أعضاء الفريق", + "members": "{{count}} عضو", + "unverified": "غير مُوثَّقين" + } + }, + "picker": { + "trigger": "تحرير البطاقات", + "title": "بطاقات لوحة المعلومات", + "done": "تم", + "reset": "إعادة التعيين إلى الافتراضي", + "groups": { + "uptime": "وقت التشغيل", + "infrastructure": "البنية التحتية", + "incidents": "الحوادث", + "notifications": "الإشعارات", + "maintenance": "الصيانة", + "statusPages": "صفحات الحالة", + "checks": "الفحوصات", + "logs": "النظام", + "settings": "الإعدادات" + } + }, + "empty": { + "title": "لا توجد بطاقات في لوحة المعلومات", + "description": "اختر البطاقات التي تريد رؤيتها. يُحفظ اختيارك في هذا المتصفح." + }, + "reorder": { + "moveUp": "نقل لأعلى", + "moveDown": "نقل لأسفل" + } + }, "notFound": { "title": "يا إلهي! لقد أسقطت السوشي!", "subtitle": "إما أن الرابط غير موجود، أو ليس لديك صلاحية الوصول إليه." diff --git a/client/src/locales/ca.json b/client/src/locales/ca.json index 7e39eca86..e9b30e703 100644 --- a/client/src/locales/ca.json +++ b/client/src/locales/ca.json @@ -189,7 +189,8 @@ "statusPages": "Pàgines d'estat", "maintenance": "Manteniment", "logs": "Registres", - "settings": "Configuració" + "settings": "Configuració", + "dashboard": "Tauler" }, "bottomMenu": { "support": "Suport", @@ -223,6 +224,146 @@ } }, "pages": { + "dashboard": { + "header": { + "title": "Tauler", + "description": "Consulteu temps en línia, infraestructura, incidents i comprovacions en un sol lloc, per detectar què necessita atenció sense obrir cada pàgina." + }, + "card": { + "error": "No s'ha pogut carregar aquesta targeta." + }, + "cards": { + "monitorStatus": { + "title": "Estat dels monitors", + "empty": "Encara no hi ha monitors.", + "upOfTotal": "de {{total}} actius" + }, + "currentlyDown": { + "title": "Actualment caiguts", + "empty": "Tots els monitors estan actius. Cap incident obert.", + "count": "{{count}} requereixen atenció" + }, + "monitorsByType": { + "title": "Monitors per tipus", + "empty": "Encara no hi ha monitors.", + "down": "{{count}} caiguts" + }, + "recentIncidents": { + "title": "Incidents recents", + "empty": "Cap incident — tots els sistemes sans.", + "active": "{{count}} oberts", + "ongoing": "En curs", + "manual": "Manual", + "unknownMonitor": "Monitor desconegut" + }, + "failedChecks": { + "title": "Comprovacions fallides", + "empty": "Encara no hi ha comprovacions.", + "ratio": "{{failed}} de {{total}} el darrer dia" + }, + "checkmateServer": { + "title": "Servidor de Checkmate", + "memory": "Memòria", + "eventLoop": "Retard del bucle d'esdeveniments", + "uptime": "Temps actiu", + "database": "Base de dades", + "readsWrites": "{{reads}} lectures/s · {{writes}} escriptures/s" + }, + "ranking": { + "topOf": "Top {{shown}} de {{total}}", + "notEnough": "No hi ha prou monitors per fer una classificació." + }, + "slowestMonitors": { + "title": "Monitors més lents" + }, + "lowestUptime": { + "title": "Temps en línia més baix" + }, + "monitorsByGroup": { + "title": "Monitors per grup", + "empty": "Encara no hi ha grups. Els grups es defineixen per monitor." + }, + "busiestServers": { + "title": "Servidors més carregats", + "empty": "Encara no hi ha monitors d'infraestructura.", + "cpu": "CPU", + "memory": "Memòria", + "disk": "Disc" + }, + "incidentStats": { + "title": "Estadístiques d'incidents", + "openNow": "Oberts ara", + "avgResolution": "Temps mitjà de resolució", + "hours": "{{hours}} h", + "mostIncidents": "Més incidents", + "total": "total", + "resolved": "Resolts", + "automatic": "Automàtica", + "manual": "Manual", + "autoManual": "{{automatic}} automàtiques · {{manual}} manuals" + }, + "notificationChannels": { + "title": "Canals de notificació", + "empty": "Encara no hi ha canals." + }, + "maintenance": { + "title": "Finestres de manteniment", + "empty": "Cap manteniment programat.", + "runningNow": "En execució", + "next": "Propera finestra" + }, + "statusPages": { + "title": "Pàgines d'estat", + "empty": "Encara no hi ha pàgines d'estat.", + "monitorCount": "{{count}} monitors", + "published": "Publicada", + "draft": "Esborrany" + }, + "checksOnSchedule": { + "title": "Cua de comprovacions", + "healthy": "Les {{jobs}} tasques van segons el previst en {{workers}} worker(s).", + "failing": "Tasques fallides", + "scheduled": "Tasques programades", + "runningNow": "En execució" + }, + "recentErrors": { + "title": "Errors recents", + "empty": "Cap error registrat.", + "count": "{{count}} errors", + "warnings": "Advertiments" + }, + "team": { + "title": "Membres de l'equip", + "members": "{{count}} membres", + "unverified": "Sense verificar" + } + }, + "picker": { + "trigger": "Edita les targetes", + "title": "Targetes del tauler", + "done": "Fet", + "reset": "Restableix els valors predeterminats", + "groups": { + "uptime": "Temps en línia", + "infrastructure": "Infraestructura", + "incidents": "Incidents", + "notifications": "Notificacions", + "maintenance": "Manteniment", + "statusPages": "Pàgines d'estat", + "checks": "Comprovacions", + "logs": "Sistema", + "settings": "Configuració" + } + }, + "empty": { + "title": "No hi ha targetes al vostre tauler", + "description": "Trieu les targetes que voleu veure. La vostra selecció es recorda en aquest navegador." + }, + "reorder": { + "moveUp": "Mou amunt", + "moveDown": "Mou avall" + } + }, "notFound": { "title": "Oh no! Has deixat caure el teu sushi!", "subtitle": "O bé la URL no existeix, o bé no tens accés." diff --git a/client/src/locales/cs.json b/client/src/locales/cs.json index d04b9b23b..ffd00931b 100644 --- a/client/src/locales/cs.json +++ b/client/src/locales/cs.json @@ -181,7 +181,8 @@ "statusPages": "Stavové stránky", "maintenance": "Údržba", "logs": "Záznamy", - "settings": "Nastavení" + "settings": "Nastavení", + "dashboard": "Přehled" }, "bottomMenu": { "support": "Podpora", @@ -223,6 +224,146 @@ } }, "pages": { + "dashboard": { + "header": { + "title": "Přehled", + "description": "Zobrazte dostupnost, infrastrukturu, incidenty a kontroly na jednom místě, abyste poznali, co vyžaduje pozornost, bez otevírání každé stránky." + }, + "card": { + "error": "Tuto kartu se nepodařilo načíst." + }, + "cards": { + "monitorStatus": { + "title": "Stav monitorů", + "empty": "Zatím žádné monitory.", + "upOfTotal": "z {{total}} běží" + }, + "currentlyDown": { + "title": "Aktuálně nedostupné", + "empty": "Všechny monitory běží. Žádné otevřené incidenty.", + "count": "{{count}} vyžaduje pozornost" + }, + "monitorsByType": { + "title": "Monitory podle typu", + "empty": "Zatím žádné monitory.", + "down": "{{count}} nedostupných" + }, + "recentIncidents": { + "title": "Nedávné incidenty", + "empty": "Žádné incidenty — všechny systémy v pořádku.", + "active": "{{count}} otevřených", + "ongoing": "Probíhá", + "manual": "Ručně", + "unknownMonitor": "Neznámý monitor" + }, + "failedChecks": { + "title": "Neúspěšné kontroly", + "empty": "Zatím žádné kontroly.", + "ratio": "{{failed}} z {{total}} za poslední den" + }, + "checkmateServer": { + "title": "Server Checkmate", + "memory": "Paměť", + "eventLoop": "Zpoždění event loop", + "uptime": "Doba běhu", + "database": "Databáze", + "readsWrites": "{{reads}} čtení/s · {{writes}} zápisů/s" + }, + "ranking": { + "topOf": "Top {{shown}} z {{total}}", + "notEnough": "Zatím není dost monitorů pro žebříček." + }, + "slowestMonitors": { + "title": "Nejpomalejší monitory" + }, + "lowestUptime": { + "title": "Nejnižší dostupnost" + }, + "monitorsByGroup": { + "title": "Monitory podle skupiny", + "empty": "Zatím žádné skupiny. Skupiny se nastavují u monitoru." + }, + "busiestServers": { + "title": "Nejvytíženější servery", + "empty": "Zatím žádné monitory infrastruktury.", + "cpu": "CPU", + "memory": "Paměť", + "disk": "Disk" + }, + "incidentStats": { + "title": "Statistiky incidentů", + "openNow": "Nyní otevřené", + "avgResolution": "Průměrná doba vyřešení", + "hours": "{{hours}} h", + "mostIncidents": "Nejvíce incidentů", + "total": "celkem", + "resolved": "Vyřešeno", + "automatic": "Automaticky", + "manual": "Ručně", + "autoManual": "{{automatic}} automaticky · {{manual}} ručně" + }, + "notificationChannels": { + "title": "Kanály oznámení", + "empty": "Zatím žádné kanály." + }, + "maintenance": { + "title": "Okna údržby", + "empty": "Žádná naplánovaná údržba.", + "runningNow": "Právě probíhá", + "next": "Další okno" + }, + "statusPages": { + "title": "Stavové stránky", + "empty": "Zatím žádné stavové stránky.", + "monitorCount": "{{count}} monitorů", + "published": "Publikováno", + "draft": "Koncept" + }, + "checksOnSchedule": { + "title": "Fronta kontrol", + "healthy": "Všech {{jobs}} úloh běží podle plánu na {{workers}} workerech.", + "failing": "Selhávající úlohy", + "scheduled": "Naplánované úlohy", + "runningNow": "Právě probíhá" + }, + "recentErrors": { + "title": "Nedávné chyby", + "empty": "Žádné zaznamenané chyby.", + "count": "{{count}} chyb", + "warnings": "Varování" + }, + "team": { + "title": "Členové týmu", + "members": "{{count}} členů", + "unverified": "Neověření" + } + }, + "picker": { + "trigger": "Upravit karty", + "title": "Karty přehledu", + "done": "Hotovo", + "reset": "Obnovit výchozí", + "groups": { + "uptime": "Dostupnost", + "infrastructure": "Infrastruktura", + "incidents": "Incidenty", + "notifications": "Notifikace", + "maintenance": "Údržba", + "statusPages": "Stavové stránky", + "checks": "Kontroly", + "logs": "Systém", + "settings": "Nastavení" + } + }, + "empty": { + "title": "Ve vašem přehledu nejsou žádné karty", + "description": "Vyberte karty, které chcete zobrazit. Váš výběr se uchová v tomto prohlížeči." + }, + "reorder": { + "moveUp": "Posunout nahoru", + "moveDown": "Posunout dolů" + } + }, "notFound": { "title": "Ale ne! Upustili jste své sushi!", "subtitle": "Buď tato URL neexistuje, nebo k ní nemáte přístup." diff --git a/client/src/locales/de.json b/client/src/locales/de.json index d43d5d52a..2930babc7 100644 --- a/client/src/locales/de.json +++ b/client/src/locales/de.json @@ -181,7 +181,8 @@ "statusPages": "Statusseite", "maintenance": "Wartung", "logs": "Protokolle", - "settings": "Einstellungen" + "settings": "Einstellungen", + "dashboard": "Dashboard" }, "bottomMenu": { "support": "Support", @@ -223,6 +224,146 @@ } }, "pages": { + "dashboard": { + "header": { + "title": "Dashboard", + "description": "Sehen Sie Uptime, Infrastruktur, Vorfälle und Prüfungen an einem Ort und erkennen Sie, was Aufmerksamkeit braucht, ohne jede Seite zu öffnen." + }, + "card": { + "error": "Diese Karte konnte nicht geladen werden." + }, + "cards": { + "monitorStatus": { + "title": "Monitor-Status", + "empty": "Noch keine Monitore.", + "upOfTotal": "von {{total}} online" + }, + "currentlyDown": { + "title": "Derzeit offline", + "empty": "Alle Monitore sind online. Keine offenen Vorfälle.", + "count": "{{count}} benötigen Aufmerksamkeit" + }, + "monitorsByType": { + "title": "Monitore nach Typ", + "empty": "Noch keine Monitore.", + "down": "{{count}} offline" + }, + "recentIncidents": { + "title": "Letzte Vorfälle", + "empty": "Keine Vorfälle — alle Systeme gesund.", + "active": "{{count}} offen", + "ongoing": "Laufend", + "manual": "Manuell", + "unknownMonitor": "Unbekannter Monitor" + }, + "failedChecks": { + "title": "Fehlgeschlagene Prüfungen", + "empty": "Noch keine Prüfungen.", + "ratio": "{{failed}} von {{total}} am letzten Tag" + }, + "checkmateServer": { + "title": "Checkmate-Server", + "memory": "Arbeitsspeicher", + "eventLoop": "Event-Loop-Verzögerung", + "uptime": "Laufzeit", + "database": "Datenbank", + "readsWrites": "{{reads}} Lesevorgänge/s · {{writes}} Schreibvorgänge/s" + }, + "ranking": { + "topOf": "Top {{shown}} von {{total}}", + "notEnough": "Noch nicht genug Monitore für ein Ranking." + }, + "slowestMonitors": { + "title": "Langsamste Monitore" + }, + "lowestUptime": { + "title": "Niedrigste Uptime" + }, + "monitorsByGroup": { + "title": "Monitore nach Gruppe", + "empty": "Noch keine Gruppen. Gruppen werden pro Monitor gesetzt." + }, + "busiestServers": { + "title": "Ausgelastetste Server", + "empty": "Noch keine Infrastruktur-Monitore.", + "cpu": "CPU", + "memory": "Arbeitsspeicher", + "disk": "Festplatte" + }, + "incidentStats": { + "title": "Vorfallstatistik", + "openNow": "Jetzt offen", + "avgResolution": "Durchschnittliche Lösungszeit", + "hours": "{{hours}} Std.", + "mostIncidents": "Meiste Vorfälle", + "total": "gesamt", + "resolved": "Gelöst", + "automatic": "Automatisch", + "manual": "Manuell", + "autoManual": "{{automatic}} automatisch · {{manual}} manuell" + }, + "notificationChannels": { + "title": "Benachrichtigungskanäle", + "empty": "Noch keine Kanäle." + }, + "maintenance": { + "title": "Wartungsfenster", + "empty": "Keine Wartung geplant.", + "runningNow": "Läuft gerade", + "next": "Nächstes Fenster" + }, + "statusPages": { + "title": "Statusseiten", + "empty": "Noch keine Statusseiten.", + "monitorCount": "{{count}} Monitore", + "published": "Veröffentlicht", + "draft": "Entwurf" + }, + "checksOnSchedule": { + "title": "Prüfungs-Warteschlange", + "healthy": "Alle {{jobs}} Jobs planmäßig auf {{workers}} Worker(n).", + "failing": "Fehlgeschlagene Jobs", + "scheduled": "Geplante Jobs", + "runningNow": "Läuft gerade" + }, + "recentErrors": { + "title": "Letzte Fehler", + "empty": "Keine Fehler protokolliert.", + "count": "{{count}} Fehler", + "warnings": "Warnungen" + }, + "team": { + "title": "Teammitglieder", + "members": "{{count}} Mitglieder", + "unverified": "Nicht verifiziert" + } + }, + "picker": { + "trigger": "Karten bearbeiten", + "title": "Dashboard-Karten", + "done": "Fertig", + "reset": "Auf Standard zurücksetzen", + "groups": { + "uptime": "Uptime", + "infrastructure": "Infrastruktur", + "incidents": "Vorfälle", + "notifications": "Benachrichtigungen", + "maintenance": "Wartung", + "statusPages": "Statusseiten", + "checks": "Prüfungen", + "logs": "System", + "settings": "Einstellungen" + } + }, + "empty": { + "title": "Keine Karten auf Ihrem Dashboard", + "description": "Wählen Sie die Karten, die Sie sehen möchten. Ihre Auswahl wird in diesem Browser gespeichert." + }, + "reorder": { + "moveUp": "Nach oben", + "moveDown": "Nach unten" + } + }, "notFound": { "title": "Oh nein! Sie haben Ihr Sushi fallen lassen!", "subtitle": "Entweder existiert die URL nicht oder Sie haben keinen Zugriff darauf." diff --git a/client/src/locales/en.json b/client/src/locales/en.json index d8c817b4e..95799beee 100644 --- a/client/src/locales/en.json +++ b/client/src/locales/en.json @@ -249,7 +249,7 @@ "dashboard": { "header": { "title": "Dashboard", - "description": "What is wrong right now, across every monitor type." + "description": "See uptime, infrastructure, incidents and checks together in one place, so you can spot what needs attention without opening every page." }, "card": { "error": "Could not load this card." diff --git a/client/src/locales/es.json b/client/src/locales/es.json index 589399a83..617e7dd28 100644 --- a/client/src/locales/es.json +++ b/client/src/locales/es.json @@ -181,7 +181,8 @@ "statusPages": "Páginas de estado", "maintenance": "Mantenimiento", "logs": "Registros", - "settings": "Configuración" + "settings": "Configuración", + "dashboard": "Panel" }, "bottomMenu": { "support": "Soporte", @@ -223,6 +224,146 @@ } }, "pages": { + "dashboard": { + "header": { + "title": "Panel", + "description": "Vea uptime, infraestructura, incidentes y comprobaciones en un solo lugar, para detectar lo que necesita atención sin abrir cada página." + }, + "card": { + "error": "No se pudo cargar esta tarjeta." + }, + "cards": { + "monitorStatus": { + "title": "Estado de los monitores", + "empty": "Aún no hay monitores.", + "upOfTotal": "de {{total}} activos" + }, + "currentlyDown": { + "title": "Caídos ahora", + "empty": "Todos los monitores están activos. Sin incidentes abiertos.", + "count": "{{count}} requieren atención" + }, + "monitorsByType": { + "title": "Monitores por tipo", + "empty": "Aún no hay monitores.", + "down": "{{count}} caídos" + }, + "recentIncidents": { + "title": "Incidentes recientes", + "empty": "Sin incidentes: todos los sistemas están sanos.", + "active": "{{count}} abiertos", + "ongoing": "En curso", + "manual": "Manual", + "unknownMonitor": "Monitor desconocido" + }, + "failedChecks": { + "title": "Comprobaciones fallidas", + "empty": "Aún no hay comprobaciones.", + "ratio": "{{failed}} de {{total}} en el último día" + }, + "checkmateServer": { + "title": "Servidor de Checkmate", + "memory": "Memoria", + "eventLoop": "Retardo del bucle de eventos", + "uptime": "Tiempo activo", + "database": "Base de datos", + "readsWrites": "{{reads}} lecturas/s · {{writes}} escrituras/s" + }, + "ranking": { + "topOf": "Top {{shown}} de {{total}}", + "notEnough": "No hay suficientes monitores para clasificar." + }, + "slowestMonitors": { + "title": "Monitores más lentos" + }, + "lowestUptime": { + "title": "Menor uptime" + }, + "monitorsByGroup": { + "title": "Monitores por grupo", + "empty": "Aún no hay grupos. Los grupos se definen por monitor." + }, + "busiestServers": { + "title": "Servidores más cargados", + "empty": "Aún no hay monitores de infraestructura.", + "cpu": "CPU", + "memory": "Memoria", + "disk": "Disco" + }, + "incidentStats": { + "title": "Estadísticas de incidentes", + "openNow": "Abiertos ahora", + "avgResolution": "Tiempo medio de resolución", + "hours": "{{hours}} h", + "mostIncidents": "Más incidentes", + "total": "total", + "resolved": "Resueltos", + "automatic": "Automática", + "manual": "Manual", + "autoManual": "{{automatic}} automáticas · {{manual}} manuales" + }, + "notificationChannels": { + "title": "Canales de notificación", + "empty": "Aún no hay canales." + }, + "maintenance": { + "title": "Ventanas de mantenimiento", + "empty": "Sin mantenimiento programado.", + "runningNow": "En ejecución", + "next": "Próxima ventana" + }, + "statusPages": { + "title": "Páginas de estado", + "empty": "Aún no hay páginas de estado.", + "monitorCount": "{{count}} monitores", + "published": "Publicada", + "draft": "Borrador" + }, + "checksOnSchedule": { + "title": "Cola de comprobaciones", + "healthy": "Los {{jobs}} trabajos van según lo previsto en {{workers}} worker(s).", + "failing": "Trabajos fallidos", + "scheduled": "Trabajos programados", + "runningNow": "En ejecución" + }, + "recentErrors": { + "title": "Errores recientes", + "empty": "No se registraron errores.", + "count": "{{count}} errores", + "warnings": "Advertencias" + }, + "team": { + "title": "Miembros del equipo", + "members": "{{count}} miembros", + "unverified": "Sin verificar" + } + }, + "picker": { + "trigger": "Editar tarjetas", + "title": "Tarjetas del panel", + "done": "Listo", + "reset": "Restablecer valores predeterminados", + "groups": { + "uptime": "Uptime", + "infrastructure": "Infraestructura", + "incidents": "Incidentes", + "notifications": "Notificaciones", + "maintenance": "Mantenimiento", + "statusPages": "Páginas de estado", + "checks": "Comprobaciones", + "logs": "Sistema", + "settings": "Configuración" + } + }, + "empty": { + "title": "No hay tarjetas en tu panel", + "description": "Elige las tarjetas que quieres ver. Tu selección se recuerda en este navegador." + }, + "reorder": { + "moveUp": "Mover arriba", + "moveDown": "Mover abajo" + } + }, "notFound": { "title": "¡Oh no! ¡Se le cayó el sushi!", "subtitle": "La URL no existe o no tiene acceso a ella." diff --git a/client/src/locales/fi.json b/client/src/locales/fi.json index 030698d44..1bb895215 100644 --- a/client/src/locales/fi.json +++ b/client/src/locales/fi.json @@ -181,7 +181,8 @@ "statusPages": "Tilasivut", "maintenance": "Huolto", "logs": "Lokit", - "settings": "Asetukset" + "settings": "Asetukset", + "dashboard": "Kojelauta" }, "bottomMenu": { "support": "Tuki", @@ -223,6 +224,146 @@ } }, "pages": { + "dashboard": { + "header": { + "title": "Kojelauta", + "description": "Näe käytettävyys, infrastruktuuri, tapaukset ja tarkistukset yhdessä paikassa, jotta huomaat huomiota vaativat asiat avaamatta jokaista sivua." + }, + "card": { + "error": "Tätä korttia ei voitu ladata." + }, + "cards": { + "monitorStatus": { + "title": "Monitorien tila", + "empty": "Ei vielä monitoreja.", + "upOfTotal": "/ {{total}} käynnissä" + }, + "currentlyDown": { + "title": "Tällä hetkellä alhaalla", + "empty": "Kaikki monitorit ovat käynnissä. Ei avoimia tapauksia.", + "count": "{{count}} vaatii huomiota" + }, + "monitorsByType": { + "title": "Monitorit tyypeittäin", + "empty": "Ei vielä monitoreja.", + "down": "{{count}} alhaalla" + }, + "recentIncidents": { + "title": "Viimeisimmät tapaukset", + "empty": "Ei tapauksia — kaikki järjestelmät kunnossa.", + "active": "{{count}} avoinna", + "ongoing": "Käynnissä", + "manual": "Manuaalinen", + "unknownMonitor": "Tuntematon monitori" + }, + "failedChecks": { + "title": "Epäonnistuneet tarkistukset", + "empty": "Ei vielä tarkistuksia.", + "ratio": "{{failed}} / {{total}} viimeisen vuorokauden aikana" + }, + "checkmateServer": { + "title": "Checkmate-palvelin", + "memory": "Muisti", + "eventLoop": "Tapahtumasilmukan viive", + "uptime": "Käyntiaika", + "database": "Tietokanta", + "readsWrites": "{{reads}} lukua/s · {{writes}} kirjoitusta/s" + }, + "ranking": { + "topOf": "Top {{shown}} / {{total}}", + "notEnough": "Ei tarpeeksi monitoreja järjestykseen." + }, + "slowestMonitors": { + "title": "Hitaimmat monitorit" + }, + "lowestUptime": { + "title": "Alhaisin käytettävyys" + }, + "monitorsByGroup": { + "title": "Monitorit ryhmittäin", + "empty": "Ei vielä ryhmiä. Ryhmät asetetaan monitorikohtaisesti." + }, + "busiestServers": { + "title": "Kuormitetuimmat palvelimet", + "empty": "Ei vielä infrastruktuurimonitoreja.", + "cpu": "Suoritin", + "memory": "Muisti", + "disk": "Levy" + }, + "incidentStats": { + "title": "Tapaustilastot", + "openNow": "Avoinna nyt", + "avgResolution": "Keskimääräinen ratkaisuaika", + "hours": "{{hours}} t", + "mostIncidents": "Eniten tapauksia", + "total": "yhteensä", + "resolved": "Ratkaistu", + "automatic": "Automaattinen", + "manual": "Manuaalinen", + "autoManual": "{{automatic}} automaattista · {{manual}} manuaalista" + }, + "notificationChannels": { + "title": "Ilmoituskanavat", + "empty": "Ei vielä kanavia." + }, + "maintenance": { + "title": "Huoltoikkunat", + "empty": "Ei suunniteltua huoltoa.", + "runningNow": "Käynnissä nyt", + "next": "Seuraava ikkuna" + }, + "statusPages": { + "title": "Tilasivut", + "empty": "Ei vielä tilasivuja.", + "monitorCount": "{{count}} monitoria", + "published": "Julkaistu", + "draft": "Luonnos" + }, + "checksOnSchedule": { + "title": "Tarkistusjono", + "healthy": "Kaikki {{jobs}} työtä aikataulussa {{workers}} työntekijällä.", + "failing": "Epäonnistuvat työt", + "scheduled": "Ajastetut työt", + "runningNow": "Käynnissä nyt" + }, + "recentErrors": { + "title": "Viimeisimmät virheet", + "empty": "Ei kirjattuja virheitä.", + "count": "{{count}} virhettä", + "warnings": "Varoitukset" + }, + "team": { + "title": "Tiimin jäsenet", + "members": "{{count}} jäsentä", + "unverified": "Vahvistamattomat" + } + }, + "picker": { + "trigger": "Muokkaa kortteja", + "title": "Kojelaudan kortit", + "done": "Valmis", + "reset": "Palauta oletukset", + "groups": { + "uptime": "Käytettävyys", + "infrastructure": "Infrastruktuuri", + "incidents": "Tapaukset", + "notifications": "Ilmoitukset", + "maintenance": "Huolto", + "statusPages": "Tilasivut", + "checks": "Tarkistukset", + "logs": "Järjestelmä", + "settings": "Asetukset" + } + }, + "empty": { + "title": "Kojelaudallasi ei ole kortteja", + "description": "Valitse näytettävät kortit. Valintasi muistetaan tässä selaimessa." + }, + "reorder": { + "moveUp": "Siirrä ylös", + "moveDown": "Siirrä alas" + } + }, "notFound": { "title": "Voi ei! Sushisi putosi!", "subtitle": "Joko URL-osoitetta ei ole olemassa tai sinulla ei ole pääsyä siihen." diff --git a/client/src/locales/fr.json b/client/src/locales/fr.json index 1e0a6b096..55e1fc0b8 100644 --- a/client/src/locales/fr.json +++ b/client/src/locales/fr.json @@ -181,7 +181,8 @@ "statusPages": "Pages de statut", "maintenance": "Maintenance", "logs": "Journaux", - "settings": "Paramètres" + "settings": "Paramètres", + "dashboard": "Tableau de bord" }, "bottomMenu": { "support": "Support", @@ -223,6 +224,146 @@ } }, "pages": { + "dashboard": { + "header": { + "title": "Tableau de bord", + "description": "Visualisez la disponibilité, l'infrastructure, les incidents et les vérifications au même endroit, pour repérer ce qui demande votre attention sans ouvrir chaque page." + }, + "card": { + "error": "Impossible de charger cette carte." + }, + "cards": { + "monitorStatus": { + "title": "État des moniteurs", + "empty": "Aucun moniteur pour l'instant.", + "upOfTotal": "sur {{total}} en ligne" + }, + "currentlyDown": { + "title": "Actuellement hors ligne", + "empty": "Tous les moniteurs sont en ligne. Aucun incident ouvert.", + "count": "{{count}} à surveiller" + }, + "monitorsByType": { + "title": "Moniteurs par type", + "empty": "Aucun moniteur pour l'instant.", + "down": "{{count}} hors ligne" + }, + "recentIncidents": { + "title": "Incidents récents", + "empty": "Aucun incident — tous les systèmes sont sains.", + "active": "{{count}} ouverts", + "ongoing": "En cours", + "manual": "Manuel", + "unknownMonitor": "Moniteur inconnu" + }, + "failedChecks": { + "title": "Vérifications échouées", + "empty": "Aucune vérification pour l'instant.", + "ratio": "{{failed}} sur {{total}} le dernier jour" + }, + "checkmateServer": { + "title": "Serveur Checkmate", + "memory": "Mémoire", + "eventLoop": "Latence de la boucle d'événements", + "uptime": "Durée de fonctionnement", + "database": "Base de données", + "readsWrites": "{{reads}} lectures/s · {{writes}} écritures/s" + }, + "ranking": { + "topOf": "Top {{shown}} sur {{total}}", + "notEnough": "Pas assez de moniteurs pour établir un classement." + }, + "slowestMonitors": { + "title": "Moniteurs les plus lents" + }, + "lowestUptime": { + "title": "Disponibilité la plus faible" + }, + "monitorsByGroup": { + "title": "Moniteurs par groupe", + "empty": "Aucun groupe pour l'instant. Les groupes se définissent par moniteur." + }, + "busiestServers": { + "title": "Serveurs les plus chargés", + "empty": "Aucun moniteur d'infrastructure pour l'instant.", + "cpu": "Processeur", + "memory": "Mémoire", + "disk": "Disque" + }, + "incidentStats": { + "title": "Statistiques d'incidents", + "openNow": "Ouverts maintenant", + "avgResolution": "Temps moyen de résolution", + "hours": "{{hours}} h", + "mostIncidents": "Le plus d'incidents", + "total": "total", + "resolved": "Résolus", + "automatic": "Automatique", + "manual": "Manuel", + "autoManual": "{{automatic}} automatiques · {{manual}} manuels" + }, + "notificationChannels": { + "title": "Canaux de notification", + "empty": "Aucun canal pour l'instant." + }, + "maintenance": { + "title": "Fenêtres de maintenance", + "empty": "Aucune maintenance planifiée.", + "runningNow": "En cours", + "next": "Prochaine fenêtre" + }, + "statusPages": { + "title": "Pages de statut", + "empty": "Aucune page de statut pour l'instant.", + "monitorCount": "{{count}} moniteurs", + "published": "Publiée", + "draft": "Brouillon" + }, + "checksOnSchedule": { + "title": "File de vérifications", + "healthy": "Les {{jobs}} tâches sont à l'heure sur {{workers}} worker(s).", + "failing": "Tâches en échec", + "scheduled": "Tâches planifiées", + "runningNow": "En cours" + }, + "recentErrors": { + "title": "Erreurs récentes", + "empty": "Aucune erreur enregistrée.", + "count": "{{count}} erreurs", + "warnings": "Avertissements" + }, + "team": { + "title": "Membres de l'équipe", + "members": "{{count}} membres", + "unverified": "Non vérifiés" + } + }, + "picker": { + "trigger": "Modifier les cartes", + "title": "Cartes du tableau de bord", + "done": "Terminé", + "reset": "Réinitialiser par défaut", + "groups": { + "uptime": "Disponibilité", + "infrastructure": "Infrastructure", + "incidents": "Incidents", + "notifications": "Notifications", + "maintenance": "Maintenance", + "statusPages": "Pages de statut", + "checks": "Vérifications", + "logs": "Système", + "settings": "Paramètres" + } + }, + "empty": { + "title": "Aucune carte sur votre tableau de bord", + "description": "Choisissez les cartes à afficher. Votre sélection est mémorisée dans ce navigateur." + }, + "reorder": { + "moveUp": "Monter", + "moveDown": "Descendre" + } + }, "notFound": { "title": "Oh non ! Vous avez fait tomber vos sushis !", "subtitle": "Soit l'URL n'existe pas, soit vous n'y avez pas accès." diff --git a/client/src/locales/it.json b/client/src/locales/it.json index 3d6d1ea16..dc2893bdd 100644 --- a/client/src/locales/it.json +++ b/client/src/locales/it.json @@ -193,7 +193,8 @@ "statusPages": "Pagine di stato", "maintenance": "Manutenzione", "logs": "Log", - "settings": "Impostazioni" + "settings": "Impostazioni", + "dashboard": "Dashboard" }, "bottomMenu": { "support": "Supporto", @@ -227,6 +228,146 @@ } }, "pages": { + "dashboard": { + "header": { + "title": "Dashboard", + "description": "Vedi uptime, infrastruttura, incidenti e verifiche in un unico posto, per individuare ciò che richiede attenzione senza aprire ogni pagina." + }, + "card": { + "error": "Impossibile caricare questa scheda." + }, + "cards": { + "monitorStatus": { + "title": "Stato dei monitor", + "empty": "Nessun monitor ancora.", + "upOfTotal": "su {{total}} attivi" + }, + "currentlyDown": { + "title": "Attualmente offline", + "empty": "Tutti i monitor sono attivi. Nessun incidente aperto.", + "count": "{{count}} richiedono attenzione" + }, + "monitorsByType": { + "title": "Monitor per tipo", + "empty": "Nessun monitor ancora.", + "down": "{{count}} offline" + }, + "recentIncidents": { + "title": "Incidenti recenti", + "empty": "Nessun incidente — tutti i sistemi sono sani.", + "active": "{{count}} aperti", + "ongoing": "In corso", + "manual": "Manuale", + "unknownMonitor": "Monitor sconosciuto" + }, + "failedChecks": { + "title": "Verifiche fallite", + "empty": "Nessuna verifica ancora.", + "ratio": "{{failed}} su {{total}} nell'ultimo giorno" + }, + "checkmateServer": { + "title": "Server Checkmate", + "memory": "Memoria", + "eventLoop": "Ritardo dell'event loop", + "uptime": "Tempo di attività", + "database": "Database", + "readsWrites": "{{reads}} letture/s · {{writes}} scritture/s" + }, + "ranking": { + "topOf": "Top {{shown}} su {{total}}", + "notEnough": "Non ci sono abbastanza monitor per una classifica." + }, + "slowestMonitors": { + "title": "Monitor più lenti" + }, + "lowestUptime": { + "title": "Uptime più basso" + }, + "monitorsByGroup": { + "title": "Monitor per gruppo", + "empty": "Nessun gruppo ancora. I gruppi si impostano per monitor." + }, + "busiestServers": { + "title": "Server più carichi", + "empty": "Nessun monitor infrastruttura ancora.", + "cpu": "CPU", + "memory": "Memoria", + "disk": "Disco" + }, + "incidentStats": { + "title": "Statistiche incidenti", + "openNow": "Aperti ora", + "avgResolution": "Tempo medio di risoluzione", + "hours": "{{hours}} h", + "mostIncidents": "Più incidenti", + "total": "totale", + "resolved": "Risolti", + "automatic": "Automatica", + "manual": "Manuale", + "autoManual": "{{automatic}} automatiche · {{manual}} manuali" + }, + "notificationChannels": { + "title": "Canali di notifica", + "empty": "Nessun canale ancora." + }, + "maintenance": { + "title": "Finestre di manutenzione", + "empty": "Nessuna manutenzione pianificata.", + "runningNow": "In esecuzione", + "next": "Prossima finestra" + }, + "statusPages": { + "title": "Pagine di stato", + "empty": "Nessuna pagina di stato ancora.", + "monitorCount": "{{count}} monitor", + "published": "Pubblicata", + "draft": "Bozza" + }, + "checksOnSchedule": { + "title": "Coda delle verifiche", + "healthy": "Tutti i {{jobs}} job sono in orario su {{workers}} worker.", + "failing": "Job falliti", + "scheduled": "Job pianificati", + "runningNow": "In esecuzione" + }, + "recentErrors": { + "title": "Errori recenti", + "empty": "Nessun errore registrato.", + "count": "{{count}} errori", + "warnings": "Avvisi" + }, + "team": { + "title": "Membri del team", + "members": "{{count}} membri", + "unverified": "Non verificati" + } + }, + "picker": { + "trigger": "Modifica schede", + "title": "Schede della dashboard", + "done": "Fatto", + "reset": "Ripristina predefiniti", + "groups": { + "uptime": "Uptime", + "infrastructure": "Infrastruttura", + "incidents": "Incidenti", + "notifications": "Notifiche", + "maintenance": "Manutenzione", + "statusPages": "Pagine di stato", + "checks": "Verifiche", + "logs": "Sistema", + "settings": "Impostazioni" + } + }, + "empty": { + "title": "Nessuna scheda nella tua dashboard", + "description": "Scegli le schede da mostrare. La tua selezione viene ricordata in questo browser." + }, + "reorder": { + "moveUp": "Sposta su", + "moveDown": "Sposta giù" + } + }, "notFound": { "title": "Oh no! Hai fatto cadere il tuo sushi!", "subtitle": "L'URL non esiste, oppure non hai accesso." diff --git a/client/src/locales/ja.json b/client/src/locales/ja.json index 16e2ec641..e8cfbe2a1 100644 --- a/client/src/locales/ja.json +++ b/client/src/locales/ja.json @@ -181,7 +181,8 @@ "statusPages": "ステータスページ", "maintenance": "メンテナンス", "logs": "ログ", - "settings": "設定" + "settings": "設定", + "dashboard": "ダッシュボード" }, "bottomMenu": { "support": "サポート", @@ -223,6 +224,146 @@ } }, "pages": { + "dashboard": { + "header": { + "title": "ダッシュボード", + "description": "稼働状況、インフラ、インシデント、チェックを一か所で確認し、各ページを開かずに対応が必要な箇所を把握できます。" + }, + "card": { + "error": "このカードを読み込めませんでした。" + }, + "cards": { + "monitorStatus": { + "title": "監視の状態", + "empty": "監視はまだありません。", + "upOfTotal": "/ {{total}} が稼働中" + }, + "currentlyDown": { + "title": "現在ダウン中", + "empty": "すべての監視が稼働中です。未解決のインシデントはありません。", + "count": "{{count}} 件が要対応" + }, + "monitorsByType": { + "title": "種類別の監視", + "empty": "監視はまだありません。", + "down": "{{count}} 件ダウン" + }, + "recentIncidents": { + "title": "最近のインシデント", + "empty": "インシデントなし — すべて正常です。", + "active": "{{count}} 件未解決", + "ongoing": "進行中", + "manual": "手動", + "unknownMonitor": "不明な監視" + }, + "failedChecks": { + "title": "失敗したチェック", + "empty": "チェックはまだありません。", + "ratio": "直近1日で {{total}} 件中 {{failed}} 件" + }, + "checkmateServer": { + "title": "Checkmate サーバー", + "memory": "メモリ", + "eventLoop": "イベントループ遅延", + "uptime": "稼働時間", + "database": "データベース", + "readsWrites": "{{reads}} 読み取り/秒 · {{writes}} 書き込み/秒" + }, + "ranking": { + "topOf": "{{total}} 件中の上位 {{shown}} 件", + "notEnough": "ランキングに十分な監視がありません。" + }, + "slowestMonitors": { + "title": "最も遅い監視" + }, + "lowestUptime": { + "title": "稼働率が最も低い監視" + }, + "monitorsByGroup": { + "title": "グループ別の監視", + "empty": "グループはまだありません。グループは監視ごとに設定します。" + }, + "busiestServers": { + "title": "最も負荷の高いサーバー", + "empty": "インフラ監視はまだありません。", + "cpu": "CPU", + "memory": "メモリ", + "disk": "ディスク" + }, + "incidentStats": { + "title": "インシデント統計", + "openNow": "現在未解決", + "avgResolution": "平均解決時間", + "hours": "{{hours}} 時間", + "mostIncidents": "インシデント最多", + "total": "合計", + "resolved": "解決済み", + "automatic": "自動", + "manual": "手動", + "autoManual": "自動 {{automatic}} 件 · 手動 {{manual}} 件" + }, + "notificationChannels": { + "title": "通知チャンネル", + "empty": "チャンネルはまだありません。" + }, + "maintenance": { + "title": "メンテナンスウィンドウ", + "empty": "予定されたメンテナンスはありません。", + "runningNow": "実行中", + "next": "次のウィンドウ" + }, + "statusPages": { + "title": "ステータスページ", + "empty": "ステータスページはまだありません。", + "monitorCount": "{{count}} 件の監視", + "published": "公開中", + "draft": "下書き" + }, + "checksOnSchedule": { + "title": "チェックキュー", + "healthy": "{{workers}} 個のワーカーで {{jobs}} 件のジョブがすべて予定どおりです。", + "failing": "失敗中のジョブ", + "scheduled": "予定されたジョブ", + "runningNow": "実行中" + }, + "recentErrors": { + "title": "最近のエラー", + "empty": "エラーは記録されていません。", + "count": "{{count}} 件のエラー", + "warnings": "警告" + }, + "team": { + "title": "チームメンバー", + "members": "{{count}} 人のメンバー", + "unverified": "未確認" + } + }, + "picker": { + "trigger": "カードを編集", + "title": "ダッシュボードのカード", + "done": "完了", + "reset": "既定に戻す", + "groups": { + "uptime": "稼働監視", + "infrastructure": "インフラ", + "incidents": "インシデント", + "notifications": "通知", + "maintenance": "メンテナンス", + "statusPages": "ステータスページ", + "checks": "チェック", + "logs": "システム", + "settings": "設定" + } + }, + "empty": { + "title": "ダッシュボードにカードがありません", + "description": "表示したいカードを選択してください。選択内容はこのブラウザーに保存されます。" + }, + "reorder": { + "moveUp": "上へ移動", + "moveDown": "下へ移動" + } + }, "notFound": { "title": "おっと!お寿司を落としてしまいました!", "subtitle": "URLが存在しないか、アクセス権限がありません。" diff --git a/client/src/locales/pl.json b/client/src/locales/pl.json index 81509ee6f..e19a3172b 100644 --- a/client/src/locales/pl.json +++ b/client/src/locales/pl.json @@ -214,7 +214,8 @@ "settings": "Ustawienia", "statusPages": "Strony statusu", "tags": "Tagi", - "uptime": "Czas działania" + "uptime": "Czas działania", + "dashboard": "Pulpit" }, "starPrompt": { "description": "Zobacz najnowsze wydania i pomóż rozwijać społeczność na GitHub", @@ -227,6 +228,146 @@ } }, "pages": { + "dashboard": { + "header": { + "title": "Pulpit", + "description": "Zobacz dostępność, infrastrukturę, incydenty i checki w jednym miejscu, aby dostrzec, co wymaga uwagi, bez otwierania każdej strony." + }, + "card": { + "error": "Nie udało się załadować tej karty." + }, + "cards": { + "monitorStatus": { + "title": "Stan monitorów", + "empty": "Brak monitorów.", + "upOfTotal": "z {{total}} działa" + }, + "currentlyDown": { + "title": "Obecnie niedostępne", + "empty": "Wszystkie monitory działają. Brak otwartych incydentów.", + "count": "{{count}} wymaga uwagi" + }, + "monitorsByType": { + "title": "Monitory według typu", + "empty": "Brak monitorów.", + "down": "{{count}} niedostępnych" + }, + "recentIncidents": { + "title": "Ostatnie incydenty", + "empty": "Brak incydentów — wszystkie systemy sprawne.", + "active": "{{count}} otwartych", + "ongoing": "Trwa", + "manual": "Ręcznie", + "unknownMonitor": "Nieznany monitor" + }, + "failedChecks": { + "title": "Nieudane checki", + "empty": "Brak checków.", + "ratio": "{{failed}} z {{total}} w ostatnim dniu" + }, + "checkmateServer": { + "title": "Serwer Checkmate", + "memory": "Pamięć", + "eventLoop": "Opóźnienie pętli zdarzeń", + "uptime": "Czas działania", + "database": "Baza danych", + "readsWrites": "{{reads}} odczytów/s · {{writes}} zapisów/s" + }, + "ranking": { + "topOf": "Top {{shown}} z {{total}}", + "notEnough": "Za mało monitorów, aby utworzyć ranking." + }, + "slowestMonitors": { + "title": "Najwolniejsze monitory" + }, + "lowestUptime": { + "title": "Najniższa dostępność" + }, + "monitorsByGroup": { + "title": "Monitory według grupy", + "empty": "Brak grup. Grupy ustawia się przy monitorze." + }, + "busiestServers": { + "title": "Najbardziej obciążone serwery", + "empty": "Brak monitorów infrastruktury.", + "cpu": "CPU", + "memory": "Pamięć", + "disk": "Dysk" + }, + "incidentStats": { + "title": "Statystyki incydentów", + "openNow": "Otwarte teraz", + "avgResolution": "Średni czas rozwiązania", + "hours": "{{hours}} godz.", + "mostIncidents": "Najwięcej incydentów", + "total": "łącznie", + "resolved": "Rozwiązane", + "automatic": "Automatycznie", + "manual": "Ręcznie", + "autoManual": "{{automatic}} automatycznie · {{manual}} ręcznie" + }, + "notificationChannels": { + "title": "Kanały powiadomień", + "empty": "Brak kanałów." + }, + "maintenance": { + "title": "Przerwy techniczne", + "empty": "Brak zaplanowanych przerw.", + "runningNow": "Trwa teraz", + "next": "Następna przerwa" + }, + "statusPages": { + "title": "Strony statusu", + "empty": "Brak stron statusu.", + "monitorCount": "{{count}} monitorów", + "published": "Opublikowana", + "draft": "Wersja robocza" + }, + "checksOnSchedule": { + "title": "Kolejka checków", + "healthy": "Wszystkie {{jobs}} zadania zgodnie z planem na {{workers}} workerach.", + "failing": "Nieudane zadania", + "scheduled": "Zaplanowane zadania", + "runningNow": "Trwa teraz" + }, + "recentErrors": { + "title": "Ostatnie błędy", + "empty": "Nie zarejestrowano błędów.", + "count": "{{count}} błędów", + "warnings": "Ostrzeżenia" + }, + "team": { + "title": "Członkowie zespołu", + "members": "{{count}} członków", + "unverified": "Niezweryfikowani" + } + }, + "picker": { + "trigger": "Edytuj karty", + "title": "Karty pulpitu", + "done": "Gotowe", + "reset": "Przywróć domyślne", + "groups": { + "uptime": "Dostępność", + "infrastructure": "Infrastruktura", + "incidents": "Incydenty", + "notifications": "Powiadomienia", + "maintenance": "Przerwy techniczne", + "statusPages": "Strony statusu", + "checks": "Checki", + "logs": "System", + "settings": "Ustawienia" + } + }, + "empty": { + "title": "Brak kart na pulpicie", + "description": "Wybierz karty, które chcesz widzieć. Twój wybór zostanie zapamiętany w tej przeglądarce." + }, + "reorder": { + "moveUp": "Przenieś w górę", + "moveDown": "Przenieś w dół" + } + }, "account": { "form": { "currentPassword": { diff --git a/client/src/locales/pt-BR.json b/client/src/locales/pt-BR.json index c75ead3ef..71afceb13 100644 --- a/client/src/locales/pt-BR.json +++ b/client/src/locales/pt-BR.json @@ -181,7 +181,8 @@ "statusPages": "Pagina de status", "maintenance": "Manutenção", "logs": "Registros", - "settings": "Configurações" + "settings": "Configurações", + "dashboard": "Painel" }, "bottomMenu": { "support": "Suporte", @@ -223,6 +224,146 @@ } }, "pages": { + "dashboard": { + "header": { + "title": "Painel", + "description": "Veja uptime, infraestrutura, incidentes e verificações em um só lugar, para identificar o que precisa de atenção sem abrir cada página." + }, + "card": { + "error": "Não foi possível carregar este cartão." + }, + "cards": { + "monitorStatus": { + "title": "Status dos monitores", + "empty": "Ainda não há monitores.", + "upOfTotal": "de {{total}} no ar" + }, + "currentlyDown": { + "title": "Fora do ar agora", + "empty": "Todos os monitores estão no ar. Nenhum incidente aberto.", + "count": "{{count}} precisam de atenção" + }, + "monitorsByType": { + "title": "Monitores por tipo", + "empty": "Ainda não há monitores.", + "down": "{{count}} fora do ar" + }, + "recentIncidents": { + "title": "Incidentes recentes", + "empty": "Nenhum incidente — todos os sistemas saudáveis.", + "active": "{{count}} abertos", + "ongoing": "Em andamento", + "manual": "Manual", + "unknownMonitor": "Monitor desconhecido" + }, + "failedChecks": { + "title": "Verificações com falha", + "empty": "Ainda não há verificações.", + "ratio": "{{failed}} de {{total}} no último dia" + }, + "checkmateServer": { + "title": "Servidor Checkmate", + "memory": "Memória", + "eventLoop": "Atraso do event loop", + "uptime": "Tempo no ar", + "database": "Banco de dados", + "readsWrites": "{{reads}} leituras/s · {{writes}} gravações/s" + }, + "ranking": { + "topOf": "Top {{shown}} de {{total}}", + "notEnough": "Não há monitores suficientes para classificar." + }, + "slowestMonitors": { + "title": "Monitores mais lentos" + }, + "lowestUptime": { + "title": "Menor uptime" + }, + "monitorsByGroup": { + "title": "Monitores por grupo", + "empty": "Ainda não há grupos. Grupos são definidos por monitor." + }, + "busiestServers": { + "title": "Servidores mais ocupados", + "empty": "Ainda não há monitores de infraestrutura.", + "cpu": "CPU", + "memory": "Memória", + "disk": "Disco" + }, + "incidentStats": { + "title": "Estatísticas de incidentes", + "openNow": "Abertos agora", + "avgResolution": "Tempo médio de resolução", + "hours": "{{hours}} h", + "mostIncidents": "Mais incidentes", + "total": "total", + "resolved": "Resolvidos", + "automatic": "Automática", + "manual": "Manual", + "autoManual": "{{automatic}} automáticas · {{manual}} manuais" + }, + "notificationChannels": { + "title": "Canais de notificação", + "empty": "Ainda não há canais." + }, + "maintenance": { + "title": "Janelas de manutenção", + "empty": "Nenhuma manutenção agendada.", + "runningNow": "Em execução", + "next": "Próxima janela" + }, + "statusPages": { + "title": "Páginas de status", + "empty": "Ainda não há páginas de status.", + "monitorCount": "{{count}} monitores", + "published": "Publicada", + "draft": "Rascunho" + }, + "checksOnSchedule": { + "title": "Fila de verificações", + "healthy": "Todos os {{jobs}} jobs em dia em {{workers}} worker(s).", + "failing": "Jobs com falha", + "scheduled": "Jobs agendados", + "runningNow": "Em execução" + }, + "recentErrors": { + "title": "Erros recentes", + "empty": "Nenhum erro registrado.", + "count": "{{count}} erros", + "warnings": "Avisos" + }, + "team": { + "title": "Membros da equipe", + "members": "{{count}} membros", + "unverified": "Não verificados" + } + }, + "picker": { + "trigger": "Editar cartões", + "title": "Cartões do painel", + "done": "Concluído", + "reset": "Restaurar padrões", + "groups": { + "uptime": "Uptime", + "infrastructure": "Infraestrutura", + "incidents": "Incidentes", + "notifications": "Notificações", + "maintenance": "Manutenção", + "statusPages": "Páginas de status", + "checks": "Verificações", + "logs": "Sistema", + "settings": "Configurações" + } + }, + "empty": { + "title": "Nenhum cartão no seu painel", + "description": "Escolha os cartões que deseja ver. Sua seleção é lembrada neste navegador." + }, + "reorder": { + "moveUp": "Mover para cima", + "moveDown": "Mover para baixo" + } + }, "notFound": { "title": "Oh não! Você derrubou seu sushi!", "subtitle": "A URL não existe ou você não tem acesso a ela." diff --git a/client/src/locales/ru.json b/client/src/locales/ru.json index cf5e486f7..e5070e650 100644 --- a/client/src/locales/ru.json +++ b/client/src/locales/ru.json @@ -181,7 +181,8 @@ "statusPages": "Страницы статуса", "maintenance": "Обслуживание", "logs": "Логи", - "settings": "Настройки" + "settings": "Настройки", + "dashboard": "Панель" }, "bottomMenu": { "support": "Поддержка", @@ -223,6 +224,146 @@ } }, "pages": { + "dashboard": { + "header": { + "title": "Панель", + "description": "Смотрите работоспособность, инфраструктуру, инциденты и проверки в одном месте, чтобы замечать требующее внимания, не открывая каждую страницу." + }, + "card": { + "error": "Не удалось загрузить эту карточку." + }, + "cards": { + "monitorStatus": { + "title": "Состояние мониторов", + "empty": "Мониторов пока нет.", + "upOfTotal": "из {{total}} работают" + }, + "currentlyDown": { + "title": "Сейчас недоступны", + "empty": "Все мониторы работают. Открытых инцидентов нет.", + "count": "{{count}} требуют внимания" + }, + "monitorsByType": { + "title": "Мониторы по типу", + "empty": "Мониторов пока нет.", + "down": "{{count}} недоступны" + }, + "recentIncidents": { + "title": "Последние инциденты", + "empty": "Инцидентов нет — все системы в порядке.", + "active": "{{count}} открыто", + "ongoing": "В процессе", + "manual": "Вручную", + "unknownMonitor": "Неизвестный монитор" + }, + "failedChecks": { + "title": "Неудачные проверки", + "empty": "Проверок пока нет.", + "ratio": "{{failed}} из {{total}} за последние сутки" + }, + "checkmateServer": { + "title": "Сервер Checkmate", + "memory": "Память", + "eventLoop": "Задержка event loop", + "uptime": "Время работы", + "database": "База данных", + "readsWrites": "{{reads}} чтений/с · {{writes}} записей/с" + }, + "ranking": { + "topOf": "Топ {{shown}} из {{total}}", + "notEnough": "Недостаточно мониторов для рейтинга." + }, + "slowestMonitors": { + "title": "Самые медленные мониторы" + }, + "lowestUptime": { + "title": "Наименьшая работоспособность" + }, + "monitorsByGroup": { + "title": "Мониторы по группе", + "empty": "Групп пока нет. Группы задаются у монитора." + }, + "busiestServers": { + "title": "Самые загруженные серверы", + "empty": "Инфраструктурных мониторов пока нет.", + "cpu": "ЦП", + "memory": "Память", + "disk": "Диск" + }, + "incidentStats": { + "title": "Статистика инцидентов", + "openNow": "Открыто сейчас", + "avgResolution": "Среднее время решения", + "hours": "{{hours}} ч", + "mostIncidents": "Больше всего инцидентов", + "total": "всего", + "resolved": "Решено", + "automatic": "Автоматически", + "manual": "Вручную", + "autoManual": "{{automatic}} автоматически · {{manual}} вручную" + }, + "notificationChannels": { + "title": "Каналы уведомлений", + "empty": "Каналов пока нет." + }, + "maintenance": { + "title": "Окна обслуживания", + "empty": "Обслуживание не запланировано.", + "runningNow": "Выполняется", + "next": "Следующее окно" + }, + "statusPages": { + "title": "Страницы состояния", + "empty": "Страниц состояния пока нет.", + "monitorCount": "{{count}} мониторов", + "published": "Опубликована", + "draft": "Черновик" + }, + "checksOnSchedule": { + "title": "Очередь проверок", + "healthy": "Все {{jobs}} задач идут по расписанию на {{workers}} воркерах.", + "failing": "Сбойные задачи", + "scheduled": "Запланированные задачи", + "runningNow": "Выполняется" + }, + "recentErrors": { + "title": "Последние ошибки", + "empty": "Ошибок не зафиксировано.", + "count": "{{count}} ошибок", + "warnings": "Предупреждения" + }, + "team": { + "title": "Участники команды", + "members": "{{count}} участников", + "unverified": "Не подтверждены" + } + }, + "picker": { + "trigger": "Изменить карточки", + "title": "Карточки панели", + "done": "Готово", + "reset": "Сбросить по умолчанию", + "groups": { + "uptime": "Работоспособность", + "infrastructure": "Инфраструктура", + "incidents": "Инциденты", + "notifications": "Уведомления", + "maintenance": "Обслуживание", + "statusPages": "Страницы состояния", + "checks": "Проверки", + "logs": "Система", + "settings": "Настройки" + } + }, + "empty": { + "title": "На вашей панели нет карточек", + "description": "Выберите карточки, которые хотите видеть. Ваш выбор сохраняется в этом браузере." + }, + "reorder": { + "moveUp": "Переместить вверх", + "moveDown": "Переместить вниз" + } + }, "notFound": { "title": "Ой! Вы уронили суши!", "subtitle": "Либо URL не существует, либо у Вас нет к нему доступа." diff --git a/client/src/locales/th.json b/client/src/locales/th.json index 66d354adc..4bfa4a995 100644 --- a/client/src/locales/th.json +++ b/client/src/locales/th.json @@ -181,7 +181,8 @@ "statusPages": "หน้าสถานะ", "maintenance": "การบำรุงรักษา", "logs": "บันทึก", - "settings": "การตั้งค่า" + "settings": "การตั้งค่า", + "dashboard": "แดชบอร์ด" }, "bottomMenu": { "support": "การสนับสนุน", @@ -223,6 +224,146 @@ } }, "pages": { + "dashboard": { + "header": { + "title": "แดชบอร์ด", + "description": "ดู uptime โครงสร้างพื้นฐาน เหตุการณ์ และการตรวจสอบในที่เดียว เพื่อสังเกตสิ่งที่ต้องดูแลโดยไม่ต้องเปิดทุกหน้า" + }, + "card": { + "error": "ไม่สามารถโหลดการ์ดนี้ได้" + }, + "cards": { + "monitorStatus": { + "title": "สถานะตัวตรวจสอบ", + "empty": "ยังไม่มีตัวตรวจสอบ", + "upOfTotal": "จาก {{total}} ที่ทำงาน" + }, + "currentlyDown": { + "title": "ขณะนี้ล่ม", + "empty": "ตัวตรวจสอบทั้งหมดทำงานอยู่ ไม่มีเหตุการณ์ที่เปิดค้าง", + "count": "{{count}} รายการต้องดูแล" + }, + "monitorsByType": { + "title": "ตัวตรวจสอบตามประเภท", + "empty": "ยังไม่มีตัวตรวจสอบ", + "down": "ล่ม {{count}} รายการ" + }, + "recentIncidents": { + "title": "เหตุการณ์ล่าสุด", + "empty": "ไม่มีเหตุการณ์ — ทุกระบบปกติ", + "active": "เปิดอยู่ {{count}} รายการ", + "ongoing": "กำลังดำเนินอยู่", + "manual": "ด้วยตนเอง", + "unknownMonitor": "ตัวตรวจสอบที่ไม่รู้จัก" + }, + "failedChecks": { + "title": "การตรวจสอบที่ล้มเหลว", + "empty": "ยังไม่มีการตรวจสอบ", + "ratio": "{{failed}} จาก {{total}} ในวันที่ผ่านมา" + }, + "checkmateServer": { + "title": "เซิร์ฟเวอร์ Checkmate", + "memory": "หน่วยความจำ", + "eventLoop": "ความหน่วงของ event loop", + "uptime": "เวลาทำงาน", + "database": "ฐานข้อมูล", + "readsWrites": "อ่าน {{reads}}/วิ · เขียน {{writes}}/วิ" + }, + "ranking": { + "topOf": "อันดับต้น {{shown}} จาก {{total}}", + "notEnough": "มีตัวตรวจสอบไม่พอสำหรับจัดอันดับ" + }, + "slowestMonitors": { + "title": "ตัวตรวจสอบที่ช้าที่สุด" + }, + "lowestUptime": { + "title": "uptime ต่ำที่สุด" + }, + "monitorsByGroup": { + "title": "ตัวตรวจสอบตามกลุ่ม", + "empty": "ยังไม่มีกลุ่ม กลุ่มถูกกำหนดในแต่ละตัวตรวจสอบ" + }, + "busiestServers": { + "title": "เซิร์ฟเวอร์ที่ใช้งานหนักที่สุด", + "empty": "ยังไม่มีตัวตรวจสอบโครงสร้างพื้นฐาน", + "cpu": "CPU", + "memory": "หน่วยความจำ", + "disk": "ดิสก์" + }, + "incidentStats": { + "title": "สถิติเหตุการณ์", + "openNow": "เปิดอยู่ตอนนี้", + "avgResolution": "เวลาแก้ไขโดยเฉลี่ย", + "hours": "{{hours}} ชม.", + "mostIncidents": "เหตุการณ์มากที่สุด", + "total": "ทั้งหมด", + "resolved": "แก้ไขแล้ว", + "automatic": "อัตโนมัติ", + "manual": "ด้วยตนเอง", + "autoManual": "อัตโนมัติ {{automatic}} · ด้วยตนเอง {{manual}}" + }, + "notificationChannels": { + "title": "ช่องทางการแจ้งเตือน", + "empty": "ยังไม่มีช่องทาง" + }, + "maintenance": { + "title": "ช่วงเวลาบำรุงรักษา", + "empty": "ไม่มีการบำรุงรักษาที่กำหนดไว้", + "runningNow": "กำลังดำเนินการ", + "next": "ช่วงถัดไป" + }, + "statusPages": { + "title": "หน้าสถานะ", + "empty": "ยังไม่มีหน้าสถานะ", + "monitorCount": "{{count}} ตัวตรวจสอบ", + "published": "เผยแพร่แล้ว", + "draft": "ฉบับร่าง" + }, + "checksOnSchedule": { + "title": "คิวการตรวจสอบ", + "healthy": "งานทั้ง {{jobs}} รายการเป็นไปตามกำหนดบน {{workers}} worker", + "failing": "งานที่ล้มเหลว", + "scheduled": "งานที่กำหนดเวลาไว้", + "runningNow": "กำลังดำเนินการ" + }, + "recentErrors": { + "title": "ข้อผิดพลาดล่าสุด", + "empty": "ไม่มีข้อผิดพลาดที่บันทึกไว้", + "count": "{{count}} ข้อผิดพลาด", + "warnings": "คำเตือน" + }, + "team": { + "title": "สมาชิกทีม", + "members": "{{count}} สมาชิก", + "unverified": "ยังไม่ยืนยัน" + } + }, + "picker": { + "trigger": "แก้ไขการ์ด", + "title": "การ์ดแดชบอร์ด", + "done": "เสร็จสิ้น", + "reset": "รีเซ็ตเป็นค่าเริ่มต้น", + "groups": { + "uptime": "Uptime", + "infrastructure": "โครงสร้างพื้นฐาน", + "incidents": "เหตุการณ์", + "notifications": "การแจ้งเตือน", + "maintenance": "การบำรุงรักษา", + "statusPages": "หน้าสถานะ", + "checks": "การตรวจสอบ", + "logs": "ระบบ", + "settings": "การตั้งค่า" + } + }, + "empty": { + "title": "ไม่มีการ์ดบนแดชบอร์ดของคุณ", + "description": "เลือกการ์ดที่ต้องการเห็น การเลือกของคุณจะถูกจดจำในเบราว์เซอร์นี้" + }, + "reorder": { + "moveUp": "เลื่อนขึ้น", + "moveDown": "เลื่อนลง" + } + }, "notFound": { "title": "โอ้ไม่! ซูชิของคุณหล่นแล้ว!", "subtitle": "URL ไม่มีอยู่ หรือคุณไม่มีสิทธิ์เข้าถึง" diff --git a/client/src/locales/tr.json b/client/src/locales/tr.json index 26f8aace0..2fe4ae3e7 100644 --- a/client/src/locales/tr.json +++ b/client/src/locales/tr.json @@ -181,7 +181,8 @@ "statusPages": "Durum sayfaları", "maintenance": "Bakım", "logs": "Günlükler", - "settings": "Ayarlar" + "settings": "Ayarlar", + "dashboard": "Panel" }, "bottomMenu": { "support": "Destek", @@ -223,6 +224,146 @@ } }, "pages": { + "dashboard": { + "header": { + "title": "Panel", + "description": "Çalışma süresi, altyapı, olaylar ve kontrolleri tek bir yerde görün; her sayfayı açmadan neyin ilgi gerektirdiğini fark edin." + }, + "card": { + "error": "Bu kart yüklenemedi." + }, + "cards": { + "monitorStatus": { + "title": "İzleyici durumu", + "empty": "Henüz izleyici yok.", + "upOfTotal": "/ {{total}} çalışıyor" + }, + "currentlyDown": { + "title": "Şu anda kapalı", + "empty": "Tüm izleyiciler çalışıyor. Açık olay yok.", + "count": "{{count}} ilgi bekliyor" + }, + "monitorsByType": { + "title": "Türe göre izleyiciler", + "empty": "Henüz izleyici yok.", + "down": "{{count}} kapalı" + }, + "recentIncidents": { + "title": "Son olaylar", + "empty": "Olay yok — tüm sistemler sağlıklı.", + "active": "{{count}} açık", + "ongoing": "Devam ediyor", + "manual": "Manuel", + "unknownMonitor": "Bilinmeyen izleyici" + }, + "failedChecks": { + "title": "Başarısız kontroller", + "empty": "Henüz kontrol yok.", + "ratio": "son günde {{total}} kontrolün {{failed}} tanesi" + }, + "checkmateServer": { + "title": "Checkmate sunucusu", + "memory": "Bellek", + "eventLoop": "Olay döngüsü gecikmesi", + "uptime": "Çalışma süresi", + "database": "Veritabanı", + "readsWrites": "{{reads}} okuma/sn · {{writes}} yazma/sn" + }, + "ranking": { + "topOf": "{{total}} içinden ilk {{shown}}", + "notEnough": "Sıralama için yeterli izleyici yok." + }, + "slowestMonitors": { + "title": "En yavaş izleyiciler" + }, + "lowestUptime": { + "title": "En düşük çalışma süresi" + }, + "monitorsByGroup": { + "title": "Gruba göre izleyiciler", + "empty": "Henüz grup yok. Gruplar izleyici başına ayarlanır." + }, + "busiestServers": { + "title": "En yoğun sunucular", + "empty": "Henüz altyapı izleyicisi yok.", + "cpu": "CPU", + "memory": "Bellek", + "disk": "Disk" + }, + "incidentStats": { + "title": "Olay istatistikleri", + "openNow": "Şu anda açık", + "avgResolution": "Ortalama çözüm süresi", + "hours": "{{hours}} sa", + "mostIncidents": "En çok olay", + "total": "toplam", + "resolved": "Çözüldü", + "automatic": "Otomatik", + "manual": "Manuel", + "autoManual": "{{automatic}} otomatik · {{manual}} manuel" + }, + "notificationChannels": { + "title": "Bildirim kanalları", + "empty": "Henüz kanal yok." + }, + "maintenance": { + "title": "Bakım pencereleri", + "empty": "Planlanmış bakım yok.", + "runningNow": "Şu anda çalışıyor", + "next": "Sonraki pencere" + }, + "statusPages": { + "title": "Durum sayfaları", + "empty": "Henüz durum sayfası yok.", + "monitorCount": "{{count}} izleyici", + "published": "Yayında", + "draft": "Taslak" + }, + "checksOnSchedule": { + "title": "Kontrol kuyruğu", + "healthy": "{{workers}} işçide {{jobs}} işin tümü planlandığı gibi.", + "failing": "Başarısız işler", + "scheduled": "Planlanmış işler", + "runningNow": "Şu anda çalışıyor" + }, + "recentErrors": { + "title": "Son hatalar", + "empty": "Kaydedilmiş hata yok.", + "count": "{{count}} hata", + "warnings": "Uyarılar" + }, + "team": { + "title": "Ekip üyeleri", + "members": "{{count}} üye", + "unverified": "Doğrulanmamış" + } + }, + "picker": { + "trigger": "Kartları düzenle", + "title": "Panel kartları", + "done": "Tamam", + "reset": "Varsayılanlara sıfırla", + "groups": { + "uptime": "Çalışma süresi", + "infrastructure": "Altyapı", + "incidents": "Olaylar", + "notifications": "Bildirimler", + "maintenance": "Bakım", + "statusPages": "Durum sayfaları", + "checks": "Kontroller", + "logs": "Sistem", + "settings": "Ayarlar" + } + }, + "empty": { + "title": "Panelinizde kart yok", + "description": "Görmek istediğiniz kartları seçin. Seçiminiz bu tarayıcıda hatırlanır." + }, + "reorder": { + "moveUp": "Yukarı taşı", + "moveDown": "Aşağı taşı" + } + }, "notFound": { "title": "Eyvah! Sushini düşürdün!", "subtitle": "URL mevcut değil veya erişim yetkiniz yok." diff --git a/client/src/locales/uk.json b/client/src/locales/uk.json index d1cb983d1..8b3a810b3 100644 --- a/client/src/locales/uk.json +++ b/client/src/locales/uk.json @@ -181,7 +181,8 @@ "statusPages": "Сторінки статусу", "maintenance": "Обслуговування", "logs": "Журнали", - "settings": "Налаштування" + "settings": "Налаштування", + "dashboard": "Панель" }, "bottomMenu": { "support": "Підтримка", @@ -223,6 +224,146 @@ } }, "pages": { + "dashboard": { + "header": { + "title": "Панель", + "description": "Переглядайте працездатність, інфраструктуру, інциденти та перевірки в одному місці, щоб помічати те, що потребує уваги, не відкриваючи кожну сторінку." + }, + "card": { + "error": "Не вдалося завантажити цю картку." + }, + "cards": { + "monitorStatus": { + "title": "Стан моніторів", + "empty": "Моніторів поки немає.", + "upOfTotal": "з {{total}} працюють" + }, + "currentlyDown": { + "title": "Зараз недоступні", + "empty": "Усі монітори працюють. Відкритих інцидентів немає.", + "count": "{{count}} потребують уваги" + }, + "monitorsByType": { + "title": "Монітори за типом", + "empty": "Моніторів поки немає.", + "down": "{{count}} недоступні" + }, + "recentIncidents": { + "title": "Останні інциденти", + "empty": "Інцидентів немає — усі системи справні.", + "active": "{{count}} відкрито", + "ongoing": "Триває", + "manual": "Вручну", + "unknownMonitor": "Невідомий монітор" + }, + "failedChecks": { + "title": "Невдалі перевірки", + "empty": "Перевірок поки немає.", + "ratio": "{{failed}} з {{total}} за останню добу" + }, + "checkmateServer": { + "title": "Сервер Checkmate", + "memory": "Пам'ять", + "eventLoop": "Затримка event loop", + "uptime": "Час роботи", + "database": "База даних", + "readsWrites": "{{reads}} читань/с · {{writes}} записів/с" + }, + "ranking": { + "topOf": "Топ {{shown}} з {{total}}", + "notEnough": "Недостатньо моніторів для рейтингу." + }, + "slowestMonitors": { + "title": "Найповільніші монітори" + }, + "lowestUptime": { + "title": "Найнижча працездатність" + }, + "monitorsByGroup": { + "title": "Монітори за групою", + "empty": "Груп поки немає. Групи задаються в моніторі." + }, + "busiestServers": { + "title": "Найзавантаженіші сервери", + "empty": "Інфраструктурних моніторів поки немає.", + "cpu": "ЦП", + "memory": "Пам'ять", + "disk": "Диск" + }, + "incidentStats": { + "title": "Статистика інцидентів", + "openNow": "Відкрито зараз", + "avgResolution": "Середній час вирішення", + "hours": "{{hours}} год", + "mostIncidents": "Найбільше інцидентів", + "total": "усього", + "resolved": "Вирішено", + "automatic": "Автоматично", + "manual": "Вручну", + "autoManual": "{{automatic}} автоматично · {{manual}} вручну" + }, + "notificationChannels": { + "title": "Канали сповіщень", + "empty": "Каналів поки немає." + }, + "maintenance": { + "title": "Вікна обслуговування", + "empty": "Обслуговування не заплановано.", + "runningNow": "Виконується", + "next": "Наступне вікно" + }, + "statusPages": { + "title": "Сторінки статусу", + "empty": "Сторінок статусу поки немає.", + "monitorCount": "{{count}} моніторів", + "published": "Опубліковано", + "draft": "Чернетка" + }, + "checksOnSchedule": { + "title": "Черга перевірок", + "healthy": "Усі {{jobs}} завдань за розкладом на {{workers}} воркерах.", + "failing": "Невдалі завдання", + "scheduled": "Заплановані завдання", + "runningNow": "Виконується" + }, + "recentErrors": { + "title": "Останні помилки", + "empty": "Помилок не зафіксовано.", + "count": "{{count}} помилок", + "warnings": "Попередження" + }, + "team": { + "title": "Учасники команди", + "members": "{{count}} учасників", + "unverified": "Не підтверджені" + } + }, + "picker": { + "trigger": "Редагувати картки", + "title": "Картки панелі", + "done": "Готово", + "reset": "Скинути до типових", + "groups": { + "uptime": "Працездатність", + "infrastructure": "Інфраструктура", + "incidents": "Інциденти", + "notifications": "Сповіщення", + "maintenance": "Обслуговування", + "statusPages": "Сторінки статусу", + "checks": "Перевірки", + "logs": "Система", + "settings": "Налаштування" + } + }, + "empty": { + "title": "На вашій панелі немає карток", + "description": "Виберіть картки, які хочете бачити. Ваш вибір зберігається в цьому браузері." + }, + "reorder": { + "moveUp": "Перемістити вгору", + "moveDown": "Перемістити вниз" + } + }, "notFound": { "title": "Ой ні! Ви впустили суші!", "subtitle": "Або URL не існує, або у Вас немає доступу до нього." diff --git a/client/src/locales/vi.json b/client/src/locales/vi.json index 81da1c6fc..1b41830f3 100644 --- a/client/src/locales/vi.json +++ b/client/src/locales/vi.json @@ -181,7 +181,8 @@ "statusPages": "Trang trạng thái", "maintenance": "Bảo trì", "logs": "Nhật ký", - "settings": "Cài đặt" + "settings": "Cài đặt", + "dashboard": "Bảng điều khiển" }, "bottomMenu": { "support": "Hỗ trợ", @@ -223,6 +224,146 @@ } }, "pages": { + "dashboard": { + "header": { + "title": "Bảng điều khiển", + "description": "Xem uptime, hạ tầng, sự cố và kiểm tra ở cùng một nơi, để nhận ra điều cần chú ý mà không phải mở từng trang." + }, + "card": { + "error": "Không thể tải thẻ này." + }, + "cards": { + "monitorStatus": { + "title": "Trạng thái giám sát", + "empty": "Chưa có trình giám sát nào.", + "upOfTotal": "trên {{total}} đang hoạt động" + }, + "currentlyDown": { + "title": "Hiện đang ngừng", + "empty": "Tất cả trình giám sát đang hoạt động. Không có sự cố nào đang mở.", + "count": "{{count}} cần chú ý" + }, + "monitorsByType": { + "title": "Trình giám sát theo loại", + "empty": "Chưa có trình giám sát nào.", + "down": "{{count}} đang ngừng" + }, + "recentIncidents": { + "title": "Sự cố gần đây", + "empty": "Không có sự cố — mọi hệ thống đều ổn.", + "active": "{{count}} đang mở", + "ongoing": "Đang diễn ra", + "manual": "Thủ công", + "unknownMonitor": "Trình giám sát không xác định" + }, + "failedChecks": { + "title": "Kiểm tra thất bại", + "empty": "Chưa có lần kiểm tra nào.", + "ratio": "{{failed}} trên {{total}} trong ngày qua" + }, + "checkmateServer": { + "title": "Máy chủ Checkmate", + "memory": "Bộ nhớ", + "eventLoop": "Độ trễ vòng lặp sự kiện", + "uptime": "Thời gian hoạt động", + "database": "Cơ sở dữ liệu", + "readsWrites": "{{reads}} lượt đọc/giây · {{writes}} lượt ghi/giây" + }, + "ranking": { + "topOf": "Top {{shown}} trên {{total}}", + "notEnough": "Chưa đủ trình giám sát để xếp hạng." + }, + "slowestMonitors": { + "title": "Trình giám sát chậm nhất" + }, + "lowestUptime": { + "title": "Uptime thấp nhất" + }, + "monitorsByGroup": { + "title": "Trình giám sát theo nhóm", + "empty": "Chưa có nhóm nào. Nhóm được đặt cho từng trình giám sát." + }, + "busiestServers": { + "title": "Máy chủ bận nhất", + "empty": "Chưa có trình giám sát hạ tầng nào.", + "cpu": "CPU", + "memory": "Bộ nhớ", + "disk": "Ổ đĩa" + }, + "incidentStats": { + "title": "Thống kê sự cố", + "openNow": "Đang mở", + "avgResolution": "Thời gian xử lý trung bình", + "hours": "{{hours}} giờ", + "mostIncidents": "Nhiều sự cố nhất", + "total": "tổng cộng", + "resolved": "Đã xử lý", + "automatic": "Tự động", + "manual": "Thủ công", + "autoManual": "{{automatic}} tự động · {{manual}} thủ công" + }, + "notificationChannels": { + "title": "Kênh thông báo", + "empty": "Chưa có kênh nào." + }, + "maintenance": { + "title": "Cửa sổ bảo trì", + "empty": "Không có bảo trì nào được lên lịch.", + "runningNow": "Đang chạy", + "next": "Cửa sổ tiếp theo" + }, + "statusPages": { + "title": "Trang trạng thái", + "empty": "Chưa có trang trạng thái nào.", + "monitorCount": "{{count}} trình giám sát", + "published": "Đã xuất bản", + "draft": "Bản nháp" + }, + "checksOnSchedule": { + "title": "Hàng đợi kiểm tra", + "healthy": "Tất cả {{jobs}} tác vụ đúng lịch trên {{workers}} worker.", + "failing": "Tác vụ thất bại", + "scheduled": "Tác vụ đã lên lịch", + "runningNow": "Đang chạy" + }, + "recentErrors": { + "title": "Lỗi gần đây", + "empty": "Không có lỗi nào được ghi.", + "count": "{{count}} lỗi", + "warnings": "Cảnh báo" + }, + "team": { + "title": "Thành viên nhóm", + "members": "{{count}} thành viên", + "unverified": "Chưa xác minh" + } + }, + "picker": { + "trigger": "Chỉnh sửa thẻ", + "title": "Thẻ bảng điều khiển", + "done": "Xong", + "reset": "Đặt lại mặc định", + "groups": { + "uptime": "Uptime", + "infrastructure": "Hạ tầng", + "incidents": "Sự cố", + "notifications": "Thông báo", + "maintenance": "Bảo trì", + "statusPages": "Trang trạng thái", + "checks": "Kiểm tra", + "logs": "Hệ thống", + "settings": "Cài đặt" + } + }, + "empty": { + "title": "Không có thẻ nào trên bảng điều khiển", + "description": "Chọn các thẻ bạn muốn xem. Lựa chọn của bạn được ghi nhớ trong trình duyệt này." + }, + "reorder": { + "moveUp": "Di chuyển lên", + "moveDown": "Di chuyển xuống" + } + }, "notFound": { "title": "Ôi không! Bạn đã làm rơi sushi!", "subtitle": "Either the URL doesn’t exist, or you don’t have access to it." diff --git a/client/src/locales/zh-CN.json b/client/src/locales/zh-CN.json index 1a455d41c..8915bbded 100644 --- a/client/src/locales/zh-CN.json +++ b/client/src/locales/zh-CN.json @@ -181,7 +181,8 @@ "statusPages": "状态页", "maintenance": "维护", "logs": "日志", - "settings": "设置" + "settings": "设置", + "dashboard": "仪表板" }, "bottomMenu": { "support": "支持", @@ -223,6 +224,146 @@ } }, "pages": { + "dashboard": { + "header": { + "title": "仪表板", + "description": "在一个页面中查看运行时间、基础设施、事件和检查,无需逐页打开即可发现需要关注的问题。" + }, + "card": { + "error": "无法加载此卡片。" + }, + "cards": { + "monitorStatus": { + "title": "监控状态", + "empty": "暂无监控器。", + "upOfTotal": "/ {{total}} 正常" + }, + "currentlyDown": { + "title": "当前离线", + "empty": "所有监控器均正常。没有未处理的事件。", + "count": "{{count}} 项需要关注" + }, + "monitorsByType": { + "title": "按类型分组的监控器", + "empty": "暂无监控器。", + "down": "{{count}} 个离线" + }, + "recentIncidents": { + "title": "最近事件", + "empty": "没有事件 — 所有系统正常。", + "active": "{{count}} 个未处理", + "ongoing": "进行中", + "manual": "手动", + "unknownMonitor": "未知监控器" + }, + "failedChecks": { + "title": "失败的检查", + "empty": "暂无检查。", + "ratio": "最近一天 {{total}} 次中的 {{failed}} 次" + }, + "checkmateServer": { + "title": "Checkmate 服务器", + "memory": "内存", + "eventLoop": "事件循环延迟", + "uptime": "运行时间", + "database": "数据库", + "readsWrites": "{{reads}} 读/秒 · {{writes}} 写/秒" + }, + "ranking": { + "topOf": "{{total}} 个中的前 {{shown}} 个", + "notEnough": "监控器数量不足,无法排名。" + }, + "slowestMonitors": { + "title": "最慢的监控器" + }, + "lowestUptime": { + "title": "运行时间最低" + }, + "monitorsByGroup": { + "title": "按分组的监控器", + "empty": "暂无分组。分组在每个监控器上设置。" + }, + "busiestServers": { + "title": "最繁忙的服务器", + "empty": "暂无基础设施监控器。", + "cpu": "CPU", + "memory": "内存", + "disk": "磁盘" + }, + "incidentStats": { + "title": "事件统计", + "openNow": "当前未处理", + "avgResolution": "平均解决时间", + "hours": "{{hours}} 小时", + "mostIncidents": "事件最多", + "total": "总计", + "resolved": "已解决", + "automatic": "自动", + "manual": "手动", + "autoManual": "{{automatic}} 个自动 · {{manual}} 个手动" + }, + "notificationChannels": { + "title": "通知渠道", + "empty": "暂无渠道。" + }, + "maintenance": { + "title": "维护窗口", + "empty": "没有计划的维护。", + "runningNow": "正在进行", + "next": "下一个窗口" + }, + "statusPages": { + "title": "状态页面", + "empty": "暂无状态页面。", + "monitorCount": "{{count}} 个监控器", + "published": "已发布", + "draft": "草稿" + }, + "checksOnSchedule": { + "title": "检查队列", + "healthy": "{{workers}} 个工作进程上的 {{jobs}} 个任务均按计划运行。", + "failing": "失败的任务", + "scheduled": "计划任务", + "runningNow": "正在进行" + }, + "recentErrors": { + "title": "最近错误", + "empty": "没有记录到错误。", + "count": "{{count}} 个错误", + "warnings": "警告" + }, + "team": { + "title": "团队成员", + "members": "{{count}} 名成员", + "unverified": "未验证" + } + }, + "picker": { + "trigger": "编辑卡片", + "title": "仪表板卡片", + "done": "完成", + "reset": "恢复默认", + "groups": { + "uptime": "运行时间", + "infrastructure": "基础设施", + "incidents": "事件", + "notifications": "通知", + "maintenance": "维护", + "statusPages": "状态页面", + "checks": "检查", + "logs": "系统", + "settings": "设置" + } + }, + "empty": { + "title": "您的仪表板上没有卡片", + "description": "选择您想查看的卡片。您的选择会记录在此浏览器中。" + }, + "reorder": { + "moveUp": "上移", + "moveDown": "下移" + } + }, "notFound": { "title": "哦不!你的寿司掉了!", "subtitle": "该 URL 不存在,或者您没有访问权限。" diff --git a/client/src/locales/zh-TW.json b/client/src/locales/zh-TW.json index a15a2a2bb..a220f4b75 100644 --- a/client/src/locales/zh-TW.json +++ b/client/src/locales/zh-TW.json @@ -181,7 +181,8 @@ "statusPages": "狀態頁面", "maintenance": "維護", "logs": "日誌", - "settings": "設定" + "settings": "設定", + "dashboard": "儀表板" }, "bottomMenu": { "support": "支援", @@ -223,6 +224,146 @@ } }, "pages": { + "dashboard": { + "header": { + "title": "儀表板", + "description": "在同一個頁面檢視運行時間、基礎設施、事件與檢查,不必逐頁開啟即可發現需要留意的問題。" + }, + "card": { + "error": "無法載入此卡片。" + }, + "cards": { + "monitorStatus": { + "title": "監視狀態", + "empty": "尚無監視器。", + "upOfTotal": "/ {{total}} 正常" + }, + "currentlyDown": { + "title": "目前離線", + "empty": "所有監視器均正常。沒有未處理的事件。", + "count": "{{count}} 項需要留意" + }, + "monitorsByType": { + "title": "依類型分類的監視器", + "empty": "尚無監視器。", + "down": "{{count}} 個離線" + }, + "recentIncidents": { + "title": "最近事件", + "empty": "沒有事件 — 所有系統正常。", + "active": "{{count}} 個未處理", + "ongoing": "進行中", + "manual": "手動", + "unknownMonitor": "未知監視器" + }, + "failedChecks": { + "title": "失敗的檢查", + "empty": "尚無檢查。", + "ratio": "最近一天 {{total}} 次中的 {{failed}} 次" + }, + "checkmateServer": { + "title": "Checkmate 伺服器", + "memory": "記憶體", + "eventLoop": "事件迴圈延遲", + "uptime": "運行時間", + "database": "資料庫", + "readsWrites": "{{reads}} 讀取/秒 · {{writes}} 寫入/秒" + }, + "ranking": { + "topOf": "{{total}} 個中的前 {{shown}} 個", + "notEnough": "監視器數量不足,無法排名。" + }, + "slowestMonitors": { + "title": "最慢的監視器" + }, + "lowestUptime": { + "title": "運行時間最低" + }, + "monitorsByGroup": { + "title": "依群組分類的監視器", + "empty": "尚無群組。群組在每個監視器上設定。" + }, + "busiestServers": { + "title": "最繁忙的伺服器", + "empty": "尚無基礎設施監視器。", + "cpu": "CPU", + "memory": "記憶體", + "disk": "磁碟" + }, + "incidentStats": { + "title": "事件統計", + "openNow": "目前未處理", + "avgResolution": "平均解決時間", + "hours": "{{hours}} 小時", + "mostIncidents": "事件最多", + "total": "總計", + "resolved": "已解決", + "automatic": "自動", + "manual": "手動", + "autoManual": "{{automatic}} 個自動 · {{manual}} 個手動" + }, + "notificationChannels": { + "title": "通知管道", + "empty": "尚無管道。" + }, + "maintenance": { + "title": "維護時段", + "empty": "沒有排定的維護。", + "runningNow": "進行中", + "next": "下一個時段" + }, + "statusPages": { + "title": "狀態頁面", + "empty": "尚無狀態頁面。", + "monitorCount": "{{count}} 個監視器", + "published": "已發布", + "draft": "草稿" + }, + "checksOnSchedule": { + "title": "檢查佇列", + "healthy": "{{workers}} 個工作處理程序上的 {{jobs}} 個工作均按計畫執行。", + "failing": "失敗的工作", + "scheduled": "排定的工作", + "runningNow": "進行中" + }, + "recentErrors": { + "title": "最近錯誤", + "empty": "沒有記錄到錯誤。", + "count": "{{count}} 個錯誤", + "warnings": "警告" + }, + "team": { + "title": "團隊成員", + "members": "{{count}} 位成員", + "unverified": "未驗證" + } + }, + "picker": { + "trigger": "編輯卡片", + "title": "儀表板卡片", + "done": "完成", + "reset": "還原預設值", + "groups": { + "uptime": "運行時間", + "infrastructure": "基礎設施", + "incidents": "事件", + "notifications": "通知", + "maintenance": "維護", + "statusPages": "狀態頁面", + "checks": "檢查", + "logs": "系統", + "settings": "設定" + } + }, + "empty": { + "title": "您的儀表板上沒有卡片", + "description": "選擇您想檢視的卡片。您的選擇會記錄在此瀏覽器中。" + }, + "reorder": { + "moveUp": "上移", + "moveDown": "下移" + } + }, "notFound": { "title": "哎呀!您的壽司掉了!", "subtitle": "該 URL 不存在,或您沒有存取權限。"