Files
TREK/shared/src/i18n/zh/admin.ts
T
Maurice 459b092e28 fix(admin): show non-Docker update steps when not running in Docker (#1269)
The "How to Update" modal always rendered Docker commands and claimed the instance runs in Docker, even on bare-metal / LXC installs like Proxmox Community Scripts. It now branches on the is_docker flag the backend already returns: non-Docker installs get a generic "re-run your install method" note plus a link to the update guide. Docker stays the default when the flag is absent, so existing installs are unaffected.
2026-06-20 23:41:04 +02:00

337 lines
20 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
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.
import type { TranslationStrings } from '../types';
const admin: TranslationStrings = {
'admin.notifications.title': '通知',
'admin.notifications.hint': '选择一个通知渠道。一次只能激活一个。',
'admin.notifications.none': '已禁用',
'admin.notifications.email': '电子邮件 (SMTP)',
'admin.notifications.webhook': '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': '测试邮件发送失败',
'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.authMethods': 'Authentication Methods',
'admin.passwordLogin': 'Password Login',
'admin.passwordLoginHint': 'Allow users to sign in with email and password',
'admin.passwordRegistration': 'Password Registration',
'admin.passwordRegistrationHint': 'Allow new users to register with email and password',
'admin.oidcLogin': 'SSO Login',
'admin.oidcLoginHint': 'Allow users to sign in with SSO',
'admin.oidcRegistration': 'SSO Auto-Provisioning',
'admin.oidcRegistrationHint': 'Automatically create accounts for new SSO users',
'admin.envOverrideHint':
'Password login settings are controlled by the OIDC_ONLY environment variable and cannot be changed here.',
'admin.lockoutWarning': 'At least one login method must remain enabled',
'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 登录。密码登录和注册将被禁用。',
'admin.fileTypes': '允许的文件类型',
'admin.fileTypesHint': '配置用户可以上传的文件类型。',
'admin.fileTypesFormat': '以逗号分隔的扩展名(如 jpg,png,pdf,doc)。使用 * 允许所有类型。',
'admin.fileTypesSaved': '文件类型设置已保存',
'admin.placesPhotos.title': '地点照片',
'admin.placesPhotos.subtitle': '从 Google Places API 获取照片。禁用可节省 API 配额。Wikimedia 照片不受影响。',
'admin.placesAutocomplete.title': '地点自动补全',
'admin.placesAutocomplete.subtitle': '使用 Google Places API 提供搜索建议。禁用可节省 API 配额。',
'admin.placesDetails.title': '地点详情',
'admin.placesDetails.subtitle':
'从 Google Places API 获取地点详细信息(营业时间、评分、网站)。禁用可节省 API 配额。',
'admin.bagTracking.title': '行李追踪',
'admin.bagTracking.subtitle': '为打包物品启用重量和行李分配',
'admin.collab.chat.title': '聊天',
'admin.collab.chat.subtitle': '实时消息协作',
'admin.collab.notes.title': '笔记',
'admin.collab.notes.subtitle': '共享笔记和文档',
'admin.collab.polls.title': '投票',
'admin.collab.polls.subtitle': '群组投票和表决',
'admin.collab.whatsnext.title': '下一步',
'admin.collab.whatsnext.subtitle': '活动建议和后续步骤',
'admin.tabs.config': '个性化',
'admin.tabs.defaults': '用户默认设置',
'admin.defaultSettings.title': '用户默认设置',
'admin.defaultSettings.description': '设置实例范围的默认值。未更改设置的用户将看到这些值。用户自己的更改始终优先。',
'admin.defaultSettings.saved': '默认值已保存',
'admin.defaultSettings.reset': '重置为内置默认值',
'admin.defaultSettings.resetToBuiltIn': '重置',
'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': '保存失败',
'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': '暂无可用扩展',
'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':
'天气基于每天中第一个有坐标的地点。如果当天没有分配地点,则使用地点列表中的任意地点作为参考。',
'admin.tabs.mcpTokens': 'MCP 访问',
'admin.mcpTokens.title': 'MCP 访问',
'admin.mcpTokens.subtitle': '管理所有用户的 OAuth 会话和 API 令牌',
'admin.mcpTokens.sectionTitle': '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': '加载令牌失败',
'admin.oauthSessions.sectionTitle': 'OAuth 会话',
'admin.oauthSessions.clientName': '客户端',
'admin.oauthSessions.owner': '所有者',
'admin.oauthSessions.scopes': '权限范围',
'admin.oauthSessions.created': '创建时间',
'admin.oauthSessions.empty': '暂无活跃的 OAuth 会话',
'admin.oauthSessions.revokeTitle': '撤销会话',
'admin.oauthSessions.revokeMessage': '此 OAuth 会话将立即被撤销。客户端将失去 MCP 访问权限。',
'admin.oauthSessions.revokeSuccess': '会话已撤销',
'admin.oauthSessions.revokeError': '撤销会话失败',
'admin.oauthSessions.loadError': '加载 OAuth 会话失败',
'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.nonDockerText': '此 TREK 实例未运行在 Docker 中。要更新到 {version},请重新执行你当初使用的安装或更新方式——例如,在 Proxmox Community Scripts 上,从 LXC 控制台运行更新:',
'admin.update.wikiLink': '打开更新指南',
'admin.update.reloadHint': '请在几秒后刷新页面。',
'admin.tabs.permissions': '权限',
'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.ntfy': 'Ntfy',
'admin.ntfy.hint': '允许用户配置自己的 ntfy 主题以接收推送通知。在下方设置默认服务器以预填充用户设置。',
'admin.notifications.testNtfy': '发送测试 Ntfy',
'admin.notifications.testNtfySuccess': '测试 Ntfy 发送成功',
'admin.notifications.testNtfyFailed': '测试 Ntfy 失败',
'admin.notifications.adminNtfyPanel.title': '管理员 Ntfy',
'admin.notifications.adminNtfyPanel.hint':
'此 Ntfy 主题专用于管理员通知(如版本更新提醒)。它与每用户主题相互独立,配置后始终触发。',
'admin.notifications.adminNtfyPanel.serverLabel': 'Ntfy 服务器 URL',
'admin.notifications.adminNtfyPanel.serverHint':
'同时用作用户 ntfy 通知的默认服务器。留空则默认使用 ntfy.sh。用户可在其自己的设置中覆盖此项。',
'admin.notifications.adminNtfyPanel.serverPlaceholder': 'https://ntfy.sh',
'admin.notifications.adminNtfyPanel.topicLabel': '管理员主题',
'admin.notifications.adminNtfyPanel.topicPlaceholder': 'trek-admin-alerts',
'admin.notifications.adminNtfyPanel.tokenLabel': '访问令牌(可选)',
'admin.notifications.adminNtfyPanel.tokenCleared': '管理员访问令牌已清除',
'admin.notifications.adminNtfyPanel.saved': '管理员 Ntfy 设置已保存',
'admin.notifications.adminNtfyPanel.test': '发送测试 Ntfy',
'admin.notifications.adminNtfyPanel.testSuccess': '测试 Ntfy 发送成功',
'admin.notifications.adminNtfyPanel.testFailed': '测试 Ntfy 失败',
'admin.notifications.adminNtfyPanel.alwaysOnHint': '配置主题后管理员 Ntfy 始终触发',
'admin.notifications.adminNotificationsHint':
'配置哪些渠道发送管理员通知(如版本更新提醒)。设置管理员 Webhook URL 后,Webhook 将自动触发。',
'admin.notifications.tripReminders.title': '行程提醒',
'admin.notifications.tripReminders.hint': '在行程开始前发送提醒通知(需要在行程中设置提醒天数)。',
'admin.notifications.tripReminders.enabled': '行程提醒已启用',
'admin.notifications.tripReminders.disabled': '行程提醒已禁用',
'admin.tabs.notifications': '通知',
'admin.addons.catalog.journey.name': '旅程',
'admin.addons.catalog.journey.description': '旅行追踪与旅行日志,包含签到、照片和每日故事',
'admin.passkey.title': '通行密钥登录',
'admin.passkey.cardHint': '允许用户使用通行密钥(WebAuthn)登录。默认关闭。',
'admin.passkey.login': '启用通行密钥登录',
'admin.passkey.loginHint': '显示"使用通行密钥登录"选项,并允许用户在其设置中注册通行密钥。',
'admin.passkey.notConfigured':
'此部署尚未解析出有效的 WebAuthn 域名。请设置 APP_URL 或下方的 Relying Party ID——在此之前通行密钥将保持隐藏。',
'admin.passkey.rpId': 'Relying Party ID(域名)',
'admin.passkey.rpIdHint':
'通行密钥所绑定的纯域名,如 trek.example.org。留空则从 APP_URL 推导。之后更改将使现有通行密钥失效。',
'admin.passkey.origins': '允许的来源',
'admin.passkey.originsHint': '以逗号分隔的完整来源,如 https://trek.example.org。留空则使用 APP_URL。',
'admin.passkey.reset': '重置通行密钥',
'admin.passkey.resetHint': '移除该用户的所有通行密钥(如设备丢失时)。他们仍可使用密码登录。',
'admin.passkey.resetConfirm': '移除 {name} 的所有通行密钥?',
'admin.passkey.resetDone': '已移除 {count} 个通行密钥',
'admin.defaultSettings.mapProvider': '地图引擎',
'admin.defaultSettings.mapProviderHint': '本实例中所有用户的默认地图。每位用户仍可在自己的设置中更改此项。',
'admin.defaultSettings.providerLeaflet': '标准(免费)',
'admin.defaultSettings.providerMapbox': 'Mapbox3D',
'admin.defaultSettings.mapboxToken': '共享 Mapbox 令牌',
'admin.defaultSettings.mapboxTokenHint':
'用于所有未输入自己令牌的用户 — 这样无需逐个分享密钥,整个实例即可使用 Mapbox。以加密方式存储。',
'admin.defaultSettings.mapboxStyle': '地图样式',
'admin.defaultSettings.mapboxStylePlaceholder': '选择一种样式…',
'admin.defaultSettings.mapbox3d': '3D 建筑与地形',
'admin.defaultSettings.mapboxQuality': '高质量模式',
};
export default admin;