/** * Simplified Chinese (简体中文) — drift fragment: the keys added after the main batches. * * These were the last keys missing from this locale (nav search, the first-run * checklist, marketplace states/escrow copy, the clothing craft, the trust UI, * the marketplace guidelines, the weather legend and the native Cordn/MLS chat). * The default export is the nested dictionary; `index.ts` deep-merges it over * the composed batch fragments (a shallow spread would replace a whole namespace * and drop its sibling keys). * * Skate/brand vocabulary stays English or transliterated (Spot, Park, Crew, * Stash, The Lab, Nostr, Lightning, sats, Cashu, MLS, Cordn, Staircase), matching * the other batches. */ type Dict = { [key: string]: string | Dict }; const drift: Dict = { nav: { searchLanguages: '搜索语言…', noLanguages: '未找到语言', }, mapPage: { searchSuggestPlaces: '地点', }, mapUi: { firstRunTitle: '开始使用', firstRunTip: '点击任意标记即可探索。无需设置——附近滑板点一触即达。', firstRunAddSpot: '添加你的第一个滑板点', firstRunJoinCrew: '加入一个 Crew', firstRunStartCrew: '创建你的 Crew', firstRunWallet: '设置你的钱包', forecastDays: '{{count}} 天预报', }, spotUi: { forecastDays: '{{count}} 天预报', }, marketUi: { trades: { stateRevoked: '已撤销', stateVerifying: '验证中', }, loadFailed: '无法连接中继。请检查你的网络连接并重试。', statusPending: '待处理', offers: { closeDeal: '完成交易', loadFailed: '无法加载报价。请检查你的网络连接并重试。', }, pay: { nonSats: '此报价以 {{currency}} 计价。应用内支付仅支持 sats。请直接与卖家结算。', unsupported: '此支付码(Cashu 请求)尚不支持。请向卖家索要 Lightning 发票或地址。', }, escrowRequest: { lockedNotSent: '资金已锁定在托管中并保存在此设备上,但请求未发送。重新打开该商品重试。请勿再次支付。', mintLabel: 'Mint(资金锁定处)', sellerMintHint: '卖家偏好此 Mint;锁在这里的资金对他们最易领取。', mintHint: '托管存放在此 Mint。卖家在此领取,因此请选择双方都信任的一个。', noMints: '没有可用的 Mint', p2pkUnsupported: '此 Mint 未声明支持 P2PK(NUT-11),因此无法在此锁定托管。请选择其他 Mint。', }, }, labUi: { offerClothing: '提供服装', tabClothing: '服装', empty: { clothingTitle: '还没有服装设计师', clothingBody: '成为第一个为这个圈子提供定制服装、团队套装和服饰的人。', }, craftFields: { sizing: '尺码范围', samples: '样品 / 打样', customization: '定制', }, }, socialUi: { coordinator: { ourDefaultTitle: 'SkateSpots 协调器', ourDefaultDesc: 'SkateSpots 在 relay.skate-spots.org 运行一个协调器。默认使用它,或运行你自己的——协调器只能看到密文和元数据,永远看不到你的消息。', useOurs: '使用 SkateSpots 协调器', }, crewCoordinator: { encryptedChat: '加密聊天', privateChatName: '私密聊天', privateChatDesc: '通过协调器的前向保密群聊(MLS)。', privateChatDescFull: '私密聊天由管理员创建一次,然后成员加入。', chatRowDesc: 'Crew 中的每个人——封存到每位成员的密钥(NIP-17)。', openChat: '打开', setUpChat: '设置', joinChat: '加入', checking: '检查中…', openInAnotherApp: '在其他应用中打开', openInCordnWeb: 'Cordn(网页)', openCordnGroup: '打开 Crew 聊天', copyForStaircase: '复制给 Staircase', }, dms: { refresh: '刷新', crews: 'Crew', crewFounder: '创始人', crewMember: '成员', crewOpen: '打开', crewSetUp: '设置', }, form: { cordnGroup: 'Cordn 群组', cordnGroupHint: '可选:粘贴来自 Staircase 或 Cordn 网页的群组链接。你的 Crew 随后将获得真正的端到端 MLS 聊天,托管在我们的协调器上。', }, bell: { dmsUnread: '{{count}} 条新的加密消息', messagesAndCrews: '消息和 Crew 聊天', }, }, settingsUi: { loginDialog: { welcomeSubtitleBrowse: "注册或登录 — 或继续浏览。", extensionCard: "浏览器扩展", signerCard: "签名应用", secretKeyLink: "改用私钥", whereBunker: "在哪里获取 bunker?", }, settingsPage: { trust: '信任', trustSub: '来源与显示', }, }, walletUi: { trust: { mute: '屏蔽', muted: '已屏蔽', mutedDesc: '你将不会看到他们的内容。', unmute: '取消屏蔽', unmuted: '已取消屏蔽', unmutedDesc: '他们的内容将重新显示。', unmuteFailed: '无法取消屏蔽。请重试。', muteFailed: '无法屏蔽。请重试。', loginToMute: '登录以屏蔽。', attributedNetwork: '来自你网络中的人', attributedProviderHouse: '来自社区信任提供方', attributedProviderCustom: '来自你选择的提供方', howItWorks: '信任如何运作', flaggedNoticeTitle: '被可信滑手举报', flaggedNoticeDesc: '请小心。网络中的可信人员举报了此账号。', flaggedReporterFollow: '你关注的 {{count}} 人', flaggedReporterNetwork: '你网络中的 {{count}} 人', flaggedReporterOther: '其他 {{count}} 个账号', flaggedReport: '举报', flaggedDismiss: '忽略', bucketVerified: '已验证', bucketUnknown: '未知', bucketFlagged: '已标记', bucketVerifiedDesc: '你网络中的某人为此账号担保。', bucketUnknownDesc: '你网络中还没有人为这个账号担保。', bucketFlaggedDesc: '可信人员举报了此账号。', reportedByTrusted: '被 {{count}} 位可信人员举报', }, }, trustUi: { alertsTitle: '网络警报', alertsDesc: '你关注的、被可信人员举报或屏蔽的账号。', alertsEmpty: '没有警报。我们会检查你关注的账号是否有可信举报。', alertsReported: '被 {{count}} 位可信人员举报', alertsMuted: '被 {{count}} 位可信人员屏蔽', alertsIgnore: '忽略', alertsUnfollow: '取消关注', alertsLogin: '登录以查看你关注账号的警报。', providerTitle: '提供方', providerDesc: '分数来自你选择的提供方。社区提供方是默认值。', useCommunity: '使用社区提供方', setProvider: '设置提供方', customPubkeyPlaceholder: '提供方 npub 或十六进制 pubkey', customRelayPlaceholder: 'wss://relay.example.com', invalidProvider: '请输入有效的 npub 或 64 位十六进制 pubkey,以及一个 wss:// 中继。', publishFailed: '无法发布提供方。请重试。', providerSaved: '提供方已更新。', loggedOutProvider: '登录以选择提供方。', showMarks: '显示信任标记', showMarksDesc: '已验证和未知标记。举报始终显示。', sourceLabel: '来源', sourceHouse: '社区信任提供方', sourceCustom: '你的提供方', loggedOut: '登录以选择你自己的信任提供方。', seoTitle: '信任如何运作', seoDescription: 'SkateSpots 如何显示信任:三种状态、分数从何而来,以及为什么缺席不是不信任。', title: '信任如何运作', intro: '这里的信任是一种信号,不是判决。它来自你认识的人,或来自你选择的提供方。我们不会在全球范围内给人排名。', statesTitle: '三种状态', verifiedTitle: '已验证', verifiedDesc: '你网络中的某人为这个账号担保:朋友的朋友,或你选择的提供方。', unknownTitle: '未知', unknownDesc: '还没有人担保。每个新账号都从这里开始。', flaggedTitle: '已标记', flaggedDesc: '可信人员举报了这个账号。这是提醒你仔细查看的警告,不是任何事情的证据。', absenceTitle: '没有徽章不代表不信任', absenceDesc: '大多数账号什么都不显示。这意味着你网络中还没有人为他们担保,而不是出了问题。绝不要把缺失的标记理解为负面。', sourceTitle: '谁来计算', sourceDesc: '默认情况下我们使用你自己的网络。你也可以选择一个通过 Nostr(NIP-85)发布签名分数的信任提供方,或关闭显示。已标记始终显示,因为它是安全信号。', endorsementTitle: '存在不等于背书', endorsementDesc: '已验证标记意味着有人担保,并不意味着这个人是好人。标记意味着可信人员举报了他们,并不意味着他们有罪。决定前请查看详情。', povTitle: '这取决于视角', povDesc: '分数是相对于观察者的。来自一个提供方或一个人的排名无法与另一个相比,我们也绝不把它当作客观事实来呈现。', settingsCta: '在设置中管理', }, marketTerms: { link: '市场准则', seoTitle: '市场准则', seoDescription: 'SkateSpots 装备刊登如何运作:点对点、买家自负,以及规则。', title: '市场准则', intro: 'SkateSpots 是一个点对点的装备板。你直接与对方交易:我们不保管资金、不发货、也不处理纠纷。', howTitle: '如何运作', howBody: '刊登装备,通过私信联系卖家,然后直接结算(现金、Lightning 或换物)。没有购物车或结账。', rulesTitle: '不允许的内容', rulesBody: '禁止非法、危险或成人内容;禁止毒品、武器、假货或赃物。刊登内容请保持在滑板装备及相关物品上。', respectTitle: '保持尊重', respectBody: '禁止辱骂、骚扰、威胁或仇恨。版主可以隐藏刊登或账号。', trustTitle: '信任是参考,不是保证', trustBody: '验证标记和交易信誉是来自网络的信号,不是承诺。交易前请自行核查。', trustLink: '信任如何运作', privacyLink: '什么会离开你的设备', safetyTitle: '安全交易', safetyBody: '当面交接请约在公共场所,邮寄交易请使用托管或诚意定金,绝不要在应用外转账。', moderationTitle: '管理是温和且可逆的', moderationBody: '被隐藏的内容仍留在中继上,可以恢复;人与人之间的纠纷由你们自己解决。', }, labOptions: { clothing: { service: { tees: 'T 恤', hoodies: '连帽衫 & 卫衣', pants: '长裤 & 短裤', jackets: '夹克 & 外套', kits: '队服 & 球衣', caps: '帽子 & 毛线帽', socks: '袜子', accessories: '包袋 & 配饰', footwear: '鞋类 & 鞋子', patches: '布贴 & 贴花', griptape: '砂纸 & 板面服饰', onepiece: '独一无二 / 升级再造', }, serviceDesc: { tees: '定制 T 恤和上衣', hoodies: '连帽衫、圆领衫和运动裤', pants: '工装裤、工装短裤和短裤', jackets: '教练夹克、防风外套和工作夹克', kits: '队服、球衣和制服', caps: '帽子、毛线帽和头饰', socks: '中筒袜和针织品', accessories: '包袋、腰带和小物', footwear: '定制鞋和鞋类', patches: '刺绣布贴和贴花', griptape: '砂纸艺术和板面服饰', onepiece: '单件和升级再造服装', }, method: { screenprint: '丝网印刷', dtg: 'DTG / 数码直喷', embroidery: '刺绣', cutsew: '裁剪缝制', sublimation: '热升华', heattransfer: '热转印 / 烫画', garmentdye: '成衣染色', knit: '针织', patchwork: '拼布', allover: '满版印花', }, material: { cotton: '棉', heavyweight: '重磅', organic: '有机 / 可持续', fleece: '抓绒', denim: '牛仔', canvas: '帆布', nylon: '尼龙 / 功能性', wool: '美利奴 / 羊毛', leather: '皮革', recycled: '再生 / 库存布', }, }, }, becomeRolesUi: { clothing: { seoTitle: '成为服装设计师 - SkateSpots', seoDescription: '为这个圈子提供定制服装、团队套装和服饰。', heading: '服装设计师', tagline: '为这个圈子提供定制服装、团队套装和服饰', noun: '服装设计师', rateLabel: '费率', portfolioLabel: '店铺 / 作品集链接', sectionWhatYouMake: '你做什么', sectionHowYouMake: '你怎么做', sectionMaterials: '材料', minimumPlaceholder: '例如 10 件', turnaroundPlaceholder: '例如 2-3 周', sizingPlaceholder: '例如 XS-3XL / 量身定制', samplesHelper: '在正式生产前你提供样品或打样吗?', customizationPlaceholder: '例如名字、号码、图案', }, }, weatherUi: { updated: '已更新', refresh: '刷新', unavailable: '天气不可用。', retry: '重试', sunrise: '日出', sunset: '日落', legendTitle: '天气评分', legendWeatherOnly: '仅天气', }, cordnUi: { shareInvite: '邀请', shareInviteText: '加入 {{crew}} — 团队私密聊天', inviteCopied: '邀请链接已复制', title: '私密聊天', subtitle: 'Crew 成员之间的端到端加密(MLS)。协调器只路由密文和元数据——它永远看不到消息内容。', notLoggedIn: '登录以使用 Crew 的私密聊天。', membersOnly: '只有 Crew 成员才能打开私密聊天。', connecting: '连接中…', noCoordinator: '此 Crew 尚未配置协调器。', noGroupAdmin: '此 Crew 的私密聊天尚未创建。', noGroupMember: '你还没有加入此 Crew 的私密聊天。', create: '创建私密聊天', requestJoin: '请求加入', requestAgain: "Request again", requestHandled: "Request handled", copyCordnLink: "Copy Cordn link", cordnWebCaveat: "Cordn web may stall after sign-in; the in-app join is more reliable.", checkInvite: '检查邀请', requested: '请求已发送——Crew 管理员会批准。', noInvite: '还没有等待中的邀请。请管理员批准你的请求。', placeholder: '给 Crew 发消息…', send: '发送', refresh: '刷新', requests: '加入请求', checkRequests: '检查请求', approve: '添加', approveTitle: "批准此设备?", approveDesc: "将 {{name}} 添加到此加密房间?该设备将能读取新消息。", noRequests: '没有待处理的加入请求。', inviteHint: '目前只有你在这个聊天中——Crew 成员可以点击“请求加入”,然后你在这里批准他们。', memberCount: '群组中有 {{count}} 人', you: '你', groupRef: '群组链接', copyRef: '复制', copied: '已复制', attachImage: '附加图片', uploading: '上传中…', uploadFailed: '无法上传图片。', bannerTitle: '此 Crew 还没有私密聊天', bannerBody: '为你的 Crew 设置端到端加密(MLS)聊天——成员从标签页加入。', bannerCta: '设置', ready: '已连接 · MLS', errorPrefix: '无法连接协调器', interactiveHint: '你的签名器会为每个操作请求批准——按需使用刷新和发送。', setupDevice: "设置此设备", setupDeviceBody: "为此设备分配私密聊天专用的密钥。创始人批准一次即可。", waitingApproval: "正在等待创始人批准…", waitingApprovalManual: "正在等待创始人。批准后请点击“检查邀请”。", onboardingFounder1: "开始私密聊天。", onboardingFounder2: "批准请求加入的成员。", onboardingFounder3: "与你的 Crew 私密聊天。", onboardingMember1: '请求加入', onboardingMember2: "创始人会批准你的设备。", onboardingMember3: "你已加入——消息已加密。", encryptedNote: "只有 Crew 成员可以阅读;协调器只转发加密消息。", advanced: "高级", coordinator: "协调器", keyPackage: "密钥包", keyPackageReady: "已在此设备上就绪", keyPackageMissing: "尚未在此设备上设置", members: "成员", roleFounder: "创始人", roleAdmin: "管理员", makeAdmin: "设为管理员", removeAdmin: "取消管理员", adminAdded: "成员已提升为管理员。", adminRemoved: "已移除管理员角色。", roleUpdateFailed: "无法更新角色,请重试。", addReaction: "添加回应", deleteMessage: "删除消息", deleteMessageConfirm: "为所有人删除这条消息?", readBy: "{{count}} 人已读", joinRequestTitle: "私聊请求", joinRequestFor: "加入 {{crew}} 的新请求", joinRequestReview: "查看请求", joinRequestDismiss: "忽略请求", roleMember: "成员", qrTitle: "扫描加入私密聊天", qrHint: "Crew 成员用手机摄像头扫描。链接会打开“私密聊天”标签页。", sendFailed: "发送失败——点击重试。", sending: "发送中…", sent: "已发送", retry: "重试", errorUnreachable: "无法连接私密聊天。请检查网络连接。", errorDetails: "详情", unreachable: "无法连接", dismiss: "关闭", linkDevice: "关联此设备", linkDeviceTitle: "关联另一台设备", linkDeviceHint: "请在已在房间中的设备上扫描此代码。", linkDeviceNote: "此代码包含公钥包。你的私钥会留在新设备上。", waitingDevice: "正在等待另一台设备…", addDevice: "添加设备", deviceLinked: "设备已添加。", deviceLinkFailed: "无法添加该设备。", removeMemberConfirm: "要将 {{name}} 移出私密聊天吗?该设备将失去访问权限。", removeMemberFailed: "无法移除该成员。", reply: "回复", }, communityUi: { link: "社区", title: "社区聊天", subtitle: "提问、分享反馈,与 SkateSpots 社区交流 — 端到端加密。", heading: "SkateSpots 社区", eyebrow: "问题与反馈", seoTitle: "SkateSpots 社区聊天", seoDescription: "问题、反馈与社区交流 — 端到端加密。", notLoggedIn: "登录后即可加入社区聊天。", noGroupAdmin: "社区房间尚未创建。", noGroupMember: "你还没有加入社区房间。", waitingApproval: "正在等待社区机器人或管理员批准…", waitingApprovalManual: "手动模式。批准后请点按“检查邀请”。", noInvite: "还没有邀请。机器人通常在一分钟内批准——之后请点按“检查邀请”。", pendingRequests: "{{count}} 个加入请求正在等待", pendingRequestsDesc: "机器人通常会自动批准。如果卡住了,请打开下面的房间并点按“检查请求”。", botMissing: "The community bot isn’t in this room right now, so an admin will review join requests.", secondDeviceHint: "已在其他设备上加入?使用“关联此设备”直接交接,或用此设备再次申请加入。", create: "创建社区房间", setupDeviceBody: "这会为此设备提供社区房间的密钥,管理员或机器人会批准一次。", onboardingFounder1: "创建社区房间。", onboardingFounder2: "批准社区机器人和新成员。", onboardingFounder3: "回答问题并收集反馈。", onboardingMember1: "申请加入社区房间。", onboardingMember2: "管理员或社区机器人批准你的设备。", onboardingMember3: "提问、分享反馈,或者只是打个招呼。", encryptedNote: "只有房间成员可以阅读;协调器只转发加密消息。", shareInviteText: "加入 SkateSpots 社区聊天", qrTitle: "扫描加入社区聊天", qrHint: "用手机相机扫描,打开社区聊天并申请加入。", owner: "所有者", botName: "社区机器人", howItWorks: "新设备会由管理员或社区机器人批准一次。你加入之前发送的消息对你不可见。", feedbackNote: "欢迎提问和反馈。请保持友善 — 这是共享房间。", }, translateUi: { title: '消息翻译', translate: '翻译', translating: '正在翻译…', showOriginal: '显示原文', showTranslation: '显示译文', translatedFrom: '译自 {{language}}', failed: '翻译失败,请重试。', unsupported: '该语言对暂不可用。', pilotNote: '试点:仅限英语 ↔ 西班牙语。', autoTranslate: '自动翻译消息', autoTranslateDesc: '将收到的消息翻译成你的语言。在此设备上运行,不会发送任何内容。', privacy: '翻译在此设备上运行。你的消息永远不会离开设备。首次使用时会下载语言模型。', }, newsletterDraftUi: { weeklyDraftReady: '每周草稿已就绪', loadDraft: '加载草稿', hidePreview: '隐藏预览', untitled: '未命名', }, signerPromptUi: { title: "Amber 提示预算", body: "Amber 会在每次签名操作时请求批准。读取和后台解密都在本地进行,不会弹出提示。发送群组私信时每位收件人会请求一次(加密 + 签名),Cordn 可能针对每个协调者请求询问。对于频繁的私聊或车队聊天,用 bunker 或本地密钥会更安静。", bunker: "把 Amber 留给高价值签名,或者在预计会长聊时改用 bunker。", }, globalSearchUi: { open: "搜索", placeholder: "搜索 Spot、Crew、活动、装备…", hint: "⌘K / Ctrl+K", recent: "最近", pages: "页面", spots: "Spot", shops: "商店", crews: "Crews", events: "活动", gear: "装备", skaters: "滑手", signers: "签名器", trust: "信任", noResults: "未找到“{{query}}”的结果。", }, marketplaceExtrasUi: { savedSearches: "已保存的搜索", saveSearch: "保存搜索", searchName: "为此搜索命名…", deleteSearch: "删除已保存的搜索", safetyTitle: "安全买卖", safetyMeet: "在公共场所见面,付款前先检查装备。", safetyKeys: "切勿分享助记词或私钥。交易请留在应用内聊天中。", safetyEscrow: "寄送交易请先阅读托管条款:Cashu 托管仅限原生应用,且尚未验证。", safetyMore: "阅读市场指南", offerTemplates: "快捷留言", offerDiscount: "能优惠 10% 吗?", offerSwap: "可以考虑交换吗?", offerPickup: "我这周可以自取。", offerShipping: "可以合并运费吗?", }, placesUi: { eventDetail: { eventPass: "活动通行证" }, }, }; export default drift;