From 5d078fdaca628a1d723314653d732cdf107d799f Mon Sep 17 00:00:00 2001 From: "web@ppanel" Date: Thu, 16 Jan 2025 14:26:33 +0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix(auth):=20Update=20user=20aut?= =?UTF-8?q?hentication=20flow=20to=20include=20email=20and=20phone=20code?= =?UTF-8?q?=20verification?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth-form.tsx} | 84 ++++----------- .../login-form.tsx} | 16 +-- .../register-form.tsx} | 73 +++++++------ .../reset-form.tsx} | 52 ++++----- apps/admin/app/(auth)/page.tsx | 4 +- apps/admin/app/(auth)/send-code.tsx | 65 ++++++++++++ apps/admin/app/(auth)/user-check-form.tsx | 100 ------------------ apps/admin/app/layout.tsx | 7 +- apps/admin/locales/cs-CZ/auth.json | 23 ++-- apps/admin/locales/de-DE/auth.json | 23 ++-- apps/admin/locales/en-US/auth.json | 25 +++-- apps/admin/locales/es-ES/auth.json | 23 ++-- apps/admin/locales/es-MX/auth.json | 23 ++-- apps/admin/locales/fa-IR/auth.json | 23 ++-- apps/admin/locales/fi-FI/auth.json | 23 ++-- apps/admin/locales/fr-FR/auth.json | 23 ++-- apps/admin/locales/hi-IN/auth.json | 23 ++-- apps/admin/locales/hu-HU/auth.json | 23 ++-- apps/admin/locales/ja-JP/auth.json | 23 ++-- apps/admin/locales/ko-KR/auth.json | 23 ++-- apps/admin/locales/no-NO/auth.json | 23 ++-- apps/admin/locales/pl-PL/auth.json | 23 ++-- apps/admin/locales/pt-BR/auth.json | 23 ++-- apps/admin/locales/ro-RO/auth.json | 23 ++-- apps/admin/locales/ru-RU/auth.json | 23 ++-- apps/admin/locales/th-TH/auth.json | 23 ++-- apps/admin/locales/tr-TR/auth.json | 23 ++-- apps/admin/locales/uk-UA/auth.json | 23 ++-- apps/admin/locales/vi-VN/auth.json | 23 ++-- apps/admin/locales/zh-CN/auth.json | 23 ++-- apps/admin/locales/zh-HK/auth.json | 23 ++-- 31 files changed, 552 insertions(+), 380 deletions(-) rename apps/admin/app/(auth)/{user-auth-form.tsx => email/auth-form.tsx} (55%) rename apps/admin/app/(auth)/{user-login-form.tsx => email/login-form.tsx} (88%) rename apps/admin/app/(auth)/{user-register-form.tsx => email/register-form.tsx} (77%) rename apps/admin/app/(auth)/{user-reset-form.tsx => email/reset-form.tsx} (74%) create mode 100644 apps/admin/app/(auth)/send-code.tsx delete mode 100644 apps/admin/app/(auth)/user-check-form.tsx diff --git a/apps/admin/app/(auth)/user-auth-form.tsx b/apps/admin/app/(auth)/email/auth-form.tsx similarity index 55% rename from apps/admin/app/(auth)/user-auth-form.tsx rename to apps/admin/app/(auth)/email/auth-form.tsx index 496fe7a..4c69be2 100644 --- a/apps/admin/app/(auth)/user-auth-form.tsx +++ b/apps/admin/app/(auth)/email/auth-form.tsx @@ -1,24 +1,24 @@ 'use client'; +import { resetPassword, userLogin, userRegister } from '@/services/common/auth'; +import { useTranslations } from 'next-intl'; +import { useRouter } from 'next/navigation'; +import { ReactNode, useState, useTransition } from 'react'; +import { toast } from 'sonner'; + import { NEXT_PUBLIC_DEFAULT_USER_EMAIL, NEXT_PUBLIC_DEFAULT_USER_PASSWORD, } from '@/config/constants'; -import { checkUser, resetPassword, userLogin, userRegister } from '@/services/common/auth'; import { getRedirectUrl, setAuthorization } from '@/utils/common'; -import { useTranslations } from 'next-intl'; -import { useRouter } from 'next/navigation'; -import { ReactNode, useState, useTransition } from 'react'; -import { toast } from 'sonner'; -import UserCheckForm from './user-check-form'; -import UserLoginForm from './user-login-form'; -import UserRegisterForm from './user-register-form'; -import UserResetForm from './user-reset-form'; +import LoginForm from './login-form'; +import RegisterForm from './register-form'; +import ResetForm from './reset-form'; -export default function UserAuthForm() { +export default function EmailAuthForm() { const t = useTranslations('auth'); const router = useRouter(); - const [type, setType] = useState<'login' | 'register' | 'reset'>(); + const [type, setType] = useState<'login' | 'register' | 'reset'>('login'); const [loading, startTransition] = useTransition(); const [initialValues, setInitialValues] = useState<{ email?: string; @@ -38,44 +38,35 @@ export default function UserAuthForm() { startTransition(async () => { try { switch (type) { - case 'login': - // eslint-disable-next-line no-case-declarations + case 'login': { const login = await userLogin(params); toast.success(t('login.success')); onLogin(login.data.data?.token); break; - case 'register': - // eslint-disable-next-line no-case-declarations + } + case 'register': { const create = await userRegister(params); toast.success(t('register.success')); onLogin(create.data.data?.token); break; + } case 'reset': await resetPassword(params); toast.success(t('reset.success')); setType('login'); break; - default: - if (type === 'reset') break; - // eslint-disable-next-line no-case-declarations - const response = await checkUser(params); - setInitialValues({ - ...initialValues, - ...params, - }); - setType(response.data.data?.exist ? 'login' : 'register'); - break; } } catch (error) { /* empty */ } }); }; + let UserForm: ReactNode = null; switch (type) { case 'login': UserForm = ( - ); break; - default: - UserForm = ( - - ); - break; } return ( @@ -125,34 +107,6 @@ export default function UserAuthForm() { {t(`${type || 'check'}.description`)} - {/* {!((type === 'register' && register.stop_register) || type === 'reset') && ( - <> -
- - - -
-
- {t('orWithEmail')} -
- - )} */} - {UserForm} ); diff --git a/apps/admin/app/(auth)/user-login-form.tsx b/apps/admin/app/(auth)/email/login-form.tsx similarity index 88% rename from apps/admin/app/(auth)/user-login-form.tsx rename to apps/admin/app/(auth)/email/login-form.tsx index e2e6641..939dd46 100644 --- a/apps/admin/app/(auth)/user-login-form.tsx +++ b/apps/admin/app/(auth)/email/login-form.tsx @@ -1,6 +1,6 @@ import useGlobalStore from '@/config/use-global'; import { zodResolver } from '@hookform/resolvers/zod'; -import { Icon } from '@iconify/react'; +import { Icon } from '@iconify/react/dist/iconify.js'; import { Button } from '@workspace/ui/components/button'; import { Form, FormControl, FormField, FormItem, FormMessage } from '@workspace/ui/components/form'; import { Input } from '@workspace/ui/components/input'; @@ -8,9 +8,9 @@ import { useTranslations } from 'next-intl'; import { Dispatch, SetStateAction } from 'react'; import { useForm } from 'react-hook-form'; import { z } from 'zod'; -import CloudFlareTurnstile from './turnstile'; +import CloudFlareTurnstile from '../turnstile'; -export default function UserLoginForm({ +export default function LoginForm({ loading, onSubmit, initialValues, @@ -21,14 +21,14 @@ export default function UserLoginForm({ onSubmit: (data: any) => void; initialValues: any; setInitialValues: Dispatch>; - onSwitchForm: (type?: 'register' | 'reset') => void; + onSwitchForm: Dispatch>; }) { const t = useTranslations('auth.login'); const { common } = useGlobalStore(); const { verify } = common; const formSchema = z.object({ - email: z.string(), + email: z.string().email(t('email')), password: z.string(), cf_token: verify.enable_login_verify && verify.turnstile_site_key ? z.string() : z.string().optional(), @@ -48,7 +48,7 @@ export default function UserLoginForm({ render={({ field }) => ( - + @@ -100,10 +100,10 @@ export default function UserLoginForm({ className='p-0' onClick={() => { setInitialValues(undefined); - onSwitchForm(undefined); + onSwitchForm('register'); }} > - {t('switchAccount')} + {t('registerAccount')} diff --git a/apps/admin/app/(auth)/user-register-form.tsx b/apps/admin/app/(auth)/email/register-form.tsx similarity index 77% rename from apps/admin/app/(auth)/user-register-form.tsx rename to apps/admin/app/(auth)/email/register-form.tsx index 190f948..7650a15 100644 --- a/apps/admin/app/(auth)/user-register-form.tsx +++ b/apps/admin/app/(auth)/email/register-form.tsx @@ -1,19 +1,18 @@ import useGlobalStore from '@/config/use-global'; -import { sendEmailCode } from '@/services/common/common'; import { zodResolver } from '@hookform/resolvers/zod'; -import { Icon } from '@iconify/react'; +import { Icon } from '@iconify/react/dist/iconify.js'; import { Button } from '@workspace/ui/components/button'; import { Form, FormControl, FormField, FormItem, FormMessage } from '@workspace/ui/components/form'; import { Input } from '@workspace/ui/components/input'; import { Markdown } from '@workspace/ui/custom-components/markdown'; -import { useCountDown } from 'ahooks'; import { useTranslations } from 'next-intl'; -import { Dispatch, SetStateAction, useState } from 'react'; +import { Dispatch, SetStateAction } from 'react'; import { useForm } from 'react-hook-form'; import { z } from 'zod'; -import CloudFlareTurnstile from './turnstile'; +import SendCode from '../send-code'; +import CloudFlareTurnstile from '../turnstile'; -export default function UserRegisterForm({ +export default function RegisterForm({ loading, onSubmit, initialValues, @@ -24,33 +23,36 @@ export default function UserRegisterForm({ onSubmit: (data: any) => void; initialValues: any; setInitialValues: Dispatch>; - onSwitchForm: (type?: 'register' | 'reset') => void; + onSwitchForm: Dispatch>; }) { const t = useTranslations('auth.register'); const { common } = useGlobalStore(); - const { verify, register, invite } = common; + const { verify, auth, invite } = common; - const [targetDate, setTargetDate] = useState(); - const [, { seconds }] = useCountDown({ - targetDate, - onEnd: () => { - setTargetDate(undefined); - }, - }); - const handleSendCode = async () => { - await sendEmailCode({ - email: initialValues.email, - type: 1, - }); - setTargetDate(Date.now() + 60000); + const handleCheckUser = async (email: string) => { + try { + const domain = email.split('@')[1]; + const isValid = + !auth.email.email_enable_verify || + auth.email?.email_domain_suffix_list.split('\n').includes(domain || ''); + return !isValid; + } catch (error) { + console.log('Error checking user:', error); + return false; + } }; const formSchema = z .object({ - email: z.string(), + email: z + .string() + .email(t('email')) + .refine(handleCheckUser, { + message: t('whitelist'), + }), password: z.string(), repeat_password: z.string(), - code: register.enable_email_verify ? z.string() : z.string().nullish(), + code: auth.email.email_enable_verify ? z.string() : z.string().nullish(), invite: invite.forced_invite ? z.string() : z.string().nullish(), cf_token: verify.enable_register_verify && verify.turnstile_site_key @@ -66,17 +68,18 @@ export default function UserRegisterForm({ }); } }); + const form = useForm>({ resolver: zodResolver(formSchema), defaultValues: { ...initialValues, - invite: sessionStorage.getItem('invite'), + invite: localStorage.getItem('invite') || '', }, }); return ( <> - {register.stop_register ? ( + {auth.register.stop_register ? ( {t('message')} ) : (
@@ -87,7 +90,7 @@ export default function UserRegisterForm({ render={({ field }) => ( - + @@ -127,7 +130,7 @@ export default function UserRegisterForm({ )} /> - {register.enable_email_verify && ( + {auth.email.email_enable_verify && ( - + @@ -159,7 +166,7 @@ export default function UserRegisterForm({ )}
- {t('existingAccount')} + {t('existingAccount')}  +
@@ -139,13 +127,13 @@ export default function UserResetForm({
- {t('existingAccount')} + {t('existingAccount')}  + ); +} diff --git a/apps/admin/app/(auth)/user-check-form.tsx b/apps/admin/app/(auth)/user-check-form.tsx deleted file mode 100644 index f77a164..0000000 --- a/apps/admin/app/(auth)/user-check-form.tsx +++ /dev/null @@ -1,100 +0,0 @@ -import { zodResolver } from '@hookform/resolvers/zod'; -import { Icon } from '@iconify/react'; -import { Button } from '@workspace/ui/components/button'; -import { Form, FormControl, FormField, FormItem, FormMessage } from '@workspace/ui/components/form'; -import { Input } from '@workspace/ui/components/input'; -import { useTranslations } from 'next-intl'; -import { useEffect, useRef, useState } from 'react'; -import { useForm } from 'react-hook-form'; -import { z } from 'zod'; - -interface UserCheckFormProps { - loading?: boolean; - onSubmit: (data: any) => void; - initialValues: any; -} - -export default function UserCheckForm({ - loading, - onSubmit, - initialValues, -}: Readonly) { - const t = useTranslations('auth.check'); - - const formSchema = z.object({ - email: z.string().email(t('email')), - }); - - const form = useForm>({ - resolver: zodResolver(formSchema), - defaultValues: initialValues, - }); - - const [isSubmitting, setIsSubmitting] = useState(false); - const typingTimeoutRef = useRef(null); - - const handleEmailChange = (value: string) => { - form.setValue('email', value); - - if (typingTimeoutRef.current) { - clearTimeout(typingTimeoutRef.current); - } - - typingTimeoutRef.current = setTimeout(async () => { - const isValid = await form.trigger('email'); - if (isValid) { - setIsSubmitting(true); - form.handleSubmit(onSubmit)(); - } else { - setIsSubmitting(false); - } - }, 500); - }; - - useEffect(() => { - if (initialValues?.email) { - handleEmailChange(initialValues.email); - } - return () => { - if (typingTimeoutRef.current) { - clearTimeout(typingTimeoutRef.current); - } - }; - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); - - return ( -
- - ( - - - handleEmailChange(e.target.value)} - /> - - - - )} - /> - - - - ); -} diff --git a/apps/admin/app/layout.tsx b/apps/admin/app/layout.tsx index a4d465a..86fc283 100644 --- a/apps/admin/app/layout.tsx +++ b/apps/admin/app/layout.tsx @@ -93,7 +93,12 @@ export default async function RootLayout({ user = await currentUser({ skipErrorHandler: true, Authorization, - }).then((res) => res.data.data); + }).then((res) => { + if (res.data.data?.is_admin) { + return res.data.data; + } + return undefined; + }); } catch (error) { console.log('Error fetching current user:', error); } diff --git a/apps/admin/locales/cs-CZ/auth.json b/apps/admin/locales/cs-CZ/auth.json index 39cf91e..a037175 100644 --- a/apps/admin/locales/cs-CZ/auth.json +++ b/apps/admin/locales/cs-CZ/auth.json @@ -4,20 +4,27 @@ "continue": "Pokračovat", "description": "Zadejte svůj e-mail pro pokračování v přihlášení nebo registraci.", "email": "Zadejte platnou e-mailovou adresu.", - "title": "Přihlášení/Registrace", - "whitelist": "Doména e-mailu není na povoleném seznamu." + "title": "Přihlášení/Registrace" }, + "get": "Získat", "login": { + "codeLogin": "Přihlášení pomocí ověřovacího kódu", "description": "Zadejte prosím své přihlašovací údaje pro přihlášení.", + "email": "Zadejte platnou e-mailovou adresu.", "forgotPassword": "Zapomněli jste heslo?", + "passwordLogin": "Přihlášení pomocí hesla", + "registerAccount": "Registrace účtu", "success": "Přihlášení bylo úspěšné!", - "switchAccount": "Registrace/Přepnout účet", "title": "Přihlášení" }, - "logout": "Odhlásit se", + "methods": { + "email": "E-mail", + "sms": "Telefon" + }, "orWithEmail": "nebo pomocí e-mailu", "register": { "description": "Vytvořte si nový účet, vyplňte své údaje pro registraci.", + "email": "Zadejte platnou e-mailovou adresu.", "existingAccount": "Již máte účet?", "get": "Získat", "invite": "Pozvánkový kód", @@ -25,15 +32,19 @@ "passwordMismatch": "Hesla se neshodují", "success": "Registrace úspěšná, automaticky přihlášeno!", "switchToLogin": "Přihlásit se/Obnovit e-mail", - "title": "Registrace" + "title": "Registrace", + "whitelist": "Doména e-mailu není na povoleném seznamu." }, "reset": { "description": "Zadejte svou e-mailovou adresu pro obnovení hesla.", + "email": "Zadejte prosím platnou e-mailovou adresu.", "existingAccount": "Máte již účet?", "get": "Získat", "success": "Obnovení hesla bylo úspěšné, automaticky přepnuto na přihlášení!", "switchToLogin": "Přihlášení/Registrace", "title": "Obnovení hesla" }, - "tos": "Podmínky služby" + "tos": "Podmínky služby", + "verifyAccount": "Ověření účtu", + "verifyAccountDesc": "Prosím, ověřte svůj účet, abyste mohli pokračovat." } diff --git a/apps/admin/locales/de-DE/auth.json b/apps/admin/locales/de-DE/auth.json index 1713f7a..5bcca30 100644 --- a/apps/admin/locales/de-DE/auth.json +++ b/apps/admin/locales/de-DE/auth.json @@ -4,20 +4,27 @@ "continue": "Fortfahren", "description": "Bitte geben Sie Ihre E-Mail-Adresse ein, um sich anzumelden oder zu registrieren.", "email": "Bitte geben Sie eine gültige E-Mail-Adresse ein.", - "title": "Anmelden/Registrieren", - "whitelist": "Die E-Mail-Domain befindet sich nicht auf der zugelassenen Whitelist." + "title": "Anmelden/Registrieren" }, + "get": "Holen", "login": { + "codeLogin": "Anmeldung mit Bestätigungscode", "description": "Bitte geben Sie Ihre Kontoinformationen ein, um sich anzumelden.", + "email": "Bitte geben Sie eine gültige E-Mail-Adresse ein.", "forgotPassword": "Passwort vergessen?", + "passwordLogin": "Anmeldung mit Passwort", + "registerAccount": "Konto registrieren", "success": "Erfolgreich eingeloggt!", - "switchAccount": "Registrieren/Konto wechseln", "title": "Anmeldung" }, - "logout": "Abmelden", + "methods": { + "email": "E-Mail", + "sms": "Telefon" + }, "orWithEmail": "oder mit E-Mail", "register": { "description": "Erstellen Sie ein neues Konto, indem Sie Ihre Informationen ausfüllen, um sich zu registrieren.", + "email": "Bitte geben Sie eine gültige E-Mail-Adresse ein.", "existingAccount": "Bereits ein Konto?", "get": "Erhalten", "invite": "Einladungscode", @@ -25,15 +32,19 @@ "passwordMismatch": "Die eingegebenen Passwörter stimmen nicht überein", "success": "Registrierung erfolgreich, Sie sind automatisch eingeloggt!", "switchToLogin": "Anmelden/E-Mail zurücksetzen", - "title": "Registrieren" + "title": "Registrieren", + "whitelist": "Die E-Mail-Domain befindet sich nicht in der erlaubten Whitelist." }, "reset": { "description": "Bitte geben Sie Ihre E-Mail-Adresse ein, um das Passwort zurückzusetzen.", + "email": "Bitte geben Sie eine gültige E-Mail-Adresse ein.", "existingAccount": "Bereits ein Konto?", "get": "Erhalten", "success": "Passwort erfolgreich zurückgesetzt, automatisch zum Login gewechselt!", "switchToLogin": "Anmelden/Registrieren", "title": "Passwort zurücksetzen" }, - "tos": "Nutzungsbedingungen" + "tos": "Nutzungsbedingungen", + "verifyAccount": "Kontoverifizierung", + "verifyAccountDesc": "Bitte verifizieren Sie Ihr Konto, um fortzufahren." } diff --git a/apps/admin/locales/en-US/auth.json b/apps/admin/locales/en-US/auth.json index f485c7b..a6356d6 100644 --- a/apps/admin/locales/en-US/auth.json +++ b/apps/admin/locales/en-US/auth.json @@ -4,36 +4,47 @@ "continue": "Continue", "description": "Please enter your email to continue logging in or registering.", "email": "Please enter a valid email address.", - "title": "Login/Register", - "whitelist": "The email domain is not in the allowed whitelist." + "title": "Login/Register" }, + "get": "Get", "login": { + "codeLogin": "Verification Code Login", "description": "Please enter your account information to log in.", + "email": "Please enter a valid email address.", "forgotPassword": "Forgot Password?", + "passwordLogin": "Password Login", + "registerAccount": "Register Account", "success": "Login successful!", - "switchAccount": "Register/Switch Account", "title": "Login" }, - "logout": "Logout", + "methods": { + "email": "Email", + "sms": "Telephone" + }, "orWithEmail": "Or with Email", "register": { "description": "Create a new account, fill in your information to register.", + "email": "Please enter a valid email address.", "existingAccount": "Already have an account?", "get": "Get", "invite": "Invitation code", "message": "#### Dear User, Hello!\n\nThank you for your attention and support. Due to adjustments in site operation strategy, we have closed the new user registration function. During this period, existing users will not be affected.\n\nWe are committed to providing you with better service and experience, so we will conduct comprehensive system optimization and feature upgrades during the registration closure. In the future, we will welcome you with better content and services.\n\nPlease follow our website and social media platforms to get the latest updates and notifications. Thank you for your understanding and support.\n\nIf you have any questions or need assistance, please feel free to contact our customer service team.\n\n**Thank you again for your support and understanding.**", "passwordMismatch": "Passwords do not match", "success": "Registration successful, automatically logged in!", - "switchToLogin": "Login/Reset Email", - "title": "Register" + "switchToLogin": "Login", + "title": "Register", + "whitelist": "The email domain is not in the allowed whitelist." }, "reset": { "description": "Please enter your email address to reset your password.", + "email": "Please enter a valid email address.", "existingAccount": "Already have an account?", "get": "Get", "success": "Password reset successful, automatically switched to login!", "switchToLogin": "Login/Register", "title": "Reset Password" }, - "tos": "Terms of Service" + "tos": "Terms of Service", + "verifyAccount": "Account Verification", + "verifyAccountDesc": " Please verify your account to continue." } diff --git a/apps/admin/locales/es-ES/auth.json b/apps/admin/locales/es-ES/auth.json index b51e462..bd7cb1b 100644 --- a/apps/admin/locales/es-ES/auth.json +++ b/apps/admin/locales/es-ES/auth.json @@ -4,20 +4,27 @@ "continue": "Continuar", "description": "Por favor, introduce tu correo electrónico para continuar con el inicio de sesión o registro.", "email": "Por favor, introduce una dirección de correo electrónico válida.", - "title": "Iniciar sesión/Registrarse", - "whitelist": "El dominio del correo electrónico no está en la lista blanca permitida." + "title": "Iniciar sesión/Registrarse" }, + "get": "Obtener", "login": { + "codeLogin": "Inicio de sesión con código de verificación", "description": "Por favor, introduzca su información de cuenta para iniciar sesión.", + "email": "Por favor, introduce una dirección de correo electrónico válida.", "forgotPassword": "¿Olvidó su contraseña?", + "passwordLogin": "Inicio de sesión con contraseña", + "registerAccount": "Registrar cuenta", "success": "¡Inicio de sesión exitoso!", - "switchAccount": "Registrar/Cambiar cuenta", "title": "Iniciar sesión" }, - "logout": "Cerrar sesión", + "methods": { + "email": "Correo electrónico", + "sms": "Teléfono" + }, "orWithEmail": "o con correo electrónico", "register": { "description": "Crea una nueva cuenta, completa tu información para registrarte.", + "email": "Por favor, introduce una dirección de correo electrónico válida.", "existingAccount": "¿Ya tienes una cuenta?", "get": "Obtener", "invite": "Código de invitación", @@ -25,15 +32,19 @@ "passwordMismatch": "Las contraseñas no coinciden", "success": "¡Registro exitoso, sesión iniciada automáticamente!", "switchToLogin": "Iniciar sesión/restablecer correo electrónico", - "title": "Registro" + "title": "Registro", + "whitelist": "El dominio del correo electrónico no está en la lista blanca permitida." }, "reset": { "description": "Por favor, introduzca su dirección de correo electrónico para restablecer la contraseña.", + "email": "Por favor, introduce una dirección de correo electrónico válida.", "existingAccount": "¿Ya tienes una cuenta?", "get": "Obtener", "success": "¡Contraseña restablecida con éxito, se ha cambiado automáticamente a iniciar sesión!", "switchToLogin": "Iniciar sesión/Registrarse", "title": "Restablecer contraseña" }, - "tos": "Términos del servicio" + "tos": "Términos del servicio", + "verifyAccount": "Verificación de Cuenta", + "verifyAccountDesc": "Por favor, verifica tu cuenta para continuar." } diff --git a/apps/admin/locales/es-MX/auth.json b/apps/admin/locales/es-MX/auth.json index 28a7889..5165e21 100644 --- a/apps/admin/locales/es-MX/auth.json +++ b/apps/admin/locales/es-MX/auth.json @@ -4,20 +4,27 @@ "continue": "Continuar", "description": "Por favor, ingresa tu correo electrónico para continuar con el inicio de sesión o registro.", "email": "Por favor, ingresa una dirección de correo electrónico válida.", - "title": "Iniciar sesión/Registrarse", - "whitelist": "El dominio del correo electrónico no está en la lista blanca permitida." + "title": "Iniciar sesión/Registrarse" }, + "get": "Obtener", "login": { + "codeLogin": "Inicio de sesión con código de verificación", "description": "Por favor, ingrese su información de cuenta para iniciar sesión.", + "email": "Por favor, ingresa una dirección de correo electrónico válida.", "forgotPassword": "¿Olvidó su contraseña?", + "passwordLogin": "Inicio de sesión con contraseña", + "registerAccount": "Registrar cuenta", "success": "¡Inicio de sesión exitoso!", - "switchAccount": "Registrar/Cambiar cuenta", "title": "Iniciar sesión" }, - "logout": "Cerrar sesión", + "methods": { + "email": "Correo electrónico", + "sms": "Teléfono" + }, "orWithEmail": "o usa correo electrónico", "register": { "description": "Crea una nueva cuenta, completa tu información para registrarte.", + "email": "Por favor, ingresa una dirección de correo electrónico válida.", "existingAccount": "¿Ya tienes una cuenta?", "get": "Obtener", "invite": "Código de invitación", @@ -25,15 +32,19 @@ "passwordMismatch": "Las contraseñas no coinciden", "success": "¡Registro exitoso, has iniciado sesión automáticamente!", "switchToLogin": "Iniciar sesión/restablecer correo electrónico", - "title": "Registro" + "title": "Registro", + "whitelist": "El dominio del correo electrónico no está en la lista blanca permitida." }, "reset": { "description": "Ingrese su dirección de correo electrónico para restablecer la contraseña.", + "email": "Por favor, ingresa una dirección de correo electrónico válida.", "existingAccount": "¿Ya tienes una cuenta?", "get": "Obtener", "success": "¡Contraseña restablecida con éxito, se ha cambiado automáticamente a iniciar sesión!", "switchToLogin": "Iniciar sesión/Registrarse", "title": "Restablecer contraseña" }, - "tos": "Términos del servicio" + "tos": "Términos del servicio", + "verifyAccount": "Verificación de Cuenta", + "verifyAccountDesc": "Por favor, verifica tu cuenta para continuar." } diff --git a/apps/admin/locales/fa-IR/auth.json b/apps/admin/locales/fa-IR/auth.json index e049427..d357331 100644 --- a/apps/admin/locales/fa-IR/auth.json +++ b/apps/admin/locales/fa-IR/auth.json @@ -4,20 +4,27 @@ "continue": "ادامه", "description": "لطفاً برای ادامه ورود یا ثبت‌نام، ایمیل خود را وارد کنید.", "email": "لطفاً یک آدرس ایمیل معتبر وارد کنید.", - "title": "ورود/ثبت‌نام", - "whitelist": "دامنه ایمیل در لیست مجاز نیست." + "title": "ورود/ثبت‌نام" }, + "get": "گرفتن", "login": { + "codeLogin": "ورود با کد تأیید", "description": "لطفاً اطلاعات حساب خود را برای ورود وارد کنید.", + "email": "لطفاً یک آدرس ایمیل معتبر وارد کنید.", "forgotPassword": "رمز عبور را فراموش کرده‌اید؟", + "passwordLogin": "ورود با رمز عبور", + "registerAccount": "ثبت‌نام حساب", "success": "ورود موفقیت‌آمیز بود!", - "switchAccount": "ثبت‌نام/تغییر حساب", "title": "ورود" }, - "logout": "خروج", + "methods": { + "email": "ایمیل", + "sms": "تلفن" + }, "orWithEmail": "یا با ایمیل", "register": { "description": "ایجاد یک حساب کاربری جدید، اطلاعات خود را برای ثبت‌نام وارد کنید.", + "email": "لطفاً یک آدرس ایمیل معتبر وارد کنید.", "existingAccount": "آیا قبلاً حساب کاربری دارید؟", "get": "دریافت", "invite": "کد دعوت", @@ -25,15 +32,19 @@ "passwordMismatch": "رمزهای عبور مطابقت ندارند", "success": "ثبت‌نام موفقیت‌آمیز بود، به‌طور خودکار وارد شدید!", "switchToLogin": "ورود/بازنشانی ایمیل", - "title": "ثبت‌نام" + "title": "ثبت‌نام", + "whitelist": "دامنه ایمیل در لیست سفید مجاز نیست." }, "reset": { "description": "لطفاً آدرس ایمیل خود را وارد کنید تا رمز عبور خود را بازنشانی کنید.", + "email": "لطفاً یک آدرس ایمیل معتبر وارد کنید.", "existingAccount": "آیا قبلاً حساب کاربری دارید؟", "get": "دریافت", "success": "بازنشانی رمز عبور با موفقیت انجام شد، به‌طور خودکار به صفحه ورود منتقل شدید!", "switchToLogin": "ورود/ثبت‌نام", "title": "بازنشانی رمز عبور" }, - "tos": "شرایط خدمات" + "tos": "شرایط خدمات", + "verifyAccount": "تأیید حساب", + "verifyAccountDesc": "لطفاً حساب خود را برای ادامه تأیید کنید." } diff --git a/apps/admin/locales/fi-FI/auth.json b/apps/admin/locales/fi-FI/auth.json index a554d0e..01a1881 100644 --- a/apps/admin/locales/fi-FI/auth.json +++ b/apps/admin/locales/fi-FI/auth.json @@ -4,20 +4,27 @@ "continue": "Jatka", "description": "Syötä sähköpostiosoitteesi jatkaaksesi kirjautumista tai rekisteröitymistä.", "email": "Anna kelvollinen sähköpostiosoite.", - "title": "Kirjaudu/Rekisteröidy", - "whitelist": "Sähköpostin verkkotunnus ei ole sallitussa luettelossa." + "title": "Kirjaudu/Rekisteröidy" }, + "get": "Hanki", "login": { + "codeLogin": "Vahvistuskoodilla kirjautuminen", "description": "Ole hyvä ja syötä tilitietosi kirjautuaksesi sisään.", + "email": "Anna kelvollinen sähköpostiosoite.", "forgotPassword": "Unohditko salasanasi?", + "passwordLogin": "Salasanalla kirjautuminen", + "registerAccount": "Rekisteröi tili", "success": "Kirjautuminen onnistui!", - "switchAccount": "Rekisteröidy/Vaihda tiliä", "title": "Kirjaudu sisään" }, - "logout": "Kirjaudu ulos", + "methods": { + "email": "Sähköposti", + "sms": "Puhelin" + }, "orWithEmail": "tai käytä sähköpostia", "register": { "description": "Luo uusi tili täyttämällä tietosi rekisteröityäksesi.", + "email": "Anna kelvollinen sähköpostiosoite.", "existingAccount": "Onko sinulla jo tili?", "get": "Hanki", "invite": "Kutsukoodi", @@ -25,15 +32,19 @@ "passwordMismatch": "Salasanat eivät täsmää", "success": "Rekisteröinti onnistui, olet kirjautunut automaattisesti!", "switchToLogin": "Kirjaudu/sähköpostin nollaus", - "title": "Rekisteröidy" + "title": "Rekisteröidy", + "whitelist": "Sähköpostidomain ei ole sallitussa luettelossa." }, "reset": { "description": "Anna sähköpostiosoitteesi salasanan palauttamiseksi.", + "email": "Anna kelvollinen sähköpostiosoite.", "existingAccount": "Onko sinulla jo tili?", "get": "Hae", "success": "Salasanan palautus onnistui, siirryttiin automaattisesti kirjautumiseen!", "switchToLogin": "Kirjaudu/Rekisteröidy", "title": "Palauta salasana" }, - "tos": "Käyttöehdot" + "tos": "Käyttöehdot", + "verifyAccount": "Tilin vahvistus", + "verifyAccountDesc": "Vahvista tilisi jatkaaksesi." } diff --git a/apps/admin/locales/fr-FR/auth.json b/apps/admin/locales/fr-FR/auth.json index 634ab16..3b3673f 100644 --- a/apps/admin/locales/fr-FR/auth.json +++ b/apps/admin/locales/fr-FR/auth.json @@ -4,20 +4,27 @@ "continue": "Continuer", "description": "Veuillez entrer votre adresse e-mail pour continuer à vous connecter ou à vous inscrire.", "email": "Veuillez entrer une adresse e-mail valide.", - "title": "Connexion/Inscription", - "whitelist": "Le domaine de l'e-mail n'est pas sur la liste blanche autorisée." + "title": "Connexion/Inscription" }, + "get": "Obtenir", "login": { + "codeLogin": "Connexion par code de vérification", "description": "Veuillez entrer vos informations de compte pour vous connecter.", + "email": "Veuillez entrer une adresse e-mail valide.", "forgotPassword": "Mot de passe oublié ?", + "passwordLogin": "Connexion par mot de passe", + "registerAccount": "Créer un compte", "success": "Connexion réussie !", - "switchAccount": "S'inscrire/Changer de compte", "title": "Connexion" }, - "logout": "Se déconnecter", + "methods": { + "email": "E-mail", + "sms": "Téléphone" + }, "orWithEmail": "ou utiliser l'e-mail", "register": { "description": "Créez un nouveau compte, remplissez vos informations pour vous inscrire.", + "email": "Veuillez entrer une adresse e-mail valide.", "existingAccount": "Vous avez déjà un compte ?", "get": "Obtenir", "invite": "Code d'invitation", @@ -25,15 +32,19 @@ "passwordMismatch": "Les mots de passe saisis ne correspondent pas", "success": "Inscription réussie, vous êtes maintenant connecté automatiquement !", "switchToLogin": "Connexion/Réinitialiser l'email", - "title": "Inscription" + "title": "Inscription", + "whitelist": "Le domaine de l'e-mail n'est pas dans la liste blanche autorisée." }, "reset": { "description": "Veuillez entrer votre adresse e-mail pour réinitialiser votre mot de passe.", + "email": "Veuillez entrer une adresse e-mail valide.", "existingAccount": "Vous avez déjà un compte ?", "get": "Obtenir", "success": "Réinitialisation du mot de passe réussie, vous êtes automatiquement connecté !", "switchToLogin": "Connexion/Inscription", "title": "Réinitialiser le mot de passe" }, - "tos": "Conditions de service" + "tos": "Conditions de service", + "verifyAccount": "Vérification du compte", + "verifyAccountDesc": "Veuillez vérifier votre compte pour continuer." } diff --git a/apps/admin/locales/hi-IN/auth.json b/apps/admin/locales/hi-IN/auth.json index 01f4af3..66462d4 100644 --- a/apps/admin/locales/hi-IN/auth.json +++ b/apps/admin/locales/hi-IN/auth.json @@ -4,20 +4,27 @@ "continue": "जारी रखें", "description": "लॉगिन या पंजीकरण जारी रखने के लिए कृपया अपना ईमेल दर्ज करें।", "email": "कृपया एक मान्य ईमेल पता दर्ज करें।", - "title": "लॉगिन/पंजीकरण", - "whitelist": "ईमेल डोमेन अनुमत श्वेतसूची में नहीं है।" + "title": "लॉगिन/पंजीकरण" }, + "get": "प्राप्त करें", "login": { + "codeLogin": "सत्यापन कोड लॉगिन", "description": "कृपया लॉगिन करने के लिए अपनी खाता जानकारी दर्ज करें।", + "email": "कृपया एक मान्य ईमेल पता दर्ज करें।", "forgotPassword": "पासवर्ड भूल गए?", + "passwordLogin": "पासवर्ड लॉगिन", + "registerAccount": "खाता पंजीकरण", "success": "लॉगिन सफल!", - "switchAccount": "पंजीकरण/खाता बदलें", "title": "लॉगिन" }, - "logout": "लॉगआउट", + "methods": { + "email": "ईमेल", + "sms": "टेलीफोन" + }, "orWithEmail": "या ईमेल का उपयोग करें", "register": { "description": "नया खाता बनाने के लिए, अपनी जानकारी भरें।", + "email": "कृपया एक मान्य ईमेल पता दर्ज करें।", "existingAccount": "पहले से खाता है?", "get": "प्राप्त करें", "invite": "आमंत्रण कोड", @@ -25,15 +32,19 @@ "passwordMismatch": "दोनों बार दर्ज किया गया पासवर्ड मेल नहीं खा रहा है", "success": "पंजीकरण सफल, स्वचालित रूप से लॉग इन हो गया!", "switchToLogin": "लॉगिन/ईमेल रीसेट करें", - "title": "पंजीकरण" + "title": "पंजीकरण", + "whitelist": "ईमेल डोमेन अनुमत श्वेतसूची में नहीं है।" }, "reset": { "description": "कृपया अपना ईमेल पता दर्ज करें ताकि पासवर्ड रीसेट किया जा सके।", + "email": "कृपया एक मान्य ईमेल पता दर्ज करें।", "existingAccount": "पहले से खाता है?", "get": "प्राप्त करें", "success": "पासवर्ड रीसेट सफल, स्वचालित रूप से लॉगिन पर स्विच किया गया!", "switchToLogin": "लॉगिन/रजिस्टर", "title": "पासवर्ड रीसेट" }, - "tos": "सेवा की शर्तें" + "tos": "सेवा की शर्तें", + "verifyAccount": "खाता सत्यापन", + "verifyAccountDesc": "कृपया जारी रखने के लिए अपने खाते को सत्यापित करें।" } diff --git a/apps/admin/locales/hu-HU/auth.json b/apps/admin/locales/hu-HU/auth.json index 668633d..3ca1b26 100644 --- a/apps/admin/locales/hu-HU/auth.json +++ b/apps/admin/locales/hu-HU/auth.json @@ -4,20 +4,27 @@ "continue": "Folytatás", "description": "Kérjük, adja meg e-mail címét a bejelentkezés vagy regisztráció folytatásához.", "email": "Kérjük, adjon meg egy érvényes e-mail címet.", - "title": "Bejelentkezés/Regisztráció", - "whitelist": "Az e-mail domain nem szerepel az engedélyezett listán." + "title": "Bejelentkezés/Regisztráció" }, + "get": "Szerezd meg", "login": { + "codeLogin": "Ellenőrző kódos bejelentkezés", "description": "Kérjük, adja meg fiókadatait a bejelentkezéshez.", + "email": "Kérjük, adjon meg egy érvényes e-mail címet.", "forgotPassword": "Elfelejtette a jelszavát?", + "passwordLogin": "Jelszavas bejelentkezés", + "registerAccount": "Fiók regisztrálása", "success": "Sikeres bejelentkezés!", - "switchAccount": "Regisztráció/Fiók váltása", "title": "Bejelentkezés" }, - "logout": "Kijelentkezés", + "methods": { + "email": "E-mail", + "sms": "Telefon" + }, "orWithEmail": "vagy használja az e-mailt", "register": { "description": "Hozzon létre új fiókot, töltse ki adatait a regisztrációhoz.", + "email": "Kérjük, adjon meg egy érvényes e-mail címet.", "existingAccount": "Már van fiókja?", "get": "Megkap", "invite": "Meghívókód", @@ -25,15 +32,19 @@ "passwordMismatch": "A két jelszó nem egyezik meg", "success": "Sikeres regisztráció, automatikusan bejelentkezett!", "switchToLogin": "Bejelentkezés/Jelszó visszaállítása", - "title": "Regisztráció" + "title": "Regisztráció", + "whitelist": "Az e-mail domain nem szerepel az engedélyezett listán." }, "reset": { "description": "Kérjük, adja meg e-mail címét a jelszó visszaállításához.", + "email": "Kérjük, adjon meg egy érvényes e-mail címet.", "existingAccount": "Már van fiókja?", "get": "Megkap", "success": "A jelszó visszaállítása sikeres, automatikusan átváltott a bejelentkezésre!", "switchToLogin": "Bejelentkezés/Regisztráció", "title": "Jelszó visszaállítása" }, - "tos": "Szolgáltatási feltételek" + "tos": "Szolgáltatási feltételek", + "verifyAccount": "Fiókellenőrzés", + "verifyAccountDesc": "Kérjük, igazolja fiókját a folytatáshoz." } diff --git a/apps/admin/locales/ja-JP/auth.json b/apps/admin/locales/ja-JP/auth.json index 1fe22c2..784aa7a 100644 --- a/apps/admin/locales/ja-JP/auth.json +++ b/apps/admin/locales/ja-JP/auth.json @@ -4,20 +4,27 @@ "continue": "続ける", "description": "ログインまたは登録を続行するには、メールアドレスを入力してください。", "email": "有効なメールアドレスを入力してください。", - "title": "ログイン/登録", - "whitelist": "メールドメインが許可されたホワイトリストにありません。" + "title": "ログイン/登録" }, + "get": "取得", "login": { + "codeLogin": "認証コードでログイン", "description": "ログインするにはアカウント情報を入力してください。", + "email": "有効なメールアドレスを入力してください。", "forgotPassword": "パスワードをお忘れですか?", + "passwordLogin": "パスワードでログイン", + "registerAccount": "アカウント登録", "success": "ログイン成功!", - "switchAccount": "登録/アカウント切り替え", "title": "ログイン" }, - "logout": "ログアウト", + "methods": { + "email": "メール", + "sms": "電話" + }, "orWithEmail": "またはメールを使用", "register": { "description": "新しいアカウントを作成し、情報を入力して登録してください。", + "email": "有効なメールアドレスを入力してください。", "existingAccount": "すでにアカウントをお持ちですか?", "get": "取得", "invite": "招待コード", @@ -25,15 +32,19 @@ "passwordMismatch": "パスワードが一致しません", "success": "登録が成功しました。自動的にログインしました!", "switchToLogin": "ログイン/メールリセット", - "title": "登録" + "title": "登録", + "whitelist": "メールドメインが許可されたホワイトリストに含まれていません。" }, "reset": { "description": "パスワードをリセットするには、メールアドレスを入力してください。", + "email": "有効なメールアドレスを入力してください。", "existingAccount": "すでにアカウントをお持ちですか?", "get": "取得", "success": "パスワードのリセットに成功しました。自動的にログインに切り替わりました!", "switchToLogin": "ログイン/登録", "title": "パスワードリセット" }, - "tos": "利用規約" + "tos": "利用規約", + "verifyAccount": "アカウント確認", + "verifyAccountDesc": "アカウントを確認して続行してください。" } diff --git a/apps/admin/locales/ko-KR/auth.json b/apps/admin/locales/ko-KR/auth.json index 61f4999..c428af1 100644 --- a/apps/admin/locales/ko-KR/auth.json +++ b/apps/admin/locales/ko-KR/auth.json @@ -4,20 +4,27 @@ "continue": "계속", "description": "로그인 또는 등록을 계속하려면 이메일을 입력하세요.", "email": "유효한 이메일 주소를 입력하세요.", - "title": "로그인/등록", - "whitelist": "이메일 도메인이 허용된 화이트리스트에 없습니다." + "title": "로그인/등록" }, + "get": "가져오기", "login": { + "codeLogin": "인증 코드 로그인", "description": "계정 정보를 입력하여 로그인하세요.", + "email": "유효한 이메일 주소를 입력하세요.", "forgotPassword": "비밀번호를 잊으셨나요?", + "passwordLogin": "비밀번호 로그인", + "registerAccount": "계정 등록", "success": "로그인 성공!", - "switchAccount": "가입/계정 전환", "title": "로그인" }, - "logout": "로그아웃", + "methods": { + "email": "이메일", + "sms": "전화" + }, "orWithEmail": "또는 이메일 사용", "register": { "description": "새 계정을 생성하고 정보를 입력하여 등록하세요.", + "email": "유효한 이메일 주소를 입력하세요.", "existingAccount": "이미 계정이 있으신가요?", "get": "받기", "invite": "초대 코드", @@ -25,15 +32,19 @@ "passwordMismatch": "비밀번호가 일치하지 않습니다.", "success": "등록 성공, 자동으로 로그인되었습니다!", "switchToLogin": "로그인/이메일 재설정", - "title": "등록" + "title": "등록", + "whitelist": "이메일 도메인이 허용된 화이트리스트에 포함되어 있지 않습니다." }, "reset": { "description": "비밀번호를 재설정하려면 이메일 주소를 입력하세요.", + "email": "유효한 이메일 주소를 입력하세요.", "existingAccount": "이미 계정이 있으신가요?", "get": "받기", "success": "비밀번호 재설정 성공, 자동으로 로그인으로 전환되었습니다!", "switchToLogin": "로그인/회원가입", "title": "비밀번호 재설정" }, - "tos": "서비스 약관" + "tos": "서비스 약관", + "verifyAccount": "계정 인증", + "verifyAccountDesc": "계속하려면 계정을 인증해 주세요." } diff --git a/apps/admin/locales/no-NO/auth.json b/apps/admin/locales/no-NO/auth.json index beae024..9725995 100644 --- a/apps/admin/locales/no-NO/auth.json +++ b/apps/admin/locales/no-NO/auth.json @@ -4,20 +4,27 @@ "continue": "Fortsett", "description": "Vennligst skriv inn din e-post for å fortsette med innlogging eller registrering.", "email": "Vennligst skriv inn en gyldig e-postadresse.", - "title": "Logg inn/Registrer", - "whitelist": "E-postdomenet er ikke på den tillatte hvitelisten." + "title": "Logg inn/Registrer" }, + "get": "Få", "login": { + "codeLogin": "Verifikasjonskodeinnlogging", "description": "Vennligst skriv inn kontoinformasjonen din for å logge inn.", + "email": "Vennligst skriv inn en gyldig e-postadresse.", "forgotPassword": "Glemt passord?", + "passwordLogin": "Passordinnlogging", + "registerAccount": "Registrer konto", "success": "Innlogging vellykket!", - "switchAccount": "Registrer/bytt konto", "title": "Logg inn" }, - "logout": "Logg ut", + "methods": { + "email": "E-post", + "sms": "Telefon" + }, "orWithEmail": "eller bruk e-post", "register": { "description": "Opprett en ny konto, fyll inn informasjonen din for å registrere deg.", + "email": "Vennligst skriv inn en gyldig e-postadresse.", "existingAccount": "Har du allerede en konto?", "get": "Få", "invite": "Invitasjonskode", @@ -25,15 +32,19 @@ "passwordMismatch": "Passordene stemmer ikke overens", "success": "Registrering vellykket, du er nå automatisk logget inn!", "switchToLogin": "Logg inn/tilbakestill e-post", - "title": "Registrer deg" + "title": "Registrer deg", + "whitelist": "E-postdomenet er ikke i den tillatte hvitelisten." }, "reset": { "description": "Vennligst skriv inn din e-postadresse for å tilbakestille passordet ditt.", + "email": "Vennligst skriv inn en gyldig e-postadresse.", "existingAccount": "Har du allerede en konto?", "get": "Hent", "success": "Passordet er tilbakestilt, du er automatisk logget inn!", "switchToLogin": "Logg inn/Registrer", "title": "Tilbakestill passord" }, - "tos": "Tjenestevilkår" + "tos": "Tjenestevilkår", + "verifyAccount": "Kontobekreftelse", + "verifyAccountDesc": "Vennligst bekreft kontoen din for å fortsette." } diff --git a/apps/admin/locales/pl-PL/auth.json b/apps/admin/locales/pl-PL/auth.json index b9cc4a8..4d31d90 100644 --- a/apps/admin/locales/pl-PL/auth.json +++ b/apps/admin/locales/pl-PL/auth.json @@ -4,20 +4,27 @@ "continue": "Kontynuuj", "description": "Wprowadź swój adres e-mail, aby kontynuować logowanie lub rejestrację.", "email": "Proszę wprowadzić prawidłowy adres e-mail.", - "title": "Zaloguj się/Zarejestruj się", - "whitelist": "Domena e-mail nie znajduje się na dozwolonej białej liście." + "title": "Zaloguj się/Zarejestruj się" }, + "get": "Pobierz", "login": { + "codeLogin": "Logowanie za pomocą kodu weryfikacyjnego", "description": "Proszę wprowadzić dane konta, aby się zalogować.", + "email": "Proszę wprowadzić prawidłowy adres e-mail.", "forgotPassword": "Zapomniałeś hasła?", + "passwordLogin": "Logowanie za pomocą hasła", + "registerAccount": "Zarejestruj konto", "success": "Zalogowano pomyślnie!", - "switchAccount": "Zarejestruj się/Zmień konto", "title": "Logowanie" }, - "logout": "Wyloguj się", + "methods": { + "email": "E-mail", + "sms": "Telefon" + }, "orWithEmail": "lub użyj e-maila", "register": { "description": "Utwórz nowe konto, wypełnij swoje dane, aby się zarejestrować.", + "email": "Proszę wprowadzić prawidłowy adres e-mail.", "existingAccount": "Masz już konto?", "get": "Pobierz", "invite": "Kod zaproszenia", @@ -25,15 +32,19 @@ "passwordMismatch": "Wprowadzone hasła nie są zgodne", "success": "Rejestracja zakończona sukcesem, automatycznie zalogowano!", "switchToLogin": "Zaloguj się/Zresetuj e-mail", - "title": "Rejestracja" + "title": "Rejestracja", + "whitelist": "Domena e-mail nie znajduje się na dozwolonej liście." }, "reset": { "description": "Wprowadź swój adres e-mail, aby zresetować hasło.", + "email": "Proszę wprowadzić prawidłowy adres e-mail.", "existingAccount": "Masz już konto?", "get": "Uzyskaj", "success": "Hasło zostało pomyślnie zresetowane, automatycznie przełączono na logowanie!", "switchToLogin": "Zaloguj się/Zarejestruj się", "title": "Zresetuj hasło" }, - "tos": "Warunki usługi" + "tos": "Warunki usługi", + "verifyAccount": "Weryfikacja Konta", + "verifyAccountDesc": "Proszę zweryfikować swoje konto, aby kontynuować." } diff --git a/apps/admin/locales/pt-BR/auth.json b/apps/admin/locales/pt-BR/auth.json index b5b81e1..fcb425a 100644 --- a/apps/admin/locales/pt-BR/auth.json +++ b/apps/admin/locales/pt-BR/auth.json @@ -4,20 +4,27 @@ "continue": "Continuar", "description": "Por favor, insira seu e-mail para continuar com o login ou registro.", "email": "Por favor, insira um endereço de e-mail válido.", - "title": "Login/Registro", - "whitelist": "O domínio do e-mail não está na lista de permissões." + "title": "Login/Registro" }, + "get": "Obter", "login": { + "codeLogin": "Login com Código de Verificação", "description": "Por favor, insira suas informações de conta para fazer login.", + "email": "Por favor, insira um endereço de e-mail válido.", "forgotPassword": "Esqueceu a senha?", + "passwordLogin": "Login com Senha", + "registerAccount": "Registrar Conta", "success": "Login bem-sucedido!", - "switchAccount": "Registrar/Trocar de conta", "title": "Login" }, - "logout": "Sair", + "methods": { + "email": "Email", + "sms": "Telefone" + }, "orWithEmail": "ou use o e-mail", "register": { "description": "Crie uma nova conta, preencha suas informações para se registrar.", + "email": "Por favor, insira um endereço de e-mail válido.", "existingAccount": "Já tem uma conta?", "get": "Obter", "invite": "Código de convite", @@ -25,15 +32,19 @@ "passwordMismatch": "As senhas digitadas não coincidem", "success": "Registro bem-sucedido, login automático realizado!", "switchToLogin": "Entrar/Redefinir e-mail", - "title": "Registrar" + "title": "Registrar", + "whitelist": "O domínio do e-mail não está na lista de permissões permitida." }, "reset": { "description": "Por favor, insira seu endereço de e-mail para redefinir a senha.", + "email": "Por favor, insira um endereço de e-mail válido.", "existingAccount": "Já tem uma conta?", "get": "Obter", "success": "Senha redefinida com sucesso, você foi automaticamente redirecionado para o login!", "switchToLogin": "Entrar/Registrar", "title": "Redefinir Senha" }, - "tos": "Termos de Serviço" + "tos": "Termos de Serviço", + "verifyAccount": "Verificação de Conta", + "verifyAccountDesc": "Por favor, verifique sua conta para continuar." } diff --git a/apps/admin/locales/ro-RO/auth.json b/apps/admin/locales/ro-RO/auth.json index a02b3d0..d50cd9b 100644 --- a/apps/admin/locales/ro-RO/auth.json +++ b/apps/admin/locales/ro-RO/auth.json @@ -4,20 +4,27 @@ "continue": "Continuă", "description": "Vă rugăm să introduceți adresa de e-mail pentru a continua autentificarea sau înregistrarea.", "email": "Vă rugăm să introduceți o adresă de e-mail validă.", - "title": "Autentificare/Înregistrare", - "whitelist": "Domeniul adresei de e-mail nu se află pe lista albă permisă." + "title": "Autentificare/Înregistrare" }, + "get": "Obține", "login": { + "codeLogin": "Autentificare cu Cod de Verificare", "description": "Vă rugăm să introduceți informațiile contului pentru a vă conecta.", + "email": "Vă rugăm să introduceți o adresă de email validă.", "forgotPassword": "Ați uitat parola?", + "passwordLogin": "Autentificare cu Parolă", + "registerAccount": "Înregistrare Cont", "success": "Autentificare reușită!", - "switchAccount": "Înregistrare/Schimbare cont", "title": "Autentificare" }, - "logout": "Deconectare", + "methods": { + "email": "Email", + "sms": "Telefon" + }, "orWithEmail": "sau folosește e-mailul", "register": { "description": "Creați un cont nou, completați informațiile dvs. pentru a vă înregistra.", + "email": "Vă rugăm să introduceți o adresă de email validă.", "existingAccount": "Aveți deja un cont?", "get": "Obțineți", "invite": "Cod de invitație", @@ -25,15 +32,19 @@ "passwordMismatch": "Parolele introduse nu se potrivesc", "success": "Înregistrare reușită, ați fost conectat automat!", "switchToLogin": "Conectare/Resetare email", - "title": "Înregistrare" + "title": "Înregistrare", + "whitelist": "Domeniul de email nu se află pe lista albă permisă." }, "reset": { "description": "Introduceți adresa dvs. de e-mail pentru a reseta parola.", + "email": "Vă rugăm să introduceți o adresă de email validă.", "existingAccount": "Aveți deja un cont?", "get": "Obțineți", "success": "Parola a fost resetată cu succes, ați fost redirecționat automat la autentificare!", "switchToLogin": "Autentificare/Înregistrare", "title": "Resetați parola" }, - "tos": "Termeni și condiții" + "tos": "Termeni și condiții", + "verifyAccount": "Verificare Cont", + "verifyAccountDesc": "Vă rugăm să vă verificați contul pentru a continua." } diff --git a/apps/admin/locales/ru-RU/auth.json b/apps/admin/locales/ru-RU/auth.json index 0902587..1342de2 100644 --- a/apps/admin/locales/ru-RU/auth.json +++ b/apps/admin/locales/ru-RU/auth.json @@ -4,20 +4,27 @@ "continue": "Продолжить", "description": "Пожалуйста, введите ваш адрес электронной почты для продолжения входа или регистрации.", "email": "Пожалуйста, введите действительный адрес электронной почты.", - "title": "Вход/Регистрация", - "whitelist": "Домен электронной почты не входит в разрешенный белый список." + "title": "Вход/Регистрация" }, + "get": "Получить", "login": { + "codeLogin": "Вход по коду подтверждения", "description": "Пожалуйста, введите данные вашей учетной записи для входа.", + "email": "Пожалуйста, введите действительный адрес электронной почты.", "forgotPassword": "Забыли пароль?", + "passwordLogin": "Вход по паролю", + "registerAccount": "Регистрация аккаунта", "success": "Вход выполнен успешно!", - "switchAccount": "Регистрация/Сменить аккаунт", "title": "Вход" }, - "logout": "Выйти из системы", + "methods": { + "email": "Электронная почта", + "sms": "Телефон" + }, "orWithEmail": "или с помощью электронной почты", "register": { "description": "Создайте новый аккаунт, заполните свои данные для регистрации.", + "email": "Пожалуйста, введите действительный адрес электронной почты.", "existingAccount": "Уже есть аккаунт?", "get": "Получить", "invite": "Код приглашения", @@ -25,15 +32,19 @@ "passwordMismatch": "Введенные пароли не совпадают", "success": "Регистрация успешна, вы автоматически вошли в систему!", "switchToLogin": "Войти/Сбросить почту", - "title": "Регистрация" + "title": "Регистрация", + "whitelist": "Домен электронной почты не входит в разрешенный список." }, "reset": { "description": "Пожалуйста, введите ваш адрес электронной почты, чтобы сбросить пароль.", + "email": "Пожалуйста, введите действительный адрес электронной почты.", "existingAccount": "Уже есть аккаунт?", "get": "Получить", "success": "Пароль успешно сброшен, автоматически переключено на вход!", "switchToLogin": "Вход/Регистрация", "title": "Сброс пароля" }, - "tos": "Условия обслуживания" + "tos": "Условия обслуживания", + "verifyAccount": "Подтверждение аккаунта", + "verifyAccountDesc": "Пожалуйста, подтвердите свой аккаунт, чтобы продолжить." } diff --git a/apps/admin/locales/th-TH/auth.json b/apps/admin/locales/th-TH/auth.json index daac99e..6271d83 100644 --- a/apps/admin/locales/th-TH/auth.json +++ b/apps/admin/locales/th-TH/auth.json @@ -4,20 +4,27 @@ "continue": "ดำเนินการต่อ", "description": "กรุณาใส่อีเมลของคุณเพื่อดำเนินการเข้าสู่ระบบหรือสมัครสมาชิกต่อไป", "email": "กรุณาใส่ที่อยู่อีเมลที่ถูกต้อง", - "title": "เข้าสู่ระบบ/สมัครสมาชิก", - "whitelist": "โดเมนอีเมลไม่อยู่ในรายชื่อที่อนุญาต" + "title": "เข้าสู่ระบบ/สมัครสมาชิก" }, + "get": "รับ", "login": { + "codeLogin": "เข้าสู่ระบบด้วยรหัสยืนยัน", "description": "กรุณาใส่ข้อมูลบัญชีของคุณเพื่อเข้าสู่ระบบ", + "email": "กรุณาใส่ที่อยู่อีเมลที่ถูกต้อง", "forgotPassword": "ลืมรหัสผ่าน?", + "passwordLogin": "เข้าสู่ระบบด้วยรหัสผ่าน", + "registerAccount": "ลงทะเบียนบัญชี", "success": "เข้าสู่ระบบสำเร็จ!", - "switchAccount": "สมัคร/เปลี่ยนบัญชี", "title": "เข้าสู่ระบบ" }, - "logout": "ออกจากระบบ", + "methods": { + "email": "อีเมล", + "sms": "โทรศัพท์" + }, "orWithEmail": "หรือใช้ที่อยู่อีเมล", "register": { "description": "สร้างบัญชีใหม่ กรอกข้อมูลของคุณเพื่อสมัครสมาชิก", + "email": "กรุณาใส่ที่อยู่อีเมลที่ถูกต้อง", "existingAccount": "มีบัญชีอยู่แล้ว?", "get": "รับ", "invite": "รหัสเชิญ", @@ -25,15 +32,19 @@ "passwordMismatch": "รหัสผ่านที่กรอกไม่ตรงกัน", "success": "สมัครสมาชิกสำเร็จ เข้าสู่ระบบอัตโนมัติแล้ว!", "switchToLogin": "เข้าสู่ระบบ/รีเซ็ตอีเมล", - "title": "สมัครสมาชิก" + "title": "สมัครสมาชิก", + "whitelist": "โดเมนอีเมลนี้ไม่ได้อยู่ในรายการที่อนุญาต" }, "reset": { "description": "กรุณาใส่ที่อยู่อีเมลของคุณเพื่อรีเซ็ตรหัสผ่าน", + "email": "กรุณาใส่ที่อยู่อีเมลที่ถูกต้อง.", "existingAccount": "มีบัญชีอยู่แล้ว?", "get": "รับ", "success": "รีเซ็ตรหัสผ่านสำเร็จ, เปลี่ยนไปที่เข้าสู่ระบบอัตโนมัติ!", "switchToLogin": "เข้าสู่ระบบ/สมัครสมาชิก", "title": "รีเซ็ตรหัสผ่าน" }, - "tos": "ข้อกำหนดในการให้บริการ" + "tos": "ข้อกำหนดในการให้บริการ", + "verifyAccount": "การยืนยันบัญชี", + "verifyAccountDesc": "กรุณายืนยันบัญชีของคุณเพื่อดำเนินการต่อ" } diff --git a/apps/admin/locales/tr-TR/auth.json b/apps/admin/locales/tr-TR/auth.json index a0259f8..b21d563 100644 --- a/apps/admin/locales/tr-TR/auth.json +++ b/apps/admin/locales/tr-TR/auth.json @@ -4,20 +4,27 @@ "continue": "Devam et", "description": "Giriş yapmak veya kaydolmak için lütfen e-posta adresinizi girin.", "email": "Lütfen geçerli bir e-posta adresi girin.", - "title": "Giriş/Kayıt", - "whitelist": "E-posta alan adı izin verilen beyaz listede değil." + "title": "Giriş/Kayıt" }, + "get": "Al", "login": { + "codeLogin": "Doğrulama Kodu ile Giriş", "description": "Lütfen giriş yapmak için hesap bilgilerinizi girin.", + "email": "Lütfen geçerli bir e-posta adresi girin.", "forgotPassword": "Şifrenizi mi unuttunuz?", + "passwordLogin": "Şifre ile Giriş", + "registerAccount": "Hesap Kaydı", "success": "Başarıyla giriş yapıldı!", - "switchAccount": "Kayıt Ol/Hesap Değiştir", "title": "Giriş Yap" }, - "logout": "Çıkış Yap", + "methods": { + "email": "E-posta", + "sms": "Telefon" + }, "orWithEmail": "veya e-posta kullan", "register": { "description": "Yeni bir hesap oluşturun, kaydolmak için bilgilerinizi doldurun.", + "email": "Lütfen geçerli bir e-posta adresi girin.", "existingAccount": "Zaten bir hesabınız var mı?", "get": "Al", "invite": "Davet Kodu", @@ -25,15 +32,19 @@ "passwordMismatch": "Girilen şifreler uyuşmuyor", "success": "Kayıt başarılı, otomatik olarak giriş yapıldı!", "switchToLogin": "Giriş/Yeni E-posta Ayarla", - "title": "Kayıt Ol" + "title": "Kayıt Ol", + "whitelist": "E-posta alanı izin verilen beyaz listede değil." }, "reset": { "description": "Şifrenizi sıfırlamak için lütfen e-posta adresinizi girin.", + "email": "Lütfen geçerli bir e-posta adresi girin.", "existingAccount": "Zaten bir hesabınız var mı?", "get": "Al", "success": "Şifre sıfırlama başarılı, otomatik olarak girişe geçildi!", "switchToLogin": "Giriş/Kayıt", "title": "Şifre Sıfırla" }, - "tos": "Hizmet Şartları" + "tos": "Hizmet Şartları", + "verifyAccount": "Hesap Doğrulama", + "verifyAccountDesc": "Devam etmek için lütfen hesabınızı doğrulayın." } diff --git a/apps/admin/locales/uk-UA/auth.json b/apps/admin/locales/uk-UA/auth.json index f0f1d54..59dad61 100644 --- a/apps/admin/locales/uk-UA/auth.json +++ b/apps/admin/locales/uk-UA/auth.json @@ -4,20 +4,27 @@ "continue": "Продовжити", "description": "Будь ласка, введіть свою електронну пошту, щоб продовжити вхід або реєстрацію.", "email": "Будь ласка, введіть дійсну електронну адресу.", - "title": "Вхід/Реєстрація", - "whitelist": "Домен електронної пошти не входить до дозволеного білого списку." + "title": "Вхід/Реєстрація" }, + "get": "Отримати", "login": { + "codeLogin": "Вхід за кодом підтвердження", "description": "Будь ласка, введіть ваші облікові дані для входу.", + "email": "Будь ласка, введіть дійсну електронну адресу.", "forgotPassword": "Забули пароль?", + "passwordLogin": "Вхід за паролем", + "registerAccount": "Зареєструвати обліковий запис", "success": "Вхід успішний!", - "switchAccount": "Зареєструватися/Змінити акаунт", "title": "Вхід" }, - "logout": "Вийти з системи", + "methods": { + "email": "Електронна пошта", + "sms": "Телефон" + }, "orWithEmail": "або використовуйте електронну пошту", "register": { "description": "Створіть новий обліковий запис, заповніть ваші дані для реєстрації.", + "email": "Будь ласка, введіть дійсну електронну адресу.", "existingAccount": "Вже маєте обліковий запис?", "get": "Отримати", "invite": "Код запрошення", @@ -25,15 +32,19 @@ "passwordMismatch": "Паролі не співпадають", "success": "Реєстрація успішна, автоматично увійшли!", "switchToLogin": "Увійти/Скинути пошту", - "title": "Реєстрація" + "title": "Реєстрація", + "whitelist": "Домен електронної пошти не входить до дозволеного списку." }, "reset": { "description": "Будь ласка, введіть свою електронну адресу, щоб скинути пароль.", + "email": "Будь ласка, введіть дійсну електронну адресу.", "existingAccount": "Вже маєте обліковий запис?", "get": "Отримати", "success": "Пароль успішно скинуто, автоматично переключено на вхід!", "switchToLogin": "Вхід/Реєстрація", "title": "Скидання пароля" }, - "tos": "Умови надання послуг" + "tos": "Умови надання послуг", + "verifyAccount": "Підтвердження облікового запису", + "verifyAccountDesc": "Будь ласка, підтвердіть свій обліковий запис, щоб продовжити." } diff --git a/apps/admin/locales/vi-VN/auth.json b/apps/admin/locales/vi-VN/auth.json index c36c520..fce34f1 100644 --- a/apps/admin/locales/vi-VN/auth.json +++ b/apps/admin/locales/vi-VN/auth.json @@ -4,20 +4,27 @@ "continue": "Tiếp tục", "description": "Vui lòng nhập email của bạn để tiếp tục đăng nhập hoặc đăng ký.", "email": "Vui lòng nhập địa chỉ email hợp lệ.", - "title": "Đăng nhập/Đăng ký", - "whitelist": "Tên miền email không có trong danh sách trắng được phép." + "title": "Đăng nhập/Đăng ký" }, + "get": "Lấy", "login": { + "codeLogin": "Đăng nhập bằng mã xác minh", "description": "Vui lòng nhập thông tin tài khoản của bạn để đăng nhập.", + "email": "Vui lòng nhập địa chỉ email hợp lệ.", "forgotPassword": "Quên mật khẩu?", + "passwordLogin": "Đăng nhập bằng mật khẩu", + "registerAccount": "Đăng ký tài khoản", "success": "Đăng nhập thành công!", - "switchAccount": "Đăng ký/Chuyển đổi tài khoản", "title": "Đăng nhập" }, - "logout": "Đăng xuất", + "methods": { + "email": "Email", + "sms": "Điện thoại" + }, "orWithEmail": "hoặc sử dụng email", "register": { "description": "Tạo tài khoản mới, điền thông tin của bạn để đăng ký.", + "email": "Vui lòng nhập địa chỉ email hợp lệ.", "existingAccount": "Đã có tài khoản?", "get": "Lấy", "invite": "Mã mời", @@ -25,15 +32,19 @@ "passwordMismatch": "Mật khẩu nhập hai lần không khớp", "success": "Đăng ký thành công, đã tự động đăng nhập!", "switchToLogin": "Đăng nhập/Đặt lại email", - "title": "Đăng ký" + "title": "Đăng ký", + "whitelist": "Tên miền email không nằm trong danh sách trắng được phép." }, "reset": { "description": "Vui lòng nhập địa chỉ email của bạn để đặt lại mật khẩu.", + "email": "Vui lòng nhập địa chỉ email hợp lệ.", "existingAccount": "Đã có tài khoản?", "get": "Lấy", "success": "Đặt lại mật khẩu thành công, đã tự động chuyển sang đăng nhập!", "switchToLogin": "Đăng nhập/Đăng ký", "title": "Đặt lại mật khẩu" }, - "tos": "Điều khoản dịch vụ" + "tos": "Điều khoản dịch vụ", + "verifyAccount": "Xác minh Tài khoản", + "verifyAccountDesc": "Vui lòng xác minh tài khoản của bạn để tiếp tục." } diff --git a/apps/admin/locales/zh-CN/auth.json b/apps/admin/locales/zh-CN/auth.json index 47fd07b..eef9d3a 100644 --- a/apps/admin/locales/zh-CN/auth.json +++ b/apps/admin/locales/zh-CN/auth.json @@ -4,20 +4,27 @@ "continue": "继续", "description": "请输入您的电子邮件以继续登录或注册。", "email": "请输入有效的邮箱地址。", - "title": "登录/注册", - "whitelist": "邮箱域名不在允许的白名单中。" + "title": "登录/注册" }, + "get": "获取", "login": { + "codeLogin": "验证码登录", "description": "请输入您的账户信息以登录。", + "email": "请输入有效的电子邮件地址。", "forgotPassword": "忘记密码?", + "passwordLogin": "密码登录", + "registerAccount": "注册账户", "success": "登录成功!", - "switchAccount": "注册/切换账号", "title": "登录" }, - "logout": "退出登录", + "methods": { + "email": "电子邮件", + "sms": "电话" + }, "orWithEmail": "或使用邮箱", "register": { "description": "创建新账户,填写您的信息以注册。", + "email": "请输入有效的电子邮件地址。", "existingAccount": "已有账户?", "get": "获取", "invite": "邀请码", @@ -25,15 +32,19 @@ "passwordMismatch": "两次密码输入不一致", "success": "注册成功,已自动登录!", "switchToLogin": "登录/重置邮箱", - "title": "注册" + "title": "注册", + "whitelist": "电子邮件域名不在允许的白名单中。" }, "reset": { "description": "请输入您的电子邮件地址以重置密码。", + "email": "请输入有效的电子邮件地址。", "existingAccount": "已有账户?", "get": "获取", "success": "重置密码成功,已自动切换到登录!", "switchToLogin": "登录/注册", "title": "重置密码" }, - "tos": "服务条款" + "tos": "服务条款", + "verifyAccount": "账户验证", + "verifyAccountDesc": "请验证您的账户以继续。" } diff --git a/apps/admin/locales/zh-HK/auth.json b/apps/admin/locales/zh-HK/auth.json index 2eb9c0b..ea7a80d 100644 --- a/apps/admin/locales/zh-HK/auth.json +++ b/apps/admin/locales/zh-HK/auth.json @@ -4,20 +4,27 @@ "continue": "繼續", "description": "請輸入您的電子郵件以繼續登入或註冊。", "email": "請輸入有效的電子郵件地址。", - "title": "登入/註冊", - "whitelist": "電子郵件域名不在允許的白名單中。" + "title": "登入/註冊" }, + "get": "獲取", "login": { + "codeLogin": "驗證碼登入", "description": "請輸入您的帳戶資訊以登入。", + "email": "請輸入有效的電郵地址。", "forgotPassword": "忘記密碼?", + "passwordLogin": "密碼登入", + "registerAccount": "註冊帳戶", "success": "登入成功!", - "switchAccount": "註冊/切換帳號", "title": "登入" }, - "logout": "登出", + "methods": { + "email": "電郵", + "sms": "電話" + }, "orWithEmail": "或使用電子郵件", "register": { "description": "創建新帳戶,填寫您的資訊以註冊。", + "email": "請輸入有效的電郵地址。", "existingAccount": "已有帳戶?", "get": "獲取", "invite": "邀請碼", @@ -25,15 +32,19 @@ "passwordMismatch": "兩次密碼輸入不一致", "success": "註冊成功,已自動登入!", "switchToLogin": "登入/重置信箱", - "title": "註冊" + "title": "註冊", + "whitelist": "電郵域名不在允許的白名單中。" }, "reset": { "description": "請輸入您的電子郵件地址以重設密碼。", + "email": "請輸入有效的電郵地址。", "existingAccount": "已有帳戶?", "get": "獲取", "success": "重設密碼成功,已自動切換到登入!", "switchToLogin": "登入/註冊", "title": "重設密碼" }, - "tos": "服務條款" + "tos": "服務條款", + "verifyAccount": "帳戶驗證", + "verifyAccountDesc": "請驗證您的帳戶以繼續。" }