298 lines
11 KiB
TypeScript
298 lines
11 KiB
TypeScript
|
|
import demoZh from "./demo-zh"
|
|||
|
|
import { Translations } from "./en"
|
|||
|
|
|
|||
|
|
const zh: Translations = {
|
|||
|
|
common: {
|
|||
|
|
ok: "确定",
|
|||
|
|
cancel: "取消",
|
|||
|
|
save: "保存",
|
|||
|
|
back: "返回",
|
|||
|
|
logOut: "退出登录",
|
|||
|
|
copied: "已复制",
|
|||
|
|
},
|
|||
|
|
welcomeScreen: {
|
|||
|
|
postscript:
|
|||
|
|
"提示 — 这可能不是您的应用最终的样子。(除非您的设计师就是这样设计的,那就直接发布吧!)",
|
|||
|
|
readyForLaunch: "您的应用即将准备好发布!",
|
|||
|
|
exciting: "(哦,这太令人兴奋了!)",
|
|||
|
|
letsGo: "开始吧!",
|
|||
|
|
},
|
|||
|
|
errorScreen: {
|
|||
|
|
title: "出错了!",
|
|||
|
|
friendlySubtitle:
|
|||
|
|
"这是用户在生产环境中遇到错误时会看到的页面。您可以自定义此消息(位于 `app/i18n/zh.ts`)以及布局(`app/screens/ErrorScreen`)。如果您想完全删除此页面,请检查 `app/app.tsx` 中的 <ErrorBoundary> 组件。",
|
|||
|
|
reset: "重置应用",
|
|||
|
|
traceTitle: "来自 %{name} 堆栈的错误",
|
|||
|
|
},
|
|||
|
|
emptyStateComponent: {
|
|||
|
|
generic: {
|
|||
|
|
heading: "空空如也...好伤心",
|
|||
|
|
content: "暂无数据。请尝试点击按钮刷新或重新加载应用。",
|
|||
|
|
button: "再试一次",
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
errors: {
|
|||
|
|
invalidEmail: "无效的邮箱地址。",
|
|||
|
|
},
|
|||
|
|
authErrors: {
|
|||
|
|
// 网络错误
|
|||
|
|
timeout: "请求超时,请重试。",
|
|||
|
|
cannotConnect: "无法连接服务器,请检查网络。",
|
|||
|
|
serverError: "服务器错误,请稍后重试。",
|
|||
|
|
badData: "服务器响应无效。",
|
|||
|
|
unknownError: "发生未知错误。",
|
|||
|
|
// 注册错误 (E001-E010)
|
|||
|
|
E001: "用户名已存在。",
|
|||
|
|
E002: "邮箱已被注册。",
|
|||
|
|
E003: "推荐码无效。",
|
|||
|
|
E004: "没有待验证的注册请求。",
|
|||
|
|
E005: "验证码错误。",
|
|||
|
|
E006: "已绑定过邀请码。",
|
|||
|
|
E007: "不能绑定自己的邀请码。",
|
|||
|
|
// 登录错误 (E011-E020)
|
|||
|
|
E011: "邮箱或密码错误。",
|
|||
|
|
E012: "账户已被临时锁定,请稍后重试。",
|
|||
|
|
E013: "没有待验证的登录请求。",
|
|||
|
|
E014: "用户不存在或已被禁用。",
|
|||
|
|
E015: "验证码错误。",
|
|||
|
|
E016: "Telegram 认证数据无效。",
|
|||
|
|
E017: "Telegram 数据格式错误。",
|
|||
|
|
E018: "Google 认证失败。",
|
|||
|
|
E019: "请提供 Google Token。",
|
|||
|
|
// 密码错误 (E021-E030)
|
|||
|
|
E021: "当前密码错误。",
|
|||
|
|
E022: "新密码不能与当前密码相同。",
|
|||
|
|
E023: "该邮箱未注册。",
|
|||
|
|
E024: "账号已被禁用。",
|
|||
|
|
E025: "没有待处理的找回密码请求。",
|
|||
|
|
E026: "找回密码验证码已过期。",
|
|||
|
|
E027: "找回密码验证码错误。",
|
|||
|
|
E028: "用户不存在。",
|
|||
|
|
E029: "没有提供要修改的字段。",
|
|||
|
|
// 邮箱验证错误 (E041-E055)
|
|||
|
|
E041: "发送验证码过于频繁,请稍后重试。",
|
|||
|
|
E042: "邮箱验证码已过期。",
|
|||
|
|
E043: "邮箱验证码错误。",
|
|||
|
|
E044: "邮箱已验证。",
|
|||
|
|
E045: "邮箱已被其他用户使用。",
|
|||
|
|
E046: "没有已验证的邮箱。",
|
|||
|
|
E047: "请先发送当前邮箱验证码。",
|
|||
|
|
E048: "需要先验证当前邮箱。",
|
|||
|
|
E049: "请先发送新邮箱验证码。",
|
|||
|
|
E050: "无效的 action 参数。",
|
|||
|
|
},
|
|||
|
|
loginScreen: {
|
|||
|
|
logIn: "登录",
|
|||
|
|
enterDetails: "请输入您的账号信息以继续。",
|
|||
|
|
emailFieldLabel: "邮箱",
|
|||
|
|
passwordFieldLabel: "密码",
|
|||
|
|
emailFieldPlaceholder: "请输入邮箱地址",
|
|||
|
|
passwordFieldPlaceholder: "请输入密码",
|
|||
|
|
tapToLogIn: "点击登录",
|
|||
|
|
hint: "提示:您可以使用任何邮箱地址和密码 :)",
|
|||
|
|
},
|
|||
|
|
navigator: {
|
|||
|
|
componentsTab: "组件",
|
|||
|
|
debugTab: "调试",
|
|||
|
|
communityTab: "社区",
|
|||
|
|
podcastListTab: "播客",
|
|||
|
|
profileTab: "我的",
|
|||
|
|
},
|
|||
|
|
profileScreen: {
|
|||
|
|
title: "个人中心",
|
|||
|
|
guest: "游客",
|
|||
|
|
uid: "UID",
|
|||
|
|
username: "用户名",
|
|||
|
|
referralCode: "邀请码",
|
|||
|
|
settings: "设置",
|
|||
|
|
darkMode: "深色模式",
|
|||
|
|
notifications: "通知",
|
|||
|
|
security: "安全",
|
|||
|
|
account: "账户",
|
|||
|
|
accountStatus: "账户状态",
|
|||
|
|
active: "正常",
|
|||
|
|
inactive: "未激活",
|
|||
|
|
regular: "普通用户",
|
|||
|
|
emailVerified: "邮箱验证",
|
|||
|
|
verified: "已验证",
|
|||
|
|
unverified: "未验证",
|
|||
|
|
loginMethods: "登录方式",
|
|||
|
|
version: "版本",
|
|||
|
|
changePassword: "修改密码",
|
|||
|
|
changeEmail: "更换邮箱",
|
|||
|
|
editNickname: "修改昵称",
|
|||
|
|
editProfile: "编辑资料",
|
|||
|
|
nicknamePlaceholder: "请输入昵称",
|
|||
|
|
nickname: "昵称",
|
|||
|
|
tapToChangeAvatar: "点击更换头像",
|
|||
|
|
about: "关于",
|
|||
|
|
},
|
|||
|
|
changePasswordScreen: {
|
|||
|
|
title: "修改密码",
|
|||
|
|
description: "请输入当前密码并设置新密码。",
|
|||
|
|
oldPassword: "当前密码",
|
|||
|
|
newPassword: "新密码",
|
|||
|
|
confirmPassword: "确认新密码",
|
|||
|
|
logoutOtherDevices: "退出其他设备登录",
|
|||
|
|
submit: "修改密码",
|
|||
|
|
success: "成功",
|
|||
|
|
successMessage: "密码修改成功。",
|
|||
|
|
oldPasswordRequired: "请输入当前密码。",
|
|||
|
|
newPasswordRequired: "请输入新密码。",
|
|||
|
|
passwordTooShort: "密码至少需要6个字符。",
|
|||
|
|
passwordMismatch: "两次输入的密码不一致。",
|
|||
|
|
samePassword: "新密码不能与当前密码相同。",
|
|||
|
|
},
|
|||
|
|
changeEmailScreen: {
|
|||
|
|
title: "更换邮箱",
|
|||
|
|
step1Label: "验证邮箱",
|
|||
|
|
step2Label: "绑定新邮箱",
|
|||
|
|
step1Title: "第一步:验证当前邮箱",
|
|||
|
|
step1Description: "我们将向您的当前邮箱发送验证码。",
|
|||
|
|
step2Title: "第二步:绑定新邮箱",
|
|||
|
|
step2Description: "输入您的新邮箱地址并进行验证。",
|
|||
|
|
currentEmail: "当前邮箱",
|
|||
|
|
newEmail: "新邮箱地址",
|
|||
|
|
verificationCode: "验证码",
|
|||
|
|
sendCode: "发送验证码",
|
|||
|
|
sendCodeToNewEmail: "发送验证码到新邮箱",
|
|||
|
|
verify: "验证",
|
|||
|
|
confirmNewEmail: "确认新邮箱",
|
|||
|
|
resendCode: "重新发送验证码",
|
|||
|
|
success: "成功",
|
|||
|
|
successMessage: "邮箱更换成功。",
|
|||
|
|
codeRequired: "请输入验证码。",
|
|||
|
|
codeInvalid: "验证码必须是6位数字。",
|
|||
|
|
newEmailRequired: "请输入新邮箱地址。",
|
|||
|
|
emailInvalid: "请输入有效的邮箱地址。",
|
|||
|
|
sameEmail: "新邮箱不能与当前邮箱相同。",
|
|||
|
|
},
|
|||
|
|
settingsScreen: {
|
|||
|
|
title: "设置",
|
|||
|
|
appearance: "外观",
|
|||
|
|
theme: "主题",
|
|||
|
|
darkMode: "深色模式",
|
|||
|
|
language: "语言",
|
|||
|
|
currentLanguage: "语言",
|
|||
|
|
},
|
|||
|
|
languageScreen: {
|
|||
|
|
title: "语言",
|
|||
|
|
selectHint: "选择您的首选语言",
|
|||
|
|
},
|
|||
|
|
themeScreen: {
|
|||
|
|
title: "主题",
|
|||
|
|
selectHint: "选择您的首选主题",
|
|||
|
|
system: "跟随系统",
|
|||
|
|
light: "浅色",
|
|||
|
|
dark: "深色",
|
|||
|
|
},
|
|||
|
|
securityScreen: {
|
|||
|
|
title: "安全",
|
|||
|
|
description: "管理您的账户安全设置。",
|
|||
|
|
changePassword: "修改密码",
|
|||
|
|
changeEmail: "更换邮箱",
|
|||
|
|
// Session management
|
|||
|
|
activeSessions: "活跃会话",
|
|||
|
|
activeSessionsDescription: "当前登录您账户的设备",
|
|||
|
|
currentDevice: "当前设备",
|
|||
|
|
lastActive: "最后活跃",
|
|||
|
|
loginMethod: "登录方式",
|
|||
|
|
logoutDevice: "退出",
|
|||
|
|
logoutAllOther: "退出所有其他设备",
|
|||
|
|
logoutAllOtherDescription: "这将退出除当前设备外的所有设备。",
|
|||
|
|
noOtherSessions: "没有其他活跃会话",
|
|||
|
|
sessionRevoked: "设备已退出登录",
|
|||
|
|
sessionsRevoked: "已退出 {{count}} 个设备",
|
|||
|
|
confirmLogout: "确认退出",
|
|||
|
|
confirmLogoutMessage: "确定要退出此设备吗?",
|
|||
|
|
confirmLogoutAllMessage: "确定要退出所有其他设备吗?",
|
|||
|
|
deviceTypes: {
|
|||
|
|
desktop: "桌面端",
|
|||
|
|
mobile: "移动端",
|
|||
|
|
tablet: "平板",
|
|||
|
|
unknown: "未知设备",
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
aboutScreen: {
|
|||
|
|
title: "关于",
|
|||
|
|
appInfo: "应用信息",
|
|||
|
|
appName: "应用名称",
|
|||
|
|
version: "版本号",
|
|||
|
|
buildVersion: "构建版本",
|
|||
|
|
appId: "应用 ID",
|
|||
|
|
appVersion: "应用版本",
|
|||
|
|
legal: "法律条款",
|
|||
|
|
privacyPolicy: "隐私政策",
|
|||
|
|
termsOfService: "服务条款",
|
|||
|
|
},
|
|||
|
|
communityScreen: {
|
|||
|
|
title: "加入社区",
|
|||
|
|
tagLine: "加入 Infinite Red 的 React Native 工程师社区,与我们一起提升您的应用开发技能!",
|
|||
|
|
joinUsOnSlackTitle: "加入 Slack",
|
|||
|
|
joinUsOnSlack:
|
|||
|
|
"想要与世界各地的 React Native 工程师交流吗?加入 Infinite Red 社区 Slack!我们不断壮大的社区是一个安全的空间,您可以在这里提问、向他人学习并扩展您的人脉网络。",
|
|||
|
|
joinSlackLink: "加入 Slack 社区",
|
|||
|
|
makeIgniteEvenBetterTitle: "让 Ignite 更好",
|
|||
|
|
makeIgniteEvenBetter:
|
|||
|
|
"有让 Ignite 变得更好的想法吗?我们很高兴听到!我们一直在寻找想要帮助我们构建最好的 React Native 工具的人。加入我们的 GitHub,与我们一起构建 Ignite 的未来。",
|
|||
|
|
contributeToIgniteLink: "为 Ignite 做贡献",
|
|||
|
|
theLatestInReactNativeTitle: "React Native 最新动态",
|
|||
|
|
theLatestInReactNative: "我们在这里为您提供 React Native 的所有最新动态。",
|
|||
|
|
reactNativeRadioLink: "React Native Radio",
|
|||
|
|
reactNativeNewsletterLink: "React Native Newsletter",
|
|||
|
|
reactNativeLiveLink: "React Native Live",
|
|||
|
|
chainReactConferenceLink: "Chain React 大会",
|
|||
|
|
hireUsTitle: "为您的下一个项目聘请 Infinite Red",
|
|||
|
|
hireUs:
|
|||
|
|
"无论是完整运行一个项目还是通过我们的实践培训帮助团队加速,Infinite Red 几乎可以帮助任何 React Native 项目。",
|
|||
|
|
hireUsLink: "发送消息",
|
|||
|
|
},
|
|||
|
|
showroomScreen: {
|
|||
|
|
jumpStart: "快速启动您的项目的组件!",
|
|||
|
|
lorem2Sentences: "这是一段示例文本,用于展示组件的效果。这是第二句话。",
|
|||
|
|
demoHeaderTxExample: "好耶",
|
|||
|
|
demoViaTxProp: "通过 `tx` 属性",
|
|||
|
|
demoViaSpecifiedTxProp: "通过 `{{prop}}Tx` 属性",
|
|||
|
|
},
|
|||
|
|
demoDebugScreen: {
|
|||
|
|
howTo: "使用方法",
|
|||
|
|
title: "调试",
|
|||
|
|
tagLine: "恭喜,您拥有了一个非常先进的 React Native 应用模板。好好利用它吧!",
|
|||
|
|
reactotron: "发送到 Reactotron",
|
|||
|
|
reportBugs: "报告 Bug",
|
|||
|
|
demoList: "演示列表",
|
|||
|
|
demoPodcastList: "播客列表演示",
|
|||
|
|
androidReactotronHint:
|
|||
|
|
"如果无法正常工作,请确保 Reactotron 桌面应用正在运行,从终端运行 adb reverse tcp:9090 tcp:9090,然后重新加载应用。",
|
|||
|
|
iosReactotronHint: "如果无法正常工作,请确保 Reactotron 桌面应用正在运行,然后重新加载应用。",
|
|||
|
|
macosReactotronHint: "如果无法正常工作,请确保 Reactotron 桌面应用正在运行,然后重新加载应用。",
|
|||
|
|
webReactotronHint: "如果无法正常工作,请确保 Reactotron 桌面应用正在运行,然后重新加载应用。",
|
|||
|
|
windowsReactotronHint:
|
|||
|
|
"如果无法正常工作,请确保 Reactotron 桌面应用正在运行,然后重新加载应用。",
|
|||
|
|
},
|
|||
|
|
demoPodcastListScreen: {
|
|||
|
|
title: "React Native Radio 节目",
|
|||
|
|
onlyFavorites: "只显示收藏",
|
|||
|
|
favoriteButton: "收藏",
|
|||
|
|
unfavoriteButton: "取消收藏",
|
|||
|
|
accessibility: {
|
|||
|
|
cardHint: "双击收听节目。双击并长按可{{action}}此节目。",
|
|||
|
|
switch: "打开开关只显示收藏",
|
|||
|
|
favoriteAction: "切换收藏状态",
|
|||
|
|
favoriteIcon: "节目未收藏",
|
|||
|
|
unfavoriteIcon: "节目已收藏",
|
|||
|
|
publishLabel: "发布于 {{date}}",
|
|||
|
|
durationLabel: "时长:{{hours}}小时{{minutes}}分钟{{seconds}}秒",
|
|||
|
|
},
|
|||
|
|
noFavoritesEmptyState: {
|
|||
|
|
heading: "这里看起来有点空",
|
|||
|
|
content: "还没有收藏。点击节目上的心形图标将其添加到收藏!",
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
...demoZh,
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
export default zh
|