export default {
  app: {
    name: 'Wormhole',
    tagline: '内网穿透 + 反向代理网关',
  },
  common: {
    refresh: '刷新',
    save: '保存',
    cancel: '取消',
    close: '关闭',
    search: '搜索',
    delete: '删除',
    edit: '编辑',
    create: '创建',
    confirm: '确认',
    actions: '操作',
    enabled: '启用',
    disabled: '禁用',
    yes: '是',
    no: '否',
    name: '名称',
    status: '状态',
    id: 'ID',
    optional: '可选',
    loading: '加载中…',
    viewAll: '查看全部',
    logout: '退出',
    language: '语言',
    zh: '中文',
    en: 'English',
    hint: '提示',
    export: '导出',
    import: '导入',
    start: '启动',
    stop: '停止',
    pause: '暂停',
    resume: '恢复',
    block: '拉黑',
    traffic: '流量',
    target: '目标',
    client: '客户端',
    mode: '模式',
    port: '端口',
    prefix: '前缀',
    resource: '资源',
    method: '方法',
    path: '路径',
    time: '时间',
    type: '类型',
    running: '运行中',
    stopped: '已停止',
    paused: '已暂停',
    on: '已开启',
    off: '未开启',
    online: '在线',
    offline: '离线',
    selectClient: '请选择客户端',
    dash: '-',
  },
  nav: {
    groups: {
      overview: '概览',
      tunnel: '穿透',
      security: '安全',
      system: '系统',
    },
    dashboard: '仪表盘',
    clients: '客户端',
    tunnels: '隧道',
    hosts: '域名',
    ipRules: 'IP 规则',
    requestIPs: '请求 IP',
    users: '访客用户',
    settings: '系统设置',
  },
  topbar: {
    dashboard: '仪表盘',
    clients: '客户端管理',
    tunnels: '隧道管理',
    hosts: '域名解析',
    ipRules: 'IP 规则',
    requestIPs: '请求 IP 监控',
    users: '访客用户',
    settings: '系统设置',
    fallback: 'Wormhole',
  },
  login: {
    title: '登录',
    username: '用户名',
    password: '密码',
    submit: '登录',
    hint: '默认账号 admin / admin',
    lockDefault: '登录尝试次数过多，请稍后再试',
    lockMinutes: '登录尝试次数过多，请 {n} 分钟后再试',
    lockSeconds: '登录尝试次数过多，请 {n} 秒后再试',
  },
  dashboard: {
    title: '仪表盘',
    description: '系统运行状态、流量与访问监控概览',
    openapi: 'OpenAPI',
    statClientTotal: '客户端总数',
    statClientOnline: '在线客户端',
    statTunnelRunning: '运行隧道',
    statHostTotal: '域名数量',
    systemResources: '系统资源',
    trafficOverview: '流量概览',
    cpu: 'CPU',
    memory: '内存',
    load: '负载',
    inlet: '入站',
    export: '出站',
    resourceTrend: '系统资源趋势',
    trafficTrend: '流量趋势',
    tunnelTop10: '隧道流量 Top10',
    hostTop10: '域名流量 Top10',
    ipTop10: '请求 IP Top10',
    rankTunnels: '隧道流量排行',
    rankHosts: '域名流量排行',
    rankIps: '请求 IP 排行',
    visitorIp: '访客 IP',
    directIp: '直连 IP',
    hitCount: '次数',
    host: '域名',
    listenPort: '端口',
  },
  clients: {
    title: '客户端管理',
    description: '管理 Agent 连接与 verify_key',
    add: '新增客户端',
    edit: '编辑客户端',
    verifyKey: 'Verify Key',
    rateLimit: '限速(KB/s)',
    maxConn: '最大连接',
    confirmDelete: '确认删除该客户端？',
  },
  tunnels: {
    title: '隧道管理',
    description: '配置 TCP/UDP 端口转发隧道',
    add: '新增隧道',
    edit: '编辑隧道',
    searchPlaceholder: '搜索名称、端口、目标',
    listenPort: '监听端口',
    targetAddr: '目标地址',
    visitorAuth: '访客登录',
    confirmDelete: '确认删除该隧道？',
    tcp: 'TCP',
    udp: 'UDP',
  },
  hosts: {
    title: '域名解析',
    description: 'HTTP/HTTPS 反向代理与 Host 路由',
    add: '新增域名',
    edit: '编辑域名',
    searchPlaceholder: '搜索域名、目标',
    host: '域名',
    location: '路径前缀',
    autoHttps: '自动 HTTPS',
    visitorAuth: '访客登录',
    confirmDelete: '确认删除该域名？',
  },
  ipRules: {
    title: 'IP 规则',
    description: '白名单 / 黑名单 / CIDR 访问控制',
    add: '新增规则',
    edit: '编辑规则',
    pattern: '匹配模式',
    patternPlaceholder: 'IP / CIDR / 正则',
    ruleType: '类型',
    allow: '白名单',
    deny: '黑名单',
    resourceType: '资源类型',
    global: '全局',
    tunnel: '隧道',
    host: '域名',
    resource: '关联资源',
    resourceId: '资源ID',
    selectResource: '请选择资源',
    noResource: '暂无可用资源，请先创建',
    resourceRequired: '请选择关联资源',
    confirmDelete: '确认删除该规则？',
  },
  requestIPs: {
    title: '请求 IP 监控',
    description: '访客真实 IP（优先 X-Forwarded-For）与直连 IP',
    searchPlaceholder: '搜索 IP',
    resourceType: '资源类型',
    resourceId: '资源 ID',
    hitCount: '访问次数',
    lastSeen: '最后访问',
    confirmBlock: '确认将该 IP 加入黑名单？',
  },
  users: {
    title: '访客用户',
    description: '管理可访问受保护域名/隧道的访客账号',
    add: '新增访客',
    edit: '编辑访客',
    username: '用户名',
    password: '密码',
    passwordPlaceholderEdit: '留空不修改',
    accessLogs: '访问记录',
    accessLogsTitle: '访问记录 · {name}',
    logsHint: '最近 {n} 条（最多保留 200 条，不含静态资源请求）',
    login: '登录',
    visit: '访问',
    confirmDelete: '确认删除该访客？',
  },
  settings: {
    title: '系统设置',
    description: '服务端运行参数（保存后部分项需重启服务生效）',
    listenPorts: '监听端口',
    bridgeAddr: 'Bridge 地址',
    httpAddr: '管理 API / Web',
    httpProxyPort: 'HTTP 反代端口',
    httpsProxyPort: 'HTTPS 反代端口',
    tlsCert: 'TLS 证书',
    tlsKey: 'TLS 私钥',
    tlsOptional: '可选，留空不使用',
    authSecurity: '认证与安全',
    jwtSecret: 'JWT 密钥',
    jwtSecretPlaceholder: '留空则不修改',
    tokenTtl: 'Token 有效期(h)',
    loginMaxAttempts: '登录最大尝试',
    loginWindow: '统计窗口(分钟)',
    loginLockout: '锁定时长(分钟)',
    adminAccount: '管理员账号',
    currentPassword: '当前密码',
    newPassword: '新密码',
    confirmPassword: '确认新密码',
    changePassword: '修改管理员密码',
    metrics: '指标',
    flushInterval: '刷新间隔(秒)',
    apiKey: 'API Key',
    apiKeyHint: '用于程序化访问 API（端口 8529），请求头携带 {header}。文档：{doc}',
    createApiKey: '创建 API Key',
    createApiKeyTitle: '创建 API Key',
    apiKeyNamePlaceholder: '如 CI/CD',
    apiKeySave: '请保存：{key}',
    fillPassword: '请填写当前密码和新密码',
    passwordMismatch: '两次输入的新密码不一致',
    enterApiKeyName: '请输入名称',
  },
  ipForward: {
    replace: {
      label: '覆盖真实 IP',
      hint: '将 X-Forwarded-For、X-Real-IP 覆盖为访客真实 IP，不保留已有代理链',
    },
    append: {
      label: '标准转发头',
      hint: '按反向代理规范追加 X-Forwarded-For，并设置 X-Real-IP（等同 Nginx proxy_add_x_forwarded_for）',
    },
    ipForward: 'IP 转发',
    customHeaders: '自定义请求头',
    headerName: 'Header 名称',
    headerValue: 'Header 值',
    addHeader: '添加请求头',
  },
  visitorAuth: {
    title: '访客登录',
    enable: '开启验证',
    allowVisitors: '允许访客',
    allVisitors: '全部访客',
    selectedVisitors: '指定访客',
    selectVisitors: '选择访客用户',
    ttl: '凭证有效期',
    ttlHint: '单位：秒，登录成功后浏览器将保存凭证',
    tunnelHint: '开启访客登录后，该端口将以 HTTP 方式提供服务（适用于 Web 应用）。SSH 等 TCP 协议请使用域名反代。',
  },
  importExport: {
    importTitle: '批量导入',
    importMode: '导入模式',
    upsert: '覆盖更新（已存在则更新）',
    skip: '跳过已存在（仅导入新配置）',
    create: '全部新建（冲突则跳过）',
    pending: '待导入',
    pendingCount: '{n} 条配置',
    startImport: '开始导入',
    exportSuccess: '已导出 {n} 条配置',
    importDone: '导入完成：新增 {created}，更新 {updated}，跳过 {skipped}，失败 {failed}',
    parseFailed: '解析文件失败',
  },
  clientSelect: {
    placeholder: '选择客户端',
    label: '{name} (#{id}) · {status}',
  },
  rank: {
    defaultTitle: '详情',
  },
  message: {
    loginSuccess: '登录成功',
    loginFailed: '登录失败',
    loginRateLimit: '登录尝试次数过多',
    saveSuccess: '保存成功',
    saveFailed: '保存失败',
    deleteSuccess: '已删除',
    exportFailed: '导出失败',
    importFailed: '导入失败',
    loadFailed: '加载失败',
    saved: '已保存',
    savedRestart: '已保存，监听端口变更需重启 wormhole server 后生效',
    passwordUpdated: '管理员密码已更新',
    passwordChangeFailed: '修改失败',
    apiKeyCreated: '已创建，请复制保存',
    blockSuccess: '已加入黑名单',
  },
}
