{
  "common": {
    "next": "下一步",
    "prev": "上一步",
    "finish": "完成",
    "cancel": "取消",
    "save": "保存",
    "loading": "加载中...",
    "confirm": "确认",
    "success": "成功",
    "error": "错误",
    "delete": "删除",
    "edit": "编辑",
    "add": "添加",
    "search": "搜索",
    "clear": "清空",
    "close": "关闭",
    "yes": "是",
    "no": "否",
    "submit": "提交",
    "reset": "重置",
    "import": "导入",
    "export": "导出",
    "create": "创建",
    "update": "更新",
    "refresh": "刷新",
    "view": "查看",
    "name": "姓名",
    "status": "状态",
    "operation": "操作",
    "description": "描述",
    "total": "共 {{count}} 条",
    "noData": "暂无数据",
    "pleaseSelect": "请选择",
    "pleaseEnter": "请输入",
    "readOnly": "当前为只读权限",
    "none": "无",
    "more": "更多"
  },
  "oobe": {
    "title": "欢迎使用 SecScore",
    "subtitle": "教育积分管理专家",
    "step": "第 {{current}}/{{total}} 步",
    "skip": "跳过",
    "steps": {
      "entry": {
        "title": "开始配置",
        "description": "请选择接下来要进行的操作",
        "enterOobe": "进入OOBE",
        "connectPostgresAutoSync": "连接PostgreSQL自动同步",
        "skipDirect": "跳过OOBE，直接进入"
      },
      "postgresql": {
        "title": "连接 PostgreSQL",
        "description": "输入 PostgreSQL 连接字符串，系统将自动连接并同步后进入应用",
        "connectionPlaceholder": "postgresql://user:password@host:port/database?sslmode=require",
        "autoSyncAndEnter": "连接并自动同步后进入"
      },
      "language": {
        "title": "选择语言",
        "description": "请选择您偏好的界面语言"
      },
      "theme": {
        "title": "设置主题",
        "description": "选择您喜欢的界面外观",
        "mode": "模式",
        "lightMode": "浅色",
        "darkMode": "深色",
        "primaryColor": "主色",
        "backgroundGradient": "背景渐变"
      },
      "password": {
        "title": "设置密码",
        "description": "设置登录密码以保护您的数据（可选）",
        "adminPassword": "管理密码",
        "adminPasswordHint": "可管理所有功能，6位数字",
        "pointsPassword": "积分密码",
        "pointsPasswordHint": "仅可操作积分，6位数字",
        "passwordPlaceholder": "请输入6位数字",
        "hint": "留空则不设置密码，之后可在设置中配置"
      },
      "students": {
        "title": "导入名单",
        "description": "添加学生名单以便开始积分管理",
        "import": "导入名单",
        "manual": "手动添加",
        "importHint": "支持 Excel (.xlsx) 或 JSON 文件",
        "manualHint": "支持粘贴多行文本，一行一个姓名",
        "dragDrop": "拖拽文件到此处，或点击选择",
        "supportedFormats": "支持 .xlsx, .json 格式",
        "studentName": "学生姓名",
        "addStudent": "添加学生",
        "noStudents": "暂无学生，请添加或导入",
        "studentCount": "已添加 {{count}} 名学生",
        "studentExists": "学生已存在",
        "importSuccess": "成功导入 {{count}} 名学生",
        "noNewStudents": "没有新学生可导入",
        "parseFailed": "文件解析失败",
        "unsupportedFormat": "不支持的文件格式"
      },
      "reasons": {
        "title": "设置理由",
        "description": "添加常用的积分变动理由",
        "addReason": "添加理由",
        "reasonName": "理由名称",
        "points": "积分",
        "positive": "加分",
        "negative": "扣分",
        "noReasons": "暂无理由，请添加常用理由",
        "reasonCount": "已添加 {{count}} 个理由",
        "reasonExists": "理由已存在"
      },
      "start": {
        "title": "准备就绪",
        "description": "一切准备就绪，开始使用 SecScore 吧！",
        "features": {
          "score": "轻松管理学生积分",
          "history": "完整的积分变动历史",
          "settlement": "支持结算与归档"
        },
        "startButton": "开始使用"
      }
    }
  },
  "settings": {
    "title": "系统设置",
    "tabs": {
      "appearance": "外观",
      "security": "安全",
      "account": "账户",
      "database": "云同步",
      "dataManagement": "数据管理",
      "urlProtocol": "URL 链接",
      "about": "关于"
    },
    "language": "语言",
    "languageHint": "选择界面显示语言",
    "fontFamily": "全局字体",
    "fontFamilyHint": "选择应用界面的字体（需要刷新页面以完全生效）",
    "theme": "主题",
    "password": "设置密码",
    "themeMode": "模式",
    "lightMode": "浅色",
    "darkMode": "深色",
    "primaryColor": "主色",
    "backgroundGradient": "背景渐变",
    "searchKeyboard": {
      "title": "搜索小键盘",
      "hint": "选择搜索框下方弹出的小键盘布局",
      "disableToggle": "禁用搜索小键盘",
      "disableHint": "开启后，搜索框下方不再弹出小键盘",
      "options": {
        "qwerty26": "26 键（QWERTY）",
        "t9": "9 键（T9）"
      }
    },
    "interfaceZoom": "界面缩放",
    "zoomOptions": {
      "small70": "小 (70%)",
      "default100": "默认 (100%)",
      "large150": "大 (150%)"
    },
    "general": {
      "saved": "已保存",
      "saveFailed": "保存失败"
    },
    "zoomHint": "调节应用界面的整体大小",
    "mobile": {
      "navigationTitle": "页面入口",
      "bottomNav": {
        "label": "底部导航功能",
        "hint": "可选择要出现在手机底部导航的功能。底栏最多展示 4 项，其余会自动收纳到“更多”。"
      },
      "dragHint": "拖动可调整顺序。前 4 项显示在底栏，其余显示在“更多”。",
      "dropHere": "松手后放到这里",
      "bottomSection": "底栏（最多 4 个）",
      "moreSection": "更多",
      "moveToMore": "移到更多",
      "moveToBottom": "移到底栏"
    },
    "zoomUpdated": "界面缩放已更新",
    "updateFailed": "更新失败",
    "security": {
      "title": "密码保护系统",
      "adminPassword": "管理密码",
      "pointsPassword": "积分密码",
      "recoveryString": "找回字符串",
      "set": "已设置",
      "notSet": "未设置",
      "generated": "已生成",
      "notGenerated": "未生成",
      "enterPassword": "输入6位数字（留空则不修改）",
      "adminPasswordPlaceholder": "输入6位数字管理密码（留空则不修改）",
      "pointsPasswordPlaceholder": "输入6位数字积分密码（留空则不修改）",
      "recoveryPlaceholder": "输入找回字符串",
      "savePassword": "保存密码",
      "savePasswords": "保存密码",
      "generateRecovery": "生成找回字符串",
      "clearAllPasswords": "清空所有密码",
      "recoveryReset": "找回字符串重置",
      "enterRecovery": "输入找回字符串",
      "resetPassword": "重置密码",
      "resetHint": "重置会清空管理/积分密码，并生成新的找回字符串。",
      "confirmClear": "确认清空所有密码？",
      "clearHint": "清空后将关闭保护（无密码时默认视为管理权限）。",
      "saved": "密码已更新",
      "saveFailed": "更新失败",
      "generateFailed": "生成失败",
      "resetFailed": "重置失败",
      "cleared": "已清空",
      "clearFailed": "清空失败",
      "passwordClearedNewRecovery": "密码已清空，新的找回字符串",
      "newRecoveryString": "新的找回字符串（请保存）"
    },
    "account": {
      "title": "SECTL Auth 账户",
      "notLoggedIn": "尚未登录 SECTL Auth 账户",
      "oauthHint": "使用 SECTL Auth 账号登录，享受统一认证和远程退登功能",
      "loginButton": "使用 SECTL Auth 登录",
      "loginSuccess": "登录成功",
      "logout": "退出登录",
      "userId": "用户ID",
      "permission": "权限等级"
    },
    "database": {
      "title": "数据库连接",
      "currentStatus": "当前数据库状态",
      "sqliteLocal": "SQLite 本地数据库",
      "postgresqlRemote": "PostgreSQL 远程数据库",
      "connected": "已连接",
      "disconnected": "未连接",
      "postgresqlConnection": "PostgreSQL 远程连接",
      "connectionHint": "输入 PostgreSQL 连接字符串以连接远程数据库，支持多端同步操作。",
      "testConnection": "测试连接",
      "switchToPostgreSQL": "切换到 PostgreSQL",
      "switchToSQLite": "切换到本地 SQLite",
      "connectionTestSuccess": "连接测试成功",
      "connectionTestFailed": "连接测试失败",
      "switchedTo": "已切换到 {{type}} 数据库",
      "switchedToSQLite": "已切换到 SQLite 本地数据库",
      "switchFailed": "切换失败",
      "syncDescription": "多端同步说明",
      "syncPoint1": "使用 PostgreSQL 远程数据库可以实现多端数据同步。",
      "syncPoint2": "系统内置操作队列机制，确保多端同时操作时数据一致性。",
      "syncPoint3": "切换数据库后需要重启应用以生效。",
      "syncPoint4": "建议使用云数据库服务（如 Neon、Supabase、AWS RDS 等）。",
      "enterConnectionString": "请输入 PostgreSQL 连接字符串",
      "connectionExample": "示例：postgresql://xxxxxx_xxxxx:xxxxxxxx@xx-xxx.xxx.neon.xxxx/xxxxdxx?sslmode=require",
      "uploadButton": "上传本地数据到远程",
      "uploadHint": "连接远程数据库后，可将本地 SQLite 历史数据上传并合并到远程。",
      "uploadNeedRemote": "请先切换并连接到 PostgreSQL 远程数据库",
      "noNeedUpload": "本地与远程数据已一致，无需上传",
      "uploadConfirmTitle": "确认上传本地数据到远程？",
      "uploadConfirmContent": "将以本地数据为优先进行同步。检测到本地新增 {{localOnly}} 条、远程新增 {{remoteOnly}} 条、冲突 {{conflicts}} 条。",
      "uploadSuccess": "本地数据已上传到远程",
      "uploadFailed": "上传失败"
    },
    "cloudSync": {
      "title": "云同步",
      "selectMethod": "选择同步方式",
      "selectMethodHint": "选择一种数据同步方式，两种方式互斥，切换后将使用新的同步通道。",
      "postgresql": "自建 PostgreSQL 数据库",
      "postgresqlDesc": "连接自建的 PostgreSQL 数据库，数据完全自主掌控，适合有服务器的用户。",
      "sectlCloud": "SECTL 云服务同步",
      "sectlCloudDesc": "通过 SECTL 云平台进行数据同步，无需自建数据库，开箱即用。",
      "loginRequired": "请先登录 SECTL Auth 账户",
      "loginHint": "使用 SECTL 云服务同步需要先登录 SECTL Auth 账户，请前往「账户」标签页登录。",
      "statusTitle": "同步状态",
      "configured": "已就绪",
      "notConfigured": "未就绪",
      "syncing": "同步中...",
      "lastSync": "上次同步",
      "never": "从未同步",
      "syncActions": "同步操作",
      "syncDirection": "同步方向",
      "bidirectional": "双向同步（推荐）— 自动合并本地和云端数据",
      "pushOnly": "仅上传 — 将本地数据覆盖到云端",
      "pullOnly": "仅下载 — 将云端数据覆盖到本地",
      "startSync": "开始同步",
      "uploadToCloud": "上传到云端",
      "downloadFromCloud": "从云端下载",
      "fullSync": "双向同步",
      "syncInProgress": "同步正在进行中，请稍候",
      "syncConfirm": "确认执行 {{direction}}？",
      "storageUsage": "存储用量",
      "usedStorage": "已使用",
      "table": "数据表",
      "records": "记录数",
      "size": "大小",
      "clickToLoadStats": "点击刷新按钮加载统计",
      "description": "SECTL 云服务同步说明",
      "descriptionPoint1": "使用 SECTL 云服务进行数据同步，无需自建数据库，数据通过 SECTL Auth 账户隔离。",
      "descriptionPoint2": "基于 KV 存储架构，每张数据表存储为一个键值对，支持高效的数据读写。",
      "descriptionPoint3": "支持双向同步、仅上传、仅下载三种模式，满足不同场景需求。",
      "descriptionPoint4": "数据传输使用 HTTPS 加密，结合 OAuth 2.0 认证保障数据安全。"
    },
    "data": {
      "title": "数据管理",
      "settlement": "结算",
      "settlementAndRestart": "结算并重新开始",
      "settlementHint": "将当前未结算记录划分为一个阶段，并将所有学生积分清零。",
      "importExport": "导入 / 导出",
      "exportJson": "导出 JSON",
      "importJson": "导入 JSON",
      "importHint": "导入会覆盖现有学生/理由/积分记录/设置（安全相关设置不会导入）。",
      "logs": "日志",
      "logLevel": "日志级别",
      "logOperation": "日志操作",
      "viewLogs": "查看日志",
      "exportLogs": "导出日志",
      "clearLogs": "清空日志",
      "logsCleared": "日志已清空",
      "systemLogs": "系统日志 (最后200条)",
      "noLogs": "暂无日志",
      "logLevelUpdated": "日志级别已更新",
      "readLogsFailed": "读取日志失败",
      "logsExported": "日志已导出",
      "exportFailed": "导出失败",
      "exportSuccess": "导出成功",
      "importSuccess": "导入成功，正在刷新",
      "importFailed": "导入失败",
      "clearFailed": "清空失败",
      "confirmSettlement": "确认结算并重新开始？",
      "settlementConfirm1": "将把当前未结算的积分记录归档为一个阶段，并将所有学生当前积分清零。",
      "settlementConfirm2": "学生名单不变；结算后的历史在「结算历史」页面查看。",
      "settlementSuccess": "结算成功，已重新开始积分",
      "settlementFailed": "结算失败",
      "settle": "结算",
      "logLevels": {
        "debug": "DEBUG (调试)",
        "info": "INFO (信息)",
        "warn": "WARN (警告)",
        "error": "ERROR (错误)"
      }
    },
    "url": {
      "title": "URL 协议 (secscore://)",
      "protocol": "URL 协议",
      "description": "可以通过 URL 链接唤起 SecScore 并执行操作，例如：",
      "register": "注册 URL 协议",
      "registered": "URL 协议已注册",
      "registerFailed": "注册失败",
      "installerRequired": "需要安装版 SecScore，开发模式下可能无效。",
      "checkStatus": "检测状态",
      "reRegister": "重新注册",
      "unregister": "取消注册",
      "unregistered": "URL 协议已取消注册",
      "unregisterFailed": "取消注册失败",
      "statusRegistered": "已注册",
      "statusNotRegistered": "未注册",
      "statusCheckFailed": "状态检测失败",
      "retrying": "重试中 ({{current}}/{{max}})",
      "retryFailed": "已达最大重试次数，注册失败",
      "retrySuccess": "第 {{n}} 次重试成功",
      "operationLog": "操作日志",
      "logRegisterStart": "开始注册 URL 协议...",
      "logRegisterVerify": "注册命令已执行，正在验证...",
      "logRegisterSuccess": "注册验证成功",
      "logRegisterFailed": "注册验证失败",
      "logUnregisterStart": "正在取消注册...",
      "logUnregisterSuccess": "取消注册成功",
      "logUnregisterFailed": "取消注册失败",
      "logMaxRetries": "已达最大重试次数 (7次)"
    },
    "elevation": {
      "title": "管理员权限",
      "description": "检测当前应用是否以管理员/root 权限运行。部分功能（如端口监听、系统级操作）需要管理员权限。",
      "elevated": "已提权",
      "notElevated": "未提权",
      "request": "请求管理员权限",
      "requestSuccess": "已请求管理员权限，应用将重启",
      "requestFailed": "请求管理员权限失败",
      "windowsHint": "Windows：将弹出 UAC 提示框，确认后应用将以管理员身份重启。",
      "macosHint": "macOS：将弹出系统认证对话框，输入管理员密码后应用将重启。",
      "linuxHint": "Linux：将使用 pkexec 请求 root 权限，输入密码后应用将重启。"
    },
    "mcp": {
      "title": "MCP 服务",
      "description": "管理内置 MCP HTTP 服务，供外部 MCP 客户端调用。",
      "running": "运行中",
      "stopped": "已停止",
      "noUrl": "暂无地址",
      "host": "主机",
      "port": "端口",
      "start": "启动",
      "stop": "停止",
      "refresh": "刷新状态",
      "hint": "建议仅绑定到 127.0.0.1；启动后 MCP 入口为 http://host:port/mcp",
      "hostRequired": "请输入 MCP 主机地址",
      "portInvalid": "请输入有效端口（1-65535）",
      "startSuccess": "MCP 服务启动成功",
      "startFailed": "MCP 服务启动失败",
      "stopSuccess": "MCP 服务已停止",
      "stopFailed": "MCP 服务停止失败",
      "startTimeout": "启动 MCP 服务超时，请稍后重试",
      "stopTimeout": "停止 MCP 服务超时，请稍后重试"
    },
    "app": {
      "title": "应用控制",
      "description": "快速重启或退出应用。",
      "restart": "重启应用",
      "quit": "退出应用",
      "confirmRestartTitle": "确认重启应用？",
      "confirmRestartContent": "应用将立即关闭并重新启动。",
      "confirmQuitTitle": "确认退出应用？",
      "confirmQuitContent": "应用将立即退出。",
      "restartFailed": "重启失败",
      "quitFailed": "退出失败"
    },
    "about": {
      "title": "关于",
      "appName": "教育积分管理",
      "version": "版本",
      "copyright": "版权",
      "ipcStatus": "IPC 状态",
      "ipcConnected": "已连接",
      "ipcDisconnected": "未连接 (Preload 失败)",
      "environment": "环境",
      "toggleDevTools": "切换开发者工具",
      "license": "SecScore遵循GPL3.0协议",
      "copyRightText": "CopyRight © 2025-{{year}} SECTL"
    }
  },
  "sidebar": {
    "home": "首页",
    "students": "学生管理",
    "score": "积分操作",
    "boards": "看板",
    "leaderboard": "排行榜",
    "settlements": "结算历史",
    "reasons": "理由管理",
    "autoScore": "自动化",
    "rewardExchange": "奖励兑换",
    "rewardSettings": "奖励设置",
    "settings": "系统设置",
    "remoteDb": "远程数据库",
    "refreshStatus": "刷新状态",
    "syncNow": "立即同步",
    "syncSuccess": "同步成功",
    "syncFailed": "同步失败",
    "getDbStatusFailed": "获取数据库状态失败",
    "notRemoteMode": "当前不是远程数据库模式，请重启应用后重试",
    "dbNotConnected": "数据库未连接",
    "plugins": "插件管理"
  },
  "auth": {
    "unlock": "权限解锁",
    "unlockHint": "输入 6 位数字密码：管理密码=全功能，积分密码=仅积分操作。",
    "unlockButton": "解锁",
    "unlocked": "权限已解锁",
    "logout": "已切换为只读",
    "passwordPlaceholder": "例如 123456",
    "passwordError": "密码错误",
    "enterPassword": "输入密码",
    "lock": "锁定"
  },
  "languages": {
    "zh-CN": "简体中文",
    "en-US": "English"
  },
  "theme": {
    "colorAndBackground": "颜色与背景",
    "gradientLabels": {
      "blue": "清爽蓝",
      "pink": "柔和粉",
      "cyan": "青蓝",
      "purple": "紫韵"
    },
    "gradientDirections": {
      "vertical": "纵向",
      "horizontal": "横向",
      "diagonal": "对角"
    },
    "generate": "生成",
    "saved": "已保存",
    "saveFailed": "保存失败",
    "mode": "模式",
    "myTheme": "我的主题"
  },
  "permissions": {
    "admin": "管理权限",
    "points": "积分权限",
    "view": "只读"
  },
  "home": {
    "title": "学生积分主页",
    "subtitle": "共 {{count}} 名学生，点击卡片进行积分操作",
    "searchPlaceholder": "搜索姓名/拼音...",
    "sortBy": {
      "alphabet": "姓名排序",
      "surname": "姓氏分组",
      "group": "小组排序",
      "score": "积分排行"
    },
    "layoutBy": {
      "grouped": "分组列表",
      "squareGrid": "正方形网格",
      "largeAvatar": "大头像"
    },
    "noStudents": "暂无学生数据，请前往学生管理添加",
    "noMatch": "未找到匹配的学生",
    "clearSearch": "清除搜索",
    "points": "分",
    "currentScore": "当前积分",
    "quickOptions": "快捷选项",
    "adjustPoints": "调整分值",
    "customPoints": "自定义分值",
    "customPointsHint": "可在输入框微调特输入任意分值",
    "reason": "操作理由",
    "reasonPlaceholder": "输入加分/扣分的原因（可选）",
    "preview": "变更预览",
    "noReason": "（无理由）",
    "ungrouped": "未分组",
    "category": {
      "others": "其他"
    },
    "scoreAdded": "已为 {{name}} 加{{points}}分",
    "scoreDeducted": "已为 {{name}} 扣{{points}}分",
    "submitFailed": "提交失败",
    "pleaseSelectPoints": "请选择或输入分值",
    "reasonDefault": "{{action}}{{points}}分",
    "studentCount": "{{count}} 人",
    "operationTitle": "积分操作：{{name}}",
    "submitOperation": "提交操作",
    "operationTitleBatch": "积分操作：已选 {{count}} 人",
    "undoLastAction": "撤销",
    "undoLastHint": "撤销上一条：{{name}} {{delta}}",
    "undoUnavailable": "当前没有可撤销的积分操作",
    "undoLastSuccess": "已撤销上一步积分操作",
    "multiSelect": "多选",
    "batchMode": "多选模式",
    "selectAll": "全选",
    "clearSelected": "清空已选",
    "batchOperate": "批量积分",
    "selected": "已选",
    "selectedCount": "已选 {{count}} 人",
    "batchSuccess": "已为 {{count}} 名学生提交积分",
    "batchPartial": "成功提交 {{success}}/{{total}} 名学生积分",
    "selectStudentFirst": "请先选择学生",
    "addPoints": "加分",
    "deductPoints": "扣分",
    "pointsChange": "积分变更",
    "reasonLabel": "理由："
  },
  "students": {
    "title": "学生管理",
    "importList": "导入名单",
    "addStudent": "添加学生",
    "name": "姓名",
    "group": "小组",
    "avatar": "头像",
    "currentScore": "当前积分",
    "tags": "标签",
    "noTags": "无标签",
    "editTags": "编辑标签",
    "editAvatar": "设置头像",
    "deleteConfirm": "确认删除该学生？",
    "addTitle": "添加学生",
    "addConfirm": "添加",
    "namePlaceholder": "请输入学生姓名",
    "groupPlaceholder": "请输入小组名称（可选）",
    "nameRequired": "请输入姓名",
    "nameExists": "学生姓名已存在",
    "addSuccess": "添加成功",
    "addFailed": "添加失败",
    "deleteSuccess": "删除成功",
    "deleteFailed": "删除失败",
    "tagSaveSuccess": "标签保存成功",
    "tagSaveFailed": "保存标签失败",
    "importTitle": "导入名单",
    "importTextHint": "支持粘贴多行文本，一行一个姓名",
    "importTextPlaceholder": "例如：\n张三\n李四\n王五",
    "importByText": "从文本导入",
    "importByXlsx": "通过 xlsx 导入",
    "importByBanyou": "从班优导入",
    "banyouLoginMethodTitle": "选择班优登录方式",
    "banyouBrowserLogin": "通过浏览器登录班优（推荐）",
    "banyouBrowserLoginHint": "会打开一个 Playwright 浏览器窗口，请在窗口中完成登录；登录成功后会自动抓取 Cookie 并关闭浏览器。",
    "banyouManualCookie": "手动输入 Cookie",
    "banyouBrowserLoginWaiting": "已打开浏览器，请完成班优登录",
    "banyouBrowserCookieSuccess": "已获取班优 Cookie",
    "banyouBrowserLoginFailed": "通过浏览器登录班优失败",
    "xlsxPreview": "xlsx 预览与导入",
    "file": "文件",
    "selectNameCol": "点击表头选择姓名列",
    "previewRows": "预览前 50 行",
    "importConfirm": "导入",
    "importComplete": "导入完成：新增 {{inserted}}，跳过 {{skipped}}",
    "workerNotReady": "Worker 未初始化",
    "parseXlsxFailed": "解析 xlsx 失败",
    "selectNameColFirst": "请先点击选择\"姓名列\"",
    "noNamesFound": "所选列未解析到可导入的姓名",
    "importFailed": "导入失败",
    "banyouCookieHint": "请在班优网页版登录后，复制完整 Cookie 并粘贴到下方。",
    "banyouCookiePlaceholder": "uid=...; accessToken=...; ...",
    "banyouCookieRequired": "请先粘贴 Cookie",
    "banyouFetch": "获取班级列表",
    "banyouFetchSuccess": "已获取 {{count}} 个班级",
    "banyouFetchFailed": "获取班优班级失败",
    "banyouCreatedClasses": "我创建的班级",
    "banyouJoinedClasses": "我加入的班级",
    "banyouNoClasses": "暂无班级数据",
    "banyouClassTeacher": "班主任：",
    "banyouStudentCount": "学生：",
    "banyouPraiseCount": "表扬：",
    "banyouFetchDetailFailed": "获取班级详情失败",
    "banyouClassDetail": "班级详情",
    "banyouDetailEmpty": "暂无班级详情数据",
    "banyouReasonList": "加分/扣分理由列表",
    "banyouStudentList": "学生列表",
    "banyouTeamList": "小组列表",
    "banyouNoTeams": "暂无小组数据（可尝试填写 teamPlanId 后重新打开）",
    "banyouTeamPlanSelector": "分组方案",
    "banyouLoadTeamPlan": "加载该方案小组",
    "banyouTeamPlanSource": "方案来源接口：",
    "banyouSelectTeamPlanFirst": "请先选择分组方案",
    "banyouImportSelected": "一键导入勾选项",
    "banyouNothingSelected": "请至少勾选一项后再导入",
    "banyouImportSummary": "班优导入完成：学生 新增{{studentsInserted}}/跳过{{studentsSkipped}}；理由 新增{{reasonsInserted}}/跳过{{reasonsSkipped}}；分组 更新{{groupsUpdated}}/跳过{{groupsSkipped}}",
    "editTagTitle": "编辑标签 - {{name}}",
    "editGroup": "设置小组",
    "editGroupTitle": "设置小组 - {{name}}",
    "groupSaveSuccess": "小组保存成功",
    "groupSaveFailed": "小组保存失败",
    "existingGroups": "已有小组（点击一键填入）",
    "noExistingGroups": "暂无可用的小组",
    "groupBoardEdit": "编辑分组",
    "groupBoardTitle": "快速编辑分组",
    "groupBoardHint": "拖动学生到不同小组卡片中，点击保存后批量生效。",
    "groupBoardNewGroupPlaceholder": "输入新分组名称",
    "groupBoardAddGroup": "新建分组",
    "groupBoardGroupExists": "该分组已存在",
    "groupBoardGroupNameRequired": "请输入分组名称",
    "groupBoardGroupNameInvalid": "分组名称无效",
    "groupBoardEmpty": "可将学生拖拽到这里",
    "groupBoardNoChanges": "分组未发生变化",
    "groupBoardSaveSuccess": "已更新 {{count}} 名学生的小组",
    "groupBoardSaveFailed": "保存失败，{{failed}} 名学生未更新",
    "noGroup": "未分组",
    "editAvatarTitle": "设置头像 - {{name}}",
    "avatarUpload": "上传图片",
    "avatarClear": "清除头像",
    "noAvatar": "无头像",
    "avatarTip": "支持常见图片格式，文件大小不超过 2MB",
    "avatarSaveSuccess": "头像保存成功",
    "avatarSaveFailed": "头像保存失败",
    "avatarInvalidFile": "请选择图片文件",
    "avatarTooLarge": "图片不能超过 2MB",
    "avatarReadFailed": "读取图片失败",
    "avatarClipboardImport": "从剪贴板导入",
    "avatarClipboardUnsupported": "当前环境不支持读取剪贴板图片",
    "avatarClipboardNoImage": "剪贴板中没有图片",
    "avatarClipboardReadFailed": "读取剪贴板图片失败"
  },
  "score": {
    "title": "积分管理",
    "student": "学生",
    "change": "变动",
    "reason": "理由",
    "time": "时间",
    "undoConfirm": "确定要撤销这条记录吗？学生积分将回滚。",
    "undo": "撤销",
    "undoSuccess": "已撤销操作",
    "undoFailed": "撤销失败",
    "recentRecords": "最近记录",
    "pleaseSelectStudent": "请选择或搜索学生",
    "selectAllStudents": "全班",
    "clearSelectedStudents": "清空",
    "selectedCount": "已选 {{selected}} / {{total}} 人",
    "points": "分数",
    "addPoints": "加分",
    "deductPoints": "扣分",
    "quickReason": "快捷理由",
    "selectReason": "选择预设理由",
    "reasonContent": "理由内容",
    "reasonPlaceholder": "手动输入或选择快捷理由",
    "submit": "确认提交",
    "pleaseEnterInfo": "请填写完整信息",
    "pleaseEnterPoints": "请填写分值或选择预设理由",
    "batchSuccess": "已为 {{count}} 名学生提交积分",
    "batchPartial": "成功提交 {{success}}/{{total}} 名学生的积分"
  },
  "reasons": {
    "title": "理由管理",
    "addReason": "添加预设理由",
    "category": "分类",
    "content": "理由内容",
    "presetPoints": "预设分值",
    "deleteConfirm": "确认删除该理由？",
    "addTitle": "添加理由",
    "addConfirm": "添加",
    "categoryPlaceholder": "例如: 学习, 纪律",
    "contentPlaceholder": "请输入理由",
    "pointsPlaceholder": "例如: 2 或 -2",
    "contentRequired": "请输入理由内容",
    "pointsRequired": "请输入预设分值",
    "reasonExists": "该分类下已存在相同理由",
    "addSuccess": "添加成功",
    "addFailed": "添加失败",
    "deleteSuccess": "删除成功",
    "deleteFailed": "删除失败",
    "others": "其他"
  },
  "rewardExchange": {
    "title": "奖励兑换",
    "enterMode": "奖励兑换",
    "exitMode": "退出奖励兑换模式",
    "modeHint": "当前为奖励兑换模式，点击学生卡可选择可兑换奖励。",
    "normalHint": "当前显示学生原始积分，点击按钮后将显示可兑换积分。",
    "remainingRewardPoints": "剩余兑换积分",
    "currentScore": "当前积分",
    "chooseRewardTitle": "为 {{name}} 选择奖励",
    "currentRewardPoints": "当前可兑换积分：{{points}}",
    "costLabel": "消耗积分：{{points}}",
    "redeemNow": "立即兑换",
    "noAffordableRewards": "当前没有可兑换的奖励，请先积累积分。",
    "redeemSuccess": "{{student}} 成功兑换「{{reward}}」，消耗 {{points}} 分",
    "redeemFailed": "兑换失败",
    "recordsTitle": "兑换记录",
    "recordStudent": "学生",
    "recordReward": "奖励",
    "recordCost": "消耗积分",
    "recordTime": "兑换时间",
    "rewards": "选择奖励"
  },
  "rewardSettings": {
    "title": "奖励设置",
    "addReward": "添加奖励",
    "addTitle": "添加奖励",
    "editTitle": "编辑奖励",
    "rewardName": "奖励名称",
    "costPoints": "消耗积分",
    "namePlaceholder": "例如：免作业券",
    "costPlaceholder": "请输入消耗积分",
    "nameRequired": "请输入奖励名称",
    "costRequired": "请输入正整数积分",
    "createSuccess": "奖励创建成功",
    "createFailed": "奖励创建失败",
    "updateSuccess": "奖励更新成功",
    "updateFailed": "奖励更新失败",
    "deleteSuccess": "奖励删除成功",
    "deleteFailed": "奖励删除失败",
    "deleteConfirm": "确认删除奖励「{{name}}」？"
  },
  "board": {
    "title": "看板",
    "editable": "可编辑",
    "readonly": "只读",
    "addBoard": "新增看板",
    "removeBoard": "删除看板",
    "removeBoardConfirm": "确认删除当前看板？",
    "boardConfig": "看板配置",
    "boardNamePlaceholder": "输入看板名称",
    "renameBoard": "重命名看板",
    "newBoard": "新看板",
    "untitledBoard": "未命名看板",
    "addList": "新增学生列表",
    "removeList": "删除列表",
    "removeListConfirm": "确认删除当前学生列表？",
    "editList": "编辑",
    "sqlEditorTitle": "配置排行榜规则",
    "splitHorizontal": "左右拆分",
    "splitVertical": "上下拆分",
    "dragHandle": "拖动调整布局",
    "listNamePlaceholder": "输入列表名称",
    "newList": "新列表",
    "applyPreset": "套用预设",
    "run": "运行 SQL",
    "runAll": "运行全部",
    "viewModes": {
      "list": "列表视图",
      "card": "卡片视图",
      "grid": "网格视图",
      "largeAvatar": "大头像视图"
    },
    "scoreDisplayModes": {
      "total": "显示总分",
      "split": "显示加分与扣分"
    },
    "metrics": {
      "totalScore": "总分",
      "addScore": "加分",
      "deductScore": "扣分",
      "rewardPoints": "奖励分",
      "weekChange": "近7天",
      "weekDeducted": "近7天扣分",
      "todayAnswered": "今日回答"
    },
    "sqlPlaceholder": "输入 SQL（仅支持单条 SELECT / WITH 查询）",
    "templateHint": "支持时间模板变量：{{today_start}}、{{this_week_start}}、{{last_week_start}}、{{since_7d}}、{{since_30d}}、{{now}}",
    "templateDescription": "可直接在 SQL 中使用模板变量，运行时会自动替换为 ISO 时间，兼容 SQLite 与 PostgreSQL。",
    "saving": "保存中...",
    "saveFailed": "保存看板失败",
    "runFailed": "查询执行失败",
    "keepAtLeastOneBoard": "至少保留一个看板",
    "keepAtLeastOneList": "至少保留一个学生列表",
    "presets": {
      "weekLowDeduct": {
        "name": "上周积极举手加分榜",
        "description": "按上周“积极举手”加分总和排序"
      },
      "todayActive": {
        "name": "近7天活跃榜",
        "description": "按近7天事件次数排序"
      },
      "rewardRanking": {
        "name": "近30天加分榜",
        "description": "按近30天加分总和排序"
      }
    }
  },
  "leaderboard": {
    "title": "积分排行榜",
    "rank": "排名",
    "name": "姓名",
    "totalScore": "总积分",
    "todayChange": "今日变化",
    "weekChange": "本周变化",
    "monthChange": "本月变化",
    "viewHistory": "查看",
    "exportXlsx": "导出 XLSX",
    "exportSuccess": "导出成功",
    "queryFailed": "查询失败",
    "historyTitle": "{{name}} - 操作记录",
    "close": "关闭",
    "today": "今天",
    "week": "本周",
    "month": "本月",
    "operationRecord": "操作记录",
    "change": "变化"
  },
  "settlements": {
    "title": "结算历史",
    "phase": "阶段 #{{id}}",
    "viewLeaderboard": "查看排行榜",
    "recordCount": "记录数: {{count}}",
    "noRecords": "暂无结算记录",
    "noSettlements": "暂无结算记录",
    "back": "返回",
    "leaderboardTitle": "结算排行榜",
    "phaseScore": "阶段积分",
    "queryFailed": "查询失败",
    "rank": "排名",
    "name": "姓名"
  },
  "autoScore": {
    "title": "自动化管理",
    "name": "自动化名称",
    "namePlaceholder": "例如：每日签到加分",
    "nameRequired": "请输入自动化名称",
    "triggers": "触发器",
    "actions": "行动",
    "applicableStudents": "适用学生",
    "allStudents": "所有学生",
    "lastExecuted": "最后执行",
    "notExecuted": "未执行",
    "invalidTime": "无效时间",
    "addTrigger": "添加规则",
    "addAction": "添加行动",
    "whenTriggered": "当以下规则触发时",
    "triggerScheduleHint": "提示：规则是否执行仍由“间隔时间”触发器决定，标签、SQL、AND / OR / NOT 仅用于筛选本次命中的学生。",
    "triggeredActions": "满足规则时触发的行动",
    "addAutomation": "添加自动化",
    "updateAutomation": "更新自动化",
    "cancelEdit": "取消编辑",
    "resetForm": "重置表单",
    "deleteConfirm": "确定要删除这条自动化吗？",
    "adminRequired": "需要管理员权限以查看自动加分自动化，请先登录管理员账号",
    "adminCreateRequired": "需要管理员权限以创建或更新自动加分自动化",
    "adminDeleteRequired": "需要管理员权限以删除自动加分自动化",
    "adminToggleRequired": "需要管理员权限以启用/禁用自动加分自动化",
    "fetchFailed": "获取自动化失败",
    "unsupportedLogic": "当前版本保存规则时仅支持 AND 条件，OR / NOT 逻辑暂未接入后端存储",
    "triggerRequired": "请至少添加一个触发器",
    "intervalTriggerRequired": "请至少添加一个“间隔时间”触发器，否则规则不会自动执行",
    "actionRequired": "请至少添加一个行动",
    "createSuccess": "自动化创建成功",
    "updateSuccess": "自动化更新成功",
    "createFailed": "创建自动化失败",
    "updateFailed": "更新自动化失败",
    "deleteSuccess": "自动化删除成功",
    "deleteFailed": "删除自动化失败",
    "enabled": "自动化已启用",
    "disabled": "自动化已禁用",
    "enableFailed": "启用自动化失败",
    "disableFailed": "禁用自动化失败",
    "noTriggerAvailable": "没有可用的触发器类型，请检查配置",
    "noActionAvailable": "没有可用的行动类型，请检查配置",
    "sort": "排序",
    "status": "状态",
    "triggerCount": "{{count}} 个触发器",
    "actionCount": "{{count}} 个行动",
    "studentCount": "{{count}} 名学生",
    "studentPlaceholder": "请选择或搜索学生（留空表示所有学生）",
    "triggerCondition": "触发条件",
    "executeAction": "执行操作",
    "addOperation": "添加操作",
    "scoreLabel": "分数",
    "tagNameLabel": "标签名称",
    "operationNoteLabel": "操作说明（可选）",
    "triggerIntervalTime": "间隔时间",
    "triggerStudentTag": "学生标签",
    "triggerStudentScore": "学生分数",
    "triggerStudentScoreGreater": "学生分数大于",
    "triggerStudentSql": "自定义 SQL 条件",
    "triggerStudentSqlPlaceholder": "输入筛选学生的 SQL 或 WHERE 条件",
    "actionAddScore": "加分",
    "actionAddTag": "添加标签",
    "actionSettleScore": "结算分数",
    "actionSettleScoreHint": "无需参数",
    "rewardRequired": "请选择奖励",
    "startAt": "开始时间",
    "startAtPlaceholder": "请选择开始时间（留空立即开始）",
    "startAtHint": "留空表示立即开始；设置后将以该时间为基准按间隔触发",
    "startAtWaitHint": "距离开始还有 {{minutes}} 分钟",
    "startAtElapsedHint": "自开始已过去 {{elapsed}} 分钟，距离下一次触发约 {{remain}} 分钟",
    "cooldownMinutes": "冷却时间(分钟)",
    "maxStudentsPerRun": "单次最多学生数",
    "maxRunsPerDay": "每日最多执行次数",
    "maxScoreDeltaPerDay": "每日最多积分变动",
    "filterGroups": "按分组筛选",
    "filterGrades": "按年级筛选",
    "filterMinScore": "最低当前积分",
    "filterMaxScore": "最高当前积分",
    "filterRecentEventDays": "最近事件天数",
    "filterMinRecentEventCount": "最近事件最少次数",
    "batchLogs": "执行日志",
    "batchId": "批次",
    "batchRollback": "回滚",
    "batchRolledBack": "已回滚",
    "batchRollbackConfirm": "确认回滚这个执行批次？",
    "batchRollbackSuccess": "批次回滚成功",
    "batchRollbackFailed": "批次回滚失败",
    "intervalAmountPlaceholder": "请输入间隔时间",
    "intervalUnitMonth": "个月",
    "intervalUnitDay": "天",
    "intervalUnitMinute": "分钟",
    "intervalPartDay": "天",
    "intervalPartHour": "小时",
    "intervalPartMinute": "分钟",
    "minutesPlaceholder": "请输入分钟数",
    "minutes": "分钟",
    "tagsPlaceholder": "请输入标签名称",
    "scorePlaceholder": "请输入分数",
    "tagNamePlaceholder": "请输入标签名称",
    "reasonPlaceholder": "请输入理由",
    "relationAnd": "且",
    "relationOr": "或",
    "operatorContains": "包含",
    "relationNot": "非",
    "openFile": "打开文件",
    "openFileFailed": "打开自动化文件失败",
    "backfillConfirmTitle": "检测到关闭期间可补回的自动化",
    "backfillConfirmSummary": "在 {{from}} 到 {{to}} 期间，预计有 {{runs}} 次自动化执行（共 {{rules}} 条规则）可补回，是否现在补回？",
    "backfillPreviewLine": "{{name}}：{{runs}} 次",
    "backfillPreviewMore": "其余 {{count}} 条规则未展开",
    "backfillPreviewTruncated": "{{count}} 条规则补回次数已截断到最多 {{max}} 次",
    "backfillApplySuccess": "补回完成：执行 {{runs}} 次，新增 {{events}} 条积分记录",
    "backfillApplyFailed": "补回自动加分失败"
  },
  "triggers": {
    "studentTag": {
      "label": "学生标签",
      "description": "当学生匹配特定标签时触发自动化",
      "placeholder": "请选择标签",
      "required": "请输入标签名称"
    },
    "randomTime": {
      "label": "随机时间触发",
      "description": "在指定时间范围内随机触发自动化",
      "required": "请输入有效的时间范围（分钟）"
    },
    "intervalTime": {
      "label": "间隔时间",
      "description": "当间隔时间到达时触发自动化",
      "placeholder": "请输入时间间隔",
      "required": "请输入有效的时间",
      "monthLabel": "月",
      "weekLabel": "周",
      "timeLabel": "时间"
    }
  },
  "actions": {
    "sendNotification": {
      "label": "发送通知",
      "description": "向学生发送通知",
      "placeholder": "请输入通知内容"
    },
    "addTag": {
      "label": "添加标签",
      "description": "为学生添加标签",
      "placeholder": "请输入标签"
    },
    "addScore": {
      "label": "添加分数",
      "description": "为学生添加分数",
      "pointsPlaceholder": "请输入分数",
      "reasonPlaceholder": "请输入理由"
    }
  },
  "wizard": {
    "welcomeTitle": "欢迎使用 SecScore 积分管理",
    "welcomeDesc": "感谢选择 SecScore。在开始之前，请花一分钟完成基础配置。",
    "configComplete": "配置完成！",
    "configFailed": "配置保存失败",
    "startJourney": "开启积分之旅"
  },
  "tags": {
    "editTitle": "编辑标签",
    "inputPlaceholder": "输入标签名称，按 Enter 添加",
    "selectedTags": "已选标签（点击取消）",
    "noTagsSelected": "未选择标签",
    "availableTags": "可选标签（点击选择）",
    "noAvailableTags": "无可用标签",
    "fetchFailed": "获取标签列表失败",
    "nameTooLong": "标签名称不能超过 30 个字符",
    "addFailed": "添加标签失败",
    "deleteSuccess": "标签删除成功",
    "deleteFailed": "删除标签失败"
  },
  "recovery": {
    "title": "SecScore 找回字符串",
    "saved": "我已保存",
    "export": "导出文本文件",
    "exportHint": "建议导出后离线保存，遗失将无法找回。",
    "hint": "建议导出后离线保存，遗失将无法找回。"
  },
  "plugin": {
    "title": "插件管理",
    "name": "插件名称",
    "author": "作者",
    "description": "描述",
    "version": "版本",
    "status": "状态",
    "enabled": "已启用",
    "disabled": "已禁用",
    "operation": "操作",
    "install": "安装插件",
    "uninstall": "卸载",
    "uninstallConfirm": "确认卸载插件？",
    "uninstallDescription": "卸载后会移除已安装到应用目录中的插件副本。",
    "installSuccess": "插件安装成功",
    "installFailed": "插件安装失败",
    "uninstallSuccess": "插件卸载成功",
    "uninstallFailed": "插件卸载失败",
    "toggleFailed": "切换插件状态失败",
    "invalidManifest": "无效的插件清单文件",
    "pluginFolder": "插件文件夹",
    "folderPlaceholder": "选择包含 manifest.json 的文件夹",
    "installHint": "选择一个包含 manifest.json 的文件夹来安装插件。",
    "selectFolder": "请选择插件文件夹",
    "totalPlugins": "插件总数",
    "enabledPlugins": "已启用",
    "disabledPlugins": "已禁用",
    "noPlugins": "暂无已安装的插件",
    "installedAt": "安装时间"
  }
}
