const zhHans = {
  sidebar: {
    home: '首页',
    extensions: '扩展',
    installedPlugins: '已安装插件',
    pluginMarket: '插件市场',
    mcpServers: 'MCP 服务器',
    quickStart: '快速开始向导',
  },
  common: {
    login: '登录',
    logout: '退出登录',
    accountOptions: '系统设置',
    account: '账户',
    integration: '连接',
    email: '邮箱',
    password: '密码',
    welcome: '欢迎回到 LangBot 👋',
    continueToLogin: '登录以继续',
    loginSuccess: '登录成功',
    loginFailed: '登录失败，请检查邮箱和密码是否正确',
    loginLoadError: '无法连接到服务器',
    loginLoadErrorDesc: '无法连接到 LangBot 后端服务，请确认服务已启动后重试。',
    retry: '重试',
    enterEmail: '输入邮箱地址',
    enterPassword: '输入密码',
    invalidEmail: '请输入有效的邮箱地址',
    emptyPassword: '请输入密码',
    language: '语言',
    helpDocs: '帮助文档',
    featureRequest: '需求建议',
    starOnGitHub: '在 GitHub 上 Star',
    create: '创建',
    edit: '编辑',
    delete: '删除',
    add: '添加',
    select: '请选择',
    cancel: '取消',
    submit: '提交',
    next: '下一步',
    back: '返回',
    refresh: '刷新',
    error: '错误',
    success: '成功',
    save: '保存',
    saving: '保存中...',
    confirm: '确认',
    confirmDelete: '确认删除',
    deleteConfirmation: '你确定要删除这个吗？',
    selectOption: '选择一个选项',
    selectPreset: '选择预设',
    required: '必填',
    enable: '是否启用',
    name: '名称',
    description: '描述',
    icon: '图标',
    close: '关闭',
    deleteSuccess: '删除成功',
    deleteError: '删除失败：',
    addRound: '添加回合',
    copy: '复制',
    undo: '撤销',
    redo: '重做',
    copySuccess: '复制成功',
    copyFailed: '复制失败',
    test: '测试',
    forgotPassword: '忘记密码？',
    agreementNotice: '继续即表示您同意我们的',
    privacyPolicy: '隐私政策',
    and: '和',
    dataCollectionPolicy: '数据收集政策',
    dataCollectionPolicyUrl: 'https://link.langbot.app/zh/docs/data-policy',
    loading: '加载中...',
    fieldRequired: '此字段为必填项',
    or: '或',
    loginWithSpace: '通过 Space 登录',
    spaceLoginRecommended: '推荐：使用官方提供的稳定模型 API 和云服务',
    loginLocal: '使用本地账号登录',
    loginWithPassword: '通过密码登录',
    spaceLoginTitle: '通过 Space 登录',
    details: '详情',
    spaceLoginDescription: '扫描二维码或访问下方链接进行授权',
    spaceLoginUserCode: '您的验证码',
    spaceLoginExpires: '验证码将在 {{seconds}} 秒后过期',
    spaceLoginWaiting: '等待授权中...',
    spaceLoginSuccess: '授权成功',
    spaceLoginFailed: 'Space 登录失败',
    spaceLoginExpired: '验证码已过期，请重试',
    spaceLoginCancel: '取消',
    spaceLoginVisitLink: '访问链接',
    spaceLoginProcessing: '正在通过 Space 登录',
    spaceLoginProcessingDescription: '请稍候，正在完成登录...',
    spaceLoginSuccessDescription: '正在跳转到 LangBot...',
    spaceLoginError: '登录失败',
    spaceLoginNoCode: '缺少授权码',
    backToLogin: '返回登录',
    backToHome: '返回首页',
    spaceAccountCannotChangePassword: 'Space 账户无法在此修改密码',
    theme: '主题',
    changePassword: '修改密码',
    currentPassword: '当前密码',
    newPassword: '新密码',
    confirmNewPassword: '确认新密码',
    enterCurrentPassword: '输入当前密码',
    enterNewPassword: '输入新密码',
    enterConfirmPassword: '确认新密码',
    currentPasswordRequired: '当前密码不能为空',
    newPasswordRequired: '新密码不能为空',
    confirmPasswordRequired: '确认密码不能为空',
    passwordsDoNotMatch: '两次输入的密码不一致',
    changePasswordSuccess: '密码修改成功',
    changePasswordFailed: '密码修改失败，请检查当前密码是否正确',
    apiIntegration: 'API 集成',
    apiKeys: 'API 密钥',
    manageApiIntegration: '管理 API 集成',
    manageApiKeys: '管理 API 密钥',
    createApiKey: '创建 API 密钥',
    apiKeyName: 'API 密钥名称',
    apiKeyDescription: 'API 密钥描述',
    apiKeyValue: 'API 密钥值',
    apiKeyCreated: 'API 密钥创建成功',
    apiKeyDeleted: 'API 密钥删除成功',
    apiKeyDeleteConfirm: '确定要删除此 API 密钥吗？',
    apiKeyNameRequired: 'API 密钥名称不能为空',
    copyApiKey: '复制 API 密钥',
    apiKeyCopied: 'API 密钥已复制到剪贴板',
    noApiKeys: '暂无 API 密钥',
    apiKeyHint: 'API 密钥允许外部系统访问 LangBot 的 Service API',
    webhooks: 'Webhooks',
    createWebhook: '创建 Webhook',
    webhookName: 'Webhook 名称',
    webhookUrl: 'Webhook URL',
    webhookDescription: 'Webhook 描述',
    webhookEnabled: '是否启用',
    webhookCreated: 'Webhook 创建成功',
    webhookDeleted: 'Webhook 删除成功',
    webhookDeleteConfirm: '确定要删除此 Webhook 吗？',
    webhookNameRequired: 'Webhook 名称不能为空',
    webhookUrlRequired: 'Webhook URL 不能为空',
    noWebhooks: '暂无 Webhook',
    webhookHint: 'Webhook 允许 LangBot 将个人消息和群消息事件推送到外部系统',
    actions: '操作',
    apiKeyCreatedMessage: '请复制此 API 密钥，若按钮无效，请手动复制。',
    none: '无',
    more: '更多 ({{count}})',
    less: '收起',
    noItems: '暂无内容',
    data: '数据',
    result: '结果',
    body: '请求体',
    headers: '请求头',
    query: '查询参数',
    method: '请求方法',
  },
  notFound: {
    title: '页面不存在',
    description:
      '您要查找的页面似乎不存在。请检查您输入的 URL 是否正确，或者返回首页。',
    back: '上一级',
    home: '返回主页',
    help: '查看帮助文档',
  },
  models: {
    title: '模型配置',
    description: '配置和管理可在流水线中使用的模型',
    createModel: '创建对话模型',
    editModel: '编辑模型',
    getModelListError: '获取模型列表失败：',
    modelName: '模型名称',
    modelProvider: '模型提供商',
    modelBaseURL: '基础 URL',
    modelAbilities: '模型能力',
    saveSuccess: '保存成功',
    saveError: '保存失败：',
    createSuccess: '创建成功',
    createError: '创建失败：',
    deleteSuccess: '删除成功',
    deleteError: '删除失败：',
    deleteConfirmation: '你确定要删除这个模型吗？',
    modelNameRequired: '模型名称不能为空',
    modelProviderRequired: '模型供应商不能为空',
    requestURLRequired: '请求URL不能为空',
    apiKeyRequired: 'API Key不能为空',
    keyNameRequired: '键名不能为空',
    mustBeValidNumber: '必须是有效的数字',
    mustBeTrueOrFalse: '必须是 true 或 false',
    requestURL: '请求URL',
    scanURL: '扫描模型地址',
    scanURLPlaceholder: '留空则默认使用请求URL + /models',
    scanURLDescription:
      '当模型扫描接口与模型调用接口不是同一个地址时，在这里填写实际的模型列表接口。',
    apiKey: 'API Key',
    abilities: '能力',
    selectModelAbilities: '选择模型能力',
    visionAbility: '视觉能力',
    functionCallAbility: '函数调用',
    extraParameters: '额外参数',
    addParameter: '添加参数',
    keyName: '键名',
    type: '类型',
    value: '值',
    string: '字符串',
    number: '数字',
    boolean: '布尔值',
    selectModelProvider: '选择模型供应商',
    modelProviderDescription: '请填写供应商向您提供的模型名称',
    modelManufacturer: '模型厂商',
    aggregationPlatform: '中转平台',
    selfDeployed: '自部署',
    builtin: '内置',
    selectModel: '请选择模型',
    testSuccess: '测试成功',
    testError: '测试失败，请检查模型配置',
    llmModels: '对话模型',
    localProvider: '本地',
    localProviderDescription: '在本地配置和管理的模型',
    spaceProviderDescription: '从您的 Space 账户同步的模型',
    spaceDisabledForLocalAccount: '使用 Space 登录以使用云端模型',
    syncModels: '同步',
    syncSuccess: '同步完成：创建 {{created}} 个，更新 {{updated}} 个',
    syncError: '同步失败：',
    spaceModelReadOnly: 'Space 模型为只读',
    noSpaceModels: '暂无 Space 模型。点击同步按钮从 Space 获取模型。',
    noLocalModels: '暂无本地模型。点击创建按钮添加模型。',
    providerCount: '共 {{count}} 个自定义供应商',
    // 供应商结构新增键
    addModel: '添加模型',
    manualAdd: '手动添加',
    scanAdd: '扫描添加',
    scanModels: '扫描模型',
    scanModelsHint: '从当前供应商接口读取可用模型，然后勾选要添加的模型。',
    scannedModels: '扫描结果',
    scanDebug: '调试信息',
    searchScannedModels: '搜索扫描结果',
    noScannedModels: '还没有扫描结果，点击上方按钮开始扫描。',
    noScannedModelsMatch: '没有匹配的模型',
    addSelectedModels: '添加所选模型',
    addSelectedModelsSuccess: '已添加 {{count}} 个模型',
    selectAll: '全选模型',
    alreadyAdded: '已添加',
    addLLMModel: '添加对话模型',
    addEmbeddingModel: '添加嵌入模型',
    provider: '供应商',
    existingProvider: '已有供应商',
    newProvider: '新建供应商',
    selectProvider: '选择供应商',
    requester: '供应商类型',
    selectRequester: '选择供应商类型',
    langbotModelsDescription: 'LangBot Space 提供的云端模型',
    credits: '积分',
    loginWithSpace: '通过 Space 登录',
    loginToUseModels: '通过 Space 登录以使用云端模型',
    noModels: '暂无模型',
    langbotModels: 'LangBot 模型',
    spaceTrialTooltip:
      '免费试用积分已就绪！通过 Space 登录即可零配置使用云端模型。',
    unlockModels: '登录以使用',
    editProvider: '编辑供应商',
    addProvider: '添加供应商',
    addProviderHint: '添加自定义供应商以使用其他来源的模型',
    addProviderHintSimple: '添加自定义供应商以使用模型',
    noProviders: '暂无自定义供应商',
    providerName: '供应商名称',
    providerNameRequired: '供应商名称不能为空',
    requesterRequired: '供应商类型不能为空',
    providerSaved: '供应商已保存',
    providerCreated: '供应商已创建',
    providerSaveError: '保存供应商失败：',
    providerDeleted: '供应商已删除',
    providerDeleteError: '删除供应商失败：',
    deleteProviderConfirmation: '你确定要删除这个供应商吗？',
    loadError: '加载数据失败',
    chat: '对话',
    embedding: '嵌入',
    rerank: '重排序',
    rerankUrlTooltip:
      '重排序接口的完整 URL 覆盖（如 https://dashscope.aliyuncs.com/compatible-api/v1/reranks）',
    rerankPathTooltip: '添加到基础 URL 后的重排序路径（默认：rerank）',
    modelsCount: '{{count}} 个模型',
    expandModels: '展开',
    collapseModels: '收起',
    fallback: {
      primary: '主模型',
      fallbackList: '备用模型',
      addFallback: '添加备用模型',
    },
  },
  bots: {
    title: '机器人',
    description: '创建和管理机器人，这是 LangBot 与各个平台连接的入口',
    createBot: '创建机器人',
    selectFromSidebar: '从侧边栏选择一个机器人',
    editBot: '编辑机器人',
    getBotListError: '获取机器人列表失败：',
    botName: '机器人名称',
    botDescription: '机器人描述',
    botNameRequired: '机器人名称不能为空',
    botDescriptionRequired: '机器人描述不能为空',
    adapterRequired: '适配器不能为空',
    defaultDescription: '一个机器人',
    getBotConfigError: '获取机器人配置失败：',
    saveSuccess: '保存成功',
    saveError: '保存失败：',
    createSuccess: '创建成功 请启用或修改绑定流水线',
    createError: '创建失败：',
    deleteSuccess: '删除成功',
    deleteError: '删除失败：',
    deleteConfirmation: '你确定要删除这个机器人吗？',
    platformAdapter: '平台/适配器选择',
    selectAdapter: '选择适配器',
    adapterConfig: '适配器配置',
    viewAdapterDocs: '查看文档',
    bindPipeline: '绑定流水线',
    selectPipeline: '选择流水线',
    selectBot: '请选择机器人',
    botLogTitle: '机器人日志',
    enableAutoRefresh: '开启自动刷新',
    session: '会话',
    yesterday: '昨天',
    earlier: '更久之前',
    dateFormat: '{{month}}月{{day}}日',
    setBotEnableError: '设置机器人启用状态失败',
    log: '日志',
    configuration: '配置',
    logs: '日志',
    basicInfo: '基础信息',
    basicInfoDescription: '设置机器人名称和描述',
    routingConnection: '路由与连接',
    routingConnectionDescription: '绑定处理此机器人消息的流水线',
    routingRules: '条件路由规则',
    routingRulesDescription:
      '按顺序匹配，命中第一条规则后路由到对应流水线；都不匹配时使用上方默认流水线',
    addRoutingRule: '添加规则',
    ruleTypeLauncherType: '会话类型',
    ruleTypeLauncherId: '会话 ID',
    ruleTypeMessageContent: '消息内容',
    operatorEq: '等于',
    operatorNeq: '不等于',
    operatorContains: '包含',
    operatorNotContains: '不包含',
    operatorStartsWith: '前缀匹配',
    operatorRegex: '正则匹配',
    operatorHas: '包含',
    operatorNotHas: '不包含',
    ruleTypeMessageHasElement: '消息元素类型',
    ruleValueElementPlaceholder: '选择元素类型',
    elementImage: '图片',
    elementVoice: '语音',
    elementFile: '文件',
    elementForward: '转发',
    elementFace: '表情',
    elementAt: '@某人',
    elementAtAll: '@全体',
    elementQuote: '引用',
    ruleValuePlaceholder: '匹配值',
    ruleValueLauncherIdPlaceholder: '群号或用户 ID',
    ruleValueMessagePlaceholder: '消息内容',
    ruleValuePrefixPlaceholder: '如: !draw',
    ruleValueRegexpPlaceholder: '如: ^/help',
    pipelineDiscard: '丢弃消息',
    sessionTypePerson: '私聊',
    sessionTypeGroup: '群聊',
    // Unified binding (replacing routing rules)
    bindTarget: '绑定目标',
    bindTargetDescription: '选择处理此机器人消息的 Pipeline 或 Workflow',
    bindingType: '绑定类型',
    selectBinding: '请选择绑定目标',
    selectWorkflow: '选择工作流',
    noPipelinesFound: '暂无可用的流水线',
    noWorkflowsFound: '暂无可用的工作流',
    pipelineBindingHelp: '流水线是传统的消息处理方式，通过预定义的阶段处理消息。',
    workflowBindingHelp: '工作流提供可视化的节点编排，支持更灵活的消息处理逻辑。',
    adapterConfigDescription: '配置所选平台适配器',
    dangerZone: '危险区域',
    dangerZoneDescription: '不可逆的操作',
    deleteBotAction: '删除此机器人',
    deleteBotHint: '删除后，所有关联配置将被永久移除，且无法恢复。',
    webhookUrl: 'Webhook 回调地址',
    webhookUrlCopied: 'Webhook 地址已复制',
    webhookUrlHint:
      '点击输入框自动全选，然后按 Ctrl+C (Mac: Cmd+C) 复制，或点击右侧按钮',
    webhookUrlHintEither: '以上两个地址任选其一填入平台配置即可',
    webhookSaasHint:
      'Webhook 需要公网可访问的域名。LangBot Cloud 为你的机器人提供开箱即用的公网地址。',
    webhookSaasLink: '了解 LangBot Cloud',
    adapterCategory: {
      popular: '热门',
      china: '中国',
      global: '全球',
      protocol: '协议',
    },
    logLevel: '日志级别',
    allLevels: '全部级别',
    selectLevel: '选择级别',
    levelsSelected: '个级别已选',
    viewDetailedLogs: '查看详细日志',
    viewDetails: '详情',
    collapse: '收起',
    imagesAttached: '张图片',
    noLogs: '暂无日志',
    sessionMonitor: {
      title: '会话监控',
      sessions: '会话列表',
      noSessions: '暂无会话',
      selectSession: '选择一个会话查看消息',
      noMessages: '该会话暂无消息',
      messages: '条消息',
      messageCount: '{{count}} 条消息',
      loading: '加载中...',
      loadingSessions: '加载会话中...',
      loadingMessages: '加载消息中...',
      user: '用户',
      variables: '变量',
      platform: '平台',
      lastActive: '最近活跃',
      refresh: '刷新',
      active: '活跃',
      inactive: '不活跃',
      discarded: '已丢弃',
      userMessage: '用户',
      botMessage: '助手',
    },
  },
  plugins: {
    title: '插件扩展',
    description: '安装和配置用于扩展功能的插件，请在流水线配置中选用',
    createPlugin: '创建插件',
    editPlugin: '编辑插件',
    installed: '已安装',
    marketplace: '插件市场',
    arrange: '编排',
    install: '安装',
    installPlugin: '安装插件',
    onlySupportGithub: '目前仅支持从 GitHub 安装',
    enterGithubLink: '请输入插件的Github链接',
    installing: '正在安装插件...',
    installSuccess: '插件安装成功',
    installFailed: '插件安装失败：',
    searchPlugin: '搜索插件',
    sortBy: '排序方式',
    mostStars: '最多星标',
    recentlyAdded: '最近新增',
    recentlyUpdated: '最近更新',
    noMatchingPlugins: '没有找到匹配的插件',
    loading: '加载中...',
    getPluginListError: '获取插件列表失败:',
    pluginConfig: '插件配置',
    noPluginInstalled: '暂未安装任何插件',
    pluginSort: '插件排序',
    pluginSortDescription:
      '插件顺序会影响同一事件内的处理顺序，请拖动插件卡片排序',
    pluginSortSuccess: '插件排序成功',
    pluginSortError: '插件排序失败：',
    pluginNoConfig: '插件没有配置项。',
    systemDisabled: '插件系统未启用',
    systemDisabledDesc: '尚未启用插件系统，请根据文档修改配置',
    connectionError: '插件系统连接异常',
    connectionErrorDesc: '请检查插件系统配置或联系管理员',
    errorDetails: '错误详情',
    loadingStatus: '正在检查插件系统状态...',
    failedToGetStatus: '获取插件系统状态失败',
    pluginSystemNotReady: '插件系统未就绪，无法执行此操作',
    debugInfo: '调试信息',
    debugInfoTitle: '插件调试信息',
    debugUrl: '调试地址',
    debugKey: '调试密钥',
    noDebugKey: '(未设置)',
    debugKeyDisabled: '未设置调试密钥，插件调试无需认证',
    failedToGetDebugInfo: '获取调试信息失败',
    copiedToClipboard: '已复制到剪贴板',
    deleting: '删除中...',
    deletePlugin: '删除插件',
    cancel: '取消',
    saveConfig: '保存配置',
    saving: '保存中...',
    confirmDeletePlugin: '你确定要删除插件（{{author}}/{{name}}）吗？',
    deleteDataCheckbox: '同时删除插件配置和持久化存储',
    confirmDelete: '确认删除',
    deleteError: '删除失败：',
    close: '关闭',
    deleteConfirm: '删除确认',
    deleteSuccess: '删除成功',
    modifyFailed: '修改失败：',
    componentName: {
      Tool: '工具',
      EventListener: '事件监听器',
      Command: '命令',
      KnowledgeEngine: '知识引擎',
      Parser: '解析器',
    },
    uploadLocal: '本地上传',
    debugging: '调试中',
    uploadLocalPlugin: '上传本地插件',
    dragToUpload: '拖拽文件到此处上传',
    unsupportedFileType: '不支持的文件类型，仅支持 .lbpkg 和 .zip 文件',
    uploadingPlugin: '正在上传插件...',
    uploadSuccess: '上传成功',
    uploadFailed: '上传失败',
    selectFileToUpload: '选择要上传的插件文件',
    askConfirm: '确定要安装插件 "{{name}}" ({{version}}) 吗？',
    fromGithub: '来自 GitHub',
    fromLocal: '本地安装',
    fromMarketplace: '来自市场',
    componentsList: '组件: ',
    noComponents: '无组件',
    delete: '删除插件',
    update: '更新插件',
    new: '新',
    updateConfirm: '更新确认',
    confirmUpdatePlugin: '你确定要更新插件（{{author}}/{{name}}）吗？',
    confirmUpdate: '确认更新',
    updating: '更新中...',
    updateSuccess: '插件更新成功',
    updateError: '更新失败：',
    saveConfigSuccessNormal: '保存配置成功',
    saveConfigError: '保存配置失败：',
    config: '配置',
    readme: '文档',
    viewSource: '查看来源',
    loadingReadme: '正在加载文档...',
    noReadme: '该插件没有提供 README 文档',
    fileUpload: {
      tooLarge: '文件大小超过 10MB 限制',
      success: '文件上传成功',
      failed: '文件上传失败',
      uploading: '上传中...',
      chooseFile: '选择文件',
      addFile: '添加文件',
    },
    installFromGithub: '来自 GitHub',
    enterRepoUrl: '请输入 GitHub 仓库地址',
    repoUrlPlaceholder: '例如: https://github.com/owner/repo',
    fetchingReleases: '正在获取 Release 列表...',
    selectRelease: '选择 Release',
    noReleasesFound: '未找到 Release',
    fetchReleasesError: '获取 Release 列表失败：',
    selectAsset: '选择要安装的文件',
    noAssetsFound: '该 Release 没有可用的 .lbpkg 文件',
    fetchAssetsError: '获取文件列表失败：',
    backToReleases: '返回 Release 列表',
    backToRepoUrl: '返回仓库地址',
    backToAssets: '返回文件选择',
    releaseTag: 'Tag: {{tag}}',
    releaseName: '名称: {{name}}',
    publishedAt: '发布于: {{date}}',
    prerelease: '预发布',
    assetSize: '大小: {{size}}',
    confirmInstall: '确认安装',
    installFromGithubDesc: '从 GitHub Release 安装插件',
    goToMarketplace: '前往插件市场',
    installProgress: {
      title: '正在安装 {{name}}',
      titleGeneric: '插件安装',
      overallProgress: '总体进度',
      downloading: '下载插件',
      installingDeps: '安装依赖',
      initializing: '初始化配置',
      launching: '启动插件',
      completed: '已完成',
      failed: '安装失败',
      downloadSize: '包大小: {{size}}',
      depsInfo: '共 {{count}} 个依赖需要安装',
      depsProgress: '已安装 {{installed}}/{{total}} · 剩余 {{remaining}} 个',
      installComplete: '插件安装成功',
      dismiss: '关闭',
      background: '后台运行',
      taskQueue: '安装任务',
      clearCompleted: '清除已完成',
      noTasks: '暂无安装任务',
    },
  },
  market: {
    searchPlaceholder: '搜索插件...',
    searchResults: '搜索到 {{count}} 个插件',
    totalPlugins: '共 {{count}} 个插件',
    noPlugins: '暂无插件',
    noResults: '未找到相关插件',
    loadingMore: '加载更多...',
    loading: '加载中...',
    allLoaded: '已显示全部插件',
    install: '安装',
    installConfirm: '确定要安装插件 "{{name}}" ({{version}}) 吗？',
    downloadComplete: '插件 "{{name}}" 下载完成',
    installFailed: '安装失败，请稍后重试',
    loadFailed: '获取插件列表失败，请稍后重试',
    noDescription: '暂无描述',
    notFound: '插件信息未找到',
    sortBy: '排序方式',
    sort: {
      recentlyAdded: '最近新增',
      recentlyUpdated: '最近更新',
      mostDownloads: '最多下载',
      leastDownloads: '最少下载',
    },
    downloads: '次下载',
    download: '下载',
    repository: '代码仓库',
    downloadFailed: '下载失败',
    noReadme: '该插件没有提供 README 文档',
    description: '描述',
    tagLabel: '标签',
    submissionTitle: '您有插件提交正在审核中： {{name}}',
    submissionPending: '您的插件提交正在审核中： {{name}}',
    submissionApproved: '您的插件提交已通过审核： {{name}}',
    submissionRejected: '您的插件提交已被拒绝： {{name}}',
    clickToRevoke: '撤回',
    revokeSuccess: '撤回成功',
    revokeFailed: '撤回失败',
    submissionDetails: '插件提交详情',
    markAsRead: '已读',
    markAsReadSuccess: '已标记为已读',
    markAsReadFailed: '标记为已读失败',
    filterByComponent: '组件',
    allComponents: '全部组件',
    requestPlugin: '请求插件',
    tags: {
      filterByTags: '按标签筛选',
      selected: '已选',
      selectTags: '选择标签',
      clearAll: '清空',
      noTags: '暂无标签',
    },
    viewDetails: '查看详情',
    deprecated: '已弃用',
    deprecatedTooltip: '请安装对应「知识引擎」插件',
  },
  mcp: {
    title: 'MCP',
    createServer: '添加 MCP 服务器',
    editServer: '修改 MCP 服务器',
    deleteServer: '删除 MCP 服务器',
    confirmDeleteServer: '你确定要删除此 MCP 服务器吗？',
    confirmDeleteTitle: '删除 MCP 服务器',
    getServerListError: '获取 MCP 服务器列表失败：',
    serverName: '服务器名称',
    serverMode: '连接模式',
    selectMode: '选择模式',
    stdio: 'Stdio模式',
    sse: 'SSE模式',
    http: 'HTTP模式',
    noServerInstalled: '暂未配置任何 MCP 服务器',
    serverNameRequired: '服务器名称不能为空',
    commandRequired: '命令不能为空',
    urlRequired: 'URL 不能为空',
    timeoutMustBePositive: '超时时间必须是正数',
    command: '命令',
    args: '参数',
    env: '环境变量',
    url: 'URL地址',
    headers: '请求头',
    timeout: '超时时间',
    addArgument: '添加参数',
    addEnvVar: '添加环境变量',
    addHeader: '添加请求头',
    keyName: '键名',
    value: '值',
    testing: '测试中...',
    connecting: '连接中...',
    testSuccess: '测试成功',
    testFailed: '测试失败：',
    testError: '刷新出错',
    refreshSuccess: '刷新成功',
    refreshFailed: '刷新失败：',
    connectionSuccess: '连接成功',
    connectionFailed: '连接失败，请检查URL',
    connectionFailedStatus: '连接失败',
    toolsFound: '个工具',
    unknownError: '未知错误',
    noToolsFound: '未找到任何工具',
    parseResultFailed: '解析测试结果失败',
    noResultReturned: '测试未返回结果',
    getTaskFailed: '获取任务状态失败',
    noTaskId: '未获取到任务ID',
    deleteSuccess: '删除成功',
    deleteFailed: '删除失败：',
    deleteError: '删除失败：',
    saveSuccess: '保存成功',
    saveError: '保存失败：',
    createSuccess: '创建成功',
    createFailed: '创建失败：',
    createError: '创建失败：',
    loadFailed: '加载失败',
    modifyFailed: '修改失败：',
    toolCount: '工具：{{count}}',
    statusConnected: '已打开',
    statusDisconnected: '未打开',
    statusError: '连接错误',
    statusDisabled: '已禁用',
    loading: '加载中...',
    starCount: '星标：{{count}}',
    install: '安装',
    installFromGithub: '从Github安装MCP服务器',
    add: '添加',
    name: '名称',
    nameRequired: '名称不能为空',
    sseTimeout: 'SSE超时时间',
    sseTimeoutDescription: '用于建立SSE连接的超时时间',
    extraParametersDescription: '额外参数，用于配置MCP服务器的特定行为',
    timeoutMustBeNumber: '超时时间必须是数字',
    timeoutNonNegative: '超时时间不能为负数',
    sseTimeoutMustBeNumber: 'SSE超时时间必须是数字',
    sseTimeoutNonNegative: 'SSE超时时间不能为负数',
    updateSuccess: '更新成功',
    updateFailed: '更新失败：',
    selectFromSidebar: '从侧边栏选择一个 MCP 服务器',
    dangerZone: '危险区域',
    dangerZoneDescription: '此 MCP 服务器的不可逆操作。',
    deleteMCPAction: '删除此 MCP 服务器',
    deleteMCPHint: '删除后，此 MCP 服务器配置将无法恢复。',
  },
  pipelines: {
    title: '流水线',
    description: '流水线定义了对消息事件的处理流程，用于绑定到机器人',
    createPipeline: '创建流水线',
    selectFromSidebar: '从侧边栏选择一个流水线',
    editPipeline: '编辑流水线',
    chat: '对话',
    configuration: '配置',
    debugChat: '对话调试',
    getPipelineListError: '获取流水线列表失败：',
    daysAgo: '天前',
    today: '今天',
    updateTime: '更新于',
    defaultBadge: '默认',
    sortBy: '排序方式',
    newestCreated: '最新创建',
    earliestCreated: '最早创建',
    recentlyEdited: '最近编辑',
    earliestEdited: '最早编辑',
    basicInfo: '基础信息',
    basicInfoDescription: '设置流水线名称、图标和描述',
    aiCapabilities: 'AI 能力',
    triggerConditions: '触发条件',
    safetyControls: '安全控制',
    outputProcessing: '输出处理',
    nameRequired: '名称不能为空',
    descriptionRequired: '描述不能为空',
    createSuccess: '创建成功 请编辑流水线详细参数',
    createError: '创建失败：',
    saveSuccess: '保存成功',
    saveError: '保存失败：',
    copySuffix: ' Copy',
    deleteConfirmation:
      '你确定要删除这个流水线吗？已绑定此流水线的机器人将无法使用。',
    defaultPipelineCannotDelete: '默认流水线不可删除',
    deleteSuccess: '删除成功',
    deleteError: '删除失败：',
    copyConfirmTitle: '确认复制',
    copyConfirmation:
      '确定要复制这个流水线吗？复制将创建一个包含完整配置的新流水线。',
    unsavedChanges: '有未保存的更改',
    dangerZone: '危险区域',
    dangerZoneDescription: '不可逆的操作',
    deletePipelineAction: '删除此流水线',
    deletePipelineHint: '删除后，绑定此流水线的机器人将无法正常工作。',
    copyPipelineAction: '复制此流水线',
    copyPipelineHint: '创建一条新的流水线，并复制所有配置。',
    extensions: {
      title: '扩展集成',
      loadError: '加载插件列表失败',
      saveSuccess: '保存成功',
      saveError: '保存失败',
      noPluginsAvailable: '暂无可用插件',
      disabled: '已禁用',
      noPluginsSelected: '未选择任何插件',
      addPlugin: '添加插件',
      selectPlugins: '选择插件',
      pluginsTitle: '插件',
      mcpServersTitle: 'MCP 服务器',
      noMCPServersSelected: '未选择任何 MCP 服务器',
      addMCPServer: '添加 MCP 服务器',
      selectMCPServers: '选择 MCP 服务器',
      toolCount: '{{count}} 个工具',
      noPluginsInstalled: '无已安装的插件',
      noMCPServersConfigured: '无已配置的 MCP 服务器',
      selectAll: '全选',
      enableAllPlugins: '启用所有插件',
      enableAllMCPServers: '启用所有 MCP 服务器',
      allPluginsEnabled: '已启用所有插件',
      allMCPServersEnabled: '已启用所有 MCP 服务器',
    },
    debugDialog: {
      title: '流水线对话',
      selectPipeline: '选择流水线',
      sessionType: '会话类型',
      privateChat: '私聊',
      groupChat: '群聊',
      send: '发送',
      reset: '重置对话',
      inputPlaceholder: '发送 {{type}} 消息...',
      noMessages: '暂无消息',
      userMessage: '用户',
      botMessage: '机器人',
      sendFailed: '发送失败',
      resetSuccess: '对话已重置',
      resetFailed: '重置失败',
      loadMessagesFailed: '加载消息失败',
      loadPipelinesFailed: '加载流水线失败',
      atTips: '提及机器人',
      streaming: '流式传输',
      streamOutput: '流式',
      connected: 'WebSocket已连接',
      disconnected: 'WebSocket未连接',
      connectionError: 'WebSocket连接错误',
      connectionFailed: 'WebSocket连接失败',
      notConnected: 'WebSocket未连接，请稍后重试',
      imageUploadFailed: '图片上传失败',
      reply: '回复',
      replyTo: '回复给',
      showMarkdown: '渲染',
      showRaw: '原文',
      allMembers: '全体成员',
      file: '文件',
      voice: '语音',
      uploadImage: '上传图片',
      uploading: '上传中...',
    },
    monitoring: {
      title: '监控日志',
      description: '查看此流水线的运行记录和错误信息（最近24小时）',
      detailedLogs: '详细日志',
    },
  },
  knowledge: {
    title: '知识库',
    createKnowledgeBase: '创建知识库',
    selectFromSidebar: '从侧边栏选择一个知识库',
    editKnowledgeBase: '编辑知识库',
    selectKnowledgeBase: '选择知识库',
    selectKnowledgeBases: '选择知识库',
    addKnowledgeBase: '添加知识库',
    noKnowledgeBaseSelected: '未选择知识库',
    empty: '无',
    editDocument: '文档',
    description: '配置可用于提升模型回复质量的知识库',
    metadata: '元数据',
    documents: '文档',
    kbNameRequired: '知识库名称不能为空',
    kbDescriptionRequired: '知识库描述不能为空',
    embeddingModelUUIDRequired: '嵌入模型不能为空',
    daysAgo: '天前',
    today: '今天',
    kbName: '知识库名称',
    kbDescription: '知识库描述',
    topK: '召回数量',
    topKRequired: '召回数量不能为空',
    topKMax: '召回数量最大值为 30',
    topKdescription: '召回相关文档块的数量，取值范围为 1-30',
    defaultDescription: '一个知识库',
    embeddingModelUUID: '嵌入模型',
    selectEmbeddingModel: '选择嵌入模型',
    embeddingModelDescription: '用于向量化文本，可在模型配置页面配置',
    updateTime: '更新于',
    cannotChangeEmbeddingModel: '知识库创建后不可修改嵌入模型',
    updateKnowledgeBaseSuccess: '知识库更新成功',
    updateKnowledgeBaseFailed: '知识库更新失败：',
    documentsTab: {
      name: '名称',
      status: '状态',
      noResults: '暂无文档',
      dragAndDrop: '拖拽文件到此处或点击上传',
      uploading: '上传中...',
      supportedFormats: '支持 PDF、Word、TXT、Markdown、HTML、ZIP 等文档格式',
      uploadSuccess: '文件上传成功！',
      uploadError: '文件上传失败：',
      uploadingFile: '上传文件中...',
      fileSizeExceeded: '文件大小超过 10MB 限制，请分割成较小的文件后上传',
      actions: '操作',
      delete: '删除文件',
      fileDeleteSuccess: '文件删除成功',
      fileDeleteFailed: '文件删除失败：',
      processing: '处理中',
      completed: '完成',
      failed: '失败',
      selectParser: '选择解析器',
      builtInParser: '由知识引擎提供',
      noParserAvailable:
        '没有解析器支持此文件类型，请安装支持该格式的解析器插件。',
      installParserHint: '前往插件市场安装解析器 →',
      confirmUpload: '上传',
      cancelUpload: '取消',
    },
    deleteKnowledgeBaseConfirmation:
      '你确定要删除这个知识库吗？此知识库下的所有文档将被删除。',
    retrieve: '检索测试',
    retrieveTest: '检索测试',
    query: '查询',
    queryPlaceholder: '输入查询内容...',
    distance: '距离',
    content: '内容',
    fileName: '文件名',
    noResults: '暂无结果',
    retrieveError: '检索失败：',
    unknownEngine: '未知引擎',
    knowledgeEngine: '知识引擎',
    knowledgeEngineRequired: '知识引擎不能为空',
    selectKnowledgeEngine: '选择知识引擎',
    builtInEngine: '内置引擎',
    cannotChangeKnowledgeEngine: '知识库创建后不可修改知识引擎',
    basicInfo: '基础信息',
    basicInfoDescription: '设置知识库名称、图标和描述',
    engineSettings: '引擎设置',
    engineSettingsDescription: '所选知识引擎的配置',
    engineSettingsReadonly: '编辑模式下不可修改',
    retrievalSettings: '检索设置',
    retrievalSettingsDescription: '配置从此知识库检索文档的方式',
    dangerZone: '危险区域',
    dangerZoneDescription: '不可逆的操作',
    deleteKbAction: '删除此知识库',
    deleteKbHint: '删除后，此知识库中的所有文档和数据将被永久移除。',
    noEnginesAvailable: '没有可用的知识库引擎',
    installEngineHint: '请先安装「知识引擎」插件',
    createKnowledgeBaseFailed: '知识库创建失败：',
    loadKnowledgeBaseFailed: '知识库加载失败：',
    deleteKnowledgeBaseFailed: '知识库删除失败：',
    getKnowledgeBaseListError: '获取知识库列表失败：',
    embeddingModel: '嵌入模型',
    embeddingModelRequired: '此引擎需要选择嵌入模型',
    addExternal: '添加外部知识库',
    createExternalSuccess: '外部知识库创建成功',
    updateExternalSuccess: '外部知识库更新成功',
    deleteExternalSuccess: '外部知识库删除成功',
    retriever: '检索器',
    selectRetriever: '选择一个检索器...',
    retrieverConfiguration: '检索器配置',
    retrieverInstallInfo: '您可以从',
    retrieverMarketLink: '此处安装知识检索器插件',
    migration: {
      title: '知识库迁移',
      description:
        '新版本已将知识库重构为插件化架构，并统一内置知识库和外部知识库为「知识引擎」插件，需要对旧知识库数据进行迁移。您的旧数据已自动备份在数据库中。',
      detected:
        '共检测到 {{total}} 个知识库需要迁移（{{internal}} 个内置知识库，{{external}} 个外部知识库）。',
      startWithInstall: '自动安装插件并迁移',
      startDataOnly: '仅迁移数据',
      dataOnlyHint:
        '「仅迁移数据」适合内网环境使用，请在迁移完成后自行安装对应插件',
      dismiss: '丢弃原数据',
      running: '正在迁移知识库，请稍候...',
      success: '知识库迁移完成',
      error: '知识库迁移失败：',
      dismissError: '操作失败',
      retry: '重试',
    },
  },
  register: {
    title: '初始化 LangBot 👋',
    description: '这是您首次启动 LangBot',
    adminAccountNote: '您在此处初始化使用的账号将作为管理员账号',
    register: '注册',
    initWithSpace: '通过 Space 初始化',
    spaceRecommended: '推荐：使用官方提供的稳定模型 API 和云服务',
    spaceInfoTip1: 'Space 提供统一的账户鉴权服务，不会上传您的任何敏感信息。',
    spaceInfoTip2:
      '使用 Space 账户登录可使用 LangBot Models 等云服务，您将会获得一定的免费模型调用额度帮助您快速起步。',
    spaceInfoTip3:
      '登录方式不会影响其他功能，您在任何情况下都可以配置使用其他来源的模型。',
    registerLocal: '注册本地账号',
    registerWithPassword: '通过邮箱密码组合注册',
    initSuccess: '初始化成功 请登录',
    initFailed: '初始化失败：',
  },
  resetPassword: {
    title: '重置密码 🔐',
    description: '输入恢复密钥和新的密码来重置您的账户密码',
    recoveryKey: '恢复密钥',
    recoveryKeyDescription:
      '存储在配置文件`data/config.yaml`的`system.recovery_key`中',
    newPassword: '新密码',
    enterRecoveryKey: '输入恢复密钥',
    enterNewPassword: '输入新密码',
    recoveryKeyRequired: '恢复密钥不能为空',
    newPasswordRequired: '新密码不能为空',
    resetPassword: '重置密码',
    resetting: '重置中...',
    resetSuccess: '密码重置成功，请登录',
    resetFailed: '密码重置失败，请检查邮箱和恢复密钥是否正确',
    backToLogin: '返回登录',
  },
  embedding: {
    description: '管理嵌入模型，用于向量化文本',
    createModel: '创建嵌入模型',
    editModel: '编辑嵌入模型',
    getModelListError: '获取嵌入模型列表失败：',
    embeddingModels: '嵌入模型',
    extraParametersDescription:
      '将在请求时附加到请求体中，如 encoding_format, dimensions 等',
  },
  llm: {
    llmModels: '对话模型',
    description: '管理 LLM 模型,用于对话消息生成',
    extraParametersDescription:
      '将在请求时附加到请求体中，如 max_tokens, temperature, top_p 等',
  },
  version: {
    newVersionAvailable: '有新版本可用',
    viewUpdateGuide: '查看更新方式',
    noReleaseNotes: '暂无更新日志',
  },
  account: {
    settings: '账户设置',
    setPassword: '设置密码',
    passwordSetSuccess: '密码设置成功',
    passwordStatus: '本地密码',
    passwordSet: '已设置',
    passwordNotSet: '未设置',
    passwordSetDescription: '您已设置本地密码，可使用邮箱密码登录',
    spaceStatus: 'Space 账户',
    spaceBound: '已绑定',
    spaceNotBound: '未绑定',
    spaceBoundDescription: '已绑定 Space 账户，可使用官方模型 API 和云服务',
    bindSpace: '绑定 Space 账户',
    bindSpaceDescription: '绑定后可使用官方模型 API 和云服务',
    bindSpaceButton: '绑定',
    bindSpaceConfirmTitle: '确认绑定',
    bindSpaceConfirmDescription: '您即将把本地实例绑定到 Space 账户',
    bindSpaceWarning:
      '绑定后，您的登录邮箱将从 {{localEmail}} 更改为 Space 账户的邮箱。',
    bindSpaceSuccess: 'Space 账户绑定成功',
    bindSpaceFailed: '绑定 Space 账户失败',
    bindSpaceInvalidState: '无效的绑定请求，请从账户设置重新发起',
    setPasswordHint: '设置密码后可使用邮箱密码登录',
    spaceEmailMismatch: 'Space登录账号邮箱与本实例账号邮箱不匹配',
  },
  monitoring: {
    title: '仪表盘',
    description: '查看机器人活动、LLM调用和系统性能',
    overview: '概览',
    totalMessages: '总消息数',
    llmCallsCount: 'LLM调用',
    modelCallsCount: '模型调用',
    successRate: '成功率',
    activeSessions: '活跃会话',
    last24Hours: '最近24小时',
    filters: {
      title: '筛选',
      bot: '机器人',
      pipeline: '流水线',
      allBots: '全部机器人',
      selectBot: '选择机器人',
      allPipelines: '全部流水线',
      selectPipeline: '选择流水线',
      loading: '加载中...',
      timeRange: '时间范围',
      customRange: '自定义范围',
      from: '从',
      to: '到',
      apply: '应用',
      reset: '重置筛选',
      lastHour: '最近1小时',
      last6Hours: '最近6小时',
      last24Hours: '最近24小时',
      last7Days: '最近7天',
      last30Days: '最近30天',
    },
    tabs: {
      messages: '消息记录',
      llmCalls: 'LLM调用',
      embeddingCalls: 'Embedding调用',
      modelCalls: '模型调用',
      feedback: '用户反馈',
      sessions: '会话分析',
      errors: '错误日志',
    },
    messageList: {
      timestamp: '时间戳',
      bot: '机器人',
      pipeline: '流水线',
      message: '消息',
      sessionId: '会话ID',
      status: '状态',
      actions: '操作',
      viewDetails: '查看详情',
      copyId: '复制ID',
      noMessages: '未找到消息',
      noMessagesDescription: '尝试调整筛选条件或稍后查看',
      loading: '加载消息中...',
      loadMore: '加载更多',
      autoRefresh: '自动刷新',
      platform: '角色',
      user: '用户',
      level: '级别',
      runner: '执行器',
      viewConversation: '显示对话详情',
    },
    llmCalls: {
      title: 'LLM调用',
      model: '模型',
      tokens: 'Token数',
      duration: '持续时间',
      cost: '成本',
      noData: '未找到LLM调用记录',
      inputTokens: '输入Token',
      outputTokens: '输出Token',
      totalTokens: '总Token数',
      avgDuration: '平均耗时',
      calls: '调用次数',
    },
    embeddingCalls: {
      title: 'Embedding调用',
      model: '模型',
      tokens: 'Token数',
      duration: '持续时间',
      noData: '未找到Embedding调用记录',
      promptTokens: '输入Token',
      totalTokens: '总Token数',
      inputCount: '输入数量',
      knowledgeBase: '知识库',
      queryText: '查询文本',
    },
    modelCalls: {
      title: '模型调用',
      llmModel: '对话模型',
      embeddingModel: '嵌入模型',
      embeddingCall: '嵌入调用',
      retrieveCall: '检索调用',
      noData: '未找到模型调用记录',
    },
    sessions: {
      sessionId: '会话ID',
      messageCount: '消息数',
      duration: '持续时间',
      lastActivity: '最后活动',
      noSessions: '未找到会话',
      startTime: '开始时间',
      messageStats: '消息统计',
      totalMessages: '总消息数',
      successMessages: '成功',
      errorMessages: '失败',
      llmStats: 'LLM统计',
      noData: '会话未找到',
    },
    errors: {
      title: '错误',
      errorType: '错误类型',
      errorMessage: '错误消息',
      occurredAt: '发生时间',
      noErrors: '未找到错误',
      stackTrace: '堆栈追踪',
    },
    feedback: {
      title: '用户反馈',
      totalFeedback: '总反馈数',
      totalLikes: '点赞数',
      totalDislikes: '点踩数',
      satisfactionRate: '满意度',
      like: '点赞',
      dislike: '点踩',
      noFeedback: '暂无反馈',
      noFeedbackDescription: '用户反馈将在此显示',
      feedbackList: '反馈列表',
      feedbackContent: '反馈内容',
      contextInfo: '上下文信息',
      userId: '用户ID',
      messageId: '消息ID',
      streamId: '关联提问ID',
      inaccurateReasons: '不准确原因',
      platform: '平台',
      exportFeedback: '导出反馈',
    },
    queries: {
      title: '查询记录',
    },
    messageDetails: {
      noData: '此查询没有LLM调用或错误记录',
    },
    queryVariables: {
      title: '查询变量',
    },
    trafficChart: {
      title: '流量概览',
      messages: '消息数',
      llmCalls: 'LLM调用',
      noData: '暂无流量数据',
    },
    viewMonitoring: '查看日志监控',
    refreshData: '刷新数据',
    exportData: '导出数据',
    export: {
      title: '导出数据',
      exporting: '导出中...',
      messages: '消息记录',
      llmCalls: 'LLM 调用',
      embeddingCalls: 'Embedding 调用',
      errors: '错误日志',
      sessions: '会话记录',
      feedback: '用户反馈',
    },
  },
  limitation: {
    maxBotsReached:
      '已达到机器人数量上限（{{max}}个）。请先删除已有机器人后再创建新的。',
    maxPipelinesReached:
      '已达到流水线数量上限（{{max}}个）。请先删除已有流水线后再创建新的。',
    maxExtensionsReached:
      '已达到扩展数量上限（{{max}}个）。请先删除已有的 MCP 服务器或插件后再添加新的。',
  },
  wizard: {
    sidebarDescription: '通过引导步骤创建机器人',
    loading: '正在加载向导...',
    loadError: '加载向导数据失败',
    skip: '跳过',
    skipConfirmMessage:
      '您之后可以在账户菜单重新进入快速开始向导，或手动创建机器人。',
    skipConfirmOk: '确定',
    prev: '上一步',
    next: '下一步',
    finish: '创建并部署',
    confirmCreateBot: '确定，创建机器人',
    createSuccess: '流水线已创建并关联到机器人！',
    botCreateSuccess: '机器人创建成功！',
    botSaveSuccess: '机器人配置已保存并启用！',
    createError: '创建资源失败',
    spaceAuthError: '无法发起 Space 授权',
    skipSaveError: '保存跳过状态失败，请重试。',
    completeSaveError: '保存完成状态失败，请重试。',
    step: {
      platform: '平台接入',
      botConfig: '机器人配置',
      aiEngine: 'AI 引擎',
      done: '完成',
    },
    platform: {
      title: '选择平台',
      description: '选择机器人要接入的消息平台。',
    },
    botConfig: {
      title: '配置机器人',
      description: '配置好机器人并确认其正常运行后再继续。',
      saveBot: '保存并启用',
      resaveBot: '重新保存配置',
      botSaved: '机器人配置已保存并启用，请查看日志确认连接正常。',
      logsTitle: '机器人日志',
      logsDescription: '监控机器人活动，确认平台连接是否正常工作。',
    },
    aiEngine: {
      title: '选择 AI 引擎',
      description: '选择驱动机器人智能的 AI 引擎。',
    },
    spaceBanner: {
      message: '接入 LangBot Space，获取免费试用模型额度，零配置极速开箱！',
      action: '前往授权登录',
    },
    config: {
      botInfo: '机器人信息',
      botNamePlaceholder: '请输入机器人名称',
      botDescPlaceholder: '请输入机器人描述（可选）',
      platformConfig: '{{platform}} 配置',
      aiConfig: '{{engine}} 配置',
    },
    done: {
      title: '一切就绪！',
      description:
        '机器人已创建并连接到 AI 流水线。你现在可以在工作台中管理它。',
      backToWorkbench: '返回工作台',
    },
  },
  workflows: {
    title: '工作流',
    description: '创建和管理可视化工作流，实现复杂的消息处理逻辑',
    createWorkflow: '创建工作流',
    selectFromSidebar: '从侧边栏选择一个工作流',
    editWorkflow: '编辑工作流',
    newWorkflow: '新工作流',
    getWorkflowListError: '获取工作流列表失败：',
    workflowName: '工作流名称',
    workflowDescription: '工作流描述',
    workflowNameRequired: '工作流名称不能为空',
    defaultDescription: '一个工作流',
    getWorkflowError: '获取工作流失败：',
    loadError: '加载工作流失败',
    saveSuccess: '保存成功',
    saveError: '保存失败：',
    createSuccess: '工作流创建成功',
    createError: '创建失败：',
    deleteSuccess: '删除成功',
    deleteError: '删除失败：',
    deleteConfirmation: '你确定要删除这个工作流吗？',
    copySuccess: '复制成功',
    copyError: '复制失败：',
    export: '导出',
    import: '导入',
    exportSuccess: '工作流已导出',
    importSuccess: '工作流已导入',
    importError: '导入失败：文件格式无效',
    publish: '发布',
    publishSuccess: '发布成功',
    publishError: '发布失败',
    configuration: '配置',
    executions: '执行记录',
    editor: '编辑器',
    debugChat: '对话调试',
    basicInfo: '基础信息',
    basicInfoDesc: '设置工作流名称、图标和描述',
    basicInfoDescription: '设置工作流名称和描述',
    dangerZone: '危险区域',
    dangerZoneDesc: '不可逆的操作',
    dangerZoneDescription: '不可逆的操作',
    deleteWorkflowAction: '删除此工作流',
    deleteWorkflowHint: '删除后，所有关联配置将被永久移除，且无法恢复。',
    deleteWorkflow: '删除工作流',
    deleteConfirm: '确认删除',
    deleteConfirmDesc: '您确定要删除工作流 "{{name}}" 吗？此操作无法撤销。',
    // Form component
    name: '名称',
    namePlaceholder: '输入工作流名称',
    descriptionPlaceholder: '输入工作流描述（可选）',
    enabled: '启用',
    enabledDesc: '启用后，工作流将可以被触发执行',
    loading: '加载中...',
    info: '工作流信息',
    uuid: 'UUID',
    version: '版本',
    createdAt: '创建时间',
    updatedAt: '更新时间',
    // Executions tab
    totalExecutions: '共 {{count}} 条执行记录',
    statistics: '统计分析',
    successfulCount: '成功 {{count}} 次',
    successRate: '成功率',
    averageDuration: '平均耗时',
    perExecution: '每次执行',
    failedExecutions: '失败次数',
    lastExecution: '最后执行',
    filterByStatus: '按状态筛选',
    allStatuses: '全部状态',
    manualTrigger: '手动触发',
    executionId: '执行 ID',
    status: '状态',
    triggerType: '触发类型',
    startedAt: '开始时间',
    duration: '耗时',
    noExecutions: '暂无执行记录',
    executionDetails: '执行详情',
    error: '错误信息',
    nodeExecutions: '节点执行记录',
    result: '执行结果',
    'status.pending': '等待中',
    'status.running': '执行中',
    'status.completed': '已完成',
    'status.failed': '失败',
    'status.cancelled': '已取消',
    // Editor component translations
    nodePalette: '节点面板',
    properties: '属性',
    zoomIn: '放大',
    zoomOut: '缩小',
    fitView: '适应视图',
    unsavedChanges: '有未保存的更改',
    paste: '粘贴',
    deleted: '已删除',
    nothingToCopy: '没有选中的节点可复制',
    nothingToPaste: '剪贴板为空',
    copied: '已复制 {{count}} 个节点',
    pasted: '已粘贴 {{count}} 个节点',
    nodesSelected: '已选中 {{count}} 个节点',
    edgesSelected: '已选中 {{count}} 条连线',
    // Node palette
    searchNodes: '搜索节点...',
    loadingNodeTypes: '正在加载节点类型...',
    noNodesFound: '未找到匹配的节点',
    clearSearch: '清除搜索',
    dragToAdd: '拖拽节点到画布添加',
    // Property panel
    selectNodeOrEdge: '选择一个节点或连线',
    selectNodeOrEdgeHint: '点击画布中的节点或连线来查看和编辑其属性',
    edgeProperties: '连线属性',
    nodeProperties: '节点属性',
    condition: '条件',
    hasCondition: '已设置',
    conditionPlaceholder: '输入条件表达式，如: output.success == true',
    conditionHelp: '条件为空时，该连线将始终被执行。支持使用 {{变量名}} 引用上下文变量。',
    deleteEdge: '删除连线',
    deleteEdgeConfirm: '确认删除连线',
    deleteEdgeConfirmDesc: '删除后，该连线将被永久移除。',
    nodeLabel: '节点名称',
    nodeLabelPlaceholder: '输入节点显示名称',
    nodeId: '节点 ID',
    inputOutputVariables: '输入/输出变量',
    inputs: '输入',
    outputs: '输出',
    availableVariables: '可用变量',
    globalVariables: '全局变量',
    messageContent: '消息内容',
    messageSender: '发送者',
    platform: '平台',
    sessionId: '会话 ID',
    timestamp: '时间戳',
    nodeConfig: '节点配置',
    noConfigOptions: '该节点类型暂无配置选项',
    deleteNode: '删除节点',
    deleteNodeConfirm: '确认删除节点',
    deleteNodeConfirmDesc: '删除后，该节点及其所有连线将被永久移除。',
    // Node inputs/outputs i18n (for port labels)
    nodeInputs: {
      // Common inputs
      input: '输入',
      message: '消息内容',
      text: '文本',
      query: '查询',
      data: '数据',
      condition: '条件',
      value: '值',
      // Trigger inputs
      content: '内容',
      context: '上下文',
      body: '请求体',
      variables: '变量',
      items: '项目列表',
      arguments: '参数',
      // AI/Process inputs
      question: '问题',
      parameters: '参数定义',
      key: '键',
      payload: '载荷',
      input_value: '输入值',
      conversation_id: '会话 ID',
      // Control inputs
      case_1: '分支1输入',
      case_2: '分支2输入',
      branch_1: '分支1',
      branch_2: '分支2',
      // Action inputs
      notification_id: '通知ID',
      // Integration inputs
      key_template: '键模板',
      hash_field: '哈希字段',
      server_name: '服务器名称',
      tool_name: '工具名称',
      arguments_template: '参数模板',
      scope: '作用域',
    },
    nodeOutputs: {
      // Common outputs
      output: '输出',
      result: '结果',
      response: '响应',
      message: '消息',
      data: '数据',
      error: '错误',
      // Trigger outputs
      sender: '发送者',
      sender_id: '发送者 ID',
      sender_name: '发送者名称',
      conversation_id: '会话 ID',
      context: '上下文',
      cron_timestamp: 'Cron 时间戳',
      cron_schedule: 'Cron 调度表达式',
      cron_context: 'Cron 上下文',
      trigger_time: '触发时间',
      schedule: '触发计划',
      headers: '请求头',
      query_params: '查询参数',
      query: '查询参数',
      method: '请求方法',
      body: '请求体',
      is_group: '是否群聊',
      platform: '平台',
      event: '事件',
      event_type: '事件类型',
      event_data: '事件数据',
      event_timestamp: '事件时间戳',
      // AI/Process outputs
      usage: 'Token使用统计',
      parsed: '解析结果',
      category: '分类结果',
      confidence: '置信度',
      all_scores: '所有分数',
      missing: '缺失参数',
      success: '是否成功',
      scores: '分数',
      chunks: '文本块',
      count: '数量',
      logs: '日志',
      embedding: '向量',
      dimensions: '维度',
      intent: '意图',
      entities: '实体',
      prompt: '提示/问题',
      context_info: '上下文信息',
      console: '控制台输出',
      code_input: '代码输入',
      code_output: '代码输出',
      http_body: 'HTTP 请求体',
      http_headers: 'HTTP 请求头',
      http_response: 'HTTP 响应',
      response_headers: '响应头',
      transform_input: '转换输入',
      transform_result: '转换结果',
      question: '用户问题',
      parameters: '提取的参数',
      extraction_success: '提取成功',
      extract_text: '输入文本',
      documents: '检索的文档',
      citations: '引用信息',
      knowledge_context: '合并上下文',
      knowledge_query: '检索查询',
      text: '文本',
      // Control outputs
      true: '条件为真输出',
      false: '条件为假输出',
      matched_case: '匹配分支',
      case_1: '分支 1',
      case_2: '分支 2',
      default: '默认分支',
      item: '当前项',
      index: '当前索引',
      completed: '是否完成',
      is_first: '是否第一个',
      is_last: '是否最后一个',
      results: '结果',
      branch_1: '分支1输出',
      branch_2: '分支2输出',
      condition_input: '条件输入',
      switch_input: '开关输入',
      loop_items: '迭代项目',
      iterator_array: '输入数组',
      iterator_item: '当前元素',
      iterator_index: '当前索引',
      errors: '错误列表',
      parallel_input: '并行输入',
      parallel_results: '所有分支结果',
      wait_input: '透传输入',
      wait_output: '透传输出',
      merged: '合并结果',
      merge_array: '数组结果',
      merge_input_1: '输入 1',
      merge_input_2: '输入 2',
      merge_input_3: '输入 3',
      merge_input_4: '输入 4',
      aggregated: '聚合变量',
      aggregator_variables: '变量输入',
      // Action outputs
      message_id: '消息ID',
      status_code: '状态码',
      status: '状态',
      execution_id: '执行ID',
      notification_id: '通知ID',
      target: '目标 ID',
      reply_message: '回复内容',
      pipeline_response: 'Pipeline 响应',
      pipeline_result: '完整结果',
      pipeline_query: '查询内容',
      context_data: '上下文数据',
      store_status: '存储状态',
      store_key: '存储键',
      store_value: '存储值',
      variable_value: '变量值',
      variable_result: '设置变量结果',
      statement: '开场白',
      suggested_questions: '建议问题',
      suggestions: '建议问题',
      workflow_output: '工作流输出',
      final_result: '最终结果',
      // Integration outputs
      query_results: '查询结果',
      row_count: '行数',
      query_success: '查询成功',
      redis_result: 'Redis结果',
      redis_success: 'Redis成功',
      redis_key: 'Redis 键',
      redis_value: 'Redis 值',
      plugin_input: '插件输入',
      tool_result: '工具结果',
      tool_success: '工具成功',
      mcp_arguments: '工具参数',
      memory_result: '记忆结果',
      memory_success: '记忆成功',
      memory_value: '存储值',
      answer: '答案',
      dify_success: 'Dify成功',
      dify_query: '用户输入/查询',
      dify_conversation_id: '会话 ID',
      search_results: '搜索结果',
      knowledge_base_query: '查询内容',
      n8n_result: 'N8n结果',
      n8n_success: 'N8n成功',
      n8n_payload: '工作流输入数据',
      flow_result: '流程结果',
      flow_success: '流程成功',
      langflow_input: '输入内容',
      bot_answer: '机器人回复',
      bot_success: '机器人成功',
      coze_query: '用户输入/查询',
      coze_conversation_id: '会话 ID',
      bot_conversation_id: '会话 ID',
      webhook_body: 'Webhook 请求体',
      webhook_headers: 'Webhook 请求头',
      webhook_query: 'Webhook 查询参数',
      webhook_method: 'Webhook 请求方法',
      timestamp: '时间戳',
    },
    // Data type labels
    'type.string': '字符串',
    'type.object': '对象',
    'type.array': '数组',
    'type.boolean': '布尔值',
    'type.number': '数字',
    'type.any': '任意类型',
    'type.datetime': '日期时间',
    // Legacy editor keys for compatibility
    legacyEditor: {
      title: '可视化编辑器',
      save: '保存',
      undo: '撤销',
      redo: '重做',
      zoomIn: '放大',
      zoomOut: '缩小',
      fitView: '适应视图',
      unsavedChanges: '有未保存的更改',
      nodePalette: '节点面板',
      properties: '属性',
      nodeLabel: '节点名称',
      nodeConfig: '节点配置',
      deleteNode: '删除节点',
      deleteNodeConfirm: '确定删除此节点？',
      deleteEdge: '删除连线',
      deleteEdgeConfirm: '确定删除此连线？',
      edgeCondition: '条件表达式',
      edgeConditionPlaceholder: '如: ${output.success} == true',
      noNodeSelected: '未选中节点',
      selectNodeToEdit: '点击节点查看和编辑属性',
      dragNodeHint: '拖拽节点到画布',
    },
    nodes: {
      trigger: '触发器',
      triggerDescription: '工作流的起始节点',
      messageTrigger: '消息触发',
      messageTriggerDescription: '当收到消息时触发',
      scheduleTrigger: '定时触发',
      scheduleTriggerDescription: '按计划定时触发',
      cronTrigger: '定时触发',
      cronTriggerDescription: '按定时计划触发工作流',
      webhookTrigger: 'Webhook 触发',
      webhookTriggerDescription: '通过 HTTP 请求触发',
      eventTrigger: '事件触发',
      eventTriggerDescription: '当系统事件发生时触发',
      process: 'AI/处理',
      processDescription: '数据处理节点',
      aiProcess: 'AI 处理',
      aiProcessDescription: '使用 AI 模型处理消息',
      llmCall: 'LLM 调用',
      llmCallDescription: '调用大语言模型进行对话或生成',
      codeProcess: '代码处理',
      codeProcessDescription: '执行自定义代码',
      codeExecutor: '代码执行',
      codeExecutorDescription: '执行 Python/JavaScript 代码',
      templateProcess: '模板处理',
      templateProcessDescription: '使用模板格式化输出',
      httpRequest: 'HTTP 请求',
      httpRequestDescription: '发送 HTTP 请求',
      dataTransform: '数据转换',
      dataTransformDescription: '转换数据格式',
      questionClassifier: '问题分类器',
      questionClassifierDescription: '使用 LLM 将用户问题分类到预定义类别',
      parameterExtractor: '参数提取器',
      parameterExtractorDescription: '使用 LLM 从文本中提取结构化参数',
      knowledgeRetrieval: '知识库检索',
      knowledgeRetrievalDescription: '从知识库中检索相关内容',
      textTemplate: '文本模板',
      textTemplateDescription: '使用模板生成文本',
      jsonTransform: 'JSON 转换',
      jsonTransformDescription: '转换 JSON 数据',
      dataAggregator: '数据聚合',
      dataAggregatorDescription: '聚合多个数据源',
      textSplitter: '文本分割',
      textSplitterDescription: '将文本分割成块',
      variableAssignment: '变量赋值',
      variableAssignmentDescription: '为工作流变量赋值',
      control: '控制流',
      controlDescription: '流程控制节点',
      condition: '条件分支',
      conditionDescription: '根据条件分流',
      switch: '多路分支',
      switchDescription: '多条件分支选择',
      loop: '循环',
      loopDescription: '重复执行',
      iterator: '迭代器',
      iteratorDescription: '遍历数组元素',
      parallel: '并行执行',
      parallelDescription: '并行执行多个分支',
      wait: '等待',
      waitDescription: '等待指定时间',
      delay: '延迟',
      delayDescription: '等待指定时间',
      merge: '合并',
      mergeDescription: '合并多个分支',
      variableAggregator: '变量聚合器',
      variableAggregatorDescription: '聚合多个分支的变量输出',
      action: '动作',
      actionDescription: '执行动作的节点',
      sendMessage: '发送消息',
      sendMessageDescription: '发送消息到平台',
      replyMessage: '回复消息',
      replyMessageDescription: '回复触发工作流的消息',
      storeData: '存储数据',
      storeDataDescription: '存储数据到数据库',
      callPipeline: '调用 Pipeline',
      callPipelineDescription: '调用现有的 Pipeline',
      setVariable: '设置变量',
      setVariableDescription: '设置上下文变量',
      openingStatement: '对话开场白',
      openingStatementDescription: '提供对话开场白和建议问题',
      end: '结束',
      endDescription: '标记工作流执行结束',
      log: '日志',
      logDescription: '记录日志信息',
      integration: '集成',
      integrationDescription: '第三方平台集成节点',
      difyWorkflow: 'Dify 工作流',
      difyWorkflowDescription: '调用 Dify 平台工作流',
      difyKnowledgeQuery: 'Dify 知识库',
      difyKnowledgeQueryDescription: '查询 Dify 知识库',
      n8nWorkflow: 'n8n 工作流',
      n8nWorkflowDescription: '调用 n8n 工作流',
      langflowFlow: 'Langflow 流程',
      langflowFlowDescription: '调用 Langflow 流程',
      cozeBot: 'Coze Bot',
      cozeBotDescription: '调用扣子 Bot',
      // Data & Tools integration nodes
      databaseQuery: '数据库查询',
      databaseQueryDescription: '执行数据库查询',
      redisOperation: 'Redis 操作',
      redisOperationDescription: '执行 Redis 缓存操作',
      mcpTool: 'MCP 工具',
      mcpToolDescription: '调用 MCP 工具',
      memoryStore: '记忆存储',
      memoryStoreDescription: '从工作流记忆中存储和检索数据',
    },
    executionHistory: {
      title: '执行记录',
      noExecutions: '暂无执行记录',
      status: '状态',
      startTime: '开始时间',
      duration: '耗时',
      running: '运行中',
      completed: '已完成',
      failed: '失败',
      cancelled: '已取消',
      viewDetails: '查看详情',
      cancel: '取消执行',
      retry: '重试',
      nodeResults: '节点执行结果',
    },
    versions: {
      title: '版本历史',
      current: '当前版本',
      rollback: '回滚到此版本',
      rollbackConfirm: '确定回滚到此版本？当前更改将丢失。',
      rollbackSuccess: '回滚成功',
      rollbackError: '回滚失败：',
    },
    // Debug and monitoring
    debug: {
      title: '调试',
      mode: '调试模式',
      panel: '调试面板',
      start: '开始调试',
      pause: '暂停',
      resume: '继续',
      step: '单步执行',
      stop: '停止',
      context: '调试上下文',
      messageContent: '模拟消息',
      messageContentPlaceholder: '输入要模拟的消息内容',
      senderId: '发送者 ID',
      senderIdPlaceholder: '发送者唯一标识',
      senderName: '发送者名称',
      senderNamePlaceholder: '发送者显示名称',
      platform: '平台',
      platformPlaceholder: '例如 qq、wechat、telegram',
      conversationId: '会话 ID',
      conversationIdPlaceholder: '会话唯一标识',
      isGroup: '群聊',
      customVariables: '自定义变量',
      customVariablesDesc: '添加自定义变量用于调试',
      variableKey: '变量名',
      variableValue: '变量值',
      addVariable: '添加变量',
      variables: '监控变量',
      watchedVariables: '监控变量',
      noWatchedVariables: '暂无监控变量',
      addWatchVariable: '添加监控',
      nodeStates: '节点状态',
      nodeOutputs: '节点输出',
      noNodeOutputs: '暂无节点输出',
      toggleBreakpoint: '切换断点',
      clearBreakpoints: '清除所有断点',
      breakpointSet: '断点已设置',
      breakpointRemoved: '断点已移除',
      logs: '调试日志',
      noLogs: '暂无日志',
      clearLogs: '清空日志',
      autoScroll: '自动滚动',
      logEntries: '条日志',
      resetContext: '重置上下文',
      // Debug execution messages
      starting: '正在启动调试执行...',
      started: '调试执行已启动 (ID: {{id}})',
      startError: '启动调试失败',
      completed: '调试执行已完成',
      unknownError: '未知错误',
      paused: '执行已暂停',
      pauseError: '暂停失败',
      resumed: '执行已恢复',
      resumeError: '恢复失败',
      steppedTo: '已执行到节点: {{node}}',
      stepError: '单步执行失败',
      stopped: '调试已停止',
      stopError: '停止失败',
    },
    debugMode: '调试模式',
    debugPanel: '调试面板',
    startDebug: '开始调试',
    pauseDebug: '暂停',
    resumeDebug: '继续',
    stepDebug: '单步执行',
    stopDebug: '停止',
    debugContext: '调试上下文',
    simulatedMessage: '模拟消息',
    simulatedMessagePlaceholder: '输入要模拟的消息内容',
    senderId: '发送者 ID',
    senderIdPlaceholder: '发送者唯一标识',
    senderName: '发送者名称',
    senderNamePlaceholder: '发送者显示名称',
    conversationId: '会话 ID',
    conversationIdPlaceholder: '会话唯一标识',
    isGroup: '群聊',
    customVariables: '自定义变量',
    addVariable: '添加变量',
    variableName: '变量名',
    variableValue: '变量值',
    watchedVariables: '监控变量',
    addWatchVariable: '添加监控',
    nodeStates: '节点状态',
    breakpoints: '断点',
    toggleBreakpoint: '切换断点',
    breakpointSet: '断点已设置',
    breakpointRemoved: '断点已移除',
    debugLogs: '调试日志',
    noLogs: '暂无日志',
    clearLogs: '清空日志',
    autoScroll: '自动滚动',
    debugState: {
      idle: '空闲',
      running: '运行中',
      paused: '已暂停',
      completed: '已完成',
      error: '错误',
    },
    nodeStatus: {
      pending: '等待中',
      running: '执行中',
      completed: '已完成',
      failed: '失败',
      skipped: '已跳过',
    },
    debugDialog: {
      title: '工作流对话',
      selectWorkflow: '选择工作流',
      sessionType: '会话类型',
      privateChat: '私聊',
      groupChat: '群聊',
      send: '发送',
      reset: '重置对话',
      inputPlaceholder: '发送 {{type}} 消息...',
      noMessages: '暂无消息',
      userMessage: '用户',
      botMessage: '机器人',
      sendFailed: '发送失败',
      resetSuccess: '对话已重置',
      resetFailed: '重置失败',
      loadMessagesFailed: '加载消息失败',
      loadWorkflowsFailed: '加载工作流失败',
      atTips: '提及机器人',
      streaming: '流式传输',
      streamOutput: '流式',
      connected: 'WebSocket已连接',
      disconnected: 'WebSocket未连接',
      connectionError: 'WebSocket连接错误',
      connectionFailed: 'WebSocket连接失败',
      notConnected: 'WebSocket未连接，请稍后重试',
      imageUploadFailed: '图片上传失败',
      reply: '回复',
      replyTo: '回复给',
      showMarkdown: '渲染',
      showRaw: '原文',
      allMembers: '全体成员',
      file: '文件',
      voice: '语音',
      uploadImage: '上传图片',
      uploading: '上传中...',
    },
    // Execution history and monitoring
    filterByDate: '按日期筛选',
    allTime: '全部时间',
    today: '今天',
    lastWeek: '最近一周',
    lastMonth: '最近一个月',
    showingExecutions: '显示 {{shown}} / {{total}} 条记录',
    rerun: '重新运行',
    rerunExecution: '重新执行',
    logs: '日志',
    details: '详情',
    completedAt: '完成时间',
    noNodeExecutions: '暂无节点执行记录',
    // Node config field labels (used by DynamicFormComponent)
    nodeConfigFields: {
      // trigger.py - MessageTriggerNode
      conditions: '触发条件',
      keyword_filter: '关键词过滤',
      regex_filter: '正则过滤',
      min_length: '最小长度',
      max_length: '最大长度',
      require_mention: '需要@机器人',
      respond_rules: '群响应规则',
      access_control: '访问控制',
      // trigger.py - CronTriggerNode
      cron: 'Cron表达式',
      timezone: '时区',
      description: '描述',
      // trigger.py - WebhookTriggerNode
      path: 'Webhook路径',
      allowed_methods: '允许的HTTP方法',
      content_type: 'Content-Type',
      auth_type: '认证方式',
      auth_key: '认证密钥',
      validation: '请求验证',
      timeout: '超时时间',
      // trigger.py - EventTriggerNode
      event_types: '事件类型',
      filter: '事件过滤',
      debounce_ms: '防抖时间',
      // process.py - LLMCallNode
      model: '模型',
      prompt_template: '提示词模板',
      system_prompt: '系统提示词',
      temperature: '温度',
      top_p: 'Top P',
      frequency_penalty: '频率惩罚',
      presence_penalty: '存在惩罚',
      max_tokens: '最大Token数',
      stop_sequences: '停止序列',
      seed: '随机种子',
      stream: '流式输出',
      use_conversation_history: '使用对话历史',
      // process.py - CodeExecutorNode
      language: '编程语言',
      code: '代码',
      // process.py - HTTPRequestNode
      url: '请求URL',
      method: '请求方法',
      auth_config: '认证配置',
      // process.py - DataTransformNode
      transform_type: '转换类型',
      template: '模板',
      expression: '表达式',
      output_type: '输出类型',
      // process.py - QuestionClassifierNode
      categories: '分类类别',
      instruction: '指令',
      // process.py - ParameterExtractorNode
      parameters: '参数定义',
      // process.py - KnowledgeRetrievalNode
      knowledge_bases: '知识库',
      top_k: '返回数量',
      score_threshold: '相似度阈值',
      search_method: '搜索方法',
      enable_citations: '启用引用',
      // control.py - ConditionNode
      condition_type: '条件类型',
      condition_expression: '条件表达式',
      left_value: '左值',
      operator: '比较运算符',
      right_value: '右值',
      // control.py - SwitchNode
      cases: '分支条件',
      // control.py - LoopNode
      max_iterations: '最大迭代次数',
      break_condition: '中断条件',
      // control.py - IteratorNode
      parallel: '并行处理',
      max_concurrency: '最大并发数',
      // control.py - ParallelNode
      branches: '分支配置',
      wait_all: '等待所有',
      fail_fast: '快速失败',
      // control.py - WaitNode
      duration: '等待时间',
      duration_type: '时间单位',
      // control.py - MergeNode
      merge_strategy: '合并策略',
      // control.py - VariableAggregatorNode
      variable_mappings: '变量映射',
      aggregation_mode: '聚合模式',
      // action.py - SendMessageNode
      target_type: '目标类型',
      target_id: '目标ID',
      platform: '平台',
      message_type: '消息类型',
      // action.py - ReplyMessageNode
      reply_mode: '回复模式',
      message_template: '消息模板',
      long_text_processing: '长文本处理',
      force_delay: '强制延迟',
      // action.py - CallPipelineNode
      pipeline_uuid: '流水线',
      inherit_context: '继承上下文',
      // action.py - StoreDataNode
      storage_type: '存储类型',
      ttl: '过期时间',
      key_prefix: '键前缀',
      // action.py - SetVariableNode
      variable_name: '变量名称',
      variable_scope: '变量作用域',
      set_variable_operation: '操作类型',
      // action.py - OpeningStatementNode
      statement: '开场白',
      suggested_questions: '建议问题',
      show_suggestions: '显示建议',
      // action.py - EndNode
      output_format: '输出格式',
      success_message: '成功消息',
      // integration.py - DatabaseQueryNode
      connection_type: '数据库类型',
      connection_string: '连接字符串',
      query: 'SQL查询',
      query_type: '查询类型',
      // integration.py - RedisOperationNode
      connection_url: '连接URL',
      operation: '操作类型',
      key_template: '键模板',
      hash_field: '哈希字段',
      // integration.py - MCPToolNode
      server_name: '服务器名称',
      tool_name: '工具名称',
      arguments_template: '参数模板',
      // integration.py - MemoryStoreNode
      scope: '作用域',
      // integration.py - DifyWorkflowNode
      'base-url': '基础URL',
      'api-key': 'API密钥',
      'app-type': '应用类型',
      // integration.py - DifyKnowledgeQueryNode
      dataset_id: '知识库ID',
      // integration.py - N8nWorkflowNode
      'webhook-url': 'Webhook URL',
      // integration.py - LangflowFlowNode
      'flow-id': '流程ID',
      // integration.py - CozeBotNode
      'bot-id': '机器人ID',
      'api-base': 'API基础URL',
      // process-configs.ts - TextTemplateNode
      escape_html: '转义HTML',
      trim_whitespace: '去除空白',
      // process-configs.ts - JsonTransformNode
      json_transform_type: 'JSON转换类型',
      json_expression: 'JSON表达式',
      mapping: '字段映射',
      // process-configs.ts - CodeExecutorNode
      code_language: '编程语言',
      code_content: '代码内容',
      // process-configs.ts - DataAggregatorNode
      aggregation_type: '聚合类型',
      separator: '分隔符',
      field_path: '字段路径',
      // process-configs.ts - TextSplitterNode
      split_type: '分割类型',
      chunk_size: '块大小',
      chunk_overlap: '块重叠',
      regex_pattern: '正则表达式',
      remove_empty: '移除空块',
      // process-configs.ts - VariableAssignmentNode
      assign_variable_name: '变量名',
      value_type: '值类型',
      static_value: '静态值',
      // integration-configs.ts - N8nWorkflowNode
      n8n_webhook_url: 'Webhook URL',
      n8n_auth_type: '认证方式',
      // integration-configs.ts - LangflowFlowNode
      langflow_flow_id: '流程ID',
      // integration-configs.ts - CozeBotNode
      coze_bot_id: '机器人ID',
      coze_api_base: 'API基础URL',
    },
  },
  unifiedBinding: {
    bindingType: '绑定类型',
    pipeline: '流水线',
    workflow: '工作流',
    pipelineDescription: '使用传统流水线处理消息',
    workflowDescription: '使用可视化工作流处理消息',
    selectPipeline: '选择流水线',
    selectWorkflow: '选择工作流',
    noPipelines: '暂无流水线',
    noWorkflows: '暂无工作流',
    createPipeline: '创建流水线',
    createWorkflow: '创建工作流',
  },
};

export default zhHans;
