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": "",