window.BindVaultLocales = { zh: { app: { subtitle: "个人数字资产台账", workspace: "MVP workspace" }, groups: { overview: "总览", assets: "基础资产", relations: "关系管理", risk: "风险" }, labels: { dashboard: "Dashboard", phones: "手机号", emails: "邮箱", domains: "域名", accounts: "账号", bindings: "绑定关系", incidents: "风险事件", available: "可用", inactive: "停用", cannot_receive_sms: "不可收码", released: "已释放", high_risk: "高风险", unknown: "未知", cannot_receive: "不可收信", active: "活跃", expired: "已过期", transferring: "转移中", normal: "正常", pending_verify: "待验证", locked: "已锁定", suspended: "已冻结", appealing: "申诉中", recovered: "已恢复", deleted: "已注销", unusable: "不可用", open: "待处理", processing: "处理中", resolved: "已解决", abandoned: "放弃", low: "低", medium: "中", high: "高", critical: "严重", phone: "手机号", email: "邮箱", domain: "域名", account: "账号", login: "登录", recovery: "恢复", trusted_phone: "受信任手机号", two_factor: "二次验证", notification: "通知", payment: "支付", owner: "实名/所有者", alias: "别名", removed: "已解绑", risky: "有风险", }, schemas: { phones: { title: "手机号", fields: { country_code: "手机号", phone_local_number: "本地号码", country_region: "国家/地区", carrier: "运营商", owner: "实名人", sim_type: "SIM 类型", status: "状态", purpose: "用途", is_primary: "主力号码", can_receive_sms: "可收短信", can_receive_call: "可接电话", last_verified_at: "最近验证", expires_at: "到期时间", tags: "标签", notes: "备注" } }, emails: { title: "邮箱", fields: { email: "邮箱地址", email_type: "邮箱类型", provider: "服务商", domain: "所属域名", forward_to: "转发目标", status: "状态", can_receive_email: "可收信", can_send_email: "可发信", purpose: "用途", is_primary: "主邮箱", last_verified_at: "最近验证", tags: "标签", notes: "备注" } }, domains: { title: "域名", fields: { domain: "域名", registrar: "注册商", dns_provider: "DNS 服务商", status: "状态", expires_at: "到期时间", auto_renew: "自动续费", email_routing_enabled: "邮件路由", tags: "标签", notes: "备注" } }, accounts: { title: "账号", fields: { platform: "平台", platform_logo: "平台 Logo", account_identifier: "登录标识", display_name: "展示名", region: "注册地区", status: "状态", login_email_id: "登录邮箱", login_phone_id: "登录手机号", recovery_email_id: "恢复邮箱", recovery_phone_id: "恢复手机号", two_factor_type: "2FA 类型", credential_ref: "凭据引用", recovery_ref: "恢复引用", registered_at: "注册时间", last_login_at: "最近登录", last_verified_at: "最近验证", tags: "标签", risk_notes: "风险提示", notes: "备注" } }, bindings: { title: "绑定关系", fields: { asset_type: "资产类型", asset_id: "资产", account_id: "账号", binding_role: "绑定角色", status: "状态", bound_at: "绑定时间", unbound_at: "解绑时间", can_unbind: "可解绑", risk_level: "风险等级", tags: "标签", notes: "备注" } }, incidents: { title: "风险事件", fields: { account_id: "关联账号", platform: "平台", incident_type: "事件类型", severity: "严重等级", status: "状态", occurred_at: "发生时间", resolved_at: "解决时间", description: "描述", action_taken: "已采取动作", next_action: "下一步动作", evidence_ref: "证据引用", tags: "标签", notes: "备注" } }, }, ui: { searchGlobal: "搜索资源、账号或关系...", refresh: "刷新", newBinding: "新建绑定", saved: "已保存", cancel: "取消", save: "保存", saving: "保存中...", addRecord: "新增{name}", editRecord: "编辑{name}", noSelection: "未选择", required: "必填", searchCurrent: "搜索当前列表", allStatus: "全部状态", noLocalLicense: "暂无本地激活信息", freeUnlocked: "Free 永久可用,受数量限制", proUnlocked: "已解锁完整功能", freePlan: "Free 套餐", proPlan: "Pro 套餐", notActivated: "未激活", activated: "已激活", profile: "个人中心", upgrade: "升级套餐", guide: "新手指引", signOut: "退出登录", license: "License", accountInfo: "账号信息", email: "邮箱", deviceId: "设备 ID", licenseStatus: "授权状态", licenseKey: "激活码", plan: "套餐", localData: "本地数据", totalAssets: "资产总数", totalAccounts: "账号总数", totalBindings: "绑定关系", close: "关闭", getCode: "获取激活码", haveCode: "已有激活码", sendCode: "发送激活码", sending: "发送中...", activate: "激活", verifying: "验证中...", enterCode: "请输入激活码", registerDesc: "免费版可长期使用:基础资产 {assets} 个、账号 {accounts} 个、绑定关系 {bindings} 条。升级 Pro 后开启完整功能。", limitReason: "免费版最多可创建 {limit} 个{name},当前已使用 {used}/{limit}。", limitUpgrade: "{reason}
升级 Pro 后可解除数量限制,开启完整功能。", relationshipMap: "Relationship Map", bindingTopology: "绑定拓扑图", bindingTopologyDesc: "清晰查看基础资产、账号与绑定角色之间的关系。", allRelations: "全部关系", showAll: "显示全部", focusedView: "当前为聚焦视图", activeCount: "活跃 {count}", inactiveCount: "非活跃 {count}", assetStats: "基础资产", accountStats: "账号总数", bindingStats: "绑定关系", highRiskBindings: "高风险绑定", assetStatsMeta: "手机号 {phones} · 邮箱 {emails} · 域名 {domains}", activeBindingsMeta: "活跃绑定 {count}", noHighRisk: "当前没有高风险", needsPriority: "需要优先处理", details: "Details", bindingDetails: "绑定明细", noActiveBindings: "暂无活跃绑定关系", graph: "Graph", coreBindingGraph: "核心绑定关系", baseResources: "基础资源", bindingRoleLegend: "绑定角色", riskLegend: "风险", bindingCount: "{count} 个绑定", resource: "资源", role: "角色", status: "状态", risk: "风险", boundAt: "绑定时间", actions: "操作", view: "详情", edit: "编辑", delete: "删除", yes: "是", no: "否", all: "全部", other: "其他", unknownName: "未知", paymentMethod: "支付方式", device: "设备", subscription: "订阅", boundResources: "绑定资源", accountState: "账号状态", region: "地区", attentionNeeded: "需关注", healthy: "正常", noActiveAccountBindings: "暂无活跃绑定。", selectBindingDetails: "选择一条绑定查看详情", noRiskTips: "暂无风险提示。", topology: "Topology", assetBindingTopology: "资产绑定拓扑", riskBinding: "风险绑定", platformAccounts: "平台账号", emptyRecord: "还没有{name}记录", emptyRecordDesc: "点击右上角新增,先把关键手机号、邮箱、账号和绑定关系录入起来,风险检测就能开始工作。", quickView: "Quick View", notes: "备注", relatedBindings: "关联绑定", noRelatedBindings: "暂无关联绑定。", eventTimeline: "事件时间线", manualTip: "手动提示", noModuleData: "暂无{name}数据", searchModule: "搜索{name}…", put: "把", as: "作为", possessive: "的", selectAsset: "选择资产", selectAccount: "选择账号", usageRole: "用途 / 绑定角色", selectUsage: "选择用途", moreOptions: "更多选项", canUnbind: "可解绑", optionalTags: "可选标签", logoHint: "可选。支持 https 图片地址、data:image... 或 assets/platforms/*.svg;不填则使用内置品牌或首字母。", uploadLogo: "上传图片", detailSuffix: "详情", closeDetail: "关闭详情", workspaceOverview: "Workspace Overview", assetAccountSecurity: "资产与账号安全", dashboardHeroDesc: "用更轻的方式看清当前台账状态、恢复链路和支付依赖。重点问题会直接浮到台前,不用再翻列表找。", recentEvent: "最近事件", allClear: "一切平稳", noOpenIncidents: "当前没有待处理事件", dashboardAssetsMeta: "手机号 {phones} · 邮箱 {emails} · 域名 {domains}", goMaintain: "前往维护", accountSecurity: "账号安全", accountSecurityMeta: "正常 {normal} · 异常 {locked} · 申诉中 {appealing}", viewAccounts: "查看账号", twoFactorEnabled: "2FA 已启用 {count}", recoveryPayment: "恢复与支付", recoveryPaymentMeta: "恢复链路 {recovery} · 支付关系 {payment}", viewBindings: "查看绑定", riskStatus: "风险状态", riskStatusMeta: "高风险 {highRisk} · 待处理事件 {openIncidents}", viewRisks: "查看风险", accountsPanel: "Accounts", platformStatus: "平台与状态", viewAll: "查看全部", platformDistribution: "平台分布", accountStatus: "账号状态", noAccountData: "暂无账号数据", monitoringPanel: "Monitoring", riskRecentChanges: "风险与最近变更", riskTips: "风险提示", noRisk: "暂无风险", noRiskDesc: "当手机号、邮箱、域名和恢复方式出现异常时,这里会优先提醒你。", recentChangedAccounts: "最近变更账号", noAccountsYet: "还没有账号记录。", }, tour: { progress: "步骤 {current} / {total}", skip: "退出引导", next: "下一步", waitingSave: "等待保存...", completed: "第一条资产链路引导完成", steps: [ { title: "第一步:先进入邮箱", body: "我们先录入一个邮箱,马上用它作为账号的登录邮箱,形成第一条资产关系。", cta: "打开邮箱页" }, { title: "新建邮箱", body: "点击新增邮箱,填写邮箱地址并保存。", cta: "新增邮箱" }, { title: "填写并保存邮箱", body: "填入邮箱地址,确认可收信状态,然后点击「保存」。保存成功后,我会带你去新建账号。" }, { title: "第二步:进入账号", body: "接下来新建一个账号,并把刚才的邮箱选为登录邮箱。", cta: "打开账号页" }, { title: "新建账号", body: "点击新增账号。我会帮你预填平台 BindVault,并默认选中刚才创建的邮箱。", cta: "新增账号" }, { title: "确认登录邮箱并保存账号", body: "平台可以填 BindVault,登录邮箱选择刚才创建的邮箱。保存账号后,系统会自动创建邮箱登录绑定。" }, { title: "完成:查看绑定拓扑", body: "账号保存后已经自动生成邮箱登录绑定。现在可以在拓扑图里看到邮箱和账号之间的关系。", cta: "完成" }, ], }, onboarding: { eyebrow: "Getting Started", title: "快速建立第一条账号链路", later: "稍后再说", start: "开始录入", steps: [ { title: "先填写邮箱", body: "先录入一个可收信邮箱,马上用它作为账号登录邮箱。", cta: "新增邮箱" }, { title: "新建账号并选择登录邮箱", body: "平台可以填 BindVault,登录邮箱选择刚才录入的邮箱。", cta: "新增账号" }, { title: "自动生成登录绑定", body: "保存账号后,系统会自动创建邮箱到账号的登录绑定关系。", cta: "继续账号" }, { title: "查看绑定拓扑", body: "进入绑定关系页,查看邮箱和账号之间的第一条资产链路。", cta: "查看拓扑" }, ], }, pricing: { eyebrow: "Upgrade", title: "选择适合你的套餐", subtitle: "从基础台账到全功能解锁,按需升级。", monthSuffix: "/ 月", recommended: "推荐", currentPlan: "当前套餐", upgradeToPro: "升级至 Pro", switchToFree: "切换至 Free", includesAll: "包含 Free 所有功能,并解锁:", free: { desc: "本地管理你的数字资产", features: [ "基础资产管理(手机 / 邮箱 / 域名)", "账号与绑定关系图", "风险事件追踪", "本地 SQLite 存储", "JSON 导入 / 导出", "最多 3 台设备使用", ], }, pro: { desc: "解锁全部高级能力", features: [ "多设备云端同步", "每日自动备份", "数据端到端加密", "高级风险检测(恢复链路异常 / 单点故障预警)", "批量 CSV 导入与导出", "无限制账号与绑定数量", "优先邮件支持", ], }, payPending: "Pro 升级支付通道开通中,敬请期待", downgradePending: "切换至 Free 即将上线", }, }, en: { app: { subtitle: "Personal digital asset ledger", workspace: "MVP workspace" }, groups: { overview: "Overview", assets: "Assets", relations: "Relations", risk: "Risk" }, labels: { dashboard: "Dashboard", phones: "Phones", emails: "Emails", domains: "Domains", accounts: "Accounts", bindings: "Bindings", incidents: "Risk Events", available: "Available", inactive: "Inactive", cannot_receive_sms: "No SMS", released: "Released", high_risk: "High Risk", unknown: "Unknown", cannot_receive: "Cannot Receive", active: "Active", expired: "Expired", transferring: "Transferring", normal: "Normal", pending_verify: "Pending", locked: "Locked", suspended: "Suspended", appealing: "Appealing", recovered: "Recovered", deleted: "Deleted", unusable: "Unusable", open: "Open", processing: "Processing", resolved: "Resolved", abandoned: "Abandoned", low: "Low", medium: "Medium", high: "High", critical: "Critical", phone: "Phone", email: "Email", domain: "Domain", account: "Account", login: "Login", recovery: "Recovery", trusted_phone: "Trusted Phone", two_factor: "2FA", notification: "Notification", payment: "Payment", owner: "Owner", alias: "Alias", removed: "Removed", risky: "Risky", }, schemas: { phones: { title: "Phone", fields: { country_code: "Phone", phone_local_number: "Local Number", country_region: "Country/Region", carrier: "Carrier", owner: "Owner", sim_type: "SIM Type", status: "Status", purpose: "Purpose", is_primary: "Primary Number", can_receive_sms: "Can Receive SMS", can_receive_call: "Can Receive Calls", last_verified_at: "Last Verified", expires_at: "Expires At", tags: "Tags", notes: "Notes" } }, emails: { title: "Email", fields: { email: "Email Address", email_type: "Email Type", provider: "Provider", domain: "Domain", forward_to: "Forward To", status: "Status", can_receive_email: "Can Receive", can_send_email: "Can Send", purpose: "Purpose", is_primary: "Primary Email", last_verified_at: "Last Verified", tags: "Tags", notes: "Notes" } }, domains: { title: "Domain", fields: { domain: "Domain", registrar: "Registrar", dns_provider: "DNS Provider", status: "Status", expires_at: "Expires At", auto_renew: "Auto Renew", email_routing_enabled: "Email Routing", tags: "Tags", notes: "Notes" } }, accounts: { title: "Account", fields: { platform: "Platform", platform_logo: "Platform Logo", account_identifier: "Login ID", display_name: "Display Name", region: "Region", status: "Status", login_email_id: "Login Email", login_phone_id: "Login Phone", recovery_email_id: "Recovery Email", recovery_phone_id: "Recovery Phone", two_factor_type: "2FA Type", credential_ref: "Credential Ref", recovery_ref: "Recovery Ref", registered_at: "Registered At", last_login_at: "Last Login", last_verified_at: "Last Verified", tags: "Tags", risk_notes: "Risk Notes", notes: "Notes" } }, bindings: { title: "Binding", fields: { asset_type: "Asset Type", asset_id: "Asset", account_id: "Account", binding_role: "Role", status: "Status", bound_at: "Bound At", unbound_at: "Unbound At", can_unbind: "Can Unbind", risk_level: "Risk Level", tags: "Tags", notes: "Notes" } }, incidents: { title: "Risk Event", fields: { account_id: "Account", platform: "Platform", incident_type: "Event Type", severity: "Severity", status: "Status", occurred_at: "Occurred At", resolved_at: "Resolved At", description: "Description", action_taken: "Action Taken", next_action: "Next Action", evidence_ref: "Evidence Ref", tags: "Tags", notes: "Notes" } }, }, ui: { searchGlobal: "Search assets, accounts, or relations...", refresh: "Refresh", newBinding: "New Binding", saved: "Saved", cancel: "Cancel", save: "Save", saving: "Saving...", addRecord: "Add {name}", editRecord: "Edit {name}", noSelection: "None", required: "Required", searchCurrent: "Search current list", allStatus: "All statuses", noLocalLicense: "No local license info", freeUnlocked: "Free forever with quantity limits", proUnlocked: "Full features unlocked", freePlan: "Free Plan", proPlan: "Pro Plan", notActivated: "Not activated", activated: "Activated", profile: "Profile", upgrade: "Upgrade", guide: "Guide", signOut: "Sign Out", license: "License", accountInfo: "Account Info", email: "Email", deviceId: "Device ID", licenseStatus: "License Status", licenseKey: "License Key", plan: "Plan", localData: "Local Data", totalAssets: "Assets", totalAccounts: "Accounts", totalBindings: "Bindings", close: "Close", getCode: "Get Code", haveCode: "Have Code", sendCode: "Send Code", sending: "Sending...", activate: "Activate", verifying: "Verifying...", enterCode: "Enter license code", registerDesc: "Free forever: {assets} assets, {accounts} accounts, and {bindings} bindings. Upgrade to Pro for full features.", limitReason: "Free plan allows up to {limit} {name}. Current usage: {used}/{limit}.", limitUpgrade: "{reason}
Upgrade to Pro to remove limits and unlock full features.", relationshipMap: "Relationship Map", bindingTopology: "Binding Topology", bindingTopologyDesc: "Clearly see how base assets, accounts, and binding roles connect.", allRelations: "All relations", showAll: "Show all", focusedView: "Focused view", activeCount: "Active {count}", inactiveCount: "Inactive {count}", assetStats: "Assets", accountStats: "Accounts", bindingStats: "Bindings", highRiskBindings: "High-risk bindings", assetStatsMeta: "Phones {phones} · Emails {emails} · Domains {domains}", activeBindingsMeta: "Active bindings {count}", noHighRisk: "No high risk", needsPriority: "Needs attention", details: "Details", bindingDetails: "Binding Details", noActiveBindings: "No active bindings", graph: "Graph", coreBindingGraph: "Core Binding Graph", baseResources: "Base Resources", bindingRoleLegend: "Binding Roles", riskLegend: "Risk", bindingCount: "{count} bindings", resource: "Resource", role: "Role", status: "Status", risk: "Risk", boundAt: "Bound At", actions: "Actions", view: "View", edit: "Edit", delete: "Delete", yes: "Yes", no: "No", all: "All", other: "Other", unknownName: "Unknown", paymentMethod: "Payment Method", device: "Device", subscription: "Subscription", boundResources: "Bound Resources", accountState: "Account Status", region: "Region", attentionNeeded: "Needs Attention", healthy: "Normal", noActiveAccountBindings: "No active bindings.", selectBindingDetails: "Select a binding to view details", noRiskTips: "No risk tips.", topology: "Topology", assetBindingTopology: "Asset Binding Topology", riskBinding: "Risk Binding", platformAccounts: "Platform Accounts", emptyRecord: "No {name} records yet", emptyRecordDesc: "Click Add in the upper-right corner to start recording key phones, emails, accounts, and bindings. Risk detection will start from there.", quickView: "Quick View", notes: "Notes", relatedBindings: "Related Bindings", noRelatedBindings: "No related bindings.", eventTimeline: "Event Timeline", manualTip: "Manual Tip", noModuleData: "No {name} data", searchModule: "Search {name}...", put: "Use", as: "as", possessive: "for", selectAsset: "Select Asset", selectAccount: "Select Account", usageRole: "Usage / Binding Role", selectUsage: "Select usage", moreOptions: "More Options", canUnbind: "Can Unbind", optionalTags: "Optional tags", logoHint: "Optional. Supports HTTPS image URLs, data:image..., or assets/platforms/*.svg. If empty, BindVault uses built-in brands or initials.", uploadLogo: "Upload Image", detailSuffix: "Details", closeDetail: "Close details", workspaceOverview: "Workspace Overview", assetAccountSecurity: "Asset & Account Security", dashboardHeroDesc: "See account status, recovery paths, and payment dependencies at a glance. Important issues surface first, without digging through lists.", recentEvent: "Recent Event", allClear: "All Clear", noOpenIncidents: "No pending events", dashboardAssetsMeta: "Phones {phones} · Emails {emails} · Domains {domains}", goMaintain: "Maintain", accountSecurity: "Account Security", accountSecurityMeta: "Normal {normal} · Issues {locked} · Appealing {appealing}", viewAccounts: "View Accounts", twoFactorEnabled: "2FA enabled {count}", recoveryPayment: "Recovery & Payment", recoveryPaymentMeta: "Recovery links {recovery} · Payment relations {payment}", viewBindings: "View Bindings", riskStatus: "Risk Status", riskStatusMeta: "High risk {highRisk} · Open events {openIncidents}", viewRisks: "View Risks", accountsPanel: "Accounts", platformStatus: "Platforms & Status", viewAll: "View All", platformDistribution: "Platform Distribution", accountStatus: "Account Status", noAccountData: "No account data", monitoringPanel: "Monitoring", riskRecentChanges: "Risks & Recent Changes", riskTips: "Risk Tips", noRisk: "No Risk", noRiskDesc: "When phone numbers, emails, domains, or recovery methods become abnormal, they will appear here first.", recentChangedAccounts: "Recently Changed Accounts", noAccountsYet: "No account records yet.", }, tour: { progress: "Step {current} / {total}", skip: "Exit Guide", next: "Next", waitingSave: "Waiting for save...", completed: "First asset chain guide completed", steps: [ { title: "Step 1: Open Emails", body: "Let's add an email first, then use it as the login email for an account to create the first asset relationship.", cta: "Open Emails" }, { title: "Create an Email", body: "Click Add Email, enter the email address, and save it.", cta: "Add Email" }, { title: "Fill and Save the Email", body: "Enter the email address, confirm it can receive mail, then click Save. After it is saved, I will take you to create an account." }, { title: "Step 2: Open Accounts", body: "Next, create an account and select the email you just added as its login email.", cta: "Open Accounts" }, { title: "Create an Account", body: "Click Add Account. I will prefill the platform as BindVault and select the email you just created by default.", cta: "Add Account" }, { title: "Confirm Login Email and Save", body: "Use BindVault as the platform, select the email you just created as the login email, then save. The system will automatically create an email login binding." }, { title: "Done: View the Topology", body: "After the account is saved, the email login binding is created automatically. You can now see the relationship between the email and account in the topology.", cta: "Done" }, ], }, onboarding: { eyebrow: "Getting Started", title: "Create Your First Account Chain", later: "Maybe Later", start: "Start", steps: [ { title: "Add an Email First", body: "Add an email that can receive mail, then use it as the login email for an account.", cta: "Add Email" }, { title: "Create an Account and Select Login Email", body: "You can use BindVault as the platform and select the email you just added.", cta: "Add Account" }, { title: "Auto-create the Login Binding", body: "After saving the account, the system will automatically create an email-to-account login binding.", cta: "Continue Account" }, { title: "View the Binding Topology", body: "Open Bindings to see the first asset chain between the email and account.", cta: "View Topology" }, ], }, pricing: { eyebrow: "Upgrade", title: "Choose the plan that fits you", subtitle: "From basic ledger to full features — upgrade on demand.", monthSuffix: "/ month", recommended: "Recommended", currentPlan: "Current Plan", upgradeToPro: "Upgrade to Pro", switchToFree: "Switch to Free", includesAll: "Includes all Free features, plus:", free: { desc: "Manage your digital assets locally", features: [ "Basic asset management (phones / emails / domains)", "Accounts and binding relationship graph", "Risk event tracking", "Local SQLite storage", "JSON import / export", "Up to 3 devices", ], }, pro: { desc: "Unlock all advanced capabilities", features: [ "Multi-device cloud sync", "Daily automatic backup", "End-to-end encryption", "Advanced risk detection (recovery chain anomalies / single-point alerts)", "Bulk CSV import & export", "Unlimited accounts and bindings", "Priority email support", ], }, payPending: "Pro payment channel is coming soon, stay tuned", downgradePending: "Switching to Free coming soon", }, }, };