fix(i18n): replace hardcoded English strings in EmailVerifyView with i18n calls
This commit is contained in:
@@ -329,6 +329,16 @@ export default {
|
|||||||
sendingCode: 'Sending...',
|
sendingCode: 'Sending...',
|
||||||
clickToResend: 'Click to resend code',
|
clickToResend: 'Click to resend code',
|
||||||
resendCode: 'Resend verification code',
|
resendCode: 'Resend verification code',
|
||||||
|
sendCodeDesc: "We'll send a verification code to",
|
||||||
|
codeSentSuccess: 'Verification code sent! Please check your inbox.',
|
||||||
|
verifying: 'Verifying...',
|
||||||
|
verifyAndCreate: 'Verify & Create Account',
|
||||||
|
resendCountdown: 'Resend code in {countdown}s',
|
||||||
|
backToRegistration: 'Back to registration',
|
||||||
|
sendCodeFailed: 'Failed to send verification code. Please try again.',
|
||||||
|
verifyFailed: 'Verification failed. Please try again.',
|
||||||
|
codeRequired: 'Verification code is required',
|
||||||
|
invalidCode: 'Please enter a valid 6-digit code',
|
||||||
promoCodeLabel: 'Promo Code',
|
promoCodeLabel: 'Promo Code',
|
||||||
promoCodePlaceholder: 'Enter promo code (optional)',
|
promoCodePlaceholder: 'Enter promo code (optional)',
|
||||||
promoCodeValid: 'Valid! You will receive ${amount} bonus balance',
|
promoCodeValid: 'Valid! You will receive ${amount} bonus balance',
|
||||||
|
|||||||
@@ -328,6 +328,16 @@ export default {
|
|||||||
sendingCode: '发送中...',
|
sendingCode: '发送中...',
|
||||||
clickToResend: '点击重新发送验证码',
|
clickToResend: '点击重新发送验证码',
|
||||||
resendCode: '重新发送验证码',
|
resendCode: '重新发送验证码',
|
||||||
|
sendCodeDesc: '我们将发送验证码到',
|
||||||
|
codeSentSuccess: '验证码已发送!请查收您的邮箱。',
|
||||||
|
verifying: '验证中...',
|
||||||
|
verifyAndCreate: '验证并创建账户',
|
||||||
|
resendCountdown: '{countdown}秒后可重新发送',
|
||||||
|
backToRegistration: '返回注册',
|
||||||
|
sendCodeFailed: '发送验证码失败,请重试。',
|
||||||
|
verifyFailed: '验证失败,请重试。',
|
||||||
|
codeRequired: '请输入验证码',
|
||||||
|
invalidCode: '请输入有效的6位验证码',
|
||||||
promoCodeLabel: '优惠码',
|
promoCodeLabel: '优惠码',
|
||||||
promoCodePlaceholder: '输入优惠码(可选)',
|
promoCodePlaceholder: '输入优惠码(可选)',
|
||||||
promoCodeValid: '有效!注册后将获得 ${amount} 赠送余额',
|
promoCodeValid: '有效!注册后将获得 ${amount} 赠送余额',
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
{{ t('auth.verifyYourEmail') }}
|
{{ t('auth.verifyYourEmail') }}
|
||||||
</h2>
|
</h2>
|
||||||
<p class="mt-2 text-sm text-gray-500 dark:text-dark-400">
|
<p class="mt-2 text-sm text-gray-500 dark:text-dark-400">
|
||||||
We'll send a verification code to
|
{{ t('auth.sendCodeDesc') }}
|
||||||
<span class="font-medium text-gray-700 dark:text-gray-300">{{ email }}</span>
|
<span class="font-medium text-gray-700 dark:text-gray-300">{{ email }}</span>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -64,7 +64,7 @@
|
|||||||
<Icon name="checkCircle" size="md" class="text-green-500" />
|
<Icon name="checkCircle" size="md" class="text-green-500" />
|
||||||
</div>
|
</div>
|
||||||
<p class="text-sm text-green-700 dark:text-green-400">
|
<p class="text-sm text-green-700 dark:text-green-400">
|
||||||
Verification code sent! Please check your inbox.
|
{{ t('auth.codeSentSuccess') }}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -123,7 +123,7 @@
|
|||||||
></path>
|
></path>
|
||||||
</svg>
|
</svg>
|
||||||
<Icon v-else name="checkCircle" size="md" class="mr-2" />
|
<Icon v-else name="checkCircle" size="md" class="mr-2" />
|
||||||
{{ isLoading ? 'Verifying...' : 'Verify & Create Account' }}
|
{{ isLoading ? t('auth.verifying') : t('auth.verifyAndCreate') }}
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<!-- Resend Code -->
|
<!-- Resend Code -->
|
||||||
@@ -134,7 +134,7 @@
|
|||||||
disabled
|
disabled
|
||||||
class="cursor-not-allowed text-sm text-gray-400 dark:text-dark-500"
|
class="cursor-not-allowed text-sm text-gray-400 dark:text-dark-500"
|
||||||
>
|
>
|
||||||
Resend code in {{ countdown }}s
|
{{ t('auth.resendCountdown', { countdown }) }}
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
v-else
|
v-else
|
||||||
@@ -162,7 +162,7 @@
|
|||||||
class="flex items-center gap-2 text-gray-500 transition-colors hover:text-gray-700 dark:text-dark-400 dark:hover:text-gray-300"
|
class="flex items-center gap-2 text-gray-500 transition-colors hover:text-gray-700 dark:text-dark-400 dark:hover:text-gray-300"
|
||||||
>
|
>
|
||||||
<Icon name="arrowLeft" size="sm" />
|
<Icon name="arrowLeft" size="sm" />
|
||||||
Back to registration
|
{{ t('auth.backToRegistration') }}
|
||||||
</button>
|
</button>
|
||||||
</template>
|
</template>
|
||||||
</AuthLayout>
|
</AuthLayout>
|
||||||
@@ -300,12 +300,12 @@ function onTurnstileVerify(token: string): void {
|
|||||||
|
|
||||||
function onTurnstileExpire(): void {
|
function onTurnstileExpire(): void {
|
||||||
resendTurnstileToken.value = ''
|
resendTurnstileToken.value = ''
|
||||||
errors.value.turnstile = 'Verification expired, please try again'
|
errors.value.turnstile = t('auth.turnstileExpired')
|
||||||
}
|
}
|
||||||
|
|
||||||
function onTurnstileError(): void {
|
function onTurnstileError(): void {
|
||||||
resendTurnstileToken.value = ''
|
resendTurnstileToken.value = ''
|
||||||
errors.value.turnstile = 'Verification failed, please try again'
|
errors.value.turnstile = t('auth.turnstileFailed')
|
||||||
}
|
}
|
||||||
|
|
||||||
// ==================== Send Code ====================
|
// ==================== Send Code ====================
|
||||||
@@ -336,7 +336,7 @@ async function sendCode(): Promise<void> {
|
|||||||
resendTurnstileToken.value = ''
|
resendTurnstileToken.value = ''
|
||||||
} catch (error: unknown) {
|
} catch (error: unknown) {
|
||||||
errorMessage.value = buildAuthErrorMessage(error, {
|
errorMessage.value = buildAuthErrorMessage(error, {
|
||||||
fallback: 'Failed to send verification code. Please try again.'
|
fallback: t('auth.sendCodeFailed')
|
||||||
})
|
})
|
||||||
|
|
||||||
appStore.showError(errorMessage.value)
|
appStore.showError(errorMessage.value)
|
||||||
@@ -356,7 +356,7 @@ async function handleResendCode(): Promise<void> {
|
|||||||
|
|
||||||
// If turnstile is enabled but no token yet, wait
|
// If turnstile is enabled but no token yet, wait
|
||||||
if (turnstileEnabled.value && !resendTurnstileToken.value) {
|
if (turnstileEnabled.value && !resendTurnstileToken.value) {
|
||||||
errors.value.turnstile = 'Please complete the verification'
|
errors.value.turnstile = t('auth.completeVerification')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -367,12 +367,12 @@ function validateForm(): boolean {
|
|||||||
errors.value.code = ''
|
errors.value.code = ''
|
||||||
|
|
||||||
if (!verifyCode.value.trim()) {
|
if (!verifyCode.value.trim()) {
|
||||||
errors.value.code = 'Verification code is required'
|
errors.value.code = t('auth.codeRequired')
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!/^\d{6}$/.test(verifyCode.value.trim())) {
|
if (!/^\d{6}$/.test(verifyCode.value.trim())) {
|
||||||
errors.value.code = 'Please enter a valid 6-digit code'
|
errors.value.code = t('auth.invalidCode')
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -409,13 +409,13 @@ async function handleVerify(): Promise<void> {
|
|||||||
sessionStorage.removeItem('register_data')
|
sessionStorage.removeItem('register_data')
|
||||||
|
|
||||||
// Show success toast
|
// Show success toast
|
||||||
appStore.showSuccess('Account created successfully! Welcome to ' + siteName.value + '.')
|
appStore.showSuccess(t('auth.accountCreatedSuccess', { siteName: siteName.value }))
|
||||||
|
|
||||||
// Redirect to dashboard
|
// Redirect to dashboard
|
||||||
await router.push('/dashboard')
|
await router.push('/dashboard')
|
||||||
} catch (error: unknown) {
|
} catch (error: unknown) {
|
||||||
errorMessage.value = buildAuthErrorMessage(error, {
|
errorMessage.value = buildAuthErrorMessage(error, {
|
||||||
fallback: 'Verification failed. Please try again.'
|
fallback: t('auth.verifyFailed')
|
||||||
})
|
})
|
||||||
|
|
||||||
appStore.showError(errorMessage.value)
|
appStore.showError(errorMessage.value)
|
||||||
|
|||||||
Reference in New Issue
Block a user