Skip to content
Clone
main
455 lines 23.4 KB
import type { Locale } from './locale'
export const zhCN = {
'app.title': '身份认证',
'app.description': '安全登录 GitDataAI,使用统一账户访问应用与服务。',
'common.backToLogin': '返回登录',
'common.close': '关闭',
'common.resend': '重新发送',
'common.retry': '重试',
'common.sending': '正在发送…',
'error.invalid_credentials': '邮箱、用户名或密码有误,请核对后重试。',
'error.invalid_email': '请输入有效的邮箱地址。',
'error.invalid_username': '用户名支持 1–64 位字母、数字、下划线、点和短横线。',
'error.username_taken': '该用户名已被使用,请换一个。',
'error.email_taken': '该邮箱已注册,请直接登录。',
'error.invalid_displayname': '显示名称最多为 64 个字符。',
'error.invalid_birth_date': '请选择有效的出生日期。',
'error.under_minimum_age': '创建账户需要年满 13 周岁。',
'error.invalid_password': '请检查密码是否符合要求。',
'error.invalid_email_code': '验证码有误或已过期,请核对或重新发送。',
'error.email_code_attempts_exceeded': '验证码尝试次数已达上限,请重新发送。',
'error.invalid_reset_token': '重置链接已过期或已使用,请重新申请。',
'error.expired': '安全验证已过期,请重试。',
'error.invalid_proof': '安全验证失败,请重试。',
'error.invalid_payload': '安全验证信息已变更,请重试。',
'error.malformed_request': '请求信息有误,请检查后重试。',
'error.unauthenticated': '登录会话已过期,请重新登录。',
'error.login_forbidden': '该账户的登录已受限,请联系管理员。',
'error.mfa_required': '请重新登录并完成二次验证。',
'error.totp_code_invalid': '动态验证码有误,请输入当前验证码。',
'error.totp_step_reused': '该动态验证码已使用,请等待下一组验证码。',
'error.recovery_code_invalid': '恢复码有误或已使用。',
'error.recovery_codes_exhausted': '恢复码已用尽,请使用身份验证器。',
'error.rate_limited': '操作过于频繁,请稍后重试。',
'error.email': '邮件投递暂时受阻,请稍后重新发送。',
'error.timeout': '连接超时,请稍后重试。',
'error.connection': '暂时无法连接认证服务,请检查网络后重试。',
'error.server': '认证服务暂时不可用,请稍后重试。',
'error.unexpected': '请求暂时无法完成,请重试。',
'validation.email.invalid': '请输入有效的邮箱地址。',
'validation.password.short': '密码至少需要 8 个字符。',
'validation.password.weak': '密码需包含大写字母、小写字母和数字。',
'validation.username.invalid': '请输入 1–64 位字母、数字、下划线、点或短横线。',
'validation.birth.incomplete': '请选择完整的出生日期。',
'validation.birth.invalid': '请选择有效的出生日期。',
'validation.birth.underage': '创建账户需要年满 13 周岁。',
'pow.invalid': '安全验证参数有误,请重试。',
'pow.timeout': '安全验证已超时,请重试。',
'pow.failed': '安全验证暂时无法完成,请重试。',
'pow.unavailable': '安全验证暂时不可用,请重试。',
'field.email.label': '邮箱地址',
'field.password.label': '密码',
'field.password.placeholder': '请输入密码',
'field.username.label': '用户名',
'ui.field.reveal': '显示{label}',
'ui.field.conceal': '隐藏{label}',
'ui.otp.label': '邮箱验证码',
'ui.otp.helper': '可粘贴完整验证码,也可使用系统自动填充。',
'ui.birth.legend': '出生日期',
'ui.birth.helper': '用于确认你的年龄资格。',
'ui.birth.aria.year': '出生年份',
'ui.birth.aria.month': '出生月份',
'ui.birth.aria.day': '出生日期',
'ui.birth.placeholder.year': '年',
'ui.birth.placeholder.month': '月',
'ui.birth.placeholder.day': '日',
'ui.birth.unit.month': '月',
'ui.birth.unit.day': '日',
'ui.agreement.title': '同意服务条款与隐私政策',
'ui.agreement.aria': '我已阅读并同意服务条款和隐私政策',
'ui.agreement.label': '我已阅读并同意',
'ui.agreement.and': '和',
'ui.legal.terms': '服务条款',
'ui.legal.privacy': '隐私政策',
'ui.legal.missing': '{title}链接待服务管理员配置。请在阅读正式条款后确认同意并创建账户。',
'account.checking': '正在确认登录状态…',
'ui.retry': '请在 {seconds} 秒后重试',
'ui.resend.prompt': '还没收到?',
'ui.resend.wait': '{seconds} 秒后重新发送',
'theme.toLight': '切换至浅色主题',
'theme.toDark': '切换至深色主题',
'theme.system': '跟随系统,点击切换主题',
'theme.currentLight': '当前为浅色主题',
'theme.currentDark': '当前为深色主题',
'shell.home': 'GitDataAI 首页',
'login.title': '登录 GitDataAI',
'login.description': '登录以继续访问应用与服务',
'login.form': '密码登录',
'login.identity.label': '邮箱地址或用户名',
'login.identity.error': '请输入邮箱地址、用户名或用户编号。',
'login.password.error': '请输入密码。',
'login.codeLink': '使用邮箱验证码登录',
'login.forgotLink': '忘记密码?',
'login.submit': '登录',
'login.busy': '正在安全登录…',
'login.prompt': '还没有账户?',
'login.action': '创建账户',
'loginCode.title': '邮箱验证码登录',
'loginCode.titleSent': '输入邮箱验证码',
'loginCode.description': '使用注册邮箱接收验证码,安全登录。',
'loginCode.descriptionSent': '输入发送至以下邮箱的 6 位验证码。',
'loginCode.form': '邮箱验证码登录',
'loginCode.send': '发送验证码',
'loginCode.changeEmail': '修改邮箱',
'loginCode.expired': '验证码已过期,请重新发送。',
'loginCode.submit': '验证并登录',
'loginCode.notice': '验证码已发送,请查看收件箱与垃圾邮件。',
'loginCode.codeError': '请输入完整的 6 位验证码。',
'loginCode.back': '使用密码登录',
'register.title': '创建 GitDataAI 账户',
'register.step': '第 1 步,共 2 步',
'register.description': '创建统一账户,登录接入的应用与服务。',
'register.form': '创建账户',
'register.email.helper': '验证码将发送至该邮箱。',
'register.username.placeholder': '设置唯一用户名',
'register.username.helper': '1–64 位字母、数字、下划线、点或短横线。',
'register.password.placeholder': '设置登录密码',
'register.password.reuse': '已设置,可输入新密码替换',
'register.password.helper': '至少 8 个字符,建议包含字母和数字。',
'register.submit': '发送验证码',
'register.submitContinue': '继续验证邮箱',
'register.prompt': '已有账户?',
'register.action': '登录',
'register.agreementError': '请阅读并同意服务条款与隐私政策。',
'registerVerify.title': '验证你的邮箱',
'registerVerify.step': '第 2 步,共 2 步',
'registerVerify.description': '输入发送至以下邮箱的 6 位验证码。',
'registerVerify.changeEmail': '修改邮箱',
'registerVerify.back': '返回注册',
'registerVerify.submit': '验证并创建账户',
'registerVerify.backToForm': '返回修改注册信息',
'registerVerify.expired': '验证码已过期,请重新发送。',
'registerVerify.notice': '验证码已重新发送,请使用最新验证码。',
'registerVerify.codeError': '请输入完整的 6 位验证码。',
'registerVerify.guardTitle': '继续创建账户',
'registerVerify.guardDescription': '请先填写注册资料并获取邮箱验证码。',
'registerVerify.guardAction': '填写注册资料',
'forgot.title': '忘记密码?',
'forgot.description': '输入注册邮箱,我们会发送密码重置链接。',
'forgot.submit': '发送重置链接',
'resetSent.title': '请查收邮件',
'resetSent.description': '如果该邮箱已注册,你会收到一封\n包含密码重置链接的邮件。',
'resetSent.hint': '请查看收件箱与垃圾邮件,并按邮件指引操作。',
'resetSent.resend': '重新发送邮件',
'resetSent.wrongEmail': '邮箱填错了?',
'resetSent.changeEmail': '更换邮箱',
'resetSent.notice': '已提交重发请求。邮箱已注册时会收到邮件,请按邮件指引操作。',
'resetSent.guardTitle': '重新获取重置邮件',
'resetSent.guardDescription': '请先输入注册邮箱,获取密码重置链接。',
'resetSent.guardAction': '输入邮箱地址',
'resetPassword.title': '设置新密码',
'resetPassword.description': '请设置一个安全且易于记忆的新密码。',
'resetPassword.newLabel': '新密码',
'resetPassword.newPlaceholder': '输入新密码',
'resetPassword.confirmLabel': '确认新密码',
'resetPassword.confirmPlaceholder': '再次输入新密码',
'resetPassword.helper': '至少 8 个字符,建议包含字母和数字。',
'resetPassword.submit': '重置密码',
'resetPassword.mismatch': '两次输入的密码需要一致。',
'resetPassword.invalidTitle': '重置链接无效',
'resetPassword.invalidDescription': '请通过邮件中的完整链接设置新密码。',
'resetPassword.missingAlert': '重置令牌缺失,请重新申请密码重置邮件。',
'resetPassword.invalidAction': '重新获取重置链接',
'resetComplete.title': '密码已重置',
'resetComplete.description': '你已成功更新密码。\n请使用新密码重新登录 GitDataAI。',
'resetComplete.hint': '为保障账户安全,其他设备上的登录状态将失效。',
'resetComplete.guardTitle': '返回 GitDataAI',
'resetComplete.guardDescription': '请使用你的账户密码登录。',
'resetComplete.guardAction': '返回登录',
'mfa.title': '验证你的身份',
'mfa.descriptionTotp': '输入身份验证器中当前显示的 6 位动态验证码。',
'mfa.descriptionRecovery': '输入一组尚未使用的账户恢复码。',
'mfa.totpLabel': '身份验证器验证码',
'mfa.totpHelper': '请使用当前验证码,使用过的验证码将自动失效。',
'mfa.recoveryLabel': '恢复码',
'mfa.recoveryPlaceholder': '输入一次性恢复码',
'mfa.recoveryHelper': '每组恢复码仅可使用一次。',
'mfa.submit': '验证并登录',
'mfa.useRecovery': '使用恢复码',
'mfa.useTotp': '使用身份验证器',
'mfa.codeError': '请输入完整的 6 位动态验证码。',
'mfa.recoveryError': '请输入账户恢复码。',
'mfa.back': '返回并重新登录',
'mfa.guardTitle': '请重新开始验证',
'mfa.guardDescription': '此页面需要前一步的验证信息,请重新开始。',
'mfa.missingChallenge': '二次验证信息缺失,请重新登录。',
'account.titleDone': '登录成功',
'account.descriptionDone': '你已安全登录 GitDataAI。',
'account.unavailable': '暂时无法读取账户信息。',
'scope.user_name': '读取你的用户名',
'scope.profile': '读取你的个人资料',
'scope.email': '读取你的邮箱地址',
'scope.avatar': '读取你的头像',
'scope.theme': '读取你的界面主题偏好',
'scope.assets': '读取你上传的资源',
'scope.ssh_key': '读取你的 SSH 公钥',
'scope.access_key': '读取你的访问密钥',
'scope.guild': '读取你加入的群组',
'scope.event': '读取你的活动记录',
'scope.repo_read': '读取你的代码仓库',
'scope.repo_write': '写入你的代码仓库',
'notFound.title': '页面暂不可用',
'notFound.description': '通过登录入口继续访问 GitDataAI。',
} as const
export type MessageKey = keyof typeof zhCN
export const en: Record<MessageKey, string> = {
'app.title': 'Authentication',
'app.description': 'Sign in to GitDataAI and reach every connected app and service with one account.',
'common.backToLogin': 'Back to sign in',
'common.close': 'Close',
'common.resend': 'Resend',
'common.retry': 'Try again',
'common.sending': 'Sending…',
'error.invalid_credentials': 'The email, username or password is incorrect. Check it and try again.',
'error.invalid_email': 'Enter a valid email address.',
'error.invalid_username': 'Usernames accept 1–64 letters, digits, underscores, dots and hyphens.',
'error.username_taken': 'That username is taken. Pick another one.',
'error.email_taken': 'That email already has an account. Sign in instead.',
'error.invalid_displayname': 'Display names are limited to 64 characters.',
'error.invalid_birth_date': 'Enter a valid date of birth.',
'error.under_minimum_age': 'You must be at least 13 years old to create an account.',
'error.invalid_password': 'Check that the password meets the requirements.',
'error.invalid_email_code': 'The code is wrong or has expired. Check it or send a new one.',
'error.email_code_attempts_exceeded': 'Too many code attempts. Send a new code.',
'error.invalid_reset_token': 'The reset link has expired or was already used. Request a new one.',
'error.expired': 'The security check expired. Try again.',
'error.invalid_proof': 'The security check failed. Try again.',
'error.invalid_payload': 'The security check data changed. Try again.',
'error.malformed_request': 'The request was malformed. Check it and try again.',
'error.unauthenticated': 'Your session has expired. Sign in again.',
'error.login_forbidden': 'Sign-in is restricted for this account. Contact an administrator.',
'error.mfa_required': 'Sign in again and complete two-factor verification.',
'error.totp_code_invalid': 'The authenticator code is wrong. Enter the current one.',
'error.totp_step_reused': 'That authenticator code was already used. Wait for the next one.',
'error.recovery_code_invalid': 'The recovery code is wrong or was already used.',
'error.recovery_codes_exhausted': 'No recovery codes left. Use your authenticator app.',
'error.rate_limited': 'Too many attempts. Try again later.',
'error.email': 'Email delivery is temporarily blocked. Send again later.',
'error.timeout': 'The connection timed out. Try again later.',
'error.connection': 'Cannot reach the auth service. Check your network and try again.',
'error.server': 'The auth service is temporarily unavailable. Try again later.',
'error.unexpected': 'The request could not be completed. Try again.',
'validation.email.invalid': 'Enter a valid email address.',
'validation.password.short': 'Passwords need at least 8 characters.',
'validation.password.weak': 'Passwords need upper case, lower case and a digit.',
'validation.username.invalid': 'Use 1–64 letters, digits, underscores, dots or hyphens.',
'validation.birth.incomplete': 'Select your full date of birth.',
'validation.birth.invalid': 'Enter a valid date of birth.',
'validation.birth.underage': 'You must be at least 13 years old to create an account.',
'pow.invalid': 'The security check parameters are invalid. Try again.',
'pow.timeout': 'The security check timed out. Try again.',
'pow.failed': 'The security check could not be completed. Try again.',
'pow.unavailable': 'The security check is unavailable. Try again.',
'field.email.label': 'Email address',
'field.password.label': 'Password',
'field.password.placeholder': 'Enter your password',
'field.username.label': 'Username',
'ui.field.reveal': 'Show {label}',
'ui.field.conceal': 'Hide {label}',
'ui.otp.label': 'Email code',
'ui.otp.helper': 'Paste the full code, or use autofill.',
'ui.birth.legend': 'Date of birth',
'ui.birth.helper': 'Used to confirm your age.',
'ui.birth.aria.year': 'Year of birth',
'ui.birth.aria.month': 'Month of birth',
'ui.birth.aria.day': 'Day of birth',
'ui.birth.placeholder.year': 'Year',
'ui.birth.placeholder.month': 'Month',
'ui.birth.placeholder.day': 'Day',
'ui.birth.unit.month': '',
'ui.birth.unit.day': '',
'ui.agreement.title': 'Agree to the terms of service and privacy policy',
'ui.agreement.aria': 'I have read and agree to the terms of service and privacy policy',
'ui.agreement.label': 'I have read and agree to the',
'ui.agreement.and': 'and',
'ui.legal.terms': 'Terms of Service',
'ui.legal.privacy': 'Privacy Policy',
'ui.legal.missing':
'The {title} link has not been configured by an administrator yet. Review the official document, then agree and create your account.',
'account.checking': 'Checking your sign-in status…',
'ui.retry': 'Try again in {seconds}s',
'ui.resend.prompt': "Didn't get it?",
'ui.resend.wait': 'Resend in {seconds}s',
'theme.toLight': 'Switch to the light theme',
'theme.toDark': 'Switch to the dark theme',
'theme.system': 'Following the system theme, click to switch',
'theme.currentLight': 'Light theme',
'theme.currentDark': 'Dark theme',
'shell.home': 'GitDataAI home',
'login.title': 'Sign in to GitDataAI',
'login.description': 'Sign in to continue to your apps and services',
'login.form': 'Password sign in',
'login.identity.label': 'Email or username',
'login.identity.error': 'Enter your email, username or user ID.',
'login.password.error': 'Enter your password.',
'login.codeLink': 'Sign in with an email code',
'login.forgotLink': 'Forgot password?',
'login.submit': 'Sign in',
'login.busy': 'Signing in…',
'login.prompt': 'No account yet?',
'login.action': 'Create account',
'loginCode.title': 'Sign in with an email code',
'loginCode.titleSent': 'Enter your email code',
'loginCode.description': 'Receive a code at your email address and sign in securely.',
'loginCode.descriptionSent': 'Enter the 6-digit code sent to the address below.',
'loginCode.form': 'Email code sign in',
'loginCode.send': 'Send code',
'loginCode.changeEmail': 'Change email',
'loginCode.expired': 'The code expired. Send a new one.',
'loginCode.submit': 'Verify and sign in',
'loginCode.notice': 'Code sent. Check your inbox and spam folder.',
'loginCode.codeError': 'Enter the full 6-digit code.',
'loginCode.back': 'Sign in with a password',
'register.title': 'Create your GitDataAI account',
'register.step': 'Step 1 of 2',
'register.description': 'Create one account for every connected app and service.',
'register.form': 'Create account',
'register.email.helper': 'We send the code to this address.',
'register.username.placeholder': 'Pick a unique username',
'register.username.helper': '1–64 letters, digits, underscores, dots or hyphens.',
'register.password.placeholder': 'Create a password',
'register.password.reuse': 'Already set — enter a new password to replace it',
'register.password.helper': 'At least 8 characters; letters and digits recommended.',
'register.submit': 'Send code',
'register.submitContinue': 'Continue to verify email',
'register.prompt': 'Already have an account?',
'register.action': 'Sign in',
'register.agreementError': 'Read and agree to the terms of service and privacy policy.',
'registerVerify.title': 'Verify your email',
'registerVerify.step': 'Step 2 of 2',
'registerVerify.description': 'Enter the 6-digit code sent to the address below.',
'registerVerify.changeEmail': 'Change email',
'registerVerify.back': 'Back to registration',
'registerVerify.submit': 'Verify and create account',
'registerVerify.backToForm': 'Back to edit your details',
'registerVerify.expired': 'The code expired. Send a new one.',
'registerVerify.notice': 'Code resent. Use the latest one.',
'registerVerify.codeError': 'Enter the full 6-digit code.',
'registerVerify.guardTitle': 'Continue creating your account',
'registerVerify.guardDescription': 'Fill in your details and request an email code first.',
'registerVerify.guardAction': 'Fill in your details',
'forgot.title': 'Forgot password?',
'forgot.description': 'Enter your email and we send a password reset link.',
'forgot.submit': 'Send reset link',
'resetSent.title': 'Check your email',
'resetSent.description': 'If that email has an account, a message with a password reset link is on its way.',
'resetSent.hint': 'Check your inbox and spam folder, then follow the link in the email.',
'resetSent.resend': 'Resend email',
'resetSent.wrongEmail': 'Wrong email?',
'resetSent.changeEmail': 'Use another email',
'resetSent.notice': 'Resend requested. If the email has an account, follow the link you receive.',
'resetSent.guardTitle': 'Request a new reset email',
'resetSent.guardDescription': 'Enter your email to get a password reset link.',
'resetSent.guardAction': 'Enter your email',
'resetPassword.title': 'Set a new password',
'resetPassword.description': 'Choose a new password that is secure and easy to remember.',
'resetPassword.newLabel': 'New password',
'resetPassword.newPlaceholder': 'Enter a new password',
'resetPassword.confirmLabel': 'Confirm new password',
'resetPassword.confirmPlaceholder': 'Enter the new password again',
'resetPassword.helper': 'At least 8 characters; letters and digits recommended.',
'resetPassword.submit': 'Reset password',
'resetPassword.mismatch': 'Both passwords must match.',
'resetPassword.invalidTitle': 'Invalid reset link',
'resetPassword.invalidDescription': 'Open the full link from your email to set a new password.',
'resetPassword.missingAlert': 'The reset token is missing. Request a new password reset email.',
'resetPassword.invalidAction': 'Request a new reset link',
'resetComplete.title': 'Password reset',
'resetComplete.description': 'Your password was updated. Sign in to GitDataAI with the new password.',
'resetComplete.hint': 'For your security, sessions on other devices were revoked.',
'resetComplete.guardTitle': 'Back to GitDataAI',
'resetComplete.guardDescription': 'Sign in with your account password.',
'resetComplete.guardAction': 'Back to sign in',
'mfa.title': 'Verify your identity',
'mfa.descriptionTotp': 'Enter the 6-digit code shown in your authenticator app.',
'mfa.descriptionRecovery': 'Enter an unused account recovery code.',
'mfa.totpLabel': 'Authenticator code',
'mfa.totpHelper': 'Use the current code; used codes stop working right away.',
'mfa.recoveryLabel': 'Recovery code',
'mfa.recoveryPlaceholder': 'Enter a one-time recovery code',
'mfa.recoveryHelper': 'Each recovery code works once.',
'mfa.submit': 'Verify and sign in',
'mfa.useRecovery': 'Use a recovery code',
'mfa.useTotp': 'Use the authenticator',
'mfa.codeError': 'Enter the full 6-digit code.',
'mfa.recoveryError': 'Enter your account recovery code.',
'mfa.back': 'Back and sign in again',
'mfa.guardTitle': 'Restart verification',
'mfa.guardDescription': 'This step needs the challenge from the previous step. Start over.',
'mfa.missingChallenge': 'The two-factor challenge is missing. Sign in again.',
'account.titleDone': 'Signed in',
'account.descriptionDone': 'You are signed in to GitDataAI.',
'account.unavailable': 'Your account details are unavailable right now.',
'scope.user_name': 'Read your username',
'scope.profile': 'Read your profile',
'scope.email': 'Read your email address',
'scope.avatar': 'Read your avatar',
'scope.theme': 'Read your theme preference',
'scope.assets': 'Read your uploaded assets',
'scope.ssh_key': 'Read your SSH keys',
'scope.access_key': 'Read your access keys',
'scope.guild': 'Read your groups',
'scope.event': 'Read your activity',
'scope.repo_read': 'Read your repositories',
'scope.repo_write': 'Write to your repositories',
'notFound.title': 'Page unavailable',
'notFound.description': 'Continue to GitDataAI from the sign-in page.',
}
export const messages: Record<Locale, Record<MessageKey, string>> = {
'zh-CN': zhCN,
en,
}