mirror of https://github.com/halo-dev/halo
feat: refine i18n resources for login-related page (#6726)
#### What type of PR is this? /area core /kind improvement /milestone 2.20.x #### What this PR does / why we need it: 完善新登录相关页面的多语言资源文件。 #### Which issue(s) this PR fixes: Fixes https://github.com/halo-dev/halo/issues/6721 #### Does this PR introduce a user-facing change? ```release-note None ```pull/6730/head^2
parent
2c849d8361
commit
1947a544f2
|
@ -96,14 +96,14 @@ function sendVerificationCode(button, sendRequest) {
|
|||
sendRequest()
|
||||
.then(() => {
|
||||
startCountdown();
|
||||
Toast.success("发送成功");
|
||||
Toast.success(i18nResources.sendVerificationCodeSuccess);
|
||||
})
|
||||
.catch((e) => {
|
||||
button.disabled = false;
|
||||
if (e instanceof Error) {
|
||||
Toast.error(e.message);
|
||||
} else {
|
||||
Toast.error("发送失败,请稍后再试");
|
||||
Toast.error(i18nResources.sendVerificationCodeFailed);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
@ -151,4 +151,3 @@ document.addEventListener("DOMContentLoaded", () => {
|
|||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
title=Autenticación en Dos Pasos
|
||||
messages.invalidError=Código de verificación incorrecto
|
||||
form.code.label=Código de Verificación
|
||||
form.submit=Verificar
|
|
@ -0,0 +1,4 @@
|
|||
title=兩步驗證
|
||||
messages.invalidError=錯誤的驗證碼
|
||||
form.code.label=驗證碼
|
||||
form.submit=驗證
|
|
@ -1,13 +1,14 @@
|
|||
<th:block th:fragment="basicStaticResources">
|
||||
<script th:inline="javascript">
|
||||
const resources = {
|
||||
title: `[(#{title})]`,
|
||||
};
|
||||
</script>
|
||||
|
||||
<link rel="stylesheet" href="/webjars/normalize.css/8.0.1/normalize.css" />
|
||||
<link rel="stylesheet" th:href="|/styles/main.css?v=${site.version}|" />
|
||||
|
||||
<script th:inline="javascript">
|
||||
const i18nResources = {
|
||||
sendVerificationCodeSuccess: `[(#{js.sendVerificationCode.success})]`,
|
||||
sendVerificationCodeFailed: `[(#{js.sendVerificationCode.failed})]`,
|
||||
};
|
||||
</script>
|
||||
|
||||
<script src="/js/main.js"></script>
|
||||
</th:block>
|
||||
|
||||
|
@ -67,7 +68,10 @@
|
|||
const selectedLanguage = document.getElementById("language-select").value;
|
||||
const currentURL = new URL(window.location.href);
|
||||
currentURL.searchParams.set("language", selectedLanguage);
|
||||
window.location.href = currentURL.toString();
|
||||
|
||||
history.replaceState(null, "", currentURL.toString());
|
||||
|
||||
window.location.reload();
|
||||
}
|
||||
</script>
|
||||
</div>
|
||||
|
|
|
@ -1 +1,3 @@
|
|||
socialLogin.label=社交登录
|
||||
js.sendVerificationCode.success=发送成功
|
||||
js.sendVerificationCode.failed=发送失败,请稍后再试
|
|
@ -1 +1,3 @@
|
|||
socialLogin.label=Social Login
|
||||
js.sendVerificationCode.success=Sent Successfully
|
||||
js.sendVerificationCode.failed=Sending Failed, Please Try Again Later
|
|
@ -0,0 +1,3 @@
|
|||
socialLogin.label=Inicio de Sesión Social
|
||||
js.sendVerificationCode.success=Enviado con éxito
|
||||
js.sendVerificationCode.failed=Error al enviar, por favor intente nuevamente más tarde
|
|
@ -0,0 +1,3 @@
|
|||
socialLogin.label=社交登入
|
||||
js.sendVerificationCode.success=發送成功
|
||||
js.sendVerificationCode.failed=發送失敗,請稍後再試
|
|
@ -1,6 +1,6 @@
|
|||
messages.loginError=Invalid credentials.
|
||||
messages.logoutSuccess=Logout successfully.
|
||||
messages.signupSuccess=Congratulations! Sign up successfully, please sign in now.
|
||||
messages.signupSuccess=Congratulations! Sign up successfully, please login now.
|
||||
|
||||
error.invalid-credential=Invalid credentials.
|
||||
error.rate-limit-exceeded=Too many requests, please try again later.
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
messages.loginError=Credenciales inválidas.
|
||||
messages.logoutSuccess=Cierre de sesión exitoso.
|
||||
messages.signupSuccess=¡Felicidades! Registro exitoso, por favor inicie sesión de inmediato.
|
||||
|
||||
error.invalid-credential=Credenciales inválidas.
|
||||
error.rate-limit-exceeded=Demasiadas solicitudes, por favor intente nuevamente más tarde.
|
||||
|
||||
form.rememberMe.label=Mantener sesión iniciada
|
||||
form.submit=Iniciar sesión
|
||||
otherLogin.label=Otras formas de inicio de sesión
|
||||
signup.description=¿No tienes una cuenta?
|
||||
signup.link=Regístrate ahora
|
||||
returnToSite=Volver al sitio
|
|
@ -0,0 +1,13 @@
|
|||
messages.loginError=無效的憑證。
|
||||
messages.logoutSuccess=登出成功。
|
||||
messages.signupSuccess=恭喜!註冊成功,請立即登入。
|
||||
|
||||
error.invalid-credential=無效的憑證。
|
||||
error.rate-limit-exceeded=請求過於頻繁,請稍後再試。
|
||||
|
||||
form.rememberMe.label=保持登入會話
|
||||
form.submit=登入
|
||||
otherLogin.label=其他登入方式
|
||||
signup.description=沒有帳號?
|
||||
signup.link=立即註冊
|
||||
returnToSite=返回網站
|
|
@ -0,0 +1 @@
|
|||
title=Iniciar Sesión
|
|
@ -0,0 +1,3 @@
|
|||
form.username.label=Nombre de Usuario
|
||||
form.password.label=Contraseña
|
||||
form.password.forgot=¿Olvidaste tu contraseña?
|
|
@ -0,0 +1,3 @@
|
|||
form.username.label=使用者名稱
|
||||
form.password.label=密碼
|
||||
form.password.forgot=忘記密碼?
|
|
@ -0,0 +1 @@
|
|||
title=登入
|
|
@ -0,0 +1,3 @@
|
|||
title=Cerrar Sesión
|
||||
form.title=¿Estás seguro de que deseas cerrar sesión?
|
||||
form.submit=Cerrar Sesión
|
|
@ -0,0 +1,3 @@
|
|||
title=退出登入
|
||||
form.title=確定要退出登入嗎?
|
||||
form.submit=退出登入
|
|
@ -34,6 +34,8 @@
|
|||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div th:replace="~{gateway_modules/common_fragments::languageSwitcher}"></div>
|
||||
</div>
|
||||
</th:block>
|
||||
</html>
|
|
@ -0,0 +1,5 @@
|
|||
title=Cambiar Contraseña para {0}
|
||||
form.password.label=Contraseña
|
||||
form.confirmPassword.label=Confirmar Contraseña
|
||||
form.password.tips=La contraseña debe tener al menos 8 caracteres e incluir al menos una letra mayúscula, una letra minúscula, un número y un carácter especial.
|
||||
form.submit=Cambiar Contraseña
|
|
@ -0,0 +1,5 @@
|
|||
title=為 {0} 修改密碼
|
||||
form.password.label=密碼
|
||||
form.confirmPassword.label=確認密碼
|
||||
form.password.tips=密碼必須至少包含 8 個字元,並且至少包含一個大寫字母、一個小寫字母、一個數字和一個特殊字元。
|
||||
form.submit=修改密碼
|
|
@ -31,6 +31,8 @@
|
|||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div th:replace="~{gateway_modules/common_fragments::languageSwitcher}"></div>
|
||||
</div>
|
||||
</th:block>
|
||||
</html>
|
|
@ -0,0 +1,6 @@
|
|||
title=Restablecer Contraseña
|
||||
form.email.label=Correo Electrónico
|
||||
form.submit=Enviar
|
||||
sent.form.submit=Volver a la Página de Inicio de Sesión
|
||||
sent.form.message=Revisa tu correo electrónico para ver el enlace de restablecimiento de contraseña. Si no aparece en unos minutos, revisa tu carpeta de spam.
|
||||
sent.title=Correo de Restablecimiento de Contraseña Enviado
|
|
@ -0,0 +1,6 @@
|
|||
title=重置密碼
|
||||
form.email.label=電子郵件
|
||||
form.submit=提交
|
||||
sent.form.submit=返回到登入頁面
|
||||
sent.form.message=檢查您的電子郵件中是否有重置密碼的連結。如果幾分鐘內沒有出現,請檢查您的垃圾郵件資料夾。
|
||||
sent.title=已發送重置密碼的郵件
|
|
@ -24,8 +24,14 @@
|
|||
<p class="alert alert=erro" role="alert" th:if="${error == 'duplicate-name'}">
|
||||
<span th:text="#{error.duplicate-name}">Duplicate name</span>
|
||||
</p>
|
||||
<form class="halo-form" name="signup-form" id="signup-form" th:action="@{/signup}" th:object="${form}"
|
||||
method="post">
|
||||
<form
|
||||
class="halo-form"
|
||||
name="signup-form"
|
||||
id="signup-form"
|
||||
th:action="@{/signup}"
|
||||
th:object="${form}"
|
||||
method="post"
|
||||
>
|
||||
<div class="form-item-group">
|
||||
<div class="form-item">
|
||||
<label for="username" th:text="#{form.username.label}"></label>
|
||||
|
@ -43,10 +49,11 @@
|
|||
th:field="*{username}"
|
||||
/>
|
||||
</div>
|
||||
<p class="alert alert-error"
|
||||
<p
|
||||
class="alert alert-error"
|
||||
th:if="${#fields.hasErrors('username')}"
|
||||
th:errors="*{username}">
|
||||
</p>
|
||||
th:errors="*{username}"
|
||||
></p>
|
||||
</div>
|
||||
|
||||
<div class="form-item">
|
||||
|
@ -64,10 +71,11 @@
|
|||
th:field="*{displayName}"
|
||||
/>
|
||||
</div>
|
||||
<p class="alert alert-error"
|
||||
<p
|
||||
class="alert alert-error"
|
||||
th:if="${#fields.hasErrors('displayName')}"
|
||||
th:errors="*{displayName}">
|
||||
</p>
|
||||
th:errors="*{displayName}"
|
||||
></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -87,10 +95,7 @@
|
|||
th:field="*{email}"
|
||||
/>
|
||||
</div>
|
||||
<p class="alert alert-error"
|
||||
th:if="${#fields.hasErrors('email')}"
|
||||
th:errors="*{email}">
|
||||
</p>
|
||||
<p class="alert alert-error" th:if="${#fields.hasErrors('email')}" th:errors="*{email}"></p>
|
||||
</div>
|
||||
|
||||
<div class="form-item" th:if="${globalInfo.mustVerifyEmailOnRegistration}">
|
||||
|
@ -113,10 +118,11 @@
|
|||
th:text="#{form.emailCode.sendButton}"
|
||||
></button>
|
||||
</div>
|
||||
<p class="alert alert-error"
|
||||
<p
|
||||
class="alert alert-error"
|
||||
th:if="${#fields.hasErrors('emailCode')}"
|
||||
th:errors="*{emailCode}">
|
||||
</p>
|
||||
th:errors="*{emailCode}"
|
||||
></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -125,10 +131,11 @@
|
|||
<th:block
|
||||
th:replace="~{gateway_modules/input_fragments :: password(id = 'password', name = 'password', required = 'true', minlength = 6, enableToggle = true)}"
|
||||
></th:block>
|
||||
<p class="alert alert-error"
|
||||
<p
|
||||
class="alert alert-error"
|
||||
th:if="${#fields.hasErrors('password')}"
|
||||
th:errors="*{password}">
|
||||
</p>
|
||||
th:errors="*{password}"
|
||||
></p>
|
||||
</div>
|
||||
|
||||
<div class="form-item">
|
||||
|
@ -136,10 +143,11 @@
|
|||
<th:block
|
||||
th:replace="~{gateway_modules/input_fragments :: password(id = 'confirmPassword', name = null, required = 'true', minlength = 6, enableToggle = true)}"
|
||||
></th:block>
|
||||
<p class="alert alert-error"
|
||||
th:if="${#fields.hasErrors('confirmPassword')}"
|
||||
th:errors="*{confirmPassword}">
|
||||
</p>
|
||||
<!-- <p -->
|
||||
<!-- class="alert alert-error" -->
|
||||
<!-- th:if="${#fields.hasErrors('confirmPassword')}" -->
|
||||
<!-- th:errors="*{confirmPassword}" -->
|
||||
<!-- ></p> -->
|
||||
</div>
|
||||
|
||||
<div class="form-item">
|
||||
|
@ -149,6 +157,8 @@
|
|||
|
||||
<div th:replace="~{gateway_modules/common_fragments::socialAuthProviders}"></div>
|
||||
</div>
|
||||
|
||||
<div th:replace="~{gateway_modules/common_fragments::languageSwitcher}"></div>
|
||||
</div>
|
||||
<script th:inline="javascript">
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
|
@ -157,7 +167,7 @@
|
|||
const email = document.getElementById("email").value;
|
||||
|
||||
if (!email) {
|
||||
throw new Error("请先输入邮箱地址");
|
||||
throw new Error(/*[[#{form.emailCode.send.emptyValidation}]]*/);
|
||||
}
|
||||
|
||||
fetch("/signup/send-email-code", {
|
||||
|
|
|
@ -4,6 +4,7 @@ form.displayName.label=名称
|
|||
form.email.label=电子邮箱
|
||||
form.emailCode.label=邮箱验证码
|
||||
form.emailCode.sendButton=发送
|
||||
form.emailCode.send.emptyValidation=请先输入邮箱地址
|
||||
form.password.label=密码
|
||||
form.confirmPassword.label=确认密码
|
||||
form.submit=注册
|
||||
|
|
|
@ -1,9 +1,14 @@
|
|||
title=Sign up
|
||||
title=Sign Up
|
||||
form.username.label=Username
|
||||
form.displayName.label=Display name
|
||||
form.displayName.label=Display Name
|
||||
form.email.label=Email
|
||||
form.emailCode.label=Email Code
|
||||
form.emailCode.label=Email Verification Code
|
||||
form.emailCode.sendButton=Send
|
||||
form.emailCode.send.emptyValidation=Please enter your email address first
|
||||
form.password.label=Password
|
||||
form.confirmPassword.label=Confirm password
|
||||
form.submit=Sign up
|
||||
form.confirmPassword.label=Confirm Password
|
||||
form.submit=Sign Up
|
||||
|
||||
error.invalid-email-code=Invalid Email Verification Code
|
||||
error.duplicate-name=Username is already taken
|
||||
error.rate-limit-exceeded=Too many requests, please try again later
|
|
@ -0,0 +1,14 @@
|
|||
title=Registrarse
|
||||
form.username.label=Nombre de Usuario
|
||||
form.displayName.label=Nombre
|
||||
form.email.label=Correo Electrónico
|
||||
form.emailCode.label=Código de Verificación
|
||||
form.emailCode.sendButton=Enviar
|
||||
form.emailCode.send.emptyValidation=Por favor, introduce tu dirección de correo electrónico primero
|
||||
form.password.label=Contraseña
|
||||
form.confirmPassword.label=Confirmar Contraseña
|
||||
form.submit=Registrarse
|
||||
|
||||
error.invalid-email-code=Código de verificación del correo inválido
|
||||
error.duplicate-name=El nombre de usuario ya está registrado
|
||||
error.rate-limit-exceeded=Demasiadas solicitudes, por favor intente nuevamente más tarde
|
|
@ -0,0 +1,14 @@
|
|||
title=註冊
|
||||
form.username.label=使用者名稱
|
||||
form.displayName.label=名稱
|
||||
form.email.label=電子郵件
|
||||
form.emailCode.label=郵箱驗證碼
|
||||
form.emailCode.sendButton=發送
|
||||
form.emailCode.send.emptyValidation=請先輸入電子郵件地址
|
||||
form.password.label=密碼
|
||||
form.confirmPassword.label=確認密碼
|
||||
form.submit=註冊
|
||||
|
||||
error.invalid-email-code=無效的郵箱驗證碼
|
||||
error.duplicate-name=使用者名稱已經被註冊
|
||||
error.rate-limit-exceeded=請求過於頻繁,請稍後再試
|
Loading…
Reference in New Issue