From 00f3941ca62d765fca00e79e08b2f7a0bfbb1b42 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michal=20=C5=A0mahel?=
<48548230+ceskyDJ@users.noreply.github.com>
Date: Sun, 8 Jun 2025 04:28:41 +0200
Subject: [PATCH] i18n: Refactor, fix and clean up auth forms
---
.../TabPanels/Account/ProfilePanel.jsx | 2 +-
client/src/Pages/Auth/CheckEmail.jsx | 96 ++++----
client/src/Pages/Auth/ForgotPassword.jsx | 50 +++--
.../Pages/Auth/Login/Components/EmailStep.jsx | 12 +-
.../Login/Components/ForgotPasswordLabel.jsx | 26 ++-
.../Auth/Login/Components/PasswordStep.jsx | 12 +-
client/src/Pages/Auth/Login/Login.jsx | 54 ++---
.../src/Pages/Auth/NewPasswordConfirmed.jsx | 34 +--
client/src/Pages/Auth/Register/Register.jsx | 52 +++--
.../src/Pages/Auth/Register/StepOne/index.jsx | 28 ++-
.../Pages/Auth/Register/StepThree/index.jsx | 52 +++--
.../src/Pages/Auth/Register/StepTwo/index.jsx | 29 ++-
client/src/Pages/Auth/SetNewPassword.jsx | 80 ++++---
client/src/Validation/validation.js | 40 ++--
client/src/locales/cs.json | 204 +++++++++++++----
client/src/locales/de.json | 205 ++++++++++++++----
client/src/locales/en.json | 205 ++++++++++++++----
client/src/locales/es.json | 205 ++++++++++++++----
client/src/locales/fi.json | 205 ++++++++++++++----
client/src/locales/fr.json | 205 ++++++++++++++----
client/src/locales/pt-BR.json | 205 ++++++++++++++----
client/src/locales/ru.json | 205 ++++++++++++++----
client/src/locales/tr.json | 205 ++++++++++++++----
client/src/locales/zh-TW.json | 205 ++++++++++++++----
24 files changed, 1899 insertions(+), 717 deletions(-)
diff --git a/client/src/Components/TabPanels/Account/ProfilePanel.jsx b/client/src/Components/TabPanels/Account/ProfilePanel.jsx
index 46a2bdb79..ad6d15b98 100644
--- a/client/src/Components/TabPanels/Account/ProfilePanel.jsx
+++ b/client/src/Components/TabPanels/Account/ProfilePanel.jsx
@@ -240,7 +240,7 @@ const ProfilePanel = () => {
gap={SPACING_GAP}
>
- {t("email")}
+ {t("auth.common.inputs.email.label")}
{
const toastFail = [
{
- body: "Email not found.",
+ body: t("auth.forgotPassword.toasts.emailNotFound"),
},
{
- body: "Redirecting in 3...",
+ body: t("auth.forgotPassword.toasts.redirect").replace("", "3"),
},
{
- body: "Redirecting in 2...",
+ body: t("auth.forgotPassword.toasts.redirect").replace("", "2"),
},
{
- body: "Redirecting in 1...",
+ body: t("auth.forgotPassword.toasts.redirect").replace("", "1"),
},
];
@@ -62,19 +62,19 @@ const CheckEmail = () => {
const action = await dispatch(forgotPassword(form));
if (action.payload.success) {
createToast({
- body: `Instructions sent to ${form.email}.`,
+ body: t("auth.forgotPassword.toasts.sent").replace("", form.email),
});
setDisabled(false);
} else {
if (action.payload) {
// dispatch errors
createToast({
- body: action.payload.msg,
+ body: action.payload.msg, // FIXME: Potential untranslated string
});
} else {
// unknown errors
createToast({
- body: "Unknown error.",
+ body: t("common.toasts.unknownError"),
});
}
}
@@ -160,18 +160,24 @@ const CheckEmail = () => {
svgHeight={24}
mb={theme.spacing(4)}
>
-
+
- {t("authCheckEmailTitle")}
+ {t("auth.forgotPassword.heading")}
- {t("authCheckEmailDescription")}{" "}
-
- {email || "username@email.com"}
-
+
+ {email || "username@email.com"}
+
+ ),
+ }}
+ />
- {t("authCheckEmailDidntReceiveEmail")}{" "}
-
+ ),
}}
- >
- {t("authCheckEmailClickToResend")}
-
+ />
@@ -207,15 +217,21 @@ const CheckEmail = () => {
textAlign="center"
p={theme.spacing(12)}
>
- {t("goBackTo")}
-
- {t("authLoginTitle")}
+
+
+ ),
+ }}
+ />
diff --git a/client/src/Pages/Auth/ForgotPassword.jsx b/client/src/Pages/Auth/ForgotPassword.jsx
index 47b8fc3bf..3ab6913dd 100644
--- a/client/src/Pages/Auth/ForgotPassword.jsx
+++ b/client/src/Pages/Auth/ForgotPassword.jsx
@@ -11,7 +11,7 @@ import Logo from "../../assets/icons/checkmate-icon.svg?react";
import Key from "../../assets/icons/key.svg?react";
import Background from "../../assets/Images/background-grid.svg?react";
import IconBox from "../../Components/IconBox";
-import { useTranslation } from "react-i18next";
+import { Trans, useTranslation } from "react-i18next";
import "./index.css";
const ForgotPassword = () => {
@@ -41,8 +41,8 @@ const ForgotPassword = () => {
// validation errors
const err =
error.details && error.details.length > 0
- ? error.details[0].message
- : "Error validating data.";
+ ? error.details[0].message // FIXME: Possibly untranslated string
+ : t("auth.common.errors.validation");
setErrors({ email: err });
createToast({
body: err,
@@ -53,18 +53,18 @@ const ForgotPassword = () => {
sessionStorage.setItem("email", form.email);
navigate("/check-email");
createToast({
- body: `Instructions sent to ${form.email}.`,
+ body: t("auth.forgotPassword.toasts.sent").replace("", form.email),
});
} else {
if (action.payload) {
// dispatch errors
createToast({
- body: action.payload.msg,
+ body: action.payload.msg, // FIXME: Potentially untranslated string
});
} else {
// unknown errors
createToast({
- body: "Unknown error.",
+ body: t("common.toasts.unknownError"),
});
}
}
@@ -162,11 +162,11 @@ const ForgotPassword = () => {
svgHeight={24}
mb={theme.spacing(4)}
>
-
+
- {t("authForgotPasswordTitle")}
- {t("authForgotPasswordInstructions")}
+ {t("auth.forgotPassword.heading")}
+ {t("auth.forgotPassword.subheadings.stepOne")}
{
@@ -207,15 +207,21 @@ const ForgotPassword = () => {
textAlign="center"
p={theme.spacing(12)}
>
- {t("goBackTo")}
-
- {t("authLoginTitle")}
+
+
+ ),
+ }}
+ />
diff --git a/client/src/Pages/Auth/Login/Components/EmailStep.jsx b/client/src/Pages/Auth/Login/Components/EmailStep.jsx
index 20e8d6bfb..f3f56ec26 100644
--- a/client/src/Pages/Auth/Login/Components/EmailStep.jsx
+++ b/client/src/Pages/Auth/Login/Components/EmailStep.jsx
@@ -35,8 +35,8 @@ const EmailStep = ({ form, errors, onSubmit, onChange }) => {
position="relative"
>
- {t("authLoginTitle")}
- {t("authLoginEnterEmail")}
+ {t("auth.login.heading")}
+ {t("auth.login.subheadings.stepOne")}
{
{
},
}}
>
- {t("continue")}
+ {t("auth.common.navigation.continue")}
diff --git a/client/src/Pages/Auth/Login/Components/ForgotPasswordLabel.jsx b/client/src/Pages/Auth/Login/Components/ForgotPasswordLabel.jsx
index a9cb17d7c..5fc2430c7 100644
--- a/client/src/Pages/Auth/Login/Components/ForgotPasswordLabel.jsx
+++ b/client/src/Pages/Auth/Login/Components/ForgotPasswordLabel.jsx
@@ -1,7 +1,7 @@
import { Box, Typography, useTheme } from "@mui/material";
import PropTypes from "prop-types";
import { useNavigate } from "react-router";
-import { useTranslation } from "react-i18next";
+import { Trans, useTranslation } from "react-i18next";
const ForgotPasswordLabel = ({ email, errorEmail }) => {
const theme = useTheme();
@@ -22,16 +22,20 @@ const ForgotPasswordLabel = ({ email, errorEmail }) => {
display="inline-block"
color={theme.palette.primary.main}
>
- {t("authForgotPasswordTitle")}
-
-
- {t("authForgotPasswordResetPassword")}
+
+ ),
+ }}
+ />
);
diff --git a/client/src/Pages/Auth/Login/Components/PasswordStep.jsx b/client/src/Pages/Auth/Login/Components/PasswordStep.jsx
index 1fbdf93f0..5aa56fbb0 100644
--- a/client/src/Pages/Auth/Login/Components/PasswordStep.jsx
+++ b/client/src/Pages/Auth/Login/Components/PasswordStep.jsx
@@ -38,8 +38,8 @@ const PasswordStep = ({ form, errors, onSubmit, onChange, onBack }) => {
textAlign="center"
>
- {t("authLoginTitle")}
- {t("authLoginEnterPassword")}
+ {t("auth.login.heading")}
+ {t("auth.login.subheadings.stepTwo")}
{
}
/>
@@ -95,7 +95,7 @@ const PasswordStep = ({ form, errors, onSubmit, onChange, onBack }) => {
}}
>
- {t("commonBack")}{" "}
+ {t("auth.common.navigation.back")}{" "}
diff --git a/client/src/Pages/Auth/Login/Login.jsx b/client/src/Pages/Auth/Login/Login.jsx
index f3b2253d2..d2be3af35 100644
--- a/client/src/Pages/Auth/Login/Login.jsx
+++ b/client/src/Pages/Auth/Login/Login.jsx
@@ -15,7 +15,7 @@ import PasswordStep from "./Components/PasswordStep";
import ThemeSwitch from "../../../Components/ThemeSwitch";
import ForgotPasswordLabel from "./Components/ForgotPasswordLabel";
import LanguageSelector from "../../../Components/LanguageSelector";
-import { useTranslation } from "react-i18next";
+import { Trans, useTranslation } from "react-i18next";
const DEMO = import.meta.env.VITE_APP_DEMO;
@@ -83,8 +83,8 @@ const Login = () => {
if (error) {
const errorMessage = error.details[0].message;
const translatedMessage = errorMessage.startsWith("auth")
- ? t(errorMessage)
- : errorMessage;
+ ? t(errorMessage) // Localization keys are in validation.js
+ : errorMessage; // FIXME: Potential untranslated string
setErrors((prev) => ({ ...prev, email: translatedMessage }));
createToast({ body: translatedMessage });
} else {
@@ -104,31 +104,31 @@ const Login = () => {
body:
error.details && error.details.length > 0
? error.details[0].message.startsWith("auth")
- ? t(error.details[0].message)
- : error.details[0].message
- : t("Error validating data."),
+ ? t(error.details[0].message) // Localization keys are in validation.js
+ : error.details[0].message // FIXME: Potential untranslated string
+ : t("auth.common.errors.validation"),
});
} else {
const action = await dispatch(login(form));
if (action.payload.success) {
navigate("/uptime");
createToast({
- body: t("welcomeBack"),
+ body: t("auth.login.toasts.success"),
});
} else {
if (action.payload) {
if (action.payload.msg === "Incorrect password")
setErrors({
- password: "The password you provided does not match our records",
+ password: t("auth.common.fields.password.errors.incorrect"),
});
// dispatch errors
createToast({
- body: action.payload.msg,
+ body: t("auth.login.toasts.incorrectPassword"),
});
} else {
// unknown errors
createToast({
- body: "Unknown error.",
+ body: t("common.toasts.unknownError"),
});
}
}
@@ -237,21 +237,25 @@ const Login = () => {
display="inline-block"
color={theme.palette.primary.main}
>
- {t("doNotHaveAccount")}
-
- navigate("/register")}
- >
- {t("registerHere")}
+ navigate("/register")}
+ />
+ ),
+ }}
+ />
diff --git a/client/src/Pages/Auth/NewPasswordConfirmed.jsx b/client/src/Pages/Auth/NewPasswordConfirmed.jsx
index f1980e23b..aba1fefea 100644
--- a/client/src/Pages/Auth/NewPasswordConfirmed.jsx
+++ b/client/src/Pages/Auth/NewPasswordConfirmed.jsx
@@ -8,7 +8,7 @@ import Background from "../../assets/Images/background-grid.svg?react";
import ConfirmIcon from "../../assets/icons/check-outlined.svg?react";
import Logo from "../../assets/icons/checkmate-icon.svg?react";
import IconBox from "../../Components/IconBox";
-import { useTranslation } from "react-i18next";
+import { Trans, useTranslation } from "react-i18next";
import "./index.css";
const NewPasswordConfirmed = () => {
@@ -96,11 +96,11 @@ const NewPasswordConfirmed = () => {
svgHeight={24}
mb={theme.spacing(4)}
>
-
+
- {t("passwordreset")}
- {t("authNewPasswordConfirmed")}
+ {t("auth.forgotPassword.heading")}
+ {t("auth.forgotPassword.subheadings.stepFour")}
@@ -118,15 +118,21 @@ const NewPasswordConfirmed = () => {
textAlign="center"
p={theme.spacing(12)}
>
- {t("goBackTo")}
-
- {t("authLoginTitle")}
+
+
+ ),
+ }}
+ />
diff --git a/client/src/Pages/Auth/Register/Register.jsx b/client/src/Pages/Auth/Register/Register.jsx
index 49997e8cb..390aa6e36 100644
--- a/client/src/Pages/Auth/Register/Register.jsx
+++ b/client/src/Pages/Auth/Register/Register.jsx
@@ -35,11 +35,15 @@ const LandingPage = ({ isSuperAdmin, onSignup }) => {
textAlign="center"
>
- {t("signUp")}
+
+ {isSuperAdmin
+ ? t("auth.registration.heading.superAdmin")
+ : t("auth.registration.heading.user")}
+
{isSuperAdmin
- ? t("authRegisterCreateSuperAdminAccount")
- : t("authRegisterCreateAccount")}
+ ? t("auth.registration.description.superAdmin")
+ : t("auth.registration.description.user")}
@@ -62,13 +66,15 @@ const LandingPage = ({ isSuperAdmin, onSignup }) => {
}}
>
- {t("authRegisterSignUpWithEmail")}
+ {isSuperAdmin
+ ? t("auth.registration.gettingStartedButton.superAdmin")
+ : t("auth.registration.gettingStartedButton.user")}
{
newErrors[err.path[0]] = err.message;
});
setErrors(newErrors);
- createToast({ body: error.details[0].message || "Error validating data." });
+ // Localization keys are in validation.js
+ createToast({ body: t(error.details[0].message || "auth.common.errors.validation") });
};
const handleStepOne = async (e) => {
@@ -246,7 +253,7 @@ const Register = ({ isSuperAdmin }) => {
const authToken = action.payload.data;
navigate("/uptime");
createToast({
- body: "Welcome! Your account was created successfully.",
+ body: t("auth.registration.toasts.success"),
});
} else {
if (action.payload) {
@@ -255,7 +262,7 @@ const Register = ({ isSuperAdmin }) => {
});
} else {
createToast({
- body: "Unknown error.",
+ body: t("common.toasts.unknownError"),
});
}
}
@@ -346,6 +353,7 @@ const Register = ({ isSuperAdmin }) => {
/>
) : step === 1 ? (
{
/>
) : step === 2 ? (
{
/>
) : step === 3 ? (
{
p={theme.spacing(12)}
>
- {t("authRegisterAlreadyHaveAccount")}
-
- {
- navigate("/login");
- }}
- sx={{ userSelect: "none", color: theme.palette.accent.main }}
- >
- {t("authRegisterLoginLink")}
+ {
+ navigate("/login");
+ }}
+ sx={{ userSelect: "none", color: theme.palette.accent.main }}
+ />
+ ),
+ }}
+ />
diff --git a/client/src/Pages/Auth/Register/StepOne/index.jsx b/client/src/Pages/Auth/Register/StepOne/index.jsx
index cb66f6704..575a9132f 100644
--- a/client/src/Pages/Auth/Register/StepOne/index.jsx
+++ b/client/src/Pages/Auth/Register/StepOne/index.jsx
@@ -7,6 +7,7 @@ import TextInput from "../../../../Components/Inputs/TextInput";
import { useTranslation } from "react-i18next";
StepOne.propTypes = {
+ isSuperAdmin: PropTypes.bool,
form: PropTypes.object,
errors: PropTypes.object,
onSubmit: PropTypes.func,
@@ -18,6 +19,7 @@ StepOne.propTypes = {
* Renders the first step of the sign up process.
*
* @param {Object} props
+ * @param {boolean} props.isSuperAdmin - Whether the user is creating and admin account
* @param {Object} props.form - Form state object.
* @param {Object} props.errors - Object containing form validation errors.
* @param {Function} props.onSubmit - Callback function to handle form submission.
@@ -26,7 +28,7 @@ StepOne.propTypes = {
* @returns {JSX.Element}
*/
-function StepOne({ form, errors, onSubmit, onChange, onBack }) {
+function StepOne({ isSuperAdmin, form, errors, onSubmit, onChange, onBack }) {
const theme = useTheme();
const inputRef = useRef(null);
const { t } = useTranslation();
@@ -45,8 +47,12 @@ function StepOne({ form, errors, onSubmit, onChange, onBack }) {
textAlign="center"
>
- {t("signUp")}
- {t("authRegisterStepOnePersonalDetails")}
+
+ {isSuperAdmin
+ ? t("auth.registration.heading.superAdmin")
+ : t("auth.registration.heading.user")}
+
+ {t("auth.registration.subheadings.stepOne")}
- {t("commonBack")}
+ {t("auth.common.navigation.back")}
diff --git a/client/src/Pages/Auth/Register/StepThree/index.jsx b/client/src/Pages/Auth/Register/StepThree/index.jsx
index 1af8a60dc..f34c7af7e 100644
--- a/client/src/Pages/Auth/Register/StepThree/index.jsx
+++ b/client/src/Pages/Auth/Register/StepThree/index.jsx
@@ -8,6 +8,7 @@ import Check from "../../../../Components/Check/Check";
import { useValidatePassword } from "../../hooks/useValidatePassword";
import { useTranslation } from "react-i18next";
StepThree.propTypes = {
+ isSuperAdmin: PropTypes.bool,
onSubmit: PropTypes.func,
onBack: PropTypes.func,
};
@@ -16,11 +17,12 @@ StepThree.propTypes = {
* Renders the third step of the sign up process.
*
* @param {Object} props
+ * @param {boolean} props.isSuperAdmin - Whether the user is creating and admin account
* @param {Function} props.onSubmit - Callback function to handle form submission.
* @param {Function} props.onBack - Callback function to handle "Back" button click.
* @returns {JSX.Element}
*/
-function StepThree({ onSubmit, onBack }) {
+function StepThree({ isSuperAdmin, onSubmit, onBack }) {
const theme = useTheme();
const inputRef = useRef(null);
const { t } = useTranslation();
@@ -39,8 +41,12 @@ function StepThree({ onSubmit, onBack }) {
textAlign="center"
>
- {t("signUp")}
- {t("createPassword")}
+
+ {isSuperAdmin
+ ? t("auth.registration.heading.superAdmin")
+ : t("auth.registration.heading.user")}
+
+ {t("auth.registration.subheadings.stepThree")}
@@ -141,7 +151,7 @@ function StepThree({ onSubmit, onBack }) {
}}
>
- {t("commonBack")}
+ {t("auth.common.navigation.back")}
diff --git a/client/src/Pages/Auth/Register/StepTwo/index.jsx b/client/src/Pages/Auth/Register/StepTwo/index.jsx
index 4fa0e8ebc..306a2b750 100644
--- a/client/src/Pages/Auth/Register/StepTwo/index.jsx
+++ b/client/src/Pages/Auth/Register/StepTwo/index.jsx
@@ -7,6 +7,7 @@ import TextInput from "../../../../Components/Inputs/TextInput";
import { useTranslation } from "react-i18next";
StepTwo.propTypes = {
+ isSuperAdmin: PropTypes.bool,
form: PropTypes.object,
errors: PropTypes.object,
onSubmit: PropTypes.func,
@@ -18,6 +19,7 @@ StepTwo.propTypes = {
* Renders the second step of the sign up process.
*
* @param {Object} props
+ * @param {boolean} props.isSuperAdmin - Whether the user is creating and admin account
* @param {Object} props.form - Form state object.
* @param {Object} props.errors - Object containing form validation errors.
* @param {Function} props.onSubmit - Callback function to handle form submission.
@@ -25,7 +27,7 @@ StepTwo.propTypes = {
* @param {Function} props.onBack - Callback function to handle "Back" button click.
* @returns {JSX.Element}
*/
-function StepTwo({ form, errors, onSubmit, onChange, onBack }) {
+function StepTwo({ isSuperAdmin, form, errors, onSubmit, onChange, onBack }) {
const theme = useTheme();
const inputRef = useRef(null);
const { t } = useTranslation();
@@ -43,8 +45,12 @@ function StepTwo({ form, errors, onSubmit, onChange, onBack }) {
textAlign="center"
>
- {t("signUp")}
- {t("enterEmail")}
+
+ {isSuperAdmin
+ ? t("auth.registration.heading.superAdmin")
+ : t("auth.registration.heading.user")}
+
+ {t("auth.registration.subheadings.stepTwo")}
(e.target.value = e.target.value.toLowerCase())}
onChange={onChange}
error={errors.email ? true : false}
- helperText={
- errors.email &&
- (errors.email.includes("required")
- ? t("authRegisterEmailRequired")
- : errors.email.includes("valid email")
- ? t("authRegisterEmailInvalid")
- : t(errors.email))
- }
+ helperText={t(errors.email)} // Localization keys are in validation.js
ref={inputRef}
/>
- {t("commonBack")}
+ {t("auth.common.navigation.back")}
diff --git a/client/src/Pages/Auth/SetNewPassword.jsx b/client/src/Pages/Auth/SetNewPassword.jsx
index 21dfe2d39..c2cd64b23 100644
--- a/client/src/Pages/Auth/SetNewPassword.jsx
+++ b/client/src/Pages/Auth/SetNewPassword.jsx
@@ -16,7 +16,7 @@ import Logo from "../../assets/icons/checkmate-icon.svg?react";
import Background from "../../assets/Images/background-grid.svg?react";
import "./index.css";
import { useValidatePassword } from "./hooks/useValidatePassword";
-import { useTranslation } from "react-i18next";
+import { Trans, useTranslation } from "react-i18next";
const SetNewPassword = () => {
const navigate = useNavigate();
@@ -43,20 +43,20 @@ const SetNewPassword = () => {
createToast({
body:
error.details && error.details.length > 0
- ? error.details[0].message
- : "Error validating data.",
+ ? error.details[0].message // FIXME: Potential untranslated string
+ : t("auth.common.errors.validation"),
});
} else {
const action = await dispatch(setNewPassword({ token, form }));
if (action.payload.success) {
navigate("/new-password-confirmed");
createToast({
- body: "Your password was reset successfully.",
+ body: t("auth.forgotPassword.toasts.success"),
});
} else {
const errorMessage = action.payload
- ? action.payload.msg
- : "Unable to reset password. Please try again later or contact support.";
+ ? action.payload.msg // FIXME: Potential untranslated string
+ : t("auth.forgotPassword.toasts.error");
createToast({
body: errorMessage,
});
@@ -140,11 +140,11 @@ const SetNewPassword = () => {
svgHeight={24}
mb={theme.spacing(4)}
>
-
+
- {t("authSetNewPasswordTitle")}
- {t("authSetNewPasswordDescription")}
+ {t("auth.forgotPassword.heading")}
+ {t("auth.forgotPassword.subheadings.stepThree")}
{
id={passwordId}
type="password"
name="password"
- label={t("commonPassword")}
+ label={t("auth.common.inputs.password.label")}
isRequired={true}
placeholder="••••••••"
value={form.password}
onChange={handleChange}
error={errors.password ? true : false}
- helperText={errors.password}
+ helperText={errors.password === "auth.common.inputs.password.errors.empty"
+ ? t(errors.password)
+ : ""} // Other errors are related to required password conditions and are visualized below the input
endAdornment={}
/>
@@ -185,13 +187,13 @@ const SetNewPassword = () => {
id={confirmPasswordId}
type="password"
name="confirm"
- label={t("authSetNewPasswordConfirmPassword")}
+ label={t("auth.common.inputs.passwordConfirm.label")}
isRequired={true}
- placeholder="••••••••"
+ placeholder={t("auth.common.inputs.passwordConfirm.placeholder")}
value={form.confirm}
onChange={handleChange}
error={errors.confirm ? true : false}
- helperText={errors.confirm}
+ helperText={t(errors.confirm)} // Localization keys are in validation.js
endAdornment={}
/>
@@ -200,33 +202,33 @@ const SetNewPassword = () => {
mb={theme.spacing(12)}
>
@@ -243,7 +245,7 @@ const SetNewPassword = () => {
}
sx={{ width: "100%", maxWidth: 400 }}
>
- {t("authSetNewPasswordResetPassword")}
+ {t("auth.forgotPassword.buttons.resetPassword")}
@@ -251,15 +253,21 @@ const SetNewPassword = () => {
textAlign="center"
p={theme.spacing(12)}
>
- {t("goBackTo")} —
- navigate("/login")}
- sx={{ userSelect: "none" }}
- >
- {t("authLoginTitle")}
+
+ navigate("/login")}
+ sx={{ userSelect: "none" }}
+ />
+ ),
+ }}
+ />
diff --git a/client/src/Validation/validation.js b/client/src/Validation/validation.js
index acb05116e..1074f3bb2 100644
--- a/client/src/Validation/validation.js
+++ b/client/src/Validation/validation.js
@@ -9,10 +9,9 @@ const nameSchema = joi
.trim()
.pattern(/^[\p{L}\p{M}''\- ]+$/u)
.messages({
- "string.empty": "Name is required",
- "string.max": "Name must be less than 50 characters",
- "string.pattern.base":
- "Name must contain only letters, spaces, apostrophes, or hyphens",
+ "string.empty": "auth.common.inputs.firstName.errors.empty",
+ "string.max": "auth.common.inputs.firstName.errors.length",
+ "string.pattern.base": "auth.common.inputs.firstName.errors.pattern",
});
const lastnameSchema = joi
@@ -21,10 +20,9 @@ const lastnameSchema = joi
.trim()
.pattern(/^[\p{L}\p{M}''\- ]+$/u)
.messages({
- "string.empty": "Surname is required",
- "string.max": "Surname must be less than 50 characters",
- "string.pattern.base":
- "Surname must contain only letters, spaces, apostrophes, or hyphens",
+ "string.empty": "auth.common.inputs.lastName.errors.empty",
+ "string.max": "auth.common.inputs.lastName.errors.length",
+ "string.pattern.base": "auth.common.inputs.lastName.errors.pattern",
});
const newPasswordSchema = joi
@@ -56,12 +54,12 @@ const newPasswordSchema = joi
return value;
})
.messages({
- "string.empty": "Password is required",
- "string.min": "Password must be at least 8 characters long",
- uppercase: "Password must contain at least one uppercase letter",
- lowercase: "Password must contain at least one lowercase letter",
- number: "Password must contain at least one number",
- special: "Password must contain at least one special character",
+ "string.empty": "auth.common.inputs.password.errors.empty",
+ "string.min": "auth.common.inputs.password.errors.length",
+ uppercase: "auth.common.inputs.password.errors.uppercase",
+ lowercase: "auth.common.inputs.password.errors.lowercase",
+ number: "auth.common.inputs.password.errors.number",
+ special: "auth.common.inputs.password.errors.special",
});
const newOrChangedCredentials = joi.object({
@@ -73,8 +71,8 @@ const newOrChangedCredentials = joi.object({
.email({ tlds: { allow: false } })
.lowercase()
.messages({
- "string.empty": "authRegisterEmailRequired",
- "string.email": "authRegisterEmailInvalid",
+ "string.empty": "auth.common.inputs.email.errors.empty",
+ "string.email": "auth.common.inputs.email.errors.invalid",
}),
password: newPasswordSchema,
newPassword: newPasswordSchema,
@@ -89,8 +87,8 @@ const newOrChangedCredentials = joi.object({
return value;
})
.messages({
- "string.empty": "This field can't be empty",
- different: "Passwords do not match",
+ "string.empty": "auth.common.inputs.passwordConfirm.errors.empty",
+ different: "auth.common.inputs.passwordConfirm.errors.different",
}),
role: joi.array(),
teamId: joi.string().allow("").optional(),
@@ -104,13 +102,13 @@ const loginCredentials = joi.object({
.email({ tlds: { allow: false } })
.lowercase()
.messages({
- "string.empty": "authRegisterEmailRequired",
- "string.email": "authRegisterEmailInvalid",
+ "string.empty": "auth.common.inputs.email.errors.empty",
+ "string.email": "auth.common.inputs.email.errors.invalid",
}),
password: joi
.string()
.messages({
- "string.empty": "Please enter your password",
+ "string.empty": "auth.common.inputs.password.errors.empty",
}),
});
diff --git a/client/src/locales/cs.json b/client/src/locales/cs.json
index 5f2fde219..3bb64e6c9 100644
--- a/client/src/locales/cs.json
+++ b/client/src/locales/cs.json
@@ -7,7 +7,164 @@
},
"toasts": {
"networkError": "Chyba připojení k síti",
- "checkConnection": "Zkontrolujte prosím své 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? Obnovte si ho",
+ "register": "Ještě nemáte účet? Zaregistrujte se"
+ },
+ "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 Podmínkami použití (anglicky) a Podmínkami zpracování osobních údajů (anglicky).",
+ "links": {
+ "login": "Máte již vytvořený účet? Přihlašte se"
+ },
+ "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 ",
+ "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 Přihlášení",
+ "resend": "Nedorazil vám e-mail? Klepněte pro opětovné zaslání"
+ },
+ "toasts": {
+ "sent": "Instrukce vám dorazí na .",
+ "emailNotFound": "Nepodařilo se nalézt e-mailovou adresu.",
+ "redirect": "Přesměrování proběhne za ...",
+ "success": "Heslo bylo úspěšně obnoveno.",
+ "error": "Obnova hesla se nepodařila. Zkuste to prosím znovu nebo kontaktujte podporu."
+ }
}
},
"errorPages": {
@@ -25,24 +182,12 @@
}
},
"dontHaveAccount": "",
- "email": "",
"forgotPassword": "",
- "password": "",
- "signUp": "",
"submit": "",
"title": "",
- "continue": "",
"enterEmail": "",
- "authLoginTitle": "",
- "authLoginEnterPassword": "",
"commonPassword": "",
- "commonBack": "",
- "authForgotPasswordTitle": "",
- "authForgotPasswordResetPassword": "",
"createPassword": "",
- "createAPassword": "",
- "authRegisterAlreadyHaveAccount": "",
- "authLoginEnterEmail": "",
"authRegisterTitle": "",
"authRegisterStepOneTitle": "",
"authRegisterStepOneDescription": "",
@@ -50,36 +195,15 @@
"authRegisterStepTwoDescription": "",
"authRegisterStepThreeTitle": "",
"authRegisterStepThreeDescription": "",
- "authForgotPasswordDescription": "",
"authForgotPasswordSendInstructions": "",
"authForgotPasswordBackTo": "",
"authCheckEmailTitle": "",
- "authCheckEmailDescription": "",
"authCheckEmailResendEmail": "",
"authCheckEmailBackTo": "",
- "goBackTo": "",
- "authCheckEmailDidntReceiveEmail": "",
- "authCheckEmailClickToResend": "",
"authSetNewPasswordTitle": "",
- "authSetNewPasswordDescription": "",
"authSetNewPasswordNewPassword": "",
- "authSetNewPasswordConfirmPassword": "",
- "confirmPassword": "",
- "authSetNewPasswordResetPassword": "",
"authSetNewPasswordBackTo": "",
- "authPasswordMustBeAtLeast": "",
- "authPasswordCharactersLong": "",
- "authPasswordMustContainAtLeast": "",
- "authPasswordSpecialCharacter": "",
- "authPasswordOneNumber": "",
- "authPasswordUpperCharacter": "",
- "authPasswordLowerCharacter": "",
- "authPasswordConfirmAndPassword": "",
- "authPasswordMustMatch": "",
"authRegisterCreateAccount": "",
- "authRegisterCreateSuperAdminAccount": "",
- "authRegisterSignUpWithEmail": "",
- "authRegisterBySigningUp": "",
"distributedStatusHeaderText": "",
"distributedStatusSubHeaderText": "",
"settingsGeneralSettings": "",
@@ -140,9 +264,6 @@
"city": "",
"response": "",
"passwordreset": "",
- "authRegisterStepOnePersonalDetails": "",
- "authCheckEmailOpenEmailButton": "",
- "authNewPasswordConfirmed": "",
"monitorStatusUp": "",
"monitorStatusDown": "",
"webhookSendSuccess": "",
@@ -416,10 +537,7 @@
"DeleteDescriptionText": "",
"DeleteAccountWarning": "",
"DeleteWarningTitle": "",
- "authRegisterFirstName": "",
- "authRegisterLastName": "",
"authRegisterEmail": "",
- "authRegisterEmailRequired": "",
"bulkImport": {
"title": "",
"selectFileTips": "",
@@ -431,8 +549,6 @@
"noFileSelected": "",
"fallbackPage": ""
},
- "welcomeBack": "",
- "authRegisterLoginLink": "",
"validationNameRequired": "",
"validationNameTooLong": "",
"validationNameInvalidCharacters": "",
@@ -440,10 +556,7 @@
"settingsSystemResetDescription": "",
"DeleteAccountTitle": "",
"DeleteAccountButton": "",
- "authRegisterEmailInvalid": "",
"publicLink": "",
- "doNotHaveAccount": "",
- "registerHere": "",
"maskedPageSpeedKeyPlaceholder": "",
"pageSpeedApiKeyFieldTitle": "",
"pageSpeedApiKeyFieldLabel": "",
@@ -528,7 +641,6 @@
"state": "",
"statusBreadCrumbsStatusPages": "",
"statusBreadCrumbsDetails": "",
- "authForgotPasswordInstructions": "",
"settingsThemeModeLight": "",
"settingsThemeModeDark": "",
"settingsClearAllStatsDialogCancel": "",
diff --git a/client/src/locales/de.json b/client/src/locales/de.json
index fb1a58019..753af8b3c 100644
--- a/client/src/locales/de.json
+++ b/client/src/locales/de.json
@@ -7,7 +7,164 @@
},
"toasts": {
"networkError": "",
- "checkConnection": ""
+ "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? Passwort zurücksetzen",
+ "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": {
@@ -25,24 +182,11 @@
}
},
"dontHaveAccount": "Noch kein Konto",
- "email": "E-Mail",
"forgotPassword": "Passwort vergessen",
- "password": "passwort",
- "signUp": "Registrieren",
"submit": "Absenden",
"title": "Titel",
- "continue": "Weiter",
"enterEmail": "Geben Sie Ihre E-Mail-Adresse ein",
- "authLoginTitle": "Anmelden",
- "authLoginEnterPassword": "Geben Sie Ihr Passwort ein",
"commonPassword": "Passwort",
- "commonBack": "Zurück",
- "authForgotPasswordTitle": "Passwort vergessen?",
- "authForgotPasswordResetPassword": "Passwort zurücksetzen",
- "createPassword": "Erstelle dein Passwort",
- "createAPassword": "Passwort",
- "authRegisterAlreadyHaveAccount": "Hast du schon eine Account?",
- "authLoginEnterEmail": "",
"authRegisterTitle": "",
"authRegisterStepOneTitle": "",
"authRegisterStepOneDescription": "",
@@ -50,36 +194,15 @@
"authRegisterStepTwoDescription": "",
"authRegisterStepThreeTitle": "",
"authRegisterStepThreeDescription": "",
- "authForgotPasswordDescription": "",
"authForgotPasswordSendInstructions": "",
"authForgotPasswordBackTo": "",
"authCheckEmailTitle": "",
- "authCheckEmailDescription": "",
"authCheckEmailResendEmail": "",
"authCheckEmailBackTo": "",
- "goBackTo": "",
- "authCheckEmailDidntReceiveEmail": "",
- "authCheckEmailClickToResend": "",
"authSetNewPasswordTitle": "",
- "authSetNewPasswordDescription": "",
"authSetNewPasswordNewPassword": "",
- "authSetNewPasswordConfirmPassword": "",
- "confirmPassword": "",
- "authSetNewPasswordResetPassword": "",
"authSetNewPasswordBackTo": "",
- "authPasswordMustBeAtLeast": "",
- "authPasswordCharactersLong": "",
- "authPasswordMustContainAtLeast": "",
- "authPasswordSpecialCharacter": "",
- "authPasswordOneNumber": "",
- "authPasswordUpperCharacter": "",
- "authPasswordLowerCharacter": "",
- "authPasswordConfirmAndPassword": "",
- "authPasswordMustMatch": "",
"authRegisterCreateAccount": "",
- "authRegisterCreateSuperAdminAccount": "",
- "authRegisterSignUpWithEmail": "",
- "authRegisterBySigningUp": "",
"distributedStatusHeaderText": "",
"distributedStatusSubHeaderText": "",
"settingsGeneralSettings": "",
@@ -140,9 +263,6 @@
"city": "",
"response": "",
"passwordreset": "",
- "authRegisterStepOnePersonalDetails": "",
- "authCheckEmailOpenEmailButton": "",
- "authNewPasswordConfirmed": "",
"monitorStatusUp": "",
"monitorStatusDown": "",
"webhookSendSuccess": "",
@@ -416,10 +536,7 @@
"DeleteDescriptionText": "",
"DeleteAccountWarning": "",
"DeleteWarningTitle": "",
- "authRegisterFirstName": "",
- "authRegisterLastName": "",
"authRegisterEmail": "",
- "authRegisterEmailRequired": "",
"bulkImport": {
"title": "",
"selectFileTips": "",
@@ -431,8 +548,6 @@
"noFileSelected": "",
"fallbackPage": ""
},
- "welcomeBack": "",
- "authRegisterLoginLink": "",
"validationNameRequired": "",
"validationNameTooLong": "",
"validationNameInvalidCharacters": "",
@@ -440,10 +555,7 @@
"settingsSystemResetDescription": "",
"DeleteAccountTitle": "",
"DeleteAccountButton": "",
- "authRegisterEmailInvalid": "",
"publicLink": "",
- "doNotHaveAccount": "",
- "registerHere": "",
"maskedPageSpeedKeyPlaceholder": "",
"pageSpeedApiKeyFieldTitle": "",
"pageSpeedApiKeyFieldLabel": "",
@@ -528,7 +640,6 @@
"state": "",
"statusBreadCrumbsStatusPages": "",
"statusBreadCrumbsDetails": "",
- "authForgotPasswordInstructions": "",
"settingsThemeModeLight": "",
"settingsThemeModeDark": "",
"settingsClearAllStatsDialogCancel": "",
diff --git a/client/src/locales/en.json b/client/src/locales/en.json
index 145aa0af3..af06f419b 100644
--- a/client/src/locales/en.json
+++ b/client/src/locales/en.json
@@ -7,7 +7,164 @@
},
"toasts": {
"networkError": "Network error",
- "checkConnection": "Please check your connection"
+ "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? Reset password",
+ "register": "Do not have an account? Register here"
+ },
+ "toasts": {
+ "success": "Welcome back! You're successfully logged in.",
+ "incorrectPassword": "Incorrect password"
+ }
+ },
+ "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 Terms of Service and Privacy Policy.",
+ "links": {
+ "login": "Already have an account? Log In"
+ },
+ "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 ",
+ "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 Log In",
+ "resend": "Didn't receive the email? Click to resend"
+ },
+ "toasts": {
+ "sent": "Instructions sent to .",
+ "emailNotFound": "Email not found.",
+ "redirect": "Redirecting in ...",
+ "success": "Your password was reset successfully.",
+ "error": "Unable to reset password. Please try again later or contact support."
+ }
}
},
"errorPages": {
@@ -25,24 +182,11 @@
}
},
"dontHaveAccount": "Don't have account",
- "email": "E-mail",
"forgotPassword": "Forgot Password",
- "password": "Password",
- "signUp": "Sign Up",
"submit": "Submit",
"title": "Title",
- "continue": "Continue",
"enterEmail": "Enter your email",
- "authLoginTitle": "Log In",
- "authLoginEnterPassword": "Enter your password",
"commonPassword": "Password",
- "commonBack": "Back",
- "authForgotPasswordTitle": "Forgot password?",
- "authForgotPasswordResetPassword": "Reset password",
- "createPassword": "Create your password",
- "createAPassword": "Password",
- "authRegisterAlreadyHaveAccount": "Already have an account?",
- "authLoginEnterEmail": "Enter your email",
"authRegisterTitle": "Create an account",
"authRegisterStepOneTitle": "Create your account",
"authRegisterStepOneDescription": "Enter your details to get started",
@@ -50,36 +194,15 @@
"authRegisterStepTwoDescription": "Tell us more about yourself",
"authRegisterStepThreeTitle": "Almost done!",
"authRegisterStepThreeDescription": "Review your information",
- "authForgotPasswordDescription": "No worries, we'll send you reset instructions.",
"authForgotPasswordSendInstructions": "Send instructions",
"authForgotPasswordBackTo": "Back to",
"authCheckEmailTitle": "Check your email",
- "authCheckEmailDescription": "We sent a password reset link to",
"authCheckEmailResendEmail": "Resend email",
"authCheckEmailBackTo": "Back to",
- "goBackTo": "Go back to",
- "authCheckEmailDidntReceiveEmail": "Didn't receive the email?",
- "authCheckEmailClickToResend": "Click to resend",
"authSetNewPasswordTitle": "Set new password",
- "authSetNewPasswordDescription": "Your new password must be different from previously used passwords.",
"authSetNewPasswordNewPassword": "New password",
- "authSetNewPasswordConfirmPassword": "Confirm password",
- "confirmPassword": "Re-enter password to confirm",
- "authSetNewPasswordResetPassword": "Reset password",
"authSetNewPasswordBackTo": "Back to",
- "authPasswordMustBeAtLeast": "Must be at least",
- "authPasswordCharactersLong": "8 characters long",
- "authPasswordMustContainAtLeast": "Must contain at least",
- "authPasswordSpecialCharacter": "one special character",
- "authPasswordOneNumber": "one number",
- "authPasswordUpperCharacter": "one upper character",
- "authPasswordLowerCharacter": "one lower character",
- "authPasswordConfirmAndPassword": "Confirm password and password",
- "authPasswordMustMatch": "Passwords must match",
"authRegisterCreateAccount": "Create your account to get started",
- "authRegisterCreateSuperAdminAccount": "Create your super admin account to get started",
- "authRegisterSignUpWithEmail": "Create super admin account",
- "authRegisterBySigningUp": "By creating an account, you agree to our Terms of Service and Privacy Policy.",
"distributedStatusHeaderText": "Real-time, real-device coverage",
"distributedStatusSubHeaderText": "Powered by millions devices worldwide, view a system performance by global region, country or city",
"settingsGeneralSettings": "General settings",
@@ -136,9 +259,6 @@
"city": "CITY",
"response": "RESPONSE",
"passwordreset": "Password Reset",
- "authRegisterStepOnePersonalDetails": "Enter your personal details",
- "authCheckEmailOpenEmailButton": "Open email app",
- "authNewPasswordConfirmed": "Your password has been successfully reset. Click below to log in magically.",
"monitorStatusUp": "Monitor {name} ({url}) is now UP and responding",
"monitorStatusDown": "Monitor {name} ({url}) is DOWN and not responding",
"webhookSendSuccess": "Webhook notification sent successfully",
@@ -408,10 +528,7 @@
"DeleteDescriptionText": "This will remove the account and all associated data from the server. This isn't reversible.",
"DeleteAccountWarning": "Removing your account means you won't be able to sign in again and all your data will be removed. This isn't reversible.",
"DeleteWarningTitle": "Really remove this account?",
- "authRegisterFirstName": "Name",
- "authRegisterLastName": "Surname",
"authRegisterEmail": "Email",
- "authRegisterEmailRequired": "To continue, please enter your email address",
"bulkImport": {
"title": "Bulk Import",
"selectFileTips": "Select CSV file to upload",
@@ -423,8 +540,6 @@
"noFileSelected": "No file selected",
"fallbackPage": "Import a file to upload a list of servers in bulk"
},
- "welcomeBack": "Welcome back! You're successfully logged in.",
- "authRegisterLoginLink": "Log In",
"validationNameRequired": "Please enter your name",
"validationNameTooLong": "Name should be less than 50 characters",
"validationNameInvalidCharacters": "Please use only letters, spaces, apostrophes, or hyphens",
@@ -432,10 +547,7 @@
"settingsSystemResetDescription": "Remove all monitors from your system.",
"DeleteAccountTitle": "Remove account",
"DeleteAccountButton": "Remove account",
- "authRegisterEmailInvalid": "Please enter a valid email address",
"publicLink": "Public link",
- "doNotHaveAccount": "Do not have an account?",
- "registerHere": "Register here",
"maskedPageSpeedKeyPlaceholder": "*************************************",
"pageSpeedApiKeyFieldTitle": "Google PageSpeed API key",
"pageSpeedApiKeyFieldLabel": "PageSpeed API key",
@@ -519,7 +631,6 @@
"state": "State",
"statusBreadCrumbsStatusPages": "Status Pages",
"statusBreadCrumbsDetails": "Details",
- "authForgotPasswordInstructions": "No worries, we'll send you reset instructions.",
"settingsThemeModeLight": "Light",
"settingsThemeModeDark": "Dark",
"settingsClearAllStatsDialogCancel": "Cancel",
diff --git a/client/src/locales/es.json b/client/src/locales/es.json
index 722833d99..5c0f551ad 100644
--- a/client/src/locales/es.json
+++ b/client/src/locales/es.json
@@ -7,7 +7,164 @@
},
"toasts": {
"networkError": "",
- "checkConnection": ""
+ "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? Restablecer contraseñ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 ",
+ "stepThree": "",
+ "stepFour": ""
+ },
+ "buttons": {
+ "openEmail": "",
+ "resetPassword": "Restablecer contraseña"
+ },
+ "imageAlts": {
+ "passwordKey": "",
+ "email": "",
+ "lock": "",
+ "passwordConfirm": ""
+ },
+ "links": {
+ "login": "Volver a Inicio de session",
+ "resend": "No has recibido el correo electronico? Presiona para reenviar"
+ },
+ "toasts": {
+ "sent": "",
+ "emailNotFound": "",
+ "redirect": "",
+ "success": "",
+ "error": ""
+ }
}
},
"errorPages": {
@@ -25,24 +182,11 @@
}
},
"dontHaveAccount": "No tengo una cuenta",
- "email": "Correo electronico",
"forgotPassword": "He olvidado mi contraseña",
- "password": "Contraseña",
- "signUp": "Registrarse",
"submit": "Enviar",
"title": "Titulo",
- "continue": "Continuar",
"enterEmail": "Introduce tu email",
- "authLoginTitle": "Inicio de session",
- "authLoginEnterPassword": "Introduce tu contraseña",
"commonPassword": "Contraseña",
- "commonBack": "Atras",
- "authForgotPasswordTitle": "¿Has olvidado tu contraseña?",
- "authForgotPasswordResetPassword": "Restablecer contraseña",
- "createPassword": "Crear contraseña",
- "createAPassword": "Contraseña",
- "authRegisterAlreadyHaveAccount": "Ya tienes un cuenta?",
- "authLoginEnterEmail": "Introduce tu correo electronico",
"authRegisterTitle": "Crear una cuenta",
"authRegisterStepOneTitle": "Crea tu cuenta",
"authRegisterStepOneDescription": "",
@@ -50,36 +194,15 @@
"authRegisterStepTwoDescription": "Cuentano mas sobre ti",
"authRegisterStepThreeTitle": "Ya casi estamos!",
"authRegisterStepThreeDescription": "Revisa tu informacion",
- "authForgotPasswordDescription": "",
"authForgotPasswordSendInstructions": "Enviar instrucciones",
"authForgotPasswordBackTo": "Volver a",
"authCheckEmailTitle": "Comprueba tu correo",
- "authCheckEmailDescription": "Hemos enviado un link para reiniciar la contraseña a",
"authCheckEmailResendEmail": "Reenviar correo",
"authCheckEmailBackTo": "Volver a",
- "goBackTo": "Volver a",
- "authCheckEmailDidntReceiveEmail": "No has recibido el correo electronico?",
- "authCheckEmailClickToResend": "Presiona para reenviar",
"authSetNewPasswordTitle": "Configurar nueva contraseña",
- "authSetNewPasswordDescription": "",
"authSetNewPasswordNewPassword": "Nueva contraseña",
- "authSetNewPasswordConfirmPassword": "Confirmar contraseña",
- "confirmPassword": "",
- "authSetNewPasswordResetPassword": "Restablecer contraseña",
"authSetNewPasswordBackTo": "Volver a",
- "authPasswordMustBeAtLeast": "",
- "authPasswordCharactersLong": "8 caracteres de longitud",
- "authPasswordMustContainAtLeast": "",
- "authPasswordSpecialCharacter": "",
- "authPasswordOneNumber": "un numero",
- "authPasswordUpperCharacter": "",
- "authPasswordLowerCharacter": "",
- "authPasswordConfirmAndPassword": "",
- "authPasswordMustMatch": "",
"authRegisterCreateAccount": "",
- "authRegisterCreateSuperAdminAccount": "",
- "authRegisterSignUpWithEmail": "",
- "authRegisterBySigningUp": "",
"distributedStatusHeaderText": "",
"distributedStatusSubHeaderText": "",
"settingsGeneralSettings": "",
@@ -140,9 +263,6 @@
"city": "",
"response": "",
"passwordreset": "",
- "authRegisterStepOnePersonalDetails": "",
- "authCheckEmailOpenEmailButton": "",
- "authNewPasswordConfirmed": "",
"monitorStatusUp": "",
"monitorStatusDown": "",
"webhookSendSuccess": "",
@@ -416,10 +536,7 @@
"DeleteDescriptionText": "",
"DeleteAccountWarning": "",
"DeleteWarningTitle": "",
- "authRegisterFirstName": "",
- "authRegisterLastName": "",
"authRegisterEmail": "",
- "authRegisterEmailRequired": "",
"bulkImport": {
"title": "",
"selectFileTips": "",
@@ -431,8 +548,6 @@
"noFileSelected": "",
"fallbackPage": ""
},
- "welcomeBack": "",
- "authRegisterLoginLink": "",
"validationNameRequired": "",
"validationNameTooLong": "",
"validationNameInvalidCharacters": "",
@@ -440,10 +555,7 @@
"settingsSystemResetDescription": "",
"DeleteAccountTitle": "",
"DeleteAccountButton": "",
- "authRegisterEmailInvalid": "",
"publicLink": "",
- "doNotHaveAccount": "",
- "registerHere": "",
"maskedPageSpeedKeyPlaceholder": "",
"pageSpeedApiKeyFieldTitle": "",
"pageSpeedApiKeyFieldLabel": "",
@@ -528,7 +640,6 @@
"state": "",
"statusBreadCrumbsStatusPages": "",
"statusBreadCrumbsDetails": "",
- "authForgotPasswordInstructions": "",
"settingsThemeModeLight": "",
"settingsThemeModeDark": "",
"settingsClearAllStatsDialogCancel": "",
diff --git a/client/src/locales/fi.json b/client/src/locales/fi.json
index 16517778a..b4c364fe5 100644
--- a/client/src/locales/fi.json
+++ b/client/src/locales/fi.json
@@ -7,7 +7,164 @@
},
"toasts": {
"networkError": "Verkkovirhe",
- "checkConnection": "Tarkista yhteytesi"
+ "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? Nollaa salasana",
+ "register": "Onko sinulla tili? Rekisteröidy tästä"
+ },
+ "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 Käyttöehdot ja Tietosuojakäytännön.",
+ "links": {
+ "login": "Onko sinulla jo tili? Kirjaudu"
+ },
+ "toasts": {
+ "success": ""
+ }
+ },
+ "forgotPassword": {
+ "heading": "Unohditko salasanasi?",
+ "subheadings": {
+ "stepOne": "Ei hätää, lähetämme sinulle ohjeet salasanan palauttamiseen.",
+ "stepTwo": "Lähetimme salasanan nollauslinkin osoitteeseen ",
+ "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 Kirjaudu",
+ "resend": "Etkö saanut sähköpostia? Klikkaa lähettääksesi uudelleen"
+ },
+ "toasts": {
+ "sent": "",
+ "emailNotFound": "",
+ "redirect": "",
+ "success": "",
+ "error": ""
+ }
}
},
"errorPages": {
@@ -25,24 +182,11 @@
}
},
"dontHaveAccount": "Ei tiliä",
- "email": "Sähköposti",
"forgotPassword": "Unohtunut salasana",
- "password": "Salasana",
- "signUp": "Rekisteröidy",
"submit": "Lähetä",
"title": "Otsikko",
- "continue": "Jatka",
"enterEmail": "Syötä sähköpostiosoitteesi",
- "authLoginTitle": "Kirjaudu",
- "authLoginEnterPassword": "Syötä salasanasi",
"commonPassword": "Salasana",
- "commonBack": "Takaisin",
- "authForgotPasswordTitle": "Unohditko salasanasi?",
- "authForgotPasswordResetPassword": "Nollaa salasana",
- "createPassword": "Luo salasanasi",
- "createAPassword": "Salasana",
- "authRegisterAlreadyHaveAccount": "Onko sinulla jo tili?",
- "authLoginEnterEmail": "Syötä salasanasi",
"authRegisterTitle": "Luo tili",
"authRegisterStepOneTitle": "Luo tilisi",
"authRegisterStepOneDescription": "Kirjoita tietosi aloittaaksesi",
@@ -50,36 +194,15 @@
"authRegisterStepTwoDescription": "Kerro meille lisää itsestäsi",
"authRegisterStepThreeTitle": "Melkein valmis!",
"authRegisterStepThreeDescription": "Tarkista tietosi",
- "authForgotPasswordDescription": "Ei hätää, lähetämme sinulle salasanan nollausohjeet.",
"authForgotPasswordSendInstructions": "Lähetä ohjeet",
"authForgotPasswordBackTo": "Palaa",
"authCheckEmailTitle": "Tarkista sähköpostisi",
- "authCheckEmailDescription": "Lähetimme salasanan nollauslinkin osoitteeseen",
"authCheckEmailResendEmail": "Lähetä sähköposti uudelleen",
"authCheckEmailBackTo": "Palaa",
- "goBackTo": "Palaa edelliseen",
- "authCheckEmailDidntReceiveEmail": "Etkö saanut sähköpostia?",
- "authCheckEmailClickToResend": "Klikkaa lähettääksesi uudelleen",
"authSetNewPasswordTitle": "Aseta uusi salasana",
- "authSetNewPasswordDescription": "Uuden salasanan pitää olla eri kuin aiemmin käyttämäsi.",
"authSetNewPasswordNewPassword": "Uusi salasana",
- "authSetNewPasswordConfirmPassword": "Vahvista salasana",
- "confirmPassword": "Syötä salasana uudelleen",
- "authSetNewPasswordResetPassword": "Nollaa salasana",
"authSetNewPasswordBackTo": "Takaisin",
- "authPasswordMustBeAtLeast": "Vähintään",
- "authPasswordCharactersLong": "8 merkkiä pitkä",
- "authPasswordMustContainAtLeast": "Tulee sisältää vähintään",
- "authPasswordSpecialCharacter": "yksi erikoismerkki",
- "authPasswordOneNumber": "yksi numero",
- "authPasswordUpperCharacter": "yksi pieni kirjain",
- "authPasswordLowerCharacter": "yksi iso kirjain",
- "authPasswordConfirmAndPassword": "Vahvista salasana ja salasana",
- "authPasswordMustMatch": "Salasanojen on oltava samat",
"authRegisterCreateAccount": "Luo tili aloittaaksesi",
- "authRegisterCreateSuperAdminAccount": "Luo pääkäyttäjän tili aloittaaksesi",
- "authRegisterSignUpWithEmail": "Luo pääkäyttäjän tili",
- "authRegisterBySigningUp": "Luomalla tilin hyväksyt Käyttöehdot ja Tietosuojakäytännön.",
"distributedStatusHeaderText": "Reaaliaikainen kattavuus oikeilla laitteilla",
"distributedStatusSubHeaderText": "Miljoonien laitteiden voimin ympäri maailman näet järjestelmän suorituskyvyn maailman alueittain, maittain tai kaupungeittain",
"settingsGeneralSettings": "Yleiset asetukset",
@@ -140,9 +263,6 @@
"city": "KAUPUNKI",
"response": "Vastaus",
"passwordreset": "Salasanan nollaus",
- "authRegisterStepOnePersonalDetails": "Syötä henkilökohtaiset tietosi",
- "authCheckEmailOpenEmailButton": "Avaa sähköpostisovellus",
- "authNewPasswordConfirmed": "Salasanasi on onnistuneesti nollattu. Klikkaa alta kirjautuaksesi taianomaisesti.",
"monitorStatusUp": "Valvontakohde {name} ({url}) on nyt toiminnassa ja vastaa",
"monitorStatusDown": "Valvontakohde {name} ({url}) ei ole toiminnassa, eikä vastaa",
"webhookSendSuccess": "Webhook-ilmoitus lähetettiin onnistuneesti",
@@ -416,10 +536,7 @@
"DeleteDescriptionText": "",
"DeleteAccountWarning": "",
"DeleteWarningTitle": "Haluatko todella poistaa tämän tilin?",
- "authRegisterFirstName": "Nimi",
- "authRegisterLastName": "Sukunimi",
"authRegisterEmail": "Sähköpostiosoite",
- "authRegisterEmailRequired": "Syötä sähköpostiosoitteesi jatkaaksesi",
"bulkImport": {
"title": "",
"selectFileTips": "",
@@ -431,8 +548,6 @@
"noFileSelected": "Ei valittua tiedostoa",
"fallbackPage": ""
},
- "welcomeBack": "Tervetuloa takaisin! Olet kirjautunut sisään.",
- "authRegisterLoginLink": "Kirjaudu",
"validationNameRequired": "Kirjoita nimesi",
"validationNameTooLong": "Nimen tulee olla alle 50 merkkiä",
"validationNameInvalidCharacters": "Käytäthän vain kirjaimia, välilyöntejä, heittomerkkejä tai yhdysmerkkejä",
@@ -440,10 +555,7 @@
"settingsSystemResetDescription": "",
"DeleteAccountTitle": "Poista tili",
"DeleteAccountButton": "Poista tili",
- "authRegisterEmailInvalid": "Kirjoita kelvollinen sähköpostiosoite",
"publicLink": "Julkinen linkki",
- "doNotHaveAccount": "Onko sinulla tili?",
- "registerHere": "Rekisteröidy tästä",
"maskedPageSpeedKeyPlaceholder": "*************************************",
"pageSpeedApiKeyFieldTitle": "Google PageSpeed API-avain",
"pageSpeedApiKeyFieldLabel": "PageSpeed API-avain",
@@ -528,7 +640,6 @@
"state": "Tila",
"statusBreadCrumbsStatusPages": "Tilasivut",
"statusBreadCrumbsDetails": "Tiedot",
- "authForgotPasswordInstructions": "Ei hätää, lähetämme sinulle ohjeet salasanan palauttamiseen.",
"settingsThemeModeLight": "Vaalea",
"settingsThemeModeDark": "Tumma",
"settingsClearAllStatsDialogCancel": "Peruuta",
diff --git a/client/src/locales/fr.json b/client/src/locales/fr.json
index 4acde5888..092cb3c9d 100644
--- a/client/src/locales/fr.json
+++ b/client/src/locales/fr.json
@@ -7,7 +7,164 @@
},
"toasts": {
"networkError": "",
- "checkConnection": "Vérifiez votre connexion"
+ "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é ? Réinitialiser le mot de passe",
+ "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 ? Se connecter"
+ },
+ "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 à ",
+ "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 à Se connecter",
+ "resend": "Vous n'avez pas reçu l'e-mail ? Cliquez pour renvoyer"
+ },
+ "toasts": {
+ "sent": "",
+ "emailNotFound": "",
+ "redirect": "",
+ "success": "",
+ "error": ""
+ }
}
},
"errorPages": {
@@ -25,24 +182,11 @@
}
},
"dontHaveAccount": "Vous n'avez pas de compte",
- "email": "E-mail",
"forgotPassword": "Mot de passe oublié",
- "password": "mot de passe",
- "signUp": "S'inscrire",
"submit": "Envoyer",
"title": "Titre",
- "continue": "Continuer",
"enterEmail": "Entrez votre adresse e-mail",
- "authLoginTitle": "Se connecter",
- "authLoginEnterPassword": "Entrez votre mot de passe",
"commonPassword": "Mot de passe",
- "commonBack": "Retour",
- "authForgotPasswordTitle": "Mot de passe oublié ?",
- "authForgotPasswordResetPassword": "Réinitialiser le mot de passe",
- "createPassword": "Créez votre mot de passe",
- "createAPassword": "Créer un mot de passe",
- "authRegisterAlreadyHaveAccount": "Vous avez un compte ?",
- "authLoginEnterEmail": "Entrez votre e-mail",
"authRegisterTitle": "Créer un compte",
"authRegisterStepOneTitle": "Créez votre compte",
"authRegisterStepOneDescription": "Entrez vos informations pour commencer",
@@ -50,36 +194,15 @@
"authRegisterStepTwoDescription": "Parlez-nous un peu de vous",
"authRegisterStepThreeTitle": "Presque fini !",
"authRegisterStepThreeDescription": "Vérifiez vos infos",
- "authForgotPasswordDescription": "Pas d'inquiétude, nous allons vous envoyer des instructions de réinitialisation.",
"authForgotPasswordSendInstructions": "Envoyer les instructions",
"authForgotPasswordBackTo": "Retourner à",
"authCheckEmailTitle": "Vérifiez votre e-mail",
- "authCheckEmailDescription": "Nous avons envoyé un lien de réinitialisation à",
"authCheckEmailResendEmail": "Renvoyer le mail",
"authCheckEmailBackTo": "Retourner à",
- "goBackTo": "Retourner à",
- "authCheckEmailDidntReceiveEmail": "Vous n'avez pas reçu l'e-mail ?",
- "authCheckEmailClickToResend": "Cliquez pour renvoyer",
"authSetNewPasswordTitle": "Définir un nouveau mot de passe",
- "authSetNewPasswordDescription": "Votre nouveau mot de passe doit être différent des anciens mots de passes utilisés.",
"authSetNewPasswordNewPassword": "Nouveau mot de passe",
- "authSetNewPasswordConfirmPassword": "Confirmer le mot de passe",
- "confirmPassword": "Confirmez votre mot de passe",
- "authSetNewPasswordResetPassword": "Réinitialiser le mot de passe",
"authSetNewPasswordBackTo": "Retourner à",
- "authPasswordMustBeAtLeast": "Doit faire au moins",
- "authPasswordCharactersLong": "8 caractères",
- "authPasswordMustContainAtLeast": "Doit contenir au moins",
- "authPasswordSpecialCharacter": "un caractère spécial",
- "authPasswordOneNumber": "un nombre",
- "authPasswordUpperCharacter": "une lettre majuscule",
- "authPasswordLowerCharacter": "une lettre minuscule",
- "authPasswordConfirmAndPassword": "Confirmer le mot de passe",
- "authPasswordMustMatch": "doit correspondre",
"authRegisterCreateAccount": "Créez votre compte pour commencer",
- "authRegisterCreateSuperAdminAccount": "Créez votre compte Super admin pour commencer",
- "authRegisterSignUpWithEmail": "S'inscrire avec E-mail",
- "authRegisterBySigningUp": "En vous inscrivant, vous acceptez nos",
"distributedStatusHeaderText": "",
"distributedStatusSubHeaderText": "",
"settingsGeneralSettings": "Paramètres généraux",
@@ -140,9 +263,6 @@
"city": "VILLE",
"response": "",
"passwordreset": "",
- "authRegisterStepOnePersonalDetails": "Saisissez vos infos",
- "authCheckEmailOpenEmailButton": "Ouvrir l'appli mail",
- "authNewPasswordConfirmed": "Votre mot de passe a été réinitialisé avec succès. Cliquez ci-dessous pour vous connecter.",
"monitorStatusUp": "",
"monitorStatusDown": "",
"webhookSendSuccess": "",
@@ -416,10 +536,7 @@
"DeleteDescriptionText": "",
"DeleteAccountWarning": "",
"DeleteWarningTitle": "Vous supprimez vraiment ce compte ?",
- "authRegisterFirstName": "Prénom",
- "authRegisterLastName": "Nom",
"authRegisterEmail": "Email",
- "authRegisterEmailRequired": "Pour continuer, veuillez saisir votre adresse e-mail",
"bulkImport": {
"title": "",
"selectFileTips": "",
@@ -431,8 +548,6 @@
"noFileSelected": "",
"fallbackPage": ""
},
- "welcomeBack": "Bienvenue ! Vous êtes connecté avec succès.",
- "authRegisterLoginLink": "Se connecter",
"validationNameRequired": "Veuillez saisir votre nom",
"validationNameTooLong": "",
"validationNameInvalidCharacters": "Veuillez utiliser uniquement des lettres, des espaces, des apostrophes ou des traits d'union",
@@ -440,10 +555,7 @@
"settingsSystemResetDescription": "",
"DeleteAccountTitle": "Supprimer le compte",
"DeleteAccountButton": "Supprimer le compte",
- "authRegisterEmailInvalid": "Veuillez saisir une adresse e-mail valide",
"publicLink": "",
- "doNotHaveAccount": "",
- "registerHere": "",
"maskedPageSpeedKeyPlaceholder": "",
"pageSpeedApiKeyFieldTitle": "",
"pageSpeedApiKeyFieldLabel": "",
@@ -528,7 +640,6 @@
"state": "",
"statusBreadCrumbsStatusPages": "",
"statusBreadCrumbsDetails": "",
- "authForgotPasswordInstructions": "Nous vous enverrons des instructions de réinitialisation.",
"settingsThemeModeLight": "Clair",
"settingsThemeModeDark": "Sombre",
"settingsClearAllStatsDialogCancel": "Annuler",
diff --git a/client/src/locales/pt-BR.json b/client/src/locales/pt-BR.json
index 25f14086e..f042e5fd6 100644
--- a/client/src/locales/pt-BR.json
+++ b/client/src/locales/pt-BR.json
@@ -7,7 +7,164 @@
},
"toasts": {
"networkError": "Erro de rede",
- "checkConnection": "Verifique sua conexão"
+ "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? Redefinir a senha",
+ "register": "Ainda não tem uma conta? Registre-se aqui"
+ },
+ "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 Termos de Serviço e Política de Privacidade.",
+ "links": {
+ "login": "Já possui uma conta? Login"
+ },
+ "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 ",
+ "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 Login",
+ "resend": "Não recebeu o e-mail? Clique para reenviar"
+ },
+ "toasts": {
+ "sent": "",
+ "emailNotFound": "",
+ "redirect": "",
+ "success": "",
+ "error": ""
+ }
}
},
"errorPages": {
@@ -25,24 +182,11 @@
}
},
"dontHaveAccount": "Não tenho conta",
- "email": "E-mail",
"forgotPassword": "Esqueci a senha",
- "password": "Senha",
- "signUp": "Inscreva-se",
"submit": "Enviar",
"title": "Título",
- "continue": "Continuar",
"enterEmail": "Insira seu e-mail",
- "authLoginTitle": "Login",
- "authLoginEnterPassword": "Digite sua senha",
"commonPassword": "Senha",
- "commonBack": "Voltar",
- "authForgotPasswordTitle": "Esqueceu a senha?",
- "authForgotPasswordResetPassword": "Redefinir a senha",
- "createPassword": "Criar sua senha",
- "createAPassword": "Senha",
- "authRegisterAlreadyHaveAccount": "Já possui uma conta?",
- "authLoginEnterEmail": "Insira seu e-mail",
"authRegisterTitle": "Criar uma conta",
"authRegisterStepOneTitle": "Crie sua conta",
"authRegisterStepOneDescription": "Insira seus dados para começar",
@@ -50,36 +194,15 @@
"authRegisterStepTwoDescription": "Conte-nos mais sobre você",
"authRegisterStepThreeTitle": "Quase pronto!",
"authRegisterStepThreeDescription": "Revise suas informações",
- "authForgotPasswordDescription": "Não se preocupe, enviaremos instruções de redefinição.",
"authForgotPasswordSendInstructions": "Enviar instruções",
"authForgotPasswordBackTo": "Voltar para",
"authCheckEmailTitle": "Verifique seu e-mail",
- "authCheckEmailDescription": "Enviamos um link para redefinir a senha para",
"authCheckEmailResendEmail": "Reenviar e-mail",
"authCheckEmailBackTo": "Voltar para",
- "goBackTo": "Volte para",
- "authCheckEmailDidntReceiveEmail": "Não recebeu o e-mail?",
- "authCheckEmailClickToResend": "Clique para reenviar",
"authSetNewPasswordTitle": "Definir nova senha",
- "authSetNewPasswordDescription": "Sua nova senha deve ser diferente das senhas usadas anteriormente.",
"authSetNewPasswordNewPassword": "Nova senha",
- "authSetNewPasswordConfirmPassword": "Confirme sua senha",
- "confirmPassword": "Digite a senha novamente para confirmar",
- "authSetNewPasswordResetPassword": "Redefinir senha",
"authSetNewPasswordBackTo": "Voltar para",
- "authPasswordMustBeAtLeast": "Deve ser pelo menos",
- "authPasswordCharactersLong": "8 caracteres de comprimento",
- "authPasswordMustContainAtLeast": "Deve conter pelo menos",
- "authPasswordSpecialCharacter": "um caractere especial",
- "authPasswordOneNumber": "um número",
- "authPasswordUpperCharacter": "um caractere maiúsculo",
- "authPasswordLowerCharacter": "um caractere minúsculo",
- "authPasswordConfirmAndPassword": "Confirme a senha",
- "authPasswordMustMatch": "As senhas devem corresponder",
"authRegisterCreateAccount": "Crie sua conta para começar",
- "authRegisterCreateSuperAdminAccount": "Crie sua conta de super admin para começar",
- "authRegisterSignUpWithEmail": "Criar conta de super admin",
- "authRegisterBySigningUp": "Ao criar uma conta, você concorda com nossos Termos de Serviço e Política de Privacidade.",
"distributedStatusHeaderText": "Cobertura em tempo real e em dispositivos reais",
"distributedStatusSubHeaderText": "Impulsionado por milhões de dispositivos em todo o mundo, visualize o desempenho do sistema por região global, país ou cidade",
"settingsGeneralSettings": "Configurações gerais",
@@ -139,9 +262,6 @@
"city": "CIDADE",
"response": "RESPOSTA",
"passwordreset": "Redefinição de senha",
- "authRegisterStepOnePersonalDetails": "Insira seus dados pessoais",
- "authCheckEmailOpenEmailButton": "Abra o aplicativo de e-mail",
- "authNewPasswordConfirmed": "Sua senha foi redefinida com sucesso. Clique abaixo para fazer login magicamente.",
"monitorStatusUp": "O monitor {name} ({url}) agora está ATIVO e respondendo",
"monitorStatusDown": "O monitor {name} ({url}) está INATIVO e não está respondendo",
"webhookSendSuccess": "Notificação de webhook enviada com sucesso",
@@ -415,10 +535,7 @@
"DeleteDescriptionText": "Isso removerá a conta e todos os dados associados do servidor. Essa ação não é reversível.",
"DeleteAccountWarning": "Remover sua conta significa que você não poderá fazer login novamente e todos os seus dados serão removidos. Isso não é reversível.",
"DeleteWarningTitle": "Deseja realmente remover esta conta?",
- "authRegisterFirstName": "Nome",
- "authRegisterLastName": "Sobrenome",
"authRegisterEmail": "E-mail",
- "authRegisterEmailRequired": "Para continuar, insira seu endereço de e-mail",
"bulkImport": {
"title": "Bulk Import",
"selectFileTips": "Selecione o arquivo CSV para enviar",
@@ -430,8 +547,6 @@
"noFileSelected": "Nenhum arquivo selecionado",
"fallbackPage": "Importe um arquivo para enviar uma lista de servidores em massa"
},
- "welcomeBack": "Bem-vindo de volta! Você fez login com sucesso.",
- "authRegisterLoginLink": "Login",
"validationNameRequired": "Por favor digite seu nome",
"validationNameTooLong": "O nome deve ter menos de 50 caracteres",
"validationNameInvalidCharacters": "Por favor, use apenas letras, espaços, apóstrofos ou hifens",
@@ -439,10 +554,7 @@
"settingsSystemResetDescription": "Remova todos os monitores do seu sistema.",
"DeleteAccountTitle": "Remover conta",
"DeleteAccountButton": "Remover conta",
- "authRegisterEmailInvalid": "Por favor, insira um endereço de e-mail válido",
"publicLink": "Link publico",
- "doNotHaveAccount": "Ainda não tem uma conta?",
- "registerHere": "Registre-se aqui",
"maskedPageSpeedKeyPlaceholder": "*************************************",
"pageSpeedApiKeyFieldTitle": "Google PageSpeed API key",
"pageSpeedApiKeyFieldLabel": "PageSpeed API key",
@@ -527,7 +639,6 @@
"state": "Estado",
"statusBreadCrumbsStatusPages": "Pagina de status",
"statusBreadCrumbsDetails": "Detalhes",
- "authForgotPasswordInstructions": "Não se preocupe, enviaremos instruções de redefinição.",
"settingsThemeModeLight": "Claro",
"settingsThemeModeDark": "Escuro",
"settingsClearAllStatsDialogCancel": "Cancelar",
diff --git a/client/src/locales/ru.json b/client/src/locales/ru.json
index ae83dc57a..f6ccdd5fd 100644
--- a/client/src/locales/ru.json
+++ b/client/src/locales/ru.json
@@ -7,7 +7,164 @@
},
"toasts": {
"networkError": "Ошибка сети",
- "checkConnection": "Пожалуйста, проверьте ваше соединение"
+ "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": "Забыли пароль? Сбросить пароль",
+ "register": "У вас нет учетной записи? Зарегистрируйтесь здесь"
+ },
+ "toasts": {
+ "success": "Добро пожаловать обратно! Вы успешно вошли в систему.",
+ "incorrectPassword": ""
+ }
+ },
+ "registration": {
+ "heading": {
+ "superAdmin": "",
+ "user": "Зарегистрироваться"
+ },
+ "subheadings": {
+ "stepOne": "Введите свои личные данные",
+ "stepTwo": "Введите свой email",
+ "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": {
@@ -25,24 +182,11 @@
}
},
"dontHaveAccount": "Нет аккаунта",
- "email": "Почта",
"forgotPassword": "Забыли пароль",
- "password": "пароль",
- "signUp": "Зарегистрироваться",
"submit": "Подтвердить",
"title": "Название",
- "continue": "Продолжить",
"enterEmail": "Введите свой email",
- "authLoginTitle": "Войти",
- "authLoginEnterPassword": "Введите свой пароль",
"commonPassword": "Пароль",
- "commonBack": "Назад",
- "authForgotPasswordTitle": "Забыли пароль?",
- "authForgotPasswordResetPassword": "Сбросить пароль",
- "createPassword": "Создайте свой пароль",
- "createAPassword": "Создайте пароль",
- "authRegisterAlreadyHaveAccount": "Уже есть аккаунт?",
- "authLoginEnterEmail": "Введите свой email",
"authRegisterTitle": "Создать аккаунт",
"authRegisterStepOneTitle": "Создайте свой аккаут",
"authRegisterStepOneDescription": "Введите свои данные, чтобы начать",
@@ -50,36 +194,15 @@
"authRegisterStepTwoDescription": "Расскажите нам о себе",
"authRegisterStepThreeTitle": "Почти готово!",
"authRegisterStepThreeDescription": "Проверьте свою информацию",
- "authForgotPasswordDescription": "Не волнуйтесь, мы вышлем вам инструкции по сбросу настроек.",
"authForgotPasswordSendInstructions": "Отправить инструкции",
"authForgotPasswordBackTo": "Назад к",
"authCheckEmailTitle": "Проверьте свою почту",
- "authCheckEmailDescription": "Мы отправили ссылку для сброса пароля",
"authCheckEmailResendEmail": "Отправить письмо повторно",
"authCheckEmailBackTo": "Назад к",
- "goBackTo": "Назад к",
- "authCheckEmailDidntReceiveEmail": "Не получили письмо?",
- "authCheckEmailClickToResend": "Нажмите, чтобы отправить повторно",
"authSetNewPasswordTitle": "Установите новый пароль",
- "authSetNewPasswordDescription": "Ваш новый пароль должен отличаться от ранее использованных паролей.",
"authSetNewPasswordNewPassword": "Новый пароль",
- "authSetNewPasswordConfirmPassword": "Подтвердите пароль",
- "confirmPassword": "Подтвердите ваш пароль",
- "authSetNewPasswordResetPassword": "Сбросить пароль",
"authSetNewPasswordBackTo": "Назад к",
- "authPasswordMustBeAtLeast": "Должно быть как минимум",
- "authPasswordCharactersLong": "длиной 8 символов",
- "authPasswordMustContainAtLeast": "Должен содержать как минимум",
- "authPasswordSpecialCharacter": "один специальный символ",
- "authPasswordOneNumber": "одно число",
- "authPasswordUpperCharacter": "один верхний символ",
- "authPasswordLowerCharacter": "один нижний символ",
- "authPasswordConfirmAndPassword": "Подтвердите пароль и пароль",
- "authPasswordMustMatch": "должен совпадать",
"authRegisterCreateAccount": "Создайте свою учетную запись, чтобы начать",
- "authRegisterCreateSuperAdminAccount": "Создайте учетную запись суперадминистратора, чтобы начать работу",
- "authRegisterSignUpWithEmail": "Зарегистрироваться по электронной почте",
- "authRegisterBySigningUp": "Регистрируясь, вы соглашаетесь с нашими",
"distributedStatusHeaderText": "Охват реального времени и реального устройства",
"distributedStatusSubHeaderText": "Работает на миллионах устройств по всему миру, просматривайте производительность системы по глобальному региону, стране или городу",
"settingsGeneralSettings": "Общие настройки",
@@ -136,9 +259,6 @@
"city": "ГОРОД",
"response": "ОТВЕТ",
"passwordreset": "Сброс пароля",
- "authRegisterStepOnePersonalDetails": "Введите свои личные данные",
- "authCheckEmailOpenEmailButton": "Откройте приложение почты",
- "authNewPasswordConfirmed": "Ваш пароль успешно сброшен. Нажмите ниже, чтобы войти в систему магическим образом.",
"monitorStatusUp": "Монитор {name} ({url}) теперь включен и отвечает",
"monitorStatusDown": "Монитор {name} ({url}) ОТКЛЮЧЕН и не отвечает",
"webhookSendSuccess": "Уведомление Webhook успешно отправлено",
@@ -411,10 +531,7 @@
"DeleteDescriptionText": "Это приведет к удалению учетной записи и всех связанных с ней данных с сервера. Это необратимо.",
"DeleteAccountWarning": "Удаление вашей учетной записи означает, что вы не сможете снова войти в систему, и все ваши данные будут удалены. Это необратимо.",
"DeleteWarningTitle": "Действительно удаляете эту учетную запись?",
- "authRegisterFirstName": "Имя",
- "authRegisterLastName": "Фамилия",
"authRegisterEmail": "Email",
- "authRegisterEmailRequired": "Чтобы продолжить, пожалуйста, введите свой адрес электронной почты",
"bulkImport": {
"title": "Массовый импорт",
"selectFileTips": "Выберите CSV-файл для загрузки",
@@ -426,8 +543,6 @@
"noFileSelected": "Файл не выбран",
"fallbackPage": "Импортируйте файл для массовой загрузки списка серверов"
},
- "welcomeBack": "Добро пожаловать обратно! Вы успешно вошли в систему.",
- "authRegisterLoginLink": "Войти",
"validationNameRequired": "Пожалуйста, введите свое имя",
"validationNameTooLong": "Длина имени не должна превышать 50 символов",
"validationNameInvalidCharacters": "Пожалуйста, используйте только буквы, пробелы, апострофы или дефисы",
@@ -435,10 +550,7 @@
"settingsSystemResetDescription": "Удалите все мониторы из вашей системы.",
"DeleteAccountTitle": "Удалить аккаунт",
"DeleteAccountButton": "Удалить аккаунт",
- "authRegisterEmailInvalid": "Пожалуйста, введите действительный адрес электронной почты",
"publicLink": "Публичная ссылка",
- "doNotHaveAccount": "У вас нет учетной записи?",
- "registerHere": "Зарегистрируйтесь здесь",
"maskedPageSpeedKeyPlaceholder": "*************************************",
"pageSpeedApiKeyFieldTitle": "Ключ API Google PageSpeed",
"pageSpeedApiKeyFieldLabel": "Ключ API PageSpeed",
@@ -523,7 +635,6 @@
"state": "Состояние",
"statusBreadCrumbsStatusPages": "Страницы статуса",
"statusBreadCrumbsDetails": "Подробности",
- "authForgotPasswordInstructions": "Не беспокойтесь, мы вышлем вам инструкции по сбросу настроек.",
"settingsThemeModeLight": "Светлая",
"settingsThemeModeDark": "Тёмная",
"settingsClearAllStatsDialogCancel": "Отменить",
diff --git a/client/src/locales/tr.json b/client/src/locales/tr.json
index 59e911118..0d650e985 100644
--- a/client/src/locales/tr.json
+++ b/client/src/locales/tr.json
@@ -7,7 +7,164 @@
},
"toasts": {
"networkError": "Ağ hatası",
- "checkConnection": "Lütfen bağlantınızı kontrol edin"
+ "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? Parola sıfırla",
+ "register": "Bir hesabınız yok mu? Buradan kayıt olun"
+ },
+ "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ı? Giriş yap"
+ },
+ "toasts": {
+ "success": ""
+ }
+ },
+ "forgotPassword": {
+ "heading": "Parolanızı mı unuttunuz?",
+ "subheadings": {
+ "stepOne": "Endişelenmeyin, size sıfırlama talimatlarını göndereceğiz.",
+ "stepTwo": " 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 Giriş Yap",
+ "resend": "E-posta almadınız mı? Yeniden göndermek için tıklayın"
+ },
+ "toasts": {
+ "sent": "",
+ "emailNotFound": "",
+ "redirect": "",
+ "success": "",
+ "error": ""
+ }
}
},
"errorPages": {
@@ -25,24 +182,11 @@
}
},
"dontHaveAccount": "Hesabınız yok mu",
- "email": "E-posta",
"forgotPassword": "Parolamı unuttum",
- "password": "Parola",
- "signUp": "Kayıt Ol",
"submit": "Gönder",
"title": "Başlık",
- "continue": "Devam Et",
"enterEmail": "E-posta adresinizi girin",
- "authLoginTitle": "Giriş Yap",
- "authLoginEnterPassword": "Parolanızı girin",
"commonPassword": "Parola",
- "commonBack": "Geri",
- "authForgotPasswordTitle": "Parolanızı mı unuttunuz?",
- "authForgotPasswordResetPassword": "Parola sıfırla",
- "createPassword": "Parolanızı oluşturun",
- "createAPassword": "Bir parola oluşturun",
- "authRegisterAlreadyHaveAccount": "Zaten hesabınız var mı?",
- "authLoginEnterEmail": "E-posta adresinizi girin",
"authRegisterTitle": "Hesap oluştur",
"authRegisterStepOneTitle": "Hesabınızı oluşturun",
"authRegisterStepOneDescription": "Başlamak için bilgilerinizi girin",
@@ -50,36 +194,15 @@
"authRegisterStepTwoDescription": "Kendiniz hakkında daha fazla bilgi verin",
"authRegisterStepThreeTitle": "Neredeyse bitti!",
"authRegisterStepThreeDescription": "Bilgilerinizi gözden geçirin",
- "authForgotPasswordDescription": "Endişelenmeyin, size sıfırlama talimatlarını göndereceğiz.",
"authForgotPasswordSendInstructions": "Talimatları gönder",
"authForgotPasswordBackTo": "Geri dön",
"authCheckEmailTitle": "E-postanızı kontrol edin",
- "authCheckEmailDescription": "{{email}} adresine şifre sıfırlama bağlantısı gönderdik",
"authCheckEmailResendEmail": "E-postayı yeniden gönder",
"authCheckEmailBackTo": "Geri dön",
- "goBackTo": "Geri dön",
- "authCheckEmailDidntReceiveEmail": "E-posta almadınız mı?",
- "authCheckEmailClickToResend": "Yeniden göndermek için tıklayın",
"authSetNewPasswordTitle": "Yeni şifre belirle",
- "authSetNewPasswordDescription": "Yeni şifreniz daha önce kullanılan şifrelerden farklı olmalıdır.",
"authSetNewPasswordNewPassword": "Yeni şifre",
- "authSetNewPasswordConfirmPassword": "Parolayı onayla",
- "confirmPassword": "Parolanızı onaylayın",
- "authSetNewPasswordResetPassword": "Parola sıfırla",
"authSetNewPasswordBackTo": "Geri dön",
- "authPasswordMustBeAtLeast": "En az",
- "authPasswordCharactersLong": "8 karakter uzunluğunda olmalı",
- "authPasswordMustContainAtLeast": "En az içermeli",
- "authPasswordSpecialCharacter": "bir özel karakter",
- "authPasswordOneNumber": "bir rakam",
- "authPasswordUpperCharacter": "bir büyük harf",
- "authPasswordLowerCharacter": "bir küçük harf",
- "authPasswordConfirmAndPassword": "Onay şifresi ve şifre",
- "authPasswordMustMatch": "eşleşmelidir",
"authRegisterCreateAccount": "Hesap oluşturmak için devam et",
- "authRegisterCreateSuperAdminAccount": "Super admin hesabınızı oluşturmak için devam edin",
- "authRegisterSignUpWithEmail": "E-posta ile kayıt ol",
- "authRegisterBySigningUp": "Kayıt olarak, aşağıdaki şartları kabul ediyorsunuz:",
"distributedStatusHeaderText": "Gerçek zamanlı, Gerçek cihazlar kapsamı",
"distributedStatusSubHeaderText": "Dünya çapında milyonlarca cihaz tarafından desteklenen sistem performansını küresel bölgeye, ülkeye veya şehre göre görüntüleyin",
"settingsGeneralSettings": "Genel ayarlar",
@@ -140,9 +263,6 @@
"city": "ŞEHİR",
"response": "YANIT",
"passwordreset": "Parola Sıfırlama",
- "authRegisterStepOnePersonalDetails": "Kişisel bilgilerinizi girin",
- "authCheckEmailOpenEmailButton": "Eposta uygulamasını aç",
- "authNewPasswordConfirmed": "Parolanız başarıyla sıfırlandı. Otomatik olarak giriş yapmak için aşağıya tıklayın.",
"monitorStatusUp": "Monitör {name} ({url}) ayakta ve yanıt veriyor",
"monitorStatusDown": "Monitör {name} ({url}) yanıt vermiyor",
"webhookSendSuccess": "Web kanca bildirimi başarıyla gönderildi",
@@ -416,10 +536,7 @@
"DeleteDescriptionText": "Bu, hesabı ve ilişkili tüm verileri sunucudan kaldıracaktır. Bu geri alınamaz.",
"DeleteAccountWarning": "Hesabınızı kaldırmanız, tekrar oturum açamayacağınız ve tüm verilerinizin silineceği anlamına gelir. Bu geri alınamaz.",
"DeleteWarningTitle": "Gerçekten bu hesabı silmek istiyor musunuz?",
- "authRegisterFirstName": "İsim",
- "authRegisterLastName": "Soyisim",
"authRegisterEmail": "E-posta",
- "authRegisterEmailRequired": "Devam etmek için lütfen e-posta adresinizi girin",
"bulkImport": {
"title": "Toplu içeri alma",
"selectFileTips": "Yüklenecek CSV dosyasını seçin",
@@ -431,8 +548,6 @@
"noFileSelected": "Hiçbir dosya seçilmedi",
"fallbackPage": "Toplu olarak sunucu listesini yüklemek için bir dosyayı içe aktarın"
},
- "welcomeBack": "Tekrar hoş geldiniz! Başarıyla giriş yaptınız.",
- "authRegisterLoginLink": "Giriş yap",
"validationNameRequired": "Lütfen adınızı girin",
"validationNameTooLong": "İsim 50 karakterden az olmalıdır",
"validationNameInvalidCharacters": "Lütfen sadece harfler, boşluk, tırnak ve çizgi kullanın",
@@ -440,10 +555,7 @@
"settingsSystemResetDescription": "Sistemdeki tüm monitörleri silin",
"DeleteAccountTitle": "Hesabı sil",
"DeleteAccountButton": "Hesabı sil",
- "authRegisterEmailInvalid": "Lütfen geçerli bir eposta hesabı girin",
"publicLink": "Herkese açık bağlantı",
- "doNotHaveAccount": "Bir hesabınız yok mu?",
- "registerHere": "Buradan kayıt olun",
"maskedPageSpeedKeyPlaceholder": "*************************************",
"pageSpeedApiKeyFieldTitle": "Google PageSpeed API anahtarı",
"pageSpeedApiKeyFieldLabel": "PageSpeed API anahtarı",
@@ -528,7 +640,6 @@
"state": "Durum",
"statusBreadCrumbsStatusPages": "Durum sayfası",
"statusBreadCrumbsDetails": "Detaylar",
- "authForgotPasswordInstructions": "Endişelenmeyin, size sıfırlama talimatlarını göndereceğiz.",
"settingsThemeModeLight": "Aydınlat",
"settingsThemeModeDark": "Karart",
"settingsClearAllStatsDialogCancel": "İptal",
diff --git a/client/src/locales/zh-TW.json b/client/src/locales/zh-TW.json
index 98fed65ef..11c063580 100644
--- a/client/src/locales/zh-TW.json
+++ b/client/src/locales/zh-TW.json
@@ -7,7 +7,164 @@
},
"toasts": {
"networkError": "",
- "checkConnection": ""
+ "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": "我們已將密碼重設連結發送至 ",
+ "stepThree": "您的新密碼必須與之前使用過的密碼不同。",
+ "stepFour": ""
+ },
+ "buttons": {
+ "openEmail": "",
+ "resetPassword": "重設密碼"
+ },
+ "imageAlts": {
+ "passwordKey": "",
+ "email": "",
+ "lock": "",
+ "passwordConfirm": ""
+ },
+ "links": {
+ "login": "回去 登入",
+ "resend": "沒有受到 E-mail? 點擊"
+ },
+ "toasts": {
+ "sent": "",
+ "emailNotFound": "",
+ "redirect": "",
+ "success": "",
+ "error": ""
+ }
}
},
"errorPages": {
@@ -25,24 +182,11 @@
}
},
"dontHaveAccount": "沒有帳號",
- "email": "E-mail",
"forgotPassword": "忘記密碼",
- "password": "密碼",
- "signUp": "註冊",
"submit": "",
"title": "",
- "continue": "繼續",
"enterEmail": "輸入您的 E-mail",
- "authLoginTitle": "登入",
- "authLoginEnterPassword": "輸入您的密碼",
"commonPassword": "密碼",
- "commonBack": "回去",
- "authForgotPasswordTitle": "忘記密碼?",
- "authForgotPasswordResetPassword": "",
- "createPassword": "",
- "createAPassword": "",
- "authRegisterAlreadyHaveAccount": "已經有帳號嗎?",
- "authLoginEnterEmail": "輸入您的 E-mail",
"authRegisterTitle": "建立帳號",
"authRegisterStepOneTitle": "建立您的帳號",
"authRegisterStepOneDescription": "清輸入您的個人檔案",
@@ -50,36 +194,15 @@
"authRegisterStepTwoDescription": "請分享更多關於您的資訊",
"authRegisterStepThreeTitle": "快完成了!",
"authRegisterStepThreeDescription": "請確認您的資訊",
- "authForgotPasswordDescription": "別擔心,我們會發送重設說明給您。",
"authForgotPasswordSendInstructions": "將說明發送至",
"authForgotPasswordBackTo": "回去",
"authCheckEmailTitle": "請查看您的電子郵件",
- "authCheckEmailDescription": "我們已將密碼重設連結發送至",
"authCheckEmailResendEmail": "重新發送 E-mail",
"authCheckEmailBackTo": "回去",
- "goBackTo": "回去",
- "authCheckEmailDidntReceiveEmail": "沒有受到 E-mail?",
- "authCheckEmailClickToResend": "點擊",
"authSetNewPasswordTitle": "設定新密碼",
- "authSetNewPasswordDescription": "您的新密碼必須與之前使用過的密碼不同。",
"authSetNewPasswordNewPassword": "新密碼",
- "authSetNewPasswordConfirmPassword": "確認密碼",
- "confirmPassword": "確認您的密碼",
- "authSetNewPasswordResetPassword": "重設密碼",
"authSetNewPasswordBackTo": "回去",
- "authPasswordMustBeAtLeast": "必須至少",
- "authPasswordCharactersLong": "8 個字符長",
- "authPasswordMustContainAtLeast": "必須至少包含",
- "authPasswordSpecialCharacter": "一個特殊字符",
- "authPasswordOneNumber": "一個數字",
- "authPasswordUpperCharacter": "一個大寫字母",
- "authPasswordLowerCharacter": "一個小寫字母",
- "authPasswordConfirmAndPassword": "確認密碼",
- "authPasswordMustMatch": "必須相符",
"authRegisterCreateAccount": "建立您的帳號開始使用",
- "authRegisterCreateSuperAdminAccount": "建立您的超級管理員帳號開始使用",
- "authRegisterSignUpWithEmail": "用 E-mail 註冊",
- "authRegisterBySigningUp": "註冊即表示您同意我們的",
"distributedStatusHeaderText": "實時、真實設備覆蓋",
"distributedStatusSubHeaderText": "由全球數百萬個設備提供支持,您可以按全球區域、國家或城市查看系統效能",
"settingsGeneralSettings": "一般設定",
@@ -140,9 +263,6 @@
"city": "",
"response": "",
"passwordreset": "",
- "authRegisterStepOnePersonalDetails": "",
- "authCheckEmailOpenEmailButton": "",
- "authNewPasswordConfirmed": "",
"monitorStatusUp": "",
"monitorStatusDown": "",
"webhookSendSuccess": "",
@@ -416,10 +536,7 @@
"DeleteDescriptionText": "",
"DeleteAccountWarning": "",
"DeleteWarningTitle": "",
- "authRegisterFirstName": "",
- "authRegisterLastName": "",
"authRegisterEmail": "",
- "authRegisterEmailRequired": "",
"bulkImport": {
"title": "",
"selectFileTips": "",
@@ -431,8 +548,6 @@
"noFileSelected": "",
"fallbackPage": ""
},
- "welcomeBack": "",
- "authRegisterLoginLink": "",
"validationNameRequired": "",
"validationNameTooLong": "",
"validationNameInvalidCharacters": "",
@@ -440,10 +555,7 @@
"settingsSystemResetDescription": "",
"DeleteAccountTitle": "",
"DeleteAccountButton": "",
- "authRegisterEmailInvalid": "",
"publicLink": "",
- "doNotHaveAccount": "",
- "registerHere": "",
"maskedPageSpeedKeyPlaceholder": "",
"pageSpeedApiKeyFieldTitle": "",
"pageSpeedApiKeyFieldLabel": "",
@@ -528,7 +640,6 @@
"state": "",
"statusBreadCrumbsStatusPages": "",
"statusBreadCrumbsDetails": "",
- "authForgotPasswordInstructions": "",
"settingsThemeModeLight": "",
"settingsThemeModeDark": "",
"settingsClearAllStatsDialogCancel": "",