SkateSpots/src/i18n/zh-CN/batch2.ts
SkateSpots 6407310213 feat(relay): cut over community relay to self-hosted Newlay
Point SKATE_RELAY, the default relay pools, the DM/CVM/zap relay arrays, the cvm-server + push-service defaults, and the archive default at wss://relay.skate-spots.org, keeping the legacy hosted relay as a fallback during the client-update window. Restored 115/115 archived events; the relay runs behind Caddy with TLS. Docs + AGENTS.md updated.
2026-10-12 12:38:13 +07:00

1598 lines
81 KiB
TypeScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* zh-CN — batch 2: map, spot, DIY, labels, fees, cards, routing and the
* Sasquatch assistant. Skate vocabulary stays in English (Spot, Park, Bowl,
* Vert, Crew, Deck, Trucks, Wheels, Bearings, Griptape, Ledge, Rail, Stash,
* The Lab, Nostr, Lightning, Zap, Relay, sats, NIP-05); trick names remain
* English. Placeholders/markdown/URLs preserved.
*/
const zhCNBatch2 = {
mapUi: {
mapFooter: {
links: "链接",
hide: "隐藏地图链接栏",
},
findingSpots: "正在寻找 Spot",
loadingSpots: "正在加载 Spot",
loadingMap: "正在加载地图...",
mapViewAria: "地图视图",
listViewAria: "列表视图",
layers: "图层",
mapLayers: "地图图层",
showOnMap: "在地图上显示",
showResults: "显示结果",
quickActions: "快捷操作",
spots: "Spot",
shops: "商店",
gear: "装备",
tours: "Tour",
events: "活动",
crews: "Crew",
spotType: "Spot 类型",
sortBy: "排序方式",
trustLevel: "信任等级",
weather: "天气",
buySellGear: "买卖装备",
stash: "Stash",
more: "更多",
newHere: "第一次来?",
welcomeDesc: "发现滑板 Spot、活动和社区。",
getOnZapstore: "在 Zapstore 获取",
dismiss: "忽略",
addedBy: "添加者",
directions: "路线",
viewDetails: "查看详情",
viewDetailsArrow: "查看详情 →",
spotDetails: "Spot 详情",
skateShop: "滑板商店",
skateSpot: "滑板 Spot",
youAreHere: "你在这里",
conditions: "状况",
weatherScoreSuffix: "天气 {{score}}/100",
wind: "风",
humidity: "湿度",
airQuality: "空气质量",
threeDayForecast: "3 天预报",
gearForSale: "在售装备({{count}})",
viewItems: "查看物品 →",
viewAllItems: "查看全部 {{count}} 件物品 →",
viewGear: "查看装备 →",
localTour: "本地 Tour",
meetAt: "集合地点:{{place}}",
hours: "{{count}} 小时",
level: "{{level}} 级",
viewTour: "查看 Tour →",
upcomingEvent: "即将举行的活动",
viewEvent: "查看活动 →",
skateCrew: "滑板 Crew",
members: "{{count}} 名成员",
since: "始于 {{year}}",
viewCrew: "查看 Crew →",
acceptsBitcoin: "接受 Bitcoin",
boosted: "已推广",
website: "网站",
offlineSavedSpots: "离线 · 显示已保存的 Spot",
cantReachRelays: "无法连接 Relay",
relayOnlineNoAnswer: "你在线,但社区 Relay 目前没有响应。",
youreOffline: "你处于离线状态。",
savedOnDevice: "你看过的 Spot 已保存在本设备上,将在此处显示。",
noSpotsMatchTitle: "没有匹配的 Spot",
noSpotsMatchDesc: "试试其他搜索词或清除筛选条件。",
noSpotsMappedYet: "还没有标记任何 Spot",
noSpotsMappedDesc: "第一个标记你的公园吧——只需一分钟,它就是你的,下一位路过的滑手会感谢你。",
addFirstSpot: "添加第一个 Spot",
findSpotsNearMe: "查找附近的 Spot",
locating: "正在定位…",
refiningLocation: "正在精确定位…",
refiningLocationDesc: "以你上次的 Spot 为中心——正在获取新的 GPS 定位。",
locatingYou: "正在定位你…",
locatingDesc: "正在获取 GPS 定位。首次可能需要长达一分钟。",
foundYou: "找到你了",
foundYouDesc: "已将地图居中到你的位置。",
locationPermissionNeeded: "需要位置权限",
permissionNeededDesc: "在设备的“设置 → 应用 → SkateSpots → 权限”中允许 SkateSpots 使用位置,然后再次点击“附近”。",
locationTimedOut: "定位超时",
timeoutNativeDesc: "未能及时获取位置。如果你在室内,GPS 看不到卫星——请启用网络定位(设置 → 位置)或走到室外,然后重试。",
timeoutWebDesc: "未能及时获取你的位置。请检查信号后重试。",
noLocationProvider: "没有定位服务",
noProviderNativeDesc: "你的手机未提供位置。在注重隐私的 ROM(如 GrapheneOS)上,请在“设置 → 位置”中启用网络定位,或确保 GPS 已开启并到室外尝试。",
noProviderWebDesc: "没有可用的定位服务。请启用定位服务后重试。",
locationUnavailable: "位置不可用",
unavailableNativeDesc: "请在手机设置中开启位置/GPS,允许 SkateSpots 使用位置(设置 → 应用 → SkateSpots → 权限),然后重试。",
unavailableWebDesc: "无法确定你的位置。请确保已启用定位服务。",
locationBlocked: "位置被阻止",
locationBlockedDesc: "你的浏览器已阻止此网站访问位置。重新启用的方法如下:",
locationPlatformAndroid: "Android Chrome",
locationPlatformIos: "iOS Safari",
locationPlatformDesktop: "桌面版 Chrome",
locationPlatformFirefox: "Firefox",
locationStepsAndroid: "点击地址栏中的锁形图标 → 网站设置 → 位置 → 允许",
locationStepsIos: "“设置”应用 → Safari → 位置 → 允许(或点击 Safari 地址栏中的“AA”按钮)",
locationStepsDesktop: "点击锁形图标 → 网站设置 → 位置 → 允许",
locationStepsFirefox: "点击锁形图标 → 连接安全 → 更多信息 → 权限 → 访问你的位置 → 允许",
gotIt: "知道了",
addSpot: "添加 Spot",
addShop: "添加商店",
addEvent: "添加活动",
addSpotHereTitle: "在这里添加 Spot?",
addSpotHereDesc: "在你点击的位置放置标记",
sellGear: "出售装备",
offerTour: "发布 Tour",
closeAddMenu: "关闭添加菜单",
addMenuAria: "添加 Spot、商店、活动、装备或 Tour",
localChat: "本地聊天",
localChatDesc: "地图中心所在位置的实时聊天。选择频道覆盖的范围。",
btcMapShowing: "显示附近 {{count}} 个可使用 sats 的场所",
btcMapShow: "显示可使用 sats 的场所(通过 BTC Map)",
yourPrivateStash: "你的私人 Stash",
stashIntro: "记录你的装备、设置价格,并与其他滑手进行交易。",
encryptionRequired: "需要加密",
encryptionRequiredDesc: "请使用支持 NIP-44 的签名器(Alby、nos2x、Amber)。",
myStash: "我的 Stash",
encrypted: "已加密",
itemsCount: "{{count}} 件物品",
items: "物品",
wishlist: "心愿单",
types: "类型",
stashEmpty: "你的 Stash 是空的",
addFirstItem: "添加第一件物品",
wishlistCount: "心愿单({{count}})",
myGearCount: "我的装备({{count}})",
openFullStash: "打开完整 Stash",
addItem: "添加物品",
searchSpotsPlaceholder: "搜索 Spot...",
selected: "已选择",
noSpotsFound: "未找到 Spot。试试其他搜索词。",
addingSpotsHint: "添加 Spot 有助于其他人在浏览特定位置时找到你",
report: "举报",
spotSingular: "1 个 Spot",
spotPlural: "{{count}} 个 Spot",
view: "查看",
myCollections: "我的合集",
collectionsSubtitle: "把你最喜欢的 Spot 整理成个性化列表",
newCollection: "新建合集",
loginToCreate: "登录以创建合集",
loginToCreateDesc: "将你最喜欢的 Spot 保存到“2024 巴塞罗那之旅”或“洛杉矶最佳 Rail”等个性化列表",
noCollections: "还没有合集",
noCollectionsDesc: "创建你的第一个合集,开始整理 Spot",
createFirstCollection: "创建你的第一个合集",
createNewCollection: "创建新合集",
createCollectionDesc: "为你的合集取个名字,并可添加描述",
collectionName: "合集名称",
collectionNamePlaceholder: "2024 巴塞罗那之旅",
descriptionOptional: "描述(可选)",
descriptionPlaceholder: "我巴塞罗那之旅中最喜欢的 Spot...",
creating: "正在创建...",
createCollection: "创建合集",
editCollection: "编辑合集",
saving: "正在保存...",
saveChanges: "保存更改",
deleteCollectionTitle: "删除合集?",
deleteCollectionDesc: "这将永久删除“{{title}}”。Spot 本身不会受到影响。",
deleting: "正在删除...",
collectionCreated: "合集已创建!",
collectionCreatedDesc: "“{{title}}”已准备好添加 Spot",
collectionCreateFailed: "创建合集失败",
collectionUpdated: "合集已更新!",
changesSaved: "你的更改已保存",
collectionUpdateFailed: "更新合集失败",
collectionDeleted: "合集已删除",
collectionDeletedDesc: "“{{title}}”已被移除",
collectionDeleteFailed: "删除合集失败",
somethingWentWrong: "出了点问题",
},
mapPage: {
title: "商店与 Spot",
spots: "Spot",
shops: "商店",
filters: "筛选",
listView: "列表",
mapView: "地图",
nearMe: "附近",
searchPlaceholder: "搜索 Spot...",
noSpotsInArea: "此区域没有 Spot",
zoomIn: "放大",
zoomOut: "缩小",
myLocation: "我的位置",
locationsFound: "找到 {{count}} 个地点",
spotsOnly: "仅 Spot",
shopsOnly: "仅商店",
spotsAndShops: "Spot 与商店",
noSpotsMatch: "没有符合筛选条件的 Spot。",
noSpotsYet: "还没有添加任何 Spot。",
addFirstSpot: "添加第一个 Spot",
},
spotUi: {
claim: {
areYouOwner: "这是你的 Spot 吗?",
privateDesc: "此 Spot 被标记为私人。如果你拥有或管理它,请认领——SkateSpots 版主确认所有权后,你即可接管该条目。",
claimSpot: "认领此 Spot",
nip05Required: "认领私人 Spot 需要已验证的 NIP-05 标识(证明你掌控某个 Nostr 身份)。请先在你的个人资料中添加一个,然后再回来。",
addNip05: "在设置中添加 NIP-05",
pendingTitle: "认领待审核",
pendingDesc: "你的认领已提交。SkateSpots 版主将进行审核——审核通过后你即可完成认领。",
approvedTitle: "认领已批准",
approvedDesc: "版主已批准你的认领。完成操作即可成为此 Spot 的所有者。",
complete: "完成认领",
submitted: "认领已提交",
submittedDesc: "版主将审核你的认领。审核通过后你即可接管此 Spot。",
submitFailed: "无法提交认领",
submit: "提交认领",
submitting: "正在提交…",
confirmTitle: "认领“{{title}}”?",
confirmIntro: "你正在申请成为此私人 Spot 的所有者。",
confirmBullet1: "SkateSpots 版主会审核该请求(我们无法核实产权,只能核实 Nostr 密钥)",
confirmBullet2: "若获批准,你完成认领即可成为所有者并编辑该 Spot",
confirmBullet3: "原始 Spot 仍保留在 Nostr 上——网络是去中心化的",
adminTitle: "待处理的所有权认领",
adminApprove: "批准",
adminApproved: "已批准",
adminApprovedDesc: "他们现在可以完成认领此 Spot。",
adminApproveFailed: "无法批准该认领",
loginRequired: "登录以认领此私人 Spot,或申请所有权。",
},
abandonedDesc: "最后更新于 {{time}}。如果原所有者不活跃,你可以认领此 Spot 来维护和改进它。",
claimedNotice: "已认领的条目",
claimedNoticeDesc: "此 Spot 在认领后由新所有者重新发布。原始条目可能仍单独存在。",
abandonedLoginDesc: "最后更新于 {{time}}。登录以认领并维护此 Spot。",
accessDeniedDesc: "你只能编辑自己创建的 Spot。",
accessDeniedTitle: "访问被拒绝",
addAtLeastOneTag: "请至少添加一个标签。",
additionalDetails: "其他详情(可选)",
additionalDetailsPlaceholder: "提供任何可能有帮助的其他背景信息...",
addNewTags: "添加新标签:",
addNip05InSettings: "在设置中添加 NIP-05",
addPhoto: "添加照片",
addPhotoDesc: "贡献一张照片,帮助他人发现此 Spot。",
addPhotoOrDescription: "添加照片或描述",
addPhotoOrDescriptionDesc: "给滑手们一些参考——一张照片,或一句关于此地的描述。",
addPhotos: "添加照片",
addPhotoToSpot: "为 Spot 添加照片",
adminDeleteDialogDesc: "作为 SkateSpots 管理员,你正在下架“{{title}}”。它将在整个应用中对所有人隐藏,并向 Relay 发送删除请求。",
adminDeleteReason: "SkateSpots 管理员移除了 Spot“{{title}}”",
airQuality: "空气质量",
altSkateSpot: "滑板 Spot:{{title}}",
areYouShopOwner: "你是这家商店的店主吗?",
askBeforeSkating: "滑行前先询问",
backToSpot: "返回 Spot",
beFirstToListGear: "成为第一个在此 Spot 列出装备的人!",
beFirstToSay: "成为第一个发言的人。",
byAuthor: "作者 {{name}}",
captionPlaceholder: "添加说明(可选)——描述照片内容、拍摄时间等。",
chatPublicNote: "任何人都可以阅读此内容——消息是公开且短暂的。私人聊天请使用私信。",
checkPinBelow: "添加重复项前,请检查下方的标记。",
claimBullet1: "你成为所有者,可以编辑该 Spot",
claimBullet2: "原始 Spot 仍然保留(Nostr 是去中心化的)",
claimBullet3: "你的版本可能与原始版本同时出现",
claimFailed: "认领失败",
claiming: "正在认领...",
claimIntro: "你即将认领此 Spot 的所有权。这会创建你自己版本的 Spot,你可以编辑和维护它。",
claimSpot: "认领 Spot",
claimThisSpot: "认领此 Spot",
claimTitle: "认领“{{title}}”?",
claimWhatHappens: "认领后会发生什么:",
coachesAndFilmersAvailable: "此 Spot 有可用的教练和摄像师",
coachesCount: "教练({{count}})",
coachHere: "此处教练",
community: "社区",
communityVerified: "社区已验证",
communityVerifiedTitle: "另一位滑手在这里做出了贡献(照片或状态报告)。",
conditions: "状况",
contactForPermission: "联系以获得许可",
contactInfo: "联系信息",
contributePhoto: "贡献照片",
contributing: "正在贡献...",
couldNotSendMessage: "无法发送消息。",
couldNotSubmit: "无法提交",
couldNotUploadPhoto: "无法上传照片。你可以在下方添加一张。",
crewsThatSkateHere: "在此滑行的 Crew",
current: "当前:",
currentTags: "此 Spot 的当前标签:",
daysAgo: "{{count}} 天前",
daysAgoPlural: "{{count}} 天前",
deleteDialogDesc: "这将从所有 Relay 中永久删除“{{title}}”。此操作无法撤销。",
deletedSpotReason: "已删除的 Spot",
deleteFailed: "删除失败",
deleteSpot: "删除 Spot",
deleteSpotTitle: "删除 Spot?",
differentSpotPublishAnyway: "这是不同的 Spot——仍然发布",
dragDropOrClick: "拖放或点击",
dropPhotos: "拖放照片",
duplicateOne: "你的标记 60 米内已有一个 Spot。如果是同一个地方,请在那里添加照片或状态报告,而不是创建重复项。",
duplicateOther: "你的标记 60 米内已有 Spot。如果是同一个地方,请在那里添加照片或状态报告,而不是创建重复项。",
editSpotSeoDesc: "编辑你的滑板 Spot。",
failedToContribute: "贡献失败",
failedToPublish: "发布失败",
failedToPublishDesc: "出了点问题。请查看控制台了解详情。",
failedToSubmitReport: "提交举报失败",
failedToSuggestTags: "推荐标签失败",
failedToUpdate: "更新失败",
failedToUploadImage: "上传图片失败",
failedToUploadPhoto: "上传照片失败",
feelsLikeTemp: "体感 {{temp}}°C",
filmersCount: "摄像师({{count}})",
filmHere: "在此拍摄",
gearSwap: "装备交换",
geolocationNotSupported: "不支持地理定位",
geolocationNotSupportedDesc: "你的浏览器不支持地理定位。",
getDirections: "获取路线",
hangTight: "稍等",
hangTightDesc: "你的照片仍在上传中。马上就会附加完成。",
helpImproveSpot: "通过添加照片或推荐标签来帮助改进此 Spot",
hiddenByModerator: "已被版主隐藏",
hiddenByModeratorDesc: "此 Spot 不会显示在地图或搜索中。你仍能看到它,因为它是你创建的。编辑它不会取消隐藏——在版主撤销裁决之前它会一直隐藏。",
humidity: "湿度",
imageUploaded: "图片已上传",
imageUploadedDesc: "你的图片已成功上传。",
imHere: "我在这里",
invalidCoordinates: "无效的坐标",
invalidCoordinatesDesc: "请输入有效的纬度(-90 到 90)和经度(-180 到 180)。",
invalidNpub: "无效的 npub",
invalidNpubDesc: "请输入有效的 npub 地址。",
lastReported: "最近 {{time}}",
listGear: "列出装备",
listYourGearHere: "在此列出你的装备",
loadingChat: "正在加载聊天…",
locationError: "定位错误",
locationFound: "已找到位置",
locationFoundDesc: "你的当前位置已设置。",
locationRequired: "需要位置",
locationRequiredDesc: "请输入坐标或使用你的当前位置。",
loginRequiredTitle: "需要登录",
logInToChat: "登录以加入本地聊天。",
logInToContributePhotos: "登录以贡献照片",
loginToEditSpot: "你需要登录才能编辑此 Spot。",
logInToReport: "你需要登录才能举报内容。",
logInToReportStatus: "登录以报告此 Spot 的状态。",
logInToSuggestTags: "登录以推荐标签",
manageNip05ToClaim: "管理 NIP-05 以认领",
meetAtSpotForPickup: "💡 在此 Spot 碰面以便安全取货",
memberOne: "{{count}} 名成员",
memberOther: "{{count}} 名成员",
messageFailed: "消息发送失败",
messageMapper: "给标记者留言",
messagePlaceholder: "给此 Spot 留言…(试试 /me 或 /who)",
messagesHiddenOne: "{{count}} 条消息被你的信任筛选隐藏。降低筛选等级以查看更多。",
messagesHiddenOther: "{{count}} 条消息被你的信任筛选隐藏。降低筛选等级以查看更多。",
messagesHiddenShortOne: "{{count}} 条消息被你的信任筛选隐藏",
messagesHiddenShortOther: "{{count}} 条消息被你的信任筛选隐藏",
metresAway: "距离 {{distance}} 米",
moderatorVouchedDesc: "版主审核了此 Spot 并为其背书。干得漂亮。",
monthsAgo: "{{count}} 个月前",
monthsAgoPlural: "{{count}} 个月前",
newOwnerNpub: "新所有者的 npub",
newOwnerNpubHint: "输入你想将此后 Spot 转让给其的用户的 npub。",
nip05RequiredToClaim: "⚠️ 认领商店需要 NIP-05 验证",
noCommunitySignalTitle: "还没有社区照片或状态报告——还没有人确认过这个地方。",
breakdownPhotos: "{{count}} 张照片",
breakdownStatus: "{{count}} 条状态报告",
breakdownComments: "{{count}} 条评论",
breakdownReactions: "{{count}} 个回应",
breakdownCollections: "{{count}} 次收藏",
breakdownZaps: "{{count}} 个 Zap",
breakdownTags: "{{count}} 条标签推荐",
breakdownCrews: "{{count}} 个 Crew",
breakdownLab: "{{count}} 个专业链接",
verifyNudgeTitle: "成为第一个确认此 Spot 的人",
verifyNudgeBody: "一张照片或一句“我在这里滑过”就是 Spot 获得验证的方式——帮下一位滑手一把。",
verifyNudgeStatus: "我在这里滑过",
communityChip: "社区",
seenChip: "已见",
noGearListedYet: "还没有列出装备",
noMessagesYet: "此本地频道还没有消息。打个招呼吧——“今晚有人滑吗?”",
noPhoto: "没有照片",
noReportsYet: "还没有举报",
noTags: "没有标签",
notASkateSpot: "不是滑板 Spot",
offerServicesHere: "💡 在此 Spot 提供你的服务",
photoCaptured: "照片已拍摄!",
photoCapturedDesc: "你的照片已成功上传。",
photoContributed: "照片已贡献!",
photoContributedDesc: "你的照片已添加到此 Spot。",
photosAdded: "你的照片已添加。",
photosRecommended: "强烈推荐——没有照片的 Spot 会一直标记为未验证",
photosUploaded: "已上传 {{count}} 张照片",
photoUploaded: "照片已上传",
photoUploadedDesc: "添加说明并提交以贡献!",
photoUploadFailed: "照片上传失败",
pleaseTryAgain: "请重试",
public: "公开",
publicChatTitle: "任何人都可以阅读此频道中的消息——它是公开且未加密的。",
recentReports: "最近的举报",
recipientRequired: "需要收件人",
recipientRequiredDesc: "请输入新所有者的 npub。",
removeAdmin: "移除(管理员)",
removeSpot: "移除 Spot",
removeSpotAdminTitle: "移除此 Spot?(管理员)",
reportOne: "举报",
reportContent: "举报内容",
reportContentDesc: "通过举报不当内容来帮助维护社区安全。",
reportedBySkaters: " 被 {{count}} 名滑手举报——正在审核中。如果这是真实的 Spot,请添加照片或状态报告以确认它。",
reportedNotASpot: "被举报为非滑板 Spot",
reportingType: "举报 {{type}}",
reports: "举报",
reportShop: "举报商店",
reportSpot: "举报 Spot",
reportStatus: "举报状态",
reportSubmitted: "举报已提交",
reportSubmittedDesc: "感谢你帮助维护 SkateSpots 的安全。",
reportSubmittedLong: "感谢你帮助维护 SkateSpots 的安全与准确。你的举报将由值得信赖的社区成员审核。",
reportSubmittedTitle: "举报已提交",
report: {
notASkateSpot: {
label: "不是滑板 Spot",
description: "测试条目,或完全不适合滑板的地方",
},
fakeSpot: {
label: "虚假/不存在的 Spot",
description: "此 Spot 不存在或位置错误",
},
stolenPhotos: {
label: "盗用/虚假照片",
description: "照片是图库图片或从别处盗用",
},
spamAd: {
label: "垃圾信息或广告",
description: "宣传内容或重复条目",
},
dangerousLocation: {
label: "危险地点",
description: "私人领地、不安全或进入违法",
},
inappropriateContent: {
label: "不当内容",
description: "包含冒犯性或成人内容",
},
impersonation: {
label: "冒充他人",
description: "有人冒充他人",
},
other: {
label: "其他",
description: "以上未列出的其他情况",
},
},
targetType: {
spot: "Spot",
event: "活动",
tour: "Tour",
shop: "商店",
user: "用户",
listing: "商品",
coach: "教练",
filmer: "摄像师",
},
sameOwner: "同一所有者",
sameOwnerDesc: "无法转让给当前所有者。",
saveChanges: "保存更改",
saving: "正在保存...",
services: "服务",
shareSpotText: "快来看看这个滑板 Spot:{{title}}",
shelter: "遮蔽",
shelterHint: "此 Spot 是否暴露在天气中?帮助滑手在下雨时找到干燥的 Spot。",
shopClaimDesc: "如果你拥有或管理这家商店,可以认领它以验证所有权并管理条目。",
shopClaimNip05Hint: "要认领这家商店,请添加与商店网站域名匹配的 NIP-05 标识。",
skatersActiveDesc: "过去 24 小时内在此频道发帖的人。",
skatersActiveOne: "此处有 {{count}} 名滑手活跃",
skatersActiveOther: "此处有 {{count}} 名滑手活跃",
skatersSellingGear: "此 Spot 的滑手正在出售装备",
skateSpot: "滑板 Spot",
somethingWentWrong: "出了点问题",
spot: "Spot",
spotAdded: "Spot 已添加!",
spotAddedDesc: "你的滑板 Spot 已发布到网络。",
spotAddedNoPhoto: "已发布——在有人添加照片之前会标记为未验证。一张 Spot 的照片意义重大。",
spotChat: "Spot 聊天",
spotClaimed: "Spot 已认领!",
spotClaimedDesc: "你现在是此 Spot 的所有者。你可以从个人资料中编辑它。",
spotDeleted: "Spot 已删除",
spotDeletedDesc: "删除请求已发送到 Relay。大多数 Relay 会移除此内容。",
spotMayAlreadyBeOnMap: "该 Spot 可能已经在地图上",
spotMayAlreadyExist: "此 Spot 可能已存在",
spotMayBeAbandoned: "Spot 可能已被遗弃",
spotPhotoAlt: "Spot",
spotRemoved: "Spot 已移除",
spotRemovedDesc: "此 Spot 已被下架,将在整个 SkateSpots 中隐藏。",
spotSeoDesc: "在 SkateSpots 上查看这个滑板 Spot。",
spotStatus: "Spot 状态",
spotStatusDesc: "“{{title}}”还能滑吗?让社区了解它的当前状态。",
spotTypeRequired: "需要 Spot 类型",
spotTypeRequiredDesc: "请选择一个 Spot 类型,让滑手知道他们要去的是什么地方。",
spotUpdated: "Spot 已更新!",
spotUpdatedDesc: "你的更改已发布到网络。",
staffVerifiedTitle: "SkateSpots 管理员审核并为此 Spot 背书。",
statusNotePlaceholder: "可选:添加详情(例如“Ledge 上装了新防滑钉”“保安下午 6 点后赶人”)",
statusReported: "状态已报告",
statusReportedDesc: "感谢你保持地图的新鲜。你的报告已生效。",
submitReport: "提交举报",
submitting: "正在提交...",
suggestedByUser: "由 {{count}} 名用户推荐",
suggestedByUsers: "由 {{count}} 名用户推荐",
suggestedTagsContent: "为 {{title}} 推荐的标签:{{tags}}",
suggestNTags: "推荐 {{count}} 个标签",
suggestOneTag: "推荐 1 个标签",
suggestTags: "推荐标签",
suggestTagsDesc: "通过推荐相关标签帮助为此 Spot 分类。",
tags: "标签",
tagsHint: "添加标签以描述特征、地面、氛围(最多 {{max}} 个)",
tagsSuggested: "标签已推荐!",
tagsSuggestedDesc: "你的标签推荐已提交。",
takePhoto: "拍照",
threeDayForecast: "3 天预报",
tipTheMapper: "给标记者打赏",
tipTheMapperDesc: "觉得这个 Spot 有用?发个 Zap 感谢标记者吧!",
titleRequired: "需要标题",
titleRequiredDesc: "请为此 Spot 输入名称。",
today: "今天",
tomorrow: "明天",
transferDesc: "将“{{title}}”转让给另一位用户。此操作无法撤销。",
transferFailed: "转让失败",
transferOwnership: "转让所有权",
transferRequestContent: "Spot“{{title}}”的所有权转让请求",
transferRequested: "已请求转让",
transferRequestedDesc: "新所有者需要认领该 Spot 才能完成转让。",
transferring: "正在转让...",
transferSpotOwnership: "转让 Spot 所有权",
transferWarningDesc: "转让后,你将无法再编辑或删除此 Spot。",
typeToSearchTags: "输入以搜索或添加标签...",
underReview: "——正在审核中。如果这是真实的 Spot,请添加照片或状态报告以确认它。",
untitledSpot: "未命名 Spot",
unverified: "未验证",
updateDetailsFor: "更新 {{title}} 的详情",
updateSpotDesc: "更新此 Spot 的信息。所有标有 * 的字段均为必填。",
uploadAPhoto: "上传照片",
uploadAPhotoHint: "拖放或点击 · JPG、PNG、WebP",
uploadedAlt: "已上传",
uploadFailed: "上传失败",
uploadingPhoto: "正在上传照片…",
uploadPhotoFirst: "请先上传一张照片。",
uvIndex: "紫外线指数",
verifiedBySkateSpots: "SkateSpots 已验证",
viewPhotoFullScreen: "全屏查看照片",
viewPhotoOf: "查看第 {{n}} 张照片,共 {{total}} 张",
warning: "警告",
weatherConditions: "天气状况",
weatherOnly: "仅天气",
weatherOnlyUnconfirmed: "仅天气。还没有人确认这是滑板 Spot,所以没有状况评分——添加照片或状态报告以确认它。",
whyReporting: "你为什么要举报?",
wind: "风",
yearsAgo: "{{count}} 年前",
yearsAgoPlural: "{{count}} 年前",
},
diyUi: {
title: "DIY —— 自己动手做",
tagline: "指南、开源工具和图纸,帮你打造自己的 Deck、坡道和水泥 Spot——再去寻找配套的人、地点和市场。",
doItWithPeople: "和大家一起做",
backToDiy: "返回 DIY",
calc: {
title: "Deck 成本计算器",
intro: "制作一块 Deck 的成本——人工、设备、材料、工序时间、包装和利润——以及合理的售价。保存在本设备上。",
},
designer: {
title: "Deck 设计器",
intro: "绘制滑板或长板的外形轮廓,然后导出可打印的 1:1 模板、SVG 或用于 CNC 的 DXF。保存在本设备上。",
presets: "预设",
dimensions: "尺寸",
shape: "形状",
kicks: "翘头",
hardware: "Trucks 孔位",
width: "最大宽度",
wheelbase: "轴距",
nose: "板头长度",
tail: "板尾长度",
length: "总长度",
waist: "腰部",
endRound: "端部圆度",
concave: "凹度",
thickness: "厚度",
tailKick: "板尾翘度",
noseKick: "板头翘度",
holeNew: "新式(2.125″)",
holeOld: "老式(2.5″)",
holeSpacing: "新式孔距为 2.125″ × 1.625″(54 × 41 mm);老式为 2.5″ × 1.625″。3/16″ 安装孔。",
topView: "俯视图",
sideView: "侧视图",
concaveSection: "凹面截面",
export: "导出",
pdfA4: "1:1 PDF · A4",
pdfLetter: "1:1 PDF · Letter",
printNote: "以 100% 比例打印 PDF(不要“适应页面”),然后用角上的十字标记拼接纸张。SVG 也是真实尺寸。",
note: "这是你描摹和切割的 2D 轮廓。对于完整 3D 形状和模具设计,真正的 CAD 工具仍是更好的选择。",
},
source: "来源",
comingSoon: "即将推出",
footer: "分步指南即将推出。目前:在 The Lab 寻找制作的人,在地图上标记你的 Spot,并在 Marketplace 上买卖。安全作业——护具、手套和护目镜。",
categories: {
boards: "板面",
ramps: "坡道与木制障碍",
concrete: "水泥与 DIY Spot",
repairs: "维修与调试",
tools: "工具与图纸",
},
cards: {
ossBuild: { title: "制作一块滑板", blurb: "分步的 Deck 制作——木皮、模具、压机和收尾。" },
sk8cad: { title: "SK8CAD", blurb: "用于 Deck 形状、凹面和模具设计的开源 CAD。" },
deckCost: { title: "Deck 成本与定价", blurb: "在制作之前算清材料、人工和合理售价。" },
deckDesigner: { title: "Deck 设计器", blurb: "绘制轮廓并打印 1:1 模板——或导出 SVG/DXF 用于 CNC。" },
ledgeBox: { title: "制作 Ledge 或箱子", blurb: "一个适合新手的木制障碍,一个周末就能做好。" },
quarterpipe: { title: "制作 quarterpipe", blurb: "后院 mini 的坡道图纸、过渡和 coping。" },
flatbar: { title: "制作 flatbar", blurb: "便宜、便携,是学习 Rail 的最佳方式。" },
concreteBasics: { title: "水泥基础", blurb: "搅拌、支模和收尾,做出能持久的 Ledge 或斜面。" },
coping: { title: "Coping 与边缘", blurb: "如何安装 coping 并做好过渡,让 grind 更顺滑。" },
buyParts: { title: "购买零件与装备", blurb: "在 Marketplace 向卖家购买 Deck、五金和工具。" },
mapSpot: { title: "标记你的 DIY Spot", blurb: "做成了什么?把它添加到地图上,让别人也能找到并滑它。" },
regrip: { title: "重新贴 Griptape", blurb: "撕掉旧 Griptape,平整地贴上新的。" },
tune: { title: "调试 Bearings 与 Trucks", blurb: "清洁 Bearings、更换衬套并调整 Trucks 的几何。" },
printMolds: { title: "3D 打印模具", blurb: "来自社区的可打印模具和对齐底座文件。" },
sk8cadTools: { title: "模具与对齐工具", blurb: "设计内置对齐底座的模具。" },
},
actions: {
findBuilder: { title: "寻找建造者", blurb: "The Lab 中能为你设计或浇筑坡道和 DIY 的建造者。" },
findCrew: { title: "寻找 DIY Crew", blurb: "专注于建造的 Crew——加入那些把 Spot 变成现实的人。" },
mapSpot: { title: "标记一个 DIY Spot", blurb: "添加你建造的 Spot,让它出现在地图上。" },
sellBuilds: { title: "出售你的作品", blurb: "在 Marketplace 列出你制作的 Deck、坡道或零件。" },
findCoach: { title: "寻找教练", blurb: "教授 DIY 滑板课程和 Spot 建造的教练。" },
},
},
labelsUi: {
spotCategory: {
street: {
label: "街式",
description: "随机发现的 Spot、城市地形",
},
transition: {
label: "过渡",
description: "弧形/坡道地面",
},
park: {
label: "Park",
description: "建造的滑板公园",
},
plaza: {
label: "广场",
description: "城市广场(如 MACBA、Love Park)",
},
},
spotFeature: {
wallrides: "Wallrides",
stairs: "台阶与扶手",
rails: "Rail",
ledges: "Ledge 与路缘",
gaps: "Gap",
flatground: "平地",
"manual-pads": "Manual 台",
"half-pipes": "Half Pipe",
"quarter-pipes": "Quarter Pipe",
"mini-ramps": "Mini Ramp",
bowls: "Bowl",
vert: "Vert Ramp",
"mega-ramps": "Mega Ramp",
hubbas: "Hubba",
"euro-gaps": "Euro Gap",
banks: "斜面",
"spine-ramps": "Spine Ramp",
"roll-ins": "Roll-in",
hips: "Hip",
volcano: "Volcano",
pyramids: "金字塔 / Funbox",
"snake-runs": "Snake Run",
"pump-track": "Pump Track 波浪",
"flat-bars": "Flat Bar",
},
spotType: {
street: "街式",
transition: "过渡",
park: "Park",
plaza: "广场",
wallrides: "Wallrides",
stairs: "台阶与扶手",
rails: "Rail",
ledges: "Ledge 与路缘",
gaps: "Gap",
flatground: "平地",
"manual-pads": "Manual 台",
"half-pipes": "Half Pipe",
"quarter-pipes": "Quarter Pipe",
"mini-ramps": "Mini Ramp",
bowls: "Bowl",
vert: "Vert Ramp",
"mega-ramps": "Mega Ramp",
hubbas: "Hubba",
"euro-gaps": "Euro Gap",
banks: "斜面",
"spine-ramps": "Spine Ramp",
"roll-ins": "Roll-in",
hips: "Hip",
volcano: "Volcano",
pyramids: "金字塔 / Funbox",
"snake-runs": "Snake Run",
"pump-track": "Pump Track 波浪",
"flat-bars": "Flat Bar",
diy: "DIY",
rail: "Rail",
ledge: "Ledge",
gap: "Gap",
bowl: "Bowl",
stall: "Stall",
slappy: "Slappy",
},
access: {
public: {
label: "公开 —— 对所有人开放",
},
private: {
label: "私人领地 —— 需要许可",
},
locals: {
label: "先询问本地人",
},
},
shelter: {
outdoor: {
label: "室外",
short: "室外",
description: "完全暴露——下雨就没法滑",
},
partial: {
label: "部分遮蔽",
short: "部分遮蔽",
description: "有些障碍能保持干燥",
},
covered: {
label: "有顶 / 带棚",
short: "有顶",
description: "在室外但有顶棚",
},
indoor: {
label: "室内",
short: "室内",
description: "完全封闭——风雨无阻都能滑",
},
},
eventType: {
contest: "比赛",
demo: "Demo",
session: "Session",
workshop: "工作坊",
premiere: "首映",
tradeshow: "展销会",
gameskate: "Game of Skate",
concert: "🎸 音乐会",
jam: "🎵 Jam",
festival: "🎪 音乐节",
popup: "🎯 快闪",
},
gearCategory: {
deck: "Deck",
trucks: "Trucks",
wheels: "Wheels",
bearings: "Bearings",
shoes: "滑板鞋",
clothing: "服装",
protective: "护具",
stickers: "贴纸",
wax: "蜡",
tools: "工具",
griptape: "Griptape",
rubbrick: "磨石",
},
gearCondition: {
new: {
label: "全新",
description: "从未使用,仍在包装中",
},
like_new: {
label: "几乎全新",
description: "几乎没用过,状况极佳",
},
good: {
label: "良好",
description: "正常磨损,功能完好",
},
well_used: {
label: "使用较多",
description: "有磨损但仍可正常使用",
},
},
priceType: {
fixed: {
label: "固定价格",
description: "以美元或 sats 设定的价格",
},
free: {
label: "免费",
description: "赠送",
},
trade: {
label: "交换",
description: "想换物",
},
offer: {
label: "接受出价",
description: "价格可议",
},
},
listingType: {
selling: {
label: "出售",
description: "列出待售装备",
},
wtb: {
label: "想买",
description: "寻找特定装备",
},
},
tour: {
spotType: {
street: "街式",
park: "Park",
diy: "DIY",
transition: "过渡",
hidden: "隐藏宝地",
},
category: {
local: {
label: "本地 Tour",
description: "带你看你所在城市的隐藏 Spot",
},
national: {
label: "全国 Tour",
description: "横跨全国的多城市公路之旅",
},
international: {
label: "国际 Tour",
description: "跨越多个国家的跨境冒险",
},
destruction: {
label: "世界毁灭之旅",
description: "KOTR 风格的全球团队竞赛",
},
},
},
crew: {
vibe: {
street: "街式",
transition: "过渡 / Vert",
park: "Park",
diy: "DIY",
cruising: "巡航 / 拍摄",
oldschool: "老派",
allterrain: "全地形",
girls: "女生 / 女性",
youth: "青少年 / 小孩",
adaptive: "适应性",
punk: "朋克",
hiphop: "说唱 / Hip-Hop",
},
focus: {
mixed: "混合 / 综合",
builder: "DIY 与建造者",
photo: "摄影与摄像",
coaching: "教学",
art: "艺术与设计",
music: "乐队与音乐",
wellness: "训练与理疗",
},
focusDescription: {
mixed: "一个普通滑板 Crew——只显示在 Crew 页面上。",
builder: "一个 DIY / 公园建造 Crew——也会显示在 The Lab 的建造者下。",
photo: "一个摄像、摄影或剪辑 Crew——也会显示在 The Lab 的摄影与摄像下。",
coaching: "一个教学 / 课程 Crew——也会显示在 The Lab 的教学下。",
art: "一个艺术、设计、涂鸦或纹身团体——也会显示在 The Lab 的艺术与设计下。",
music: "一个乐队或音乐团体——也会显示在 The Lab 的音乐下。",
wellness: "一个训练、健身或理疗 Crew——也会显示在 The Lab 的训练下。",
},
lookingFor: {
filmer: "摄像师",
photographer: "摄影师",
editor: "视频剪辑",
coach: "教练",
builder: "坡道建造者",
artist: "艺术家 / 设计师",
musician: "乐手 / 乐队",
members: "新成员",
},
role: {
filmer: "摄像师",
photographer: "摄影师",
editor: "剪辑",
coach: "教练",
builder: "建造者",
artist: "艺术家",
graffiti: "涂鸦",
tattoo: "纹身",
trainer: "训练师",
musician: "乐手",
judge: "裁判",
manager: "团队经理",
og: "OG",
},
},
memberVisibility: {
public: {
label: "公开",
description: "任何人都能在公开的 Crew 页面和队友发现中看到你。",
},
crew: {
label: "仅 Crew 可见",
description: "只有已确认的队友和创始人能在这里看到你。对其他人来说,你显示为匿名的“隐藏成员”。注意:这是应用层面的隐私——你的成员标签仍然公开存在于 Relay 上,只是从不向外部人员显示。",
},
},
tagCategory: {
features: {
name: "特征",
description: "障碍和地形",
},
surfaces: {
name: "地面",
description: "材质和纹理",
},
sizes: {
name: "尺寸",
description: "大小和规模",
},
stairs: {
name: "台阶数",
description: "台阶数量",
},
vibes: {
name: "氛围",
description: "气氛和状况",
},
location: {
name: "位置",
description: "位置背景",
},
tricks: {
name: "招式",
description: "适合特定招式",
},
},
spotTagCategory: {
street: {
label: "街式",
description: "街式 Spot——台阶、Rail、Ledge",
},
park: {
label: "Park",
description: "滑板公园——公共或私人",
},
diy: {
label: "DIY",
description: "DIY / 自制 Spot",
},
plaza: {
label: "广场",
description: "适合滑板的公共广场建筑",
},
},
status: {
active: {
label: "可滑",
description: "状态良好——放心去滑。",
},
bust: {
label: "易被赶",
description: "被赶风险高——有保安或警察。",
},
skate_stopped: {
label: "防滑处理",
description: "被加装防滑钉/封盖,但仍可部分滑行。",
},
closed: {
label: "关闭",
description: "暂时关闭——施工或活动。",
},
gone: {
label: "已消失",
description: "被拆除、铺平或永久围封。",
},
},
price: {
free: "免费",
trade: "交换",
makeOffer: "接受出价",
offer: "出价",
},
},
feesUi: {
feeFeaturedEventLabel: "推荐活动",
feeFeaturedEventDesc: "在 SkateSpots 上推荐你的活动",
feeFeaturedEventBenefit: "你的活动会出现在活动页面顶部",
feeLabProfileLabel: "The Lab 专业资料",
feeLabProfileDesc: "在 The Lab 中推荐你的服务",
feeLabProfileBenefit: "滑手浏览 The Lab 时获得专业徽章和推荐位置",
feeFeaturedShopLabel: "推荐商店",
feeFeaturedShopDesc: "在地图和目录中推荐你的滑板商店",
feeFeaturedShopBenefit: "已验证徽章 + 地图上的推荐标记",
feeFeaturedTourLabel: "推荐 Tour",
feeFeaturedTourDesc: "在 SkateSpots 上推荐你的 Tour",
feeFeaturedTourBenefit: "滑手浏览 Tour 时获得专业徽章和置顶位置",
duration7d: "7 天",
duration30d: "1 个月",
duration90d: "3 个月",
duration365d: "12 个月",
metaActive: "{{label}} —— 生效中",
daysRemainingOne: "剩余 {{count}} 天",
daysRemainingMany: "剩余 {{count}} 天",
zapRequestContent: "SkateSpots {{label}}({{tier}})",
errGenerate: "生成发票失败",
paymentReceived: "⚡ 收到付款!",
paymentReceivedDesc: "{{amount}} sats —— {{label}} 现已生效。",
autoPayFailed: "自动支付失败",
autoPayFailedDesc: "请使用下方的二维码或发票手动支付。",
payStatusUnknown: "支付状态未知——款项可能已支付。再次支付前请先检查你的钱包。",
invoiceCopied: "发票已复制!",
activeBang: "{{label}} 已生效!",
chooseDuration: "选择时长",
bestValue: "最超值",
perDay: "{{price}}/天",
validFor: "有效期",
amountLine: "约 ${{usd}} USD · 支付给 {{name}} · {{tier}}",
payToContinue: "支付 {{amount}} sats 以继续",
generating: "正在生成发票…",
processing: "正在处理付款…",
invoiceQrAlt: "Lightning 发票二维码",
copyInvoice: "复制发票",
openWallet: "打开钱包",
payConnected: "使用已连接的钱包支付",
scanAny: "用任意 Lightning 钱包扫描",
tryAgain: "重试",
proReceiptTitle: "🦧⚡ Sasquatch Pro —— 你已加入!",
proReceiptPass: "通行证:{{pass}}({{sats}} sats)",
proReceiptActiveUntil: "有效期至:{{until}}",
proReceiptUnlocked: "你解锁了:",
proReceiptBullet1: "• 个人助理——我读取你的 Stash、Crew、Spot 和商品",
proReceiptBullet2: "• 操作草稿——列出装备、发布 Spot 状态、规划旅行(由你确认)",
proReceiptBullet3: "• 使用你个人背景的答案,而不只是公开数据",
proReceiptBullet4: "• ⚡ 你直接在支持 SkateSpots,让它保持免费且无广告",
proReceiptThanks: "感谢你让 SkateSpots 保持免费且无广告。现在去滑吧。🛹",
proReceiptSubject: "Sasquatch Pro 收据",
receiptContent: "Sasquatch Pro —— {{tier}} 支持者通行证 🦧⚡",
receiptAlt: "Sasquatch Pro 支持者通行证({{tier}}),有效期至 {{until}}",
purchaseComment: "Sasquatch Pro —— {{tier}} 🦧",
errLogin: "登录以升级到 Pro。",
errStart: "无法开始购买。",
errRecord: "无法记录你的通行证。",
},
cardUi: {
save: "将卡片保存到 Nostr",
saved: "卡片已保存",
savedDesc: "你的卡片现已签名并可验证。",
saveFailed: "无法保存卡片",
notPublished: "未发布",
titleNeon: "Rider",
titleRest: "Card",
saveFrontPng: "保存正面(PNG)",
expired: "已过期",
logoUploaded: "Logo 已上传",
logoUploadFailed: "无法上传 Logo",
venue: "关联场地(可选)",
venueNone: "无场地",
venueHint: "选择你自己的一个 Spot,将此通行证绑定到某个场地。验证者会确认你拥有它。",
venuePick: "选择你的场地",
parkNoVenue: "Park 通行证只能由场地所有者签发——请先标记一个你拥有的 Spot。",
parkAddVenue: "添加 Spot",
parkNeedsVenue: "选择你拥有的场地",
parkIssued: "已签发的通行证",
parkRevoke: "撤销",
parkRevoked: "已撤销",
parkRevokeFailed: "无法撤销",
v: {
valid: "有效",
validDesc: "签名有效,且由该场地签发。",
expired: "已过期",
expiredDesc: "已超过有效期。",
revoked: "已撤销",
revokedDesc: "签发者已取消此通行证——请勿接受。",
invalid: "无效",
invalidDesc: "签名无法验证。请勿信任。",
notFound: "未找到",
notFoundDesc: "Relay 上没有匹配的记录。",
unverifiedIssuer: "未验证的签发者",
unverifiedIssuerDesc: "此通行证所指的场地并非由签发者的密钥拥有。",
notBound: "未绑定",
notBoundDesc: "未绑定到场地——无法证明任何准入权限。",
noRsvp: "无 RSVP",
noRsvpDesc: "持有者没有此活动的 RSVP 记录。",
admitted: "已准入",
admittedDesc: "组织者的活动 + 持有者已 RSVP。",
noHolder: "链接中没有持有者",
noHolderDesc: "此二维码没有票据持有者(`?h=`),因此无法核对持有者。",
},
passes: {
tab: "我的通行证",
pass: "准入通行证",
none: "还没有通行证。当场地或组织者为你签发时,它会显示在这里。",
},
facets: {
title: "显示身份特征",
crews: "Crew",
local: "本地",
roles: "The Lab 角色",
},
roles: {
coach: "教练",
filmer: "摄像师",
editor: "剪辑",
photographer: "摄影师",
builder: "建造者",
artist: "艺术家",
graffiti: "涂鸦",
tattoo: "纹身",
trainer: "训练师",
musician: "乐手",
judge: "裁判",
organizer: "组织者",
barber: "理发师",
},
crew: {
crewCard: "CREW CARD",
crewSub: "你的 Crew,印在卡片上",
pick: "选择一个 Crew",
none: "你还没有加入任何 Crew——请先加入或创建一个。",
hint: "卡片由 Crew 自己签名的数据生成。要更改它,请在 Crew 页面编辑。",
members: "成员",
spots: "SPOT",
est: "成立于 {{year}}",
openCall: "公开招募",
verifiedCrew: "已验证 Crew",
viewCrew: "查看 Crew",
},
event: {
pass: "活动通行证",
passSub: "一张你要参加的活动通行证",
pick: "选择一个活动",
none: "还没有活动——请先创建一个,或 RSVP 一个。",
hint: "通行证由活动自己签名的数据生成。只有组织者可以更改它。",
admits: "准入人数",
going: "{{count}} 人参加",
verifiedEvent: "已验证活动",
viewEvent: "查看活动",
issuePass: "签发签到通行证",
issuePassBtn: "签发通行证",
issuePassHint: "为特定参与者签发的签名通行证——他们在入场时出示。",
notOrganiser: "只有组织者可以签发通行证",
passIssued: "通行证已签发",
issueFailed: "无法签发通行证",
issuedPasses: "已签发的签到通行证",
},
studio: {
unsaved: "未保存的更改",
saved: "已保存",
saveChanges: "保存更改",
allSaved: "已保存——最新",
showOnCard: "在卡片上显示",
derived: "来自你的 Skater 资料",
noSkaterProfile: "还没有 Skater 资料——",
editSkaterProfile: "添加你的风格和等级",
noPhoto: "还没有头像——",
addPhoto: "在个人资料中添加一张",
finishTitle: "完善你的卡片",
finishDesc: "一张照片和一份 Skater 资料能让它看起来更真实。",
checkPhoto: "头像",
checkName: "显示名称",
checkProfile: "风格和等级",
checkCrew: "加入一个 Crew",
moreTypes: "当你标记自己拥有的 Spot、加入 Crew 或 RSVP 活动时,会解锁更多卡片类型。",
accent: "强调色",
accentHint: "覆盖主题强调色",
accentClear: "使用主题颜色",
logo: "自定义 Logo / 徽章",
logoAdd: "上传",
logoChange: "更换",
logoClear: "移除",
},
back: {
title: "可打印的背面",
desc: "背面的 Crew、角色、赞助商和链接",
showBack: "显示背面",
showFront: "显示正面",
empty: "这里还没有内容——添加 Crew、角色或赞助商。",
},
verify: {
checking: "正在检查卡片…",
notFound: "未找到卡片",
notFoundDesc: "Relay 上没有找到匹配的事件。它可能已被删除,或链接有误。",
invalid: "签名无效",
invalidDesc: "此事件存在,但签名无法验证。请勿信任。",
authentic: "真实",
authenticDesc: "签发者的签名有效。",
kind: "类型",
kindPark: "Park 准入卡",
kindRider: "Rider Card",
kindCrew: "Crew Card",
kindEvent: "活动通行证",
organiser: "组织者",
expired: "已过期",
valid: "有效",
holder: "持有者",
ticketHolder: "票据持有者",
rsvp: "RSVP",
rsvpGoing: "参加",
rsvpInterested: "感兴趣",
rsvpNone: "未找到 RSVP",
revoked: "通行证已撤销",
revokedDesc: "签发者已取消此通行证——请勿接受。",
issuedBy: "签发者",
accessLevel: "准入等级",
validThru: "有效期至",
selfIssued: "状态",
selfIssuedDesc: "自签发的身份卡",
venue: "场地",
venueVerified: "已验证——此场地的所有者密钥与签发者匹配。",
venueMismatch: "此通行证所指的场地并非由签发者的密钥拥有。",
venueNone: "未绑定到场地。",
viewCard: "查看卡片",
disclaimer: "有效的签名只能证明是谁签署了这张卡片——它不能证明技术水平,也不能证明超出该场地签发范围之外的准入权限。",
details: "详情",
invalidLink: "无效链接",
invalidLinkDesc: "这看起来不像是有效的卡片链接。",
},
public: {
invalid: "这看起来不像是有效的卡片链接。",
createYourOwn: "创建你自己的卡片",
editYourCard: "编辑你的卡片",
backToEditor: "返回编辑器",
backHome: "返回首页",
notCustomised: "这位滑手还没有自定义卡片——这是默认外观。",
verifyNote: "扫描卡片上的二维码以验证它。",
},
},
routeUi: {
destination: "目的地",
routeTo: "前往 {{label}} 的路线",
routeToLabel: "前往",
search: "搜索",
description: "路线选项和应用内导航。",
routeMapAria: "路线地图",
findingLocation: "正在寻找你的位置…",
plottingRoute: "正在规划你的路线…",
refiningLocation: "正在精确定位…",
offlineSavedRoute: "离线 · 已保存路线 {{age}}",
tapMapStart: "点击地图设置你的起点",
fitRouteAria: "在地图上显示整条路线",
wholeRoute: "整条路线",
next: "下一个",
nextStep: "下一个 · 第 {{n}} 步",
followTheLine: "沿着路线走",
toTheTurn: "到转弯处",
toGo: "剩余",
tryAgain: "重试",
mode: {
foot: "滑板 / 步行",
bike: "骑行",
moto: "摩托",
car: "驾车",
transit: "公共交通",
},
from: "起点",
myLocation: "我的位置",
tapTheMap: "点击地图…",
chooseOnMap: "在地图上选择",
direct: "直达",
transferOne: "1 次换乘",
transfers: "{{count}} 次换乘",
options: "{{count}} 个选项",
ride: "乘坐",
arrive: "到达",
speedAvg: "平均 {{speed}} km/h",
stepsCount: "{{count}} 步",
onABoard: "滑板",
usesDrivingRoads: "使用机动车道路",
drivingEstimate: "驾车估算",
updating: "正在更新…",
pickMode: "选择一种出行方式以查看路线。",
waitingLocation: "正在等待你的位置…",
routeSteps: "路线步骤",
walkingRoute: "步行路线——滑板会更快",
planningView: "规划视图——点击“开始”以启用实时转弯、语音和到达提示进行导航。",
leaveNow: "立即出发",
departAt: "出发时间",
arriveBy: "到达时间",
departureTime: "出发时间",
arrivalTime: "到达时间",
only: "仅",
clear: "清除",
itinerary: "行程",
group: {
bus: "公交",
tram: "有轨电车",
metro: "地铁",
train: "火车",
ferry: "渡轮",
},
walk: "步行",
rideVerb: "乘坐",
walkLower: "步行",
rideLower: "乘坐",
toStop: "到",
track: "站台 {{track}}",
stopOne: "1 站",
stopsCount: "{{count}} 站",
tickets: "车票 ↗",
done: "完成",
stop: "停止",
start: "开始",
arrived: "你已到达。🛹",
voiceOnNote: "屏幕保持常亮 · 语音开启——会播报转弯和到达。",
voiceOffNote: "屏幕保持常亮 · 语音关闭。",
followNote: "滑行时提供转弯、语音和到达提示。保持屏幕常亮。",
voiceOffAria: "关闭语音导航",
voiceOnAria: "开启语音导航",
voiceStart: "正在开始导航",
voiceArrived: "你已到达",
voiceIn: "{{metres}} 米后,{{instruction}}",
voiceContinue: "继续",
voiceContinueCaps: "继续",
errPermissionDenied: "位置权限被拒绝。",
errWaitingGps: "正在等待 GPS 定位…",
errPermissionDeniedLong: "位置权限被拒绝。请启用定位以从你所在的位置规划路线。",
errNoLocation: "无法获取你的位置。请重试。",
errNoLocationShort: "无法获取你的位置。",
errTransitNoRouteFiltered: "该时间或交通方式没有路线——请尝试其他时间,或包含更多方式。",
errTransitNoRoute: "此处未找到公共交通路线——该地区可能未公开时刻表。",
errTransitUnreachable: "无法连接公共交通服务。请检查网络连接后重试。",
errRoutingBusy: "路线服务当前繁忙——请稍后重试。",
errNoRouteMode: "此方式没有路线——目的地可能不在道路网络中。请尝试其他方式。",
errRoutingUnreachable: "无法连接路线服务。请检查网络连接后重试。",
departures: "发车时刻",
upcomingFrom: "{{stop}} 的即将发车",
loadingDepartures: "正在加载发车时刻…",
noDepartures: "此站点未找到即将发车。",
live: "实时",
cancelled: "已取消",
refresh: "刷新",
tripLoginTitle: "登录以保存",
tripLoginDesc: "登录以将此行程保存为合集。",
tripCollectionTitle: "{{destination}} 滑板之旅 🛹",
tripCollectionDesc: "The Sasquatch 规划的旅行——在 {{destination}} 的 {{count}} 天。",
tripCollectionDescOne: "The Sasquatch 规划的旅行——在 {{destination}} 的 {{count}} 天。",
tripSavedTitle: "已保存到合集 🦧",
tripSavedDesc: "你的 {{destination}} 之旅已收藏。",
tripSaveFailed: "无法保存",
tripSaveFailedDesc: "请稍后重试。",
daysInDestinationOne: "在 {{destination}} 的 {{count}} 天",
daysInDestination: "在 {{destination}} 的 {{count}} 天",
wetForecast: "雨天预报——找本地 Crew 推荐有遮蔽/室内的选项。",
dayLabel: "第 {{n}} 天",
freeSkate: "自由滑行——探索并拍摄。🎥",
tapToBook: "点击预订 / Zap ⚡",
localCrews: "本地 Crew",
saving: "正在保存…",
savedToCollections: "已保存到合集",
saveSpotOne: "保存 {{count}} 个 Spot 到合集",
saveSpots: "保存 {{count}} 个 Spot 到合集",
flights: "航班",
stays: "住宿",
gettingAround: "出行",
noMiddleman: "我负责规划滑板行程——航班和住宿会在真实网站上打开(无 KYC,无中间商)。",
ageJustNow: "刚刚",
ageMinAgo: "{{count}} 分钟前",
ageHourAgo: "{{count}} 小时前",
ageDayAgo: "{{count}} 天前",
skateRightHere: "就在这里",
skateMin: "约 {{count}} 分钟滑行",
skateHours: "约 {{hours}} 小时滑行",
maneuver: {
headOut: "出发",
arrive: "到达 Spot",
continueStraight: "继续直行",
bearLeft: "向左偏",
bearRight: "向右偏",
turnLeft: "左转",
turnRight: "右转",
sharpLeft: "急左转",
sharpRight: "急右转",
turn: "转弯",
keepLeft: "靠左",
keepRight: "靠右",
takeFork: "走岔路",
merge: "汇入",
roundabout: "进入环岛",
takeRamp: "走匝道",
takeExit: "驶出出口",
},
maneuverOnto: "{{instruction}}进入 {{road}}",
},
sasquatchUi: {
live: "实时",
offline: "离线",
genericTitle: "SkateSpots 助手 🦧",
genericGreeting: "哟!我是 The Sasquatch。关于 Spot、活动、教练、装备或应用怎么用,尽管问我。我有来自 SkateSpots Relay 的实时数据!",
q1: "帮我规划里斯本 3 天",
q2: "找我附近的 Spot",
q3: "有什么即将举行的活动?",
q4: "Crew 是什么?",
q5: "Zap 是怎么运作的?",
q6: "Nostr 是什么?",
q7: "我的 Stash 是什么?",
q8: "这是免费的吗?",
bubbleTitle: "按住拖动来移动 · 点击打开",
openGuideAria: "打开 Sasquatch 指南",
hideAria: "隐藏 Sasquatch 助手",
hide: "隐藏助手",
showAria: "显示 Sasquatch 助手",
activeUntil: "有效期至 {{date}}",
platformOwner: "平台所有者",
upgradeTitle: "升级到 Sasquatch Pro",
goPro: "升级 Pro",
goProBlurb: "个人 AI · 2000 sats 起",
aiBalanceTitle: "Sasquatch AI 余额(仅所有者可见)——在 {{provider}} 充值",
aiChip: "⚡ AI {{balance}}",
minimizeToBubbleAria: "最小化为气泡",
minimize: "最小化",
closePanelAria: "关闭面板",
close: "关闭",
askLab: "询问教学与拍摄",
askMap: "询问 Spot、商店与装备",
askAnything: "有任何问题都可以问我 🛹",
quickQuestions: "快捷问题:",
you: "🧑 你",
thinking: "思考中...",
inputPlaceholder: "询问 Spot、活动、教练...",
liveDataFrom: "实时数据来自",
nostrRelays: "Nostr Relay",
clear: "清除",
gettingLocation: "📍 正在获取你的位置…",
findingClosest: "🔍 正在寻找最近的 Spot…",
checkingLive: "🔍 正在检查实时数据…",
planningTrip: "🗺️ 正在规划你的 {{destination}} 之旅...",
searchingRelays: "🔍 正在 Relay 中搜索 {{tool}}...",
perk1: "个人助理——Sasquatch 读取你自己的 Stash、Crew、Spot 和商品",
perk2: "操作草稿:列出装备、发布滑板状态、规划旅行——任何内容发布前都由你确认",
perk3: "答案使用你的个人背景,而不只是公开数据",
perk4: "⚡ 直接支持 SkateSpots,让它保持免费且无广告",
welcomeTitle: "感谢你支持 Sasquatch Pro!🦧⚡",
welcomeDesc: "付款已发送——提供商确认后你的通行证即会激活(通常在 1 分钟内)。感谢你让街头保持自由。",
invoiceCopied: "发票已复制",
dialogDesc: "给你的 AI 滑板向导加速。100% 用于资助一个免费、无广告的社区应用。",
proSupporter: "你是 Pro 支持者 ⚡",
extendPrompt: "想延长?在下面选择一个档位来添加更多时间。",
scanToPayPre: "扫码支付",
scanToPayAmount: "{{sats}} sats",
scanToPayPost: "以获得 {{label}} 的 Pro",
invoiceQrAlt: "Lightning 发票二维码",
copyInvoice: "复制发票",
ivePaid: "我已支付",
ivePaidHint: "钱包确认后点击“我已支付”——这会将你的通行证记录到你的 Nostr 身份。",
freeStaysPre: "免费版 Sasquatch 始终保持免费——公开的 Spot/活动/教练搜索、旅行规划和完整的招式词汇表。Pro 增加 ",
freeStaysEmphasis: "个人 + 操作",
freeStaysPost: " 层。",
loginFirst: "请先登录再升级。",
paysTo: "支付给",
overLightning: "通过 Lightning。绑定到你的 npub。",
popular: "热门",
sats: "sats",
extend: "延长",
done: "完成!",
cancelledNothing: "已取消——没有发布任何内容。",
draftReview: "草稿——请审核并确认",
statusTextPlaceholder: "状态文字",
titlePlaceholder: "标题",
priceSatsPlaceholder: "价格(sats)",
conditionPlaceholder: "成色",
cancel: "取消",
aiTitle: "Sasquatch AI",
owner: "所有者",
notConfigured: "未配置",
unavailable: "不可用",
satsValue: "{{balance}} sats",
theNode: "该节点",
lowBalance: "余额不足——请在 {{provider}} 充值,否则 AI 将回退到无需密钥的提供商。",
aiDesc: "按请求付费的 AI,通过 Routstr 以 sats 充值。余额不足时自动充值。",
tier7d: "7 天",
tier1m: "1 个月",
tier3m: "3 个月",
tier1y: "1 年",
badgeTry: "试试",
badgeOff20: "8 折",
badgeBest: "最超值 · 6 折",
draftPostStatusTitle: "发布滑板状态",
draftAutoExpires: "{{count}} 分钟后自动过期",
draftPostStatusCta: "发布状态",
draftCategory: "类别:{{value}}",
draftSize: "尺寸:{{value}}",
draftCondition: "成色:{{value}}",
draftMaxPrice: "最高价格:{{price}} {{currency}}",
draftPriceOpen: "价格:面议",
draftLookingForTitle: "寻找“{{title}}”",
draftWantedCta: "发布求购",
draftPrice: "价格:{{price}} {{currency}}",
draftPriceOffer: "价格:接受出价",
draftListTitle: "出售“{{title}}”",
draftPublishCta: "发布商品",
statusPosted: "状态已发布 🛹",
wantedPublished: "求购已发布 🔎",
listingPublished: "商品已发布 💸",
mustBeLoggedIn: "你必须先登录。",
},
sasquatchChat: {
faq: {
hi: "嘿!我是 The Sasquatch 🦧 你的 AI 滑板向导。关于 Spot、活动、教练、装备——或应用的任何问题,都可以问我。你需要什么?",
hello: "嘿!🛹 我是 The Sasquatch。关于滑板 Spot、活动、教练,或应用怎么用,尽管问我。有什么想了解的?",
hey: "嘿,滑手!🤙 问我你附近的 Spot、即将举行的活动、教练,或任何 SkateSpots 相关的问题。",
whoAreYou: "我是 The Sasquatch 🦧——SkateSpots 的 AI 向导。我可以查找全球的滑板 Spot、查询活动、教练、摄像师和装备商品。全部由实时 Nostr 数据驱动。尽管问!",
whatCanYouDo: "我可以按城市或国家查找滑板 Spot、查询即将举行的活动、在 The Lab 中寻找教练和摄像师、搜索装备商品,并回答关于应用如何运作的问题。试试:“曼谷的 Spot”或“找教练”!🛹",
whatIsNostr: "Nostr 是一种简单、开放的去中心化社交网络协议。可以理解为 Twitter,但没有单一公司控制它——你用密码学密钥代替用户名,选择哪些 Relay 存储你的数据(也可以自建),一个账号可在所有 Nostr 应用间通用!🔑",
isThisPrivate: "这是坦诚的说明 🛡️\n\n• 你的 **GPS 位置保留在你的设备上**——“附近”只是将地图居中。它绝不会发送给我们或被发布。\n• **你添加的 Spot 是公开的**(这正是共享地图的意义)——所以不要把标记放在自己家门口。\n• **私信和 Crew 聊天是端到端加密的**——只有成员能读取。\n• 与任何网站一样,你连接的服务器(地图瓦片、Relay)可以看到你的 **IP**。想连这个也隐藏?使用 VPN 或 Tor。\n\n完整详情见[隐私页面](/privacy)。🛹",
privacy: "简要版 🛡️:你的 GPS 从不离开你的设备,你发布的 Spot 按设计就是公开的,私信/Crew 聊天是端到端加密的。服务器仍能看到你的 IP(任何网站都如此)——想的话可以用 VPN 或 Tor 隐藏。完整说明见[隐私页面](/privacy)。",
amITracked: "SkateSpots 不追踪你——没有广告、没有分析画像、不售卖数据,也没有 SkateSpots 服务器收集你的位置。你的 GPS 保留在设备上。服务器能看到的一件事是 **IP**(地图瓦片、Relay)——和任何网站一样。想隐藏就用 VPN 或 Tor。更多见[隐私页面](/privacy)。🛡️",
doYouTrack: "不会——没有追踪、没有广告、没有数据收集。你的 GPS 保留在设备上,也没有中央服务器记录你。你连接的服务器可以看到你的 IP(和任何网站一样);VPN/Tor 可以隐藏它。见[隐私页面](/privacy)。🛹",
vpn: "完全可选,但如果你想获得额外隐私,这很靠谱 🛡️。VPN 会向 SkateSpots 通信的服务器(地图瓦片、Relay 等)隐藏你的 **IP**(大致位置)。选择一个你信任的、不记录日志的提供商(如 Mullvad);避免来路不明的免费 VPN。\n\n注意:VPN **不能**隐藏你发布的 Spot(那些是公开的),如果你要保持匿名,就不要打开浏览器 GPS。完整详情见[隐私页面](/privacy)。",
tor: "Tor 浏览器能提供最强的 IP 隐私——它会通过多个 Relay 路由你,使服务器看不到你的真实 IP 🧅。代价:速度更慢,地图和某些 Nostr Relay 可能延迟或阻止 Tor 出口节点。非常适合格外谨慎的人。\n\n记住:Tor 隐藏的是你的 IP,不是你发布的 Spot;如果目标是匿名,就不要启用浏览器 GPS。更多见[隐私页面](/privacy)。",
hideMyIp: "两个免费选项 🛡️:**信誉良好的 VPN**(简单、快速——将你的 IP 隐藏在其服务器后面)或 **Tor 浏览器**(隐私最强,速度较慢)。任何一个都能让 SkateSpots 连接的服务器看不到你的真实 IP。注意它们不会隐藏你发布的 Spot。见[隐私页面](/privacy)。",
isMyLocation: "你的位置很安全 📍——“附近”只在你的设备上读取你的 GPS,用于将地图居中并排序附近的 Spot。它绝不会发布到 Nostr、绝不会发送给我们、绝不会共享。只有你主动添加的 Spot 才是公开的。详情见[隐私页面](/privacy)。",
whatAreZaps: "Zap 是通过 Nostr 发送的即时 Bitcoin Lightning 打赏!点击任意内容上的 ⚡,直接把 sats 发送到创作者的钱包。就像点赞,但用的是真钱。即时、点对点、无中间商。⚡",
howToLogin: "两种方式:\n1. **浏览器扩展**(桌面端):安装 Alby 或 nos2x,然后点击“登录”\n2. **新用户**:点击“注册”生成密钥。下载你的 nsec(私钥)并保存好——这是你永远的账号!",
whatIsCashu: "内置 Bitcoin 钱包!Cashu ecash 代币由 Lightning 背书——在滑板 Spot 可离线使用,注重隐私(Mint 无法追踪支付)。前往“设置”中的钱包使用。🥜",
whatIsNwc: "Nostr Wallet Connect——就像 Lightning 钱包的 USB-C。连接一次 Alby、Minibits、Zeus 或 Coinos,之后一键 Zap。已加密,支出限额由你控制。🔌⚡",
isItFree: "100% 免费。没有广告,没有订阅,没有企业套路。由滑手为滑手打造。通过 Angor 由社区资助——查看支持者页面。你也可以通过贡献优质 Spot 从社区 Zap 中获得 Bitcoin。🛹",
whatCanIDo: "在地图上发现全球 Spot,在 The Lab 雇佣专业人士(教练、摄像师、摄影师、剪辑师、坡道建造者),加入 Crew 一起滑,参加活动,参加 Tour,买卖装备,记录你的私人 Stash,Zap 创作者,查看 Spot 天气,并共建这个去中心化的滑板社区!",
whatIsTheLab: "The Lab 是你雇佣滑板圈专业人士的地方:教练、摄像师、摄影师、视频剪辑师,以及坡道/公园/DIY 建造者。每个都可以是个人或团体(Crew/工作室)——成员用各自的密钥确认,所以真实可靠。全部在 Nostr 上,没有假账号。🎓",
whatIsACrew: "Crew 是锚定在地图上的滑板家人——是你一起滑的人,不是你雇佣的人。每个 Crew 在地图上都有主场(青色标记)、常去 Spot、成员、氛围和宣言。成员用各自的密钥确认。在 Crew →“创建 Crew”中创建一个。🤘",
whatAreCrews: "Crew 是锚定在地图上的滑板家人——是你一起滑的人,不是你雇佣的人。每个 Crew 在地图上都有主场(青色标记)、常去 Spot、成员和宣言。成员用各自的密钥确认。前往 Crew 标签页创建或加入一个!🤘",
howToStartACrew: "前往 Crew 标签页 →“创建 Crew”。取个名字,在地图上放置你的主场,添加氛围(或自定义 #话题标签),关联你的常去 Spot,并按 npub 添加成员。每位成员用各自的密钥确认,所以名单是真实可靠的。🤘",
whatIsMyStash: "我的 Stash 是你的私人、加密装备柜(NIP-44 加密)。记录你的 Deck、Trucks、Wheels、鞋子——包括存放位置、成色、稀有度和价格。除非你把物品标记为公开,否则只有你能读取。非常适合保险或计划交换。🎒",
whatIsStash: "我的 Stash 是你的私人、加密装备清单。记录你拥有的一切——成色、存放位置、价值——全部加密,只有你能看到。想出售或展示时把物品标记为公开。🎒",
whatIsABuilder: "建造者是 The Lab 中的坡道/公园/DIY Crew,你可以雇佣他们建造过渡、Bowl、Rail 或整个公园。他们会列出建造内容、材料、项目规模,并且可以有执照/保险。通常是团体——他们还能把建造的 Spot 关联到地图上。🏗️",
whatIsANutzap: "Nutzap(NIP-61)是通过 Nostr 发送的 ecash 打赏——私密的 Cashu 代币直接 Zap 给某人。你可以在钱包中设置接收 nutzap。(发送完整 nutzap 正在逐步推出——目前请使用 Lightning Zap。)🥜⚡",
whatIsClink: "CLINK 是一种 Nostr 原生的支付码(“noffer”)。商店、Crew 和 The Lab 专业人士都可以添加一个,这样你无需 Lightning 地址也能向他们付款——你会看到一个带二维码的“通过 CLINK 支付”按钮。用像 ShockWallet 这样的 CLINK 钱包扫描它。🔗⚡ [规范](https://clinkme.dev/specs.html) [应用](https://clinkme.dev/apps.html)",
whatIsNoffer: "noffer 是一种 CLINK 支付码——一种可复用的、Nostr 原生的收款方式,无需 Web 服务器或 Lightning 地址。在你的商店/Crew/The Lab 资料中添加你的,别人就能直接向你付款。🔗",
whatAreTours: "Tour 是有人带领的滑板之旅——本地的场次、全国公路之旅,或世界毁灭之旅。在地图或 Tour 版块找到它们,碰面,并与本地人一起滑新地形。🗺️🛹",
whatIsAShop: "滑板商店是地图上列出的本地商店。发现并支持你所在地区的实体(或线上)滑板商店——有些甚至接受 Bitcoin。🏪",
howToSellGear: "前往装备交换 / Marketplace 创建商品(NIP-99)。添加照片、以 sats 定价、成色,并可选地把它固定到一个 Spot 上以显示在地图上。买家直接 Zap 或私信你。🛹💸",
supporters: "SkateSpots 通过 Angor(去中心化 Bitcoin 众筹)由社区资助——没有广告、没有投资人、不售卖数据。查看支持者页面来支持这个项目,让街头保持自由。❤️⚡",
trustScore: "信任分数(0-100)由 Relatr 提供。分析你的 Nostr 网络:粉丝、活跃度、互动、Zap。越高 = 越可信。有助于过滤机器人和垃圾信息。查看任意个人资料即可看到他们的分数。🛡️",
whatRelay: "SkateSpots 使用:🛹 relay.skate-spots.org(主 Relay,为保证质量而加入白名单)+ relay.ditto.pub(全球)+ purplepag.es(个人资料聚合器)。你的数据会复制到所有这些 Relay 以实现冗余。",
tripPlanner: "告诉我一个城市,我会为你规划逐日的滑板之旅 🗺️——Spot、活动、教练和本地 Crew,并考虑天气(雨天 = 推荐有遮蔽 Spot 的 Crew)。试试“帮我规划里斯本 3 天”。我可以把它全部保存到合集,并把你引导到真实网站上的航班/住宿(无 KYC,无中间商)。🛹",
planATrip: "只要说“帮我规划巴塞罗那 3 天”(或任何城市),我就会为每天规划 Spot、场次、教练和本地 Crew。保存为合集就去滑吧。🗺️🛹",
sasquatchPro: "**Sasquatch Pro** 🦧⚡ 是一张 Lightning 支持者通行证,解锁我的个人功能:\n\n• 🧠 **个人助理**——我读取你自己的 Stash、Crew、Spot 和商品\n• ✨ **操作草稿**——列出装备、发布你的滑板状态、规划旅行(任何内容发布前你都会确认)\n• 💬 **个人背景**——我的回答会使用你自己的数据,而不只是公开结果\n• ⚡ **支持项目**——你让 SkateSpots 保持免费且无广告\n\n免费版 Sasquatch 始终免费:公开的 Spot/活动/教练/Crew 搜索、词汇表和旅行规划都无需 Pro。Pro 只是增加*个人*功能。点击顶部的 **⚡ 升级 Pro**。档位:7 天约 2k sats,1 个月约 5k,3 个月约 12k,1 年约 36k。",
proPerks: "Pro 特权 🦧⚡:个人助理(读取你的 Stash/Crew/Spot/商品)、操作草稿(列出装备、发布状态、规划旅行——由你确认),以及使用你自己个人背景的回答。此外你还在直接支持 SkateSpots,让它保持免费且无广告。免费版保持免费——Pro 增加个人层。点击顶部的 **⚡ 升级 Pro**。",
proVersion: "我的 Pro 版本 🦧⚡ 增加了一位**个人助理**:我可以读取你自己的 Stash、Crew、Spot 和商品,为你起草操作(列出装备、发布状态、规划旅行——你始终先确认),并在回答中使用你的个人背景。它还直接支持这个项目。免费版 Sasquatch(Spot/活动/教练/Crew 搜索、词汇表、旅行规划器)保持免费。点击顶部的 **⚡ 升级 Pro**。",
perks: "Pro 特权 🦧⚡:个人助理(你的 Stash/Crew/Spot/商品)、由你确认的操作草稿,以及使用你自己背景的回答——此外你还让应用保持免费且无广告。点击顶部的 **⚡ 升级 Pro**。",
goPro: "点击顶部的 **⚡ 升级 Pro** 按钮打开升级面板。Pro 解锁我的个人助理(Stash/Crew/Spot/商品)和操作草稿,并直接支持这个项目。用 Lightning 支付——7 天约 2k sats 到 1 年约 36k sats。免费功能保持免费。🦧",
proPricing: "Pro 档位(用 Lightning 支付 ⚡):**7 天**约 2,000 sats(约 $1.20),**1 个月**约 5,000 sats(约 $3),**3 个月**约 12,000 sats(约 $7,8 折),**1 年**约 36,000 sats(约 $21,最超值)。点击顶部的 **⚡ 升级 Pro**。",
howMuchIsPro: "Pro 档位:7 天约 2,000 sats,1 个月约 5,000 sats,3 个月约 12,000 sats(8 折),1 年约 36,000 sats(最超值)。用 Lightning 支付 ⚡。点击顶部的 **⚡ 升级 Pro**。",
upgrade: "要升级到 Sasquatch Pro,请点击顶部的 **⚡ 升级 Pro** 按钮。用 Lightning 支付(7 天约 2k sats 到 1 年约 36k)。Pro 解锁我的个人助理和操作草稿,并直接支持这个项目。🦧⚡",
},
statsTitle: "📊 **SkateSpots 数据一览**",
weatherTemp: "• {{temp}}°C(体感 {{feels}}°C)",
weatherSkateability: "• 适滑度:**{{label}}**({{score}}/100)",
weatherError: "暂时无法读取天气。请稍后重试。🌧️",
labelSpots: "Spot",
labelEvents: "活动",
labelLabPros: "The Lab 专业人士",
labelCrews: "Crew",
labelShops: "滑板商店",
labelTours: "Tour",
labelGear: "装备商品",
unnamed: "未命名",
emptyWhere: ",位于 **{{place}}**",
emptyResult: "目前没有找到任何{{label}}{{where}} 🦧\n\n这可能意味着还没有人列出——或者 Relay 响应较慢。请稍后再试、检查拼写,或[在地图上添加第一个](https://skate-spots.org/map)。🛹",
foundTitle: "{{emoji}} 找到 **{{count}}** 个{{label}}:\n{{lines}}{{more}}",
moreResults: "\n\n……还有 **{{count}}** 个——[在地图上全部查看](https://skate-spots.org/map) 🗺️",
locationDenied: "我看不到你的位置——任何信息都不会离开你的设备;我只在你询问时于本地读取,而浏览器刚刚拒绝了。点击地图上的 🎯 **附近**,或告诉我一个城市:“曼谷的 Spot”。🛹",
noNearbySpots: "你附近还没有标记的 Spot 🦧——[成为第一个添加的人](https://skate-spots.org/create-spot)。🛹",
closestTitle: "此刻离你最近:",
closestFooter: "_在你的设备上计算——你的位置从未离开它。_",
proNudge: "那是 **Sasquatch Pro** 的功能 🦧⚡——有了 Pro,我可以读取你的 Stash、Crew、Spot 和商品,起草装备商品、求购和滑板状态,并规划你的旅行。它是一张 Lightning 支持者通行证,让 SkateSpots 保持免费且无广告。点击顶部的 **⚡ 升级 Pro** 按钮解锁。🛹",
draftingProPerk: "起草操作(发布状态、列出装备)是 **Sasquatch Pro** 的特权 🦧⚡——点击顶部的 **⚡ 升级 Pro** 解锁。",
draftIntro: "这是一份草稿——请审核并点击发布。你确认之前不会上线任何内容。🛹",
draftFailed: "我没能完全生成那份草稿——请试着再告诉我详细信息(例如“把我的 Spitfire Wheels 以 8000 sats 列出”)。",
tripAskCity: "去哪里?告诉我一个城市(例如“帮我规划里斯本 3 天”),我就为你规划行程。🗺️",
tripEmptyMap: "**{{destination}}** 的地图上还没有内容 🦧——成为第一个在 [skate-spots.org](https://skate-spots.org) 添加 Spot 的人。一旦本地人添加了 Spot、Crew 和活动,我就为你规划完整行程。",
tripLocked: "为你锁定了一次 **{{destination}}** 行动 🛹——下面是 Spot、场次和本地人。调整它或保存它。",
tripFailed: "暂时无法连接实时数据来规划。请稍后重试!🛹",
tripEmptyMapLocal: "**{{destination}}** 的地图上还没有内容 🦧——在 [skate-spots.org](https://skate-spots.org) 成为第一个。",
tripMissionLocal: "这是一次 **{{destination}}** 行动 🛹——下面是 Spot、场次和本地人。",
relayFailed: "Relay 暂时没有及时响应 🛰️——通常是网络较慢,而不是缺少 Spot。请稍后再试一次。🛹",
couldNotProcess: "唔,无法处理。换个说法试试!",
freeTierFallback: "这个需要 AI 推理——是 **Sasquatch Pro** 功能 ⚡🦧\n\n我仍然可以直接从 Relay 找到 **Spot、活动、教练、Crew、商店、Tour 和装备**——比如问我“巴塞罗那的 Spot”——而[词汇表](/glossary)涵盖 150 多个招式和术语。点击顶部的 **⚡ 升级 Pro** 解锁 AI 回答。",
aiDownFallback: "我的 AI 大脑此刻在腾空 🦧——但我依然能帮你:\n\n• 🗺️ [地图](/) ——你附近的 Spot、商店、活动\n• 🧪 [The Lab](/lab) ——教练、摄像师、剪辑师\n• 📖 [词汇表](/glossary) ——150 多个招式和术语\n• 👥 [Crew](/crews) ——找到你的人\n\n或者直接告诉我一个**城市**(“巴塞罗那的 Spot”)或一个**招式**(“什么是 nollie”),我会直接回答。🛹",
wentWrong: "我这边出了点状况。请稍后重试!🦧",
publishError: "无法发布:{{error}}。请稍后重试。",
unknownError: "未知错误",
},
};
export default zhCNBatch2;