From 20e5100bc4c4d940371c02e3a16321b23cc96097 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EA=B0=95=EC=A4=80?= <me@gangjun.dev> Date: Sun, 27 Nov 2022 13:56:18 +0900 Subject: [PATCH] translate(frontend): update namespaces --- docker-compose.dev.yml | 1 + frontend/components/basic/layout.js | 14 +-- .../components/navigation/NavBarDashboard.js | 22 ++--- frontend/i18n.js | 3 +- frontend/locales/en-US/auth.json | 32 +++++++ frontend/locales/en-US/common.json | 54 ----------- frontend/locales/en-US/nav.json | 22 +++++ frontend/pages/login.js | 25 ++--- frontend/pages/signup.js | 91 ++++++++++--------- 9 files changed, 135 insertions(+), 129 deletions(-) create mode 100644 frontend/locales/en-US/auth.json create mode 100644 frontend/locales/en-US/nav.json diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 0fab869eb..ce234d12d 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -50,6 +50,7 @@ services: - ./frontend/styles:/app/styles - ./frontend/components:/app/components - ./frontend/locales:/app/locales + - ./frontend/i18n.js:/app/i18n.js env_file: .env environment: - NEXT_PUBLIC_ENV=development diff --git a/frontend/components/basic/layout.js b/frontend/components/basic/layout.js index 366368d9a..9530e5e66 100644 --- a/frontend/components/basic/layout.js +++ b/frontend/components/basic/layout.js @@ -106,7 +106,7 @@ export default function Layout({ children }) { setIsOpen(false); setNewWorkspaceName(""); } else { - setError(t("common:error_project-already-exists")); + setError(t("error_project-already-exists")); setLoading(false); } } @@ -121,22 +121,22 @@ export default function Layout({ children }) { "/dashboard/" + workspaceMapping[workspaceSelected] + "?Development", - title: t("common:nav.menu.secrets"), + title: t("nav:menu.secrets"), emoji: <FontAwesomeIcon icon={faHouse} />, }, { href: "/users/" + workspaceMapping[workspaceSelected], - title: t("common:nav.menu.members"), + title: t("nav:menu.members"), emoji: <FontAwesomeIcon icon={faUser} />, }, { href: "/integrations/" + workspaceMapping[workspaceSelected], - title: t("common:nav.menu.integrations"), + title: t("nav:menu.integrations"), emoji: <FontAwesomeIcon icon={faLink} />, }, { href: "/settings/project/" + workspaceMapping[workspaceSelected], - title: t("common:nav.menu.project-settings"), + title: t("nav:menu.project-settings"), emoji: <FontAwesomeIcon icon={faGear} />, }, ]; @@ -238,7 +238,7 @@ export default function Layout({ children }) { <div className="py-6"></div> <div className="flex justify-center w-full mt-7 mb-8 bg-bunker-600 w-full h-full flex flex-col items-center px-4"> <div className="text-gray-400 self-start ml-1 mb-1 text-xs font-semibold tracking-wide"> - {t("common:nav.menu.project")} + {t("nav:menu.project")} </div> {workspaceList.length > 0 ? ( <Listbox @@ -331,7 +331,7 @@ export default function Layout({ children }) { className="text-gray-300 text-7xl mb-8" /> <p className="text-gray-200 px-6 text-center text-lg max-w-sm"> - {` ${t("common:need-login")} `} + {` ${t("need-login")} `} </p> </div> </> diff --git a/frontend/components/navigation/NavBarDashboard.js b/frontend/components/navigation/NavBarDashboard.js index d4429b00e..705d09251 100644 --- a/frontend/components/navigation/NavBarDashboard.js +++ b/frontend/components/navigation/NavBarDashboard.js @@ -29,22 +29,22 @@ import useTranslation from "next-translate/useTranslation"; const supportOptions = (t) => [ [ <FontAwesomeIcon className="text-lg pl-1.5 pr-3" icon={faSlack} />, - t("common:nav.support.slack"), + t("nav:support.slack"), "https://join.slack.com/t/infisical/shared_invite/zt-1dgg63ln8-G7PCNJdCymAT9YF3j1ewVA", ], [ <FontAwesomeIcon className="text-lg pl-1.5 pr-3" icon={faBook} />, - t("common:nav.support.docs"), + t("nav:support.docs"), "https://infisical.com/docs/getting-started/introduction", ], [ <FontAwesomeIcon className="text-lg pl-1.5 pr-3" icon={faGithub} />, - t("common:nav.support.issue"), + t("nav:support.issue"), "https://github.com/Infisical/infisical-cli/issues", ], [ <FontAwesomeIcon className="text-lg pl-1.5 pr-3" icon={faEnvelope} />, - t("common:nav.support.email"), + t("nav:support.email"), "mailto:support@infisical.com", ], ]; @@ -55,7 +55,7 @@ export default function Navbar({ onButtonPressed }) { const [orgs, setOrgs] = useState([]); const [currentOrg, setCurrentOrg] = useState([]); - const { t } = useTranslation("common"); + const { t } = useTranslation(""); const supportOptionsList = useMemo(() => supportOptions(t), [t]); @@ -152,7 +152,7 @@ export default function Navbar({ onButtonPressed }) { <Menu.Items className="absolute right-0 mt-0.5 w-64 origin-top-right divide-y divide-gray-700 rounded-md bg-bunker border border-mineshaft-700 shadow-lg ring-1 ring-black z-20 ring-opacity-5 focus:outline-none"> <div className="px-1 py-1 "> <div className="text-gray-400 self-start ml-2 mt-2 text-xs font-semibold tracking-wide"> - {t("common:nav.user.signed-in-as")} + {t("nav:user.signed-in-as")} </div> <div onClick={() => @@ -187,7 +187,7 @@ export default function Navbar({ onButtonPressed }) { </div> <div className="px-2 pt-2"> <div className="text-gray-400 self-start ml-2 mt-2 text-xs font-semibold tracking-wide"> - {t("common:nav.user.current-organization")} + {t("nav:user.current-organization")} </div> <div onClick={() => @@ -228,7 +228,7 @@ export default function Navbar({ onButtonPressed }) { icon={faCoins} /> <div className="text-sm"> - {t("common:nav.user.usage-billing")} + {t("nav:user.usage-billing")} </div> </div> </button> @@ -253,7 +253,7 @@ export default function Navbar({ onButtonPressed }) { /> </span> <div className="text-sm ml-1"> - {t("common:nav.user.invite")} + {t("nav:user.invite")} </div> </div> </button> @@ -261,9 +261,7 @@ export default function Navbar({ onButtonPressed }) { {orgs?.length > 1 && ( <div className="px-1 pt-1"> <div className="text-gray-400 self-start ml-2 mt-2 text-xs font-semibold tracking-wide"> - {t( - "common:nav.user.other-organizations" - )} + {t("nav:user.other-organizations")} </div> <div className="flex flex-col items-start px-1 mt-3 mb-2"> {orgs diff --git a/frontend/i18n.js b/frontend/i18n.js index 7538b1b84..7be79b767 100644 --- a/frontend/i18n.js +++ b/frontend/i18n.js @@ -2,6 +2,7 @@ module.exports = { locales: ["en-US", "ko-KR"], defaultLocale: "en-US", pages: { - "*": ["common"], + "*": ["common", "nav"], + "reg:^/(login|signup)": ["auth"], }, }; diff --git a/frontend/locales/en-US/auth.json b/frontend/locales/en-US/auth.json new file mode 100644 index 000000000..81c4918d0 --- /dev/null +++ b/frontend/locales/en-US/auth.json @@ -0,0 +1,32 @@ +{ + "meta": { + "login": { + "title": "Login | Infiscal", + "og-title": "Log In to Infisical", + "og-description": "Infisical a simple end-to-end encrypted platform that enables teams to sync and manage their .env files." + }, + "signup": { + "title": "Sign Up | Infiscal", + "og-title": "Replace .env files with 1 line of code. Sign Up for Infisical in 3 minutes.", + "og-description": "Infisical a simple end-to-end encrypted platform that enables teams to sync and manage API-keys and environemntal variables. Works with Node.js, Next.js, Gatsby, Nest.js..." + } + }, + "login": "Log In", + "signup": "Sign Up", + "need-account": "Need an Infisical account?", + "create-account": "Create an account", + "already-have-account": "Have an account? Log in", + "forgot-password": "Forgot your password?", + "step1-start": "Let's get started", + "step1-privacy": "By creating an account, you agree to our Terms and have read and acknowledged the Privacy Policy.", + "step1-submit": "Get Started", + "step2-message": "<wrapper>We've sent a verification email to</wrapper><email>{{email}}</email>", + "step2-code-error": "Oops. Your code is wrong. Please try again.", + "step2-spam-alert": "Make sure to check your spam inbox.", + "step3-message": "Almost there!", + "step4-message": "Save your Emergency Kit", + "step4-description1": "If you get locked out of your account, your Emergency Kit is the only way to sign in.", + "step4-description2": "We recommend you download it and keep it somewhere safe.", + "step4-description3": "It contains your Secret Key which we cannot access or recover for you if you lose it.", + "step4-download": "Download PDF" +} diff --git a/frontend/locales/en-US/common.json b/frontend/locales/en-US/common.json index a50f0c204..41868c0bd 100644 --- a/frontend/locales/en-US/common.json +++ b/frontend/locales/en-US/common.json @@ -1,38 +1,4 @@ { - "meta": { - "login": { - "title": "Login | Infiscal", - "og-title": "Log In to Infisical", - "og-description": "Infisical a simple end-to-end encrypted platform that enables teams to sync and manage their .env files." - }, - "signup": { - "title": "Sign Up | Infiscal", - "og-title": "Replace .env files with 1 line of code. Sign Up for Infisical in 3 minutes.", - "og-description": "Infisical a simple end-to-end encrypted platform that enables teams to sync and manage API-keys and environemntal variables. Works with Node.js, Next.js, Gatsby, Nest.js..." - } - }, - "nav": { - "support": { - "slack": "[NEW] Join Slack Forum", - "docs": "Read Docs", - "issue": "Open a Github Issue", - "email": "Send us an Email" - }, - "user": { - "signed-in-as": "SIGNED IN AS", - "current-organization": "CURRENT ORGANIZATION", - "usage-billing": "Usage & Billing", - "invite": "Invite Members", - "other-organizations": "OTHER ORGANIZATION" - }, - "menu": { - "project": "PROJECT", - "secrets": "Secrets", - "members": "Members", - "integrations": "Integrations", - "project-settings": "Project Settings" - } - }, "error_project-already-exists": "A project with this name already exists.", "need-login": " To use Infisical, please log in through a device with larger dimensions. ", "email": "Email", @@ -46,25 +12,5 @@ "password-validate-length": "14 characters", "password-validate-case": "1 lowercase character", "password-validate-number": "1 number", - "auth": { - "login": "Log In", - "signup": "Sign Up", - "need-account": "Need an Infisical account?", - "create-account": "Create an account", - "already-have-account": "Have an account? Log in", - "forgot-password": "Forgot your password?", - "step1-start": "Let's get started", - "step1-privacy": "By creating an account, you agree to our Terms and have read and acknowledged the Privacy Policy.", - "step1-submit": "Get Started", - "step2-message": "<wrapper>We've sent a verification email to</wrapper><email>{{email}}</email>", - "step2-code-error": "Oops. Your code is wrong. Please try again.", - "step2-spam-alert": "Make sure to check your spam inbox.", - "step3-message": "Almost there!", - "step4-message": "Save your Emergency Kit", - "step4-description1": "If you get locked out of your account, your Emergency Kit is the only way to sign in.", - "step4-description2": "We recommend you download it and keep it somewhere safe.", - "step4-description3": "It contains your Secret Key which we cannot access or recover for you if you lose it.", - "step4-download": "Download PDF" - }, "maintenance-alert": "We are experiencing minor technical difficulties. We are working on solving it right now. Please come back in a few minutes." } diff --git a/frontend/locales/en-US/nav.json b/frontend/locales/en-US/nav.json new file mode 100644 index 000000000..9448a53a7 --- /dev/null +++ b/frontend/locales/en-US/nav.json @@ -0,0 +1,22 @@ +{ + "support": { + "slack": "[NEW] Join Slack Forum", + "docs": "Read Docs", + "issue": "Open a Github Issue", + "email": "Send us an Email" + }, + "user": { + "signed-in-as": "SIGNED IN AS", + "current-organization": "CURRENT ORGANIZATION", + "usage-billing": "Usage & Billing", + "invite": "Invite Members", + "other-organizations": "OTHER ORGANIZATION" + }, + "menu": { + "project": "PROJECT", + "secrets": "Secrets", + "members": "Members", + "integrations": "Integrations", + "project-settings": "Project Settings" + } +} diff --git a/frontend/pages/login.js b/frontend/pages/login.js index 966774642..55c2be3d0 100644 --- a/frontend/pages/login.js +++ b/frontend/pages/login.js @@ -20,7 +20,7 @@ export default function Login() { const [errorLogin, setErrorLogin] = useState(false); const [isLoading, setIsLoading] = useState(false); const router = useRouter(); - const { t } = useTranslation("common"); + const { t } = useTranslation(""); useEffect(async () => { let userWorkspace; @@ -55,13 +55,16 @@ export default function Login() { return ( <div className="bg-bunker-800 h-screen flex flex-col justify-start px-6"> <Head> - <title>{t("meta.login.title")}</title> + <title>{t("auth:meta.login.title")}</title> <link rel="icon" href="/infisical.ico" /> <meta property="og:image" content="/images/message.png" /> - <meta property="og:title" content={t("meta.login.og-title")} /> + <meta + property="og:title" + content={t("auth:meta.login.og-title")} + /> <meta name="og:description" - content={t("meta.login.og-description")} + content={t("auth:meta.login.og-description")} /> </Head> <Link href="/"> @@ -76,25 +79,25 @@ export default function Login() { </Link> <div className="bg-bunker w-full max-w-md mx-auto h-7/12 py-4 pt-8 px-6 rounded-xl drop-shadow-xl"> <p className="text-4xl flex justify-center font-semibold text-transparent bg-clip-text bg-gradient-to-br from-sky-400 to-primary"> - {t("auth.login")} + {t("auth:login")} </p> <div className="flex flex-row items-center justify-center"> <p className="text-md flex justify-center mt-2 text-gray-400"> - {t("auth.need-account")} + {t("auth:need-account")} </p> </div> <div className="flex flex-col items-center justify-center w-full md:pb-4 max-h-24 max-w-md mx-auto"> <Link href="/signup"> <button className="w-full pb-3 hover:opacity-90 duration-200"> <u className="font-normal text-md text-sky-500"> - {t("auth.create-account")} + {t("auth:create-account")} </u> </button> </Link> </div> <div className="flex items-center justify-center w-full md:p-2 rounded-lg mt-4 md:mt-0 max-h-24 md:max-h-28"> <InputField - label={t("email")} + label={t("common:email")} onChangeHandler={setEmail} type="email" value={email} @@ -104,7 +107,7 @@ export default function Login() { </div> <div className="flex items-center justify-center w-full md:p-2 rounded-lg md:mt-2 mt-6 max-h-24 md:max-h-28"> <InputField - label={t("password")} + label={t("common:password")} onChangeHandler={setPassword} type="password" value={password} @@ -118,7 +121,7 @@ export default function Login() { <div className="flex flex-col items-center justify-center w-full md:p-2 max-h-20 max-w-md mt-4 mx-auto text-sm"> <div className="text-l mt-6 m-8 px-8 py-3 text-lg"> <Button - text={t("login")} + text={t("auth:login")} onButtonPressed={loginCheck} loading={isLoading} size="lg" @@ -136,7 +139,7 @@ export default function Login() { className="ml-2 mr-6 text-6xl" /> - {t("maintenance-alert")} + {t("auth:maintenance-alert")} </div> )} </div> diff --git a/frontend/pages/signup.js b/frontend/pages/signup.js index eed571b5b..dd5f18b7e 100644 --- a/frontend/pages/signup.js +++ b/frontend/pages/signup.js @@ -87,16 +87,16 @@ export default function SignUp() { const [verificationToken, setVerificationToken] = useState(); const [backupKeyIssued, setBackupKeyIssued] = useState(false); - const { t } = useTranslation("common"); + const { t } = useTranslation(); useEffect(async () => { let userWorkspace; try { const userWorkspaces = await getWorkspaces(); userWorkspace = userWorkspaces[0]._id; - router.push("/dashboard/" + userWorkspace); + router.push("auth:/dashboard/" + userWorkspace); } catch (error) { - console.log("Error - Not logged in yet"); + console.log("auth:Error - Not logged in yet"); } }, []); @@ -130,15 +130,15 @@ export default function SignUp() { var emailCheckBool = false; if (!email) { setEmailError(true); - setEmailErrorMessage("Please enter your email."); + setEmailErrorMessage("auth:Please enter your email."); emailCheckBool = true; } else if ( - !email.includes("@") || - !email.includes(".") || + !email.includes("auth:@") || + !email.includes("auth:.") || !/[a-z]/.test(email) ) { setEmailError(true); - setEmailErrorMessage("Please enter a valid email."); + setEmailErrorMessage("auth:Please enter a valid email."); emailCheckBool = true; } else { setEmailError(false); @@ -194,7 +194,7 @@ export default function SignUp() { "0" ) ); - localStorage.setItem("PRIVATE_KEY", PRIVATE_KEY); + localStorage.setItem("auth:PRIVATE_KEY", PRIVATE_KEY); client.init( { @@ -223,13 +223,13 @@ export default function SignUp() { if (!errorCheck && response.status == "200") { response = await response.json(); - localStorage.setItem("publicKey", PUBLIC_KEY); + localStorage.setItem("auth:publicKey", PUBLIC_KEY); localStorage.setItem( "encryptedPrivateKey", ciphertext ); - localStorage.setItem("iv", iv); - localStorage.setItem("tag", tag); + localStorage.setItem("auth:iv", iv); + localStorage.setItem("auth:tag", tag); try { await attemptLogin( @@ -257,20 +257,20 @@ export default function SignUp() { const step1 = ( <div className="bg-bunker w-full max-w-md mx-auto h-7/12 py-8 md:px-6 mx-1 mb-48 md:mb-16 rounded-xl drop-shadow-xl"> <p className="text-4xl font-semibold flex justify-center text-transparent bg-clip-text bg-gradient-to-br from-sky-400 to-primary"> - {t("auth.step1-start")} + {t("auth:step1-start")} </p> <div className="flex flex-col items-center justify-center w-full md:pb-2 max-h-24 max-w-md mx-auto pt-2"> <Link href="/login"> <button className="w-max pb-3 hover:opacity-90 duration-200"> <u className="font-normal text-md text-sky-500"> - {t("auth.already-have-account")} + {t("auth:already-have-account")} </u> </button> </Link> </div> <div className="flex items-center justify-center w-5/6 md:w-full m-auto md:p-2 rounded-lg max-h-24 mt-4"> <InputField - label={t("email")} + label={t("auth:email")} onChangeHandler={setEmail} type="email" value={email} @@ -291,7 +291,7 @@ export default function SignUp() { </p> <div className="text-l mt-6 m-2 md:m-8 px-8 py-1 text-lg"> <Button - text={t("auth.step1-submit")} + text={t("auth:step1-submit")} onButtonPressed={emailCheck} size="lg" /> @@ -304,7 +304,7 @@ export default function SignUp() { const step2 = ( <div className="bg-bunker w-max mx-auto h-7/12 pt-10 pb-4 px-8 rounded-xl drop-shadow-xl mb-64 md:mb-16"> <Trans - i18nKey="common:auth.step2-message" + i18nKey="common:step2-message" components={{ wrapper: ( <p className="text-l flex justify-center text-gray-400" /> @@ -334,10 +334,10 @@ export default function SignUp() { className="mt-2 mb-6" /> </div> - {codeError && <Error text={t("auth.step2-code-error")} />} + {codeError && <Error text={t("auth:step2-code-error")} />} <div className="flex max-w-min flex-col items-center justify-center md:p-2 max-h-24 max-w-md mx-auto text-lg px-4 mt-4 mb-2"> <Button - text={t("verify")} + text={t("auth:verify")} onButtonPressed={incrementStep} size="lg" /> @@ -351,7 +351,7 @@ export default function SignUp() { </button> </Link> */} <p className="text-sm text-gray-500 pb-2"> - {t("auth.step2-spam-alert")} + {t("auth:step2-spam-alert")} </p> </div> </div> @@ -361,37 +361,37 @@ export default function SignUp() { const step3 = ( <div className="bg-bunker w-max mx-auto h-7/12 py-10 px-8 rounded-xl drop-shadow-xl mb-36 md:mb-16"> <p className="text-4xl font-bold flex justify-center mb-6 text-gray-400 mx-8 md:mx-16 text-transparent bg-clip-text bg-gradient-to-br from-sky-400 to-primary"> - {t("auth.step3-message")} + {t("auth:step3-message")} </p> <div className="relative z-0 flex items-center justify-end w-full md:p-2 rounded-lg max-h-24"> <InputField - label={t("first-name")} + label={t("auth:first-name")} onChangeHandler={setFirstName} type="name" value={firstName} isRequired - errorText={t("validate-required", { - name: t("first-name"), + errorText={t("auth:validate-required", { + name: t("auth:first-name"), })} error={firstNameError} /> </div> <div className="mt-2 flex items-center justify-center w-full md:p-2 rounded-lg max-h-24"> <InputField - label={t("last-name")} + label={t("auth:last-name")} onChangeHandler={setLastName} type="name" value={lastName} isRequired - errorText={t("validate-required", { - name: t("last-name"), + errorText={t("auth:validate-required", { + name: t("auth:last-name"), })} error={lastNameError} /> </div> <div className="mt-2 flex flex-col items-center justify-center w-full md:p-2 rounded-lg max-h-60"> <InputField - label={t("password")} + label={t("auth:password")} onChangeHandler={(password) => { setPassword(password); passwordCheck( @@ -416,7 +416,7 @@ export default function SignUp() { passwordErrorNumber ? ( <div className="w-full mt-4 bg-white/5 px-2 flex flex-col items-start py-2 rounded-md"> <div className={`text-gray-400 text-sm mb-1`}> - {t("password-validate")} + {t("auth:password-validate")} </div> <div className="flex flex-row justify-start items-center ml-1"> {passwordErrorLength ? ( @@ -437,7 +437,7 @@ export default function SignUp() { : "text-gray-600" } text-sm`} > - {t("password-validate-length")} + {t("auth:password-validate-length")} </div> </div> <div className="flex flex-row justify-start items-center ml-1"> @@ -459,7 +459,7 @@ export default function SignUp() { : "text-gray-600" } text-sm`} > - {t("password-validate-case")} + {t("auth:password-validate-case")} </div> </div> <div className="flex flex-row justify-start items-center ml-1"> @@ -481,7 +481,7 @@ export default function SignUp() { : "text-gray-600" } text-sm`} > - {t("password-validate-number")} + {t("auth:password-validate-number")} </div> </div> </div> @@ -491,7 +491,7 @@ export default function SignUp() { </div> <div className="flex flex-col items-center justify-center md:p-2 max-h-48 max-w-max mx-auto text-lg px-2 py-3"> <Button - text={t("auth.signup")} + text={t("auth:signup")} loading={isLoading} onButtonPressed={signupErrorCheck} size="lg" @@ -504,22 +504,22 @@ export default function SignUp() { const step4 = ( <div className="bg-bunker flex flex-col items-center w-full max-w-xs md:max-w-lg mx-auto h-7/12 py-8 px-4 md:px-6 mx-1 mb-36 md:mb-16 rounded-xl drop-shadow-xl"> <p className="text-4xl text-center font-semibold flex justify-center text-transparent bg-clip-text bg-gradient-to-br from-sky-400 to-primary"> - {t("auth.step4-message")} + {t("auth:step4-message")} </p> <div className="flex flex-col items-center justify-center w-full mt-4 md:mt-8 max-w-md text-gray-400 text-md rounded-md px-2"> - <div>{t("auth.step4-description1")}</div> - <div className="mt-3">{t("auth.step4-description2")}</div> + <div>{t("auth:step4-description1")}</div> + <div className="mt-3">{t("auth:step4-description2")}</div> </div> <div className="w-full p-2 flex flex-row items-center bg-white/10 text-gray-400 rounded-md max-w-xs md:max-w-md mx-auto mt-4"> <FontAwesomeIcon icon={faWarning} className="ml-2 mr-4 text-4xl" /> - {t("auth.step4-description3")} + {t("auth:step4-description3")} </div> <div className="flex flex-row items-center justify-center w-3/4 md:w-full md:p-2 max-h-28 max-w-max mx-auto mt-6 py-1 md:mt-4 text-lg text-center md:text-left"> <Button - text={t("auth.step4-download")} + text={t("auth:step4-download")} onButtonPressed={async () => { await issueBackupKey({ email, @@ -528,17 +528,17 @@ export default function SignUp() { setBackupKeyError, setBackupKeyIssued, }); - router.push("/dashboard/"); + router.push("auth:/dashboard/"); }} size="lg" /> {/* <div className="text-l mt-4 text-lg text-gray-400 hover:text-gray-300 duration-200 bg-white/5 px-8 hover:bg-white/10 py-3 rounded-md cursor-pointer" onClick={() => { - if (localStorage.getItem("projectData.id")) { - router.push("/dashboard/" + localStorage.getItem("projectData.id")); + if (localStorage.getItem("auth:projectData.id")) { + router.push("auth:/dashboard/" + localStorage.getItem("projectData.id")); } else { - router.push("/noprojects") + router.push("auth:/noprojects") } }} > @@ -551,13 +551,16 @@ export default function SignUp() { return ( <div className="bg-bunker-800 h-screen flex flex-col items-center justify-center"> <Head> - <title>{t("meta.signup.title")}</title> + <title>{t("auth:meta.signup.title")}</title> <link rel="icon" href="/infisical.ico" /> <meta property="og:image" content="/images/message.png" /> - <meta property="og:title" content={t("meta.signup.og-title")} /> + <meta + property="og:title" + content={t("auth:meta.signup.og-title")} + /> <meta name="og:description" - content={t("meta.signup.og-description")} + content={t("auth:meta.signup.og-description")} /> </Head> <div className="flex flex-col justify-center items-center">