const zh = {
  menu: {
    modelManagement: '模型管理',
    monitoringManagement: '监控管理',
    systemManagement: '系统管理',
    resourcesAndSupport: '资源与支持',
    launchModel: '启动模型',
    runningModels: '运行模型',
    registerModel: '注册模型',
    clusterInfo: '集群信息',
    monitorCenter: '监控中心',
    logCenter: '日志中心',
    userManagement: '用户管理',
    apiKeyManagement: 'API Key管理',
    securitySettings: '安全设置',
    auditCenter: '审计中心',
    xagent: 'Xagent AI智能体',
    contactUs: '联系我们',
    documentation: '文档',
    website: '官网',
  },
  model: {
    languageModels: '语言模型',
    embeddingModels: '嵌入模型',
    rerankModels: '重排序模型',
    imageModels: '图像模型',
    audioModels: '音频模型',
    videoModels: '视频模型',
    customModels: '自定义模型',
    flexibleModels: '灵活模型',
  },
  launchModel: {
    modelType: '模型类型',
    modelAbility: '模型能力',
    generate: '文本生成',
    embed: '嵌入',
    rerank: '重排',
    chat: '对话',
    vision: '图像识别',
    reasoning: '推理能力',
    tools: '工具使用能力',
    audio: '音频处理',
    omni: '全模态',
    hybrid: '混合能力',
    text2image: '文生图',
    image2image: '图生图',
    inpainting: '图像修复',
    ocr: '光学字符识别',
    audio2text: '语音转文本',
    text2audio: '文本转语音',
    text2audio_zero_shot: '文本转语音(零样本)',
    text2audio_voice_cloning: '文本转语音(声音克隆)',
    text2audio_emotion_control: '文本转语音(情感控制)',
    text2video: '文生视频',
    image2video: '图生视频',
    firstlastframe2video: '首尾帧生视频',
    status: '状态',
    cached: '已缓存',
    manageCachedModels: '管理缓存模型',
    manageVirtualEnvironments: '管理虚拟环境',
    favorite: '收藏',
    unfavorite: '取消收藏',
    search: '搜索模型名称和描述',
    searchModelType: '搜索 {{modelType}} 相关的模型名称',
    searchInstruction: '输入 {{hotkey}} 进行搜索',
    clickToLaunchModel: '点击鼠标以启动模型',
    dimensions: '维度',
    maxTokens: '最大 token 数',
    contextLength: '上下文长度',
    chatModel: '聊天模型',
    generateModel: '生成模型',
    otherModel: '其他模型',
    confirmDeleteCustomModel: '您确定要删除{{modelName}}这个自定义模型吗？此操作无法恢复。',
    modelName: '模型名称',
    envPath: '环境路径',
    realPath: '真实路径',
    copyEnvPath: '复制环境路径',
    viewPackages: '查看包列表',
    installedPackages: '已安装的包',
    packageName: '包名称',
    version: '版本',
    location: '位置',
    packagesCount: '包数量',
    size: '大小',
    pythonVersion: 'Python 版本',
    createdAt: '创建时间',
    noVirtualEnvironmentsForNow: '当前没有虚拟环境！',
    noPackagesInstalled: '未安装任何包',
    lastConfig: '最后配置',
    configCache: '配置缓存',
    newCache: '新建缓存',
    noConfigCache: '当前没有配置缓存！',
    loadCache: '使用',
    deleteCache: '删除缓存',
    lastUpdated: '最后更新',
    defaultConfig: '默认配置',
    confirmDeleteConfigCache: '确认删除这条配置缓存吗？此操作无法恢复。',
    invalidConfigCache: '这条配置缓存对应的模型引擎当前不可用。',
    commandLineParsing: '解析命令行参数',
    copyToCommandLine: '复制为命令行指令',
    modelEngine: '模型引擎',
    modelFormat: '模型格式',
    modelSize: '模型大小',
    quantization: '量化',
    multimodelProjector: '多模态投影器',
    nGPU: 'GPU 数量 (每个副本)',
    nGPUPerWorker: '每个 Worker 上的 GPU 数量',
    nGPUDevice: '设备',
    gpuCount: 'GPU 数量：{{count}}',
    nGpuLayers: 'GPU 层数',
    replica: '副本',
    advancedConfiguration: '高级配置',
    runtimeEnvironment: '运行环境',
    engineParameters: '引擎参数',
    engineQuantizationParameters: '量化参数',
    engineAdditionalParameters: '附加参数',
    modelUid: '模型 UID',
    modelUidPlaceholder: '默认是模型名称',
    requestLimits: '请求限制',
    requestLimitsPlaceholder: '模型的请求限制数，默认值为无',
    workerIp: '工作节点 IP',
    workerIpPlaceholder: '在分布式场景中指定模型所在的工作节点 IP，可多选，也可输入后 Add 添加',
    workerCount: 'Worker 数量',
    workerCountPlaceholder: 'Worker 数量',
    GPUIdx: 'GPU 索引',
    GPUIdxPlaceholder: '指定模型所在的 GPU 索引，例如：0,1,2',
    downloadHub: '下载中心',
    downloadHubPlaceholder: '下载中心',
    modelPath: '模型路径',
    modelPathPlaceholder: '对于 PyTorch，提供模型目录；对于 GGML/GGUF，提供模型文件路径。',
    GGUFQuantization: 'GGUF 量化格式',
    GGUFQuantizationPlaceholder: '对 Transformer 部分进行量化。',
    GGUFModelPath: 'GGUF 模型路径',
    GGUFModelPathPlaceholder: '应为以 .gguf 结尾的文件。',
    lightningVersions: '蒸馏版本',
    lightningVersionsPlaceholder: '蒸馏版本',
    lightningModelPath: '蒸馏 Lora 路径',
    lightningModelPathPlaceholder: '蒸馏lora路径',
    enableThinking: '开启思考模式',
    enableMtp: '开启 MTP',
    speculativeDecoding: '推测解码',
    draftModelQuantization: '草稿模型量化',
    draftModelQuantizationPlaceholder: '默认使用第一个可用项',
    numSpeculativeTokens: '推测 Token 数',
    numSpeculativeTokensPlaceholder: '引擎默认值',
    numSpeculativeTokensPlaceholderValue: '引擎默认 {{value}}',
    enableMtpTip:
      '在模型旁边运行一个小的草稿模型，每轮提议若干 token，再由模型一次性验证。输出完全一致，解码更快。开启会额外下载一份草稿模型权重。',
    draftModelQuantizationTip:
      '草稿模型本身很小，量化它省不了多少内存，却会降低接受率。即使目标模型是量化版，也建议用未量化的草稿模型。',
    numSpeculativeTokensTip:
      '每轮草稿模型提议的 token 数（含 bonus token）。留空时，MLX 读取草稿模型的训练深度（Gemma 4 是 4）；Gemma 4 的 llama.cpp、vLLM 和 SGLang 按模型大小使用同一份 recipe：E2B 为 2，E4B 和 26B-A4B 为 4，12B 和 31B 取推荐范围 4–8 的下限 4。',
    parsingReasoningContent: '解析推理内容',
    CPUOffload: 'CPU卸载',
    CPUOffloadTip: '将模型卸载到CPU。当资源有限或使用GGUF选项时，建议启用此功能。',
    loraConfig: 'Lora 配置',
    loraModelConfig: 'Lora 模型配置',
    virtualEnvConfig: '虚拟空间配置',
    modelVirtualEnv: '模型虚拟空间',
    virtualEnvPackage: '虚拟空间安装包',
    envVariable: '环境变量',
    envVariableConfig: '环境变量配置',
    additionalQuantizationParametersForInferenceEngine: '传递给推理引擎的量化参数',
    additionalParametersForInferenceEngine: '传递给推理引擎的附加参数',
    enterIntegerGreaterThanZero: '请输入大于 0 的整数。',
    enterCommaSeparatedNumbers: '请输入以逗号分隔的数字数据，例如：0,1,2',
    device: '设备',
    loraLoadKwargsForImageModel: '图像模型的 Lora 加载参数',
    loraFuseKwargsForImageModel: '图像模型的 Lora 融合参数',
    launch: '启动',
    copyJson: '复制 JSON',
    placeholderTip: '请输入',
    fillCompleteParametersBeforeAdding: '请在添加之前填写完整的参数！',
    model_format: '模型格式',
    model_size_in_billions: '模型大小（以十亿为单位）',
    quantizations: '量化方式',
    real_path: '真实路径',
    path: '路径',
    ipAddress: 'IP 地址',
    copyRealPath: '复制真实路径',
    copyPath: '复制路径',
    noCacheForNow: '当前没有缓存！',
    confirmDeleteCacheFiles: '确认删除缓存文件吗？此操作无法恢复。',
    confirmDeleteVirtualEnv: '确认删除虚拟环境吗？此操作无法恢复。',
    commandLineTip: '请确定模型名称是否一致。',
    featured: '推荐和收藏',
    all: '全部',
    cancelledSuccessfully: '取消成功!',
    mustBeUnique: '{{key}} 必须唯一',
    launchProgress: '启动进度',
    launchCompleted: '模型部署完成',
    launchCompletedWithAutostart: '模型部署完成，并已设为开机自启',
    saveAutostart: '启动成功后设为开机自启',
    autostartSaveFailed: '模型已启动，但保存开机自启配置失败',
    launchCanceled: '已停止部署',
    initializing: '初始化中...',
    moreDetails: '更多详情',
  },
  runningModels: {
    searchPlaceholder: '搜索模型名称或模型UID...',
    loadingModels: '模型加载中...',
    fetchingModelList: '正在获取最新的运行模型列表。',
    noRunningModels: '暂无运行模型',
    launchModelFirst: '启动模型后会显示在这里',
    noModelsFound: '未找到模型',
    tryChangingSearchKeywords: '请尝试更换搜索关键词。',
    selectModel: '请选择一个模型',
    selectModelDescription: '点击左侧列表中的模型以查看详情。',
    tryApi: '调试 API',
    refresh: '刷新',
    terminateConfirmBody:
      '当前模型 {{name}} 共有 {{replica}} 个副本。集群繁忙或副本较多时，终止操作可能需要数分钟；总耗时取决于最慢的 Worker 节点。请勿重复点击终止。',
    terminateConfirmOk: '终止',
    baseInfo: '基本信息',
    modelType: '模型类型',
    modelEngine: '模型引擎',
    modelFormat: '模型格式',
    modelSize: '模型大小',
    quantization: '量化',
    resources: '资源分配',
    workerAddress: '工作节点',
    gpuIndexes: 'GPU 索引',
    gpuMemory: 'GPU 显存',
    replicaDetail: '副本详情',
    removeReplicaConfirm: '确认移除模型 {{modelUid}} 的副本 {{replicaId}} 吗？',
    autostartEnabled: '已配置开机自启',
    removeAutostartSuccess: '已移除 {{modelUid}} 的开机自启',
    removeAutostartFailed: '移除开机自启失败',
  },
  registerModel: {
    modelName: '模型名称',
    modelDescription: '模型描述（可选）',
    contextLength: '上下文长度',
    dimensions: '维度',
    maxTokens: '最大 token 数',
    modelPath: '模型路径',
    modelLanguages: '模型语言',
    languages: '语言',
    multilingual: '多语言',
    modelAbilities: '模型能力',
    modelFamily: '模型系列',
    chatTemplate: '聊天模板',
    test: '测试',
    testResult: '测试结果',
    noTestResults: '没有测试结果...',
    stopTokenIds: '停止token ID',
    stop: '停止',
    reasoningStartTag: '推理开始标签',
    reasoningEndTag: '推理结束标签',
    toolParser: '工具解析器',
    launcher: '启动器',
    launcherArguments: '启动器参数（可选）',
    registerModel: '注册模型',
    messagesExample: '消息示例',
    JSONFormat: 'JSON 格式',
    modelSpecs: '模型规格',
    modelSizeBillions: '模型大小（以十亿为单位）',
    quantization: '量化',
    quantizationOptional: '量化（可选）',
    controlnet: '控制网',
    packages: '虚拟环境安装包',
    more: '更多',
    modelFormat: '模型格式',
    enterNumberGreaterThanZero: '请输入大于 0 的数字。',
    carefulQuantizationForModelRegistration:
      '对于 GPTQ/AWQ/FP8/MLX 模型，请小心填写与您要注册的模型对应的量化方式。',
    quantizationCannotBeEmpty: '量化方式不能为空。',
    enterInteger: '请输入一个整数。',
    enterIntegerGreaterThanZero: '请输入大于 0 的整数。',
    showJsonView: '显示由 API 使用的自定义 JSON 配置',
    hiddenJsonView: '隐藏由 API 使用的自定义 JSON 配置',
    copyAll: '复制全部',
    alphanumericWithHyphensUnderscores:
      '字母数字字符，连字符和下划线应正确放置。不能与任何内置模型名称匹配。',
    chooseBuiltInOrCustomModel: '您可以选择内置模型或输入自定义模型。',
    chooseOnlyBuiltInModel: '您只能从内置模型中选择。',
    provideModelDirectoryPath: '提供模型目录路径。',
    provideModelLauncher: '提供模型启动器。',
    jsonArgumentsForLauncher: '一个 JSON 格式的字典，表示传递给启动器的参数。',
    provideModelDirectoryOrFilePath: '对于 PyTorch，提供模型目录。对于 GGUF，提供模型文件路径。',
    ensureChatTemplatePassesTest:
      '请确保通过点击右侧的测试按钮，使此聊天模板通过测试。请注意，此测试可能无法涵盖所有情况，只会用于最基本的情况。',
    testFailurePreventsChatWorking: '请注意，未通过测试可能会导致聊天无法正常工作。',
    stopControlForChatModels: '整数类型，用于控制聊天模型的停止。',
    stopControlStringForChatModels: '字符串类型，用于控制聊天模型的停止。',
    enterJsonFormattedDictionary: '请输入 JSON 格式的字典。',
    autoFill: '自动填充',
    fillInModelPathFirst: '请先填写模型路径',
    fillInModelFamilyFirst: '请先选择模型系列',
  },
  monitorCenter: {
    notConfigured: '监控未配置，请设置 XINFERENCE_GRAFANA_URL 环境变量。',
    tab: {
      overview: '概览',
      modelLoad: '模型负载',
      llmSlo: 'LLM SLO',
      gpu: 'GPU',
      host: '主机',
      security: '安全',
    },
    time: {
      '5m': '最近 5 分钟',
      '15m': '最近 15 分钟',
      '30m': '最近 30 分钟',
      '1h': '最近 1 小时',
      '3h': '最近 3 小时',
      '6h': '最近 6 小时',
      '12h': '最近 12 小时',
      '24h': '最近 24 小时',
      '7d': '最近 7 天',
      '2d': '最近 2 天',
    },
    refresh: {
      off: '关闭',
      '10s': '10秒',
      '30s': '30秒',
      '1m': '1分钟',
      '5m': '5分钟',
    },
    absoluteRange: '绝对时间范围',
    applyTimeRange: '应用时间范围',
    invalidTimeRange: '结束时间必须晚于开始时间',
    manualRefresh: '刷新仪表板',
    config: {
      button: '监控配置',
      title: '监控配置',
      grafanaUrl: 'Grafana URL',
      datasourceName: '数据源名称',
      alertDatasourceName: '告警数据源名称',
      clusterName: '集群名称',
      dashboards: '看板 UID',
      testConnection: '测试连接',
      testing: '测试中…',
      connectionOk: '连接成功',
      connectionFailed: '连接失败',
      reset: '恢复默认',
      resetConfirm: '确定恢复监控配置为默认值吗？',
      save: '保存',
      cancel: '取消',
      saved: '配置已保存',
      source: {
        db: '数据库',
        env: '环境变量',
        default: '默认',
      },
    },
  },
  logCenter: {
    notConfigured: '日志未配置，请启用 Elasticsearch 日志服务。',
    allNodes: '全部节点',
    searchPlaceholder: '搜索日志内容、字段或关键词',
    refresh: '刷新日志',
    loading: '日志加载中...',
    logLevel: '日志级别',
    nodeType: '节点类型',
    clearFilters: '清除全部',
    noLogs: '没有匹配的日志',
    totalHits: '共 {{count}} 条',
    prevPage: '上一页',
    nextPage: '下一页',
    time: '时间',
    level: '级别',
    node: '节点',
    message: '消息',
    detail: {
      tableTab: '表格',
      jsonTab: 'JSON',
      action: '操作',
      field: '字段',
      value: '值',
      filterFor: '包含此值',
      filterOut: '排除此值',
      copyJson: '复制 JSON',
      copied: '已复制',
      viewContext: '查看上下文',
      contextTitle: '日志上下文',
      contextError: '当前日志没有可用上下文',
      contextFetchError: '上下文加载失败',
      loadNewer: '加载更新日志',
      loadOlder: '加载更早日志',
      newerDocs: '条更新日志',
      olderDocs: '条更早日志',
    },
  },
  clusterInfo: {
    pageDescription: '查看您的XInference集群的当前状态——包括主管节点、工作节点及其硬件资源。',
    supervisor: '主管',
    workers: '工作节点',
    workerDetails: '工作节点详情',
    count: '数量',
    cpuInfo: 'CPU 信息',
    usage: '使用率: ',
    total: '总计: ',
    cpuMemoryInfo: 'CPU 内存信息',
    version: '版本',
    release: '发布: ',
    commit: '提交: ',
    gpuInfo: 'GPU 信息',
    gpuMemoryInfo: 'GPU 内存信息',
    address: '地址',
    item: '项',
    value: '值',
    nodeType: '节点类型',
    cpuUsage: 'CPU 使用率',
    cpuTotal: 'CPU 总数',
    memUsage: '内存用量',
    memTotal: '内存总量',
    gpuCount: 'GPU 数量',
    gpuLoad: 'GPU 负载',
    gpuMemUsage: 'GPU 内存用量',
    gpuMemTotal: 'GPU 内存总量',
    worker: '工作节点',
  },
  login: {
    welcome: '欢迎回来',
    welcomeDesc: '统一管理与部署你的大语言、向量、图像与多模态模型。',
    login: '登录',
    loginDesc: '请输入你的账号信息以访问',
    username: '用户名',
    password: '密码',
    mustChangePasswordDesc: '首次登录，需要先修改密码才能继续使用。',
    changePasswordUserMissing: '无法识别当前用户，请重新登录后再试。',
    or: '或',
    ssoLogin: '使用 SSO 登录',
  },
  setup: {
    welcome: '欢迎使用 Xinference',
    welcomeDesc: '当前实例还没有任何账号，请创建第一个管理员账号以完成部署初始化。',
    title: '设置管理员账号',
    description: '创建第一个管理员账号以继续。',
    passwordTooShort: '密码至少需要 {{min}} 个字符',
    submit: '创建管理员账号',
    createSuccess: '管理员账号创建成功，请使用新账号登录。',
    createFailed: '创建失败，请重试。',
    adminAccessNote: '该账号将拥有完整的管理员权限。',
    featureServingTitle: '一键启动模型',
    featureServingDesc: '一条命令即可启动最先进的大语言模型、向量模型和多模态模型。',
    featureApiTitle: '兼容 OpenAI 的接口',
    featureApiDesc: '开箱即用的 RESTful API、RPC、CLI 和 Web UI，无缝对接你现有的工具链。',
    featureDistributedTitle: '天然支持分布式',
    featureDistributedDesc: '无论单机还是集群，都能充分利用 GPU 和 CPU 进行推理扩展。',
  },
  userManagement: {
    pageDescription: '管理可以访问 Xinference 集群的用户。',
    createUser: '创建用户',
    editUser: '编辑用户',
    editPermissionsTitle: '编辑权限 - {{username}}',
    username: '用户名',
    usernamePlaceholder: '例如：alice',
    usernameRequired: '用户名不能为空',
    password: '密码',
    passwordPlaceholder: '输入密码',
    passwordRequired: '密码不能为空',
    confirmPassword: '确认密码',
    confirmPasswordPlaceholder: '再次输入密码',
    passwordMismatch: '两次输入的密码不一致',
    passwordTooShort: '密码长度必须大于 8 位',
    newPassword: '新密码',
    changePassword: '修改密码',
    changePasswordTitle: '修改密码 - {{username}}',
    passwordChanged: '密码修改成功！',
    permissions: '权限',
    selectAll: '全选',
    expandPermissions: '展开权限',
    collapsePermissions: '收起权限',
    source: '来源',
    createdAt: '创建时间',
    enabled: '启用',
    enabledStatus: '已启用',
    disabledStatus: '已禁用',
    currentUser: '当前用户',
    currentUserToggleHint: '不能禁用自己',
    mustChangePwd: '需修改密码',
    noUsers: '暂无用户。',
    loading: '加载中...',
    create: '创建',
    creating: '创建中...',
    saving: '保存中...',
    createSuccess: '用户创建成功！',
    updateSuccess: '用户更新成功！',
    deleteTitle: '删除用户',
    deleteDescription: '确定要删除用户 {{username}} 吗？此操作不可撤销。',
    permissionGroups: {
      admin: 'admin',
      models: 'models',
      keys: 'keys',
      users: 'users',
      cache: 'cache',
      virtualenv: 'virtualenv',
      logs: 'logs',
      monitor: 'monitor',
    },
    permissionLabels: {
      admin: '管理员',
      'models:list': '查看模型列表',
      'models:read': '读取模型信息',
      'models:write': '启动/停止模型',
      'models:register': '注册/取消注册模型',
      'keys:create': '创建 API Key',
      'keys:manage': '管理 API Key',
      'users:manage': '管理用户',
      'cache:list': '查看缓存',
      'cache:delete': '删除缓存',
      'virtualenv:list': '查看虚拟环境',
      'virtualenv:delete': '删除虚拟环境',
      'logs:list': '查看日志',
      'monitor:view': '查看监控',
    },
  },
  apiKey: {
    pageDescription: '管理用于访问 Xinference API 的密钥。',
    createKey: '创建 API Key',
    keyCreated: 'API Key 已创建',
    saveKeyWarning: '请立即复制并保存您的 API Key，它不会再次显示。',
    name: '名称',
    namePlaceholder: '例如：my-app-key',
    nameRequired: '名称不能为空',
    description: '描述',
    descriptionPlaceholder: '可选描述',
    key: '密钥',
    createdAt: '创建时间',
    expiresAt: '过期时间',
    expiresAtHint: '留空表示永不过期。',
    status: '状态',
    enabled: '启用',
    active: '活跃',
    disabled: '已禁用',
    expired: '已过期',
    revealKey: '显示密钥',
    hideKey: '隐藏密钥',
    noKeys: '暂无 API Key，创建一个开始使用吧。',
    loading: '加载中...',
    create: '创建',
    creating: '创建中...',
    deleteTitle: '删除 API Key',
    deleteDescription: '确定要删除此 API Key 吗？此操作不可撤销。',
    updateSuccess: 'API Key 更新成功！',
    saving: '保存中...',
    owner: '所属用户',
    ownerPlaceholder: '留空则归属当前用户',
    ownerHint: '留空则归属当前用户。',
    permissionType: '权限类型',
    permissionAll: '所有模型',
    permissionByType: '按模型类型',
    permissionById: '按模型 ID',
    permissionMixed: '按类型 + 按实例（混合）',
    modelTypes: '模型类型',
    modelTypesPlaceholder: '选择模型类型',
    modelIds: '模型 ID',
    modelIdsPlaceholder: '选择模型 ID',
    modelsLoading: '模型列表加载中...',
    usersLoading: '用户列表加载中...',
    modelPermissions: '模型权限',
    bannedCount: '封禁数',
    bannedList: '封禁列表',
    noBanned: '暂无封禁记录',
    view: '查看',
  },
  securitySettings: {
    pageDescription: '配置失败请求限流策略，并处理当前被封禁的 IP 与 API Key。',
    rateLimitConfig: '限流策略',
    rateLimitDesc: '分别设置 IP 层和 API Key 层的失败阈值、统计窗口和封禁时长。',
    ipLayer: 'IP 层',
    ipLayerDesc: '按客户端 IP 统计失败请求。',
    keyLayer: 'API Key 层',
    keyLayerDesc: '按 IP 与 API Key 组合统计失败请求。',
    max_failures: '最大失败次数',
    window_seconds: '统计窗口（秒）',
    ban_seconds: '封禁时长（秒）',
    notConfigured: '未配置',
    failuresAllowed: '失败阈值',
    currentBlocks: '当前封禁',
    bannedIps: '封禁 IP',
    bannedIpsDesc: '超过 IP 层阈值后，被暂时阻止访问的客户端地址。',
    bannedKeys: '封禁 API Key',
    bannedKeysDesc: '超过 API Key 层阈值后，被暂时阻止的 IP 与 API Key 组合。',
    noBannedIps: '当前没有封禁 IP。',
    noBannedKeys: '当前没有封禁 API Key。',
    ip: 'IP',
    keyId: 'Key ID',
    remaining: '剩余时间',
    refresh: '刷新',
    saveConfig: '保存策略',
    saveSuccess: '安全策略已更新。',
    unban: '解除封禁',
    unbanAll: '全部解除',
    unbanSuccess: '封禁已解除。',
    clearTitle: '解除全部封禁',
    clearIpsDescription: '确定要解除所有 IP 封禁吗？这些客户端将立即恢复访问。',
    clearKeysDescription: '确定要解除所有 API Key 封禁吗？这些组合将立即恢复访问。',
    seconds: '{{count}} 秒',
    minutes: '{{count}} 分钟',
    hours: '{{count}} 小时',
  },
  auditCenter: {
    pageDescription: '查询 API 访问审计记录，追踪用户、API Key、模型调用与异常访问。',
    totalEvents: '审计事件',
    successEvents: '成功事件',
    riskEvents: '异常事件',
    apiKeyEvents: 'API Key 事件',
    matchingRecords: '匹配记录',
    currentPage: '当前页',
    filters: '筛选条件',
    resetFilters: '重置筛选',
    refresh: '刷新',
    loading: '加载中...',
    noRecords: '暂无审计记录。',
    totalHits: '{{count}} 条记录',
    prevPage: '上一页',
    nextPage: '下一页',
    detailTitle: '审计详情',
    rawJson: '原始 JSON',
    copyJson: '复制 JSON',
    time: '时间',
    category: '分类',
    identity: '身份',
    endpoint: '接口',
    apiKeyNameColumn: 'API Key 名称',
    model: '模型',
    modelIdColumn: '模型 ID',
    status: '状态',
    latency: '耗时',
    latencyMs: '{{value}} ms',
    user: '用户',
    userPlaceholder: '用户名',
    apiKeyName: 'API Key',
    apiKeyNamePlaceholder: 'Key 名称',
    modelId: '模型 ID',
    modelIdPlaceholder: '模型 UID',
    modelName: '模型名称',
    modelNamePlaceholder: '模型名称',
    modelType: '模型类型',
    clientIp: '客户端 IP',
    clientIpPlaceholder: 'IP 地址',
    authType: '认证方式',
    allStatuses: '全部状态',
    allCategories: '全部分类',
    allAuthTypes: '全部认证方式',
    allModelTypes: '全部模型类型',
    categoryOptions: {
      inference: '推理',
      admin: '管理',
      auth: '认证',
      unknown: '未知',
    },
    authTypeOptions: {
      api_key: 'API Key',
      jwt: 'JWT',
      none: '无认证',
    },
    statusOptions: {
      success: '成功',
      error: '错误',
      denied: '拒绝',
      login_failed: '登录失败',
      model_not_found: '模型不存在',
      ip_banned: 'IP 已封禁',
      key_banned: 'Key 已封禁',
      key_expired: 'Key 已过期',
      key_disabled: 'Key 已禁用',
      invalid_key: 'Key 无效',
      invalid_token: 'Token 无效',
      insufficient_scope: '权限不足',
      user_disabled: '用户禁用',
      no_credentials: '无凭证',
      unknown: '未知',
    },
    modelTypeOptions: {
      LLM: '语言模型',
      embedding: '嵌入模型',
      rerank: '重排序模型',
      image: '图像模型',
      video: '视频模型',
      audio: '音频模型',
    },
  },
  common: {
    accessDenied: '访问被拒绝',
    accessDeniedDescription: '您没有访问此页面所需的权限 ({{scope}})。',
    valueEmpty: '不能为空',
    patternError: '格式不正确，请检查',
    loginSuccess: '登录成功',
    loginOut: '退出登录',
    loginOutSuccess: '退出成功',
    copySuccess: '复制成功!',
    deleteSuccess: '删除成功!',
    lastUpdateTime: '最后更新时间',
    noOptions: '暂无数据',
    goBack: '返回',
    add: '添加',
    delete: '删除',
    edit: '编辑',
    modify: '修改',
    from: '开始',
    to: '结束',
    clear: '清除',
    today: '今天',
    weekDays: {
      sun: '日',
      mon: '一',
      tue: '二',
      wed: '三',
      thu: '四',
      fri: '五',
      sat: '六',
    },
    cancel: '取消',
    confirm: '确定',
    update: '更新',
    deploy: '部署',
    stop: '停止',
    packUp: '收起',
    unfold: '展开',
    operation: '操作',
    notice: '提示',
    itemsCount: '{{count}} 项',
    autoCompleteOptionsTips: '以下为常用参数，也可以输入自定义参数。',
  },
} as const;
export default zh;
