const zh: Record = { // Common 'common.save': '保存', 'common.cancel': '取消', 'common.delete': '删除', 'common.edit': '编辑', 'common.add': '添加', 'common.loading': '加载中...', 'common.import': '导入', 'common.error': '错误', 'common.back': '返回', 'common.all': '全部', 'common.close': '关闭', 'common.open': '打开', 'common.upload': '上传', 'common.search': '搜索', 'common.confirm': '确认', 'common.ok': '确定', 'common.yes': '是', 'common.no': '否', 'common.or': '或', 'common.none': '无', 'common.date': '日期', 'common.rename': '重命名', 'common.name': '名称', 'common.email': '邮箱', 'common.password': '密码', 'common.saving': '保存中...', 'common.saved': '已保存', 'trips.reminder': '提醒', 'trips.reminderNone': '无', 'trips.reminderDay': '天', 'trips.reminderDays': '天', 'trips.reminderCustom': '自定义', 'trips.reminderDaysBefore': '天前提醒', 'trips.reminderDisabledHint': '旅行提醒已禁用。请在管理 > 设置 > 通知中启用。', 'common.update': '更新', 'common.change': '修改', 'common.uploading': '上传中…', 'common.backToPlanning': '返回规划', 'common.reset': '重置', // Navbar 'nav.trip': '旅行', 'nav.share': '分享', 'nav.settings': '设置', 'nav.admin': '管理', 'nav.logout': '退出登录', 'nav.lightMode': '浅色模式', 'nav.darkMode': '深色模式', 'nav.autoMode': '自动模式', 'nav.administrator': '管理员', // Dashboard 'dashboard.title': '我的旅行', 'dashboard.subtitle.loading': '加载旅行中...', 'dashboard.subtitle.trips': '{count} 次旅行({archived} 已归档)', 'dashboard.subtitle.empty': '开始你的第一次旅行', 'dashboard.subtitle.activeOne': '{count} 个进行中的旅行', 'dashboard.subtitle.activeMany': '{count} 个进行中的旅行', 'dashboard.subtitle.archivedSuffix': ' · {count} 已归档', 'dashboard.newTrip': '新建旅行', 'dashboard.gridView': '网格视图', 'dashboard.listView': '列表视图', 'dashboard.currency': '货币', 'dashboard.timezone': '时区', 'dashboard.localTime': '本地', 'dashboard.timezoneCustomTitle': '自定义时区', 'dashboard.timezoneCustomLabelPlaceholder': '标签(可选)', 'dashboard.timezoneCustomTzPlaceholder': '如 America/New_York', 'dashboard.timezoneCustomAdd': '添加', 'dashboard.timezoneCustomErrorEmpty': '请输入时区标识符', 'dashboard.timezoneCustomErrorInvalid': '无效的时区。请使用 Europe/Berlin 这样的格式', 'dashboard.timezoneCustomErrorDuplicate': '已添加', 'dashboard.emptyTitle': '暂无旅行', 'dashboard.emptyText': '创建你的第一次旅行,开始规划吧!', 'dashboard.emptyButton': '创建第一次旅行', 'dashboard.nextTrip': '下次旅行', 'dashboard.shared': '共享', 'dashboard.sharedBy': '由 {name} 分享', 'dashboard.days': '天', 'dashboard.places': '地点', 'dashboard.members': '旅伴', 'dashboard.archive': '归档', 'dashboard.copyTrip': '复制', 'dashboard.copySuffix': '副本', 'dashboard.restore': '恢复', 'dashboard.archived': '已归档', 'dashboard.status.ongoing': '进行中', 'dashboard.status.today': '今天', 'dashboard.status.tomorrow': '明天', 'dashboard.status.past': '已结束', 'dashboard.status.daysLeft': '还剩 {count} 天', 'dashboard.toast.loadError': '加载旅行失败', 'dashboard.toast.created': '旅行创建成功!', 'dashboard.toast.createError': '创建旅行失败', 'dashboard.toast.updated': '旅行已更新!', 'dashboard.toast.updateError': '更新旅行失败', 'dashboard.toast.deleted': '旅行已删除', 'dashboard.toast.deleteError': '删除旅行失败', 'dashboard.toast.archived': '旅行已归档', 'dashboard.toast.archiveError': '归档旅行失败', 'dashboard.toast.restored': '旅行已恢复', 'dashboard.toast.restoreError': '恢复旅行失败', 'dashboard.toast.copied': '旅行已复制!', 'dashboard.toast.copyError': '复制旅行失败', 'dashboard.confirm.delete': '删除旅行「{title}」?所有地点和计划将被永久删除。', 'dashboard.editTrip': '编辑旅行', 'dashboard.createTrip': '创建新旅行', 'dashboard.tripTitle': '标题', 'dashboard.tripTitlePlaceholder': '如:日本夏日之旅', 'dashboard.tripDescription': '描述', 'dashboard.tripDescriptionPlaceholder': '这次旅行是关于什么的?', 'dashboard.startDate': '开始日期', 'dashboard.endDate': '结束日期', 'dashboard.dayCount': '天数', 'dashboard.dayCountHint': '未设置旅行日期时要规划的天数。', 'dashboard.noDateHint': '未设置日期——将默认创建 7 天。你可以随时修改。', 'dashboard.coverImage': '封面图片', 'dashboard.addCoverImage': '添加封面图片', 'dashboard.addMembers': '旅伴', 'dashboard.addMember': '添加成员', 'dashboard.coverSaved': '封面图片已保存', 'dashboard.coverUploadError': '上传失败', 'dashboard.coverRemoveError': '移除失败', 'dashboard.titleRequired': '标题为必填项', 'dashboard.endDateError': '结束日期必须晚于开始日期', // Settings 'settings.title': '设置', 'settings.subtitle': '配置你的个人设置', 'settings.tabs.display': '显示', 'settings.tabs.map': '地图', 'settings.tabs.notifications': '通知', 'settings.tabs.integrations': '集成', 'settings.tabs.account': '账户', 'settings.tabs.about': '关于', 'settings.map': '地图', 'settings.mapTemplate': '地图模板', 'settings.mapTemplatePlaceholder.select': '选择模板...', 'settings.mapDefaultHint': '留空则使用 OpenStreetMap(默认)', 'settings.mapTemplatePlaceholder': 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', 'settings.mapHint': '地图瓦片 URL 模板', 'settings.latitude': '纬度', 'settings.longitude': '经度', 'settings.saveMap': '保存地图', 'settings.apiKeys': 'API 密钥', 'settings.mapsKey': 'Google Maps API 密钥', 'settings.mapsKeyHint': '用于地点搜索。需要 Places API (New)。在 console.cloud.google.com 获取', 'settings.weatherKey': 'OpenWeatherMap API 密钥', 'settings.weatherKeyHint': '用于天气数据。在 openweathermap.org/api 免费获取', 'settings.keyPlaceholder': '输入密钥...', 'settings.configured': '已配置', 'settings.saveKeys': '保存密钥', 'settings.display': '显示', 'settings.colorMode': '颜色模式', 'settings.light': '浅色', 'settings.dark': '深色', 'settings.auto': '自动', 'settings.language': '语言', 'settings.temperature': '温度单位', 'settings.timeFormat': '时间格式', 'settings.routeCalculation': '路线计算', 'settings.blurBookingCodes': '模糊预订代码', 'settings.notifications': '通知', 'settings.notifyTripInvite': '旅行邀请', 'settings.notifyBookingChange': '预订变更', 'settings.notifyTripReminder': '旅行提醒', 'settings.notifyVacayInvite': 'Vacay 融合邀请', 'settings.notifyPhotosShared': '共享照片 (Immich)', 'settings.notifyCollabMessage': '聊天消息 (Collab)', 'settings.notifyPackingTagged': '行李清单:分配', 'settings.notifyWebhook': 'Webhook 通知', 'settings.notificationsDisabled': '通知尚未配置。请联系管理员启用电子邮件或 Webhook 通知。', 'settings.notificationsActive': '活跃频道', 'settings.notificationsManagedByAdmin': '通知事件由管理员配置。', 'admin.notifications.title': '通知', 'admin.notifications.hint': '选择一个通知渠道。一次只能激活一个。', 'admin.notifications.none': '已禁用', 'admin.notifications.email': '电子邮件 (SMTP)', 'admin.notifications.webhook': 'Webhook', 'admin.notifications.events': '通知事件', 'admin.notifications.eventsHint': '选择哪些事件为所有用户触发通知。', 'admin.notifications.configureFirst': '请先在下方配置 SMTP 或 Webhook,然后启用事件。', 'admin.notifications.save': '保存通知设置', 'admin.notifications.saved': '通知设置已保存', 'admin.notifications.testWebhook': '发送测试 Webhook', 'admin.notifications.testWebhookSuccess': '测试 Webhook 发送成功', 'admin.notifications.testWebhookFailed': '测试 Webhook 发送失败', 'admin.smtp.title': '邮件与通知', 'admin.smtp.hint': '用于发送电子邮件通知的 SMTP 配置。', 'admin.smtp.testButton': '发送测试邮件', 'admin.webhook.hint': '向外部 Webhook 发送通知(Discord、Slack 等)。', 'admin.smtp.testSuccess': '测试邮件发送成功', 'admin.smtp.testFailed': '测试邮件发送失败', 'dayplan.icsTooltip': '导出日历 (ICS)', 'share.linkTitle': '公开链接', 'share.linkHint': '创建一个链接,任何人无需登录即可查看此旅行。仅可查看,无法编辑。', 'share.createLink': '创建链接', 'share.deleteLink': '删除链接', 'share.createError': '无法创建链接', 'common.copy': '复制', 'common.copied': '已复制', 'share.permMap': '地图与计划', 'share.permBookings': '预订', 'share.permPacking': '行李', 'shared.expired': '链接已过期或无效', 'shared.expiredHint': '此共享旅行链接已失效。', 'shared.readOnly': '只读共享视图', 'shared.tabPlan': '计划', 'shared.tabBookings': '预订', 'shared.tabPacking': '行李', 'shared.tabBudget': '预算', 'shared.tabChat': '聊天', 'shared.days': '天', 'shared.places': '个地点', 'shared.other': '其他', 'shared.totalBudget': '总预算', 'shared.messages': '条消息', 'shared.sharedVia': '通过以下分享', 'shared.confirmed': '已确认', 'shared.pending': '待确认', 'share.permBudget': '预算', 'share.permCollab': '聊天', 'settings.on': '开', 'settings.off': '关', 'settings.mcp.title': 'MCP 配置', 'settings.mcp.endpoint': 'MCP 端点', 'settings.mcp.clientConfig': '客户端配置', 'settings.mcp.clientConfigHint': '将 替换为下方列表中的 API 令牌。npx 的路径可能需要根据您的系统进行调整(例如 Windows 上为 C:\\PROGRA~1\\nodejs\\npx.cmd)。', 'settings.mcp.copy': '复制', 'settings.mcp.copied': '已复制!', 'settings.mcp.apiTokens': 'API 令牌', 'settings.mcp.createToken': '创建新令牌', 'settings.mcp.noTokens': '暂无令牌,请创建一个以连接 MCP 客户端。', 'settings.mcp.tokenCreatedAt': '创建于', 'settings.mcp.tokenUsedAt': '使用于', 'settings.mcp.deleteTokenTitle': '删除令牌', 'settings.mcp.deleteTokenMessage': '此令牌将立即失效,使用它的所有 MCP 客户端将失去访问权限。', 'settings.mcp.modal.createTitle': '创建 API 令牌', 'settings.mcp.modal.tokenName': '令牌名称', 'settings.mcp.modal.tokenNamePlaceholder': '例如:Claude Desktop、工作电脑', 'settings.mcp.modal.creating': '创建中…', 'settings.mcp.modal.create': '创建令牌', 'settings.mcp.modal.createdTitle': '令牌已创建', 'settings.mcp.modal.createdWarning': '此令牌只会显示一次,请立即复制并妥善保存——无法找回。', 'settings.mcp.modal.done': '完成', 'settings.mcp.toast.created': '令牌已创建', 'settings.mcp.toast.createError': '创建令牌失败', 'settings.mcp.toast.deleted': '令牌已删除', 'settings.mcp.toast.deleteError': '删除令牌失败', 'settings.account': '账户', 'settings.about': '关于', 'settings.about.reportBug': '报告错误', 'settings.about.reportBugHint': '发现问题?告诉我们', 'settings.about.featureRequest': '功能建议', 'settings.about.featureRequestHint': '建议一个新功能', 'settings.about.wikiHint': '文档和指南', 'settings.about.description': 'TREK 是一个自托管的旅行规划工具,帮助你从最初的想法到最后的回忆,全程组织你的旅行。日程规划、预算、行李清单、照片等——一切尽在一处,在你自己的服务器上。', 'settings.about.madeWith': '用', 'settings.about.madeBy': '由 Maurice 和不断壮大的开源社区打造。', 'settings.username': '用户名', 'settings.email': '邮箱', 'settings.role': '角色', 'settings.roleAdmin': '管理员', 'settings.oidcLinked': '已关联', 'settings.changePassword': '修改密码', 'settings.mustChangePassword': '您必须更改密码才能继续。请在下方设置新密码。', 'settings.currentPassword': '当前密码', 'settings.currentPasswordRequired': '请输入当前密码', 'settings.newPassword': '新密码', 'settings.confirmPassword': '确认新密码', 'settings.updatePassword': '更新密码', 'settings.passwordRequired': '请输入当前密码和新密码', 'settings.passwordTooShort': '密码至少需要 8 个字符', 'settings.passwordMismatch': '两次输入的密码不一致', 'settings.passwordWeak': '密码必须包含大写字母、小写字母、数字和特殊字符', 'settings.passwordChanged': '密码修改成功', 'settings.deleteAccount': '删除账户', 'settings.deleteAccountTitle': '确定删除账户?', 'settings.deleteAccountWarning': '你的账户以及所有旅行、地点和文件将被永久删除。此操作无法撤销。', 'settings.deleteAccountConfirm': '永久删除', 'settings.deleteBlockedTitle': '无法删除', 'settings.deleteBlockedMessage': '你是唯一的管理员。请先将其他用户提升为管理员,然后再删除账户。', 'settings.roleUser': '用户', 'settings.saveProfile': '保存资料', 'settings.mfa.title': '双因素认证 (2FA)', 'settings.mfa.description': '登录时添加第二步验证。使用身份验证器应用(Google Authenticator、Authy 等)。', 'settings.mfa.requiredByPolicy': '管理员要求双因素身份验证。请先完成下方的身份验证器设置后再继续。', 'settings.mfa.backupTitle': '备用代码', 'settings.mfa.backupDescription': '如果你无法使用身份验证器应用,可使用这些一次性备用代码登录。', 'settings.mfa.backupWarning': '请立即保存这些代码。每个代码只能使用一次。', 'settings.mfa.backupCopy': '复制代码', 'settings.mfa.backupDownload': '下载 TXT', 'settings.mfa.backupPrint': '打印 / PDF', 'settings.mfa.backupCopied': '备用代码已复制', 'settings.mfa.enabled': '您的账户已启用 2FA。', 'settings.mfa.disabled': '2FA 未启用。', 'settings.mfa.setup': '设置身份验证器', 'settings.mfa.scanQr': '使用应用扫描此二维码,或手动输入密钥。', 'settings.mfa.secretLabel': '密钥(手动输入)', 'settings.mfa.codePlaceholder': '6 位验证码', 'settings.mfa.enable': '启用 2FA', 'settings.mfa.cancelSetup': '取消', 'settings.mfa.disableTitle': '停用 2FA', 'settings.mfa.disableHint': '输入您的账户密码和身份验证器中的当前验证码。', 'settings.mfa.disable': '停用 2FA', 'settings.mfa.toastEnabled': '双因素认证已启用', 'settings.mfa.toastDisabled': '双因素认证已停用', 'settings.mfa.demoBlocked': '演示模式下不可用', 'settings.toast.mapSaved': '地图设置已保存', 'settings.toast.keysSaved': 'API 密钥已保存', 'settings.toast.displaySaved': '显示设置已保存', 'settings.toast.profileSaved': '资料已保存', 'settings.uploadAvatar': '上传头像', 'settings.removeAvatar': '移除头像', 'settings.avatarUploaded': '头像已更新', 'settings.avatarRemoved': '头像已移除', 'settings.avatarError': '上传失败', // Login 'login.error': '登录失败,请检查你的凭据。', 'login.tagline': '你的旅行。\n你的计划。', 'login.description': '通过互动地图、预算管理和实时同步,协同规划旅行。', 'login.features.maps': '互动地图', 'login.features.mapsDesc': 'Google Places、路线和聚类', 'login.features.realtime': '实时同步', 'login.features.realtimeDesc': '通过 WebSocket 协同规划', 'login.features.budget': '预算跟踪', 'login.features.budgetDesc': '分类、图表和人均费用', 'login.features.collab': '协作', 'login.features.collabDesc': '多用户共享旅行', 'login.features.packing': '行李清单', 'login.features.packingDesc': '分类、进度和建议', 'login.features.bookings': '预订', 'login.features.bookingsDesc': '航班、酒店、餐厅等', 'login.features.files': '文档', 'login.features.filesDesc': '上传和管理文档', 'login.features.routes': '智能路线', 'login.features.routesDesc': '自动优化和导出到 Google Maps', 'login.selfHosted': '自托管 · 开源 · 数据由你掌控', 'login.title': '登录', 'login.subtitle': '欢迎回来', 'login.signingIn': '登录中…', 'login.signIn': '登录', 'login.createAdmin': '创建管理员账户', 'login.createAdminHint': '为 TREK 设置第一个管理员账户。', 'login.setNewPassword': '设置新密码', 'login.setNewPasswordHint': '您必须更改密码才能继续。', 'login.createAccount': '创建账户', 'login.createAccountHint': '注册新账户。', 'login.creating': '创建中…', 'login.noAccount': '还没有账户?', 'login.hasAccount': '已有账户?', 'login.register': '注册', 'login.emailPlaceholder': 'your@email.com', 'login.username': '用户名', 'login.oidc.registrationDisabled': '注册已关闭。请联系管理员。', 'login.oidc.noEmail': '未从提供商获取到邮箱。', 'login.mfaTitle': '双因素认证', 'login.mfaSubtitle': '请输入身份验证器应用中的 6 位验证码。', 'login.mfaCodeLabel': '验证码', 'login.mfaCodeRequired': '请输入身份验证器应用中的验证码。', 'login.mfaHint': '打开 Google Authenticator、Authy 或其他 TOTP 应用。', 'login.mfaBack': '← 返回登录', 'login.mfaVerify': '验证', 'login.oidc.tokenFailed': '认证失败。', 'login.oidc.invalidState': '会话无效,请重试。', 'login.demoFailed': '演示登录失败', 'login.oidcSignIn': '通过 {name} 登录', 'login.oidcOnly': '密码登录已关闭。请通过 SSO 提供商登录。', 'login.oidcLoggedOut': '您已退出登录。请重新通过 SSO 提供商登录。', 'login.demoHint': '试用演示——无需注册', // Register 'register.passwordMismatch': '两次输入的密码不一致', 'register.passwordTooShort': '密码至少需要 8 个字符', 'register.failed': '注册失败', 'register.getStarted': '开始使用', 'register.subtitle': '创建账户,开始规划你的梦想旅行。', 'register.feature1': '无限旅行计划', 'register.feature2': '互动地图视图', 'register.feature3': '管理地点和分类', 'register.feature4': '跟踪预订', 'register.feature5': '创建行李清单', 'register.feature6': '存储照片和文件', 'register.createAccount': '创建账户', 'register.startPlanning': '开始规划你的旅行', 'register.minChars': '至少 6 个字符', 'register.confirmPassword': '确认密码', 'register.repeatPassword': '重复密码', 'register.registering': '注册中...', 'register.register': '注册', 'register.hasAccount': '已有账户?', 'register.signIn': '登录', // Admin 'admin.title': '管理后台', 'admin.subtitle': '用户管理和系统设置', 'admin.tabs.users': '用户', 'admin.tabs.categories': '分类', 'admin.tabs.backup': '备份', 'admin.tabs.audit': '审计', 'admin.stats.users': '用户', 'admin.stats.trips': '旅行', 'admin.stats.places': '地点', 'admin.stats.photos': '照片', 'admin.stats.files': '文件', 'admin.table.user': '用户', 'admin.table.email': '邮箱', 'admin.table.role': '角色', 'admin.table.created': '创建时间', 'admin.table.lastLogin': '最后登录', 'admin.table.actions': '操作', 'admin.you': '(你)', 'admin.editUser': '编辑用户', 'admin.newPassword': '新密码', 'admin.newPasswordHint': '留空则保持当前密码', 'admin.deleteUser': '删除用户「{name}」?所有旅行将被永久删除。', 'admin.deleteUserTitle': '删除用户', 'admin.newPasswordPlaceholder': '输入新密码…', 'admin.toast.loadError': '加载管理数据失败', 'admin.toast.userUpdated': '用户已更新', 'admin.toast.updateError': '更新失败', 'admin.toast.userDeleted': '用户已删除', 'admin.toast.deleteError': '删除失败', 'admin.toast.cannotDeleteSelf': '不能删除自己的账户', 'admin.toast.userCreated': '用户已创建', 'admin.toast.createError': '创建用户失败', 'admin.toast.fieldsRequired': '用户名、邮箱和密码为必填项', 'admin.createUser': '创建用户', 'admin.invite.title': '邀请链接', 'admin.invite.subtitle': '创建一次性注册链接', 'admin.invite.create': '创建链接', 'admin.invite.createAndCopy': '创建并复制', 'admin.invite.empty': '尚未创建邀请链接', 'admin.invite.maxUses': '最大使用次数', 'admin.invite.expiry': '有效期', 'admin.invite.uses': '已使用', 'admin.invite.expiresAt': '过期时间', 'admin.invite.createdBy': '由', 'admin.invite.active': '有效', 'admin.invite.expired': '已过期', 'admin.invite.usedUp': '已用完', 'admin.invite.copied': '邀请链接已复制', 'admin.invite.copyLink': '复制链接', 'admin.invite.deleted': '邀请链接已删除', 'admin.invite.createError': '创建链接失败', 'admin.invite.deleteError': '删除链接失败', 'admin.tabs.settings': '设置', 'admin.allowRegistration': '允许注册', 'admin.allowRegistrationHint': '新用户可以自行注册', 'admin.requireMfa': '要求双因素身份验证(2FA)', 'admin.requireMfaHint': '未启用 2FA 的用户必须先完成设置中的配置才能使用应用。', 'admin.apiKeys': 'API 密钥', 'admin.apiKeysHint': '可选。启用地点的扩展数据,如照片和天气。', 'admin.mapsKey': 'Google Maps API 密钥', 'admin.mapsKeyHint': '用于地点搜索。在 console.cloud.google.com 获取', 'admin.mapsKeyHintLong': '没有 API 密钥时,使用 OpenStreetMap 搜索地点。有了 Google API 密钥,还可以加载照片、评分和营业时间。在 console.cloud.google.com 获取。', 'admin.recommended': '推荐', 'admin.weatherKey': 'OpenWeatherMap API 密钥', 'admin.weatherKeyHint': '用于天气数据。在 openweathermap.org 免费获取', 'admin.validateKey': '测试', 'admin.keyValid': '已连接', 'admin.keyInvalid': '无效', 'admin.keySaved': 'API 密钥已保存', 'admin.oidcTitle': '单点登录 (OIDC)', 'admin.oidcSubtitle': '允许通过 Google、Apple、Authentik 或 Keycloak 等外部提供商登录。', 'admin.oidcDisplayName': '显示名称', 'admin.oidcIssuer': '颁发者 URL', 'admin.oidcIssuerHint': '提供商的 OpenID Connect 颁发者 URL。如 https://accounts.google.com', 'admin.oidcSaved': 'OIDC 配置已保存', 'admin.oidcOnlyMode': '禁用密码登录', 'admin.oidcOnlyModeHint': '启用后,仅允许 SSO 登录。密码登录和注册将被禁用。', // File Types 'admin.fileTypes': '允许的文件类型', 'admin.fileTypesHint': '配置用户可以上传的文件类型。', 'admin.fileTypesFormat': '以逗号分隔的扩展名(如 jpg,png,pdf,doc)。使用 * 允许所有类型。', 'admin.fileTypesSaved': '文件类型设置已保存', 'admin.bagTracking.title': '行李追踪', 'admin.bagTracking.subtitle': '为打包物品启用重量和行李分配', 'admin.tabs.config': '个性化', 'admin.tabs.templates': '打包模板', 'admin.packingTemplates.title': '打包模板', 'admin.packingTemplates.subtitle': '创建可复用的旅行打包清单', 'admin.packingTemplates.create': '新建模板', 'admin.packingTemplates.namePlaceholder': '模板名称(如:海滩度假)', 'admin.packingTemplates.empty': '尚未创建模板', 'admin.packingTemplates.items': '物品', 'admin.packingTemplates.categories': '分类', 'admin.packingTemplates.itemName': '物品名称', 'admin.packingTemplates.itemCategory': '分类', 'admin.packingTemplates.categoryName': '分类名称(如:衣物)', 'admin.packingTemplates.addCategory': '添加分类', 'admin.packingTemplates.created': '模板已创建', 'admin.packingTemplates.deleted': '模板已删除', 'admin.packingTemplates.loadError': '加载模板失败', 'admin.packingTemplates.createError': '创建模板失败', 'admin.packingTemplates.deleteError': '删除模板失败', 'admin.packingTemplates.saveError': '保存失败', // Addons 'admin.tabs.addons': '扩展', 'admin.addons.title': '扩展', 'admin.addons.subtitle': '启用或禁用功能以自定义你的 TREK 体验。', 'admin.addons.catalog.memories.name': '照片 (Immich)', 'admin.addons.catalog.memories.description': '通过 Immich 实例分享旅行照片', 'admin.addons.catalog.mcp.name': 'MCP', 'admin.addons.catalog.mcp.description': '用于 AI 助手集成的模型上下文协议', 'admin.addons.catalog.packing.name': '列表', 'admin.addons.catalog.packing.description': '行程打包清单与待办任务', 'admin.addons.catalog.budget.name': '预算', 'admin.addons.catalog.budget.description': '跟踪支出并规划旅行预算', 'admin.addons.catalog.documents.name': '文档', 'admin.addons.catalog.documents.description': '存储和管理旅行文档', 'admin.addons.catalog.vacay.name': 'Vacay', 'admin.addons.catalog.vacay.description': '带日历视图的个人假期规划器', 'admin.addons.catalog.atlas.name': 'Atlas', 'admin.addons.catalog.atlas.description': '标记已访问国家和旅行统计的世界地图', 'admin.addons.catalog.collab.name': 'Collab', 'admin.addons.catalog.collab.description': '旅行规划的实时笔记、投票和聊天', 'admin.addons.subtitleBefore': '启用或禁用功能以自定义你的 ', 'admin.addons.subtitleAfter': ' 体验。', 'admin.addons.enabled': '已启用', 'admin.addons.disabled': '已禁用', 'admin.addons.type.trip': '旅行', 'admin.addons.type.global': '全局', 'admin.addons.type.integration': '集成', 'admin.addons.tripHint': '在每次旅行中作为标签页显示', 'admin.addons.globalHint': '在主导航中作为独立板块显示', 'admin.addons.integrationHint': '后端服务和 API 集成,无专属页面', 'admin.addons.toast.updated': '扩展已更新', 'admin.addons.toast.error': '更新扩展失败', 'admin.addons.noAddons': '暂无可用扩展', // Weather info 'admin.weather.title': '天气数据', 'admin.weather.badge': '自 2026 年 3 月 24 日起', 'admin.weather.description': 'TREK 使用 Open-Meteo 作为天气数据源。Open-Meteo 是免费的开源天气服务——无需 API 密钥。', 'admin.weather.forecast': '16 天天气预报', 'admin.weather.forecastDesc': '之前为 5 天 (OpenWeatherMap)', 'admin.weather.climate': '历史气候数据', 'admin.weather.climateDesc': '16 天预报之外的日期使用过去 85 年的平均值', 'admin.weather.requests': '每天 10,000 次请求', 'admin.weather.requestsDesc': '免费,无需 API 密钥', 'admin.weather.locationHint': '天气基于每天中第一个有坐标的地点。如果当天没有分配地点,则使用地点列表中的任意地点作为参考。', // MCP Tokens 'admin.tabs.mcpTokens': 'MCP 令牌', 'admin.mcpTokens.title': 'MCP 令牌', 'admin.mcpTokens.subtitle': '管理所有用户的 API 令牌', 'admin.mcpTokens.owner': '所有者', 'admin.mcpTokens.tokenName': '令牌名称', 'admin.mcpTokens.created': '创建时间', 'admin.mcpTokens.lastUsed': '最后使用', 'admin.mcpTokens.never': '从未', 'admin.mcpTokens.empty': '尚未创建任何 MCP 令牌', 'admin.mcpTokens.deleteTitle': '删除令牌', 'admin.mcpTokens.deleteMessage': '此令牌将立即被撤销。用户将失去通过此令牌的 MCP 访问权限。', 'admin.mcpTokens.deleteSuccess': '令牌已删除', 'admin.mcpTokens.deleteError': '删除令牌失败', 'admin.mcpTokens.loadError': '加载令牌失败', // GitHub 'admin.tabs.github': 'GitHub', 'admin.audit.subtitle': '安全与管理员操作记录(备份、用户、MFA、设置)。', 'admin.audit.empty': '暂无审计记录。', 'admin.audit.refresh': '刷新', 'admin.audit.loadMore': '加载更多', 'admin.audit.showing': '已加载 {count} 条 · 共 {total} 条', 'admin.audit.col.time': '时间', 'admin.audit.col.user': '用户', 'admin.audit.col.action': '操作', 'admin.audit.col.resource': '资源', 'admin.audit.col.ip': 'IP', 'admin.audit.col.details': '详情', 'admin.github.title': '版本历史', 'admin.github.subtitle': '{repo} 的最新更新', 'admin.github.latest': '最新', 'admin.github.prerelease': '预发布', 'admin.github.showDetails': '显示详情', 'admin.github.hideDetails': '隐藏详情', 'admin.github.loadMore': '加载更多', 'admin.github.loading': '加载中...', 'admin.github.support': '帮助我继续开发 TREK', 'admin.github.error': '加载版本失败', 'admin.github.by': '作者', 'admin.update.available': '有可用更新', 'admin.update.text': 'TREK {version} 已发布。你当前使用的是 {current}。', 'admin.update.button': '在 GitHub 查看', 'admin.update.install': '安装更新', 'admin.update.confirmTitle': '确定安装更新?', 'admin.update.confirmText': 'TREK 将从 {current} 更新到 {version}。服务器将自动重启。', 'admin.update.dataInfo': '你的所有数据(旅行、用户、API 密钥、上传文件、Vacay、Atlas、预算)将被保留。', 'admin.update.warning': '重启期间应用将短暂不可用。', 'admin.update.confirm': '立即更新', 'admin.update.installing': '更新中…', 'admin.update.success': '更新已安装!服务器正在重启…', 'admin.update.failed': '更新失败', 'admin.update.backupHint': '建议在更新前创建备份。', 'admin.update.backupLink': '前往备份', 'admin.update.howTo': '如何更新', 'admin.update.dockerText': '你的 TREK 实例运行在 Docker 中。要更新到 {version},请在服务器上执行以下命令:', 'admin.update.reloadHint': '请在几秒后刷新页面。', // Vacay addon 'vacay.subtitle': '规划和管理假期', 'vacay.settings': '设置', 'vacay.year': '年份', 'vacay.addYear': '添加下一年', 'vacay.addPrevYear': '添加上一年', 'vacay.removeYear': '移除年份', 'vacay.removeYearConfirm': '移除 {year}?', 'vacay.removeYearHint': '该年度所有假期记录和公司假日将被永久删除。', 'vacay.remove': '移除', 'vacay.persons': '成员', 'vacay.noPersons': '暂无成员', 'vacay.addPerson': '添加成员', 'vacay.editPerson': '编辑成员', 'vacay.removePerson': '移除成员', 'vacay.removePersonConfirm': '移除 {name}?', 'vacay.removePersonHint': '该成员的所有假期记录将被永久删除。', 'vacay.personName': '姓名', 'vacay.personNamePlaceholder': '输入姓名', 'vacay.color': '颜色', 'vacay.add': '添加', 'vacay.legend': '图例', 'vacay.publicHoliday': '公共假日', 'vacay.companyHoliday': '公司假日', 'vacay.weekend': '周末', 'vacay.modeVacation': '休假', 'vacay.modeCompany': '公司假日', 'vacay.entitlement': '年假额度', 'vacay.entitlementDays': '天', 'vacay.used': '已用', 'vacay.remaining': '剩余', 'vacay.carriedOver': '从 {year} 结转', 'vacay.blockWeekends': '锁定周末', 'vacay.blockWeekendsHint': '禁止在周六和周日安排假期', 'vacay.weekendDays': '周末', 'vacay.mon': '周一', 'vacay.tue': '周二', 'vacay.wed': '周三', 'vacay.thu': '周四', 'vacay.fri': '周五', 'vacay.sat': '周六', 'vacay.sun': '周日', 'vacay.publicHolidays': '公共假日', 'vacay.publicHolidaysHint': '在日历中标记公共假日', 'vacay.selectCountry': '选择国家', 'vacay.selectRegion': '选择地区(可选)', 'vacay.companyHolidays': '公司假日', 'vacay.companyHolidaysHint': '允许标记公司统一休假日', 'vacay.companyHolidaysNoDeduct': '公司假日不计入年假天数。', 'vacay.carryOver': '结转', 'vacay.carryOverHint': '自动将剩余年假天数结转到下一年', 'vacay.sharing': '共享', 'vacay.sharingHint': '与其他 TREK 用户共享你的假期计划', 'vacay.owner': '所有者', 'vacay.shareEmailPlaceholder': 'TREK 用户邮箱', 'vacay.shareSuccess': '计划共享成功', 'vacay.shareError': '无法共享计划', 'vacay.dissolve': '解除合并', 'vacay.dissolveHint': '重新分离日历。你的记录将被保留。', 'vacay.dissolveAction': '解除', 'vacay.dissolved': '日历已分离', 'vacay.fusedWith': '已合并', 'vacay.you': '你', 'vacay.noData': '暂无数据', 'vacay.changeColor': '更改颜色', 'vacay.inviteUser': '邀请用户', 'vacay.inviteHint': '邀请其他 TREK 用户共享合并的假期日历。', 'vacay.selectUser': '选择用户', 'vacay.sendInvite': '发送邀请', 'vacay.inviteSent': '邀请已发送', 'vacay.inviteError': '无法发送邀请', 'vacay.pending': '待处理', 'vacay.noUsersAvailable': '没有可用用户', 'vacay.accept': '接受', 'vacay.decline': '拒绝', 'vacay.acceptFusion': '接受并合并', 'vacay.inviteTitle': '合并请求', 'vacay.inviteWantsToFuse': '想要与你共享假期日历。', 'vacay.fuseInfo1': '你们双方将在一个共享日历中看到所有假期记录。', 'vacay.fuseInfo2': '双方都可以为对方创建和编辑记录。', 'vacay.fuseInfo3': '双方都可以删除记录和修改年假额度。', 'vacay.fuseInfo4': '公共假日和公司假日等设置将共享。', 'vacay.fuseInfo5': '任何一方都可以随时解除合并。你的记录将被保留。', 'vacay.addCalendar': '添加日历', 'vacay.calendarColor': '颜色', 'vacay.calendarLabel': '标签', 'vacay.noCalendars': '无日历', 'nav.myTrips': '我的旅行', // Atlas addon 'atlas.subtitle': '你的全球旅行足迹', 'atlas.countries': '国家', 'atlas.trips': '旅行', 'atlas.places': '地点', 'atlas.days': '天', 'atlas.visitedCountries': '已访问国家', 'atlas.cities': '城市', 'atlas.noData': '暂无旅行数据', 'atlas.noDataHint': '创建旅行并添加地点以查看世界地图', 'atlas.lastTrip': '上次旅行', 'atlas.nextTrip': '下次旅行', 'atlas.daysLeft': '天后出发', 'atlas.streak': '连续', 'atlas.year': '年', 'atlas.years': '年', 'atlas.yearInRow': '年连续', 'atlas.yearsInRow': '年连续', 'atlas.tripIn': '次旅行在', 'atlas.tripsIn': '次旅行在', 'atlas.since': '自', 'atlas.europe': '欧洲', 'atlas.asia': '亚洲', 'atlas.northAmerica': '北美洲', 'atlas.southAmerica': '南美洲', 'atlas.africa': '非洲', 'atlas.oceania': '大洋洲', 'atlas.other': '其他', 'atlas.firstVisit': '首次旅行', 'atlas.lastVisitLabel': '最近旅行', 'atlas.tripSingular': '次旅行', 'atlas.tripPlural': '次旅行', 'atlas.placeVisited': '个地点已访问', 'atlas.placesVisited': '个地点已访问', 'atlas.statsTab': '统计', 'atlas.bucketTab': '心愿单', 'atlas.addBucket': '添加到心愿单', 'atlas.bucketNamePlaceholder': '地点或目的地...', 'atlas.bucketNotesPlaceholder': '备注(可选)', 'atlas.bucketEmpty': '你的心愿单是空的', 'atlas.bucketEmptyHint': '添加你梦想去的地方', 'atlas.unmark': '移除', 'atlas.confirmMark': '将此国家标记为已访问?', 'atlas.confirmUnmark': '从已访问列表中移除此国家?', 'atlas.confirmUnmarkRegion': '从已访问列表中移除此地区?', 'atlas.markVisited': '标记为已访问', 'atlas.markVisitedHint': '将此国家添加到已访问列表', 'atlas.markRegionVisitedHint': '将此地区添加到已访问列表', 'atlas.addToBucket': '添加到心愿单', 'atlas.addPoi': '添加地点', 'atlas.searchCountry': '搜索国家...', 'atlas.month': '月份', 'atlas.addToBucketHint': '保存为想去的地方', 'atlas.bucketWhen': '你计划什么时候去?', // Trip Planner 'trip.tabs.plan': '计划', 'trip.tabs.reservations': '预订', 'trip.tabs.reservationsShort': '预订', 'trip.tabs.packing': '行李清单', 'trip.tabs.packingShort': '行李', 'trip.tabs.lists': '列表', 'trip.tabs.listsShort': '列表', 'trip.tabs.budget': '预算', 'trip.tabs.files': '文件', 'trip.loading': '加载旅行中...', 'trip.loadingPhotos': '正在加载地点照片...', 'trip.mobilePlan': '计划', 'trip.mobilePlaces': '地点', 'trip.toast.placeUpdated': '地点已更新', 'trip.toast.placeAdded': '地点已添加', 'trip.toast.placeDeleted': '地点已删除', 'trip.toast.selectDay': '请先选择一天', 'trip.toast.assignedToDay': '地点已分配到当天', 'trip.toast.reorderError': '排序失败', 'trip.toast.reservationUpdated': '预订已更新', 'trip.toast.reservationAdded': '预订已添加', 'trip.toast.deleted': '已删除', 'trip.confirm.deletePlace': '确定要删除这个地点吗?', // Day Plan Sidebar 'dayplan.emptyDay': '当天暂无计划', 'dayplan.addNote': '添加备注', 'dayplan.editNote': '编辑备注', 'dayplan.noteAdd': '添加备注', 'dayplan.noteEdit': '编辑备注', 'dayplan.noteTitle': '备注', 'dayplan.noteSubtitle': '每日备注', 'dayplan.totalCost': '总费用', 'dayplan.days': '天', 'dayplan.dayN': '第 {n} 天', 'dayplan.calculating': '计算中...', 'dayplan.route': '路线', 'dayplan.optimize': '优化', 'dayplan.optimized': '路线已优化', 'dayplan.routeError': '路线计算失败', 'dayplan.toast.needTwoPlaces': '路线优化至少需要两个地点', 'dayplan.toast.routeOptimized': '路线已优化', 'dayplan.toast.noGeoPlaces': '未找到有坐标的地点用于路线计算', 'dayplan.confirmed': '已确认', 'dayplan.pendingRes': '待确认', 'dayplan.pdf': 'PDF', 'dayplan.pdfTooltip': '导出当天计划为 PDF', 'dayplan.pdfError': 'PDF 导出失败', 'dayplan.cannotReorderTransport': '有固定时间的预订无法重新排序', 'dayplan.confirmRemoveTimeTitle': '移除时间?', 'dayplan.confirmRemoveTimeBody': '此地点有固定时间({time})。移动后将移除时间并允许自由排序。', 'dayplan.confirmRemoveTimeAction': '移除时间并移动', 'dayplan.cannotDropOnTimed': '无法将项目放置在有固定时间的条目之间', 'dayplan.cannotBreakChronology': '这将打乱已计划项目和预订的时间顺序', // Places Sidebar 'places.addPlace': '添加地点/活动', 'places.importGpx': 'GPX', 'places.gpxImported': '已从 GPX 导入 {count} 个地点', 'places.gpxError': 'GPX 导入失败', 'places.importGoogleList': 'Google 列表', 'places.googleListHint': '粘贴共享的 Google Maps 列表链接以导入所有地点。', 'places.googleListImported': '已从"{list}"导入 {count} 个地点', 'places.googleListError': 'Google Maps 列表导入失败', 'places.viewDetails': '查看详情', 'places.urlResolved': '已从 URL 导入地点', 'places.assignToDay': '添加到哪一天?', 'places.all': '全部', 'places.unplanned': '未规划', 'places.search': '搜索地点...', 'places.allCategories': '所有分类', 'places.categoriesSelected': '个分类', 'places.clearFilter': '清除筛选', 'places.count': '{count} 个地点', 'places.countSingular': '1 个地点', 'places.allPlanned': '所有地点已规划', 'places.noneFound': '未找到地点', 'places.editPlace': '编辑地点', 'places.formName': '名称', 'places.formNamePlaceholder': '如:埃菲尔铁塔', 'places.formDescription': '描述', 'places.formDescriptionPlaceholder': '简短描述...', 'places.formAddress': '地址', 'places.formAddressPlaceholder': '街道、城市、国家', 'places.formLat': '纬度(如 48.8566)', 'places.formLng': '经度(如 2.3522)', 'places.formCategory': '分类', 'places.noCategory': '无分类', 'places.categoryNamePlaceholder': '分类名称', 'places.formTime': '时间', 'places.startTime': '开始', 'places.endTime': '结束', 'places.endTimeBeforeStart': '结束时间早于开始时间', 'places.timeCollision': '时间冲突:', 'places.formWebsite': '网站', 'places.formNotesPlaceholder': '个人备注...', 'places.formReservation': '预订', 'places.reservationNotesPlaceholder': '预订备注、确认号...', 'places.mapsSearchPlaceholder': '搜索地点...', 'places.mapsSearchError': '地点搜索失败。', 'places.osmHint': '使用 OpenStreetMap 搜索(无照片、营业时间或评分)。在设置中添加 Google API 密钥以获取完整信息。', 'places.osmActive': '通过 OpenStreetMap 搜索(无照片、评分或营业时间)。在设置中添加 Google API 密钥以获取增强数据。', 'places.categoryCreateError': '创建分类失败', 'places.nameRequired': '请输入名称', 'places.saveError': '保存失败', // Place Inspector 'inspector.opened': '营业中', 'inspector.closed': '已关闭', 'inspector.openingHours': '营业时间', 'inspector.showHours': '显示营业时间', 'inspector.files': '文件', 'inspector.filesCount': '{count} 个文件', 'inspector.removeFromDay': '从当天移除', 'inspector.addToDay': '添加到当天', 'inspector.confirmedRes': '已确认预订', 'inspector.pendingRes': '待确认预订', 'inspector.google': '在 Google Maps 中打开', 'inspector.website': '打开网站', 'inspector.addRes': '预订', 'inspector.editRes': '编辑预订', 'inspector.participants': '参与者', 'inspector.trackStats': '轨迹数据', // Reservations 'reservations.title': '预订', 'reservations.empty': '暂无预订', 'reservations.emptyHint': '添加航班、酒店等预订信息', 'reservations.add': '添加预订', 'reservations.addManual': '手动添加', 'reservations.placeHint': '提示:建议从地点直接创建预订,以便与日程计划关联。', 'reservations.confirmed': '已确认', 'reservations.pending': '待确认', 'reservations.summary': '{confirmed} 已确认,{pending} 待确认', 'reservations.fromPlan': '来自计划', 'reservations.showFiles': '查看文件', 'reservations.editTitle': '编辑预订', 'reservations.status': '状态', 'reservations.datetime': '日期和时间', 'reservations.startTime': '开始时间', 'reservations.endTime': '结束时间', 'reservations.date': '日期', 'reservations.time': '时间', 'reservations.timeAlt': '时间(备选,如 19:30)', 'reservations.notes': '备注', 'reservations.notesPlaceholder': '其他备注...', 'reservations.meta.airline': '航空公司', 'reservations.meta.flightNumber': '航班号', 'reservations.meta.from': '出发', 'reservations.meta.to': '到达', 'reservations.meta.trainNumber': '车次', 'reservations.meta.platform': '站台', 'reservations.meta.seat': '座位', 'reservations.meta.checkIn': '入住', 'reservations.meta.checkOut': '退房', 'reservations.meta.linkAccommodation': '住宿', 'reservations.meta.pickAccommodation': '关联住宿', 'reservations.meta.noAccommodation': '无', 'reservations.meta.hotelPlace': '住宿', 'reservations.meta.pickHotel': '选择住宿', 'reservations.meta.fromDay': '从', 'reservations.meta.toDay': '到', 'reservations.meta.selectDay': '选择日期', 'reservations.type.flight': '航班', 'reservations.type.hotel': '住宿', 'reservations.type.restaurant': '餐厅', 'reservations.type.train': '火车', 'reservations.type.car': '租车', 'reservations.type.cruise': '邮轮', 'reservations.type.event': '活动', 'reservations.type.tour': '旅游团', 'reservations.type.other': '其他', 'reservations.confirm.delete': '确定要删除预订「{name}」吗?', 'reservations.confirm.deleteTitle': '删除预订?', 'reservations.confirm.deleteBody': '"{name}" 将被永久删除。', 'reservations.toast.updated': '预订已更新', 'reservations.toast.removed': '预订已删除', 'reservations.toast.fileUploaded': '文件已上传', 'reservations.toast.uploadError': '上传失败', 'reservations.newTitle': '新建预订', 'reservations.bookingType': '预订类型', 'reservations.titleLabel': '标题', 'reservations.titlePlaceholder': '如:汉莎 LH123、阿德隆酒店...', 'reservations.locationAddress': '地点 / 地址', 'reservations.locationPlaceholder': '地址、机场、酒店...', 'reservations.confirmationCode': '预订码', 'reservations.confirmationPlaceholder': '如:ABC12345', 'reservations.day': '日期', 'reservations.noDay': '无日期', 'reservations.place': '地点', 'reservations.noPlace': '无地点', 'reservations.pendingSave': '将被保存…', 'reservations.uploading': '上传中...', 'reservations.attachFile': '附加文件', 'reservations.linkExisting': '关联已有文件', 'reservations.toast.saveError': '保存失败', 'reservations.toast.updateError': '更新失败', 'reservations.toast.deleteError': '删除失败', 'reservations.confirm.remove': '移除「{name}」的预订?', 'reservations.linkAssignment': '关联日程分配', 'reservations.pickAssignment': '从计划中选择一个分配...', 'reservations.noAssignment': '无关联(独立)', 'reservations.price': '价格', 'reservations.budgetCategory': '预算类别', 'reservations.budgetCategoryPlaceholder': '例:交通、住宿', 'reservations.budgetCategoryAuto': '自动(按预订类型)', 'reservations.budgetHint': '保存时将自动创建预算条目。', 'reservations.departureDate': '出发', 'reservations.arrivalDate': '到达', 'reservations.departureTime': '出发时间', 'reservations.arrivalTime': '到达时间', 'reservations.pickupDate': '取车', 'reservations.returnDate': '还车', 'reservations.pickupTime': '取车时间', 'reservations.returnTime': '还车时间', 'reservations.endDate': '结束日期', 'reservations.meta.departureTimezone': '出发时区', 'reservations.meta.arrivalTimezone': '到达时区', 'reservations.span.departure': '出发', 'reservations.span.arrival': '到达', 'reservations.span.inTransit': '途中', 'reservations.span.pickup': '取车', 'reservations.span.return': '还车', 'reservations.span.active': '使用中', 'reservations.span.start': '开始', 'reservations.span.end': '结束', 'reservations.span.ongoing': '进行中', 'reservations.validation.endBeforeStart': '结束日期/时间必须晚于开始日期/时间', // Budget 'budget.title': '预算', 'budget.exportCsv': '导出 CSV', 'budget.emptyTitle': '尚未创建预算', 'budget.emptyText': '创建分类和条目来规划旅行预算', 'budget.emptyPlaceholder': '输入分类名称...', 'budget.createCategory': '创建分类', 'budget.category': '分类', 'budget.categoryName': '分类名称', 'budget.table.name': '名称', 'budget.table.total': '合计', 'budget.table.persons': '人数', 'budget.table.days': '天数', 'budget.table.perPerson': '人均', 'budget.table.perDay': '日均', 'budget.table.perPersonDay': '人日均', 'budget.table.note': '备注', 'budget.table.date': '日期', 'budget.newEntry': '新建条目', 'budget.defaultEntry': '新建条目', 'budget.defaultCategory': '新分类', 'budget.total': '合计', 'budget.totalBudget': '总预算', 'budget.byCategory': '按分类', 'budget.editTooltip': '点击编辑', 'budget.confirm.deleteCategory': '确定删除分类「{name}」及其 {count} 个条目?', 'budget.deleteCategory': '删除分类', 'budget.perPerson': '人均', 'budget.paid': '已支付', 'budget.open': '未支付', 'budget.noMembers': '未分配成员', 'budget.settlement': '结算', 'budget.settlementInfo': '点击预算项目上的成员头像将其标记为绿色——表示该成员已付款。结算会显示谁欠谁多少。', 'budget.netBalances': '净余额', // Files 'files.title': '文件', 'files.count': '{count} 个文件', 'files.countSingular': '1 个文件', 'files.uploaded': '已上传 {count} 个', 'files.uploadError': '上传失败', 'files.dropzone': '将文件拖放到此处', 'files.dropzoneHint': '或点击浏览', 'files.allowedTypes': '图片、PDF、DOC、DOCX、XLS、XLSX、TXT、CSV · 最大 50 MB', 'files.uploading': '上传中...', 'files.filterAll': '全部', 'files.filterPdf': 'PDF', 'files.filterImages': '图片', 'files.filterDocs': '文档', 'files.filterCollab': '协作笔记', 'files.sourceCollab': '来自协作笔记', 'files.empty': '暂无文件', 'files.emptyHint': '上传文件以附加到旅行中', 'files.openTab': '在新标签页中打开', 'files.confirm.delete': '确定要删除此文件吗?', 'files.toast.deleted': '文件已删除', 'files.toast.deleteError': '删除文件失败', 'files.sourcePlan': '日程计划', 'files.sourceBooking': '预订', 'files.attach': '附加', 'files.pasteHint': '也可以从剪贴板粘贴图片 (Ctrl+V)', 'files.trash': '回收站', 'files.trashEmpty': '回收站为空', 'files.emptyTrash': '清空回收站', 'files.restore': '恢复', 'files.star': '收藏', 'files.unstar': '取消收藏', 'files.assign': '分配', 'files.assignTitle': '分配文件', 'files.assignPlace': '地点', 'files.assignBooking': '预订', 'files.unassigned': '未分配', 'files.unlink': '移除关联', 'files.toast.trashed': '已移至回收站', 'files.toast.restored': '文件已恢复', 'files.toast.trashEmptied': '回收站已清空', 'files.toast.assigned': '文件已分配', 'files.toast.assignError': '分配失败', 'files.toast.restoreError': '恢复失败', 'files.confirm.permanentDelete': '永久删除此文件?此操作无法撤销。', 'files.confirm.emptyTrash': '永久删除回收站中的所有文件?此操作无法撤销。', 'files.noteLabel': '备注', 'files.notePlaceholder': '添加备注...', // Packing 'packing.title': '行李清单', 'packing.empty': '行李清单为空', 'packing.import': '导入', 'packing.importTitle': '导入装箱清单', 'packing.importHint': '每行一个物品。可选用逗号、分号或制表符分隔类别和数量:名称, 类别, 数量', 'packing.importPlaceholder': '牙刷\n防晒霜, 卫生\nT恤, 衣物, 5\n护照, 证件', 'packing.importCsv': '加载 CSV/TXT', 'packing.importAction': '导入 {count}', 'packing.importSuccess': '已导入 {count} 项', 'packing.importError': '导入失败', 'packing.importEmpty': '没有可导入的项目', 'packing.progress': '已打包 {packed}/{total}({percent}%)', 'packing.clearChecked': '移除 {count} 个已勾选', 'packing.clearCheckedShort': '移除 {count} 个', 'packing.suggestions': '建议', 'packing.suggestionsTitle': '添加建议', 'packing.allSuggested': '所有建议已添加', 'packing.allPacked': '全部打包完成!', 'packing.addPlaceholder': '添加新物品...', 'packing.categoryPlaceholder': '分类...', 'packing.filterAll': '全部', 'packing.filterOpen': '未完成', 'packing.filterDone': '已完成', 'packing.emptyTitle': '行李清单为空', 'packing.emptyHint': '添加物品或使用建议', 'packing.emptyFiltered': '没有匹配的物品', 'packing.menuRename': '重命名', 'packing.menuCheckAll': '全部勾选', 'packing.menuUncheckAll': '取消全部勾选', 'packing.menuDeleteCat': '删除分类', 'packing.addItem': '添加物品', 'packing.addItemPlaceholder': '物品名称...', 'packing.addCategory': '添加分类', 'packing.newCategoryPlaceholder': '分类名称(如:衣物)', 'packing.applyTemplate': '应用模板', 'packing.template': '模板', 'packing.templateApplied': '已从模板添加 {count} 个物品', 'packing.templateError': '应用模板失败', 'packing.assignUser': '分配用户', 'packing.noMembers': '无成员', 'packing.bags': '行李', 'packing.noBag': '未分配', 'packing.totalWeight': '总重量', 'packing.bagName': '名称...', 'packing.addBag': '添加行李', 'packing.changeCategory': '更改分类', 'packing.confirm.clearChecked': '确定移除 {count} 个已勾选的物品?', 'packing.confirm.deleteCat': '确定删除分类「{name}」及其 {count} 个物品?', 'packing.defaultCategory': '其他', 'packing.toast.saveError': '保存失败', 'packing.toast.deleteError': '删除失败', 'packing.toast.renameError': '重命名失败', 'packing.toast.addError': '添加失败', // Packing suggestions 'packing.suggestions.items': [ { name: '护照', category: '证件' }, { name: '身份证', category: '证件' }, { name: '旅行保险', category: '证件' }, { name: '机票', category: '证件' }, { name: '信用卡', category: '财务' }, { name: '现金', category: '财务' }, { name: '签证', category: '证件' }, { name: 'T恤', category: '衣物' }, { name: '裤子', category: '衣物' }, { name: '内衣', category: '衣物' }, { name: '袜子', category: '衣物' }, { name: '外套', category: '衣物' }, { name: '睡衣', category: '衣物' }, { name: '泳衣', category: '衣物' }, { name: '雨衣', category: '衣物' }, { name: '舒适的鞋子', category: '衣物' }, { name: '牙刷', category: '洗漱用品' }, { name: '牙膏', category: '洗漱用品' }, { name: '洗发水', category: '洗漱用品' }, { name: '除臭剂', category: '洗漱用品' }, { name: '防晒霜', category: '洗漱用品' }, { name: '剃须刀', category: '洗漱用品' }, { name: '充电器', category: '电子产品' }, { name: '充电宝', category: '电子产品' }, { name: '耳机', category: '电子产品' }, { name: '旅行转换插头', category: '电子产品' }, { name: '相机', category: '电子产品' }, { name: '止痛药', category: '健康' }, { name: '创可贴', category: '健康' }, { name: '消毒液', category: '健康' }, ], // Members / Sharing 'members.shareTrip': '分享旅行', 'members.inviteUser': '邀请用户', 'members.selectUser': '选择用户…', 'members.invite': '邀请', 'members.allHaveAccess': '所有用户均已拥有访问权限。', 'members.access': '访问权限', 'members.person': '人', 'members.persons': '人', 'members.you': '你', 'members.owner': '所有者', 'members.leaveTrip': '退出旅行', 'members.removeAccess': '移除访问权限', 'members.confirmLeave': '退出旅行?你将失去访问权限。', 'members.confirmRemove': '移除该用户的访问权限?', 'members.loadError': '加载成员失败', 'members.added': '已添加', 'members.addError': '添加失败', 'members.removed': '成员已移除', 'members.removeError': '移除失败', // Categories (Admin) 'categories.title': '分类', 'categories.subtitle': '管理地点分类', 'categories.new': '新建分类', 'categories.empty': '暂无分类', 'categories.namePlaceholder': '分类名称', 'categories.icon': '图标', 'categories.color': '颜色', 'categories.customColor': '选择自定义颜色', 'categories.preview': '预览', 'categories.defaultName': '分类', 'categories.update': '更新', 'categories.create': '创建', 'categories.confirm.delete': '删除分类?该分类下的地点不会被删除。', 'categories.toast.loadError': '加载分类失败', 'categories.toast.nameRequired': '请输入名称', 'categories.toast.updated': '分类已更新', 'categories.toast.created': '分类已创建', 'categories.toast.saveError': '保存失败', 'categories.toast.deleted': '分类已删除', 'categories.toast.deleteError': '删除失败', // Backup (Admin) 'backup.title': '数据备份', 'backup.subtitle': '数据库和所有上传文件', 'backup.refresh': '刷新', 'backup.upload': '上传备份', 'backup.uploading': '上传中…', 'backup.create': '创建备份', 'backup.creating': '创建中…', 'backup.empty': '暂无备份', 'backup.createFirst': '创建第一个备份', 'backup.download': '下载', 'backup.restore': '恢复', 'backup.confirm.restore': '恢复备份「{name}」?\n\n所有当前数据将被备份数据替换。', 'backup.confirm.uploadRestore': '上传并恢复备份文件「{name}」?\n\n所有当前数据将被覆盖。', 'backup.confirm.delete': '删除备份「{name}」?', 'backup.toast.loadError': '加载备份失败', 'backup.toast.created': '备份创建成功', 'backup.toast.createError': '创建备份失败', 'backup.toast.restored': '备份已恢复。页面即将刷新…', 'backup.toast.restoreError': '恢复失败', 'backup.toast.uploadError': '上传失败', 'backup.toast.deleted': '备份已删除', 'backup.toast.deleteError': '删除失败', 'backup.toast.downloadError': '下载失败', 'backup.toast.settingsSaved': '自动备份设置已保存', 'backup.toast.settingsError': '保存设置失败', 'backup.auto.title': '自动备份', 'backup.auto.subtitle': '按计划自动备份', 'backup.auto.enable': '启用自动备份', 'backup.auto.enableHint': '将按所选计划自动创建备份', 'backup.auto.interval': '间隔', 'backup.auto.hour': '执行时间', 'backup.auto.hourHint': '服务器本地时间({format} 格式)', 'backup.auto.dayOfWeek': '星期几', 'backup.auto.dayOfMonth': '每月几号', 'backup.auto.dayOfMonthHint': '限 1–28 以兼容所有月份', 'backup.auto.scheduleSummary': '计划', 'backup.auto.summaryDaily': '每天 {hour}:00', 'backup.auto.summaryWeekly': '每{day} {hour}:00', 'backup.auto.summaryMonthly': '每月 {day} 号 {hour}:00', 'backup.auto.envLocked': 'Docker', 'backup.auto.envLockedHint': '自动备份通过 Docker 环境变量配置。要更改设置,请更新 docker-compose.yml 并重启容器。', 'backup.auto.copyEnv': '复制 Docker 环境变量', 'backup.auto.envCopied': 'Docker 环境变量已复制到剪贴板', 'backup.auto.keepLabel': '自动删除旧备份', 'backup.dow.sunday': '周日', 'backup.dow.monday': '周一', 'backup.dow.tuesday': '周二', 'backup.dow.wednesday': '周三', 'backup.dow.thursday': '周四', 'backup.dow.friday': '周五', 'backup.dow.saturday': '周六', 'backup.interval.hourly': '每小时', 'backup.interval.daily': '每天', 'backup.interval.weekly': '每周', 'backup.interval.monthly': '每月', 'backup.keep.1day': '1 天', 'backup.keep.3days': '3 天', 'backup.keep.7days': '7 天', 'backup.keep.14days': '14 天', 'backup.keep.30days': '30 天', 'backup.keep.forever': '永久保留', // Photos 'photos.allDays': '所有天', 'photos.noPhotos': '暂无照片', 'photos.uploadHint': '上传你的旅行照片', 'photos.clickToSelect': '或点击选择', 'photos.linkPlace': '关联地点', 'photos.noPlace': '无地点', 'photos.uploadN': '上传 {n} 张照片', // Backup restore modal 'backup.restoreConfirmTitle': '恢复备份?', 'backup.restoreWarning': '所有当前数据(旅行、地点、用户、上传文件)将被备份数据永久替换。此操作无法撤销。', 'backup.restoreTip': '提示:恢复前建议先备份当前状态。', 'backup.restoreConfirm': '确认恢复', // PDF 'pdf.travelPlan': '旅行计划', 'pdf.planned': '已规划', 'pdf.costLabel': '费用 EUR', 'pdf.preview': 'PDF 预览', 'pdf.saveAsPdf': '保存为 PDF', // Planner 'planner.places': '地点', 'planner.bookings': '预订', 'planner.packingList': '行李清单', 'planner.documents': '文档', 'planner.dayPlan': '日程计划', 'planner.reservations': '预订', 'planner.minTwoPlaces': '至少需要 2 个有坐标的地点', 'planner.noGeoPlaces': '没有有坐标的地点', 'planner.routeCalculated': '路线已计算', 'planner.routeCalcFailed': '无法计算路线', 'planner.routeError': '路线计算错误', 'planner.routeOptimized': '路线已优化', 'planner.reservationUpdated': '预订已更新', 'planner.reservationAdded': '预订已添加', 'planner.confirmDeleteReservation': '删除预订?', 'planner.reservationDeleted': '预订已删除', 'planner.days': '天', 'planner.allPlaces': '所有地点', 'planner.totalPlaces': '共 {n} 个地点', 'planner.noDaysPlanned': '尚未规划天数', 'planner.editTrip': '编辑旅行 \u2192', 'planner.placeOne': '1 个地点', 'planner.placeN': '{n} 个地点', 'planner.addNote': '添加备注', 'planner.noEntries': '当天无条目', 'planner.addPlace': '添加地点/活动', 'planner.addPlaceShort': '+ 添加地点/活动', 'planner.resPending': '预订待确认 · ', 'planner.resConfirmed': '预订已确认 · ', 'planner.notePlaceholder': '备注…', 'planner.noteTimePlaceholder': '时间(可选)', 'planner.noteExamplePlaceholder': '如:14:30 从中央车站乘 S3,7 号码头渡轮,午餐休息…', 'planner.totalCost': '总费用', 'planner.searchPlaces': '搜索地点…', 'planner.allCategories': '所有分类', 'planner.noPlacesFound': '未找到地点', 'planner.addFirstPlace': '添加第一个地点', 'planner.noReservations': '暂无预订', 'planner.addFirstReservation': '添加第一个预订', 'planner.new': '新建', 'planner.addToDay': '+ 天', 'planner.calculating': '计算中…', 'planner.route': '路线', 'planner.optimize': '优化', 'planner.openGoogleMaps': '在 Google Maps 中打开', 'planner.selectDayHint': '从左侧列表选择一天以查看日程计划', 'planner.noPlacesForDay': '当天暂无地点', 'planner.addPlacesLink': '添加地点 \u2192', 'planner.minTotal': '分钟 合计', 'planner.noReservation': '无预订', 'planner.removeFromDay': '从当天移除', 'planner.addToThisDay': '添加到当天', 'planner.overview': '概览', 'planner.noDays': '暂无天数', 'planner.editTripToAddDays': '编辑旅行以添加天数', 'planner.dayCount': '{n} 天', 'planner.clickToUnlock': '点击解锁', 'planner.keepPosition': '路线优化时保持位置', 'planner.dayDetails': '日程详情', 'planner.dayN': '第 {n} 天', // Dashboard Stats 'stats.countries': '国家', 'stats.cities': '城市', 'stats.trips': '旅行', 'stats.places': '地点', 'stats.worldProgress': '全球进度', 'stats.visited': '已访问', 'stats.remaining': '未访问', 'stats.visitedCountries': '已访问国家', // Day Detail Panel 'day.precipProb': '降水概率', 'day.precipitation': '降水量', 'day.wind': '风速', 'day.sunrise': '日出', 'day.sunset': '日落', 'day.hourlyForecast': '逐小时预报', 'day.climateHint': '历史平均值——实际预报在该日期前 16 天内可用。', 'day.noWeather': '无天气数据。请添加有坐标的地点。', 'day.overview': '每日概览', 'day.accommodation': '住宿', 'day.addAccommodation': '添加住宿', 'day.hotelDayRange': '应用到天数', 'day.noPlacesForHotel': '请先在旅行中添加地点', 'day.allDays': '全部', 'day.checkIn': '入住', 'day.checkOut': '退房', 'day.confirmation': '确认号', 'day.editAccommodation': '编辑住宿', 'day.reservations': '预订', // Memories / Immich 'memories.title': '照片', 'memories.notConnected': 'Immich 未连接', 'memories.notConnectedHint': '在设置中连接您的 Immich 实例以在此查看旅行照片。', 'memories.noDates': '为旅行添加日期以加载照片。', 'memories.noPhotos': '未找到照片', 'memories.noPhotosHint': 'Immich 中未找到此旅行日期范围内的照片。', 'memories.photosFound': '张照片', 'memories.fromOthers': '来自他人', 'memories.sharePhotos': '分享照片', 'memories.sharing': '分享中', 'memories.reviewTitle': '审查您的照片', 'memories.reviewHint': '点击照片以将其从分享中排除。', 'memories.shareCount': '分享 {count} 张照片', 'memories.immichUrl': 'Immich 服务器地址', 'memories.immichApiKey': 'API 密钥', 'memories.testConnection': '测试连接', 'memories.testFirst': '请先测试连接', 'memories.connected': '已连接', 'memories.disconnected': '未连接', 'memories.connectionSuccess': '已连接到 Immich', 'memories.connectionError': '无法连接到 Immich', 'memories.saved': 'Immich 设置已保存', 'memories.oldest': '最早优先', 'memories.newest': '最新优先', 'memories.allLocations': '所有地点', 'memories.addPhotos': '添加照片', 'memories.linkAlbum': '关联相册', 'memories.selectAlbum': '选择 Immich 相册', 'memories.noAlbums': '未找到相册', 'memories.syncAlbum': '同步相册', 'memories.unlinkAlbum': '取消关联', 'memories.photos': '张照片', 'memories.selectPhotos': '从 Immich 选择照片', 'memories.selectHint': '点击照片以选择。', 'memories.selected': '已选择', 'memories.addSelected': '添加 {count} 张照片', 'memories.alreadyAdded': '已添加', 'memories.private': '私密', 'memories.stopSharing': '停止分享', 'memories.tripDates': '旅行日期', 'memories.allPhotos': '所有照片', 'memories.confirmShareTitle': '与旅行成员分享?', 'memories.confirmShareHint': '{count} 张照片将对本次旅行的所有成员可见。你可以稍后将单张照片设为私密。', 'memories.confirmShareButton': '分享照片', // Collab Addon 'collab.tabs.chat': '聊天', 'collab.tabs.notes': '笔记', 'collab.tabs.polls': '投票', 'collab.whatsNext.title': '接下来', 'collab.whatsNext.today': '今天', 'collab.whatsNext.tomorrow': '明天', 'collab.whatsNext.empty': '暂无活动', 'collab.whatsNext.until': '至', 'collab.whatsNext.emptyHint': '有时间安排的活动将显示在此', 'collab.chat.send': '发送', 'collab.chat.placeholder': '输入消息...', 'collab.chat.empty': '开始对话', 'collab.chat.emptyHint': '消息对所有旅行成员可见', 'collab.chat.emptyDesc': '与旅伴分享想法、计划和动态', 'collab.chat.today': '今天', 'collab.chat.yesterday': '昨天', 'collab.chat.deletedMessage': '删除了一条消息', 'collab.chat.reply': '回复', 'collab.chat.loadMore': '加载更早的消息', 'collab.chat.justNow': '刚刚', 'collab.chat.minutesAgo': '{n} 分钟前', 'collab.chat.hoursAgo': '{n} 小时前', 'collab.notes.title': '笔记', 'collab.notes.new': '新建笔记', 'collab.notes.empty': '暂无笔记', 'collab.notes.emptyHint': '开始记录想法和计划', 'collab.notes.all': '全部', 'collab.notes.titlePlaceholder': '笔记标题', 'collab.notes.contentPlaceholder': '写点什么...', 'collab.notes.categoryPlaceholder': '分类', 'collab.notes.newCategory': '新建分类...', 'collab.notes.category': '分类', 'collab.notes.noCategory': '无分类', 'collab.notes.color': '颜色', 'collab.notes.save': '保存', 'collab.notes.cancel': '取消', 'collab.notes.edit': '编辑', 'collab.notes.delete': '删除', 'collab.notes.pin': '置顶', 'collab.notes.unpin': '取消置顶', 'collab.notes.daysAgo': '{n} 天前', 'collab.notes.categorySettings': '管理分类', 'collab.notes.create': '创建', 'collab.notes.website': '网站', 'collab.notes.websitePlaceholder': 'https://...', 'collab.notes.attachFiles': '附加文件', 'collab.notes.noCategoriesYet': '暂无分类', 'collab.notes.emptyDesc': '创建一个笔记开始吧', 'collab.polls.title': '投票', 'collab.polls.new': '新建投票', 'collab.polls.empty': '暂无投票', 'collab.polls.emptyHint': '向团队提问并一起投票', 'collab.polls.question': '问题', 'collab.polls.questionPlaceholder': '我们应该做什么?', 'collab.polls.addOption': '+ 添加选项', 'collab.polls.optionPlaceholder': '选项 {n}', 'collab.polls.create': '创建投票', 'collab.polls.close': '关闭', 'collab.polls.closed': '已关闭', 'collab.polls.votes': '{n} 票', 'collab.polls.vote': '{n} 票', 'collab.polls.multipleChoice': '多选', 'collab.polls.multiChoice': '多选', 'collab.polls.deadline': '截止时间', 'collab.polls.option': '选项', 'collab.polls.options': '选项', 'collab.polls.delete': '删除', 'collab.polls.closedSection': '已关闭', // Permissions 'admin.tabs.permissions': '权限', 'perm.title': '权限设置', 'perm.subtitle': '控制谁可以在应用中执行操作', 'perm.saved': '权限设置已保存', 'perm.resetDefaults': '恢复默认', 'perm.customized': '已自定义', 'perm.level.admin': '仅管理员', 'perm.level.tripOwner': '旅行所有者', 'perm.level.tripMember': '旅行成员', 'perm.level.everybody': '所有人', 'perm.cat.trip': '旅行管理', 'perm.cat.members': '成员管理', 'perm.cat.files': '文件', 'perm.cat.content': '内容与日程', 'perm.cat.extras': '预算、行李与协作', 'perm.action.trip_create': '创建旅行', 'perm.action.trip_edit': '编辑旅行详情', 'perm.action.trip_delete': '删除旅行', 'perm.action.trip_archive': '归档 / 取消归档旅行', 'perm.action.trip_cover_upload': '上传封面图片', 'perm.action.member_manage': '添加 / 移除成员', 'perm.action.file_upload': '上传文件', 'perm.action.file_edit': '编辑文件元数据', 'perm.action.file_delete': '删除文件', 'perm.action.place_edit': '添加 / 编辑 / 删除地点', 'perm.action.day_edit': '编辑日程、备注与分配', 'perm.action.reservation_edit': '管理预订', 'perm.action.budget_edit': '管理预算', 'perm.action.packing_edit': '管理行李清单', 'perm.action.collab_edit': '协作(笔记、投票、聊天)', 'perm.action.share_manage': '管理分享链接', 'perm.actionHint.trip_create': '谁可以创建新旅行', 'perm.actionHint.trip_edit': '谁可以更改旅行名称、日期、描述和货币', 'perm.actionHint.trip_delete': '谁可以永久删除旅行', 'perm.actionHint.trip_archive': '谁可以归档或取消归档旅行', 'perm.actionHint.trip_cover_upload': '谁可以上传或更改封面图片', 'perm.actionHint.member_manage': '谁可以邀请或移除旅行成员', 'perm.actionHint.file_upload': '谁可以向旅行上传文件', 'perm.actionHint.file_edit': '谁可以编辑文件描述和链接', 'perm.actionHint.file_delete': '谁可以将文件移至回收站或永久删除', 'perm.actionHint.place_edit': '谁可以添加、编辑或删除地点', 'perm.actionHint.day_edit': '谁可以编辑日程、日程备注和地点分配', 'perm.actionHint.reservation_edit': '谁可以创建、编辑或删除预订', 'perm.actionHint.budget_edit': '谁可以创建、编辑或删除预算项目', 'perm.actionHint.packing_edit': '谁可以管理行李物品和包袋', 'perm.actionHint.collab_edit': '谁可以创建笔记、投票和发送消息', 'perm.actionHint.share_manage': '谁可以创建或删除公开分享链接', // Undo 'undo.button': '撤销', 'undo.tooltip': '撤销:{action}', 'undo.assignPlace': '地点已分配至某天', 'undo.removeAssignment': '地点已从某天移除', 'undo.reorder': '地点已重新排序', 'undo.optimize': '路线已优化', 'undo.deletePlace': '地点已删除', 'undo.moveDay': '地点已移至另一天', 'undo.lock': '地点锁定已切换', 'undo.importGpx': 'GPX 导入', 'undo.importGoogleList': 'Google 地图导入', // Notifications 'notifications.title': '通知', 'notifications.markAllRead': '全部标为已读', 'notifications.deleteAll': '全部删除', 'notifications.showAll': '查看所有通知', 'notifications.empty': '暂无通知', 'notifications.emptyDescription': '您已全部查阅!', 'notifications.all': '全部', 'notifications.unreadOnly': '未读', 'notifications.markRead': '标为已读', 'notifications.markUnread': '标为未读', 'notifications.delete': '删除', 'notifications.system': '系统', 'memories.error.loadAlbums': '加载相册失败', 'memories.error.linkAlbum': '关联相册失败', 'memories.error.unlinkAlbum': '取消关联相册失败', 'memories.error.syncAlbum': '同步相册失败', 'memories.error.loadPhotos': '加载照片失败', 'memories.error.addPhotos': '添加照片失败', 'memories.error.removePhoto': '删除照片失败', 'memories.error.toggleSharing': '更新共享设置失败', 'undo.addPlace': '地点已添加', 'undo.done': '已撤销:{action}', 'notifications.test.title': '来自 {actor} 的测试通知', 'notifications.test.text': '这是一条简单的测试通知。', 'notifications.test.booleanTitle': '{actor} 请求您的审批', 'notifications.test.booleanText': '测试布尔通知。', 'notifications.test.accept': '批准', 'notifications.test.decline': '拒绝', 'notifications.test.navigateTitle': '查看详情', 'notifications.test.navigateText': '测试跳转通知。', 'notifications.test.goThere': '前往', 'notifications.test.adminTitle': '管理员广播', 'notifications.test.adminText': '{actor} 向所有管理员发送了测试通知。', 'notifications.test.tripTitle': '{actor} 在您的行程中发帖', 'notifications.test.tripText': '行程"{trip}"的测试通知。', // Todo 'todo.subtab.packing': '行李清单', 'todo.subtab.todo': '待办事项', 'todo.completed': '已完成', 'todo.filter.all': '全部', 'todo.filter.open': '进行中', 'todo.filter.done': '已完成', 'todo.uncategorized': '未分类', 'todo.namePlaceholder': '任务名称', 'todo.descriptionPlaceholder': '描述(可选)', 'todo.unassigned': '未分配', 'todo.noCategory': '无分类', 'todo.hasDescription': '有描述', 'todo.addItem': '添加新任务...', 'todo.newCategory': '分类名称', 'todo.addCategory': '添加分类', 'todo.newItem': '新任务', 'todo.empty': '暂无任务,添加一个任务开始吧!', 'todo.filter.my': '我的任务', 'todo.filter.overdue': '已逾期', 'todo.sidebar.tasks': '任务', 'todo.sidebar.categories': '分类', 'todo.detail.title': '任务', 'todo.detail.description': '描述', 'todo.detail.category': '分类', 'todo.detail.dueDate': '截止日期', 'todo.detail.assignedTo': '分配给', 'todo.detail.delete': '删除', 'todo.detail.save': '保存更改', 'todo.detail.create': '创建任务', 'todo.detail.priority': '优先级', 'todo.detail.noPriority': '无', 'todo.sortByPrio': '优先级', // Notification system (added from feat/notification-system) 'settings.notifyVersionAvailable': '有新版本可用', 'settings.notificationPreferences.noChannels': '未配置通知渠道。请联系管理员设置电子邮件或 Webhook 通知。', 'settings.webhookUrl.label': 'Webhook URL', 'settings.webhookUrl.placeholder': 'https://discord.com/api/webhooks/...', 'settings.webhookUrl.hint': '输入您的 Discord、Slack 或自定义 Webhook URL 以接收通知。', 'settings.webhookUrl.save': '保存', 'settings.webhookUrl.saved': 'Webhook URL 已保存', 'settings.webhookUrl.test': '测试', 'settings.webhookUrl.testSuccess': '测试 Webhook 发送成功', 'settings.webhookUrl.testFailed': '测试 Webhook 失败', 'settings.notificationPreferences.inapp': 'In-App', 'settings.notificationPreferences.webhook': 'Webhook', 'settings.notificationPreferences.email': 'Email', 'admin.notifications.emailPanel.title': 'Email (SMTP)', 'admin.notifications.webhookPanel.title': 'Webhook', 'admin.notifications.inappPanel.title': 'In-App', 'admin.notifications.inappPanel.hint': '应用内通知始终处于活跃状态,无法全局禁用。', 'admin.notifications.adminWebhookPanel.title': '管理员 Webhook', 'admin.notifications.adminWebhookPanel.hint': '此 Webhook 专用于管理员通知(如版本更新提醒)。它与用户 Webhook 相互独立,配置 URL 后自动触发。', 'admin.notifications.adminWebhookPanel.saved': '管理员 Webhook URL 已保存', 'admin.notifications.adminWebhookPanel.testSuccess': '测试 Webhook 发送成功', 'admin.notifications.adminWebhookPanel.testFailed': '测试 Webhook 失败', 'admin.notifications.adminWebhookPanel.alwaysOnHint': '配置 URL 后管理员 Webhook 自动触发', 'admin.notifications.adminNotificationsHint': '配置哪些渠道发送管理员通知(如版本更新提醒)。设置管理员 Webhook URL 后,Webhook 将自动触发。', 'admin.tabs.notifications': '通知', 'notifications.versionAvailable.title': '有可用更新', 'notifications.versionAvailable.text': 'TREK {version} 现已可用。', 'notifications.versionAvailable.button': '查看详情', 'notif.test.title': '[测试] 通知', 'notif.test.simple.text': '这是一条简单的测试通知。', 'notif.test.boolean.text': '您是否接受此测试通知?', 'notif.test.navigate.text': '点击下方前往控制台。', // Notifications 'notif.trip_invite.title': '旅行邀请', 'notif.trip_invite.text': '{actor} 邀请您加入 {trip}', 'notif.booking_change.title': '预订已更新', 'notif.booking_change.text': '{actor} 更新了 {trip} 中的预订', 'notif.trip_reminder.title': '旅行提醒', 'notif.trip_reminder.text': '您的旅行 {trip} 即将开始!', 'notif.vacay_invite.title': 'Vacay 融合邀请', 'notif.vacay_invite.text': '{actor} 邀请您合并假期计划', 'notif.photos_shared.title': '照片已分享', 'notif.photos_shared.text': '{actor} 在 {trip} 中分享了 {count} 张照片', 'notif.collab_message.title': '新消息', 'notif.collab_message.text': '{actor} 在 {trip} 中发送了消息', 'notif.packing_tagged.title': '行李分配', 'notif.packing_tagged.text': '{actor} 将您分配到 {trip} 中的 {category}', 'notif.version_available.title': '新版本可用', 'notif.version_available.text': 'TREK {version} 现已可用', 'notif.action.view_trip': '查看旅行', 'notif.action.view_collab': '查看消息', 'notif.action.view_packing': '查看行李', 'notif.action.view_photos': '查看照片', 'notif.action.view_vacay': '查看 Vacay', 'notif.action.view_admin': '前往管理', 'notif.action.view': '查看', 'notif.action.accept': '接受', 'notif.action.decline': '拒绝', 'notif.generic.title': '通知', 'notif.generic.text': '您有一条新通知', 'notif.dev.unknown_event.title': '[DEV] 未知事件', 'notif.dev.unknown_event.text': '事件类型 "{event}" 未在 EVENT_NOTIFICATION_CONFIG 中注册', } export default zh