mirror of
https://github.com/bluewave-labs/Checkmate.git
synced 2026-01-07 10:19:40 -06:00
Merge branch 'develop' into feat/bulk-select-status-page-servers
This commit is contained in:
@@ -22,7 +22,7 @@ Checkmate also has an agent, called [Capture](https://github.com/bluewave-labs/c
|
||||
|
||||
Checkmate has been stress-tested with 1000+ active monitors without any particular issues or performance bottlenecks.
|
||||
|
||||
We **love** what we are building here, and we continuously learn a few things about Reactjs, Nodejs, MongoDB, and Docker while building Checkmate.
|
||||
**If you would like to sponsor a feature, [see this link](https://checkmate.so/sponsored-features).**
|
||||
|
||||
## 📚 Table of contents
|
||||
|
||||
@@ -130,7 +130,7 @@ If you have any questions, suggestions or comments, please use our [Discord chan
|
||||
|
||||
We are [Alex](http://github.com/ajhollid) (team lead), [Vishnu](http://github.com/vishnusn77), [Mohadeseh](http://github.com/mohicody), [Gorkem](http://github.com/gorkem-bwl/), [Owaise](http://github.com/Owaiseimdad), [Aryaman](https://github.com/Br0wnHammer) and [Mert](https://github.com/mertssmnoglu) helping individuals and businesses monitor their infra and servers.
|
||||
|
||||
We pride ourselves on building strong connections with contributors at every level. Despite being a young project, Checkmate has already earned 5800+ stars and attracted 70+ contributors from around the globe.
|
||||
We pride ourselves on building strong connections with contributors at every level. Despite being a young project, Checkmate has already earned 6000+ stars and attracted 80+ contributors from around the globe.
|
||||
|
||||
Our repo is starred by employees from **Google, Microsoft, Intel, Cisco, Tencent, Electronic Arts, ByteDance, JP Morgan Chase, Deloitte, Accenture, Foxconn, Broadcom, China Telecom, Barclays, Capgemini, Wipro, Cloudflare, Dassault Systèmes and NEC**, so don’t hold back — jump in, contribute and learn with us!
|
||||
|
||||
@@ -148,11 +148,13 @@ Here's how you can contribute:
|
||||
<img src="https://contrib.rocks/image?repo=bluewave-labs/checkmate" />
|
||||
</a>
|
||||
|
||||
[](https://star-history.com/#bluewave-labs/bluewave-uptime&Date)
|
||||
|
||||
## 💰 Our sponsors
|
||||
|
||||
Thanks to [Gitbook](https://gitbook.io/) for giving us a free tier for their documentation platform, and [Poeditor](https://poeditor.com/) providing us a free account to use their i18n services. If you would like to sponsor Checkmate, please send an email to hello@bluewavelabs.ca
|
||||
|
||||
[](https://star-history.com/#bluewave-labs/bluewave-uptime&Date)
|
||||
If you would like to sponsor a feature, [see this page](https://checkmate.so/sponsored-features).
|
||||
|
||||
Also check other developer and contributor-friendly projects of BlueWave:
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import PropTypes from "prop-types";
|
||||
import { Box, Breadcrumbs as MUIBreadcrumbs } from "@mui/material";
|
||||
import { useTheme } from "@emotion/react";
|
||||
import { useNavigate } from "react-router";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import ArrowRight from "../../assets/icons/right-arrow.svg?react";
|
||||
|
||||
import "./index.css";
|
||||
|
||||
@@ -39,7 +39,11 @@ const Fallback = ({
|
||||
const { t } = useTranslation();
|
||||
const [settingsData, setSettingsData] = useState(undefined);
|
||||
|
||||
const [isLoading, error] = useFetchSettings({ setSettingsData });
|
||||
const [isLoading, error] = useFetchSettings({
|
||||
setSettingsData,
|
||||
setIsApiKeySet: () => {},
|
||||
setIsEmailPasswordSet: () => {},
|
||||
});
|
||||
// Custom warning message with clickable link
|
||||
const renderWarningMessage = () => {
|
||||
return (
|
||||
|
||||
@@ -16,26 +16,27 @@ import "./index.css";
|
||||
* size="small"
|
||||
* />
|
||||
*
|
||||
* @param {Object} props - The component props.
|
||||
* @param {string} props.id - The id of the radio button.
|
||||
* @param {string} props.title - The title of the radio button.
|
||||
* @param {string} [props.desc] - The description of the radio button.
|
||||
* @param {string} [props.size="small"] - The size of the radio button.
|
||||
* @param {Object} props - The component
|
||||
* @param {string} id - The id of the radio button.
|
||||
* @param {string} title - The title of the radio button.
|
||||
* @param {string} [desc] - The description of the radio button.
|
||||
* @param {string} [size="small"] - The size of the radio button.
|
||||
* @returns {JSX.Element} - The rendered Radio component.
|
||||
*/
|
||||
|
||||
const Radio = (props) => {
|
||||
const Radio = ({ name, checked, value, id, size, title, desc, onChange }) => {
|
||||
const theme = useTheme();
|
||||
|
||||
return (
|
||||
<FormControlLabel
|
||||
className="custom-radio-button"
|
||||
checked={props.checked}
|
||||
value={props.value}
|
||||
name={name}
|
||||
checked={checked}
|
||||
value={value}
|
||||
control={
|
||||
<MUIRadio
|
||||
id={props.id}
|
||||
size={props.size}
|
||||
id={id}
|
||||
size={size}
|
||||
checkedIcon={<RadioChecked />}
|
||||
sx={{
|
||||
color: "transparent",
|
||||
@@ -49,16 +50,16 @@ const Radio = (props) => {
|
||||
}}
|
||||
/>
|
||||
}
|
||||
onChange={props.onChange}
|
||||
onChange={onChange}
|
||||
label={
|
||||
<>
|
||||
<Typography component="p">{props.title}</Typography>
|
||||
<Typography component="p">{title}</Typography>
|
||||
<Typography
|
||||
component="h6"
|
||||
mt={theme.spacing(1)}
|
||||
color={theme.palette.primary.contrastTextSecondary}
|
||||
>
|
||||
{props.desc}
|
||||
{desc}
|
||||
</Typography>
|
||||
</>
|
||||
}
|
||||
@@ -81,9 +82,14 @@ const Radio = (props) => {
|
||||
};
|
||||
|
||||
Radio.propTypes = {
|
||||
title: PropTypes.string.isRequired,
|
||||
title: PropTypes.string,
|
||||
desc: PropTypes.string,
|
||||
size: PropTypes.string,
|
||||
name: PropTypes.string,
|
||||
checked: PropTypes.bool,
|
||||
value: PropTypes.string,
|
||||
id: PropTypes.string,
|
||||
onChange: PropTypes.func,
|
||||
};
|
||||
|
||||
export default Radio;
|
||||
|
||||
@@ -3,7 +3,7 @@ import { networkService } from "../main";
|
||||
import { createToast } from "../Utils/toastUtils";
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
const useFetchSettings = ({ setSettingsData }) => {
|
||||
const useFetchSettings = ({ setSettingsData, setIsApiKeySet, setIsEmailPasswordSet }) => {
|
||||
const [isLoading, setIsLoading] = useState(false);
|
||||
const [error, setError] = useState(undefined);
|
||||
useEffect(() => {
|
||||
@@ -12,6 +12,8 @@ const useFetchSettings = ({ setSettingsData }) => {
|
||||
try {
|
||||
const response = await networkService.getAppSettings();
|
||||
setSettingsData(response?.data?.data);
|
||||
setIsApiKeySet(response?.data?.data?.pagespeedKeySet);
|
||||
setIsEmailPasswordSet(response?.data?.data?.emailPasswordSet);
|
||||
} catch (error) {
|
||||
createToast({ body: "Failed to fetch settings" });
|
||||
setError(error);
|
||||
@@ -20,12 +22,18 @@ const useFetchSettings = ({ setSettingsData }) => {
|
||||
}
|
||||
};
|
||||
fetchSettings();
|
||||
}, []);
|
||||
}, [setSettingsData]);
|
||||
|
||||
return [isLoading, error];
|
||||
};
|
||||
|
||||
const useSaveSettings = () => {
|
||||
const useSaveSettings = ({
|
||||
setSettingsData,
|
||||
setIsApiKeySet,
|
||||
setApiKeyHasBeenReset,
|
||||
setIsEmailPasswordSet,
|
||||
setEmailPasswordHasBeenReset,
|
||||
}) => {
|
||||
const [isLoading, setIsLoading] = useState(false);
|
||||
const [error, setError] = useState(undefined);
|
||||
const { t } = useTranslation();
|
||||
@@ -39,7 +47,15 @@ const useSaveSettings = () => {
|
||||
ttl: settings.checkTTL,
|
||||
});
|
||||
}
|
||||
console.log({ settingsResponse });
|
||||
setIsApiKeySet(settingsResponse.data.data.pagespeedKeySet);
|
||||
setIsEmailPasswordSet(settingsResponse.data.data.emailPasswordSet);
|
||||
if (settingsResponse.data.data.pagespeedKeySet === true) {
|
||||
setApiKeyHasBeenReset(false);
|
||||
}
|
||||
if (settingsResponse.data.data.emailPasswordSet === true) {
|
||||
setEmailPasswordHasBeenReset(false);
|
||||
}
|
||||
setSettingsData(settingsResponse.data.data);
|
||||
createToast({ body: t("settingsSuccessSaved") });
|
||||
} catch (error) {
|
||||
createToast({ body: t("settingsFailedToSave") });
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { useState } from "react";
|
||||
import PropTypes from "prop-types";
|
||||
import { useNavigate } from "react-router";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import { useSelector } from "react-redux";
|
||||
import { Box, Tab, useTheme } from "@mui/material";
|
||||
import CustomTabList from "../../Components/Tab";
|
||||
|
||||
@@ -2,7 +2,7 @@ import { Box, Button, Stack, Typography } from "@mui/material";
|
||||
import { useEffect, useState } from "react";
|
||||
import { useTheme } from "@emotion/react";
|
||||
import { useDispatch } from "react-redux";
|
||||
import { useNavigate } from "react-router";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import { createToast } from "../../Utils/toastUtils";
|
||||
import { forgotPassword } from "../../Features/Auth/authSlice";
|
||||
import { Trans, useTranslation } from "react-i18next";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Box, Button, Stack, Typography } from "@mui/material";
|
||||
import { useTheme } from "@emotion/react";
|
||||
import { useNavigate } from "react-router";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import { useDispatch } from "react-redux";
|
||||
import { clearAuthState } from "../../Features/Auth/authSlice";
|
||||
import Background from "../../assets/Images/background-grid.svg?react";
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
import React from "react";
|
||||
import PropTypes from "prop-types";
|
||||
import NotFoundSvg from "../../../src/assets/Images/sushi_404.svg";
|
||||
import { Button, Stack, Typography } from "@mui/material";
|
||||
import { useNavigate } from "react-router";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import { useTheme } from "@emotion/react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@ import TextInput from "../../../Components/Inputs/TextInput";
|
||||
|
||||
// Utils
|
||||
import { useState } from "react";
|
||||
import { useSelector } from "react-redux";
|
||||
import { useTheme } from "@emotion/react";
|
||||
import {
|
||||
useCreateNotification,
|
||||
@@ -44,7 +43,6 @@ const CreateNotifications = () => {
|
||||
];
|
||||
|
||||
// Redux state
|
||||
const { user } = useSelector((state) => state.auth);
|
||||
|
||||
// local state
|
||||
const [notification, setNotification] = useState({
|
||||
@@ -73,7 +71,7 @@ const CreateNotifications = () => {
|
||||
type: NOTIFICATION_TYPES.find((type) => type._id === notification.type).value,
|
||||
};
|
||||
|
||||
if (notification.type === 2) {
|
||||
if (form.type === "slack" || form.type === "discord") {
|
||||
form.type = "webhook";
|
||||
}
|
||||
|
||||
@@ -128,27 +126,33 @@ const CreateNotifications = () => {
|
||||
|
||||
// Handle config/platform initialization if type is webhook
|
||||
|
||||
if (newNotification.type === 1) {
|
||||
const type = NOTIFICATION_TYPES.find(
|
||||
(type) => type._id === newNotification.type
|
||||
).value;
|
||||
|
||||
if (type === "email") {
|
||||
newNotification.config = null;
|
||||
} else if (newNotification.type === 2) {
|
||||
} else if (type === "slack" || type === "webhook" || type === "discord") {
|
||||
newNotification.address = "";
|
||||
newNotification.config = newNotification.config || {};
|
||||
if (name === "config") {
|
||||
newNotification.config = value;
|
||||
}
|
||||
newNotification.config.platform = "slack";
|
||||
} else if (newNotification.type === 3) {
|
||||
if (type === "webhook") {
|
||||
newNotification.config.platform = "webhook";
|
||||
}
|
||||
if (type === "slack") {
|
||||
newNotification.config.platform = "slack";
|
||||
}
|
||||
if (type === "discord") {
|
||||
newNotification.config.platform = "discord";
|
||||
}
|
||||
} else if (type === "pager_duty") {
|
||||
newNotification.config = newNotification.config || {};
|
||||
if (name === "config") {
|
||||
newNotification.config = value;
|
||||
}
|
||||
newNotification.config.platform = "pager_duty";
|
||||
} else if (newNotification.type === 4) {
|
||||
newNotification.config = newNotification.config || {};
|
||||
if (name === "config") {
|
||||
newNotification.config = value;
|
||||
}
|
||||
newNotification.config.platform = "webhook";
|
||||
}
|
||||
|
||||
// Field-level validation
|
||||
@@ -159,12 +163,15 @@ const CreateNotifications = () => {
|
||||
fieldError = error?.message;
|
||||
}
|
||||
|
||||
if (newNotification.type === 1 && name === "address") {
|
||||
if (type === "email" && name === "address") {
|
||||
const { error } = notificationEmailValidation.extract(name).validate(value);
|
||||
fieldError = error?.message;
|
||||
}
|
||||
|
||||
if (newNotification.type === 2 && name === "config") {
|
||||
if (
|
||||
(type === "slack" || type === "webhook" || type === "discord") &&
|
||||
name === "config"
|
||||
) {
|
||||
// Validate only webhookUrl inside config
|
||||
const { error } = notificationWebhookValidation.extract("config").validate(value);
|
||||
fieldError = error?.message;
|
||||
@@ -185,7 +192,7 @@ const CreateNotifications = () => {
|
||||
type: NOTIFICATION_TYPES.find((type) => type._id === notification.type).value,
|
||||
};
|
||||
|
||||
if (notification.type === 2) {
|
||||
if (form.type === "slack" || form.type === "discord") {
|
||||
form.type = "webhook";
|
||||
}
|
||||
|
||||
@@ -405,6 +412,39 @@ const CreateNotifications = () => {
|
||||
</Stack>
|
||||
</ConfigBox>
|
||||
)}
|
||||
{notification.type === 5 && (
|
||||
<ConfigBox>
|
||||
<Box>
|
||||
<Typography component="h2">
|
||||
{t("createNotifications.discordSettings.title")}
|
||||
</Typography>
|
||||
<Typography component="p">
|
||||
{t("createNotifications.discordSettings.description")}
|
||||
</Typography>
|
||||
</Box>
|
||||
<Stack gap={theme.spacing(12)}>
|
||||
<TextInput
|
||||
label={t("createNotifications.discordSettings.webhookLabel")}
|
||||
value={notification.config.webhookUrl || ""}
|
||||
error={Boolean(errors.config)}
|
||||
helperText={errors["config"]}
|
||||
onChange={(e) => {
|
||||
const updatedConfig = {
|
||||
...notification.config,
|
||||
webhookUrl: e.target.value,
|
||||
};
|
||||
|
||||
onChange({
|
||||
target: {
|
||||
name: "config",
|
||||
value: updatedConfig,
|
||||
},
|
||||
});
|
||||
}}
|
||||
/>
|
||||
</Stack>
|
||||
</ConfigBox>
|
||||
)}
|
||||
<Stack
|
||||
direction="row"
|
||||
justifyContent="flex-end"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
export const NOTIFICATION_TYPES = [
|
||||
{ _id: 1, name: "E-mail", value: "email" },
|
||||
{ _id: 2, name: "Slack", value: "webhook" },
|
||||
{ _id: 2, name: "Slack", value: "slack" },
|
||||
{ _id: 3, name: "PagerDuty", value: "pager_duty" },
|
||||
{ _id: 4, name: "Webhook", value: "webhook" },
|
||||
{ _id: 5, name: "Discord", value: "discord" },
|
||||
];
|
||||
|
||||
@@ -5,13 +5,8 @@ import { getHumanReadableDuration } from "../../../../../Utils/timeUtils";
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
const PageSpeedStatusBoxes = ({ shouldRender, monitor }) => {
|
||||
const { time: uptimeDuration, units: uptimeUnits } = getHumanReadableDuration(
|
||||
monitor?.uptimeDuration
|
||||
);
|
||||
|
||||
const { time: lastCheckTime, units: lastCheckUnits } = getHumanReadableDuration(
|
||||
monitor?.lastChecked
|
||||
);
|
||||
const uptimeDuration = getHumanReadableDuration(monitor?.uptimeDuration);
|
||||
const time = getHumanReadableDuration(monitor?.lastChecked);
|
||||
|
||||
const { t } = useTranslation();
|
||||
|
||||
@@ -22,7 +17,6 @@ const PageSpeedStatusBoxes = ({ shouldRender, monitor }) => {
|
||||
subHeading={
|
||||
<>
|
||||
{uptimeDuration}
|
||||
<Typography component="span">{uptimeUnits}</Typography>
|
||||
<Typography component="span">{t("ago")}</Typography>
|
||||
</>
|
||||
}
|
||||
@@ -31,8 +25,7 @@ const PageSpeedStatusBoxes = ({ shouldRender, monitor }) => {
|
||||
heading="last check"
|
||||
subHeading={
|
||||
<>
|
||||
{lastCheckTime}
|
||||
<Typography component="span">{lastCheckUnits}</Typography>
|
||||
{time}
|
||||
<Typography component="span">{t("ago")}</Typography>
|
||||
</>
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ import PropTypes from "prop-types";
|
||||
import PageSpeedIcon from "../../../../../assets/icons/page-speed.svg?react";
|
||||
import { StatusLabel } from "../../../../../Components/Label";
|
||||
import { Box, Grid, Stack, Typography } from "@mui/material";
|
||||
import { useNavigate } from "react-router";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import { useTheme } from "@emotion/react";
|
||||
import { Area, AreaChart, CartesianGrid, ResponsiveContainer, Tooltip } from "recharts";
|
||||
import { useSelector } from "react-redux";
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import React, { useState } from "react";
|
||||
import { Box, Typography, Button, Stack } from "@mui/material";
|
||||
import { useTheme } from "@emotion/react";
|
||||
import { useNavigate } from "react-router";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import { networkService } from "../Utils/NetworkService";
|
||||
import Alert from "../Components/Alert";
|
||||
import { createToast } from "../Utils/toastUtils";
|
||||
|
||||
@@ -7,7 +7,7 @@ import Stack from "@mui/material/Stack";
|
||||
// Utils
|
||||
import { useTheme } from "@emotion/react";
|
||||
import { PropTypes } from "prop-types";
|
||||
import { useState } from "react";
|
||||
import { useState, useEffect } from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { PasswordEndAdornment } from "../../Components/Inputs/TextInput/Adornments";
|
||||
import { useSendTestEmail } from "../../Hooks/useSendTestEmail";
|
||||
@@ -20,7 +20,9 @@ const SettingsEmail = ({
|
||||
handleChange,
|
||||
settingsData,
|
||||
setSettingsData,
|
||||
isPasswordSet,
|
||||
isEmailPasswordSet,
|
||||
emailPasswordHasBeenReset,
|
||||
setEmailPasswordHasBeenReset,
|
||||
}) => {
|
||||
// Setup
|
||||
const { t } = useTranslation();
|
||||
@@ -43,7 +45,6 @@ const SettingsEmail = ({
|
||||
} = settingsData?.settings || {};
|
||||
// Local state
|
||||
const [password, setPassword] = useState("");
|
||||
const [hasBeenReset, setHasBeenReset] = useState(false);
|
||||
|
||||
// Network
|
||||
const [isSending, , sendTestEmail] = useSendTestEmail(); // Using empty placeholder for unused error variable
|
||||
@@ -152,7 +153,7 @@ const SettingsEmail = ({
|
||||
onChange={handleChange}
|
||||
/>
|
||||
</Box>
|
||||
{(isPasswordSet === false || hasBeenReset === true) && (
|
||||
{(isEmailPasswordSet === false || emailPasswordHasBeenReset === true) && (
|
||||
<Box>
|
||||
<Typography>{t("settingsEmailPassword")}</Typography>
|
||||
<TextInput
|
||||
@@ -165,7 +166,8 @@ const SettingsEmail = ({
|
||||
/>
|
||||
</Box>
|
||||
)}
|
||||
{isPasswordSet === true && hasBeenReset === false && (
|
||||
|
||||
{isEmailPasswordSet === true && emailPasswordHasBeenReset === false && (
|
||||
<Box>
|
||||
<Typography>{t("settingsEmailFieldResetLabel")}</Typography>
|
||||
<Button
|
||||
@@ -175,7 +177,7 @@ const SettingsEmail = ({
|
||||
...settingsData,
|
||||
settings: { ...settingsData.settings, systemEmailPassword: "" },
|
||||
});
|
||||
setHasBeenReset(true);
|
||||
setEmailPasswordHasBeenReset(true);
|
||||
}}
|
||||
variant="contained"
|
||||
color="error"
|
||||
|
||||
@@ -17,13 +17,14 @@ const SettingsPagespeed = ({
|
||||
settingsData,
|
||||
setSettingsData,
|
||||
isApiKeySet,
|
||||
apiKeyHasBeenReset,
|
||||
setApiKeyHasBeenReset,
|
||||
}) => {
|
||||
const { t } = useTranslation();
|
||||
const theme = useTheme();
|
||||
|
||||
// Local state
|
||||
const [apiKey, setApiKey] = useState("");
|
||||
const [hasBeenReset, setHasBeenReset] = useState(false);
|
||||
|
||||
// Handler
|
||||
const handleChange = (e) => {
|
||||
@@ -50,7 +51,7 @@ const SettingsPagespeed = ({
|
||||
<Typography sx={HEADING_SX}>{t("pageSpeedApiKeyFieldDescription")}</Typography>
|
||||
</Box>
|
||||
<Stack gap={theme.spacing(20)}>
|
||||
{(isApiKeySet === false || hasBeenReset === true) && (
|
||||
{(isApiKeySet === false || apiKeyHasBeenReset === true) && (
|
||||
<TextInput
|
||||
name="pagespeedApiKey"
|
||||
label={t("pageSpeedApiKeyFieldLabel")}
|
||||
@@ -62,7 +63,7 @@ const SettingsPagespeed = ({
|
||||
/>
|
||||
)}
|
||||
|
||||
{isApiKeySet === true && hasBeenReset === false && (
|
||||
{isApiKeySet === true && apiKeyHasBeenReset === false && (
|
||||
<Box>
|
||||
<Typography>{t("pageSpeedApiKeyFieldResetLabel")}</Typography>
|
||||
<Button
|
||||
@@ -72,7 +73,7 @@ const SettingsPagespeed = ({
|
||||
...settingsData,
|
||||
settings: { ...settingsData.settings, pagespeedApiKey: "" },
|
||||
});
|
||||
setHasBeenReset(true);
|
||||
setApiKeyHasBeenReset(true);
|
||||
}}
|
||||
variant="contained"
|
||||
color="error"
|
||||
@@ -93,6 +94,9 @@ SettingsPagespeed.propTypes = {
|
||||
settingsData: PropTypes.object,
|
||||
setSettingsData: PropTypes.func,
|
||||
isApiKeySet: PropTypes.bool,
|
||||
setIsApiKeySet: PropTypes.func,
|
||||
apiKeyHasBeenReset: PropTypes.bool,
|
||||
setApiKeyHasBeenReset: PropTypes.func,
|
||||
};
|
||||
|
||||
export default SettingsPagespeed;
|
||||
|
||||
@@ -31,19 +31,32 @@ const BREADCRUMBS = [{ name: `Settings`, path: "/settings" }];
|
||||
const Settings = () => {
|
||||
// Redux state
|
||||
const { mode, language, timezone, showURL } = useSelector((state) => state.ui);
|
||||
const { user } = useSelector((state) => state.auth);
|
||||
|
||||
// Local state
|
||||
const [settingsData, setSettingsData] = useState({});
|
||||
const [errors, setErrors] = useState({});
|
||||
const [isApiKeySet, setIsApiKeySet] = useState(settingsData?.pagespeedKeySet ?? false);
|
||||
const [apiKeyHasBeenReset, setApiKeyHasBeenReset] = useState(false);
|
||||
const [isEmailPasswordSet, setIsEmailPasswordSet] = useState(
|
||||
settingsData?.emailPasswordSet ?? false
|
||||
);
|
||||
const [emailPasswordHasBeenReset, setEmailPasswordHasBeenReset] = useState(false);
|
||||
|
||||
// Network
|
||||
const [isSettingsLoading, settingsError] = useFetchSettings({
|
||||
setSettingsData,
|
||||
setIsApiKeySet,
|
||||
setIsEmailPasswordSet,
|
||||
});
|
||||
const [addDemoMonitors, isAddingDemoMonitors] = useAddDemoMonitors();
|
||||
|
||||
const [isSaving, saveError, saveSettings] = useSaveSettings();
|
||||
const [isSaving, saveError, saveSettings] = useSaveSettings({
|
||||
setSettingsData,
|
||||
setIsApiKeySet,
|
||||
setApiKeyHasBeenReset,
|
||||
setIsEmailPasswordSet,
|
||||
setEmailPasswordHasBeenReset,
|
||||
});
|
||||
const [deleteAllMonitors, isDeletingMonitors] = useDeleteAllMonitors();
|
||||
const [deleteMonitorStats, isDeletingMonitorStats] = useDeleteMonitorStats();
|
||||
|
||||
@@ -53,7 +66,6 @@ const Settings = () => {
|
||||
const HEADING_SX = { mt: theme.spacing(2), mb: theme.spacing(2) };
|
||||
const { t } = useTranslation();
|
||||
const dispatch = useDispatch();
|
||||
|
||||
// Handlers
|
||||
const handleChange = async (e) => {
|
||||
const { name, value, checked } = e.target;
|
||||
@@ -79,30 +91,19 @@ const Settings = () => {
|
||||
settings: { ...settingsData.settings, [name]: newValue ?? value },
|
||||
};
|
||||
|
||||
// Validate
|
||||
const { error } = settingsValidation.validate(newSettingsData.settings, {
|
||||
abortEarly: false,
|
||||
});
|
||||
if (!error || error.details.length === 0) {
|
||||
setErrors({});
|
||||
} else {
|
||||
const newErrors = {};
|
||||
error.details.forEach((err) => {
|
||||
newErrors[err.path[0]] = err.message;
|
||||
});
|
||||
setErrors(newErrors);
|
||||
}
|
||||
|
||||
if (name === "timezone") {
|
||||
dispatch(setTimezone({ timezone: value }));
|
||||
return;
|
||||
}
|
||||
|
||||
if (name === "mode") {
|
||||
dispatch(setMode(value));
|
||||
return;
|
||||
}
|
||||
|
||||
if (name === "language") {
|
||||
dispatch(setLanguage(value));
|
||||
return;
|
||||
}
|
||||
|
||||
if (name === "deleteStats") {
|
||||
@@ -120,6 +121,20 @@ const Settings = () => {
|
||||
return;
|
||||
}
|
||||
|
||||
// Validate
|
||||
const { error } = settingsValidation.validate(newSettingsData.settings, {
|
||||
abortEarly: false,
|
||||
});
|
||||
if (!error || error.details.length === 0) {
|
||||
setErrors({});
|
||||
} else {
|
||||
const newErrors = {};
|
||||
error.details.forEach((err) => {
|
||||
newErrors[err.path[0]] = err.message;
|
||||
});
|
||||
setErrors(newErrors);
|
||||
}
|
||||
|
||||
setSettingsData(newSettingsData);
|
||||
};
|
||||
|
||||
@@ -159,7 +174,9 @@ const Settings = () => {
|
||||
HEADING_SX={HEADING_SX}
|
||||
settingsData={settingsData}
|
||||
setSettingsData={setSettingsData}
|
||||
isApiKeySet={settingsData?.pagespeedKeySet ?? false}
|
||||
isApiKeySet={isApiKeySet}
|
||||
apiKeyHasBeenReset={apiKeyHasBeenReset}
|
||||
setApiKeyHasBeenReset={setApiKeyHasBeenReset}
|
||||
/>
|
||||
<SettingsURL
|
||||
HEADING_SX={HEADING_SX}
|
||||
@@ -187,7 +204,9 @@ const Settings = () => {
|
||||
handleChange={handleChange}
|
||||
settingsData={settingsData}
|
||||
setSettingsData={setSettingsData}
|
||||
isPasswordSet={settingsData?.emailPasswordSet ?? false}
|
||||
isEmailPasswordSet={isEmailPasswordSet}
|
||||
emailPasswordHasBeenReset={emailPasswordHasBeenReset}
|
||||
setEmailPasswordHasBeenReset={setEmailPasswordHasBeenReset}
|
||||
/>
|
||||
<SettingsAbout />
|
||||
<Stack
|
||||
|
||||
@@ -10,7 +10,7 @@ import Breadcrumbs from "../../../Components/Breadcrumbs";
|
||||
import ConfigBox from "../../../Components/ConfigBox";
|
||||
import UploadFile from "./Upload";
|
||||
import { useSelector } from "react-redux";
|
||||
import { useNavigate } from "react-router";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import { Trans, useTranslation } from "react-i18next";
|
||||
import { useCreateBulkMonitors } from "../../../Hooks/monitorHooks";
|
||||
|
||||
|
||||
@@ -147,6 +147,7 @@ const CreateMonitor = () => {
|
||||
|
||||
const onChange = (event) => {
|
||||
const { name, value, checked } = event.target;
|
||||
|
||||
let newValue = value;
|
||||
if (name === "ignoreTlsErrors") {
|
||||
newValue = checked;
|
||||
|
||||
@@ -24,30 +24,22 @@ const UptimeStatusBoxes = ({
|
||||
const timeOfLastCheck = monitorStats?.lastCheckTimestamp;
|
||||
const timeSinceLastCheck = Date.now() - timeOfLastCheck;
|
||||
|
||||
const { time: streakTime, units: streakUnits } =
|
||||
getHumanReadableDuration(timeSinceLastFailure);
|
||||
const streakTime = getHumanReadableDuration(timeSinceLastFailure);
|
||||
|
||||
const { time: lastCheckTime, units: lastCheckUnits } =
|
||||
getHumanReadableDuration(timeSinceLastCheck);
|
||||
const lastCheckTime = getHumanReadableDuration(timeSinceLastCheck);
|
||||
return (
|
||||
<StatusBoxes shouldRender={!isLoading}>
|
||||
<StatBox
|
||||
gradient={true}
|
||||
status={determineState(monitor)}
|
||||
heading={"active for"}
|
||||
subHeading={
|
||||
<>
|
||||
{streakTime}
|
||||
<Typography component="span">{streakUnits}</Typography>
|
||||
</>
|
||||
}
|
||||
subHeading={streakTime}
|
||||
/>
|
||||
<StatBox
|
||||
heading="last check"
|
||||
subHeading={
|
||||
<>
|
||||
{lastCheckTime}
|
||||
<Typography component="span">{lastCheckUnits}</Typography>
|
||||
<Typography component="span">{"ago"}</Typography>
|
||||
</>
|
||||
}
|
||||
@@ -80,7 +72,7 @@ const UptimeStatusBoxes = ({
|
||||
};
|
||||
|
||||
UptimeStatusBoxes.propTypes = {
|
||||
shouldRender: PropTypes.bool,
|
||||
isLoading: PropTypes.bool,
|
||||
monitor: PropTypes.object,
|
||||
monitorStats: PropTypes.object,
|
||||
certificateExpiry: PropTypes.string,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { useDispatch } from "react-redux";
|
||||
import { useNavigate } from "react-router";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
import { setNetworkService } from "./NetworkService";
|
||||
import NetworkService, { networkService } from "./NetworkService";
|
||||
import { store } from "../store";
|
||||
|
||||
@@ -79,22 +79,35 @@ export const formatDurationSplit = (ms) => {
|
||||
|
||||
export const getHumanReadableDuration = (ms) => {
|
||||
const durationObj = dayjs.duration(ms);
|
||||
if (durationObj.asDays() >= 1) {
|
||||
const days = Math.floor(durationObj.asDays());
|
||||
return { time: days, units: days === 1 ? "day" : "days" };
|
||||
} else if (durationObj.asHours() >= 1) {
|
||||
const hoursRounded = Math.round(durationObj.asHours() * 10) / 10;
|
||||
const hours = Number.isInteger(hoursRounded)
|
||||
? Math.floor(hoursRounded)
|
||||
: hoursRounded;
|
||||
return { time: hours, units: hours <= 1 ? "hour" : "hours" };
|
||||
} else if (durationObj.asMinutes() >= 1) {
|
||||
const minutes = Math.floor(durationObj.asMinutes());
|
||||
return { time: minutes, units: minutes === 1 ? "minute" : "minutes" };
|
||||
} else {
|
||||
const seconds = Math.floor(durationObj.asSeconds());
|
||||
return { time: seconds, units: seconds === 1 ? "second" : "seconds" };
|
||||
|
||||
const parts = {
|
||||
days: Math.floor(durationObj.asDays()),
|
||||
hours: durationObj.hours(),
|
||||
minutes: durationObj.minutes(),
|
||||
seconds: durationObj.seconds(),
|
||||
};
|
||||
|
||||
const result = [];
|
||||
|
||||
if (parts.days > 0) {
|
||||
result.push(`${parts.days}d`);
|
||||
}
|
||||
if (parts.hours > 0) {
|
||||
result.push(`${parts.hours}h`);
|
||||
}
|
||||
if (result.length < 2 && parts.minutes > 0) {
|
||||
result.push(`${parts.minutes}m`);
|
||||
}
|
||||
if (result.length < 2 && parts.seconds > 0) {
|
||||
result.push(`${parts.seconds}s`);
|
||||
}
|
||||
|
||||
if (result.length === 0) {
|
||||
// fallback for durations < 1s
|
||||
return "0s";
|
||||
}
|
||||
|
||||
return result.join(" ");
|
||||
};
|
||||
|
||||
export const formatDate = (date, customOptions) => {
|
||||
|
||||
@@ -7,7 +7,7 @@ const nameSchema = joi
|
||||
.string()
|
||||
.max(50)
|
||||
.trim()
|
||||
.pattern(/^[\p{L}\p{M}''\- ]+$/u)
|
||||
.pattern(/^[\p{L}\p{M}''()\-\. ]+$/u)
|
||||
.messages({
|
||||
"string.empty": "auth.common.inputs.firstName.errors.empty",
|
||||
"string.max": "auth.common.inputs.firstName.errors.length",
|
||||
@@ -18,7 +18,7 @@ const lastnameSchema = joi
|
||||
.string()
|
||||
.max(50)
|
||||
.trim()
|
||||
.pattern(/^[\p{L}\p{M}''\- ]+$/u)
|
||||
.pattern(/^[\p{L}\p{M}''()\-\. ]+$/u)
|
||||
.messages({
|
||||
"string.empty": "auth.common.inputs.lastName.errors.empty",
|
||||
"string.max": "auth.common.inputs.lastName.errors.length",
|
||||
|
||||
744
client/src/locales/ar.json
Normal file
744
client/src/locales/ar.json
Normal file
@@ -0,0 +1,744 @@
|
||||
{
|
||||
"submit": "",
|
||||
"title": "",
|
||||
"distributedStatusHeaderText": "",
|
||||
"distributedStatusSubHeaderText": "",
|
||||
"settingsGeneralSettings": "",
|
||||
"settingsDisplayTimezone": "",
|
||||
"settingsDisplayTimezoneDescription": "",
|
||||
"settingsAppearance": "",
|
||||
"settingsAppearanceDescription": "",
|
||||
"settingsThemeMode": "",
|
||||
"settingsLanguage": "",
|
||||
"settingsEnabled": "",
|
||||
"settingsDisabled": "",
|
||||
"settingsHistoryAndMonitoring": "",
|
||||
"settingsHistoryAndMonitoringDescription": "",
|
||||
"settingsTTLLabel": "",
|
||||
"settingsTTLOptionalLabel": "",
|
||||
"settingsClearAllStats": "",
|
||||
"settingsClearAllStatsButton": "",
|
||||
"settingsClearAllStatsDialogTitle": "",
|
||||
"settingsClearAllStatsDialogDescription": "",
|
||||
"settingsClearAllStatsDialogConfirm": "",
|
||||
"settingsDemoMonitors": "",
|
||||
"settingsDemoMonitorsDescription": "",
|
||||
"settingsAddDemoMonitors": "",
|
||||
"settingsAddDemoMonitorsButton": "",
|
||||
"settingsRemoveAllMonitors": "",
|
||||
"settingsRemoveAllMonitorsButton": "",
|
||||
"settingsRemoveAllMonitorsDialogTitle": "",
|
||||
"settingsRemoveAllMonitorsDialogConfirm": "",
|
||||
"settingsAbout": "",
|
||||
"settingsDevelopedBy": "",
|
||||
"settingsSave": "",
|
||||
"settingsSuccessSaved": "",
|
||||
"settingsFailedToSave": "",
|
||||
"settingsStatsCleared": "",
|
||||
"settingsFailedToClearStats": "",
|
||||
"settingsDemoMonitorsAdded": "",
|
||||
"settingsFailedToAddDemoMonitors": "",
|
||||
"settingsMonitorsDeleted": "",
|
||||
"settingsFailedToDeleteMonitors": "",
|
||||
"starPromptTitle": "",
|
||||
"starPromptDescription": "",
|
||||
"https": "",
|
||||
"http": "",
|
||||
"monitor": "",
|
||||
"aboutus": "",
|
||||
"now": "",
|
||||
"delete": "",
|
||||
"configure": "",
|
||||
"responseTime": "",
|
||||
"ms": "",
|
||||
"bar": "",
|
||||
"area": "",
|
||||
"country": "",
|
||||
"city": "",
|
||||
"response": "",
|
||||
"monitorStatusUp": "",
|
||||
"monitorStatusDown": "",
|
||||
"webhookSendSuccess": "",
|
||||
"webhookSendError": "",
|
||||
"webhookUnsupportedPlatform": "",
|
||||
"distributedRightCategoryTitle": "",
|
||||
"distributedStatusServerMonitors": "",
|
||||
"distributedStatusServerMonitorsDescription": "",
|
||||
"distributedUptimeCreateSelectURL": "",
|
||||
"distributedUptimeCreateChecks": "",
|
||||
"distributedUptimeCreateChecksDescription": "",
|
||||
"distributedUptimeCreateIncidentNotification": "",
|
||||
"distributedUptimeCreateIncidentDescription": "",
|
||||
"distributedUptimeCreateAdvancedSettings": "",
|
||||
"distributedUptimeDetailsNoMonitorHistory": "",
|
||||
"distributedUptimeDetailsStatusHeaderUptime": "",
|
||||
"distributedUptimeDetailsStatusHeaderLastUpdate": "",
|
||||
"notifications": {
|
||||
"enableNotifications": "",
|
||||
"testNotification": "",
|
||||
"addOrEditNotifications": "",
|
||||
"slack": {
|
||||
"label": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": "",
|
||||
"webhookRequired": ""
|
||||
},
|
||||
"discord": {
|
||||
"label": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": "",
|
||||
"webhookRequired": ""
|
||||
},
|
||||
"telegram": {
|
||||
"label": "",
|
||||
"description": "",
|
||||
"tokenLabel": "",
|
||||
"tokenPlaceholder": "",
|
||||
"chatIdLabel": "",
|
||||
"chatIdPlaceholder": "",
|
||||
"fieldsRequired": ""
|
||||
},
|
||||
"webhook": {
|
||||
"label": "",
|
||||
"description": "",
|
||||
"urlLabel": "",
|
||||
"urlPlaceholder": "",
|
||||
"urlRequired": ""
|
||||
},
|
||||
"testNotificationDevelop": "",
|
||||
"integrationButton": "",
|
||||
"testSuccess": "",
|
||||
"testFailed": "",
|
||||
"unsupportedType": "",
|
||||
"networkError": "",
|
||||
"fallback": {
|
||||
"title": "",
|
||||
"checks": [""]
|
||||
},
|
||||
"createButton": "",
|
||||
"createTitle": "",
|
||||
"create": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"fetch": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"delete": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"edit": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"test": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
}
|
||||
},
|
||||
"testLocale": "",
|
||||
"add": "",
|
||||
"monitors": "",
|
||||
"distributedUptimeStatusCreateStatusPage": "",
|
||||
"distributedUptimeStatusCreateStatusPageAccess": "",
|
||||
"distributedUptimeStatusCreateStatusPageReady": "",
|
||||
"distributedUptimeStatusBasicInfoHeader": "",
|
||||
"distributedUptimeStatusBasicInfoDescription": "",
|
||||
"distributedUptimeStatusLogoHeader": "",
|
||||
"distributedUptimeStatusLogoDescription": "",
|
||||
"distributedUptimeStatusLogoUploadButton": "",
|
||||
"distributedUptimeStatusStandardMonitorsHeader": "",
|
||||
"distributedUptimeStatusStandardMonitorsDescription": "",
|
||||
"distributedUptimeStatusCreateYour": "",
|
||||
"distributedUptimeStatusEditYour": "",
|
||||
"distributedUptimeStatusPublishedLabel": "",
|
||||
"distributedUptimeStatusCompanyNameLabel": "",
|
||||
"distributedUptimeStatusPageAddressLabel": "",
|
||||
"distributedUptimeStatus30Days": "",
|
||||
"distributedUptimeStatus60Days": "",
|
||||
"distributedUptimeStatus90Days": "",
|
||||
"distributedUptimeStatusPageNotSetUp": "",
|
||||
"distributedUptimeStatusContactAdmin": "",
|
||||
"distributedUptimeStatusPageNotPublic": "",
|
||||
"distributedUptimeStatusPageDeleteDialog": "",
|
||||
"distributedUptimeStatusPageDeleteConfirm": "",
|
||||
"distributedUptimeStatusPageDeleteDescription": "",
|
||||
"distributedUptimeStatusDevices": "",
|
||||
"distributedUptimeStatusUpt": "",
|
||||
"distributedUptimeStatusUptBurned": "",
|
||||
"distributedUptimeStatusUptLogo": "",
|
||||
"incidentsTableNoIncidents": "",
|
||||
"incidentsTablePaginationLabel": "",
|
||||
"incidentsTableMonitorName": "",
|
||||
"incidentsTableStatus": "",
|
||||
"incidentsTableDateTime": "",
|
||||
"incidentsTableStatusCode": "",
|
||||
"incidentsTableMessage": "",
|
||||
"incidentsOptionsHeader": "",
|
||||
"incidentsOptionsHeaderFilterBy": "",
|
||||
"incidentsOptionsHeaderFilterAll": "",
|
||||
"incidentsOptionsHeaderFilterDown": "",
|
||||
"incidentsOptionsHeaderFilterCannotResolve": "",
|
||||
"incidentsOptionsHeaderShow": "",
|
||||
"incidentsOptionsHeaderLastHour": "",
|
||||
"incidentsOptionsHeaderLastDay": "",
|
||||
"incidentsOptionsHeaderLastWeek": "",
|
||||
"incidentsOptionsPlaceholderAllServers": "",
|
||||
"infrastructureCreateYour": "",
|
||||
"infrastructureCreateGeneralSettingsDescription": "",
|
||||
"infrastructureServerRequirement": "",
|
||||
"infrastructureCustomizeAlerts": "",
|
||||
"infrastructureAlertNotificationDescription": "",
|
||||
"infrastructureCreateMonitor": "",
|
||||
"infrastructureProtocol": "",
|
||||
"infrastructureServerUrlLabel": "",
|
||||
"infrastructureDisplayNameLabel": "",
|
||||
"infrastructureAuthorizationSecretLabel": "",
|
||||
"gb": "",
|
||||
"mb": "",
|
||||
"mem": "",
|
||||
"memoryUsage": "",
|
||||
"cpu": "",
|
||||
"cpuUsage": "",
|
||||
"cpuTemperature": "",
|
||||
"diskUsage": "",
|
||||
"used": "",
|
||||
"total": "",
|
||||
"cores": "",
|
||||
"frequency": "",
|
||||
"status": "",
|
||||
"cpuPhysical": "",
|
||||
"cpuLogical": "",
|
||||
"cpuFrequency": "",
|
||||
"avgCpuTemperature": "",
|
||||
"memory": "",
|
||||
"disk": "",
|
||||
"uptime": "",
|
||||
"os": "",
|
||||
"host": "",
|
||||
"actions": "",
|
||||
"integrations": "",
|
||||
"integrationsPrism": "",
|
||||
"integrationsSlack": "",
|
||||
"integrationsSlackInfo": "",
|
||||
"integrationsDiscord": "",
|
||||
"integrationsDiscordInfo": "",
|
||||
"integrationsZapier": "",
|
||||
"integrationsZapierInfo": "",
|
||||
"commonSave": "",
|
||||
"createYour": "",
|
||||
"createMonitor": "",
|
||||
"pause": "",
|
||||
"resume": "",
|
||||
"editing": "",
|
||||
"url": "",
|
||||
"access": "",
|
||||
"timezone": "",
|
||||
"features": "",
|
||||
"administrator": "",
|
||||
"loginHere": "",
|
||||
"displayName": "",
|
||||
"urlMonitor": "",
|
||||
"portToMonitor": "",
|
||||
"websiteMonitoring": "",
|
||||
"websiteMonitoringDescription": "",
|
||||
"pingMonitoring": "",
|
||||
"pingMonitoringDescription": "",
|
||||
"dockerContainerMonitoring": "",
|
||||
"dockerContainerMonitoringDescription": "",
|
||||
"portMonitoring": "",
|
||||
"portMonitoringDescription": "",
|
||||
"createMaintenanceWindow": "",
|
||||
"createMaintenance": "",
|
||||
"editMaintenance": "",
|
||||
"maintenanceWindowName": "",
|
||||
"friendlyNameInput": "",
|
||||
"friendlyNamePlaceholder": "",
|
||||
"maintenanceRepeat": "",
|
||||
"maintenance": "",
|
||||
"duration": "",
|
||||
"addMonitors": "",
|
||||
"window": "",
|
||||
"cancel": "",
|
||||
"message": "",
|
||||
"low": "",
|
||||
"high": "",
|
||||
"statusCode": "",
|
||||
"date&Time": "",
|
||||
"type": "",
|
||||
"statusPageName": "",
|
||||
"publicURL": "",
|
||||
"repeat": "",
|
||||
"edit": "",
|
||||
"createA": "",
|
||||
"remove": "",
|
||||
"maintenanceWindowDescription": "",
|
||||
"startTime": "",
|
||||
"timeZoneInfo": "",
|
||||
"monitorsToApply": "",
|
||||
"nextWindow": "",
|
||||
"notFoundButton": "",
|
||||
"pageSpeedConfigureSettingsDescription": "",
|
||||
"monitorDisplayName": "",
|
||||
"whenNewIncident": "",
|
||||
"notifySMS": "",
|
||||
"notifyEmails": "",
|
||||
"seperateEmails": "",
|
||||
"checkFrequency": "",
|
||||
"matchMethod": "",
|
||||
"expectedValue": "",
|
||||
"deleteDialogTitle": "",
|
||||
"deleteDialogDescription": "",
|
||||
"pageSpeedMonitor": "",
|
||||
"shown": "",
|
||||
"ago": "",
|
||||
"companyName": "",
|
||||
"pageSpeedDetailsPerformanceReport": "",
|
||||
"pageSpeedDetailsPerformanceReportCalculator": "",
|
||||
"checkingEvery": "",
|
||||
"statusPageCreateSettings": "",
|
||||
"basicInformation": "",
|
||||
"statusPageCreateBasicInfoDescription": "",
|
||||
"statusPageCreateSelectTimeZoneDescription": "",
|
||||
"statusPageCreateAppearanceDescription": "",
|
||||
"statusPageCreateSettingsCheckboxLabel": "",
|
||||
"statusPageCreateBasicInfoStatusPageAddress": "",
|
||||
"statusPageCreateTabsContent": "",
|
||||
"statusPageCreateTabsContentDescription": "",
|
||||
"statusPageCreateTabsContentFeaturesDescription": "",
|
||||
"showCharts": "",
|
||||
"showUptimePercentage": "",
|
||||
"removeLogo": "",
|
||||
"statusPageStatus": "",
|
||||
"statusPageStatusContactAdmin": "",
|
||||
"statusPageStatusNotPublic": "",
|
||||
"statusPageStatusNoPage": "",
|
||||
"statusPageStatusServiceStatus": "",
|
||||
"deleteStatusPage": "",
|
||||
"deleteStatusPageConfirm": "",
|
||||
"deleteStatusPageDescription": "",
|
||||
"uptimeCreate": "",
|
||||
"uptimeCreateJsonPath": "",
|
||||
"uptimeCreateJsonPathQuery": "",
|
||||
"maintenanceTableActionMenuDialogTitle": "",
|
||||
"infrastructureEditYour": "",
|
||||
"infrastructureEditMonitor": "",
|
||||
"infrastructureMonitorCreated": "",
|
||||
"infrastructureMonitorUpdated": "",
|
||||
"errorInvalidTypeId": "",
|
||||
"errorInvalidFieldId": "",
|
||||
"inviteNoTokenFound": "",
|
||||
"pageSpeedWarning": "",
|
||||
"pageSpeedLearnMoreLink": "",
|
||||
"pageSpeedAddApiKey": "",
|
||||
"update": "",
|
||||
"invalidFileFormat": "",
|
||||
"invalidFileSize": "",
|
||||
"ClickUpload": "",
|
||||
"DragandDrop": "",
|
||||
"MaxSize": "",
|
||||
"SupportedFormats": "",
|
||||
"FirstName": "",
|
||||
"LastName": "",
|
||||
"EmailDescriptionText": "",
|
||||
"YourPhoto": "",
|
||||
"PhotoDescriptionText": "",
|
||||
"save": "",
|
||||
"DeleteDescriptionText": "",
|
||||
"DeleteAccountWarning": "",
|
||||
"DeleteWarningTitle": "",
|
||||
"bulkImport": {
|
||||
"title": "",
|
||||
"selectFileTips": "",
|
||||
"selectFileDescription": "",
|
||||
"selectFile": "",
|
||||
"parsingFailed": "",
|
||||
"uploadSuccess": "",
|
||||
"validationFailed": "",
|
||||
"noFileSelected": "",
|
||||
"fallbackPage": ""
|
||||
},
|
||||
"settingsSystemReset": "",
|
||||
"settingsSystemResetDescription": "",
|
||||
"DeleteAccountTitle": "",
|
||||
"DeleteAccountButton": "",
|
||||
"publicLink": "",
|
||||
"maskedPageSpeedKeyPlaceholder": "",
|
||||
"pageSpeedApiKeyFieldTitle": "",
|
||||
"pageSpeedApiKeyFieldLabel": "",
|
||||
"pageSpeedApiKeyFieldDescription": "",
|
||||
"pageSpeedApiKeyFieldResetLabel": "",
|
||||
"reset": "",
|
||||
"ignoreTLSError": "",
|
||||
"tlsErrorIgnored": "",
|
||||
"ignoreTLSErrorDescription": "",
|
||||
"createNew": "",
|
||||
"greeting": {
|
||||
"prepend": "",
|
||||
"append": "",
|
||||
"overview": ""
|
||||
},
|
||||
"roles": {
|
||||
"superAdmin": "",
|
||||
"admin": "",
|
||||
"teamMember": "",
|
||||
"demoUser": ""
|
||||
},
|
||||
"teamPanel": {
|
||||
"teamMembers": "",
|
||||
"filter": {
|
||||
"all": "",
|
||||
"member": ""
|
||||
},
|
||||
"inviteTeamMember": "",
|
||||
"inviteNewTeamMember": "",
|
||||
"inviteDescription": "",
|
||||
"email": "",
|
||||
"selectRole": "",
|
||||
"inviteLink": "",
|
||||
"cancel": "",
|
||||
"noMembers": "",
|
||||
"getToken": "",
|
||||
"emailToken": "",
|
||||
"table": {
|
||||
"name": "",
|
||||
"email": "",
|
||||
"role": "",
|
||||
"created": ""
|
||||
}
|
||||
},
|
||||
"monitorState": {
|
||||
"paused": "",
|
||||
"resumed": "",
|
||||
"active": ""
|
||||
},
|
||||
"menu": {
|
||||
"uptime": "",
|
||||
"pagespeed": "",
|
||||
"infrastructure": "",
|
||||
"incidents": "",
|
||||
"statusPages": "",
|
||||
"maintenance": "",
|
||||
"integrations": "",
|
||||
"settings": "",
|
||||
"support": "",
|
||||
"discussions": "",
|
||||
"docs": "",
|
||||
"changelog": "",
|
||||
"profile": "",
|
||||
"password": "",
|
||||
"team": "",
|
||||
"logOut": "",
|
||||
"notifications": ""
|
||||
},
|
||||
"settingsEmail": "",
|
||||
"settingsEmailDescription": "",
|
||||
"settingsEmailHost": "",
|
||||
"settingsEmailPort": "",
|
||||
"settingsEmailAddress": "",
|
||||
"settingsEmailPassword": "",
|
||||
"settingsEmailUser": "",
|
||||
"settingsEmailFieldResetLabel": "",
|
||||
"state": "",
|
||||
"statusBreadCrumbsStatusPages": "",
|
||||
"statusBreadCrumbsDetails": "",
|
||||
"settingsThemeModeLight": "",
|
||||
"settingsThemeModeDark": "",
|
||||
"settingsClearAllStatsDialogCancel": "",
|
||||
"commonSaving": "",
|
||||
"navControls": "",
|
||||
"incidentsPageTitle": "",
|
||||
"passwordPanel": {
|
||||
"passwordChangedSuccess": "",
|
||||
"passwordInputIncorrect": "",
|
||||
"currentPassword": "",
|
||||
"enterCurrentPassword": "",
|
||||
"newPassword": "",
|
||||
"enterNewPassword": "",
|
||||
"confirmNewPassword": "",
|
||||
"passwordRequirements": "",
|
||||
"saving": ""
|
||||
},
|
||||
"settingsEmailConnectionHost": "",
|
||||
"emailSent": "",
|
||||
"failedToSendEmail": "",
|
||||
"settingsTestEmail": "",
|
||||
"settingsTestEmailSuccess": "",
|
||||
"settingsTestEmailFailed": "",
|
||||
"settingsTestEmailFailedWithReason": "",
|
||||
"settingsTestEmailUnknownError": "",
|
||||
"settingsEmailRequiredFields": "",
|
||||
"statusMsg": {
|
||||
"paused": "",
|
||||
"up": "",
|
||||
"down": "",
|
||||
"pending": ""
|
||||
},
|
||||
"settingsURLTitle": "",
|
||||
"settingsURLDescription": "",
|
||||
"settingsURLSelectTitle": "",
|
||||
"settingsURLEnabled": "",
|
||||
"settingURLDisabled": "",
|
||||
"uptimeGeneralInstructions": {
|
||||
"http": "",
|
||||
"ping": "",
|
||||
"docker": "",
|
||||
"port": ""
|
||||
},
|
||||
"common": {
|
||||
"appName": "",
|
||||
"monitoringAgentName": "",
|
||||
"buttons": {
|
||||
"toggleTheme": ""
|
||||
},
|
||||
"toasts": {
|
||||
"networkError": "",
|
||||
"checkConnection": "",
|
||||
"unknownError": ""
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"common": {
|
||||
"navigation": {
|
||||
"continue": "",
|
||||
"back": ""
|
||||
},
|
||||
"inputs": {
|
||||
"email": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"invalid": ""
|
||||
}
|
||||
},
|
||||
"password": {
|
||||
"label": "",
|
||||
"rules": {
|
||||
"length": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"special": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"number": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"uppercase": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"lowercase": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"match": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"uppercase": "",
|
||||
"lowercase": "",
|
||||
"number": "",
|
||||
"special": "",
|
||||
"incorrect": ""
|
||||
}
|
||||
},
|
||||
"passwordConfirm": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"different": ""
|
||||
}
|
||||
},
|
||||
"firstName": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
},
|
||||
"lastName": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"validation": ""
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"heading": "",
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": ""
|
||||
},
|
||||
"links": {
|
||||
"forgotPassword": "",
|
||||
"register": "",
|
||||
"forgotPasswordLink": "",
|
||||
"registerLink": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": "",
|
||||
"incorrectPassword": ""
|
||||
},
|
||||
"errors": {
|
||||
"password": {
|
||||
"incorrect": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"heading": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "",
|
||||
"stepThree": ""
|
||||
},
|
||||
"description": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"gettingStartedButton": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"termsAndPolicies": "",
|
||||
"links": {
|
||||
"login": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": ""
|
||||
}
|
||||
},
|
||||
"forgotPassword": {
|
||||
"heading": "",
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "",
|
||||
"stepThree": "",
|
||||
"stepFour": ""
|
||||
},
|
||||
"buttons": {
|
||||
"openEmail": "",
|
||||
"resetPassword": ""
|
||||
},
|
||||
"imageAlts": {
|
||||
"passwordKey": "",
|
||||
"email": "",
|
||||
"lock": "",
|
||||
"passwordConfirm": ""
|
||||
},
|
||||
"links": {
|
||||
"login": "",
|
||||
"resend": ""
|
||||
},
|
||||
"toasts": {
|
||||
"sent": "",
|
||||
"emailNotFound": "",
|
||||
"redirect": "",
|
||||
"success": "",
|
||||
"error": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorPages": {
|
||||
"serverUnreachable": {
|
||||
"toasts": {
|
||||
"reconnected": "",
|
||||
"stillUnreachable": ""
|
||||
},
|
||||
"alertBox": "",
|
||||
"description": "",
|
||||
"retryButton": {
|
||||
"default": "",
|
||||
"processing": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"createNotifications": {
|
||||
"title": "",
|
||||
"nameSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"nameLabel": "",
|
||||
"namePlaceholder": ""
|
||||
},
|
||||
"typeSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"typeLabel": ""
|
||||
},
|
||||
"emailSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"emailLabel": "",
|
||||
"emailPlaceholder": ""
|
||||
},
|
||||
"slackSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
},
|
||||
"pagerdutySettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"integrationKeyLabel": "",
|
||||
"integrationKeyPlaceholder": ""
|
||||
},
|
||||
"genericWebhookSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
},
|
||||
"discordSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
}
|
||||
},
|
||||
"notificationConfig": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"monitorStatus": {
|
||||
"checkingEvery": "",
|
||||
"withCaptureAgent": "",
|
||||
"up": "",
|
||||
"down": "",
|
||||
"paused": ""
|
||||
},
|
||||
"advancedMatching": "",
|
||||
"settingsEmailTLSServername": "",
|
||||
"settingsEmailIgnoreTLS": "",
|
||||
"settingsEmailRequireTLS": "",
|
||||
"settingsEmailRejectUnauthorized": "",
|
||||
"settingsEmailSecure": "",
|
||||
"settingsEmailPool": "",
|
||||
"sendTestNotifications": ""
|
||||
}
|
||||
@@ -1,203 +1,18 @@
|
||||
{
|
||||
"common": {
|
||||
"appName": "Checkmate",
|
||||
"monitoringAgentName": "Capture",
|
||||
"buttons": {
|
||||
"toggleTheme": "Přepnout mezi světlým a tmavým motivem"
|
||||
},
|
||||
"toasts": {
|
||||
"networkError": "Chyba připojení k síti",
|
||||
"checkConnection": "Zkontrolujte prosím své připojení k síti",
|
||||
"unknownError": "Nastala neznámá chyba"
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"common": {
|
||||
"navigation": {
|
||||
"continue": "Pokračovat",
|
||||
"back": "Zpět"
|
||||
},
|
||||
"inputs": {
|
||||
"email": {
|
||||
"label": "E-mail",
|
||||
"placeholder": "jan.novak@domena.cz",
|
||||
"errors": {
|
||||
"empty": "Zadejte prosím e-mailovou adresu",
|
||||
"invalid": "Překontrolujte si prosím správnost zadané e-mailové adresy"
|
||||
}
|
||||
},
|
||||
"password": {
|
||||
"label": "Heslo",
|
||||
"rules": {
|
||||
"length": {
|
||||
"beginning": "Heslo musí být dlouhé alespoň",
|
||||
"highlighted": "8 znaků"
|
||||
},
|
||||
"special": {
|
||||
"beginning": "Heslo musí obsahovat alespoň",
|
||||
"highlighted": "1 speciální znak"
|
||||
},
|
||||
"number": {
|
||||
"beginning": "Heslo musí obsahovat alespoň",
|
||||
"highlighted": "1 číslo"
|
||||
},
|
||||
"uppercase": {
|
||||
"beginning": "Heslo musí obsahovat alespoň",
|
||||
"highlighted": "1 velké písmeno"
|
||||
},
|
||||
"lowercase": {
|
||||
"beginning": "Heslo musí obsahovat alespoň",
|
||||
"highlighted": "1 malé písmeno"
|
||||
},
|
||||
"match": {
|
||||
"beginning": "Obě hesla se",
|
||||
"highlighted": "musí shodovat"
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"empty": "Zadejte prosím heslo",
|
||||
"length": "Heslo musí být dlouhé alespoň 8 znaků",
|
||||
"uppercase": "Heslo musí obsahovat alespoň 1 velké písmeno",
|
||||
"lowercase": "Heslo musí obsahovat alespoň 1 malé písmeno",
|
||||
"number": "Heslo musí obsahovat alespoň 1 číslo",
|
||||
"special": "Heslo musí obsahovat alespoň 1 speciální znak",
|
||||
"incorrect": "Zadané heslo neodpovídá tomu, co bylo nastaveno"
|
||||
}
|
||||
},
|
||||
"passwordConfirm": {
|
||||
"label": "Potvrzení hesla",
|
||||
"placeholder": "Pro ověření správnosti zadejte heslo ještě jednou",
|
||||
"errors": {
|
||||
"empty": "Zadejte prosím své heslo ještě jednou, aby mohla být potvrzena jeho správnost (odhalí překlepy)",
|
||||
"different": "Zadaná hesla se liší, takže je nejspíše jedno z nich špatně zapsané"
|
||||
}
|
||||
},
|
||||
"firstName": {
|
||||
"label": "Jméno",
|
||||
"placeholder": "Jan",
|
||||
"errors": {
|
||||
"empty": "Zadejte prosím své křestní jméno",
|
||||
"length": "Jméno se musí vejít do 50 znaků",
|
||||
"pattern": "Součástí jména mohou být pouze písmena, mezery apostrofy nebo spojovníky"
|
||||
}
|
||||
},
|
||||
"lastName": {
|
||||
"label": "Příjmení",
|
||||
"placeholder": "Novák",
|
||||
"errors": {
|
||||
"empty": "Zadejte prosím své příjmení",
|
||||
"length": "Příjmení se musí vejít do 50 znaků",
|
||||
"pattern": "Součástí příjmení mohou být pouze písmena, mezery apostrofy nebo spojovníky"
|
||||
}
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"validation": "Nastala chyba při ověřování dat."
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"heading": "Přihlášení",
|
||||
"subheadings": {
|
||||
"stepOne": "Zadejte svůj e-mail",
|
||||
"stepTwo": "Zadejte své heslo"
|
||||
},
|
||||
"links": {
|
||||
"forgotPassword": "Zapomněli jste heslo? <a>Obnovte si ho</a>",
|
||||
"register": "Ještě nemáte účet? <a>Zaregistrujte se</a>"
|
||||
},
|
||||
"toasts": {
|
||||
"success": "Vítejte zpět",
|
||||
"incorrectPassword": "Nesprávné heslo"
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"heading": {
|
||||
"superAdmin": "Vytvoření superadministrátora",
|
||||
"user": "Registrace"
|
||||
},
|
||||
"subheadings": {
|
||||
"stepOne": "Zadejte své osobní údaje",
|
||||
"stepTwo": "Zadejte svůj e-mail",
|
||||
"stepThree": "Nastavte si heslo"
|
||||
},
|
||||
"description": {
|
||||
"superAdmin": "Pro začátek vytvořte účet superadministrátora",
|
||||
"user": "Zaregistrujte se jako uživatel a požádejte svého superadministrátora, aby vám přidělil oprávnění k hlídačům"
|
||||
},
|
||||
"gettingStartedButton": {
|
||||
"superAdmin": "Vytvořit účet superadministrátora",
|
||||
"user": "Zaregistrovat se jako běžný uživatel"
|
||||
},
|
||||
"termsAndPolicies": "Vytvořením účtu souhlasíte s našimi <a1>Podmínkami použití</a1> (anglicky) a <a2>Podmínkami zpracování osobních údajů</a2> (anglicky).",
|
||||
"links": {
|
||||
"login": "Máte již vytvořený účet? <a>Přihlašte se</a>"
|
||||
},
|
||||
"toasts": {
|
||||
"success": "Vítejte! Váš účet byl úspěšně vytvořen."
|
||||
}
|
||||
},
|
||||
"forgotPassword": {
|
||||
"heading": "Zapomenuté heslo",
|
||||
"subheadings": {
|
||||
"stepOne": "Nebojte se, zašleme vám pokyny pro obnovení hesla.",
|
||||
"stepTwo": "Odkaz pro obnovení hesla byl odeslán na <email/>",
|
||||
"stepThree": "Nové heslo se musí lišit od těch, které jste již použili.",
|
||||
"stepFour": "Heslo bylo úspěšně obnoveno. Klepněte na tlačítko a dojde k čarovnému přihlášení."
|
||||
},
|
||||
"buttons": {
|
||||
"openEmail": "Otevřít e-mailovou aplikaci",
|
||||
"resetPassword": "Obnovit heslo"
|
||||
},
|
||||
"imageAlts": {
|
||||
"passwordKey": "Ikonka přístupového klíče",
|
||||
"email": "Ikonka e-mailu",
|
||||
"lock": "Ikonka zámku",
|
||||
"passwordConfirm": "Ikonka potvrzeného hesla"
|
||||
},
|
||||
"links": {
|
||||
"login": "Vrátit se k <a>Přihlášení</a>",
|
||||
"resend": "Nedorazil vám e-mail? <a>Klepněte pro opětovné zaslání</a>"
|
||||
},
|
||||
"toasts": {
|
||||
"sent": "Instrukce vám dorazí na <email/>.",
|
||||
"emailNotFound": "Nepodařilo se nalézt e-mailovou adresu.",
|
||||
"redirect": "Přesměrování proběhne za <seconds/>...",
|
||||
"success": "Heslo bylo úspěšně obnoveno.",
|
||||
"error": "Obnova hesla se nepodařila. Zkuste to prosím znovu nebo kontaktujte podporu."
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorPages": {
|
||||
"serverUnreachable": {
|
||||
"toasts": {
|
||||
"reconnected": "Podařilo se úspěšně obnovit spojení se serverem",
|
||||
"stillUnreachable": "Server je stále nedosažitelný. Zkuste to prosím později."
|
||||
},
|
||||
"alertBox": "Chyba připojení k serveru",
|
||||
"description": "Nepodařilo se připojit k serveru. Zkontrolujte si prosím internetové připojení a pokud problém přetrvává, ověřte konfiguraci aplikace Checkmate.",
|
||||
"retryButton": {
|
||||
"default": "Zkusit se znovu připojit",
|
||||
"processing": "Probíhá připojování…"
|
||||
}
|
||||
}
|
||||
},
|
||||
"submit": "",
|
||||
"submit": "Odeslat",
|
||||
"title": "",
|
||||
"createPassword": "",
|
||||
"distributedStatusHeaderText": "",
|
||||
"distributedStatusSubHeaderText": "",
|
||||
"settingsGeneralSettings": "",
|
||||
"settingsGeneralSettings": "Obecná nastavení",
|
||||
"settingsDisplayTimezone": "",
|
||||
"settingsDisplayTimezoneDescription": "",
|
||||
"settingsAppearance": "",
|
||||
"settingsAppearance": "Vzhled",
|
||||
"settingsAppearanceDescription": "",
|
||||
"settingsThemeMode": "",
|
||||
"settingsLanguage": "",
|
||||
"settingsDistributedUptime": "",
|
||||
"settingsDistributedUptimeDescription": "",
|
||||
"settingsEnabled": "",
|
||||
"settingsDisabled": "",
|
||||
"settingsHistoryAndMonitoring": "",
|
||||
"settingsLanguage": "Jazyk",
|
||||
"settingsEnabled": "Zapnuto",
|
||||
"settingsDisabled": "Vypnuto",
|
||||
"settingsHistoryAndMonitoring": "Historie a monitorování",
|
||||
"settingsHistoryAndMonitoringDescription": "",
|
||||
"settingsTTLLabel": "",
|
||||
"settingsTTLOptionalLabel": "",
|
||||
@@ -214,13 +29,11 @@
|
||||
"settingsRemoveAllMonitorsButton": "",
|
||||
"settingsRemoveAllMonitorsDialogTitle": "",
|
||||
"settingsRemoveAllMonitorsDialogConfirm": "",
|
||||
"settingsWallet": "",
|
||||
"settingsWalletDescription": "",
|
||||
"settingsAbout": "",
|
||||
"settingsDevelopedBy": "",
|
||||
"settingsSave": "",
|
||||
"settingsSuccessSaved": "",
|
||||
"settingsFailedToSave": "",
|
||||
"settingsDevelopedBy": "Vyvinuto společností Bluewave Labs.",
|
||||
"settingsSave": "Uložit",
|
||||
"settingsSuccessSaved": "Nastavení bylo úspěšně uloženo",
|
||||
"settingsFailedToSave": "Nepodařilo se uložit nastavení",
|
||||
"settingsStatsCleared": "",
|
||||
"settingsFailedToClearStats": "",
|
||||
"settingsDemoMonitorsAdded": "",
|
||||
@@ -258,10 +71,6 @@
|
||||
"distributedUptimeCreateIncidentDescription": "",
|
||||
"distributedUptimeCreateAdvancedSettings": "",
|
||||
"distributedUptimeDetailsNoMonitorHistory": "",
|
||||
"distributedUptimeDetailsFooterHeading": "",
|
||||
"distributedUptimeDetailsFooterBuilt": "",
|
||||
"distributedUptimeDetailsFooterSolana": "",
|
||||
"distributedUptimeDetailsMonitorHeader": "",
|
||||
"distributedUptimeDetailsStatusHeaderUptime": "",
|
||||
"distributedUptimeDetailsStatusHeaderLastUpdate": "",
|
||||
"notifications": {
|
||||
@@ -303,7 +112,33 @@
|
||||
"testSuccess": "",
|
||||
"testFailed": "",
|
||||
"unsupportedType": "",
|
||||
"networkError": ""
|
||||
"networkError": "",
|
||||
"fallback": {
|
||||
"title": "",
|
||||
"checks": [""]
|
||||
},
|
||||
"createButton": "",
|
||||
"createTitle": "",
|
||||
"create": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"fetch": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"delete": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"edit": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"test": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
}
|
||||
},
|
||||
"testLocale": "",
|
||||
"add": "",
|
||||
@@ -547,11 +382,6 @@
|
||||
"append": "",
|
||||
"overview": ""
|
||||
},
|
||||
"monitorStatus": {
|
||||
"up": "",
|
||||
"down": "",
|
||||
"paused": ""
|
||||
},
|
||||
"roles": {
|
||||
"superAdmin": "",
|
||||
"admin": "",
|
||||
@@ -590,7 +420,6 @@
|
||||
"uptime": "",
|
||||
"pagespeed": "",
|
||||
"infrastructure": "",
|
||||
"distributedUptime": "",
|
||||
"incidents": "",
|
||||
"statusPages": "",
|
||||
"maintenance": "",
|
||||
@@ -603,7 +432,8 @@
|
||||
"profile": "",
|
||||
"password": "",
|
||||
"team": "",
|
||||
"logOut": ""
|
||||
"logOut": "",
|
||||
"notifications": ""
|
||||
},
|
||||
"settingsEmail": "",
|
||||
"settingsEmailDescription": "",
|
||||
@@ -634,7 +464,6 @@
|
||||
"saving": ""
|
||||
},
|
||||
"settingsEmailConnectionHost": "",
|
||||
"sendTestEmail": "",
|
||||
"emailSent": "",
|
||||
"failedToSendEmail": "",
|
||||
"settingsTestEmail": "",
|
||||
@@ -659,5 +488,257 @@
|
||||
"ping": "",
|
||||
"docker": "",
|
||||
"port": ""
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"appName": "Checkmate",
|
||||
"monitoringAgentName": "Capture",
|
||||
"buttons": {
|
||||
"toggleTheme": "Přepnout mezi světlým a tmavým motivem"
|
||||
},
|
||||
"toasts": {
|
||||
"networkError": "Chyba připojení k síti",
|
||||
"checkConnection": "Zkontrolujte prosím své připojení k síti",
|
||||
"unknownError": "Nastala neznámá chyba"
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"common": {
|
||||
"navigation": {
|
||||
"continue": "Pokračovat",
|
||||
"back": "Zpět"
|
||||
},
|
||||
"inputs": {
|
||||
"email": {
|
||||
"label": "E-mail",
|
||||
"placeholder": "jan.novak@domena.cz",
|
||||
"errors": {
|
||||
"empty": "Zadejte prosím e-mailovou adresu",
|
||||
"invalid": "Překontrolujte si prosím správnost zadané e-mailové adresy"
|
||||
}
|
||||
},
|
||||
"password": {
|
||||
"label": "Heslo",
|
||||
"rules": {
|
||||
"length": {
|
||||
"beginning": "Heslo musí být dlouhé alespoň",
|
||||
"highlighted": "8 znaků"
|
||||
},
|
||||
"special": {
|
||||
"beginning": "Heslo musí obsahovat alespoň",
|
||||
"highlighted": "1 speciální znak"
|
||||
},
|
||||
"number": {
|
||||
"beginning": "Heslo musí obsahovat alespoň",
|
||||
"highlighted": "1 číslo"
|
||||
},
|
||||
"uppercase": {
|
||||
"beginning": "Heslo musí obsahovat alespoň",
|
||||
"highlighted": "1 velké písmeno"
|
||||
},
|
||||
"lowercase": {
|
||||
"beginning": "Heslo musí obsahovat alespoň",
|
||||
"highlighted": "1 malé písmeno"
|
||||
},
|
||||
"match": {
|
||||
"beginning": "Obě hesla se",
|
||||
"highlighted": "musí shodovat"
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"empty": "Zadejte prosím heslo",
|
||||
"length": "Heslo musí být dlouhé alespoň 8 znaků",
|
||||
"uppercase": "Heslo musí obsahovat alespoň 1 velké písmeno",
|
||||
"lowercase": "Heslo musí obsahovat alespoň 1 malé písmeno",
|
||||
"number": "Heslo musí obsahovat alespoň 1 číslo",
|
||||
"special": "Heslo musí obsahovat alespoň 1 speciální znak",
|
||||
"incorrect": "Zadané heslo neodpovídá tomu, co bylo nastaveno"
|
||||
}
|
||||
},
|
||||
"passwordConfirm": {
|
||||
"label": "Potvrzení hesla",
|
||||
"placeholder": "Pro ověření správnosti zadejte heslo ještě jednou",
|
||||
"errors": {
|
||||
"empty": "Zadejte prosím své heslo ještě jednou, aby mohla být potvrzena jeho správnost (odhalí překlepy)",
|
||||
"different": "Zadaná hesla se liší, takže je nejspíše jedno z nich špatně zapsané"
|
||||
}
|
||||
},
|
||||
"firstName": {
|
||||
"label": "Jméno",
|
||||
"placeholder": "Jan",
|
||||
"errors": {
|
||||
"empty": "Zadejte prosím své křestní jméno",
|
||||
"length": "Jméno se musí vejít do 50 znaků",
|
||||
"pattern": "Součástí jména mohou být pouze písmena, mezery apostrofy nebo spojovníky"
|
||||
}
|
||||
},
|
||||
"lastName": {
|
||||
"label": "Příjmení",
|
||||
"placeholder": "Novák",
|
||||
"errors": {
|
||||
"empty": "Zadejte prosím své příjmení",
|
||||
"length": "Příjmení se musí vejít do 50 znaků",
|
||||
"pattern": "Součástí příjmení mohou být pouze písmena, mezery apostrofy nebo spojovníky"
|
||||
}
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"validation": "Nastala chyba při ověřování dat."
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"heading": "Přihlášení",
|
||||
"subheadings": {
|
||||
"stepOne": "Zadejte svůj e-mail",
|
||||
"stepTwo": "Zadejte své heslo"
|
||||
},
|
||||
"links": {
|
||||
"forgotPassword": "Zapomněli jste heslo? <a>Obnovte si ho</a>",
|
||||
"register": "Ještě nemáte účet? <a>Zaregistrujte se</a>",
|
||||
"forgotPasswordLink": "",
|
||||
"registerLink": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": "Vítejte zpět",
|
||||
"incorrectPassword": "Nesprávné heslo"
|
||||
},
|
||||
"errors": {
|
||||
"password": {
|
||||
"incorrect": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"heading": {
|
||||
"superAdmin": "Vytvoření superadministrátora",
|
||||
"user": "Registrace"
|
||||
},
|
||||
"subheadings": {
|
||||
"stepOne": "Zadejte své osobní údaje",
|
||||
"stepTwo": "Zadejte svůj e-mail",
|
||||
"stepThree": "Nastavte si heslo"
|
||||
},
|
||||
"description": {
|
||||
"superAdmin": "Pro začátek vytvořte účet superadministrátora",
|
||||
"user": "Zaregistrujte se jako uživatel a požádejte svého superadministrátora, aby vám přidělil oprávnění k hlídačům"
|
||||
},
|
||||
"gettingStartedButton": {
|
||||
"superAdmin": "Vytvořit účet superadministrátora",
|
||||
"user": "Zaregistrovat se jako běžný uživatel"
|
||||
},
|
||||
"termsAndPolicies": "Vytvořením účtu souhlasíte s našimi <a1>Podmínkami použití</a1> (anglicky) a <a2>Podmínkami zpracování osobních údajů</a2> (anglicky).",
|
||||
"links": {
|
||||
"login": "Máte již vytvořený účet? <a>Přihlašte se</a>"
|
||||
},
|
||||
"toasts": {
|
||||
"success": "Vítejte! Váš účet byl úspěšně vytvořen."
|
||||
}
|
||||
},
|
||||
"forgotPassword": {
|
||||
"heading": "Zapomenuté heslo",
|
||||
"subheadings": {
|
||||
"stepOne": "Nebojte se, zašleme vám pokyny pro obnovení hesla.",
|
||||
"stepTwo": "Odkaz pro obnovení hesla byl odeslán na <email/>",
|
||||
"stepThree": "Nové heslo se musí lišit od těch, které jste již použili.",
|
||||
"stepFour": "Heslo bylo úspěšně obnoveno. Klepněte na tlačítko a dojde k čarovnému přihlášení."
|
||||
},
|
||||
"buttons": {
|
||||
"openEmail": "Otevřít e-mailovou aplikaci",
|
||||
"resetPassword": "Obnovit heslo"
|
||||
},
|
||||
"imageAlts": {
|
||||
"passwordKey": "Ikonka přístupového klíče",
|
||||
"email": "Ikonka e-mailu",
|
||||
"lock": "Ikonka zámku",
|
||||
"passwordConfirm": "Ikonka potvrzeného hesla"
|
||||
},
|
||||
"links": {
|
||||
"login": "Vrátit se k <a>Přihlášení</a>",
|
||||
"resend": "Nedorazil vám e-mail? <a>Klepněte pro opětovné zaslání</a>"
|
||||
},
|
||||
"toasts": {
|
||||
"sent": "Instrukce vám dorazí na <email/>.",
|
||||
"emailNotFound": "Nepodařilo se nalézt e-mailovou adresu.",
|
||||
"redirect": "Přesměrování proběhne za <seconds/>...",
|
||||
"success": "Heslo bylo úspěšně obnoveno.",
|
||||
"error": "Obnova hesla se nepodařila. Zkuste to prosím znovu nebo kontaktujte podporu."
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorPages": {
|
||||
"serverUnreachable": {
|
||||
"toasts": {
|
||||
"reconnected": "Podařilo se úspěšně obnovit spojení se serverem",
|
||||
"stillUnreachable": "Server je stále nedosažitelný. Zkuste to prosím později."
|
||||
},
|
||||
"alertBox": "Chyba připojení k serveru",
|
||||
"description": "Nepodařilo se připojit k serveru. Zkontrolujte si prosím internetové připojení a pokud problém přetrvává, ověřte konfiguraci aplikace Checkmate.",
|
||||
"retryButton": {
|
||||
"default": "Zkusit se znovu připojit",
|
||||
"processing": "Probíhá připojování…"
|
||||
}
|
||||
}
|
||||
},
|
||||
"createNotifications": {
|
||||
"title": "",
|
||||
"nameSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"nameLabel": "",
|
||||
"namePlaceholder": ""
|
||||
},
|
||||
"typeSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"typeLabel": ""
|
||||
},
|
||||
"emailSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"emailLabel": "",
|
||||
"emailPlaceholder": ""
|
||||
},
|
||||
"slackSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
},
|
||||
"pagerdutySettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"integrationKeyLabel": "",
|
||||
"integrationKeyPlaceholder": ""
|
||||
},
|
||||
"genericWebhookSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
},
|
||||
"discordSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
}
|
||||
},
|
||||
"notificationConfig": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"monitorStatus": {
|
||||
"checkingEvery": "",
|
||||
"withCaptureAgent": "",
|
||||
"up": "",
|
||||
"down": "",
|
||||
"paused": ""
|
||||
},
|
||||
"advancedMatching": "",
|
||||
"settingsEmailTLSServername": "",
|
||||
"settingsEmailIgnoreTLS": "",
|
||||
"settingsEmailRequireTLS": "",
|
||||
"settingsEmailRejectUnauthorized": "",
|
||||
"settingsEmailSecure": "",
|
||||
"settingsEmailPool": "",
|
||||
"sendTestNotifications": ""
|
||||
}
|
||||
|
||||
@@ -1,200 +1,16 @@
|
||||
{
|
||||
"common": {
|
||||
"appName": "Checkmate",
|
||||
"monitoringAgentName": "Capture",
|
||||
"buttons": {
|
||||
"toggleTheme": ""
|
||||
},
|
||||
"toasts": {
|
||||
"networkError": "",
|
||||
"checkConnection": "",
|
||||
"unknownError": ""
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"common": {
|
||||
"navigation": {
|
||||
"continue": "Weiter",
|
||||
"back": "Zurück"
|
||||
},
|
||||
"inputs": {
|
||||
"email": {
|
||||
"label": "E-Mail",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"invalid": ""
|
||||
}
|
||||
},
|
||||
"password": {
|
||||
"label": "Passwort",
|
||||
"rules": {
|
||||
"length": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"special": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"number": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"uppercase": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"lowercase": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"match": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"uppercase": "",
|
||||
"lowercase": "",
|
||||
"number": "",
|
||||
"special": "",
|
||||
"incorrect": ""
|
||||
}
|
||||
},
|
||||
"passwordConfirm": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"different": ""
|
||||
}
|
||||
},
|
||||
"firstName": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
},
|
||||
"lastName": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"validation": ""
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"heading": "Anmelden",
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "Geben Sie Ihr Passwort ein"
|
||||
},
|
||||
"links": {
|
||||
"forgotPassword": "Passwort vergessen? <a>Passwort zurücksetzen</a>",
|
||||
"register": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": "",
|
||||
"incorrectPassword": ""
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"heading": {
|
||||
"superAdmin": "",
|
||||
"user": "Registrieren"
|
||||
},
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "",
|
||||
"stepThree": "Erstelle dein Passwort"
|
||||
},
|
||||
"description": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"gettingStartedButton": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"termsAndPolicies": "",
|
||||
"links": {
|
||||
"login": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": ""
|
||||
}
|
||||
},
|
||||
"forgotPassword": {
|
||||
"heading": "Passwort zurücksetzen",
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "",
|
||||
"stepThree": "",
|
||||
"stepFour": ""
|
||||
},
|
||||
"buttons": {
|
||||
"openEmail": "",
|
||||
"resetPassword": ""
|
||||
},
|
||||
"imageAlts": {
|
||||
"passwordKey": "",
|
||||
"email": "",
|
||||
"lock": "",
|
||||
"passwordConfirm": ""
|
||||
},
|
||||
"links": {
|
||||
"login": "",
|
||||
"resend": ""
|
||||
},
|
||||
"toasts": {
|
||||
"sent": "",
|
||||
"emailNotFound": "",
|
||||
"redirect": "",
|
||||
"success": "",
|
||||
"error": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorPages": {
|
||||
"serverUnreachable": {
|
||||
"toasts": {
|
||||
"reconnected": "",
|
||||
"stillUnreachable": ""
|
||||
},
|
||||
"alertBox": "",
|
||||
"description": "",
|
||||
"retryButton": {
|
||||
"default": "",
|
||||
"processing": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"submit": "Absenden",
|
||||
"title": "Titel",
|
||||
"distributedStatusHeaderText": "",
|
||||
"distributedStatusSubHeaderText": "",
|
||||
"settingsGeneralSettings": "",
|
||||
"settingsDisplayTimezone": "",
|
||||
"settingsGeneralSettings": "Einstellungen",
|
||||
"settingsDisplayTimezone": "Zeitzone anzeigen",
|
||||
"settingsDisplayTimezoneDescription": "",
|
||||
"settingsAppearance": "",
|
||||
"settingsAppearanceDescription": "",
|
||||
"settingsThemeMode": "",
|
||||
"settingsLanguage": "",
|
||||
"settingsDistributedUptime": "",
|
||||
"settingsDistributedUptimeDescription": "",
|
||||
"settingsEnabled": "",
|
||||
"settingsThemeMode": "Theme modus",
|
||||
"settingsLanguage": "Sprache",
|
||||
"settingsEnabled": "Aktiv",
|
||||
"settingsDisabled": "",
|
||||
"settingsHistoryAndMonitoring": "",
|
||||
"settingsHistoryAndMonitoringDescription": "",
|
||||
@@ -213,8 +29,6 @@
|
||||
"settingsRemoveAllMonitorsButton": "",
|
||||
"settingsRemoveAllMonitorsDialogTitle": "",
|
||||
"settingsRemoveAllMonitorsDialogConfirm": "",
|
||||
"settingsWallet": "",
|
||||
"settingsWalletDescription": "",
|
||||
"settingsAbout": "",
|
||||
"settingsDevelopedBy": "",
|
||||
"settingsSave": "",
|
||||
@@ -257,10 +71,6 @@
|
||||
"distributedUptimeCreateIncidentDescription": "",
|
||||
"distributedUptimeCreateAdvancedSettings": "",
|
||||
"distributedUptimeDetailsNoMonitorHistory": "",
|
||||
"distributedUptimeDetailsFooterHeading": "",
|
||||
"distributedUptimeDetailsFooterBuilt": "",
|
||||
"distributedUptimeDetailsFooterSolana": "",
|
||||
"distributedUptimeDetailsMonitorHeader": "",
|
||||
"distributedUptimeDetailsStatusHeaderUptime": "",
|
||||
"distributedUptimeDetailsStatusHeaderLastUpdate": "",
|
||||
"notifications": {
|
||||
@@ -302,7 +112,33 @@
|
||||
"testSuccess": "",
|
||||
"testFailed": "",
|
||||
"unsupportedType": "",
|
||||
"networkError": ""
|
||||
"networkError": "",
|
||||
"fallback": {
|
||||
"title": "",
|
||||
"checks": [""]
|
||||
},
|
||||
"createButton": "",
|
||||
"createTitle": "",
|
||||
"create": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"fetch": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"delete": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"edit": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"test": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
}
|
||||
},
|
||||
"testLocale": "",
|
||||
"add": "",
|
||||
@@ -546,11 +382,6 @@
|
||||
"append": "",
|
||||
"overview": ""
|
||||
},
|
||||
"monitorStatus": {
|
||||
"up": "",
|
||||
"down": "",
|
||||
"paused": ""
|
||||
},
|
||||
"roles": {
|
||||
"superAdmin": "",
|
||||
"admin": "",
|
||||
@@ -589,7 +420,6 @@
|
||||
"uptime": "",
|
||||
"pagespeed": "",
|
||||
"infrastructure": "",
|
||||
"distributedUptime": "",
|
||||
"incidents": "",
|
||||
"statusPages": "",
|
||||
"maintenance": "",
|
||||
@@ -602,7 +432,8 @@
|
||||
"profile": "",
|
||||
"password": "",
|
||||
"team": "",
|
||||
"logOut": ""
|
||||
"logOut": "",
|
||||
"notifications": ""
|
||||
},
|
||||
"settingsEmail": "",
|
||||
"settingsEmailDescription": "",
|
||||
@@ -633,7 +464,6 @@
|
||||
"saving": ""
|
||||
},
|
||||
"settingsEmailConnectionHost": "",
|
||||
"sendTestEmail": "",
|
||||
"emailSent": "",
|
||||
"failedToSendEmail": "",
|
||||
"settingsTestEmail": "",
|
||||
@@ -658,5 +488,257 @@
|
||||
"ping": "",
|
||||
"docker": "",
|
||||
"port": ""
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"appName": "",
|
||||
"monitoringAgentName": "",
|
||||
"buttons": {
|
||||
"toggleTheme": ""
|
||||
},
|
||||
"toasts": {
|
||||
"networkError": "",
|
||||
"checkConnection": "",
|
||||
"unknownError": ""
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"common": {
|
||||
"navigation": {
|
||||
"continue": "",
|
||||
"back": ""
|
||||
},
|
||||
"inputs": {
|
||||
"email": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"invalid": ""
|
||||
}
|
||||
},
|
||||
"password": {
|
||||
"label": "",
|
||||
"rules": {
|
||||
"length": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"special": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"number": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"uppercase": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"lowercase": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"match": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"uppercase": "",
|
||||
"lowercase": "",
|
||||
"number": "",
|
||||
"special": "",
|
||||
"incorrect": ""
|
||||
}
|
||||
},
|
||||
"passwordConfirm": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"different": ""
|
||||
}
|
||||
},
|
||||
"firstName": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
},
|
||||
"lastName": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"validation": ""
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"heading": "",
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": ""
|
||||
},
|
||||
"links": {
|
||||
"forgotPassword": "",
|
||||
"register": "",
|
||||
"forgotPasswordLink": "",
|
||||
"registerLink": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": "",
|
||||
"incorrectPassword": ""
|
||||
},
|
||||
"errors": {
|
||||
"password": {
|
||||
"incorrect": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"heading": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "",
|
||||
"stepThree": ""
|
||||
},
|
||||
"description": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"gettingStartedButton": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"termsAndPolicies": "",
|
||||
"links": {
|
||||
"login": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": ""
|
||||
}
|
||||
},
|
||||
"forgotPassword": {
|
||||
"heading": "",
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "",
|
||||
"stepThree": "",
|
||||
"stepFour": ""
|
||||
},
|
||||
"buttons": {
|
||||
"openEmail": "",
|
||||
"resetPassword": ""
|
||||
},
|
||||
"imageAlts": {
|
||||
"passwordKey": "",
|
||||
"email": "",
|
||||
"lock": "",
|
||||
"passwordConfirm": ""
|
||||
},
|
||||
"links": {
|
||||
"login": "",
|
||||
"resend": ""
|
||||
},
|
||||
"toasts": {
|
||||
"sent": "",
|
||||
"emailNotFound": "",
|
||||
"redirect": "",
|
||||
"success": "",
|
||||
"error": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorPages": {
|
||||
"serverUnreachable": {
|
||||
"toasts": {
|
||||
"reconnected": "",
|
||||
"stillUnreachable": ""
|
||||
},
|
||||
"alertBox": "",
|
||||
"description": "",
|
||||
"retryButton": {
|
||||
"default": "",
|
||||
"processing": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"createNotifications": {
|
||||
"title": "",
|
||||
"nameSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"nameLabel": "",
|
||||
"namePlaceholder": ""
|
||||
},
|
||||
"typeSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"typeLabel": ""
|
||||
},
|
||||
"emailSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"emailLabel": "",
|
||||
"emailPlaceholder": ""
|
||||
},
|
||||
"slackSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
},
|
||||
"pagerdutySettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"integrationKeyLabel": "",
|
||||
"integrationKeyPlaceholder": ""
|
||||
},
|
||||
"genericWebhookSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
},
|
||||
"discordSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
}
|
||||
},
|
||||
"notificationConfig": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"monitorStatus": {
|
||||
"checkingEvery": "",
|
||||
"withCaptureAgent": "",
|
||||
"up": "",
|
||||
"down": "",
|
||||
"paused": ""
|
||||
},
|
||||
"advancedMatching": "",
|
||||
"settingsEmailTLSServername": "",
|
||||
"settingsEmailIgnoreTLS": "",
|
||||
"settingsEmailRequireTLS": "",
|
||||
"settingsEmailRejectUnauthorized": "",
|
||||
"settingsEmailSecure": "",
|
||||
"settingsEmailPool": "",
|
||||
"sendTestNotifications": ""
|
||||
}
|
||||
|
||||
@@ -1,193 +1,4 @@
|
||||
{
|
||||
"common": {
|
||||
"appName": "Checkmate",
|
||||
"monitoringAgentName": "Capture",
|
||||
"buttons": {
|
||||
"toggleTheme": "Toggles light & dark"
|
||||
},
|
||||
"toasts": {
|
||||
"networkError": "Network error",
|
||||
"checkConnection": "Please check your connection",
|
||||
"unknownError": "Unknown error"
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"common": {
|
||||
"navigation": {
|
||||
"continue": "Continue",
|
||||
"back": "Back"
|
||||
},
|
||||
"inputs": {
|
||||
"email": {
|
||||
"label": "Email",
|
||||
"placeholder": "jordan.ellis@domain.com",
|
||||
"errors": {
|
||||
"empty": "To continue, please enter your email address",
|
||||
"invalid": "Please recheck validity of entered email address"
|
||||
}
|
||||
},
|
||||
"password": {
|
||||
"label": "Password",
|
||||
"rules": {
|
||||
"length": {
|
||||
"beginning": "Must be at least",
|
||||
"highlighted": "8 characters long"
|
||||
},
|
||||
"special": {
|
||||
"beginning": "Must contain at least",
|
||||
"highlighted": "one special character"
|
||||
},
|
||||
"number": {
|
||||
"beginning": "Must contain at least",
|
||||
"highlighted": "one number"
|
||||
},
|
||||
"uppercase": {
|
||||
"beginning": "Must contain at least",
|
||||
"highlighted": "one upper character"
|
||||
},
|
||||
"lowercase": {
|
||||
"beginning": "Must contain at least",
|
||||
"highlighted": "one lower character"
|
||||
},
|
||||
"match": {
|
||||
"beginning": "Confirm password and password",
|
||||
"highlighted": "must match"
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"empty": "Please enter your password",
|
||||
"length": "Password must be at least 8 characters long",
|
||||
"uppercase": "Password must contain at least 1 uppercase letter",
|
||||
"lowercase": "Password must contain at least 1 lowercase letter",
|
||||
"number": "Password must contain at least 1 number",
|
||||
"special": "Password must contain at least 1 special character",
|
||||
"incorrect": "The password you provided does not match our records"
|
||||
}
|
||||
},
|
||||
"passwordConfirm": {
|
||||
"label": "Confirm password",
|
||||
"placeholder": "Re-enter password to confirm",
|
||||
"errors": {
|
||||
"empty": "Please enter your password again for confirmation (helps with typos)",
|
||||
"different": "Entered passwords don't match, so one of them is probably mistyped"
|
||||
}
|
||||
},
|
||||
"firstName": {
|
||||
"label": "Name",
|
||||
"placeholder": "Jordan",
|
||||
"errors": {
|
||||
"empty": "Please enter your name",
|
||||
"length": "Name must be less than 50 characters",
|
||||
"pattern": "Name must contain only letters, spaces, apostrophes, or hyphens"
|
||||
}
|
||||
},
|
||||
"lastName": {
|
||||
"label": "Surname",
|
||||
"placeholder": "Ellis",
|
||||
"errors": {
|
||||
"empty": "Please enter your surname",
|
||||
"length": "Surname must be less than 50 characters",
|
||||
"pattern": "Surname must contain only letters, spaces, apostrophes, or hyphens"
|
||||
}
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"validation": "Error validating data."
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"heading": "Log In",
|
||||
"subheadings": {
|
||||
"stepOne": "Enter your email",
|
||||
"stepTwo": "Enter your password"
|
||||
},
|
||||
"links": {
|
||||
"forgotPassword": "Forgot password?",
|
||||
"forgotPasswordLink": "Reset password",
|
||||
"register": "Do not have an account?",
|
||||
"registerLink": "Register here"
|
||||
},
|
||||
"toasts": {
|
||||
"success": "Welcome back! You're successfully logged in.",
|
||||
"incorrectPassword": "Incorrect password"
|
||||
},
|
||||
"errors": {
|
||||
"password": {
|
||||
"incorrect": "The password you provided does not match our records"
|
||||
}
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"heading": {
|
||||
"superAdmin": "Create super admin",
|
||||
"user": "Sign Up"
|
||||
},
|
||||
"subheadings": {
|
||||
"stepOne": "Enter your personal details",
|
||||
"stepTwo": "Enter your email",
|
||||
"stepThree": "Create your password"
|
||||
},
|
||||
"description": {
|
||||
"superAdmin": "Create your super admin account to get started",
|
||||
"user": "Sign up as a user and ask super admin for access to your monitors"
|
||||
},
|
||||
"gettingStartedButton": {
|
||||
"superAdmin": "Create super admin account",
|
||||
"user": "Sign up regular user"
|
||||
},
|
||||
"termsAndPolicies": "By creating an account, you agree to our <a1>Terms of Service</a1> and <a2>Privacy Policy</a2>.",
|
||||
"links": {
|
||||
"login": "Already have an account? <a>Log In</a>"
|
||||
},
|
||||
"toasts": {
|
||||
"success": "Welcome! Your account was created successfully."
|
||||
}
|
||||
},
|
||||
"forgotPassword": {
|
||||
"heading": "Forgot password?",
|
||||
"subheadings": {
|
||||
"stepOne": "No worries, we'll send you reset instructions.",
|
||||
"stepTwo": "We sent a password reset link to <email/>",
|
||||
"stepThree": "Your new password must be different from previously used passwords.",
|
||||
"stepFour": "Your password has been successfully reset. Click below to log in magically."
|
||||
},
|
||||
"buttons": {
|
||||
"openEmail": "Open email app",
|
||||
"resetPassword": "Reset password"
|
||||
},
|
||||
"imageAlts": {
|
||||
"passwordKey": "Password key icon",
|
||||
"email": "Email icon",
|
||||
"lock": "Lock icon",
|
||||
"passwordConfirm": "Password confirm icon"
|
||||
},
|
||||
"links": {
|
||||
"login": "Go back to <a>Log In</a>",
|
||||
"resend": "Didn't receive the email? <a>Click to resend</a>"
|
||||
},
|
||||
"toasts": {
|
||||
"sent": "Instructions sent to <email/>.",
|
||||
"emailNotFound": "Email not found.",
|
||||
"redirect": "Redirecting in <seconds/>...",
|
||||
"success": "Your password was reset successfully.",
|
||||
"error": "Unable to reset password. Please try again later or contact support."
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorPages": {
|
||||
"serverUnreachable": {
|
||||
"toasts": {
|
||||
"reconnected": "Successfully reconnected to the server.",
|
||||
"stillUnreachable": "Server is still unreachable. Please try again later."
|
||||
},
|
||||
"alertBox": "Server Connection Error",
|
||||
"description": "We're unable to connect to the server. Please check your internet connection or verify your deployment configuration if the problem persists.",
|
||||
"retryButton": {
|
||||
"default": "Retry connection",
|
||||
"processing": "Connecting..."
|
||||
}
|
||||
}
|
||||
},
|
||||
"submit": "Submit",
|
||||
"title": "Title",
|
||||
"distributedStatusHeaderText": "Real-time, real-device coverage",
|
||||
@@ -262,60 +73,7 @@
|
||||
"distributedUptimeDetailsNoMonitorHistory": "There is no check history for this monitor yet.",
|
||||
"distributedUptimeDetailsStatusHeaderUptime": "Uptime:",
|
||||
"distributedUptimeDetailsStatusHeaderLastUpdate": "Last updated",
|
||||
"createNotifications": {
|
||||
"title": "Create notification channel",
|
||||
"nameSettings": {
|
||||
"title": "Name",
|
||||
"description": "A descriptive name for your integration.",
|
||||
"nameLabel": "Name",
|
||||
"namePlaceholder": "e.g. Slack notifications"
|
||||
},
|
||||
"typeSettings": {
|
||||
"title": "Type",
|
||||
"description": "Select the type of notification channel you want to create.",
|
||||
"typeLabel": "Type"
|
||||
},
|
||||
"emailSettings": {
|
||||
"title": "Email",
|
||||
"description": "Destination email addresses.",
|
||||
"emailLabel": "Email address",
|
||||
"emailPlaceholder": "e.g. john@example.com"
|
||||
},
|
||||
"slackSettings": {
|
||||
"title": "Slack",
|
||||
"description": "Configure your Slack webhook here",
|
||||
"webhookLabel": "Slack webhook URL",
|
||||
"webhookPlaceholder": "https://hooks.slack.com/services/..."
|
||||
},
|
||||
"pagerdutySettings": {
|
||||
"title": "PagerDuty",
|
||||
"description": "Configure your PagerDuty integration here",
|
||||
"integrationKeyLabel": "Integration key",
|
||||
"integrationKeyPlaceholder": "1234567890"
|
||||
},
|
||||
"genericWebhookSettings": {
|
||||
"title": "Webhook",
|
||||
"description": "Configure your webhook here",
|
||||
"webhookLabel": "Webhook URL",
|
||||
"webhookPlaceholder": "https://your-server.com/webhook"
|
||||
}
|
||||
},
|
||||
|
||||
"notificationConfig": {
|
||||
"title": "Notifications",
|
||||
"description": "Select the notifications channels you want to use"
|
||||
},
|
||||
"notifications": {
|
||||
"fallback": {
|
||||
"title": "notification channel",
|
||||
"checks": [
|
||||
"Alert teams about downtime or performance issues",
|
||||
"Let engineers know when incidents happen",
|
||||
"Keep administrators informed of system changes"
|
||||
]
|
||||
},
|
||||
"createButton": "Create notification channel",
|
||||
"createTitle": "Notification channel",
|
||||
"enableNotifications": "Enable {{platform}} notifications",
|
||||
"testNotification": "Test notification",
|
||||
"addOrEditNotifications": "Add or edit notifications",
|
||||
@@ -355,6 +113,16 @@
|
||||
"testFailed": "Failed to send test notification",
|
||||
"unsupportedType": "Unsupported notification type",
|
||||
"networkError": "Network error occurred",
|
||||
"fallback": {
|
||||
"title": "notification channel",
|
||||
"checks": [
|
||||
"Alert teams about downtime or performance issues",
|
||||
"Let engineers know when incidents happen",
|
||||
"Keep administrators informed of system changes"
|
||||
]
|
||||
},
|
||||
"createButton": "Create notification channel",
|
||||
"createTitle": "Notification channel",
|
||||
"create": {
|
||||
"success": "Notification created successfully",
|
||||
"failed": "Failed to create notification"
|
||||
@@ -525,7 +293,6 @@
|
||||
"notifyEmails": "Also notify via email to multiple addresses (coming soon)",
|
||||
"seperateEmails": "You can separate multiple emails with a comma",
|
||||
"checkFrequency": "Check frequency",
|
||||
"advancedMatching": "Advanced matching",
|
||||
"matchMethod": "Match Method",
|
||||
"expectedValue": "Expected value",
|
||||
"deleteDialogTitle": "Do you really want to delete this monitor?",
|
||||
@@ -619,13 +386,6 @@
|
||||
"append": "The afternoon is your playground—let's make it epic!",
|
||||
"overview": "Here's an overview of your {{type}} monitors."
|
||||
},
|
||||
"monitorStatus": {
|
||||
"up": "up",
|
||||
"down": "down",
|
||||
"paused": "paused",
|
||||
"checkingEvery": "Checking every {{interval}}",
|
||||
"withCaptureAgent": "with Capture agent {{version}}"
|
||||
},
|
||||
"roles": {
|
||||
"superAdmin": "Super admin",
|
||||
"admin": "Admin",
|
||||
@@ -663,7 +423,6 @@
|
||||
"menu": {
|
||||
"uptime": "Uptime",
|
||||
"pagespeed": "Pagespeed",
|
||||
"notifications": "Notifications",
|
||||
"infrastructure": "Infrastructure",
|
||||
"incidents": "Incidents",
|
||||
"statusPages": "Status pages",
|
||||
@@ -677,7 +436,8 @@
|
||||
"profile": "Profile",
|
||||
"password": "Password",
|
||||
"team": "Team",
|
||||
"logOut": "Log out"
|
||||
"logOut": "Log out",
|
||||
"notifications": "Notifications"
|
||||
},
|
||||
"settingsEmail": "Email",
|
||||
"settingsEmailDescription": "Configure the email settings for your system. This is used to send notifications and alerts.",
|
||||
@@ -687,12 +447,6 @@
|
||||
"settingsEmailPassword": "Email password - Password for authentication",
|
||||
"settingsEmailUser": "Email user - Username for authentication, overrides email address if specified",
|
||||
"settingsEmailFieldResetLabel": "Password is set. Click Reset to change it.",
|
||||
"settingsEmailTLSServername": "TLS Servername - Optional Hostname for TLS Validation when host is an IP",
|
||||
"settingsEmailIgnoreTLS": "Ignore TLS - Disable STARTTLS",
|
||||
"settingsEmailRequireTLS": "Require TLS - Force STARTTLS",
|
||||
"settingsEmailRejectUnauthorized": "Reject Unauthorized",
|
||||
"settingsEmailSecure": "Secure - Use SSL",
|
||||
"settingsEmailPool": "Pool - Enable connection pooling",
|
||||
"state": "State",
|
||||
"statusBreadCrumbsStatusPages": "Status Pages",
|
||||
"statusBreadCrumbsDetails": "Details",
|
||||
@@ -714,7 +468,6 @@
|
||||
"saving": "Saving..."
|
||||
},
|
||||
"settingsEmailConnectionHost": "Email connection host - Hostname to use in the HELO/EHLO greeting",
|
||||
"sendTestNotifications": "Send test notifications",
|
||||
"emailSent": "Email sent successfully",
|
||||
"failedToSendEmail": "Failed to send email",
|
||||
"settingsTestEmail": "Send test e-mail",
|
||||
@@ -739,9 +492,6 @@
|
||||
"ping": "Enter the IP address or hostname to ping (e.g., 192.168.1.100 or example.com) and add a clear display name that appears on the dashboard.",
|
||||
"docker": "Enter the Docker ID of your container. Docker IDs must be the full 64 char Docker ID. You can run docker inspect <short_id> to get the full container ID.",
|
||||
"port": "Enter the URL or IP of the server, the port number and a clear display name that appears on the dashboard."
|
||||
<<<<<<< Updated upstream
|
||||
}
|
||||
=======
|
||||
},
|
||||
"common": {
|
||||
"appName": "Checkmate",
|
||||
@@ -995,6 +745,5 @@
|
||||
"settingsEmailSecure": "Secure - Use SSL",
|
||||
"settingsEmailPool": "Pool - Enable connection pooling",
|
||||
"sendTestNotifications": "Send test notifications",
|
||||
"selectAll": "Select all"
|
||||
>>>>>>> Stashed changes
|
||||
}
|
||||
"selectAll": "Select all"
|
||||
}
|
||||
@@ -1,186 +1,4 @@
|
||||
{
|
||||
"common": {
|
||||
"appName": "Checkmate",
|
||||
"monitoringAgentName": "Capture",
|
||||
"buttons": {
|
||||
"toggleTheme": ""
|
||||
},
|
||||
"toasts": {
|
||||
"networkError": "",
|
||||
"checkConnection": "",
|
||||
"unknownError": ""
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"common": {
|
||||
"navigation": {
|
||||
"continue": "Continuar",
|
||||
"back": "Atras"
|
||||
},
|
||||
"inputs": {
|
||||
"email": {
|
||||
"label": "Correo electronico",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"invalid": ""
|
||||
}
|
||||
},
|
||||
"password": {
|
||||
"label": "Contraseña",
|
||||
"rules": {
|
||||
"length": {
|
||||
"beginning": "",
|
||||
"highlighted": "8 caracteres de longitud"
|
||||
},
|
||||
"special": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"number": {
|
||||
"beginning": "",
|
||||
"highlighted": "un numero"
|
||||
},
|
||||
"uppercase": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"lowercase": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"match": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"uppercase": "",
|
||||
"lowercase": "",
|
||||
"number": "",
|
||||
"special": "",
|
||||
"incorrect": ""
|
||||
}
|
||||
},
|
||||
"passwordConfirm": {
|
||||
"label": "Confirmar contraseña",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"different": ""
|
||||
}
|
||||
},
|
||||
"firstName": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
},
|
||||
"lastName": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"validation": ""
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"heading": "Inicio de session",
|
||||
"subheadings": {
|
||||
"stepOne": "Introduce tu correo electronico",
|
||||
"stepTwo": "Introduce tu contraseña"
|
||||
},
|
||||
"links": {
|
||||
"forgotPassword": "¿Has olvidado tu contraseña? <a>Restablecer contraseña</a>",
|
||||
"register": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": "",
|
||||
"incorrectPassword": ""
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"heading": {
|
||||
"superAdmin": "",
|
||||
"user": "Registrarse"
|
||||
},
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "Introduce tu correo electronico",
|
||||
"stepThree": "Crear contraseña"
|
||||
},
|
||||
"description": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"gettingStartedButton": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"termsAndPolicies": "",
|
||||
"links": {
|
||||
"login": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": ""
|
||||
}
|
||||
},
|
||||
"forgotPassword": {
|
||||
"heading": "¿Has olvidado tu contraseña?",
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "Hemos enviado un link para reiniciar la contraseña a <email/>",
|
||||
"stepThree": "",
|
||||
"stepFour": ""
|
||||
},
|
||||
"buttons": {
|
||||
"openEmail": "",
|
||||
"resetPassword": "Restablecer contraseña"
|
||||
},
|
||||
"imageAlts": {
|
||||
"passwordKey": "",
|
||||
"email": "",
|
||||
"lock": "",
|
||||
"passwordConfirm": ""
|
||||
},
|
||||
"links": {
|
||||
"login": "Volver a <a>Inicio de session</a>",
|
||||
"resend": "No has recibido el correo electronico? <a>Presiona para reenviar</a>"
|
||||
},
|
||||
"toasts": {
|
||||
"sent": "",
|
||||
"emailNotFound": "",
|
||||
"redirect": "",
|
||||
"success": "",
|
||||
"error": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorPages": {
|
||||
"serverUnreachable": {
|
||||
"toasts": {
|
||||
"reconnected": "",
|
||||
"stillUnreachable": ""
|
||||
},
|
||||
"alertBox": "",
|
||||
"description": "",
|
||||
"retryButton": {
|
||||
"default": "",
|
||||
"processing": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"submit": "Enviar",
|
||||
"title": "Titulo",
|
||||
"distributedStatusHeaderText": "",
|
||||
@@ -192,8 +10,6 @@
|
||||
"settingsAppearanceDescription": "",
|
||||
"settingsThemeMode": "",
|
||||
"settingsLanguage": "",
|
||||
"settingsDistributedUptime": "",
|
||||
"settingsDistributedUptimeDescription": "",
|
||||
"settingsEnabled": "",
|
||||
"settingsDisabled": "",
|
||||
"settingsHistoryAndMonitoring": "",
|
||||
@@ -213,8 +29,6 @@
|
||||
"settingsRemoveAllMonitorsButton": "",
|
||||
"settingsRemoveAllMonitorsDialogTitle": "",
|
||||
"settingsRemoveAllMonitorsDialogConfirm": "",
|
||||
"settingsWallet": "",
|
||||
"settingsWalletDescription": "",
|
||||
"settingsAbout": "",
|
||||
"settingsDevelopedBy": "",
|
||||
"settingsSave": "",
|
||||
@@ -257,10 +71,6 @@
|
||||
"distributedUptimeCreateIncidentDescription": "",
|
||||
"distributedUptimeCreateAdvancedSettings": "",
|
||||
"distributedUptimeDetailsNoMonitorHistory": "",
|
||||
"distributedUptimeDetailsFooterHeading": "",
|
||||
"distributedUptimeDetailsFooterBuilt": "",
|
||||
"distributedUptimeDetailsFooterSolana": "",
|
||||
"distributedUptimeDetailsMonitorHeader": "",
|
||||
"distributedUptimeDetailsStatusHeaderUptime": "",
|
||||
"distributedUptimeDetailsStatusHeaderLastUpdate": "",
|
||||
"notifications": {
|
||||
@@ -302,7 +112,33 @@
|
||||
"testSuccess": "",
|
||||
"testFailed": "",
|
||||
"unsupportedType": "",
|
||||
"networkError": ""
|
||||
"networkError": "",
|
||||
"fallback": {
|
||||
"title": "",
|
||||
"checks": [""]
|
||||
},
|
||||
"createButton": "",
|
||||
"createTitle": "",
|
||||
"create": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"fetch": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"delete": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"edit": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"test": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
}
|
||||
},
|
||||
"testLocale": "",
|
||||
"add": "",
|
||||
@@ -546,11 +382,6 @@
|
||||
"append": "",
|
||||
"overview": ""
|
||||
},
|
||||
"monitorStatus": {
|
||||
"up": "",
|
||||
"down": "",
|
||||
"paused": ""
|
||||
},
|
||||
"roles": {
|
||||
"superAdmin": "",
|
||||
"admin": "",
|
||||
@@ -589,7 +420,6 @@
|
||||
"uptime": "",
|
||||
"pagespeed": "",
|
||||
"infrastructure": "",
|
||||
"distributedUptime": "",
|
||||
"incidents": "",
|
||||
"statusPages": "",
|
||||
"maintenance": "",
|
||||
@@ -602,7 +432,8 @@
|
||||
"profile": "",
|
||||
"password": "",
|
||||
"team": "",
|
||||
"logOut": ""
|
||||
"logOut": "",
|
||||
"notifications": ""
|
||||
},
|
||||
"settingsEmail": "",
|
||||
"settingsEmailDescription": "",
|
||||
@@ -633,7 +464,6 @@
|
||||
"saving": ""
|
||||
},
|
||||
"settingsEmailConnectionHost": "",
|
||||
"sendTestEmail": "",
|
||||
"emailSent": "",
|
||||
"failedToSendEmail": "",
|
||||
"settingsTestEmail": "",
|
||||
@@ -658,5 +488,257 @@
|
||||
"ping": "",
|
||||
"docker": "",
|
||||
"port": ""
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"appName": "",
|
||||
"monitoringAgentName": "",
|
||||
"buttons": {
|
||||
"toggleTheme": ""
|
||||
},
|
||||
"toasts": {
|
||||
"networkError": "",
|
||||
"checkConnection": "",
|
||||
"unknownError": ""
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"common": {
|
||||
"navigation": {
|
||||
"continue": "",
|
||||
"back": ""
|
||||
},
|
||||
"inputs": {
|
||||
"email": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"invalid": ""
|
||||
}
|
||||
},
|
||||
"password": {
|
||||
"label": "",
|
||||
"rules": {
|
||||
"length": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"special": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"number": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"uppercase": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"lowercase": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"match": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"uppercase": "",
|
||||
"lowercase": "",
|
||||
"number": "",
|
||||
"special": "",
|
||||
"incorrect": ""
|
||||
}
|
||||
},
|
||||
"passwordConfirm": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"different": ""
|
||||
}
|
||||
},
|
||||
"firstName": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
},
|
||||
"lastName": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"validation": ""
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"heading": "",
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": ""
|
||||
},
|
||||
"links": {
|
||||
"forgotPassword": "",
|
||||
"register": "",
|
||||
"forgotPasswordLink": "",
|
||||
"registerLink": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": "",
|
||||
"incorrectPassword": ""
|
||||
},
|
||||
"errors": {
|
||||
"password": {
|
||||
"incorrect": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"heading": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "",
|
||||
"stepThree": ""
|
||||
},
|
||||
"description": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"gettingStartedButton": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"termsAndPolicies": "",
|
||||
"links": {
|
||||
"login": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": ""
|
||||
}
|
||||
},
|
||||
"forgotPassword": {
|
||||
"heading": "",
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "",
|
||||
"stepThree": "",
|
||||
"stepFour": ""
|
||||
},
|
||||
"buttons": {
|
||||
"openEmail": "",
|
||||
"resetPassword": ""
|
||||
},
|
||||
"imageAlts": {
|
||||
"passwordKey": "",
|
||||
"email": "",
|
||||
"lock": "",
|
||||
"passwordConfirm": ""
|
||||
},
|
||||
"links": {
|
||||
"login": "",
|
||||
"resend": ""
|
||||
},
|
||||
"toasts": {
|
||||
"sent": "",
|
||||
"emailNotFound": "",
|
||||
"redirect": "",
|
||||
"success": "",
|
||||
"error": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorPages": {
|
||||
"serverUnreachable": {
|
||||
"toasts": {
|
||||
"reconnected": "",
|
||||
"stillUnreachable": ""
|
||||
},
|
||||
"alertBox": "",
|
||||
"description": "",
|
||||
"retryButton": {
|
||||
"default": "",
|
||||
"processing": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"createNotifications": {
|
||||
"title": "",
|
||||
"nameSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"nameLabel": "",
|
||||
"namePlaceholder": ""
|
||||
},
|
||||
"typeSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"typeLabel": ""
|
||||
},
|
||||
"emailSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"emailLabel": "",
|
||||
"emailPlaceholder": ""
|
||||
},
|
||||
"slackSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
},
|
||||
"pagerdutySettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"integrationKeyLabel": "",
|
||||
"integrationKeyPlaceholder": ""
|
||||
},
|
||||
"genericWebhookSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
},
|
||||
"discordSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
}
|
||||
},
|
||||
"notificationConfig": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"monitorStatus": {
|
||||
"checkingEvery": "",
|
||||
"withCaptureAgent": "",
|
||||
"up": "",
|
||||
"down": "",
|
||||
"paused": ""
|
||||
},
|
||||
"advancedMatching": "",
|
||||
"settingsEmailTLSServername": "",
|
||||
"settingsEmailIgnoreTLS": "",
|
||||
"settingsEmailRequireTLS": "",
|
||||
"settingsEmailRejectUnauthorized": "",
|
||||
"settingsEmailSecure": "",
|
||||
"settingsEmailPool": "",
|
||||
"sendTestNotifications": ""
|
||||
}
|
||||
|
||||
@@ -1,186 +1,4 @@
|
||||
{
|
||||
"common": {
|
||||
"appName": "Checkmate",
|
||||
"monitoringAgentName": "Capture",
|
||||
"buttons": {
|
||||
"toggleTheme": ""
|
||||
},
|
||||
"toasts": {
|
||||
"networkError": "Verkkovirhe",
|
||||
"checkConnection": "Tarkista yhteytesi",
|
||||
"unknownError": ""
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"common": {
|
||||
"navigation": {
|
||||
"continue": "Jatka",
|
||||
"back": "Takaisin"
|
||||
},
|
||||
"inputs": {
|
||||
"email": {
|
||||
"label": "Sähköposti",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "Syötä sähköpostiosoitteesi jatkaaksesi",
|
||||
"invalid": "Kirjoita kelvollinen sähköpostiosoite"
|
||||
}
|
||||
},
|
||||
"password": {
|
||||
"label": "Salasana",
|
||||
"rules": {
|
||||
"length": {
|
||||
"beginning": "Vähintään",
|
||||
"highlighted": "8 merkkiä pitkä"
|
||||
},
|
||||
"special": {
|
||||
"beginning": "Tulee sisältää vähintään",
|
||||
"highlighted": "yksi erikoismerkki"
|
||||
},
|
||||
"number": {
|
||||
"beginning": "Tulee sisältää vähintään",
|
||||
"highlighted": "yksi numero"
|
||||
},
|
||||
"uppercase": {
|
||||
"beginning": "Tulee sisältää vähintään",
|
||||
"highlighted": "yksi pieni kirjain"
|
||||
},
|
||||
"lowercase": {
|
||||
"beginning": "Tulee sisältää vähintään",
|
||||
"highlighted": "yksi iso kirjain"
|
||||
},
|
||||
"match": {
|
||||
"beginning": "Vahvista salasana ja salasana",
|
||||
"highlighted": ""
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"uppercase": "",
|
||||
"lowercase": "",
|
||||
"number": "",
|
||||
"special": "",
|
||||
"incorrect": ""
|
||||
}
|
||||
},
|
||||
"passwordConfirm": {
|
||||
"label": "Vahvista salasana",
|
||||
"placeholder": "Syötä salasana uudelleen",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"different": ""
|
||||
}
|
||||
},
|
||||
"firstName": {
|
||||
"label": "Nimi",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
},
|
||||
"lastName": {
|
||||
"label": "Sukunimi",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"validation": ""
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"heading": "Kirjaudu",
|
||||
"subheadings": {
|
||||
"stepOne": "Syötä salasanasi",
|
||||
"stepTwo": "Syötä salasanasi"
|
||||
},
|
||||
"links": {
|
||||
"forgotPassword": "Unohditko salasanasi? <a>Nollaa salasana</a>",
|
||||
"register": "Onko sinulla tili? <a>Rekisteröidy tästä</a>"
|
||||
},
|
||||
"toasts": {
|
||||
"success": "Tervetuloa takaisin! Olet kirjautunut sisään.",
|
||||
"incorrectPassword": ""
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"heading": {
|
||||
"superAdmin": "",
|
||||
"user": "Rekisteröidy"
|
||||
},
|
||||
"subheadings": {
|
||||
"stepOne": "Syötä henkilökohtaiset tietosi",
|
||||
"stepTwo": "Syötä salasanasi",
|
||||
"stepThree": "Luo salasanasi"
|
||||
},
|
||||
"description": {
|
||||
"superAdmin": "Luo pääkäyttäjän tili aloittaaksesi",
|
||||
"user": ""
|
||||
},
|
||||
"gettingStartedButton": {
|
||||
"superAdmin": "Luo pääkäyttäjän tili",
|
||||
"user": ""
|
||||
},
|
||||
"termsAndPolicies": "Luomalla tilin hyväksyt <a1>Käyttöehdot</a1> ja <a2>Tietosuojakäytännön</a2>.",
|
||||
"links": {
|
||||
"login": "Onko sinulla jo tili? <a>Kirjaudu</a>"
|
||||
},
|
||||
"toasts": {
|
||||
"success": ""
|
||||
}
|
||||
},
|
||||
"forgotPassword": {
|
||||
"heading": "Unohditko salasanasi?",
|
||||
"subheadings": {
|
||||
"stepOne": "Ei hätää, lähetämme sinulle ohjeet salasanan palauttamiseen.",
|
||||
"stepTwo": "Lähetimme salasanan nollauslinkin osoitteeseen <email/>",
|
||||
"stepThree": "Uuden salasanan pitää olla eri kuin aiemmin käyttämäsi.",
|
||||
"stepFour": "Salasanasi on onnistuneesti nollattu. Klikkaa alta kirjautuaksesi taianomaisesti."
|
||||
},
|
||||
"buttons": {
|
||||
"openEmail": "Avaa sähköpostisovellus",
|
||||
"resetPassword": "Nollaa salasana"
|
||||
},
|
||||
"imageAlts": {
|
||||
"passwordKey": "",
|
||||
"email": "",
|
||||
"lock": "",
|
||||
"passwordConfirm": ""
|
||||
},
|
||||
"links": {
|
||||
"login": "Palaa edelliseen <a>Kirjaudu</a>",
|
||||
"resend": "Etkö saanut sähköpostia? <a>Klikkaa lähettääksesi uudelleen</a>"
|
||||
},
|
||||
"toasts": {
|
||||
"sent": "",
|
||||
"emailNotFound": "",
|
||||
"redirect": "",
|
||||
"success": "",
|
||||
"error": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorPages": {
|
||||
"serverUnreachable": {
|
||||
"toasts": {
|
||||
"reconnected": "",
|
||||
"stillUnreachable": ""
|
||||
},
|
||||
"alertBox": "",
|
||||
"description": "",
|
||||
"retryButton": {
|
||||
"default": "",
|
||||
"processing": "Yhdistetään..."
|
||||
}
|
||||
}
|
||||
},
|
||||
"submit": "Lähetä",
|
||||
"title": "Otsikko",
|
||||
"distributedStatusHeaderText": "Reaaliaikainen kattavuus oikeilla laitteilla",
|
||||
@@ -192,8 +10,6 @@
|
||||
"settingsAppearanceDescription": "Vaihda teema vaaleaksi tai tummaksi tai vaihda käyttöliittymän kieli",
|
||||
"settingsThemeMode": "Teematila",
|
||||
"settingsLanguage": "Kieli",
|
||||
"settingsDistributedUptime": "Hajautettu käyttöaika",
|
||||
"settingsDistributedUptimeDescription": "Ota käyttöön tai poista käytöstä hajautettu käyttöaikavalvonta.",
|
||||
"settingsEnabled": "Käytössä",
|
||||
"settingsDisabled": "Poistettu käytöstä",
|
||||
"settingsHistoryAndMonitoring": "Valvonnan historia",
|
||||
@@ -213,8 +29,6 @@
|
||||
"settingsRemoveAllMonitorsButton": "",
|
||||
"settingsRemoveAllMonitorsDialogTitle": "",
|
||||
"settingsRemoveAllMonitorsDialogConfirm": "",
|
||||
"settingsWallet": "Lompakko",
|
||||
"settingsWalletDescription": "",
|
||||
"settingsAbout": "Tietoja",
|
||||
"settingsDevelopedBy": "Kehittänyt Bluewave Labs.",
|
||||
"settingsSave": "Tallenna",
|
||||
@@ -257,10 +71,6 @@
|
||||
"distributedUptimeCreateIncidentDescription": "Jos ilmenee häiriö, ilmoita käyttäjille.",
|
||||
"distributedUptimeCreateAdvancedSettings": "Lisäasetukset",
|
||||
"distributedUptimeDetailsNoMonitorHistory": "Tälle valvontakohteelle ei ole vielä tarkistushistoriaa.",
|
||||
"distributedUptimeDetailsFooterHeading": "Tehty ❤️:lla UpRockin ja Bluewave Labsin toimesta",
|
||||
"distributedUptimeDetailsFooterBuilt": "",
|
||||
"distributedUptimeDetailsFooterSolana": "Solana",
|
||||
"distributedUptimeDetailsMonitorHeader": "",
|
||||
"distributedUptimeDetailsStatusHeaderUptime": "",
|
||||
"distributedUptimeDetailsStatusHeaderLastUpdate": "Viimeksi päivitetty",
|
||||
"notifications": {
|
||||
@@ -302,7 +112,33 @@
|
||||
"testSuccess": "Testi ilmoituksen lähetys onnistui!",
|
||||
"testFailed": "Testi ilmoituksen lähetys epäonnistui",
|
||||
"unsupportedType": "",
|
||||
"networkError": ""
|
||||
"networkError": "",
|
||||
"fallback": {
|
||||
"title": "",
|
||||
"checks": [""]
|
||||
},
|
||||
"createButton": "",
|
||||
"createTitle": "",
|
||||
"create": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"fetch": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"delete": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"edit": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"test": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
}
|
||||
},
|
||||
"testLocale": "",
|
||||
"add": "Lisää",
|
||||
@@ -546,11 +382,6 @@
|
||||
"append": "",
|
||||
"overview": ""
|
||||
},
|
||||
"monitorStatus": {
|
||||
"up": "Ylös",
|
||||
"down": "Alas",
|
||||
"paused": "Tauko"
|
||||
},
|
||||
"roles": {
|
||||
"superAdmin": "Pääylläpitäjä",
|
||||
"admin": "Ylläpitäjä",
|
||||
@@ -589,7 +420,6 @@
|
||||
"uptime": "",
|
||||
"pagespeed": "",
|
||||
"infrastructure": "Infrastruktuuri",
|
||||
"distributedUptime": "",
|
||||
"incidents": "",
|
||||
"statusPages": "Tilasivut",
|
||||
"maintenance": "Huolto",
|
||||
@@ -602,7 +432,8 @@
|
||||
"profile": "Profiili",
|
||||
"password": "Salasana",
|
||||
"team": "Tiimi",
|
||||
"logOut": "Kirjaudu ulos"
|
||||
"logOut": "Kirjaudu ulos",
|
||||
"notifications": ""
|
||||
},
|
||||
"settingsEmail": "Sähköpostiasetukset",
|
||||
"settingsEmailDescription": "Määritä sähköpostiasetukset",
|
||||
@@ -633,7 +464,6 @@
|
||||
"saving": "Tallennetaan..."
|
||||
},
|
||||
"settingsEmailConnectionHost": "",
|
||||
"sendTestEmail": "Lähetä testi sähköposti",
|
||||
"emailSent": "Sähköpostin lähetys onnistui",
|
||||
"failedToSendEmail": "Sähköpostin lähetys epäonnistui",
|
||||
"settingsTestEmail": "Lähetä testi sähköposti",
|
||||
@@ -658,5 +488,257 @@
|
||||
"ping": "",
|
||||
"docker": "",
|
||||
"port": ""
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"appName": "",
|
||||
"monitoringAgentName": "",
|
||||
"buttons": {
|
||||
"toggleTheme": ""
|
||||
},
|
||||
"toasts": {
|
||||
"networkError": "",
|
||||
"checkConnection": "",
|
||||
"unknownError": ""
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"common": {
|
||||
"navigation": {
|
||||
"continue": "",
|
||||
"back": ""
|
||||
},
|
||||
"inputs": {
|
||||
"email": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"invalid": ""
|
||||
}
|
||||
},
|
||||
"password": {
|
||||
"label": "",
|
||||
"rules": {
|
||||
"length": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"special": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"number": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"uppercase": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"lowercase": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"match": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"uppercase": "",
|
||||
"lowercase": "",
|
||||
"number": "",
|
||||
"special": "",
|
||||
"incorrect": ""
|
||||
}
|
||||
},
|
||||
"passwordConfirm": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"different": ""
|
||||
}
|
||||
},
|
||||
"firstName": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
},
|
||||
"lastName": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"validation": ""
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"heading": "",
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": ""
|
||||
},
|
||||
"links": {
|
||||
"forgotPassword": "",
|
||||
"register": "",
|
||||
"forgotPasswordLink": "",
|
||||
"registerLink": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": "",
|
||||
"incorrectPassword": ""
|
||||
},
|
||||
"errors": {
|
||||
"password": {
|
||||
"incorrect": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"heading": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "",
|
||||
"stepThree": ""
|
||||
},
|
||||
"description": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"gettingStartedButton": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"termsAndPolicies": "",
|
||||
"links": {
|
||||
"login": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": ""
|
||||
}
|
||||
},
|
||||
"forgotPassword": {
|
||||
"heading": "",
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "",
|
||||
"stepThree": "",
|
||||
"stepFour": ""
|
||||
},
|
||||
"buttons": {
|
||||
"openEmail": "",
|
||||
"resetPassword": ""
|
||||
},
|
||||
"imageAlts": {
|
||||
"passwordKey": "",
|
||||
"email": "",
|
||||
"lock": "",
|
||||
"passwordConfirm": ""
|
||||
},
|
||||
"links": {
|
||||
"login": "",
|
||||
"resend": ""
|
||||
},
|
||||
"toasts": {
|
||||
"sent": "",
|
||||
"emailNotFound": "",
|
||||
"redirect": "",
|
||||
"success": "",
|
||||
"error": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorPages": {
|
||||
"serverUnreachable": {
|
||||
"toasts": {
|
||||
"reconnected": "",
|
||||
"stillUnreachable": ""
|
||||
},
|
||||
"alertBox": "",
|
||||
"description": "",
|
||||
"retryButton": {
|
||||
"default": "",
|
||||
"processing": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"createNotifications": {
|
||||
"title": "",
|
||||
"nameSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"nameLabel": "",
|
||||
"namePlaceholder": ""
|
||||
},
|
||||
"typeSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"typeLabel": ""
|
||||
},
|
||||
"emailSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"emailLabel": "",
|
||||
"emailPlaceholder": ""
|
||||
},
|
||||
"slackSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
},
|
||||
"pagerdutySettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"integrationKeyLabel": "",
|
||||
"integrationKeyPlaceholder": ""
|
||||
},
|
||||
"genericWebhookSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
},
|
||||
"discordSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
}
|
||||
},
|
||||
"notificationConfig": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"monitorStatus": {
|
||||
"checkingEvery": "",
|
||||
"withCaptureAgent": "",
|
||||
"up": "",
|
||||
"down": "",
|
||||
"paused": ""
|
||||
},
|
||||
"advancedMatching": "",
|
||||
"settingsEmailTLSServername": "",
|
||||
"settingsEmailIgnoreTLS": "",
|
||||
"settingsEmailRequireTLS": "",
|
||||
"settingsEmailRejectUnauthorized": "",
|
||||
"settingsEmailSecure": "",
|
||||
"settingsEmailPool": "",
|
||||
"sendTestNotifications": ""
|
||||
}
|
||||
|
||||
@@ -1,186 +1,4 @@
|
||||
{
|
||||
"common": {
|
||||
"appName": "Checkmate",
|
||||
"monitoringAgentName": "Capture",
|
||||
"buttons": {
|
||||
"toggleTheme": ""
|
||||
},
|
||||
"toasts": {
|
||||
"networkError": "",
|
||||
"checkConnection": "Vérifiez votre connexion",
|
||||
"unknownError": ""
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"common": {
|
||||
"navigation": {
|
||||
"continue": "Continuer",
|
||||
"back": "Retour"
|
||||
},
|
||||
"inputs": {
|
||||
"email": {
|
||||
"label": "E-mail",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "Pour continuer, veuillez saisir votre adresse e-mail",
|
||||
"invalid": "Veuillez saisir une adresse e-mail valide"
|
||||
}
|
||||
},
|
||||
"password": {
|
||||
"label": "Mot de passe",
|
||||
"rules": {
|
||||
"length": {
|
||||
"beginning": "Doit faire au moins",
|
||||
"highlighted": "8 caractères"
|
||||
},
|
||||
"special": {
|
||||
"beginning": "Doit contenir au moins",
|
||||
"highlighted": "un caractère spécial"
|
||||
},
|
||||
"number": {
|
||||
"beginning": "Doit contenir au moins",
|
||||
"highlighted": "un nombre"
|
||||
},
|
||||
"uppercase": {
|
||||
"beginning": "Doit contenir au moins",
|
||||
"highlighted": "une lettre majuscule"
|
||||
},
|
||||
"lowercase": {
|
||||
"beginning": "Doit contenir au moins",
|
||||
"highlighted": "une lettre minuscule"
|
||||
},
|
||||
"match": {
|
||||
"beginning": "Confirmer le mot de passe",
|
||||
"highlighted": ""
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"uppercase": "",
|
||||
"lowercase": "",
|
||||
"number": "",
|
||||
"special": "",
|
||||
"incorrect": ""
|
||||
}
|
||||
},
|
||||
"passwordConfirm": {
|
||||
"label": "Confirmer le mot de passe",
|
||||
"placeholder": "Confirmez votre mot de passe",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"different": ""
|
||||
}
|
||||
},
|
||||
"firstName": {
|
||||
"label": "Prénom",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
},
|
||||
"lastName": {
|
||||
"label": "Nom",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"validation": ""
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"heading": "Se connecter",
|
||||
"subheadings": {
|
||||
"stepOne": "Entrez votre e-mail",
|
||||
"stepTwo": "Entrez votre mot de passe"
|
||||
},
|
||||
"links": {
|
||||
"forgotPassword": "Mot de passe oublié ? <a>Réinitialiser le mot de passe</a>",
|
||||
"register": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": "Bienvenue ! Vous êtes connecté avec succès.",
|
||||
"incorrectPassword": ""
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"heading": {
|
||||
"superAdmin": "",
|
||||
"user": "S'inscrire"
|
||||
},
|
||||
"subheadings": {
|
||||
"stepOne": "Saisissez vos infos",
|
||||
"stepTwo": "Entrez votre e-mail",
|
||||
"stepThree": "Créez votre mot de passe"
|
||||
},
|
||||
"description": {
|
||||
"superAdmin": "Créez votre compte Super admin pour commencer",
|
||||
"user": ""
|
||||
},
|
||||
"gettingStartedButton": {
|
||||
"superAdmin": "S'inscrire avec E-mail",
|
||||
"user": ""
|
||||
},
|
||||
"termsAndPolicies": "En vous inscrivant, vous acceptez nos",
|
||||
"links": {
|
||||
"login": "Vous avez un compte ? <a>Se connecter</a>"
|
||||
},
|
||||
"toasts": {
|
||||
"success": ""
|
||||
}
|
||||
},
|
||||
"forgotPassword": {
|
||||
"heading": "Mot de passe oublié ?",
|
||||
"subheadings": {
|
||||
"stepOne": "Nous vous enverrons des instructions de réinitialisation.",
|
||||
"stepTwo": "Nous avons envoyé un lien de réinitialisation à <email/>",
|
||||
"stepThree": "Votre nouveau mot de passe doit être différent des anciens mots de passes utilisés.",
|
||||
"stepFour": "Votre mot de passe a été réinitialisé avec succès. Cliquez ci-dessous pour vous connecter."
|
||||
},
|
||||
"buttons": {
|
||||
"openEmail": "Ouvrir l'appli mail",
|
||||
"resetPassword": "Réinitialiser le mot de passe"
|
||||
},
|
||||
"imageAlts": {
|
||||
"passwordKey": "",
|
||||
"email": "",
|
||||
"lock": "",
|
||||
"passwordConfirm": ""
|
||||
},
|
||||
"links": {
|
||||
"login": "Retourner à <a>Se connecter</a>",
|
||||
"resend": "Vous n'avez pas reçu l'e-mail ? <a>Cliquez pour renvoyer</a>"
|
||||
},
|
||||
"toasts": {
|
||||
"sent": "",
|
||||
"emailNotFound": "",
|
||||
"redirect": "",
|
||||
"success": "",
|
||||
"error": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorPages": {
|
||||
"serverUnreachable": {
|
||||
"toasts": {
|
||||
"reconnected": "Reconnexion au serveur réussie.",
|
||||
"stillUnreachable": "Le serveur est toujours inaccessible. Veuillez réessayer plus tard."
|
||||
},
|
||||
"alertBox": "Erreur de connexion au serveur",
|
||||
"description": "",
|
||||
"retryButton": {
|
||||
"default": "",
|
||||
"processing": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"submit": "Envoyer",
|
||||
"title": "Titre",
|
||||
"distributedStatusHeaderText": "",
|
||||
@@ -192,8 +10,6 @@
|
||||
"settingsAppearanceDescription": "",
|
||||
"settingsThemeMode": "",
|
||||
"settingsLanguage": "Langue",
|
||||
"settingsDistributedUptime": "",
|
||||
"settingsDistributedUptimeDescription": "",
|
||||
"settingsEnabled": "Activé",
|
||||
"settingsDisabled": "Désactivé",
|
||||
"settingsHistoryAndMonitoring": "",
|
||||
@@ -213,8 +29,6 @@
|
||||
"settingsRemoveAllMonitorsButton": "",
|
||||
"settingsRemoveAllMonitorsDialogTitle": "",
|
||||
"settingsRemoveAllMonitorsDialogConfirm": "",
|
||||
"settingsWallet": "",
|
||||
"settingsWalletDescription": "",
|
||||
"settingsAbout": "",
|
||||
"settingsDevelopedBy": "",
|
||||
"settingsSave": "",
|
||||
@@ -257,10 +71,6 @@
|
||||
"distributedUptimeCreateIncidentDescription": "",
|
||||
"distributedUptimeCreateAdvancedSettings": "Paramètres avancés",
|
||||
"distributedUptimeDetailsNoMonitorHistory": "",
|
||||
"distributedUptimeDetailsFooterHeading": "",
|
||||
"distributedUptimeDetailsFooterBuilt": "",
|
||||
"distributedUptimeDetailsFooterSolana": "",
|
||||
"distributedUptimeDetailsMonitorHeader": "",
|
||||
"distributedUptimeDetailsStatusHeaderUptime": "",
|
||||
"distributedUptimeDetailsStatusHeaderLastUpdate": "",
|
||||
"notifications": {
|
||||
@@ -302,7 +112,33 @@
|
||||
"testSuccess": "La notification de test a été envoyée avec succès !",
|
||||
"testFailed": "Échec de l'envoi de la notification de test",
|
||||
"unsupportedType": "",
|
||||
"networkError": ""
|
||||
"networkError": "",
|
||||
"fallback": {
|
||||
"title": "",
|
||||
"checks": [""]
|
||||
},
|
||||
"createButton": "",
|
||||
"createTitle": "",
|
||||
"create": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"fetch": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"delete": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"edit": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"test": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
}
|
||||
},
|
||||
"testLocale": "",
|
||||
"add": "Ajouter",
|
||||
@@ -546,11 +382,6 @@
|
||||
"append": "L'après-midi est votre libre, rendons-le épique !",
|
||||
"overview": ""
|
||||
},
|
||||
"monitorStatus": {
|
||||
"up": "",
|
||||
"down": "",
|
||||
"paused": ""
|
||||
},
|
||||
"roles": {
|
||||
"superAdmin": "",
|
||||
"admin": "Admin",
|
||||
@@ -589,7 +420,6 @@
|
||||
"uptime": "",
|
||||
"pagespeed": "",
|
||||
"infrastructure": "",
|
||||
"distributedUptime": "",
|
||||
"incidents": "",
|
||||
"statusPages": "",
|
||||
"maintenance": "",
|
||||
@@ -602,7 +432,8 @@
|
||||
"profile": "",
|
||||
"password": "",
|
||||
"team": "",
|
||||
"logOut": "Déconnexion"
|
||||
"logOut": "Déconnexion",
|
||||
"notifications": ""
|
||||
},
|
||||
"settingsEmail": "Email",
|
||||
"settingsEmailDescription": "",
|
||||
@@ -633,7 +464,6 @@
|
||||
"saving": "Sauvegarde..."
|
||||
},
|
||||
"settingsEmailConnectionHost": "",
|
||||
"sendTestEmail": "",
|
||||
"emailSent": "",
|
||||
"failedToSendEmail": "",
|
||||
"settingsTestEmail": "",
|
||||
@@ -658,5 +488,257 @@
|
||||
"ping": "",
|
||||
"docker": "",
|
||||
"port": ""
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"appName": "",
|
||||
"monitoringAgentName": "",
|
||||
"buttons": {
|
||||
"toggleTheme": ""
|
||||
},
|
||||
"toasts": {
|
||||
"networkError": "",
|
||||
"checkConnection": "",
|
||||
"unknownError": ""
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"common": {
|
||||
"navigation": {
|
||||
"continue": "",
|
||||
"back": ""
|
||||
},
|
||||
"inputs": {
|
||||
"email": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"invalid": ""
|
||||
}
|
||||
},
|
||||
"password": {
|
||||
"label": "",
|
||||
"rules": {
|
||||
"length": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"special": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"number": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"uppercase": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"lowercase": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"match": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"uppercase": "",
|
||||
"lowercase": "",
|
||||
"number": "",
|
||||
"special": "",
|
||||
"incorrect": ""
|
||||
}
|
||||
},
|
||||
"passwordConfirm": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"different": ""
|
||||
}
|
||||
},
|
||||
"firstName": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
},
|
||||
"lastName": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"validation": ""
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"heading": "",
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": ""
|
||||
},
|
||||
"links": {
|
||||
"forgotPassword": "",
|
||||
"register": "",
|
||||
"forgotPasswordLink": "",
|
||||
"registerLink": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": "",
|
||||
"incorrectPassword": ""
|
||||
},
|
||||
"errors": {
|
||||
"password": {
|
||||
"incorrect": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"heading": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "",
|
||||
"stepThree": ""
|
||||
},
|
||||
"description": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"gettingStartedButton": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"termsAndPolicies": "",
|
||||
"links": {
|
||||
"login": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": ""
|
||||
}
|
||||
},
|
||||
"forgotPassword": {
|
||||
"heading": "",
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "",
|
||||
"stepThree": "",
|
||||
"stepFour": ""
|
||||
},
|
||||
"buttons": {
|
||||
"openEmail": "",
|
||||
"resetPassword": ""
|
||||
},
|
||||
"imageAlts": {
|
||||
"passwordKey": "",
|
||||
"email": "",
|
||||
"lock": "",
|
||||
"passwordConfirm": ""
|
||||
},
|
||||
"links": {
|
||||
"login": "",
|
||||
"resend": ""
|
||||
},
|
||||
"toasts": {
|
||||
"sent": "",
|
||||
"emailNotFound": "",
|
||||
"redirect": "",
|
||||
"success": "",
|
||||
"error": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorPages": {
|
||||
"serverUnreachable": {
|
||||
"toasts": {
|
||||
"reconnected": "",
|
||||
"stillUnreachable": ""
|
||||
},
|
||||
"alertBox": "",
|
||||
"description": "",
|
||||
"retryButton": {
|
||||
"default": "",
|
||||
"processing": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"createNotifications": {
|
||||
"title": "",
|
||||
"nameSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"nameLabel": "",
|
||||
"namePlaceholder": ""
|
||||
},
|
||||
"typeSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"typeLabel": ""
|
||||
},
|
||||
"emailSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"emailLabel": "",
|
||||
"emailPlaceholder": ""
|
||||
},
|
||||
"slackSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
},
|
||||
"pagerdutySettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"integrationKeyLabel": "",
|
||||
"integrationKeyPlaceholder": ""
|
||||
},
|
||||
"genericWebhookSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
},
|
||||
"discordSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
}
|
||||
},
|
||||
"notificationConfig": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"monitorStatus": {
|
||||
"checkingEvery": "",
|
||||
"withCaptureAgent": "",
|
||||
"up": "",
|
||||
"down": "",
|
||||
"paused": ""
|
||||
},
|
||||
"advancedMatching": "",
|
||||
"settingsEmailTLSServername": "",
|
||||
"settingsEmailIgnoreTLS": "",
|
||||
"settingsEmailRequireTLS": "",
|
||||
"settingsEmailRejectUnauthorized": "",
|
||||
"settingsEmailSecure": "",
|
||||
"settingsEmailPool": "",
|
||||
"sendTestNotifications": ""
|
||||
}
|
||||
|
||||
@@ -1,186 +1,4 @@
|
||||
{
|
||||
"common": {
|
||||
"appName": "Checkmate",
|
||||
"monitoringAgentName": "Capture",
|
||||
"buttons": {
|
||||
"toggleTheme": ""
|
||||
},
|
||||
"toasts": {
|
||||
"networkError": "Erro de rede",
|
||||
"checkConnection": "Verifique sua conexão",
|
||||
"unknownError": ""
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"common": {
|
||||
"navigation": {
|
||||
"continue": "Continuar",
|
||||
"back": "Voltar"
|
||||
},
|
||||
"inputs": {
|
||||
"email": {
|
||||
"label": "E-mail",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "Para continuar, insira seu endereço de e-mail",
|
||||
"invalid": "Por favor, insira um endereço de e-mail válido"
|
||||
}
|
||||
},
|
||||
"password": {
|
||||
"label": "Senha",
|
||||
"rules": {
|
||||
"length": {
|
||||
"beginning": "Deve ser pelo menos",
|
||||
"highlighted": "8 caracteres de comprimento"
|
||||
},
|
||||
"special": {
|
||||
"beginning": "Deve conter pelo menos",
|
||||
"highlighted": "um caractere especial"
|
||||
},
|
||||
"number": {
|
||||
"beginning": "Deve conter pelo menos",
|
||||
"highlighted": "um número"
|
||||
},
|
||||
"uppercase": {
|
||||
"beginning": "Deve conter pelo menos",
|
||||
"highlighted": "um caractere maiúsculo"
|
||||
},
|
||||
"lowercase": {
|
||||
"beginning": "Deve conter pelo menos",
|
||||
"highlighted": "um caractere minúsculo"
|
||||
},
|
||||
"match": {
|
||||
"beginning": "Confirme a senha",
|
||||
"highlighted": ""
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"uppercase": "",
|
||||
"lowercase": "",
|
||||
"number": "",
|
||||
"special": "",
|
||||
"incorrect": ""
|
||||
}
|
||||
},
|
||||
"passwordConfirm": {
|
||||
"label": "Confirme sua senha",
|
||||
"placeholder": "Digite a senha novamente para confirmar",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"different": ""
|
||||
}
|
||||
},
|
||||
"firstName": {
|
||||
"label": "Nome",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
},
|
||||
"lastName": {
|
||||
"label": "Sobrenome",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"validation": ""
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"heading": "Login",
|
||||
"subheadings": {
|
||||
"stepOne": "Insira seu e-mail",
|
||||
"stepTwo": "Digite sua senha"
|
||||
},
|
||||
"links": {
|
||||
"forgotPassword": "Esqueceu a senha? <a>Redefinir a senha</a>",
|
||||
"register": "Ainda não tem uma conta? <a>Registre-se aqui</a>"
|
||||
},
|
||||
"toasts": {
|
||||
"success": "Bem-vindo de volta! Você fez login com sucesso.",
|
||||
"incorrectPassword": ""
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"heading": {
|
||||
"superAdmin": "",
|
||||
"user": "Inscreva-se"
|
||||
},
|
||||
"subheadings": {
|
||||
"stepOne": "Insira seus dados pessoais",
|
||||
"stepTwo": "Insira seu e-mail",
|
||||
"stepThree": "Criar sua senha"
|
||||
},
|
||||
"description": {
|
||||
"superAdmin": "Crie sua conta de super admin para começar",
|
||||
"user": ""
|
||||
},
|
||||
"gettingStartedButton": {
|
||||
"superAdmin": "Criar conta de super admin",
|
||||
"user": ""
|
||||
},
|
||||
"termsAndPolicies": "Ao criar uma conta, você concorda com nossos <a1>Termos de Serviço</a1> e <a2>Política de Privacidade</a2>.",
|
||||
"links": {
|
||||
"login": "Já possui uma conta? <a>Login</a>"
|
||||
},
|
||||
"toasts": {
|
||||
"success": ""
|
||||
}
|
||||
},
|
||||
"forgotPassword": {
|
||||
"heading": "Esqueceu a senha?",
|
||||
"subheadings": {
|
||||
"stepOne": "Não se preocupe, enviaremos instruções de redefinição.",
|
||||
"stepTwo": "Enviamos um link para redefinir a senha para <email/>",
|
||||
"stepThree": "Sua nova senha deve ser diferente das senhas usadas anteriormente.",
|
||||
"stepFour": "Sua senha foi redefinida com sucesso. Clique abaixo para fazer login magicamente."
|
||||
},
|
||||
"buttons": {
|
||||
"openEmail": "Abra o aplicativo de e-mail",
|
||||
"resetPassword": "Redefinir senha"
|
||||
},
|
||||
"imageAlts": {
|
||||
"passwordKey": "",
|
||||
"email": "",
|
||||
"lock": "",
|
||||
"passwordConfirm": ""
|
||||
},
|
||||
"links": {
|
||||
"login": "Volte para <a>Login</a>",
|
||||
"resend": "Não recebeu o e-mail? <a>Clique para reenviar</a>"
|
||||
},
|
||||
"toasts": {
|
||||
"sent": "",
|
||||
"emailNotFound": "",
|
||||
"redirect": "",
|
||||
"success": "",
|
||||
"error": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorPages": {
|
||||
"serverUnreachable": {
|
||||
"toasts": {
|
||||
"reconnected": "Reconectado ao servidor com sucesso.",
|
||||
"stillUnreachable": "O servidor ainda está inacessível. Tente novamente mais tarde."
|
||||
},
|
||||
"alertBox": "Erro de conexão com o servidor",
|
||||
"description": "Não conseguimos conectar ao servidor. Verifique sua conexão com a internet ou sua configuração de implantação se o problema persistir.",
|
||||
"retryButton": {
|
||||
"default": "Reconectar",
|
||||
"processing": "Conectando..."
|
||||
}
|
||||
}
|
||||
},
|
||||
"submit": "Enviar",
|
||||
"title": "Título",
|
||||
"distributedStatusHeaderText": "Cobertura em tempo real e em dispositivos reais",
|
||||
@@ -192,8 +10,6 @@
|
||||
"settingsAppearanceDescription": "Alterne entre o modo claro e escuro ou altere o idioma da interface do usuário",
|
||||
"settingsThemeMode": "Tema",
|
||||
"settingsLanguage": "Linguagem",
|
||||
"settingsDistributedUptime": "Disponibilidade distribuída",
|
||||
"settingsDistributedUptimeDescription": "Habilitar/desabilitar o monitoramento de tempo de disponibilidade distribuído.",
|
||||
"settingsEnabled": "Habilitado",
|
||||
"settingsDisabled": "Desabilitado",
|
||||
"settingsHistoryAndMonitoring": "Histórico de monitoramento",
|
||||
@@ -213,7 +29,6 @@
|
||||
"settingsRemoveAllMonitorsButton": "Remover todos os monitores",
|
||||
"settingsRemoveAllMonitorsDialogTitle": "Você deseja remover todos os monitores?",
|
||||
"settingsRemoveAllMonitorsDialogConfirm": "Sim, remova todos os monitores",
|
||||
"settingsWallet": "Carteira",
|
||||
"settingsAbout": "Sobre",
|
||||
"settingsDevelopedBy": "Desenvolvido pela Bluewave Labs.",
|
||||
"settingsSave": "Salvar",
|
||||
@@ -256,10 +71,6 @@
|
||||
"distributedUptimeCreateIncidentDescription": "Quando ocorrer um incidente, notifique os usuários.",
|
||||
"distributedUptimeCreateAdvancedSettings": "Configurações avançadas",
|
||||
"distributedUptimeDetailsNoMonitorHistory": "Ainda não há histórico de verificações para este monitor.",
|
||||
"distributedUptimeDetailsFooterHeading": "Feito com ❤️ por UpRock e Bluewave Labs",
|
||||
"distributedUptimeDetailsFooterBuilt": "Construído com",
|
||||
"distributedUptimeDetailsFooterSolana": "Solana",
|
||||
"distributedUptimeDetailsMonitorHeader": "Monitoramento de Uptime distribuído com tecnologia DePIN",
|
||||
"distributedUptimeDetailsStatusHeaderUptime": "Uptime:",
|
||||
"distributedUptimeDetailsStatusHeaderLastUpdate": "Última atualização",
|
||||
"notifications": {
|
||||
@@ -301,7 +112,33 @@
|
||||
"testSuccess": "Notificação de teste enviada com sucesso!",
|
||||
"testFailed": "Falha ao enviar notificação de teste",
|
||||
"unsupportedType": "Tipo de notificação não suportado",
|
||||
"networkError": "Ocorreu um erro de rede"
|
||||
"networkError": "Ocorreu um erro de rede",
|
||||
"fallback": {
|
||||
"title": "",
|
||||
"checks": [""]
|
||||
},
|
||||
"createButton": "",
|
||||
"createTitle": "",
|
||||
"create": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"fetch": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"delete": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"edit": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"test": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
}
|
||||
},
|
||||
"testLocale": "testLocale",
|
||||
"add": "Adicionar",
|
||||
@@ -545,11 +382,6 @@
|
||||
"append": "A tarde é seu playground — vamos torná-la épica!",
|
||||
"overview": "Aqui está uma visão geral dos seus monitores {{type}}."
|
||||
},
|
||||
"monitorStatus": {
|
||||
"up": "Online",
|
||||
"down": "Offline",
|
||||
"paused": "pausado"
|
||||
},
|
||||
"roles": {
|
||||
"superAdmin": "Super Admin",
|
||||
"admin": "Admin",
|
||||
@@ -588,7 +420,6 @@
|
||||
"uptime": "Uptime",
|
||||
"pagespeed": "Pagespeed",
|
||||
"infrastructure": "Infraestrutura",
|
||||
"distributedUptime": "Uptime distribuído",
|
||||
"incidents": "Incidentes",
|
||||
"statusPages": "Pagina de status",
|
||||
"maintenance": "Manutenção",
|
||||
@@ -601,7 +432,8 @@
|
||||
"profile": "Perfil",
|
||||
"password": "Senha",
|
||||
"team": "Equipe",
|
||||
"logOut": "Sair"
|
||||
"logOut": "Sair",
|
||||
"notifications": ""
|
||||
},
|
||||
"settingsEmail": "E-mail",
|
||||
"settingsEmailDescription": "Configurações de e-mail do seu sistema. Elas são usadas para enviar notificações e alertas.",
|
||||
@@ -632,7 +464,6 @@
|
||||
"saving": "Salvando..."
|
||||
},
|
||||
"settingsEmailConnectionHost": "Host de conexão de e-mail - Nome do host a ser usado na saudação HELO/EHLO",
|
||||
"sendTestEmail": "Enviar e-mail de teste",
|
||||
"emailSent": "E-mail enviado com sucesso",
|
||||
"failedToSendEmail": "Falha ao enviar e-mail",
|
||||
"settingsTestEmail": "Enviar e-mail de teste",
|
||||
@@ -657,5 +488,257 @@
|
||||
"ping": "",
|
||||
"docker": "",
|
||||
"port": ""
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"appName": "",
|
||||
"monitoringAgentName": "",
|
||||
"buttons": {
|
||||
"toggleTheme": ""
|
||||
},
|
||||
"toasts": {
|
||||
"networkError": "",
|
||||
"checkConnection": "",
|
||||
"unknownError": ""
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"common": {
|
||||
"navigation": {
|
||||
"continue": "",
|
||||
"back": ""
|
||||
},
|
||||
"inputs": {
|
||||
"email": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"invalid": ""
|
||||
}
|
||||
},
|
||||
"password": {
|
||||
"label": "",
|
||||
"rules": {
|
||||
"length": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"special": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"number": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"uppercase": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"lowercase": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"match": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"uppercase": "",
|
||||
"lowercase": "",
|
||||
"number": "",
|
||||
"special": "",
|
||||
"incorrect": ""
|
||||
}
|
||||
},
|
||||
"passwordConfirm": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"different": ""
|
||||
}
|
||||
},
|
||||
"firstName": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
},
|
||||
"lastName": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"validation": ""
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"heading": "",
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": ""
|
||||
},
|
||||
"links": {
|
||||
"forgotPassword": "",
|
||||
"register": "",
|
||||
"forgotPasswordLink": "",
|
||||
"registerLink": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": "",
|
||||
"incorrectPassword": ""
|
||||
},
|
||||
"errors": {
|
||||
"password": {
|
||||
"incorrect": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"heading": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "",
|
||||
"stepThree": ""
|
||||
},
|
||||
"description": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"gettingStartedButton": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"termsAndPolicies": "",
|
||||
"links": {
|
||||
"login": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": ""
|
||||
}
|
||||
},
|
||||
"forgotPassword": {
|
||||
"heading": "",
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "",
|
||||
"stepThree": "",
|
||||
"stepFour": ""
|
||||
},
|
||||
"buttons": {
|
||||
"openEmail": "",
|
||||
"resetPassword": ""
|
||||
},
|
||||
"imageAlts": {
|
||||
"passwordKey": "",
|
||||
"email": "",
|
||||
"lock": "",
|
||||
"passwordConfirm": ""
|
||||
},
|
||||
"links": {
|
||||
"login": "",
|
||||
"resend": ""
|
||||
},
|
||||
"toasts": {
|
||||
"sent": "",
|
||||
"emailNotFound": "",
|
||||
"redirect": "",
|
||||
"success": "",
|
||||
"error": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorPages": {
|
||||
"serverUnreachable": {
|
||||
"toasts": {
|
||||
"reconnected": "",
|
||||
"stillUnreachable": ""
|
||||
},
|
||||
"alertBox": "",
|
||||
"description": "",
|
||||
"retryButton": {
|
||||
"default": "",
|
||||
"processing": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"createNotifications": {
|
||||
"title": "",
|
||||
"nameSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"nameLabel": "",
|
||||
"namePlaceholder": ""
|
||||
},
|
||||
"typeSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"typeLabel": ""
|
||||
},
|
||||
"emailSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"emailLabel": "",
|
||||
"emailPlaceholder": ""
|
||||
},
|
||||
"slackSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
},
|
||||
"pagerdutySettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"integrationKeyLabel": "",
|
||||
"integrationKeyPlaceholder": ""
|
||||
},
|
||||
"genericWebhookSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
},
|
||||
"discordSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
}
|
||||
},
|
||||
"notificationConfig": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"monitorStatus": {
|
||||
"checkingEvery": "",
|
||||
"withCaptureAgent": "",
|
||||
"up": "",
|
||||
"down": "",
|
||||
"paused": ""
|
||||
},
|
||||
"advancedMatching": "",
|
||||
"settingsEmailTLSServername": "",
|
||||
"settingsEmailIgnoreTLS": "",
|
||||
"settingsEmailRequireTLS": "",
|
||||
"settingsEmailRejectUnauthorized": "",
|
||||
"settingsEmailSecure": "",
|
||||
"settingsEmailPool": "",
|
||||
"sendTestNotifications": ""
|
||||
}
|
||||
|
||||
@@ -1,186 +1,4 @@
|
||||
{
|
||||
"common": {
|
||||
"appName": "Checkmate",
|
||||
"monitoringAgentName": "Capture",
|
||||
"buttons": {
|
||||
"toggleTheme": ""
|
||||
},
|
||||
"toasts": {
|
||||
"networkError": "Ошибка сети",
|
||||
"checkConnection": "Пожалуйста, проверьте ваше соединение",
|
||||
"unknownError": ""
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"common": {
|
||||
"navigation": {
|
||||
"continue": "Продолжить",
|
||||
"back": "Назад"
|
||||
},
|
||||
"inputs": {
|
||||
"email": {
|
||||
"label": "Почта",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "Чтобы продолжить, пожалуйста, введите свой адрес электронной почты",
|
||||
"invalid": "Пожалуйста, введите действительный адрес электронной почты"
|
||||
}
|
||||
},
|
||||
"password": {
|
||||
"label": "пароль",
|
||||
"rules": {
|
||||
"length": {
|
||||
"beginning": "Должно быть как минимум",
|
||||
"highlighted": "длиной 8 символов"
|
||||
},
|
||||
"special": {
|
||||
"beginning": "Должен содержать как минимум",
|
||||
"highlighted": "один специальный символ"
|
||||
},
|
||||
"number": {
|
||||
"beginning": "Должен содержать как минимум",
|
||||
"highlighted": "одно число"
|
||||
},
|
||||
"uppercase": {
|
||||
"beginning": "Должен содержать как минимум",
|
||||
"highlighted": "один верхний символ"
|
||||
},
|
||||
"lowercase": {
|
||||
"beginning": "Должен содержать как минимум",
|
||||
"highlighted": "один нижний символ"
|
||||
},
|
||||
"match": {
|
||||
"beginning": "Подтвердите пароль и пароль",
|
||||
"highlighted": ""
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"uppercase": "",
|
||||
"lowercase": "",
|
||||
"number": "",
|
||||
"special": "",
|
||||
"incorrect": ""
|
||||
}
|
||||
},
|
||||
"passwordConfirm": {
|
||||
"label": "Подтвердите пароль",
|
||||
"placeholder": "Подтвердите ваш пароль",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"different": ""
|
||||
}
|
||||
},
|
||||
"firstName": {
|
||||
"label": "Имя",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
},
|
||||
"lastName": {
|
||||
"label": "Фамилия",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"validation": ""
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"heading": "Войти",
|
||||
"subheadings": {
|
||||
"stepOne": "Введите свой email",
|
||||
"stepTwo": "Введите свой пароль"
|
||||
},
|
||||
"links": {
|
||||
"forgotPassword": "Забыли пароль? <a>Сбросить пароль</a>",
|
||||
"register": "У вас нет учетной записи? <a>Зарегистрируйтесь здесь</a>"
|
||||
},
|
||||
"toasts": {
|
||||
"success": "Добро пожаловать обратно! Вы успешно вошли в систему.",
|
||||
"incorrectPassword": ""
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"heading": {
|
||||
"superAdmin": "",
|
||||
"user": "Зарегистрироваться"
|
||||
},
|
||||
"subheadings": {
|
||||
"stepOne": "Введите свои личные данные",
|
||||
"stepTwo": "Введите свой email",
|
||||
"stepThree": "Создайте свой пароль"
|
||||
},
|
||||
"description": {
|
||||
"superAdmin": "Создайте учетную запись суперадминистратора, чтобы начать работу",
|
||||
"user": ""
|
||||
},
|
||||
"gettingStartedButton": {
|
||||
"superAdmin": "Зарегистрироваться по электронной почте",
|
||||
"user": ""
|
||||
},
|
||||
"termsAndPolicies": "Регистрируясь, вы соглашаетесь с нашими",
|
||||
"links": {
|
||||
"login": "Уже есть аккаунт? <a>Войти</a>"
|
||||
},
|
||||
"toasts": {
|
||||
"success": ""
|
||||
}
|
||||
},
|
||||
"forgotPassword": {
|
||||
"heading": "Забыли пароль?",
|
||||
"subheadings": {
|
||||
"stepOne": "Не беспокойтесь, мы вышлем вам инструкции по сбросу настроек.",
|
||||
"stepTwo": "Мы отправили ссылку для сброса пароля <email/>",
|
||||
"stepThree": "Ваш новый пароль должен отличаться от ранее использованных паролей.",
|
||||
"stepFour": "Ваш пароль успешно сброшен. Нажмите ниже, чтобы войти в систему магическим образом."
|
||||
},
|
||||
"buttons": {
|
||||
"openEmail": "Откройте приложение почты",
|
||||
"resetPassword": "Сбросить пароль"
|
||||
},
|
||||
"imageAlts": {
|
||||
"passwordKey": "",
|
||||
"email": "",
|
||||
"lock": "",
|
||||
"passwordConfirm": ""
|
||||
},
|
||||
"links": {
|
||||
"login": "Назад к <a>Войти</a>",
|
||||
"resend": "Не получили письмо? <a>Нажмите, чтобы отправить повторно</a>"
|
||||
},
|
||||
"toasts": {
|
||||
"sent": "",
|
||||
"emailNotFound": "",
|
||||
"redirect": "",
|
||||
"success": "",
|
||||
"error": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorPages": {
|
||||
"serverUnreachable": {
|
||||
"toasts": {
|
||||
"reconnected": "Успешно подключен к серверу.",
|
||||
"stillUnreachable": "Сервер по-прежнему недоступен. Пожалуйста, повторите попытку позже."
|
||||
},
|
||||
"alertBox": "Ошибка подключения к серверу",
|
||||
"description": "Нам не удается подключиться к серверу. Пожалуйста, проверьте подключение к Интернету или конфигурацию вашего развертывания, если проблема не устранена.",
|
||||
"retryButton": {
|
||||
"default": "Повторите попытку подключения",
|
||||
"processing": "Подключение..."
|
||||
}
|
||||
}
|
||||
},
|
||||
"submit": "Подтвердить",
|
||||
"title": "Название",
|
||||
"distributedStatusHeaderText": "Охват реального времени и реального устройства",
|
||||
@@ -253,9 +71,6 @@
|
||||
"distributedUptimeCreateIncidentDescription": "В случае возникновения инцидента сообщите об этом пользователям.",
|
||||
"distributedUptimeCreateAdvancedSettings": "Расширенные настройки",
|
||||
"distributedUptimeDetailsNoMonitorHistory": "Для этого монитора пока нет истории проверок.",
|
||||
"distributedUptimeDetailsFooterHeading": "Made with ❤️ by UpRock & Bluewave Labs",
|
||||
"distributedUptimeDetailsFooterBuilt": "Built on",
|
||||
"distributedUptimeDetailsFooterSolana": "Solana",
|
||||
"distributedUptimeDetailsStatusHeaderUptime": "Аптайм:",
|
||||
"distributedUptimeDetailsStatusHeaderLastUpdate": "Последнее обновление",
|
||||
"notifications": {
|
||||
@@ -297,7 +112,33 @@
|
||||
"testSuccess": "Уведомление о тестировании отправлено успешно!",
|
||||
"testFailed": "Не удалось отправить тестовое уведомление",
|
||||
"unsupportedType": "Неподдерживаемый тип уведомления",
|
||||
"networkError": "Произошла сетевая ошибка"
|
||||
"networkError": "Произошла сетевая ошибка",
|
||||
"fallback": {
|
||||
"title": "",
|
||||
"checks": [""]
|
||||
},
|
||||
"createButton": "",
|
||||
"createTitle": "",
|
||||
"create": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"fetch": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"delete": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"edit": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"test": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
}
|
||||
},
|
||||
"testLocale": "testLocale",
|
||||
"add": "Добавить",
|
||||
@@ -541,11 +382,6 @@
|
||||
"append": "Вторая половина дня — это ваша игровая площадка - давайте сделаем ее эпичной!",
|
||||
"overview": "Вот обзор ваших мониторов {{type}}."
|
||||
},
|
||||
"monitorStatus": {
|
||||
"up": "доступен",
|
||||
"down": "недоступен",
|
||||
"paused": "остановлен"
|
||||
},
|
||||
"roles": {
|
||||
"superAdmin": "Главный админ",
|
||||
"admin": "Админ",
|
||||
@@ -584,7 +420,6 @@
|
||||
"uptime": "Аптайм",
|
||||
"pagespeed": "Pagespeed",
|
||||
"infrastructure": "Инфраструктура",
|
||||
"distributedUptime": "Распределенный Аптайм",
|
||||
"incidents": "Инциденты",
|
||||
"statusPages": "Страницы статуса",
|
||||
"maintenance": "Обслуживание",
|
||||
@@ -597,7 +432,8 @@
|
||||
"profile": "Профиль",
|
||||
"password": "Пароль",
|
||||
"team": "Команда",
|
||||
"logOut": "Выйти"
|
||||
"logOut": "Выйти",
|
||||
"notifications": ""
|
||||
},
|
||||
"settingsEmail": "Настройки Email",
|
||||
"settingsEmailDescription": "Настройка параметров email",
|
||||
@@ -628,7 +464,6 @@
|
||||
"saving": "Сохранение..."
|
||||
},
|
||||
"settingsEmailConnectionHost": "",
|
||||
"sendTestEmail": "",
|
||||
"emailSent": "",
|
||||
"failedToSendEmail": "",
|
||||
"settingsTestEmail": "",
|
||||
@@ -653,5 +488,257 @@
|
||||
"ping": "",
|
||||
"docker": "",
|
||||
"port": ""
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"appName": "",
|
||||
"monitoringAgentName": "",
|
||||
"buttons": {
|
||||
"toggleTheme": ""
|
||||
},
|
||||
"toasts": {
|
||||
"networkError": "",
|
||||
"checkConnection": "",
|
||||
"unknownError": ""
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"common": {
|
||||
"navigation": {
|
||||
"continue": "",
|
||||
"back": ""
|
||||
},
|
||||
"inputs": {
|
||||
"email": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"invalid": ""
|
||||
}
|
||||
},
|
||||
"password": {
|
||||
"label": "",
|
||||
"rules": {
|
||||
"length": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"special": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"number": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"uppercase": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"lowercase": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"match": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"uppercase": "",
|
||||
"lowercase": "",
|
||||
"number": "",
|
||||
"special": "",
|
||||
"incorrect": ""
|
||||
}
|
||||
},
|
||||
"passwordConfirm": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"different": ""
|
||||
}
|
||||
},
|
||||
"firstName": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
},
|
||||
"lastName": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"validation": ""
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"heading": "",
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": ""
|
||||
},
|
||||
"links": {
|
||||
"forgotPassword": "",
|
||||
"register": "",
|
||||
"forgotPasswordLink": "",
|
||||
"registerLink": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": "",
|
||||
"incorrectPassword": ""
|
||||
},
|
||||
"errors": {
|
||||
"password": {
|
||||
"incorrect": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"heading": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "",
|
||||
"stepThree": ""
|
||||
},
|
||||
"description": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"gettingStartedButton": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"termsAndPolicies": "",
|
||||
"links": {
|
||||
"login": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": ""
|
||||
}
|
||||
},
|
||||
"forgotPassword": {
|
||||
"heading": "",
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "",
|
||||
"stepThree": "",
|
||||
"stepFour": ""
|
||||
},
|
||||
"buttons": {
|
||||
"openEmail": "",
|
||||
"resetPassword": ""
|
||||
},
|
||||
"imageAlts": {
|
||||
"passwordKey": "",
|
||||
"email": "",
|
||||
"lock": "",
|
||||
"passwordConfirm": ""
|
||||
},
|
||||
"links": {
|
||||
"login": "",
|
||||
"resend": ""
|
||||
},
|
||||
"toasts": {
|
||||
"sent": "",
|
||||
"emailNotFound": "",
|
||||
"redirect": "",
|
||||
"success": "",
|
||||
"error": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorPages": {
|
||||
"serverUnreachable": {
|
||||
"toasts": {
|
||||
"reconnected": "",
|
||||
"stillUnreachable": ""
|
||||
},
|
||||
"alertBox": "",
|
||||
"description": "",
|
||||
"retryButton": {
|
||||
"default": "",
|
||||
"processing": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"createNotifications": {
|
||||
"title": "",
|
||||
"nameSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"nameLabel": "",
|
||||
"namePlaceholder": ""
|
||||
},
|
||||
"typeSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"typeLabel": ""
|
||||
},
|
||||
"emailSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"emailLabel": "",
|
||||
"emailPlaceholder": ""
|
||||
},
|
||||
"slackSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
},
|
||||
"pagerdutySettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"integrationKeyLabel": "",
|
||||
"integrationKeyPlaceholder": ""
|
||||
},
|
||||
"genericWebhookSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
},
|
||||
"discordSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
}
|
||||
},
|
||||
"notificationConfig": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"monitorStatus": {
|
||||
"checkingEvery": "",
|
||||
"withCaptureAgent": "",
|
||||
"up": "",
|
||||
"down": "",
|
||||
"paused": ""
|
||||
},
|
||||
"advancedMatching": "",
|
||||
"settingsEmailTLSServername": "",
|
||||
"settingsEmailIgnoreTLS": "",
|
||||
"settingsEmailRequireTLS": "",
|
||||
"settingsEmailRejectUnauthorized": "",
|
||||
"settingsEmailSecure": "",
|
||||
"settingsEmailPool": "",
|
||||
"sendTestNotifications": ""
|
||||
}
|
||||
|
||||
@@ -1,186 +1,4 @@
|
||||
{
|
||||
"common": {
|
||||
"appName": "Checkmate",
|
||||
"monitoringAgentName": "Capture",
|
||||
"buttons": {
|
||||
"toggleTheme": ""
|
||||
},
|
||||
"toasts": {
|
||||
"networkError": "Ağ hatası",
|
||||
"checkConnection": "Lütfen bağlantınızı kontrol edin",
|
||||
"unknownError": ""
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"common": {
|
||||
"navigation": {
|
||||
"continue": "Devam Et",
|
||||
"back": "Geri"
|
||||
},
|
||||
"inputs": {
|
||||
"email": {
|
||||
"label": "E-posta",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "Devam etmek için lütfen e-posta adresinizi girin",
|
||||
"invalid": "Lütfen geçerli bir eposta hesabı girin"
|
||||
}
|
||||
},
|
||||
"password": {
|
||||
"label": "Parola",
|
||||
"rules": {
|
||||
"length": {
|
||||
"beginning": "En az",
|
||||
"highlighted": "8 karakter uzunluğunda olmalı"
|
||||
},
|
||||
"special": {
|
||||
"beginning": "En az içermeli",
|
||||
"highlighted": "bir özel karakter"
|
||||
},
|
||||
"number": {
|
||||
"beginning": "En az içermeli",
|
||||
"highlighted": "bir rakam"
|
||||
},
|
||||
"uppercase": {
|
||||
"beginning": "En az içermeli",
|
||||
"highlighted": "bir büyük harf"
|
||||
},
|
||||
"lowercase": {
|
||||
"beginning": "En az içermeli",
|
||||
"highlighted": "bir küçük harf"
|
||||
},
|
||||
"match": {
|
||||
"beginning": "Onay şifresi ve şifre",
|
||||
"highlighted": ""
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"uppercase": "",
|
||||
"lowercase": "",
|
||||
"number": "",
|
||||
"special": "",
|
||||
"incorrect": ""
|
||||
}
|
||||
},
|
||||
"passwordConfirm": {
|
||||
"label": "Parolayı onayla",
|
||||
"placeholder": "Parolanızı onaylayın",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"different": ""
|
||||
}
|
||||
},
|
||||
"firstName": {
|
||||
"label": "İsim",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
},
|
||||
"lastName": {
|
||||
"label": "Soyisim",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"validation": ""
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"heading": "Giriş Yap",
|
||||
"subheadings": {
|
||||
"stepOne": "E-posta adresinizi girin",
|
||||
"stepTwo": "Parolanızı girin"
|
||||
},
|
||||
"links": {
|
||||
"forgotPassword": "Parolanızı mı unuttunuz? <a>Parola sıfırla</a>",
|
||||
"register": "Bir hesabınız yok mu? <a>Buradan kayıt olun</a>"
|
||||
},
|
||||
"toasts": {
|
||||
"success": "Tekrar hoş geldiniz! Başarıyla giriş yaptınız.",
|
||||
"incorrectPassword": ""
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"heading": {
|
||||
"superAdmin": "",
|
||||
"user": "Kayıt Ol"
|
||||
},
|
||||
"subheadings": {
|
||||
"stepOne": "Kişisel bilgilerinizi girin",
|
||||
"stepTwo": "E-posta adresinizi girin",
|
||||
"stepThree": "Parolanızı oluşturun"
|
||||
},
|
||||
"description": {
|
||||
"superAdmin": "Super admin hesabınızı oluşturmak için devam edin",
|
||||
"user": ""
|
||||
},
|
||||
"gettingStartedButton": {
|
||||
"superAdmin": "E-posta ile kayıt ol",
|
||||
"user": ""
|
||||
},
|
||||
"termsAndPolicies": "",
|
||||
"links": {
|
||||
"login": "Zaten hesabınız var mı? <a>Giriş yap</a>"
|
||||
},
|
||||
"toasts": {
|
||||
"success": ""
|
||||
}
|
||||
},
|
||||
"forgotPassword": {
|
||||
"heading": "Parolanızı mı unuttunuz?",
|
||||
"subheadings": {
|
||||
"stepOne": "Endişelenmeyin, size sıfırlama talimatlarını göndereceğiz.",
|
||||
"stepTwo": "<email/> adresine şifre sıfırlama bağlantısı gönderdik",
|
||||
"stepThree": "Yeni şifreniz daha önce kullanılan şifrelerden farklı olmalıdır.",
|
||||
"stepFour": "Parolanız başarıyla sıfırlandı. Otomatik olarak giriş yapmak için aşağıya tıklayın."
|
||||
},
|
||||
"buttons": {
|
||||
"openEmail": "Eposta uygulamasını aç",
|
||||
"resetPassword": "Parola sıfırla"
|
||||
},
|
||||
"imageAlts": {
|
||||
"passwordKey": "",
|
||||
"email": "",
|
||||
"lock": "",
|
||||
"passwordConfirm": ""
|
||||
},
|
||||
"links": {
|
||||
"login": "Geri dön <a>Giriş Yap</a>",
|
||||
"resend": "E-posta almadınız mı? <a>Yeniden göndermek için tıklayın</a>"
|
||||
},
|
||||
"toasts": {
|
||||
"sent": "",
|
||||
"emailNotFound": "",
|
||||
"redirect": "",
|
||||
"success": "",
|
||||
"error": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorPages": {
|
||||
"serverUnreachable": {
|
||||
"toasts": {
|
||||
"reconnected": "Sunucuya başarıyla yeniden bağlanıldı.",
|
||||
"stillUnreachable": "Sunucuya hala ulaşılamıyor. Lütfen daha sonra tekrar deneyin."
|
||||
},
|
||||
"alertBox": "Sunucu bağlantı hatası",
|
||||
"description": "Sunucuya bağlanamıyoruz. Lütfen internet bağlantınızı kontrol edin veya sorun devam ederse dağıtım yapılandırmanızı doğrulayın.",
|
||||
"retryButton": {
|
||||
"default": "Bağlantıyı yeniden deneyin",
|
||||
"processing": "Bağlanıyor..."
|
||||
}
|
||||
}
|
||||
},
|
||||
"submit": "Gönder",
|
||||
"title": "Başlık",
|
||||
"distributedStatusHeaderText": "Gerçek zamanlı, Gerçek cihazlar kapsamı",
|
||||
@@ -192,8 +10,6 @@
|
||||
"settingsAppearanceDescription": "Açık ve koyu mod arasında geçiş yapın veya kullanıcı arayüzü dilini değiştirin",
|
||||
"settingsThemeMode": "Tema",
|
||||
"settingsLanguage": "Dil",
|
||||
"settingsDistributedUptime": "Dağıtılmış çalışma süresi",
|
||||
"settingsDistributedUptimeDescription": "Dağıtılmış çalışma süresi izlemeyi etkinleştirin/devre dışı bırakın.",
|
||||
"settingsEnabled": "Etkin",
|
||||
"settingsDisabled": "Devre dışı",
|
||||
"settingsHistoryAndMonitoring": "Geçmiş ve izleme",
|
||||
@@ -213,8 +29,6 @@
|
||||
"settingsRemoveAllMonitorsButton": "Tüm monitörleri kaldır",
|
||||
"settingsRemoveAllMonitorsDialogTitle": "Tüm monitörleri kaldırmak istiyor musunuz?",
|
||||
"settingsRemoveAllMonitorsDialogConfirm": "Evet, tüm monitörleri temizle",
|
||||
"settingsWallet": "Cüzdan",
|
||||
"settingsWalletDescription": "Cüzdanınızı buradan bağlayın. Bu, Dağıtılmış Çalışma Süresi monitörünün küresel olarak birden çok düğüme bağlanması için gereklidir.",
|
||||
"settingsAbout": "Hakkında",
|
||||
"settingsDevelopedBy": "Bluewave Labs tarafından geliştirilmiştir.",
|
||||
"settingsSave": "Kaydet",
|
||||
@@ -257,10 +71,6 @@
|
||||
"distributedUptimeCreateIncidentDescription": "Bir olay olduğunda kullanıcıları bilgilendir.",
|
||||
"distributedUptimeCreateAdvancedSettings": "Gelişmiş ayarlar",
|
||||
"distributedUptimeDetailsNoMonitorHistory": "Bu monitör için henüz bir denetim günlüğü oluşturulmadı.",
|
||||
"distributedUptimeDetailsFooterHeading": "UpRock & Bluewave Labs tarafından geliştirildi",
|
||||
"distributedUptimeDetailsFooterBuilt": "Altyapı",
|
||||
"distributedUptimeDetailsFooterSolana": "Solana",
|
||||
"distributedUptimeDetailsMonitorHeader": "Depin Destekli Dağıtık Kesintisizlik İzleme",
|
||||
"distributedUptimeDetailsStatusHeaderUptime": "Erişilebilirlik",
|
||||
"distributedUptimeDetailsStatusHeaderLastUpdate": "Son güncelleme",
|
||||
"notifications": {
|
||||
@@ -302,7 +112,33 @@
|
||||
"testSuccess": "Test bildirimi başarıyla gönderildi",
|
||||
"testFailed": "Test bildirimi gönderilemedi",
|
||||
"unsupportedType": "Desteklenmeyen bildirim türü",
|
||||
"networkError": "Ağ hatası oluştu"
|
||||
"networkError": "Ağ hatası oluştu",
|
||||
"fallback": {
|
||||
"title": "",
|
||||
"checks": [""]
|
||||
},
|
||||
"createButton": "",
|
||||
"createTitle": "",
|
||||
"create": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"fetch": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"delete": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"edit": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"test": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
}
|
||||
},
|
||||
"testLocale": "TEST13 UPLOAD",
|
||||
"add": "Ekle",
|
||||
@@ -546,11 +382,6 @@
|
||||
"append": "",
|
||||
"overview": ""
|
||||
},
|
||||
"monitorStatus": {
|
||||
"up": "",
|
||||
"down": "",
|
||||
"paused": ""
|
||||
},
|
||||
"roles": {
|
||||
"superAdmin": "",
|
||||
"admin": "",
|
||||
@@ -589,7 +420,6 @@
|
||||
"uptime": "",
|
||||
"pagespeed": "",
|
||||
"infrastructure": "",
|
||||
"distributedUptime": "",
|
||||
"incidents": "",
|
||||
"statusPages": "",
|
||||
"maintenance": "",
|
||||
@@ -602,7 +432,8 @@
|
||||
"profile": "",
|
||||
"password": "",
|
||||
"team": "",
|
||||
"logOut": "Çıkış yap"
|
||||
"logOut": "Çıkış yap",
|
||||
"notifications": ""
|
||||
},
|
||||
"settingsEmail": "",
|
||||
"settingsEmailDescription": "",
|
||||
@@ -633,7 +464,6 @@
|
||||
"saving": "Kaydediliyor..."
|
||||
},
|
||||
"settingsEmailConnectionHost": "E-posta bağlantı ana bilgisayarı - HELO/EHLO selamlamasında kullanılacak ana bilgisayar adı",
|
||||
"sendTestEmail": "Test maili gönder",
|
||||
"emailSent": "E-posta başarı ile gönderildi.",
|
||||
"failedToSendEmail": "E-posta gönderimi başarısız.",
|
||||
"settingsTestEmail": "Test E-postası gönder.",
|
||||
@@ -658,5 +488,257 @@
|
||||
"ping": "",
|
||||
"docker": "",
|
||||
"port": ""
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"appName": "",
|
||||
"monitoringAgentName": "",
|
||||
"buttons": {
|
||||
"toggleTheme": ""
|
||||
},
|
||||
"toasts": {
|
||||
"networkError": "",
|
||||
"checkConnection": "",
|
||||
"unknownError": ""
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"common": {
|
||||
"navigation": {
|
||||
"continue": "",
|
||||
"back": ""
|
||||
},
|
||||
"inputs": {
|
||||
"email": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"invalid": ""
|
||||
}
|
||||
},
|
||||
"password": {
|
||||
"label": "",
|
||||
"rules": {
|
||||
"length": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"special": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"number": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"uppercase": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"lowercase": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"match": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"uppercase": "",
|
||||
"lowercase": "",
|
||||
"number": "",
|
||||
"special": "",
|
||||
"incorrect": ""
|
||||
}
|
||||
},
|
||||
"passwordConfirm": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"different": ""
|
||||
}
|
||||
},
|
||||
"firstName": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
},
|
||||
"lastName": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"validation": ""
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"heading": "",
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": ""
|
||||
},
|
||||
"links": {
|
||||
"forgotPassword": "",
|
||||
"register": "",
|
||||
"forgotPasswordLink": "",
|
||||
"registerLink": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": "",
|
||||
"incorrectPassword": ""
|
||||
},
|
||||
"errors": {
|
||||
"password": {
|
||||
"incorrect": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"heading": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "",
|
||||
"stepThree": ""
|
||||
},
|
||||
"description": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"gettingStartedButton": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"termsAndPolicies": "",
|
||||
"links": {
|
||||
"login": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": ""
|
||||
}
|
||||
},
|
||||
"forgotPassword": {
|
||||
"heading": "",
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "",
|
||||
"stepThree": "",
|
||||
"stepFour": ""
|
||||
},
|
||||
"buttons": {
|
||||
"openEmail": "",
|
||||
"resetPassword": ""
|
||||
},
|
||||
"imageAlts": {
|
||||
"passwordKey": "",
|
||||
"email": "",
|
||||
"lock": "",
|
||||
"passwordConfirm": ""
|
||||
},
|
||||
"links": {
|
||||
"login": "",
|
||||
"resend": ""
|
||||
},
|
||||
"toasts": {
|
||||
"sent": "",
|
||||
"emailNotFound": "",
|
||||
"redirect": "",
|
||||
"success": "",
|
||||
"error": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorPages": {
|
||||
"serverUnreachable": {
|
||||
"toasts": {
|
||||
"reconnected": "",
|
||||
"stillUnreachable": ""
|
||||
},
|
||||
"alertBox": "",
|
||||
"description": "",
|
||||
"retryButton": {
|
||||
"default": "",
|
||||
"processing": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"createNotifications": {
|
||||
"title": "",
|
||||
"nameSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"nameLabel": "",
|
||||
"namePlaceholder": ""
|
||||
},
|
||||
"typeSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"typeLabel": ""
|
||||
},
|
||||
"emailSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"emailLabel": "",
|
||||
"emailPlaceholder": ""
|
||||
},
|
||||
"slackSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
},
|
||||
"pagerdutySettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"integrationKeyLabel": "",
|
||||
"integrationKeyPlaceholder": ""
|
||||
},
|
||||
"genericWebhookSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
},
|
||||
"discordSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
}
|
||||
},
|
||||
"notificationConfig": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"monitorStatus": {
|
||||
"checkingEvery": "",
|
||||
"withCaptureAgent": "",
|
||||
"up": "",
|
||||
"down": "",
|
||||
"paused": ""
|
||||
},
|
||||
"advancedMatching": "",
|
||||
"settingsEmailTLSServername": "",
|
||||
"settingsEmailIgnoreTLS": "",
|
||||
"settingsEmailRequireTLS": "",
|
||||
"settingsEmailRejectUnauthorized": "",
|
||||
"settingsEmailSecure": "",
|
||||
"settingsEmailPool": "",
|
||||
"sendTestNotifications": ""
|
||||
}
|
||||
|
||||
@@ -1,188 +1,6 @@
|
||||
{
|
||||
"common": {
|
||||
"appName": "Checkmate",
|
||||
"monitoringAgentName": "Capture",
|
||||
"buttons": {
|
||||
"toggleTheme": ""
|
||||
},
|
||||
"toasts": {
|
||||
"networkError": "",
|
||||
"checkConnection": "",
|
||||
"unknownError": ""
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"common": {
|
||||
"navigation": {
|
||||
"continue": "繼續",
|
||||
"back": "回去"
|
||||
},
|
||||
"inputs": {
|
||||
"email": {
|
||||
"label": "E-mail",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"invalid": ""
|
||||
}
|
||||
},
|
||||
"password": {
|
||||
"label": "密碼",
|
||||
"rules": {
|
||||
"length": {
|
||||
"beginning": "必須至少",
|
||||
"highlighted": "8 個字符長"
|
||||
},
|
||||
"special": {
|
||||
"beginning": "必須至少包含",
|
||||
"highlighted": "一個特殊字符"
|
||||
},
|
||||
"number": {
|
||||
"beginning": "必須至少包含",
|
||||
"highlighted": "一個數字"
|
||||
},
|
||||
"uppercase": {
|
||||
"beginning": "必須至少包含",
|
||||
"highlighted": "一個大寫字母"
|
||||
},
|
||||
"lowercase": {
|
||||
"beginning": "必須至少包含",
|
||||
"highlighted": "一個小寫字母"
|
||||
},
|
||||
"match": {
|
||||
"beginning": "確認密碼",
|
||||
"highlighted": ""
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"uppercase": "",
|
||||
"lowercase": "",
|
||||
"number": "",
|
||||
"special": "",
|
||||
"incorrect": ""
|
||||
}
|
||||
},
|
||||
"passwordConfirm": {
|
||||
"label": "確認密碼",
|
||||
"placeholder": "確認您的密碼",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"different": ""
|
||||
}
|
||||
},
|
||||
"firstName": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
},
|
||||
"lastName": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"validation": ""
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"heading": "登入",
|
||||
"subheadings": {
|
||||
"stepOne": "輸入您的 E-mail",
|
||||
"stepTwo": "輸入您的密碼"
|
||||
},
|
||||
"links": {
|
||||
"forgotPassword": "",
|
||||
"register": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": "",
|
||||
"incorrectPassword": ""
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"heading": {
|
||||
"superAdmin": "",
|
||||
"user": "註冊"
|
||||
},
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "輸入您的 E-mail",
|
||||
"stepThree": ""
|
||||
},
|
||||
"description": {
|
||||
"superAdmin": "建立您的超級管理員帳號開始使用",
|
||||
"user": ""
|
||||
},
|
||||
"gettingStartedButton": {
|
||||
"superAdmin": "用 E-mail 註冊",
|
||||
"user": ""
|
||||
},
|
||||
"termsAndPolicies": "註冊即表示您同意我們的",
|
||||
"links": {
|
||||
"login": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": ""
|
||||
}
|
||||
},
|
||||
"forgotPassword": {
|
||||
"heading": "忘記密碼?",
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "我們已將密碼重設連結發送至 <email/>",
|
||||
"stepThree": "您的新密碼必須與之前使用過的密碼不同。",
|
||||
"stepFour": ""
|
||||
},
|
||||
"buttons": {
|
||||
"openEmail": "",
|
||||
"resetPassword": "重設密碼"
|
||||
},
|
||||
"imageAlts": {
|
||||
"passwordKey": "",
|
||||
"email": "",
|
||||
"lock": "",
|
||||
"passwordConfirm": ""
|
||||
},
|
||||
"links": {
|
||||
"login": "回去 <a>登入</a>",
|
||||
"resend": "沒有受到 E-mail? <a>點擊</a>"
|
||||
},
|
||||
"toasts": {
|
||||
"sent": "",
|
||||
"emailNotFound": "",
|
||||
"redirect": "",
|
||||
"success": "",
|
||||
"error": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorPages": {
|
||||
"serverUnreachable": {
|
||||
"toasts": {
|
||||
"reconnected": "",
|
||||
"stillUnreachable": ""
|
||||
},
|
||||
"alertBox": "",
|
||||
"description": "",
|
||||
"retryButton": {
|
||||
"default": "",
|
||||
"processing": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"submit": "",
|
||||
"title": "",
|
||||
"submit": "提交",
|
||||
"title": "名稱",
|
||||
"distributedStatusHeaderText": "實時、真實設備覆蓋",
|
||||
"distributedStatusSubHeaderText": "由全球數百萬個設備提供支持,您可以按全球區域、國家或城市查看系統效能",
|
||||
"settingsGeneralSettings": "一般設定",
|
||||
@@ -190,11 +8,9 @@
|
||||
"settingsDisplayTimezoneDescription": "您公開顯示的儀表板的時區。",
|
||||
"settingsAppearance": "外觀",
|
||||
"settingsAppearanceDescription": "",
|
||||
"settingsThemeMode": "",
|
||||
"settingsLanguage": "",
|
||||
"settingsDistributedUptime": "",
|
||||
"settingsDistributedUptimeDescription": "",
|
||||
"settingsEnabled": "",
|
||||
"settingsThemeMode": "主題",
|
||||
"settingsLanguage": "語言",
|
||||
"settingsEnabled": "啟動",
|
||||
"settingsDisabled": "",
|
||||
"settingsHistoryAndMonitoring": "",
|
||||
"settingsHistoryAndMonitoringDescription": "",
|
||||
@@ -213,8 +29,6 @@
|
||||
"settingsRemoveAllMonitorsButton": "",
|
||||
"settingsRemoveAllMonitorsDialogTitle": "",
|
||||
"settingsRemoveAllMonitorsDialogConfirm": "",
|
||||
"settingsWallet": "",
|
||||
"settingsWalletDescription": "",
|
||||
"settingsAbout": "",
|
||||
"settingsDevelopedBy": "",
|
||||
"settingsSave": "",
|
||||
@@ -257,10 +71,6 @@
|
||||
"distributedUptimeCreateIncidentDescription": "",
|
||||
"distributedUptimeCreateAdvancedSettings": "",
|
||||
"distributedUptimeDetailsNoMonitorHistory": "",
|
||||
"distributedUptimeDetailsFooterHeading": "",
|
||||
"distributedUptimeDetailsFooterBuilt": "",
|
||||
"distributedUptimeDetailsFooterSolana": "",
|
||||
"distributedUptimeDetailsMonitorHeader": "",
|
||||
"distributedUptimeDetailsStatusHeaderUptime": "",
|
||||
"distributedUptimeDetailsStatusHeaderLastUpdate": "",
|
||||
"notifications": {
|
||||
@@ -302,7 +112,33 @@
|
||||
"testSuccess": "",
|
||||
"testFailed": "",
|
||||
"unsupportedType": "",
|
||||
"networkError": ""
|
||||
"networkError": "",
|
||||
"fallback": {
|
||||
"title": "",
|
||||
"checks": [""]
|
||||
},
|
||||
"createButton": "",
|
||||
"createTitle": "",
|
||||
"create": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"fetch": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"delete": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"edit": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
},
|
||||
"test": {
|
||||
"success": "",
|
||||
"failed": ""
|
||||
}
|
||||
},
|
||||
"testLocale": "",
|
||||
"add": "",
|
||||
@@ -546,11 +382,6 @@
|
||||
"append": "",
|
||||
"overview": ""
|
||||
},
|
||||
"monitorStatus": {
|
||||
"up": "",
|
||||
"down": "",
|
||||
"paused": ""
|
||||
},
|
||||
"roles": {
|
||||
"superAdmin": "",
|
||||
"admin": "",
|
||||
@@ -589,7 +420,6 @@
|
||||
"uptime": "",
|
||||
"pagespeed": "",
|
||||
"infrastructure": "",
|
||||
"distributedUptime": "",
|
||||
"incidents": "",
|
||||
"statusPages": "",
|
||||
"maintenance": "",
|
||||
@@ -602,7 +432,8 @@
|
||||
"profile": "",
|
||||
"password": "",
|
||||
"team": "",
|
||||
"logOut": ""
|
||||
"logOut": "",
|
||||
"notifications": ""
|
||||
},
|
||||
"settingsEmail": "",
|
||||
"settingsEmailDescription": "",
|
||||
@@ -633,7 +464,6 @@
|
||||
"saving": ""
|
||||
},
|
||||
"settingsEmailConnectionHost": "",
|
||||
"sendTestEmail": "",
|
||||
"emailSent": "",
|
||||
"failedToSendEmail": "",
|
||||
"settingsTestEmail": "",
|
||||
@@ -658,5 +488,257 @@
|
||||
"ping": "",
|
||||
"docker": "",
|
||||
"port": ""
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"appName": "",
|
||||
"monitoringAgentName": "",
|
||||
"buttons": {
|
||||
"toggleTheme": ""
|
||||
},
|
||||
"toasts": {
|
||||
"networkError": "",
|
||||
"checkConnection": "",
|
||||
"unknownError": ""
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"common": {
|
||||
"navigation": {
|
||||
"continue": "",
|
||||
"back": ""
|
||||
},
|
||||
"inputs": {
|
||||
"email": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"invalid": ""
|
||||
}
|
||||
},
|
||||
"password": {
|
||||
"label": "",
|
||||
"rules": {
|
||||
"length": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"special": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"number": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"uppercase": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"lowercase": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
},
|
||||
"match": {
|
||||
"beginning": "",
|
||||
"highlighted": ""
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"uppercase": "",
|
||||
"lowercase": "",
|
||||
"number": "",
|
||||
"special": "",
|
||||
"incorrect": ""
|
||||
}
|
||||
},
|
||||
"passwordConfirm": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"different": ""
|
||||
}
|
||||
},
|
||||
"firstName": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
},
|
||||
"lastName": {
|
||||
"label": "",
|
||||
"placeholder": "",
|
||||
"errors": {
|
||||
"empty": "",
|
||||
"length": "",
|
||||
"pattern": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"validation": ""
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"heading": "",
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": ""
|
||||
},
|
||||
"links": {
|
||||
"forgotPassword": "",
|
||||
"register": "",
|
||||
"forgotPasswordLink": "",
|
||||
"registerLink": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": "",
|
||||
"incorrectPassword": ""
|
||||
},
|
||||
"errors": {
|
||||
"password": {
|
||||
"incorrect": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"registration": {
|
||||
"heading": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "",
|
||||
"stepThree": ""
|
||||
},
|
||||
"description": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"gettingStartedButton": {
|
||||
"superAdmin": "",
|
||||
"user": ""
|
||||
},
|
||||
"termsAndPolicies": "",
|
||||
"links": {
|
||||
"login": ""
|
||||
},
|
||||
"toasts": {
|
||||
"success": ""
|
||||
}
|
||||
},
|
||||
"forgotPassword": {
|
||||
"heading": "",
|
||||
"subheadings": {
|
||||
"stepOne": "",
|
||||
"stepTwo": "",
|
||||
"stepThree": "",
|
||||
"stepFour": ""
|
||||
},
|
||||
"buttons": {
|
||||
"openEmail": "",
|
||||
"resetPassword": ""
|
||||
},
|
||||
"imageAlts": {
|
||||
"passwordKey": "",
|
||||
"email": "",
|
||||
"lock": "",
|
||||
"passwordConfirm": ""
|
||||
},
|
||||
"links": {
|
||||
"login": "",
|
||||
"resend": ""
|
||||
},
|
||||
"toasts": {
|
||||
"sent": "",
|
||||
"emailNotFound": "",
|
||||
"redirect": "",
|
||||
"success": "",
|
||||
"error": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"errorPages": {
|
||||
"serverUnreachable": {
|
||||
"toasts": {
|
||||
"reconnected": "",
|
||||
"stillUnreachable": ""
|
||||
},
|
||||
"alertBox": "",
|
||||
"description": "",
|
||||
"retryButton": {
|
||||
"default": "",
|
||||
"processing": ""
|
||||
}
|
||||
}
|
||||
},
|
||||
"createNotifications": {
|
||||
"title": "",
|
||||
"nameSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"nameLabel": "",
|
||||
"namePlaceholder": ""
|
||||
},
|
||||
"typeSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"typeLabel": ""
|
||||
},
|
||||
"emailSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"emailLabel": "",
|
||||
"emailPlaceholder": ""
|
||||
},
|
||||
"slackSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
},
|
||||
"pagerdutySettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"integrationKeyLabel": "",
|
||||
"integrationKeyPlaceholder": ""
|
||||
},
|
||||
"genericWebhookSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
},
|
||||
"discordSettings": {
|
||||
"title": "",
|
||||
"description": "",
|
||||
"webhookLabel": "",
|
||||
"webhookPlaceholder": ""
|
||||
}
|
||||
},
|
||||
"notificationConfig": {
|
||||
"title": "",
|
||||
"description": ""
|
||||
},
|
||||
"monitorStatus": {
|
||||
"checkingEvery": "",
|
||||
"withCaptureAgent": "",
|
||||
"up": "",
|
||||
"down": "",
|
||||
"paused": ""
|
||||
},
|
||||
"advancedMatching": "",
|
||||
"settingsEmailTLSServername": "",
|
||||
"settingsEmailIgnoreTLS": "",
|
||||
"settingsEmailRequireTLS": "",
|
||||
"settingsEmailRejectUnauthorized": "",
|
||||
"settingsEmailSecure": "",
|
||||
"settingsEmailPool": "",
|
||||
"sendTestNotifications": ""
|
||||
}
|
||||
|
||||
@@ -102,6 +102,7 @@ class NotificationController {
|
||||
success =
|
||||
await this.notificationService.sendTestPagerDutyNotification(notification);
|
||||
}
|
||||
|
||||
if (!success) {
|
||||
return res.error({
|
||||
msg: "Sending notification failed",
|
||||
@@ -128,7 +129,11 @@ class NotificationController {
|
||||
}
|
||||
|
||||
try {
|
||||
const notification = await this.db.createNotification(req.body);
|
||||
const body = req.body;
|
||||
const { _id, teamId } = req.user;
|
||||
body.userId = _id;
|
||||
body.teamId = teamId;
|
||||
const notification = await this.db.createNotification(body);
|
||||
return res.success({
|
||||
msg: "Notification created successfully",
|
||||
data: notification,
|
||||
|
||||
@@ -11,8 +11,7 @@ class SettingsController {
|
||||
this.emailService = emailService;
|
||||
}
|
||||
|
||||
getAppSettings = async (req, res, next) => {
|
||||
const dbSettings = await this.settingsService.getDBSettings();
|
||||
buildAppSettings = (dbSettings) => {
|
||||
const sanitizedSettings = { ...dbSettings };
|
||||
delete sanitizedSettings.version;
|
||||
|
||||
@@ -30,6 +29,13 @@ class SettingsController {
|
||||
delete sanitizedSettings.systemEmailPassword;
|
||||
}
|
||||
returnSettings.settings = sanitizedSettings;
|
||||
return returnSettings;
|
||||
};
|
||||
|
||||
getAppSettings = async (req, res, next) => {
|
||||
const dbSettings = await this.settingsService.getDBSettings();
|
||||
|
||||
const returnSettings = this.buildAppSettings(dbSettings);
|
||||
return res.success({
|
||||
msg: this.stringService.getAppSettings,
|
||||
data: returnSettings,
|
||||
@@ -45,12 +51,11 @@ class SettingsController {
|
||||
}
|
||||
|
||||
try {
|
||||
await this.db.updateAppSettings(req.body);
|
||||
const updatedSettings = { ...(await this.settingsService.reloadSettings()) };
|
||||
delete updatedSettings.jwtSecret;
|
||||
const updatedSettings = await this.db.updateAppSettings(req.body);
|
||||
const returnSettings = this.buildAppSettings(updatedSettings);
|
||||
return res.success({
|
||||
msg: this.stringService.updateAppSettings,
|
||||
data: updatedSettings,
|
||||
data: returnSettings,
|
||||
});
|
||||
} catch (error) {
|
||||
next(handleError(error, SERVICE_NAME, "updateAppSettings"));
|
||||
|
||||
@@ -7,7 +7,7 @@ const configSchema = mongoose.Schema(
|
||||
chatId: { type: String },
|
||||
platform: {
|
||||
type: String,
|
||||
enum: ["slack", "pager_duty", "webhook"],
|
||||
enum: ["slack", "pager_duty", "webhook", "discord"],
|
||||
},
|
||||
routingKey: { type: String },
|
||||
},
|
||||
|
||||
@@ -26,10 +26,12 @@ const updateAppSettings = async (newSettings) => {
|
||||
delete update.$set.systemEmailPassword;
|
||||
}
|
||||
|
||||
const settings = await AppSettings.findOneAndUpdate({}, update, {
|
||||
new: true,
|
||||
await AppSettings.findOneAndUpdate({}, update, {
|
||||
upsert: true,
|
||||
});
|
||||
const settings = await AppSettings.findOne()
|
||||
.select("-__v -_id -createdAt -updatedAt -singleton")
|
||||
.lean();
|
||||
return settings;
|
||||
} catch (error) {
|
||||
error.service = SERVICE_NAME;
|
||||
|
||||
@@ -60,30 +60,30 @@ class NetworkService {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a ping request to the specified URL and returns the response.
|
||||
*
|
||||
* @param {Object} job - The job object containing the data for the ping request.
|
||||
* @param {Object} job.data - The data object within the job.
|
||||
* @param {string} job.data.url - The URL to ping.
|
||||
* @param {string} job.data._id - The monitor ID for the ping request.
|
||||
* @returns {Promise<Object>} An object containing the ping response details.
|
||||
* @property {string} monitorId - The monitor ID for the ping request.
|
||||
* @property {string} type - The type of request, which is "ping".
|
||||
* @property {number} responseTime - The time taken for the ping request to complete, in milliseconds.
|
||||
* @property {Object} payload - The response payload from the ping request.
|
||||
* @property {boolean} status - The status of the ping request (true if successful, false otherwise).
|
||||
* @property {number} code - The response code (200 if successful, error code otherwise).
|
||||
* @property {string} message - The message indicating the result of the ping request.
|
||||
* Performs a ping check to a specified host to verify its availability.
|
||||
* @async
|
||||
* @param {Object} monitor - The monitor configuration object
|
||||
* @param {string} monitor.url - The host URL to ping
|
||||
* @param {string} monitor._id - The unique identifier of the monitor
|
||||
* @returns {Promise<Object>} A promise that resolves to a ping response object
|
||||
* @returns {string} pingResponse.monitorId - The ID of the monitor
|
||||
* @returns {string} pingResponse.type - The type of monitor (always "ping")
|
||||
* @returns {number} pingResponse.responseTime - The time taken for the ping
|
||||
* @returns {Object} pingResponse.payload - The raw ping response data
|
||||
* @returns {boolean} pingResponse.status - Whether the host is alive (true) or not (false)
|
||||
* @returns {number} pingResponse.code - Status code (200 for success, PING_ERROR for failure)
|
||||
* @returns {string} pingResponse.message - Success or failure message
|
||||
* @throws {Error} If there's an error during the ping operation
|
||||
*/
|
||||
async requestPing(job) {
|
||||
async requestPing(monitor) {
|
||||
try {
|
||||
const url = job.data.url;
|
||||
const url = monitor.url;
|
||||
const { response, responseTime, error } = await this.timeRequest(() =>
|
||||
this.ping.promise.probe(url)
|
||||
);
|
||||
|
||||
const pingResponse = {
|
||||
monitorId: job.data._id,
|
||||
monitorId: monitor._id,
|
||||
type: "ping",
|
||||
responseTime,
|
||||
payload: response,
|
||||
@@ -107,21 +107,29 @@ class NetworkService {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends an HTTP GET request to the specified URL and returns the response.
|
||||
*
|
||||
* @param {Object} job - The job object containing the data for the HTTP request.
|
||||
* @param {Object} job.data - The data object within the job.
|
||||
* @param {string} job.data.url - The URL to send the HTTP GET request to.
|
||||
* @param {string} job.data._id - The monitor ID for the HTTP request.
|
||||
* @param {string} [job.data.secret] - Secret for authorization if provided.
|
||||
* @returns {Promise<Object>} An object containing the HTTP response details.
|
||||
* @property {string} monitorId - The monitor ID for the HTTP request.
|
||||
* @property {string} type - The type of request, which is "http".
|
||||
* @property {number} responseTime - The time taken for the HTTP request to complete, in milliseconds.
|
||||
* @property {Object} payload - The response payload from the HTTP request.
|
||||
* @property {boolean} status - The status of the HTTP request (true if successful, false otherwise).
|
||||
* @property {number} code - The response code (200 if successful, error code otherwise).
|
||||
* @property {string} message - The message indicating the result of the HTTP request.
|
||||
* Performs an HTTP GET request to a specified URL with optional validation of response data.
|
||||
* @async
|
||||
* @param {Object} monitor - The monitor configuration object
|
||||
* @param {string} monitor.url - The URL to make the HTTP request to
|
||||
* @param {string} [monitor.secret] - Optional Bearer token for authentication
|
||||
* @param {string} monitor._id - The unique identifier of the monitor
|
||||
* @param {string} monitor.name - The name of the monitor
|
||||
* @param {string} monitor.teamId - The team ID associated with the monitor
|
||||
* @param {string} monitor.type - The type of monitor
|
||||
* @param {boolean} [monitor.ignoreTlsErrors] - Whether to ignore TLS certificate errors
|
||||
* @param {string} [monitor.jsonPath] - Optional JMESPath expression to extract data from JSON response
|
||||
* @param {string} [monitor.matchMethod] - Method to match response data ('include', 'regex', or exact match)
|
||||
* @param {string} [monitor.expectedValue] - Expected value to match against response data
|
||||
* @returns {Promise<Object>} A promise that resolves to an HTTP response object
|
||||
* @returns {string} httpResponse.monitorId - The ID of the monitor
|
||||
* @returns {string} httpResponse.teamId - The team ID
|
||||
* @returns {string} httpResponse.type - The type of monitor
|
||||
* @returns {number} httpResponse.responseTime - The time taken for the request
|
||||
* @returns {Object} httpResponse.payload - The response data
|
||||
* @returns {boolean} httpResponse.status - Whether the request was successful and matched expected value (if specified)
|
||||
* @returns {number} httpResponse.code - HTTP status code or NETWORK_ERROR
|
||||
* @returns {string} httpResponse.message - Success or failure message
|
||||
* @throws {Error} If there's an error during the HTTP request or data validation
|
||||
*/
|
||||
async requestHttp(monitor) {
|
||||
try {
|
||||
@@ -231,20 +239,19 @@ class NetworkService {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a request to the Google PageSpeed Insights API for the specified URL and returns the response.
|
||||
*
|
||||
* @param {Object} job - The job object containing the data for the PageSpeed request.
|
||||
* @param {Object} job.data - The data object within the job.
|
||||
* @param {string} job.data.url - The URL to analyze with PageSpeed Insights.
|
||||
* @param {string} job.data._id - The monitor ID for the PageSpeed request.
|
||||
* @returns {Promise<Object>} An object containing the PageSpeed response details.
|
||||
* @property {string} monitorId - The monitor ID for the PageSpeed request.
|
||||
* @property {string} type - The type of request, which is "pagespeed".
|
||||
* @property {number} responseTime - The time taken for the PageSpeed request to complete, in milliseconds.
|
||||
* @property {Object} payload - The response payload from the PageSpeed request.
|
||||
* @property {boolean} status - The status of the PageSpeed request (true if successful, false otherwise).
|
||||
* @property {number} code - The response code (200 if successful, error code otherwise).
|
||||
* @property {string} message - The message indicating the result of the PageSpeed request.
|
||||
* Checks the performance of a webpage using Google's PageSpeed Insights API.
|
||||
* @async
|
||||
* @param {Object} monitor - The monitor configuration object
|
||||
* @param {string} monitor.url - The URL of the webpage to analyze
|
||||
* @returns {Promise<Object|undefined>} A promise that resolves to a pagespeed response object or undefined if API key is missing
|
||||
* @returns {string} response.monitorId - The ID of the monitor
|
||||
* @returns {string} response.type - The type of monitor
|
||||
* @returns {number} response.responseTime - The time taken for the analysis
|
||||
* @returns {boolean} response.status - Whether the analysis was successful
|
||||
* @returns {number} response.code - HTTP status code from the PageSpeed API
|
||||
* @returns {string} response.message - Success or failure message
|
||||
* @returns {Object} response.payload - The PageSpeed analysis results
|
||||
* @throws {Error} If there's an error during the PageSpeed analysis
|
||||
*/
|
||||
async requestPagespeed(monitor) {
|
||||
try {
|
||||
@@ -273,23 +280,6 @@ class NetworkService {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends an HTTP request to check hardware status and returns the response.
|
||||
*
|
||||
* @param {Object} job - The job object containing the data for the hardware request.
|
||||
* @param {Object} job.data - The data object within the job.
|
||||
* @param {string} job.data.url - The URL to send the hardware status request to.
|
||||
* @param {string} job.data._id - The monitor ID for the hardware request.
|
||||
* @param {string} job.data.type - The type of request, which is "hardware".
|
||||
* @returns {Promise<Object>} An object containing the hardware status response details.
|
||||
* @property {string} monitorId - The monitor ID for the hardware request.
|
||||
* @property {string} type - The type of request ("hardware").
|
||||
* @property {number} responseTime - The time taken for the request to complete, in milliseconds.
|
||||
* @property {Object} payload - The response payload from the hardware status request.
|
||||
* @property {boolean} status - The status of the request (true if successful, false otherwise).
|
||||
* @property {number} code - The response code (200 if successful, error code otherwise).
|
||||
* @property {string} message - The message indicating the result of the hardware status request.
|
||||
*/
|
||||
async requestHardware(monitor) {
|
||||
try {
|
||||
return await this.requestHttp(monitor);
|
||||
@@ -301,20 +291,20 @@ class NetworkService {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a request to inspect a Docker container and returns its status.
|
||||
*
|
||||
* @param {Object} job - The job object containing the data for the Docker request.
|
||||
* @param {Object} job.data - The data object within the job.
|
||||
* @param {string} job.data.url - The container ID or name to inspect.
|
||||
* @param {string} job.data._id - The monitor ID for the Docker request.
|
||||
* @param {string} job.data.type - The type of request, which is "docker".
|
||||
* @returns {Promise<Object>} An object containing the Docker container status details.
|
||||
* @property {string} monitorId - The monitor ID for the Docker request.
|
||||
* @property {string} type - The type of request ("docker").
|
||||
* @property {number} responseTime - The time taken for the Docker inspection to complete, in milliseconds.
|
||||
* @property {boolean} status - The status of the container (true if running, false otherwise).
|
||||
* @property {number} code - The response code (200 if successful, error code otherwise).
|
||||
* @property {string} message - The message indicating the result of the Docker inspection.
|
||||
* Checks the status of a Docker container by its ID.
|
||||
* @async
|
||||
* @param {Object} monitor - The monitor configuration object
|
||||
* @param {string} monitor.url - The Docker container ID to check
|
||||
* @param {string} monitor._id - The unique identifier of the monitor
|
||||
* @param {string} monitor.type - The type of monitor
|
||||
* @returns {Promise<Object>} A promise that resolves to a docker response object
|
||||
* @returns {string} dockerResponse.monitorId - The ID of the monitor
|
||||
* @returns {string} dockerResponse.type - The type of monitor
|
||||
* @returns {number} dockerResponse.responseTime - The time taken for the container inspection
|
||||
* @returns {boolean} dockerResponse.status - Whether the container is running (true) or not (false)
|
||||
* @returns {number} dockerResponse.code - HTTP-like status code (200 for success, NETWORK_ERROR for failure)
|
||||
* @returns {string} dockerResponse.message - Success or failure message
|
||||
* @throws {Error} If the container is not found or if there's an error inspecting the container
|
||||
*/
|
||||
async requestDocker(monitor) {
|
||||
try {
|
||||
@@ -358,6 +348,23 @@ class NetworkService {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Attempts to establish a TCP connection to a specified host and port.
|
||||
* @async
|
||||
* @param {Object} monitor - The monitor configuration object
|
||||
* @param {string} monitor.url - The host URL to connect to
|
||||
* @param {number} monitor.port - The port number to connect to
|
||||
* @param {string} monitor._id - The unique identifier of the monitor
|
||||
* @param {string} monitor.type - The type of monitor
|
||||
* @returns {Promise<Object>} A promise that resolves to a port response object
|
||||
* @returns {string} portResponse.monitorId - The ID of the monitor
|
||||
* @returns {string} portResponse.type - The type of monitor
|
||||
* @returns {number} portResponse.responseTime - The time taken for the connection attempt
|
||||
* @returns {boolean} portResponse.status - Whether the connection was successful
|
||||
* @returns {number} portResponse.code - HTTP-like status code (200 for success, NETWORK_ERROR for failure)
|
||||
* @returns {string} portResponse.message - Success or failure message
|
||||
* @throws {Error} If the connection times out or encounters an error
|
||||
*/
|
||||
async requestPort(monitor) {
|
||||
try {
|
||||
const { url, port } = monitor;
|
||||
|
||||
@@ -95,6 +95,19 @@ class NotificationService {
|
||||
return MESSAGE_FORMATTERS[platform](messageText, chatId);
|
||||
}
|
||||
|
||||
formatHardwareNotificationMessage = (
|
||||
monitor,
|
||||
status,
|
||||
platform,
|
||||
chatId,
|
||||
code,
|
||||
timestamp,
|
||||
alerts
|
||||
) => {
|
||||
const messageText = alerts.map((alert) => alert).join("\n");
|
||||
return MESSAGE_FORMATTERS[platform](messageText, chatId);
|
||||
};
|
||||
|
||||
sendTestWebhookNotification = async (notification) => {
|
||||
const config = notification.config;
|
||||
const response = await this.networkService.requestWebhook(
|
||||
@@ -121,7 +134,7 @@ class NotificationService {
|
||||
* @returns {Promise<boolean>} A promise that resolves to true if the notification was sent successfully, otherwise false.
|
||||
*/
|
||||
|
||||
async sendWebhookNotification(networkResponse, notification) {
|
||||
async sendWebhookNotification(networkResponse, notification, alerts = []) {
|
||||
const { monitor, status, code } = networkResponse;
|
||||
const { webhookUrl, platform, botToken, chatId } = notification.config;
|
||||
|
||||
@@ -152,14 +165,27 @@ class NotificationService {
|
||||
url = `${TELEGRAM_API_BASE_URL}${botToken}/sendMessage`;
|
||||
}
|
||||
|
||||
const message = this.formatNotificationMessage(
|
||||
monitor,
|
||||
status,
|
||||
platform,
|
||||
chatId,
|
||||
code, // Pass the code field directly
|
||||
networkResponse.timestamp
|
||||
);
|
||||
let message;
|
||||
if (monitor.type === "hardware") {
|
||||
message = this.formatHardwareNotificationMessage(
|
||||
monitor,
|
||||
status,
|
||||
platform,
|
||||
chatId,
|
||||
code,
|
||||
networkResponse.timestamp,
|
||||
alerts
|
||||
);
|
||||
} else {
|
||||
message = this.formatNotificationMessage(
|
||||
monitor,
|
||||
status,
|
||||
platform,
|
||||
chatId,
|
||||
code, // Pass the code field directly
|
||||
networkResponse.timestamp
|
||||
);
|
||||
}
|
||||
|
||||
try {
|
||||
const response = await this.networkService.requestWebhook(platform, url, message);
|
||||
@@ -247,19 +273,31 @@ class NotificationService {
|
||||
|
||||
return response;
|
||||
}
|
||||
async sendPagerDutyNotification(networkResponse, notification) {
|
||||
async sendPagerDutyNotification(networkResponse, notification, alerts = []) {
|
||||
const { monitor, status, code } = networkResponse;
|
||||
const { routingKey, platform } = notification.config;
|
||||
|
||||
const message = this.formatNotificationMessage(
|
||||
monitor,
|
||||
status,
|
||||
platform,
|
||||
null,
|
||||
code, // Pass the code field directly
|
||||
networkResponse.timestamp
|
||||
);
|
||||
|
||||
let message;
|
||||
if (monitor.type === "hardware") {
|
||||
message = this.formatHardwareNotificationMessage(
|
||||
monitor,
|
||||
status,
|
||||
platform,
|
||||
null,
|
||||
code,
|
||||
networkResponse.timestamp,
|
||||
alerts
|
||||
);
|
||||
} else {
|
||||
message = this.formatNotificationMessage(
|
||||
monitor,
|
||||
status,
|
||||
platform,
|
||||
null,
|
||||
code, // Pass the code field directly
|
||||
networkResponse.timestamp
|
||||
);
|
||||
}
|
||||
try {
|
||||
const response = await this.networkService.requestPagerDuty({
|
||||
message,
|
||||
@@ -350,9 +388,9 @@ class NotificationService {
|
||||
) ?? false,
|
||||
};
|
||||
|
||||
const notifications = await this.db.getNotificationsByMonitorId(
|
||||
networkResponse.monitorId
|
||||
);
|
||||
const notificationIDs = networkResponse.monitor?.notifications ?? [];
|
||||
const notifications = await this.db.getNotificationsByIds(notificationIDs);
|
||||
|
||||
for (const notification of notifications) {
|
||||
const alertsToSend = [];
|
||||
const alertTypes = ["cpu", "memory", "disk"];
|
||||
@@ -388,7 +426,11 @@ class NotificationService {
|
||||
if (alertsToSend.length === 0) continue; // No alerts to send, we're done
|
||||
|
||||
if (notification.type === "email") {
|
||||
this.sendHardwareEmail(networkResponse, notification.address, alertsToSend);
|
||||
await this.sendHardwareEmail(networkResponse, notification.address, alertsToSend);
|
||||
} else if (notification.type === "webhook") {
|
||||
await this.sendWebhookNotification(networkResponse, notification, alertsToSend);
|
||||
} else if (notification.type === "pager_duty") {
|
||||
await this.sendPagerDutyNotification(networkResponse, notification, alertsToSend);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
||||
@@ -28,8 +28,8 @@ class SettingsService {
|
||||
* Constructs a new SettingsService
|
||||
* @constructor
|
||||
* @throws {Error}
|
||||
*/ constructor(appSettings) {
|
||||
this.appSettings = appSettings;
|
||||
*/ constructor(AppSettings) {
|
||||
this.AppSettings = AppSettings;
|
||||
this.settings = { ...envConfig };
|
||||
}
|
||||
/**
|
||||
@@ -60,16 +60,14 @@ class SettingsService {
|
||||
|
||||
async getDBSettings() {
|
||||
// Remove any old settings
|
||||
await this.appSettings.deleteMany({ version: { $exists: false } });
|
||||
await this.AppSettings.deleteMany({ version: { $exists: false } });
|
||||
|
||||
let settings = await this.appSettings
|
||||
.findOne({ singleton: true })
|
||||
let settings = await this.AppSettings.findOne({ singleton: true })
|
||||
.select("-__v -_id -createdAt -updatedAt -singleton")
|
||||
.lean();
|
||||
if (settings === null) {
|
||||
await this.appSettings.create({});
|
||||
settings = await this.appSettings
|
||||
.findOne({ singleton: true })
|
||||
await this.AppSettings.create({});
|
||||
settings = await this.AppSettings.findOne({ singleton: true })
|
||||
.select("-__v -_id -createdAt -updatedAt -singleton")
|
||||
.lean();
|
||||
}
|
||||
|
||||
@@ -29,12 +29,12 @@ const nameValidation = joi
|
||||
.string()
|
||||
.trim()
|
||||
.max(50)
|
||||
.pattern(/^(?=.*[\p{L}\p{Sc}])[\p{L}\p{Sc}\s']+$/u)
|
||||
.pattern(/^(?=.*[\p{L}\p{Sc}])[\p{L}\p{Sc}\s'\-().]+$/u)
|
||||
.messages({
|
||||
"string.empty": "Name is required",
|
||||
"string.max": "Name must be less than 50 characters",
|
||||
"string.pattern.base":
|
||||
"Name must contain at least 1 letter or currency symbol and only allow letters, spaces, apostrophes, and currency symbols",
|
||||
"Names must contain at least 1 letter and may only include letters, currency symbols, spaces, apostrophes, hyphens (-), periods (.), and parentheses ().",
|
||||
});
|
||||
|
||||
const registrationBodyValidation = joi.object({
|
||||
@@ -558,14 +558,6 @@ const triggerNotificationBodyValidation = joi.object({
|
||||
});
|
||||
|
||||
const createNotificationBodyValidation = joi.object({
|
||||
userId: joi.string().required().messages({
|
||||
"number.empty": "User ID is required",
|
||||
"any.required": "User ID is required",
|
||||
}),
|
||||
teamId: joi.string().required().messages({
|
||||
"string.empty": "Team ID is required",
|
||||
"any.required": "Team ID is required",
|
||||
}),
|
||||
notificationName: joi.string().required().messages({
|
||||
"string.empty": "Notification name is required",
|
||||
"any.required": "Notification name is required",
|
||||
|
||||
Reference in New Issue
Block a user