feat: implement forgot password feature (#5534)

This commit is contained in:
xielong
2024-07-05 13:38:51 +08:00
committed by GitHub
parent f546db5437
commit 00b4cc3cd4
33 changed files with 1000 additions and 26 deletions

View File

@@ -34,6 +34,19 @@ const translation = {
donthave: 'Hast du nicht?',
invalidInvitationCode: 'Ungültiger Einladungscode',
accountAlreadyInited: 'Konto bereits initialisiert',
forgotPassword: 'Passwort vergessen?',
resetLinkSent: 'Link zum Zurücksetzen gesendet',
sendResetLink: 'Link zum Zurücksetzen senden',
backToSignIn: 'Zurück zur Anmeldung',
forgotPasswordDesc: 'Bitte geben Sie Ihre E-Mail-Adresse ein, um Ihr Passwort zurückzusetzen. Wir senden Ihnen eine E-Mail mit Anweisungen zum Zurücksetzen Ihres Passworts.',
checkEmailForResetLink: 'Bitte überprüfen Sie Ihre E-Mails auf einen Link zum Zurücksetzen Ihres Passworts. Wenn er nicht innerhalb weniger Minuten erscheint, überprüfen Sie bitte Ihren Spam-Ordner.',
passwordChanged: 'Jetzt anmelden',
changePassword: 'Passwort ändern',
changePasswordTip: 'Bitte geben Sie ein neues Passwort für Ihr Konto ein',
invalidToken: 'Ungültiges oder abgelaufenes Token',
confirmPassword: 'Passwort bestätigen',
confirmPasswordPlaceholder: 'Bestätigen Sie Ihr neues Passwort',
passwordChangedTip: 'Ihr Passwort wurde erfolgreich geändert',
error: {
emailEmpty: 'E-Mail-Adresse wird benötigt',
emailInValid: 'Bitte gib eine gültige E-Mail-Adresse ein',

View File

@@ -35,6 +35,19 @@ const translation = {
donthave: 'Don\'t have?',
invalidInvitationCode: 'Invalid invitation code',
accountAlreadyInited: 'Account already initialized',
forgotPassword: 'Forgot your password?',
resetLinkSent: 'Reset link sent',
sendResetLink: 'Send reset link',
backToSignIn: 'Return to sign in',
forgotPasswordDesc: 'Please enter your email address to reset your password. We will send you an email with instructions on how to reset your password.',
checkEmailForResetLink: 'Please check your email for a link to reset your password. If it doesn\'t appear within a few minutes, make sure to check your spam folder.',
passwordChanged: 'Sign in now',
changePassword: 'Change Password',
changePasswordTip: 'Please enter a new password for your account',
invalidToken: 'Invalid or expired token',
confirmPassword: 'Confirm Password',
confirmPasswordPlaceholder: 'Confirm your new password',
passwordChangedTip: 'Your password has been successfully changed',
error: {
emailEmpty: 'Email address is required',
emailInValid: 'Please enter a valid email address',

View File

@@ -34,6 +34,19 @@ const translation = {
donthave: 'Vous n\'avez pas ?',
invalidInvitationCode: 'Code d\'invitation invalide',
accountAlreadyInited: 'Compte déjà initialisé',
forgotPassword: 'Mot de passe oublié?',
resetLinkSent: 'Lien de réinitialisation envoyé',
sendResetLink: 'Envoyer le lien de réinitialisation',
backToSignIn: 'Retour à la connexion',
forgotPasswordDesc: 'Veuillez entrer votre adresse e-mail pour réinitialiser votre mot de passe. Nous vous enverrons un e-mail avec des instructions sur la réinitialisation de votre mot de passe.',
checkEmailForResetLink: 'Veuillez vérifier votre e-mail pour un lien de réinitialisation de votre mot de passe. S\'il n\'apparaît pas dans quelques minutes, assurez-vous de vérifier votre dossier de spam.',
passwordChanged: 'Connectez-vous maintenant',
changePassword: 'Changer le mot de passe',
changePasswordTip: 'Veuillez entrer un nouveau mot de passe pour votre compte',
invalidToken: 'Token invalide ou expiré',
confirmPassword: 'Confirmez le mot de passe',
confirmPasswordPlaceholder: 'Confirmez votre nouveau mot de passe',
passwordChangedTip: 'Votre mot de passe a été changé avec succès',
error: {
emailEmpty: 'Une adresse e-mail est requise',
emailInValid: 'Veuillez entrer une adresse email valide',

View File

@@ -39,6 +39,19 @@ const translation = {
donthave: 'नहीं है?',
invalidInvitationCode: 'अवैध निमंत्रण कोड',
accountAlreadyInited: 'खाता पहले से प्रारंभ किया गया है',
forgotPassword: 'क्या आपने अपना पासवर्ड भूल गए हैं?',
resetLinkSent: 'रीसेट लिंक भेजी गई',
sendResetLink: 'रीसेट लिंक भेजें',
backToSignIn: 'साइन इन पर वापस जाएं',
forgotPasswordDesc: 'कृपया अपना ईमेल पता दर्ज करें ताकि हम आपको अपना पासवर्ड रीसेट करने के निर्देशों के साथ एक ईमेल भेज सकें।',
checkEmailForResetLink: 'कृपया अपना पासवर्ड रीसेट करने के लिए लिंक के लिए अपना ईमेल चेक करें। अगर यह कुछ मिनटों के भीतर नहीं आता है, तो कृपया अपना स्पैम फोल्डर भी चेक करें।',
passwordChanged: 'अब साइन इन करें',
changePassword: 'पासवर्ड बदलें',
changePasswordTip: 'कृपया अपने खाते के लिए नया पासवर्ड दर्ज करें',
invalidToken: 'अमान्य या समाप्त टोकन',
confirmPassword: 'पासवर्ड की पुष्टि करें',
confirmPasswordPlaceholder: 'अपना नया पासवर्ड पुष्टि करें',
passwordChangedTip: 'आपका पासवर्ड सफलतापूर्वक बदल दिया गया है',
error: {
emailEmpty: 'ईमेल पता आवश्यक है',
emailInValid: 'कृपया एक मान्य ईमेल पता दर्ज करें',

View File

@@ -34,6 +34,19 @@ const translation = {
donthave: 'お持ちでない場合',
invalidInvitationCode: '無効な招待コード',
accountAlreadyInited: 'アカウントは既に初期化されています',
forgotPassword: 'パスワードを忘れましたか?',
resetLinkSent: 'リセットリンクが送信されました',
sendResetLink: 'リセットリンクを送信',
backToSignIn: 'サインインに戻る',
forgotPasswordDesc: 'パスワードをリセットするためにメールアドレスを入力してください。パスワードのリセット方法に関する指示が記載されたメールを送信します。',
checkEmailForResetLink: 'パスワードリセットリンクを確認するためにメールを確認してください。数分以内に表示されない場合は、スパムフォルダーを確認してください。',
passwordChanged: '今すぐサインイン',
changePassword: 'パスワードを変更する',
changePasswordTip: 'アカウントの新しいパスワードを入力してください',
invalidToken: '無効または期限切れのトークン',
confirmPassword: 'パスワードを確認',
confirmPasswordPlaceholder: '新しいパスワードを確認してください',
passwordChangedTip: 'パスワードが正常に変更されました',
error: {
emailEmpty: 'メールアドレスは必須です',
emailInValid: '有効なメールアドレスを入力してください',

View File

@@ -34,6 +34,19 @@ const translation = {
donthave: '계정이 없으신가요?',
invalidInvitationCode: '유효하지 않은 초대 코드입니다.',
accountAlreadyInited: '계정은 이미 초기화되었습니다.',
forgotPassword: '비밀번호를 잊으셨나요?',
resetLinkSent: '재설정 링크가 전송되었습니다',
sendResetLink: '재설정 링크 보내기',
backToSignIn: '로그인으로 돌아가기',
forgotPasswordDesc: '비밀번호를 재설정하려면 이메일 주소를 입력하세요. 비밀번호 재설정 방법에 대한 이메일을 보내드리겠습니다.',
checkEmailForResetLink: '비밀번호 재설정 링크를 확인하려면 이메일을 확인하세요. 몇 분 내에 나타나지 않으면 스팸 폴더를 확인하세요.',
passwordChanged: '지금 로그인',
changePassword: '비밀번호 변경',
changePasswordTip: '계정의 새 비밀번호를 입력하세요',
invalidToken: '유효하지 않거나 만료된 토큰',
confirmPassword: '비밀번호 확인',
confirmPasswordPlaceholder: '새 비밀번호를 확인하세요',
passwordChangedTip: '비밀번호가 성공적으로 변경되었습니다',
error: {
emailEmpty: '이메일 주소를 입력하세요.',
emailInValid: '유효한 이메일 주소를 입력하세요.',

View File

@@ -39,6 +39,19 @@ const translation = {
donthave: 'Nie masz?',
invalidInvitationCode: 'Niewłaściwy kod zaproszenia',
accountAlreadyInited: 'Konto już zainicjowane',
forgotPassword: 'Zapomniałeś hasła?',
resetLinkSent: 'Link resetujący został wysłany',
sendResetLink: 'Wyślij link resetujący',
backToSignIn: 'Powrót do logowania',
forgotPasswordDesc: 'Proszę podać swój adres e-mail, aby zresetować hasło. Wyślemy Ci e-mail z instrukcjami, jak zresetować hasło.',
checkEmailForResetLink: 'Proszę sprawdzić swój e-mail w poszukiwaniu linku do resetowania hasła. Jeśli nie pojawi się w ciągu kilku minut, sprawdź folder spam.',
passwordChanged: 'Zaloguj się teraz',
changePassword: 'Zmień hasło',
changePasswordTip: 'Wprowadź nowe hasło do swojego konta',
invalidToken: 'Nieprawidłowy lub wygasły token',
confirmPassword: 'Potwierdź hasło',
confirmPasswordPlaceholder: 'Potwierdź nowe hasło',
passwordChangedTip: 'Twoje hasło zostało pomyślnie zmienione',
error: {
emailEmpty: 'Adres e-mail jest wymagany',
emailInValid: 'Proszę wpisać prawidłowy adres e-mail',

View File

@@ -34,6 +34,19 @@ const translation = {
donthave: 'Não tem?',
invalidInvitationCode: 'Código de convite inválido',
accountAlreadyInited: 'Conta já iniciada',
forgotPassword: 'Esqueceu sua senha?',
resetLinkSent: 'Link de redefinição enviado',
sendResetLink: 'Enviar link de redefinição',
backToSignIn: 'Voltar para login',
forgotPasswordDesc: 'Por favor, insira seu endereço de e-mail para redefinir sua senha. Enviaremos um e-mail com instruções sobre como redefinir sua senha.',
checkEmailForResetLink: 'Verifique seu e-mail para um link para redefinir sua senha. Se não aparecer dentro de alguns minutos, verifique sua pasta de spam.',
passwordChanged: 'Entre agora',
changePassword: 'Mudar a senha',
changePasswordTip: 'Por favor, insira uma nova senha para sua conta',
invalidToken: 'Token inválido ou expirado',
confirmPassword: 'Confirme a Senha',
confirmPasswordPlaceholder: 'Confirme sua nova senha',
passwordChangedTip: 'Sua senha foi alterada com sucesso',
error: {
emailEmpty: 'O endereço de e-mail é obrigatório',
emailInValid: 'Digite um endereço de e-mail válido',

View File

@@ -35,6 +35,19 @@ const translation = {
donthave: 'Nu ai?',
invalidInvitationCode: 'Cod de invitație invalid',
accountAlreadyInited: 'Contul este deja inițializat',
forgotPassword: 'Ați uitat parola?',
resetLinkSent: 'Link de resetare trimis',
sendResetLink: 'Trimiteți linkul de resetare',
backToSignIn: 'Înapoi la autentificare',
forgotPasswordDesc: 'Vă rugăm să introduceți adresa de e-mail pentru a reseta parola. Vă vom trimite un e-mail cu instrucțiuni despre cum să resetați parola.',
checkEmailForResetLink: 'Vă rugăm să verificați e-mailul pentru un link de resetare a parolei. Dacă nu apare în câteva minute, verificați folderul de spam.',
passwordChanged: 'Conectează-te acum',
changePassword: 'Schimbă parola',
changePasswordTip: 'Vă rugăm să introduceți o nouă parolă pentru contul dvs',
invalidToken: 'Token invalid sau expirat',
confirmPassword: 'Confirmă parola',
confirmPasswordPlaceholder: 'Confirmați noua parolă',
passwordChangedTip: 'Parola dvs. a fost schimbată cu succes',
error: {
emailEmpty: 'Adresa de email este obligatorie',
emailInValid: 'Te rugăm să introduci o adresă de email validă',

View File

@@ -34,6 +34,19 @@ const translation = {
donthave: 'Не маєте?',
invalidInvitationCode: 'Недійсний код запрошення',
accountAlreadyInited: 'Обліковий запис уже ініціалізовано',
forgotPassword: 'Забули пароль?',
resetLinkSent: 'Посилання для скидання надіслано',
sendResetLink: 'Надіслати посилання для скидання',
backToSignIn: 'Повернутися до входу',
forgotPasswordDesc: 'Будь ласка, введіть свою електронну адресу, щоб скинути пароль. Ми надішлемо вам електронного листа з інструкціями щодо скидання пароля.',
checkEmailForResetLink: 'Будь ласка, перевірте свою електронну пошту на наявність посилання для скидання пароля. Якщо протягом кількох хвилин не з’явиться, перевірте папку зі спамом.',
passwordChanged: 'Увійдіть зараз',
changePassword: 'Змінити пароль',
changePasswordTip: 'Будь ласка, введіть новий пароль для свого облікового запису',
invalidToken: 'Недійсний або прострочений токен',
confirmPassword: 'Підтвердити пароль',
confirmPasswordPlaceholder: 'Підтвердьте новий пароль',
passwordChangedTip: 'Ваш пароль було успішно змінено',
error: {
emailEmpty: 'Адреса електронної пошти обов\'язкова',
emailInValid: 'Введіть дійсну адресу електронної пошти',

View File

@@ -34,6 +34,19 @@ const translation = {
donthave: 'Chưa có?',
invalidInvitationCode: 'Mã mời không hợp lệ',
accountAlreadyInited: 'Tài khoản đã được khởi tạo',
forgotPassword: 'Quên mật khẩu?',
resetLinkSent: 'Đã gửi liên kết đặt lại mật khẩu',
sendResetLink: 'Gửi liên kết đặt lại mật khẩu',
backToSignIn: 'Quay lại đăng nhập',
forgotPasswordDesc: 'Vui lòng nhập địa chỉ email của bạn để đặt lại mật khẩu. Chúng tôi sẽ gửi cho bạn một email với hướng dẫn về cách đặt lại mật khẩu.',
checkEmailForResetLink: 'Vui lòng kiểm tra email của bạn để nhận liên kết đặt lại mật khẩu. Nếu không thấy trong vài phút, hãy kiểm tra thư mục spam.',
passwordChanged: 'Đăng nhập ngay',
changePassword: 'Đổi mật khẩu',
changePasswordTip: 'Vui lòng nhập mật khẩu mới cho tài khoản của bạn',
invalidToken: 'Mã thông báo không hợp lệ hoặc đã hết hạn',
confirmPassword: 'Xác nhận mật khẩu',
confirmPasswordPlaceholder: 'Xác nhận mật khẩu mới của bạn',
passwordChangedTip: 'Mật khẩu của bạn đã được thay đổi thành công',
error: {
emailEmpty: 'Địa chỉ Email là bắt buộc',
emailInValid: 'Vui lòng nhập một địa chỉ email hợp lệ',

View File

@@ -34,6 +34,19 @@ const translation = {
donthave: '还没有邀请码?',
invalidInvitationCode: '无效的邀请码',
accountAlreadyInited: '账户已经初始化',
forgotPassword: '忘记密码?',
resetLinkSent: '重置链接已发送',
sendResetLink: '发送重置链接',
backToSignIn: '返回登录',
forgotPasswordDesc: '请输入您的电子邮件地址以重置密码。我们将向您发送一封电子邮件,包含如何重置密码的说明。',
checkEmailForResetLink: '请检查您的电子邮件以获取重置密码的链接。如果几分钟内没有收到,请检查您的垃圾邮件文件夹。',
passwordChanged: '立即登录',
changePassword: '更改密码',
changePasswordTip: '请输入您的新密码',
invalidToken: '无效或已过期的令牌',
confirmPassword: '确认密码',
confirmPasswordPlaceholder: '确认您的新密码',
passwordChangedTip: '您的密码已成功更改',
error: {
emailEmpty: '邮箱不能为空',
emailInValid: '请输入有效的邮箱地址',

View File

@@ -34,6 +34,19 @@ const translation = {
donthave: '還沒有邀請碼?',
invalidInvitationCode: '無效的邀請碼',
accountAlreadyInited: '賬戶已經初始化',
forgotPassword: '忘記密碼?',
resetLinkSent: '重設連結已發送',
sendResetLink: '發送重設連結',
backToSignIn: '返回登錄',
forgotPasswordDesc: '請輸入您的電子郵件地址以重設密碼。我們將向您發送一封電子郵件,說明如何重設密碼。',
checkEmailForResetLink: '請檢查您的電子郵件以獲取重設密碼的連結。如果幾分鐘內沒有收到,請檢查您的垃圾郵件文件夾。',
passwordChanged: '立即登入',
changePassword: '更改密碼',
changePasswordTip: '請輸入您的新密碼',
invalidToken: '無效或已過期的令牌',
confirmPassword: '確認密碼',
confirmPasswordPlaceholder: '確認您的新密碼',
passwordChangedTip: '您的密碼已成功更改',
error: {
emailEmpty: '郵箱不能為空',
emailInValid: '請輸入有效的郵箱地址',