export default {
  common: {
    prism: 'Prism',
    refresh: '刷新',
    save: '保存',
    cancel: '取消',
    confirm: '确认',
    search: '搜索',
    delete: '删除',
    import: '导入',
    export: '导出',
    add: '添加',
    create: '创建',
    revoke: '吊销',
    copy: '复制',
    loading: '加载中',
    unknown: '未知',
    none: '—',
    success: '成功',
    failed: '失败',
    all: '全部',
    manual: '手动',
    subscription: '订阅',
    source: '来源',
    name: '名称',
    type: '类型',
    status: '状态',
    actions: '操作',
    upload: '上行',
    download: '下行',
    connections: '连接数',
    time: '时间',
    level: '级别',
    message: '消息',
    testing: '测试中',
    saved: '已保存',
    empty: '暂无数据',
    management: '管理',
    logout: '退出登录',
    minutes: '{n} 分钟',
    seconds: '{n} 秒',
    periodHours: '近 {n} 小时累计',
  },
  nav: {
    dashboard: '监控大盘',
    subscriptions: '订阅管理',
    proxies: '代理节点',
    outbound: '出站管理',
    rules: '路由规则',
    trafficLogs: '请求日志',
    logs: '运行日志',
    settings: '系统设置',
  },
  login: {
    subtitle: 'HTTP / SOCKS5 代理网关管理台',
    title: '登录',
    password: '密码',
    passwordPlaceholder: '默认 admin',
    submit: '登录',
    hint: '首次使用默认密码为 admin，请在设置中修改',
    failed: '登录失败',
    wrongPassword: '密码错误',
    wrongPasswordRemaining: '密码错误，还可尝试 {n} 次',
    tooManyAttempts: '登录尝试过多，请 {wait} 后再试',
  },
  dashboard: {
    title: '监控大盘',
    desc: '实时流量、按域名/节点分布与连接概览',
    checking: '检测中',
    engineRunning: '内核运行中',
    engineStopped: '内核未运行',
    totalNodes: '总节点',
    aliveNodes: '可用节点',
    activeConnections: '活跃连接',
    downloadRate: '下行速率',
    domainTraffic: '域名流量',
    nodeTraffic: '节点流量',
    trafficTrend: '流量趋势',
    tabLive: '当前活跃连接',
    domain: '域名',
    outboundNode: '出站节点',
    hintLiveDomain: '按域名与出站节点汇总当前活跃连接流量',
    hintPeriodDomain: '来自请求日志，按域名与出站节点聚合',
    hintLiveNode: '按具体代理节点（跳过策略组）汇总活跃连接流量',
    hintPeriodNode: '近24小时各具体代理节点完成的请求流量合计',
    seriesDownload: '下行',
    seriesUpload: '上行',
  },
  subscriptions: {
    title: '订阅管理',
    desc: '添加并定时更新 Clash 或节点链接订阅',
    add: '添加订阅',
    url: 'URL',
    nodeCount: '节点数',
    lastFetch: '上次更新',
    normal: '正常',
    error: '异常',
    refresh: '刷新',
    dialogTitle: '添加订阅',
    interval: '更新间隔',
    intervalHint: '秒，最小 300',
    typeAuto: '自动识别',
    typeClash: 'Clash YAML',
    typeLinks: '节点链接',
    typeHint: '短链 / Base64 节点订阅选「自动识别」即可',
    added: '已添加订阅',
    refreshed: '刷新成功',
    deleted: '已删除',
    confirmDelete: '确定删除订阅「{name}」？',
  },
  proxies: {
    title: '代理节点',
    desc: '查看节点状态与延迟，支持国家标签与按国家筛选',
    rebuildCountries: '重新识别国家',
    addNode: '添加节点',
    testAll: '全部测速',
    testingProgress: '测速中 {progress}',
    cancelTest: '取消测速',
    testOne: '测速',
    country: '国家',
    latency: '延迟',
    notTested: '未测',
    alive: '可用',
    filterCountry: '按国家筛选',
    allCountries: '全部国家',
    testingHint: '按序逐个测速，请勿关闭页面',
    tabAll: '全部',
    countriesRebuilt: '已重新识别 {n} 个节点国家标签',
    noTestable: '没有可测速的节点',
    testCancelled: '已取消测速',
    testDone: '测速完成',
    testDoneFailed: '测速完成，{n} 个失败',
    nodeAdded: '节点已添加',
    exported: '节点已导出',
    exportJson: 'JSON 格式',
    exportLinks: '分享链接（每行一条）',
    importTitle: '导入手动节点',
    importMode: '导入模式',
    append: '追加到现有节点',
    replace: '替换全部手动节点',
    importFile: '节点文件',
    importContent: '节点内容',
    importFileHint: '支持 JSON 或分享链接文本（ss/socks5/http/trojan）',
    importPlaceholder: '每行一条分享链接，或粘贴 JSON；# 开头为注释',
    importConfirmReplace: '将删除全部现有手动节点并替换为导入内容，确定继续？',
    importConfirmTitle: '确认导入',
    pasteRequired: '请粘贴节点或选择文件',
    imported: '已导入 {n} 个节点',
    importedPartial: '已导入 {n} 个，跳过 {s} 条',
    importFailed: '导入失败',
    addDialogTitle: '添加手动节点',
    server: '服务器',
    port: '端口',
    username: '用户名',
    password: '密码',
    chooseFile: '选择文件',
  },
  outbound: {
    title: '出站管理',
    desc: '管理策略组当前节点与默认出站；规则出站请在「路由规则」页配置',
    defaultTitle: '默认出站',
    defaultHint: '未命中任何规则时使用的策略组或直连',
    save: '保存',
    countryPools: '国家池（自动测速）',
    countryPoolsHint: '按国家聚合的 url-test 组，自动选择该国最快节点',
    policyGroups: '策略组',
    countryPool: '国家池',
    currentNode: '当前节点',
    memberCount: '成员数',
    policyGroup: '策略组',
    switchNode: '切换节点',
    auto: '（自动）',
    fallbackHint: '按列表顺序主备，不通才切换（不比延迟）',
    skipDirect: '按延迟自动测速选最快节点（不含 DIRECT）',
    emptyCountry: '暂无国家池（请为节点标注国家后重载）',
    emptyPolicy: '暂无策略组',
    saved: '默认出站已保存',
    groupSwitched: '策略组已切换',
    policyGroupsHint: '仅 Selector（手动选择）类型可切换当前节点；URLTest / Fallback 由内核自动决定，无法固定某节点',
    typeSelector: '手动选择',
    typeURLTest: '自动测速',
    typeFallback: '故障转移',
    typeLoadBalance: '负载均衡',
    typeRelay: '中继',
    countryPoolName: '{name}（国家池）',
    policyGroupName: '{name}（{type}）',
  },
  rules: {
    title: '路由规则',
    desc: '手动规则优先级高于订阅规则；可将域名指定到某国家的自动优选节点',
    testCard: '规则命中测试',
    testPlaceholder: '输入 URL 或域名，如 https://www.google.com',
    test: '测试',
    testHint: '按合成后规则优先级模拟匹配；GEOIP/GEOSITE 需内核 Geo 数据，本地测试会跳过',
    parsedHost: '解析域名',
    matchedRule: '命中规则',
    outboundTarget: '出站目标',
    manualRules: '手动规则（高优先级）',
    mergedPreview: '合成后规则预览',
    mergedSummary: '共 {total} 条规则，兜底出站 {policy}',
    priority: '优先级',
    match: '匹配',
    target: '目标',
    rule: '规则',
    seq: '序',
    ruleAdded: '规则已添加',
    ruleDeleted: '已删除',
    confirmDelete: '确定删除该规则？',
    urlRequired: '请输入 URL 或域名',
    exported: '规则已导出',
    exportJson: 'JSON 格式',
    exportText: 'Mihomo 文本（每行一条）',
    importTitle: '导入手动规则',
    importConfirmReplace: '将删除全部现有手动规则并替换为导入内容，确定继续？',
    pasteRequired: '请粘贴规则或选择文件',
    imported: '已导入 {n} 条规则',
    importedPartial: '已导入 {n} 条，跳过 {s} 条',
    importFailed: '导入失败',
    addDialogTitle: '添加规则',
    matchValue: '匹配值',
    matchPlaceholder: '如 google.com',
    outboundType: '出站类型',
    byCountry: '按国家',
    byPolicy: '策略/直连',
    outboundTargetLabel: '出站目标',
    selectCountryPool: '选择国家节点池',
    selectPolicy: '选择策略或直连',
    countryPoolHint: '国家池使用 url-test 自动选择该国延迟最低的节点',
    importFile: '规则文件',
    importContent: '规则内容',
    importFileHint: '支持 JSON 或 Mihomo 规则文本（DOMAIN-SUFFIX,example.com,PROXY）',
    importPlaceholder: '每行一条规则，或以 JSON 格式粘贴；# 开头为注释',
    chooseFile: '选择文件',
    importMode: '导入模式',
    append: '追加到现有规则',
    replace: '替换全部手动规则',
    targetDirect: 'DIRECT（直连）',
    targetReject: 'REJECT（拒绝）',
    targetProxy: 'PROXY（默认策略组）',
    targetGlobal: 'GLOBAL（订阅总组）',
    countryFastest: '{name}（自动选最快）',
  },
  trafficLogs: {
    title: '请求日志',
    desc: '代理请求命中规则、出站节点与连接结果（连接结束后写入）',
    searchPlaceholder: '搜索域名、规则或节点',
    target: '请求目标',
    matchedRule: '命中规则',
    outboundNode: '出站节点',
    chain: '链路',
    traffic: '流量',
    result: '结果',
    pageSuccess: '本页 {ok}/{total} 成功',
  },
  logs: {
    title: '运行日志',
    desc: 'Prism 与代理内核运行日志',
    runtime: '运行日志',
    audit: '审计日志',
    searchPlaceholder: '搜索关键词',
    action: '操作',
    resource: '资源',
    detail: '详情',
  },
  settings: {
    title: '系统设置',
    desc: '代理端口、调度间隔与安全配置',
    reloadEngine: '重载内核',
    saved: '设置已保存',
    engineReloaded: '内核已重载',
    inboundApi: '入站与 API',
    proxyInbound: '代理入站',
    httpPort: 'HTTP 端口',
    socksPort: 'SOCKS5 端口',
    proxyUser: '代理用户名',
    proxyUserPlaceholder: '留空表示不启用认证',
    proxyPass: '代理密码',
    proxyPassPlaceholder: '留空则不修改；清空用户名可关闭认证',
    proxyAuthHint: '填写后 HTTP / SOCKS5 入站均需该账号密码；本机 127.0.0.1 可免认证',
    adminApi: '管理 API',
    apiPort: 'API 端口',
    apiPortHint: '修改后需重启进程生效',
    mihomoApi: 'Mihomo API',
    apiSecret: 'API Secret',
    apiSecretPlaceholder: 'Clash API 密钥',
    scheduler: '调度',
    healthInterval: '健康检查间隔',
    seconds: '秒',
    logLevel: '日志级别',
    security: '安全',
    authEnabled: '启用登录',
    loginMaxAttempts: '登录失败上限',
    loginMaxAttemptsHint: '同一 IP 在锁定时长内连续失败达到此次数后将临时锁定',
    loginLockMinutes: '登录锁定时长',
    loginLockMinutesHint: '分钟；锁定期间该 IP 无法继续尝试登录',
    newPassword: '新密码',
    newPasswordPlaceholder: '留空则不修改',
    appearance: '界面',
    uiLocale: '显示语言',
    localeZhCN: '简体中文',
    localeZhTW: '繁體中文',
    localeEn: 'English',
    apiKeys: 'API Key',
    apiKeysHint: '申请后可用 Key 直接调用管理 API，无需每次登录。请求头任选其一：',
    applyKey: '申请 API Key',
  },
  apiKey: {
    empty: '暂无 API Key',
    prefix: 'Key 前缀',
    lastUsed: '最近使用',
    createdAt: '创建时间',
    neverUsed: '从未使用',
    created: 'API Key 已创建，请立即复制保存',
    copied: '已复制到剪贴板',
    confirmRevoke: '确定吊销 Key「{name}」（{prefix}）？',
    revoked: '已吊销',
    dialogCreate: '申请 API Key',
    dialogSave: '请保存 API Key',
    name: '名称',
    namePlaceholder: '如 automation、ci',
    onceHint: '此 Key 只显示一次，关闭后无法再次查看完整内容。',
  },
  geo: {
    title: 'Geo 数据',
    autoDownload: '启动时自动下载',
    autoDownloadHint: '启动时若本地缺少 Geo 文件则按下方地址自动下载',
    countryMmdb: 'Country.mmdb',
    countryMmdbHint: 'GEOIP 国家匹配数据库；清空并保存可恢复内置默认地址',
    geoip: 'GEOIP',
    geoipHint: 'geoip.dat 下载地址；清空并保存可恢复内置默认地址',
    geosite: 'GEOSITE',
    geositeHint: 'geosite.dat 下载地址；清空并保存可恢复内置默认地址',
    localStatus: '本地状态',
    ready: '已就绪',
    notReady: '未就绪',
    missing: '缺失',
    downloadMissing: '下载缺失文件',
    forceUpdate: '强制更新全部',
    updateHint: '修改下载地址后请先保存，再点击更新；规则含 GEOIP/GEOSITE 时需保证三项文件齐全',
    updated: '已更新：{files}',
    upToDate: 'Geo 数据已是最新',
    updateFailed: '更新失败',
  },
}
