export default {
  common: {
    brand: 'Luminary',
    cancel: '取消',
    confirm: '确认',
    save: '保存',
    edit: '编辑',
    create: '创建',
    add: '添加',
    delete: '删除',
    refresh: '刷新',
    query: '查询',
    copy: '复制',
    actions: '操作',
    name: '名称',
    status: '状态',
    type: '类型',
    enabled: '启用',
    disabled: '禁用',
    yes: '是',
    no: '否',
    all: '全部',
    loading: '加载中...',
    empty: '(空)',
    dash: '—',
    infinity: '∞',
    confirmDelete: '确认删除？',
    auto: '自动',
    detail: '详情',
    model: '模型',
    requests: '请求',
    tokens: 'Token',
    cost: '费用 ($)',
    latencyMs: '延迟 (ms)',
    latency: '延迟',
    stream: '流式',
    error: '错误',
    time: '时间',
    username: '用户名',
    password: '密码',
    weight: '权重',
    priority: '优先级',
    category: '分类',
    budget: '预算',
    soon: '即将支持',
    whitelistMore: '{items} 等 {count} 项',
    language: '语言',
    zh: '中文',
    en: 'English',
  },
  nav: {
    dashboard: '看板监控',
    providers: '出口管理',
    ingress: '入口管理',
    logs: '请求日志',
    ipRules: 'IP 规则',
    settings: '系统设置',
    security: '安全',
    logout: '退出登录',
  },
  login: {
    subtitle: 'AI 网关管理台',
    title: '登录',
    username: '用户名',
    passwordPlaceholder: '请输入密码',
    submit: '登录',
    footer: 'Luminary Gateway — 统一 AI 出口与入口管理',
    success: '登录成功',
    failed: '登录失败，请检查用户名和密码',
    rateLimited: '登录尝试过多，请稍后再试',
    rateLimitedSec: '登录尝试过多，请 {sec} 秒后再试',
    ipBlocked: '当前 IP 不在白名单内，无法访问管理台。请检查 IP 规则或联系管理员。',
  },
  dashboard: {
    title: '看板监控',
    description: '实时查看网关请求量、错误率与 Provider 健康状态',
    requests24h: '24h 请求量',
    tokens24h: '24h Token',
    errorRate: '错误率',
    activeIngressKeys: '活跃入口密钥',
    requestTrend: '24h 请求趋势',
    tokenTrend: '24h Token 趋势',
    seriesRequests: '请求量',
    seriesErrors: '错误数',
    seriesTokens: 'Token',
    providerHealth: 'Provider 健康状态',
    ingressTop5: '入口密钥用量 Top 5',
    providerModelUsage: 'Provider + 模型用量 (24h)',
    clientIpUsage: '客户端 IP 用量 (24h)',
    clientIp: '客户端 IP',
    requestCount: '请求数',
  },
  providers: {
    title: '出口管理',
    description: '配置上游 Provider、接口路径与 API 密钥',
    addProvider: '添加 Provider',
    protocolType: '协议类型',
    baseUrl: 'Base URL',
    baseUrlPlaceholder: '留空使用默认',
    enabledEndpoints: '已启用接口',
    models: '模型',
    modelsEmpty: '暂无模型，请点击「同步模型」从上游拉取',
    displayName: '显示名称',
    syncedAt: '同步时间',
    addDialogTitle: '添加 Provider',
    endpointConfig: '接口配置',
    endpointConfigTitle: '接口配置 - {name}',
    endpointDivider: '接口与 Path 配置',
    endpointEditDivider: '启用接口与 Path 覆盖',
    pathHint: 'Path 可为相对路径（基于 Base URL）或完整 URL（http/https 开头）',
    keysTitle: '密钥管理 - {name}',
    addKey: '添加密钥',
    addKeyDialogTitle: '添加 Provider 密钥',
    apiKey: 'API Key',
    modelWhitelist: '模型白名单',
    modelWhitelistPlaceholder: '["*"] 或 gpt-4o-mini',
    maxRequestsPerDay: '日请求上限',
    maxTokensPerDay: '日 Token 上限',
    requestsToday: '今日请求',
    modelsTitle: '模型列表 - {name}',
    syncModels: '同步模型',
    modelsSummary: '共 {total} 个模型，已启用 {enabled} 个',
    modelsAction: '模型',
    endpointsAction: '接口配置',
    keysAction: '密钥',
    modelNotLoaded: '模型数据未加载，请刷新页面后重试',
    modelEnabled: '模型已启用',
    modelDisabled: '模型已禁用',
    modelNotFound: '模型不存在，请同步模型后重试',
    updateFailed: '更新失败',
    createSuccess: '创建成功',
    saved: '已保存',
    deleted: '已删除',
    syncedCount: '同步 {count} 个模型',
    syncFailed: '同步失败',
    keyAdded: '密钥已添加',
    providerEnabled: '出口已启用',
    providerDisabled: '出口已暂停',
    addWorkflowModel: 'Add Workflow Model',
    addModel: '添加模型',
    addModelDialogTitle: '手动添加模型',
    modelAdded: '模型已添加',
    modelDeleted: '模型已删除',
    confirmDeleteModel: '确认删除此模型？',
    workflowDialogTitle: '注册 Workflow 模型',
    modelId: 'Model ID',
    ingressModelId: '入口 Model ID',
    ingressModelIdHint: '客户端在 /v1/predictions 的 version 字段使用此名称',
    ingressModelIdRequired: '请填写入口 Model ID',
    modelAlias: '入口别名',
    modelAliasPlaceholder: '可选，入口 API 使用此名称',
    modelAliasHint: '留空则入口使用上游 Model ID',
    upstreamModelId: '上游 Model ID',
    editModelDialogTitle: '编辑模型',
    providerNameExists: '出口名称已存在',
    modelAliasExists: '模型别名已存在',
    workflowType: '类型',
    txt2img: '文生图',
    img2img: '图生图',
    workflowJson: 'Workflow JSON',
    analyzeWorkflow: '解析 Workflow',
    workflowJsonRequired: '请先粘贴 Workflow JSON',
    analyzeFailed: '解析失败',
    modelIdRequired: '请填写 Model ID',
    workflowSaved: 'Workflow 模型已保存',
    paramName: '参数',
    bindEnabled: '绑定',
    targetNode: '目标节点',
    targetField: '目标字段',
  },
  ingress: {
    title: '入口管理',
    description: '创建与管理 Virtual Key，配置预算、限流与路由规则',
    createKey: '创建入口密钥',
    keyPrefix: '密钥前缀',
    providerWhitelist: 'Provider 白名单',
    modelWhitelist: 'Model 白名单',
    budgetLimit: '预算上限',
    rpmLimit: 'RPM 限制',
    tpmLimit: 'TPM 限制',
    whitelistAction: '白名单',
    routingAction: '路由',
    createDialogTitle: '创建入口密钥',
    providerWhitelistPlaceholder: '不选表示允许全部 Provider',
    modelWhitelistPlaceholder: '不选表示允许全部模型',
    whitelistHint: '不选或清空表示允许全部',
    modelWhitelistHint: '不选或清空表示允许全部；需先在出口管理同步模型',
    editWhitelistTitle: '编辑白名单',
    plainKeyTitle: '请保存密钥（仅显示一次）',
    plainKeyWarning: '请立即复制保存，关闭后将无法再次查看完整密钥',
    routingTitle: '路由规则 - {name}',
    addRule: '添加规则',
    modelPattern: '模型匹配',
    modelPatternPlaceholder: 'gpt-4o* 或 claude-3-5-sonnet',
    providerId: '出口',
    providerIdPlaceholder: '选择出口',
    keyIdOptional: '出口密钥',
    keyIdPlaceholder: '留空则自动负载均衡',
    providerRequired: '请选择出口',
    addRuleTitle: '添加路由规则',
    whitelistUpdated: '白名单已更新',
    confirmDeleteKey: '确认删除此密钥？',
    copied: '已复制',
    ruleAdded: '规则已添加',
    protocol: '协议',
    protocolText: '文本（OpenAI）',
    protocolImage: '图片（Replicate）',
    protocolHint: '文本密钥调用 /v1/chat/completions 等；图片密钥调用 /v1/predictions 与 Replicate 模型列表',
    editKeyTitle: '编辑密钥',
    protocolUpdated: '密钥已更新',
    apiDoc: '接口文档',
  },
  logs: {
    title: '请求日志',
    description: '最近保留 500 条记录，含推理请求与管理台登录日志',
    ingress: '入口',
    endpoint: '接口',
    modelOrUser: '模型 / 用户',
    modelOrUserPlaceholder: '模型 / 用户名',
    clientIpPlaceholder: '客户端 IP',
    statusSuccess: '成功',
    statusError: '失败',
    endpointAdminLogin: '管理台登录',
    pagerHint: '共 {total} 条，最多保留 {max} 条',
    detailTitle: '请求详情',
    requestBody: '请求内容',
    responseBody: '响应内容',
    predictionStatus: '生图任务状态',
  },
  ipRules: {
    title: 'IP 规则',
    description: '配置管理台与推理 API 的 IP 白名单 / 黑名单',
    addRule: '添加 IP 规则',
    cidr: 'CIDR / IP',
    cidrPlaceholder: '192.168.1.0/24 或 127.0.0.1',
    scope: '范围',
    typeAllow: '允许 (allow)',
    typeDeny: '拒绝 (deny)',
    scopeProxy: '推理 API',
    scopeAdmin: '管理台',
    scopeAll: '全部（管理台 + API）',
    allowWarning: '允许规则会限制管理台访问，请确保已包含你当前的 IP。',
    added: '已添加',
  },
  settings: {
    title: '系统设置',
    description: '所有运行参数在管理台维护，无需配置文件即可启动',
    securitySession: '安全与会话',
    gatewayMonitor: '网关与监控',
    changePassword: '修改管理员密码',
    encryptionKey: '加密密钥',
    encryptionKeyPlaceholder: '留空则不修改；修改后需与旧密钥一致才能解密已有 Provider Key',
    encryptionKeyCurrent: '当前：{hint}',
    sessionTtl: '会话有效期（秒）',
    loginMaxAttempts: '登录最大尝试次数',
    loginLockout: '登录锁定时长（秒）',
    trustedProxies: '信任代理 IP/CIDR',
    trustedProxiesPlaceholder: '每行一个，例如 127.0.0.1 或 10.0.0.0/8',
    usageFlush: '用量刷盘间隔（秒）',
    healthCheck: '健康检查间隔（秒）',
    gatewayMaxRetries: '网关最大重试次数',
    retryBackoff: '重试退避（毫秒）',
    imageStorage: '图像存储',
    imageStoragePath: '存储目录（相对 data-dir）',
    publicBaseUrl: '对外 Base URL',
    signedUrlTtl: '签名 URL 有效期（秒）',
    predictionWait: 'Prefer:wait 最长等待（秒）',
    saveSettings: '保存系统设置',
    oldPassword: '旧密码',
    newPassword: '新密码',
    savePassword: '保存密码',
    settingsSaved: '系统设置已保存',
    passwordUpdated: '密码已更新',
  },
  apiDocs: {
    backToKeys: '返回入口管理',
    authTitle: '鉴权',
    authDesc: '请求头二选一携带入口密钥（sk-lum-*）：',
    baseUrl: 'Base URL',
    endpointsTitle: '接口列表',
    examplesTitle: '请求示例',
    method: '方法',
    path: '路径',
    summary: '说明',
    text: {
      title: '文本 API 文档（OpenAI 兼容）',
      description: '适用于协议为「文本」的入口密钥，与 OpenAI SDK 兼容。',
      note: '实际可访问的接口取决于上游 Provider 在「出口管理」中启用的 endpoint。白名单为空表示不限制 Provider / 模型。',
      endpointRows: [
        { method: 'GET', path: '/v1/models', summary: '列出可用模型（OpenAI 格式）', status: '已支持' },
        { method: 'POST', path: '/v1/chat/completions', summary: '对话补全；stream: true 时 SSE 流式', status: '已支持' },
        { method: 'POST', path: '/v1/responses', summary: 'OpenAI Responses API', status: '已支持' },
        { method: 'POST', path: '/v1/completions', summary: '文本补全（Legacy）', status: '已支持' },
        { method: 'POST', path: '/v1/embeddings', summary: '向量嵌入', status: '已支持' },
        { method: 'POST', path: '/v1/rerank', summary: 'Cohere 兼容重排序', status: '已支持' },
      ],
      exampleRows: [
        {
          title: '列出模型',
          code: 'curl {baseURL}/models \\\n  -H "Authorization: Bearer sk-lum-..."',
        },
        {
          title: '对话补全',
          code: 'curl {baseURL}/chat/completions \\\n  -H "Authorization: Bearer sk-lum-..." \\\n  -H "Content-Type: application/json" \\\n  -d \'{"model":"gpt-4o-mini","messages":[{"role":"user","content":"Hello"}]}\'',
        },
        {
          title: 'Embeddings',
          code: 'curl {baseURL}/embeddings \\\n  -H "Authorization: Bearer sk-lum-..." \\\n  -H "Content-Type: application/json" \\\n  -d \'{"model":"text-embedding-3-small","input":"hello"}\'',
        },
      ],
    },
    image: {
      title: '图片 API 文档（Replicate 兼容）',
      description: '适用于协议为「图片」的入口密钥，用于 ComfyUI 文生图 / 图生图异步任务。',
      note: '请求字段 version 支持 owner/name 或短 name（与模型列表 latest_version.id、owner、name 一致）。input 字段见 openapi_schema.components.schemas.Input。任务完成后输出图像通过签名 URL 返回（/files/:id?exp=&sig=）。',
      endpointRows: [
        { method: 'GET', path: '/v1/models', summary: '列出可用工作流模型（Replicate 格式）', status: '已支持' },
        { method: 'POST', path: '/v1/predictions', summary: '创建异步任务；Prefer: wait 可同步等待', status: '已支持' },
        { method: 'GET', path: '/v1/predictions', summary: '列出任务（cursor 分页）', status: '已支持' },
        { method: 'GET', path: '/v1/predictions/:id', summary: '查询任务状态与输出', status: '已支持' },
        { method: 'POST', path: '/v1/predictions/:id/cancel', summary: '取消进行中的任务', status: '已支持' },
        { method: 'GET', path: '/v1/predictions/:id/stream', summary: 'SSE 流式推送任务进度', status: '已支持' },
      ],
      exampleRows: [
        {
          title: '列出工作流模型',
          code: 'curl {baseURL}/models \\\n  -H "Authorization: Bearer sk-lum-..."',
        },
        {
          title: '创建 Predictions 任务',
          code: 'curl -X POST {baseURL}/predictions \\\n  -H "Authorization: Bearer sk-lum-..." \\\n  -H "Content-Type: application/json" \\\n  -d \'{"version":"luminary/flux-txt2img","input":{"prompt":"a cat"}}\'',
        },
      ],
    },
  },
}
