feat: add some translate (#12954)

This commit is contained in:
CityFun
2026-06-08 19:01:19 +08:00
committed by GitHub
parent 681141f971
commit 338301907a
27 changed files with 479 additions and 3 deletions
+21
View File
@@ -90,6 +90,27 @@ func (b *BaseApi) BatchInstallAgentSkill(c *gin.Context) {
helper.SuccessWithData(c, res)
}
// @Tags AI
// @Summary Batch operate Agent
// @Accept json
// @Param request body dto.AgentBatchOperateReq true "request"
// @Success 200 {array} dto.AgentBatchOperateResult
// @Security ApiKeyAuth
// @Security Timestamp
// @Router /ai/agents/batch/operate [post]
func (b *BaseApi) BatchOperateAgent(c *gin.Context) {
var req dto.AgentBatchOperateReq
if err := helper.CheckBindAndValidate(&req, c); err != nil {
return
}
res, err := agentService.BatchOperate(req)
if err != nil {
helper.BadRequest(c, err)
return
}
helper.SuccessWithData(c, res)
}
// @Tags AI
// @Summary Page Agents
// @Accept json
+16
View File
@@ -89,6 +89,22 @@ type AgentBatchSkillInstallResult struct {
Message string `json:"message"`
}
type AgentBatchOperateReq struct {
AgentType string `json:"agentType" validate:"required,oneof=openclaw copaw hermes-agent"`
Operate string `json:"operate" validate:"required,oneof=start stop restart delete"`
ForceDelete bool `json:"forceDelete"`
TaskID string `json:"taskID"`
}
type AgentBatchOperateResult struct {
AgentID uint `json:"agentID"`
AgentName string `json:"agentName"`
AppInstallID uint `json:"appInstallID"`
Success bool `json:"success"`
Skipped bool `json:"skipped"`
Message string `json:"message"`
}
type AgentItem struct {
ID uint `json:"id"`
Name string `json:"name"`
+100
View File
@@ -35,6 +35,7 @@ type IAgentService interface {
BatchInstall(req dto.AgentBatchInstallReq) (*dto.AgentItem, error)
BatchUpgrade(req dto.AgentBatchUpgradeReq) ([]dto.AgentBatchUpgradeResult, error)
BatchInstallSkill(req dto.AgentBatchSkillInstallReq) ([]dto.AgentBatchSkillInstallResult, error)
BatchOperate(req dto.AgentBatchOperateReq) ([]dto.AgentBatchOperateResult, error)
Page(req dto.SearchWithPage) (int64, []dto.AgentItem, error)
DeleteCheck(req dto.AgentIDReq) ([]dto.AppResource, error)
Delete(req dto.AgentDeleteReq) error
@@ -423,6 +424,75 @@ func (a AgentService) BatchInstallSkill(req dto.AgentBatchSkillInstallReq) ([]dt
return results, nil
}
func (a AgentService) BatchOperate(req dto.AgentBatchOperateReq) ([]dto.AgentBatchOperateResult, error) {
operate := constant.AppOperate(strings.TrimSpace(req.Operate))
if operate != constant.Start && operate != constant.Stop && operate != constant.Restart && operate != constant.Delete {
return nil, fmt.Errorf("operate %s is not supported", req.Operate)
}
agents, err := agentRepo.List(func(db *gorm.DB) *gorm.DB {
return db.Where("agent_type = ?", req.AgentType).Order("id ASC")
})
if err != nil {
return nil, err
}
results := make([]dto.AgentBatchOperateResult, 0, len(agents))
for _, agent := range agents {
result := dto.AgentBatchOperateResult{
AgentID: agent.ID,
AgentName: agent.Name,
AppInstallID: agent.AppInstallID,
}
if operate == constant.Delete {
if err := a.Delete(dto.AgentDeleteReq{
ID: agent.ID,
TaskID: buildBatchOperateTaskID(req.TaskID, agent.ID),
ForceDelete: req.ForceDelete,
}); err != nil {
result.Message = err.Error()
} else {
result.Success = true
}
results = append(results, result)
continue
}
if agent.AppInstallID == 0 {
result.Message = "agent app install id is empty"
results = append(results, result)
continue
}
install, err := appInstallRepo.GetFirst(repo.WithByID(agent.AppInstallID))
if err != nil {
result.Message = err.Error()
results = append(results, result)
continue
}
result.AppInstallID = install.ID
if install.App.Key != req.AgentType {
result.Message = fmt.Sprintf("app key %s does not match agent type %s", install.App.Key, req.AgentType)
results = append(results, result)
continue
}
if message := batchOperateSkipMessage(operate, install.Status); message != "" {
result.Success = true
result.Skipped = true
result.Message = message
results = append(results, result)
continue
}
if err := NewIAppInstalledService().Operate(request.AppInstalledOperate{
InstallId: install.ID,
Operate: operate,
TaskID: buildBatchOperateTaskID(req.TaskID, agent.ID),
}); err != nil {
result.Message = err.Error()
} else {
result.Success = true
}
results = append(results, result)
}
return results, nil
}
func buildBatchUpgradePlans(req dto.AgentBatchUpgradeReq) ([]batchUpgradePlan, []dto.AgentBatchUpgradeResult, error) {
agents, err := agentRepo.List(func(db *gorm.DB) *gorm.DB {
return db.Where("agent_type = ?", req.AgentType).Order("id ASC")
@@ -508,6 +578,36 @@ func buildBatchSkillInstallTaskID(taskID string, agentID uint) string {
return fmt.Sprintf("%s-%d", taskID, agentID)
}
func buildBatchOperateTaskID(taskID string, agentID uint) string {
taskID = strings.TrimSpace(taskID)
if taskID == "" {
taskID = fmt.Sprintf("batch-operate-%d-%d", agentID, time.Now().UnixNano())
}
return fmt.Sprintf("%s-%d", taskID, agentID)
}
func batchOperateSkipMessage(operate constant.AppOperate, status string) string {
switch status {
case constant.StatusInstalling, constant.StatusUpgrading, constant.StatusUninstalling, constant.StatusRebuilding:
return fmt.Sprintf("agent status is %s", status)
}
switch operate {
case constant.Start:
if status == constant.StatusRunning || status == constant.StatusStarting || status == constant.StatusRestarting {
return fmt.Sprintf("agent status is %s", status)
}
case constant.Stop:
if status != constant.StatusRunning {
return fmt.Sprintf("agent status is %s", status)
}
case constant.Restart:
if status == constant.StatusStarting {
return fmt.Sprintf("agent status is %s", status)
}
}
return ""
}
func buildCreateReqFromBatchInstallReq(req dto.AgentBatchInstallReq) dto.AgentCreateReq {
return dto.AgentCreateReq{
Name: req.Name,
+1
View File
@@ -59,6 +59,7 @@ func (a *AIToolsRouter) InitRouter(Router *gin.RouterGroup) {
aiToolsRouter.POST("/agents/batch/install", baseApi.BatchInstallAgent)
aiToolsRouter.POST("/agents/batch/upgrade", baseApi.BatchUpgradeAgent)
aiToolsRouter.POST("/agents/batch/skill/install", baseApi.BatchInstallAgentSkill)
aiToolsRouter.POST("/agents/batch/operate", baseApi.BatchOperateAgent)
aiToolsRouter.POST("/agents/search", baseApi.PageAgents)
aiToolsRouter.POST("/agents/delete/check", baseApi.DeleteCheckAgent)
aiToolsRouter.POST("/agents/delete", baseApi.DeleteAgent)
+13
View File
@@ -40,6 +40,7 @@ ErrEntrance: "Security entrance information error, check and try again!"
ErrGroupIsDefault: "Default group, unable to delete"
ErrGroupIsInUse: "The group is in use and cannot be deleted."
ErrAIProxyUserGroupExists: "The user group name already exists."
ErrAIProxyBackendAccountExists: "This model account has already been imported into the AI Gateway model pool."
ErrAIProxySensitiveGroupInUse: "The sensitive word group is in use and cannot be deleted."
ErrAIProxySensitiveGroupExists: "The sensitive word group name already exists."
ErrLocalDelete: "Cannot delete the local node!"
@@ -141,6 +142,18 @@ BatchUpgradeAgent: "Batch upgrade agent"
DispatchAgentUpgradeTasks: "Dispatch agent upgrade tasks"
BatchInstallAgentSkill: "Batch distribute Skill"
DispatchAgentSkillInstallTasks: "Dispatch Skill install tasks"
BatchStartAgent: "Batch start agent"
DispatchAgentStartTasks: "Dispatch agent start tasks"
BatchStopAgent: "Batch stop agent"
DispatchAgentStopTasks: "Dispatch agent stop tasks"
BatchRestartAgent: "Batch restart agent"
DispatchAgentRestartTasks: "Dispatch agent restart tasks"
BatchDeleteAgent: "Batch delete agent"
DispatchAgentDeleteTasks: "Dispatch agent delete tasks"
AgentOperateStart: "Start"
AgentOperateStop: "Stop"
AgentOperateRestart: "Restart"
AgentOperateDelete: "Delete"
AIBenchmarkRun: "Run AI benchmark"
SuccessStatus: "{{ .name }} succeeded"
FailedStatus: "{{ .name }} failed {{ .err }}"
+13
View File
@@ -39,6 +39,7 @@ ErrEntrance: "Error en la información de entrada de seguridad, por favor revise
ErrGroupIsDefault: "Grupo predeterminado, no se puede eliminar"
ErrGroupIsInUse: "El grupo está en uso y no se puede eliminar."
ErrAIProxyUserGroupExists: "El nombre del grupo de usuarios ya existe."
ErrAIProxyBackendAccountExists: "Esta cuenta de modelo ya se importó al grupo de modelos de AI Gateway."
ErrAIProxySensitiveGroupInUse: "El grupo de palabras sensibles está en uso y no se puede eliminar."
ErrAIProxySensitiveGroupExists: "El nombre del grupo de palabras sensibles ya existe."
ErrLocalDelete: "No se puede eliminar el nodo local"
@@ -141,6 +142,18 @@ BatchUpgradeAgent: "Actualización masiva de agentes"
DispatchAgentUpgradeTasks: "Enviar tareas de actualización de agentes"
BatchInstallAgentSkill: "Distribuir Skill por lotes"
DispatchAgentSkillInstallTasks: "Enviar tareas de instalación de Skill"
BatchStartAgent: "Inicio masivo de agentes"
DispatchAgentStartTasks: "Enviar tareas de inicio de agentes"
BatchStopAgent: "Detención masiva de agentes"
DispatchAgentStopTasks: "Enviar tareas de detención de agentes"
BatchRestartAgent: "Reinicio masivo de agentes"
DispatchAgentRestartTasks: "Enviar tareas de reinicio de agentes"
BatchDeleteAgent: "Eliminación masiva de agentes"
DispatchAgentDeleteTasks: "Enviar tareas de eliminación de agentes"
AgentOperateStart: "Iniciar"
AgentOperateStop: "Detener"
AgentOperateRestart: "Reiniciar"
AgentOperateDelete: "Eliminar"
SuccessStatus: "{{ .name }} correcta"
FailedStatus: "{{ .name }} fallida {{ .err }}"
Start: "Iniciar"
+13
View File
@@ -34,6 +34,7 @@ ErrEntrance: "セキュリティ情報エラー、再確認してください!
ErrGroupIsDefault: "デフォルトグループの削除はできません"
ErrGroupIsInUse: "グループは使用中のため、削除できません。"
ErrAIProxyUserGroupExists: "ユーザーグループ名は既に存在します。"
ErrAIProxyBackendAccountExists: "このモデルアカウントは既に AI ゲートウェイのモデルプールにインポートされています。"
ErrAIProxySensitiveGroupInUse: "センシティブワードグループは使用中のため削除できません。"
ErrAIProxySensitiveGroupExists: "センシティブワードグループ名は既に存在します。"
ErrLocalDelete: "ローカルノードは削除できません!"
@@ -136,6 +137,18 @@ BatchUpgradeAgent: "エージェントの一括アップグレード"
DispatchAgentUpgradeTasks: "エージェントアップグレードタスクを配信"
BatchInstallAgentSkill: "Skill 一括配布"
DispatchAgentSkillInstallTasks: "Skill インストールタスクを配信"
BatchStartAgent: "エージェントの一括起動"
DispatchAgentStartTasks: "エージェント起動タスクを配信"
BatchStopAgent: "エージェントの一括停止"
DispatchAgentStopTasks: "エージェント停止タスクを配信"
BatchRestartAgent: "エージェントの一括再起動"
DispatchAgentRestartTasks: "エージェント再起動タスクを配信"
BatchDeleteAgent: "エージェントの一括削除"
DispatchAgentDeleteTasks: "エージェント削除タスクを配信"
AgentOperateStart: "開始"
AgentOperateStop: "停止"
AgentOperateRestart: "再起動"
AgentOperateDelete: "削除"
SuccessStatus: "{{ .name }} 成功"
FailedStatus: "{{ .name }} 失敗 {{ .err }}"
Start: "開始"
+13
View File
@@ -34,6 +34,7 @@ ErrEntrance: "보안 정보 오류입니다. 확인 후 다시 시도하십시
ErrGroupIsDefault: "기본 그룹은 삭제할 수 없습니다"
ErrGroupIsInUse: "그룹이 사용 중이므로 삭제할 수 없습니다."
ErrAIProxyUserGroupExists: "사용자 그룹 이름이 이미 존재합니다."
ErrAIProxyBackendAccountExists: "이 모델 계정은 이미 AI 게이트웨이 모델 풀에 가져왔습니다."
ErrAIProxySensitiveGroupInUse: "민감 단어 그룹이 사용 중이므로 삭제할 수 없습니다."
ErrAIProxySensitiveGroupExists: "민감 단어 그룹 이름이 이미 존재합니다."
ErrLocalDelete: "로컬 노드는 삭제할 수 없습니다"
@@ -135,6 +136,18 @@ BatchUpgradeAgent: "에이전트 일괄 업그레이드"
DispatchAgentUpgradeTasks: "에이전트 업그레이드 작업 배포"
BatchInstallAgentSkill: "Skill 일괄 배포"
DispatchAgentSkillInstallTasks: "Skill 설치 작업 배포"
BatchStartAgent: "에이전트 일괄 시작"
DispatchAgentStartTasks: "에이전트 시작 작업 배포"
BatchStopAgent: "에이전트 일괄 중지"
DispatchAgentStopTasks: "에이전트 중지 작업 배포"
BatchRestartAgent: "에이전트 일괄 재시작"
DispatchAgentRestartTasks: "에이전트 재시작 작업 배포"
BatchDeleteAgent: "에이전트 일괄 삭제"
DispatchAgentDeleteTasks: "에이전트 삭제 작업 배포"
AgentOperateStart: "시작"
AgentOperateStop: "중지"
AgentOperateRestart: "재시작"
AgentOperateDelete: "삭제"
SuccessStatus: "{{ .name }} 성공"
FailedStatus: "{{ .name }} 실패 {{ .err }}"
Start: "시작"
+13
View File
@@ -34,6 +34,7 @@ ErrEntrance: "Maklumat pintu masuk keselamatan salah, sila periksa dan cuba lagi
ErrGroupIsDefault: "Kumpulan lalai tidak boleh dihapuskan"
ErrGroupIsInUse: "Kumpulan sedang digunakan dan tidak boleh dipadam."
ErrAIProxyUserGroupExists: "Nama kumpulan pengguna sudah wujud."
ErrAIProxyBackendAccountExists: "Akaun model ini telah diimport ke dalam kolam model AI Gateway."
ErrAIProxySensitiveGroupInUse: "Kumpulan kata sensitif sedang digunakan dan tidak boleh dipadam."
ErrAIProxySensitiveGroupExists: "Nama kumpulan kata sensitif sudah wujud."
ErrLocalDelete: "Nod tempatan tidak boleh dihapuskan"
@@ -130,6 +131,18 @@ BatchUpgradeAgent: "Naik taraf ejen secara pukal"
DispatchAgentUpgradeTasks: "Hantar tugas naik taraf ejen"
BatchInstallAgentSkill: "Hantar Skill secara pukal"
DispatchAgentSkillInstallTasks: "Hantar tugas pemasangan Skill"
BatchStartAgent: "Mula ejen secara pukal"
DispatchAgentStartTasks: "Hantar tugas mula ejen"
BatchStopAgent: "Henti ejen secara pukal"
DispatchAgentStopTasks: "Hantar tugas henti ejen"
BatchRestartAgent: "Mula semula ejen secara pukal"
DispatchAgentRestartTasks: "Hantar tugas mula semula ejen"
BatchDeleteAgent: "Padam ejen secara pukal"
DispatchAgentDeleteTasks: "Hantar tugas padam ejen"
AgentOperateStart: "Mula"
AgentOperateStop: "Henti"
AgentOperateRestart: "Mula semula"
AgentOperateDelete: "Padam"
SuccessStatus: "{{ .name }} berjaya"
FailedStatus: "{{ .name }} gagal {{ .err }}"
Start: "Mula"
+13
View File
@@ -34,6 +34,7 @@ ErrEntrance: "Erro nas informações de entrada de segurança, por favor, verifi
ErrGroupIsDefault: "Grupo padrão não pode ser excluído"
ErrGroupIsInUse: "O grupo está em uso e não pode ser excluído."
ErrAIProxyUserGroupExists: "O nome do grupo de usuários já existe."
ErrAIProxyBackendAccountExists: "Esta conta de modelo já foi importada para o pool de modelos do AI Gateway."
ErrAIProxySensitiveGroupInUse: "O grupo de palavras sensíveis está em uso e não pode ser excluído."
ErrAIProxySensitiveGroupExists: "O nome do grupo de palavras sensíveis já existe."
ErrLocalDelete: "O nó local não pode ser excluído"
@@ -135,6 +136,18 @@ BatchUpgradeAgent: "Atualizar agentes em lote"
DispatchAgentUpgradeTasks: "Distribuir tarefas de atualização de agentes"
BatchInstallAgentSkill: "Distribuir Skill em lote"
DispatchAgentSkillInstallTasks: "Distribuir tarefas de instalação de Skill"
BatchStartAgent: "Iniciar agentes em lote"
DispatchAgentStartTasks: "Distribuir tarefas de início de agentes"
BatchStopAgent: "Parar agentes em lote"
DispatchAgentStopTasks: "Distribuir tarefas de parada de agentes"
BatchRestartAgent: "Reiniciar agentes em lote"
DispatchAgentRestartTasks: "Distribuir tarefas de reinício de agentes"
BatchDeleteAgent: "Excluir agentes em lote"
DispatchAgentDeleteTasks: "Distribuir tarefas de exclusão de agentes"
AgentOperateStart: "Iniciar"
AgentOperateStop: "Parar"
AgentOperateRestart: "Reiniciar"
AgentOperateDelete: "Excluir"
SuccessStatus: "{{ .name }} bem-sucedido"
FailedStatus: "{{ .name }} falhou {{ .err }}"
Start: "Iniciar"
+13
View File
@@ -34,6 +34,7 @@ ErrEntrance: "Ошибка информации о безопасном вход
ErrGroupIsDefault: "Группу по умолчанию нельзя удалить"
ErrGroupIsInUse: "Группа используется и не может быть удалена."
ErrAIProxyUserGroupExists: "Имя группы пользователей уже существует."
ErrAIProxyBackendAccountExists: "Эта учетная запись модели уже импортирована в пул моделей AI Gateway."
ErrAIProxySensitiveGroupInUse: "Группа чувствительных слов используется и не может быть удалена."
ErrAIProxySensitiveGroupExists: "Имя группы чувствительных слов уже существует."
ErrLocalDelete: "Локальный узел нельзя удалить"
@@ -135,6 +136,18 @@ BatchUpgradeAgent: "Пакетное обновление агентов"
DispatchAgentUpgradeTasks: "Отправить задачи обновления агентов"
BatchInstallAgentSkill: "Пакетная отправка Skill"
DispatchAgentSkillInstallTasks: "Отправить задачи установки Skill"
BatchStartAgent: "Пакетный запуск агентов"
DispatchAgentStartTasks: "Отправить задачи запуска агентов"
BatchStopAgent: "Пакетная остановка агентов"
DispatchAgentStopTasks: "Отправить задачи остановки агентов"
BatchRestartAgent: "Пакетный перезапуск агентов"
DispatchAgentRestartTasks: "Отправить задачи перезапуска агентов"
BatchDeleteAgent: "Пакетное удаление агентов"
DispatchAgentDeleteTasks: "Отправить задачи удаления агентов"
AgentOperateStart: "Запустить"
AgentOperateStop: "Остановить"
AgentOperateRestart: "Перезапустить"
AgentOperateDelete: "Удалить"
SuccessStatus: "{{ .name }} успешно"
FailedStatus: "{{ .name }} не удалось {{ .err }}"
Start: "Начать"
+13
View File
@@ -34,6 +34,7 @@ ErrEntrance: "Güvenlik girişi bilgi hatası, lütfen kontrol edip tekrar deney
ErrGroupIsDefault: "Varsayılan grup, silinemez"
ErrGroupIsInUse: "Grup kullanımda ve silinemez."
ErrAIProxyUserGroupExists: "Kullanıcı grubu adı zaten mevcut."
ErrAIProxyBackendAccountExists: "Bu model hesabı AI Gateway model havuzuna zaten aktarılmış."
ErrAIProxySensitiveGroupInUse: "Hassas kelime grubu kullanımda ve silinemez."
ErrAIProxySensitiveGroupExists: "Hassas kelime grubu adı zaten mevcut."
ErrLocalDelete: "Yerel düğüm silinemez"
@@ -134,6 +135,18 @@ BatchUpgradeAgent: "Aracıları toplu yükselt"
DispatchAgentUpgradeTasks: "Aracı yükseltme görevlerini gönder"
BatchInstallAgentSkill: "Skill toplu dağıt"
DispatchAgentSkillInstallTasks: "Skill kurulum görevlerini gönder"
BatchStartAgent: "Aracıları toplu başlat"
DispatchAgentStartTasks: "Aracı başlatma görevlerini gönder"
BatchStopAgent: "Aracıları toplu durdur"
DispatchAgentStopTasks: "Aracı durdurma görevlerini gönder"
BatchRestartAgent: "Aracıları toplu yeniden başlat"
DispatchAgentRestartTasks: "Aracı yeniden başlatma görevlerini gönder"
BatchDeleteAgent: "Aracıları toplu sil"
DispatchAgentDeleteTasks: "Aracı silme görevlerini gönder"
AgentOperateStart: "Başlat"
AgentOperateStop: "Durdur"
AgentOperateRestart: "Yeniden başlat"
AgentOperateDelete: "Sil"
SuccessStatus: "{{ .name }} başarılı"
FailedStatus: "{{ .name }} başarısız {{ .err }}"
Start: "Başla"
+13
View File
@@ -34,6 +34,7 @@ ErrEntrance: "安全入口資訊錯誤,請檢查後再試。"
ErrGroupIsDefault: "預設分組無法刪除"
ErrGroupIsInUse: "分組正被使用,無法刪除。"
ErrAIProxyUserGroupExists: "使用者組名稱已存在"
ErrAIProxyBackendAccountExists: "該模型帳號已匯入 AI 閘道模型池,請勿重複匯入"
ErrAIProxySensitiveGroupInUse: "敏感詞分組正在使用,無法刪除。"
ErrAIProxySensitiveGroupExists: "敏感詞分組名稱已存在"
ErrLocalDelete: "無法刪除本機節點!"
@@ -135,6 +136,18 @@ BatchUpgradeAgent: "批量升級智能體"
DispatchAgentUpgradeTasks: "下發智能體升級任務"
BatchInstallAgentSkill: "批量下發 Skill"
DispatchAgentSkillInstallTasks: "下發 Skill 安裝任務"
BatchStartAgent: "批量啟動智能體"
DispatchAgentStartTasks: "下發智能體啟動任務"
BatchStopAgent: "批量停止智能體"
DispatchAgentStopTasks: "下發智能體停止任務"
BatchRestartAgent: "批量重啟智能體"
DispatchAgentRestartTasks: "下發智能體重啟任務"
BatchDeleteAgent: "批量刪除智能體"
DispatchAgentDeleteTasks: "下發智能體刪除任務"
AgentOperateStart: "啟動"
AgentOperateStop: "停止"
AgentOperateRestart: "重啟"
AgentOperateDelete: "刪除"
AIBenchmarkRun: "執行 AI 基準測試"
SuccessStatus: "{{ .name }} 成功"
FailedStatus: "{{ .name }} 失敗 {{ .err }}"
+13
View File
@@ -40,6 +40,7 @@ ErrEntrance: "安全入口信息错误,请检查后重试!"
ErrGroupIsDefault: "默认分组,无法删除"
ErrGroupIsInUse: "分组正被使用,无法删除"
ErrAIProxyUserGroupExists: "用户组名称已存在"
ErrAIProxyBackendAccountExists: "该模型账号已导入 AI 网关模型池,请勿重复导入"
ErrAIProxySensitiveGroupInUse: "敏感词分组正在使用,无法删除"
ErrAIProxySensitiveGroupExists: "敏感词分组名称已存在"
ErrLocalDelete: "无法删除本地节点!"
@@ -141,6 +142,18 @@ BatchUpgradeAgent: "批量升级智能体"
DispatchAgentUpgradeTasks: "下发智能体升级任务"
BatchInstallAgentSkill: "批量下发 Skill"
DispatchAgentSkillInstallTasks: "下发 Skill 安装任务"
BatchStartAgent: "批量启动智能体"
DispatchAgentStartTasks: "下发智能体启动任务"
BatchStopAgent: "批量停止智能体"
DispatchAgentStopTasks: "下发智能体停止任务"
BatchRestartAgent: "批量重启智能体"
DispatchAgentRestartTasks: "下发智能体重启任务"
BatchDeleteAgent: "批量删除智能体"
DispatchAgentDeleteTasks: "下发智能体删除任务"
AgentOperateStart: "启动"
AgentOperateStop: "停止"
AgentOperateRestart: "重启"
AgentOperateDelete: "删除"
AIBenchmarkRun: "执行 AI 基准测试"
SuccessStatus: "{{ .name }} 成功"
FailedStatus: "{{ .name }} 失败 {{ .err }}"
+20
View File
@@ -685,18 +685,34 @@ const message = {
batchInstall: 'Batch Install',
batchUpgrade: 'Batch Upgrade',
batchSkillInstall: 'Batch Distribute Skill',
batchStart: 'Batch Start',
batchStop: 'Batch Stop',
batchRestart: 'Batch Restart',
batchDelete: 'Batch Delete',
batchInstallAgent: 'Batch install agent',
dispatchAgentInstallTasks: 'Dispatch agent install tasks',
batchUpgradeAgent: 'Batch upgrade agent',
dispatchAgentUpgradeTasks: 'Dispatch agent upgrade tasks',
batchInstallAgentSkill: 'Batch distribute Skill',
dispatchAgentSkillInstallTasks: 'Dispatch Skill install tasks',
batchStartAgent: 'Batch start agent',
dispatchAgentStartTasks: 'Dispatch agent start tasks',
batchStopAgent: 'Batch stop agent',
dispatchAgentStopTasks: 'Dispatch agent stop tasks',
batchRestartAgent: 'Batch restart agent',
dispatchAgentRestartTasks: 'Dispatch agent restart tasks',
batchDeleteAgent: 'Batch delete agent',
dispatchAgentDeleteTasks: 'Dispatch agent delete tasks',
allNodes: 'All Nodes',
targetVersion: 'Target Version',
skill: 'Skill',
batchInstallTaskSubmitted: 'Batch install task has been submitted',
batchUpgradeTaskSubmitted: 'Batch upgrade task has been submitted',
batchSkillInstallTaskSubmitted: 'Batch Skill distribution task has been submitted',
batchStartTaskSubmitted: 'Batch start task has been submitted',
batchStopTaskSubmitted: 'Batch stop task has been submitted',
batchRestartTaskSubmitted: 'Batch restart task has been submitted',
batchDeleteTaskSubmitted: 'Batch delete task has been submitted',
noAccountHint: 'Choose an existing model account or add a new one.',
accountCount: '{0} model accounts',
syncAgents: 'Sync related agents',
@@ -1000,6 +1016,10 @@ const message = {
serviceEnabled: 'Service Auto-start',
proxyEnabled: 'Gateway Enabled',
statusMessage: 'Status Message',
esLogDropped: 'Dropped ES Logs',
esLogLastSuccessAt: 'Last ES Write',
esLogCircuitOpen: 'Circuit Open',
esLogCircuitUntil: 'ES Circuit Until',
serviceOperateConfirm: 'Confirm to {0} the AI Gateway service?',
deleteBackendConfirm: 'Delete model account {0}?',
deleteBackendTitle: 'Delete Model Account',
+20
View File
@@ -691,18 +691,34 @@ const message = {
batchInstall: 'Instalación por lotes',
batchUpgrade: 'Actualización por lotes',
batchSkillInstall: 'Distribuir Skill por lotes',
batchStart: 'Inicio por lotes',
batchStop: 'Detención por lotes',
batchRestart: 'Reinicio por lotes',
batchDelete: 'Eliminación por lotes',
batchInstallAgent: 'Instalación masiva de agentes',
dispatchAgentInstallTasks: 'Enviar tareas de instalación de agentes',
batchUpgradeAgent: 'Actualización masiva de agentes',
dispatchAgentUpgradeTasks: 'Enviar tareas de actualización de agentes',
batchInstallAgentSkill: 'Distribuir Skill por lotes',
dispatchAgentSkillInstallTasks: 'Enviar tareas de instalación de Skill',
batchStartAgent: 'Inicio masivo de agentes',
dispatchAgentStartTasks: 'Enviar tareas de inicio de agentes',
batchStopAgent: 'Detención masiva de agentes',
dispatchAgentStopTasks: 'Enviar tareas de detención de agentes',
batchRestartAgent: 'Reinicio masivo de agentes',
dispatchAgentRestartTasks: 'Enviar tareas de reinicio de agentes',
batchDeleteAgent: 'Eliminación masiva de agentes',
dispatchAgentDeleteTasks: 'Enviar tareas de eliminación de agentes',
allNodes: 'Todos los nodos',
targetVersion: 'Versión de destino',
skill: 'Skill',
batchInstallTaskSubmitted: 'Tarea de instalación por lotes enviada',
batchUpgradeTaskSubmitted: 'Tarea de actualización por lotes enviada',
batchSkillInstallTaskSubmitted: 'Tarea de distribución de Skill por lotes enviada',
batchStartTaskSubmitted: 'Tarea de inicio por lotes enviada',
batchStopTaskSubmitted: 'Tarea de detención por lotes enviada',
batchRestartTaskSubmitted: 'Tarea de reinicio por lotes enviada',
batchDeleteTaskSubmitted: 'Tarea de eliminación por lotes enviada',
noAccountHint: 'Selecciona una cuenta de modelo existente o agrega una nueva.',
accountCount: '{0} cuentas de modelo',
syncAgents: 'Sincronizar agentes vinculados',
@@ -1015,6 +1031,10 @@ const message = {
serviceEnabled: 'Inicio automático del servicio',
proxyEnabled: 'Gateway habilitado',
statusMessage: 'Mensaje de estado',
esLogDropped: 'Logs ES descartados',
esLogLastSuccessAt: 'Última escritura ES',
esLogCircuitOpen: 'Circuito abierto',
esLogCircuitUntil: 'Circuito ES hasta',
serviceOperateConfirm: '¿Confirmar {0} el servicio de gateway de IA?',
deleteBackendConfirm: '¿Eliminar la cuenta de modelo {0}?',
deleteBackendTitle: 'Eliminar cuenta de modelo',
+20
View File
@@ -686,18 +686,34 @@ const message = {
batchInstall: '一括インストール',
batchUpgrade: '一括アップグレード',
batchSkillInstall: 'Skill 一括配布',
batchStart: '一括起動',
batchStop: '一括停止',
batchRestart: '一括再起動',
batchDelete: '一括削除',
batchInstallAgent: 'エージェントの一括インストール',
dispatchAgentInstallTasks: 'エージェントインストールタスクを配信',
batchUpgradeAgent: 'エージェントの一括アップグレード',
dispatchAgentUpgradeTasks: 'エージェントアップグレードタスクを配信',
batchInstallAgentSkill: 'Skill 一括配布',
dispatchAgentSkillInstallTasks: 'Skill インストールタスクを配信',
batchStartAgent: 'エージェントの一括起動',
dispatchAgentStartTasks: 'エージェント起動タスクを配信',
batchStopAgent: 'エージェントの一括停止',
dispatchAgentStopTasks: 'エージェント停止タスクを配信',
batchRestartAgent: 'エージェントの一括再起動',
dispatchAgentRestartTasks: 'エージェント再起動タスクを配信',
batchDeleteAgent: 'エージェントの一括削除',
dispatchAgentDeleteTasks: 'エージェント削除タスクを配信',
allNodes: 'すべてのノード',
targetVersion: 'ターゲットバージョン',
skill: 'Skill',
batchInstallTaskSubmitted: '一括インストールタスクを送信しました',
batchUpgradeTaskSubmitted: '一括アップグレードタスクを送信しました',
batchSkillInstallTaskSubmitted: 'Skill 一括配布タスクを送信しました',
batchStartTaskSubmitted: '一括起動タスクを送信しました',
batchStopTaskSubmitted: '一括停止タスクを送信しました',
batchRestartTaskSubmitted: '一括再起動タスクを送信しました',
batchDeleteTaskSubmitted: '一括削除タスクを送信しました',
noAccountHint: '既存のモデルアカウントを選択するか新規に追加してください',
accountCount: 'モデルアカウント {0} ',
syncAgents: '関連エージェントを同期',
@@ -1005,6 +1021,10 @@ const message = {
serviceEnabled: 'サービス自動起動',
proxyEnabled: 'ゲートウェイ有効',
statusMessage: '状態メッセージ',
esLogDropped: '破棄された ES ログ',
esLogLastSuccessAt: '最終 ES 書き込み',
esLogCircuitOpen: 'サーキットオープン',
esLogCircuitUntil: 'ES サーキット終了時刻',
serviceOperateConfirm: 'AI ゲートウェイサービスを {0} しますか',
deleteBackendConfirm: 'モデルアカウント {0} を削除しますか',
deleteBackendTitle: 'モデルアカウントを削除',
+20
View File
@@ -678,18 +678,34 @@ const message = {
batchInstall: '일괄 설치',
batchUpgrade: '일괄 업그레이드',
batchSkillInstall: 'Skill 일괄 배포',
batchStart: '일괄 시작',
batchStop: '일괄 중지',
batchRestart: '일괄 재시작',
batchDelete: '일괄 삭제',
batchInstallAgent: '에이전트 일괄 설치',
dispatchAgentInstallTasks: '에이전트 설치 작업 배포',
batchUpgradeAgent: '에이전트 일괄 업그레이드',
dispatchAgentUpgradeTasks: '에이전트 업그레이드 작업 배포',
batchInstallAgentSkill: 'Skill 일괄 배포',
dispatchAgentSkillInstallTasks: 'Skill 설치 작업 배포',
batchStartAgent: '에이전트 일괄 시작',
dispatchAgentStartTasks: '에이전트 시작 작업 배포',
batchStopAgent: '에이전트 일괄 중지',
dispatchAgentStopTasks: '에이전트 중지 작업 배포',
batchRestartAgent: '에이전트 일괄 재시작',
dispatchAgentRestartTasks: '에이전트 재시작 작업 배포',
batchDeleteAgent: '에이전트 일괄 삭제',
dispatchAgentDeleteTasks: '에이전트 삭제 작업 배포',
allNodes: '모든 노드',
targetVersion: '대상 버전',
skill: 'Skill',
batchInstallTaskSubmitted: '일괄 설치 작업이 전송되었습니다',
batchUpgradeTaskSubmitted: '일괄 업그레이드 작업이 전송되었습니다',
batchSkillInstallTaskSubmitted: 'Skill 일괄 배포 작업이 전송되었습니다',
batchStartTaskSubmitted: '일괄 시작 작업이 전송되었습니다',
batchStopTaskSubmitted: '일괄 중지 작업이 전송되었습니다',
batchRestartTaskSubmitted: '일괄 재시작 작업이 전송되었습니다',
batchDeleteTaskSubmitted: '일괄 삭제 작업이 전송되었습니다',
noAccountHint: '기존 모델 계정을 선택하거나 새로 추가하세요.',
accountCount: '모델 계정 {0}',
syncAgents: '관련 에이전트 동기화',
@@ -989,6 +1005,10 @@ const message = {
serviceEnabled: '서비스 자동 시작',
proxyEnabled: '게이트웨이 활성화',
statusMessage: '상태 메시지',
esLogDropped: '삭제된 ES 로그',
esLogLastSuccessAt: '마지막 ES 쓰기',
esLogCircuitOpen: '서킷 오픈',
esLogCircuitUntil: 'ES 서킷 종료 시간',
serviceOperateConfirm: 'AI 게이트웨이 서비스를 {0}하시겠습니까?',
deleteBackendConfirm: '모델 계정 {0}() 삭제하시겠습니까?',
deleteBackendTitle: '모델 계정 삭제',
+20
View File
@@ -693,18 +693,34 @@ const message = {
batchInstall: 'Pemasangan pukal',
batchUpgrade: 'Naik taraf pukal',
batchSkillInstall: 'Hantar Skill secara pukal',
batchStart: 'Mula pukal',
batchStop: 'Henti pukal',
batchRestart: 'Mula semula pukal',
batchDelete: 'Padam pukal',
batchInstallAgent: 'Pasang ejen secara pukal',
dispatchAgentInstallTasks: 'Hantar tugas pemasangan ejen',
batchUpgradeAgent: 'Naik taraf ejen secara pukal',
dispatchAgentUpgradeTasks: 'Hantar tugas naik taraf ejen',
batchInstallAgentSkill: 'Hantar Skill secara pukal',
dispatchAgentSkillInstallTasks: 'Hantar tugas pemasangan Skill',
batchStartAgent: 'Mula ejen secara pukal',
dispatchAgentStartTasks: 'Hantar tugas mula ejen',
batchStopAgent: 'Henti ejen secara pukal',
dispatchAgentStopTasks: 'Hantar tugas henti ejen',
batchRestartAgent: 'Mula semula ejen secara pukal',
dispatchAgentRestartTasks: 'Hantar tugas mula semula ejen',
batchDeleteAgent: 'Padam ejen secara pukal',
dispatchAgentDeleteTasks: 'Hantar tugas padam ejen',
allNodes: 'Semua nod',
targetVersion: 'Versi sasaran',
skill: 'Skill',
batchInstallTaskSubmitted: 'Tugas pemasangan pukal telah dihantar',
batchUpgradeTaskSubmitted: 'Tugas naik taraf pukal telah dihantar',
batchSkillInstallTaskSubmitted: 'Tugas penghantaran Skill pukal telah dihantar',
batchStartTaskSubmitted: 'Tugas mula pukal telah dihantar',
batchStopTaskSubmitted: 'Tugas henti pukal telah dihantar',
batchRestartTaskSubmitted: 'Tugas mula semula pukal telah dihantar',
batchDeleteTaskSubmitted: 'Tugas padam pukal telah dihantar',
noAccountHint: 'Pilih akaun model sedia ada atau tambah yang baharu.',
accountCount: 'Akaun model {0}',
syncAgents: 'Segerakkan agen berkaitan',
@@ -1014,6 +1030,10 @@ const message = {
serviceEnabled: 'Auto mula perkhidmatan',
proxyEnabled: 'Gateway diaktifkan',
statusMessage: 'Mesej status',
esLogDropped: 'Log ES dibuang',
esLogLastSuccessAt: 'Tulisan ES terakhir',
esLogCircuitOpen: 'Litar terbuka',
esLogCircuitUntil: 'Litar ES hingga',
serviceOperateConfirm: 'Sahkan untuk {0} perkhidmatan gateway AI?',
deleteBackendConfirm: 'Padam akaun model {0}?',
deleteBackendTitle: 'Padam akaun model',
+20
View File
@@ -687,18 +687,34 @@ const message = {
batchInstall: 'Instalação em lote',
batchUpgrade: 'Atualização em lote',
batchSkillInstall: 'Distribuir Skill em lote',
batchStart: 'Iniciar em lote',
batchStop: 'Parar em lote',
batchRestart: 'Reiniciar em lote',
batchDelete: 'Excluir em lote',
batchInstallAgent: 'Instalar agentes em lote',
dispatchAgentInstallTasks: 'Distribuir tarefas de instalação de agentes',
batchUpgradeAgent: 'Atualizar agentes em lote',
dispatchAgentUpgradeTasks: 'Distribuir tarefas de atualização de agentes',
batchInstallAgentSkill: 'Distribuir Skill em lote',
dispatchAgentSkillInstallTasks: 'Distribuir tarefas de instalação de Skill',
batchStartAgent: 'Iniciar agentes em lote',
dispatchAgentStartTasks: 'Distribuir tarefas de início de agentes',
batchStopAgent: 'Parar agentes em lote',
dispatchAgentStopTasks: 'Distribuir tarefas de parada de agentes',
batchRestartAgent: 'Reiniciar agentes em lote',
dispatchAgentRestartTasks: 'Distribuir tarefas de reinício de agentes',
batchDeleteAgent: 'Excluir agentes em lote',
dispatchAgentDeleteTasks: 'Distribuir tarefas de exclusão de agentes',
allNodes: 'Todos os nós',
targetVersion: 'Versão de destino',
skill: 'Skill',
batchInstallTaskSubmitted: 'Tarefa de instalação em lote enviada',
batchUpgradeTaskSubmitted: 'Tarefa de atualização em lote enviada',
batchSkillInstallTaskSubmitted: 'Tarefa de distribuição de Skill enviada',
batchStartTaskSubmitted: 'Tarefa de início em lote enviada',
batchStopTaskSubmitted: 'Tarefa de parada em lote enviada',
batchRestartTaskSubmitted: 'Tarefa de reinício em lote enviada',
batchDeleteTaskSubmitted: 'Tarefa de exclusão em lote enviada',
noAccountHint: 'Selecione uma conta de modelo existente ou adicione uma nova.',
accountCount: '{0} contas de modelo',
syncAgents: 'Sincronizar agentes vinculados',
@@ -1010,6 +1026,10 @@ const message = {
serviceEnabled: 'Inicialização automática do serviço',
proxyEnabled: 'Gateway habilitado',
statusMessage: 'Mensagem de status',
esLogDropped: 'Logs ES descartados',
esLogLastSuccessAt: 'Última gravação ES',
esLogCircuitOpen: 'Circuito aberto',
esLogCircuitUntil: 'Circuito ES até',
serviceOperateConfirm: 'Confirmar {0} o serviço de gateway de IA?',
deleteBackendConfirm: 'Excluir conta de modelo {0}?',
deleteBackendTitle: 'Excluir conta de modelo',
+20
View File
@@ -685,18 +685,34 @@ const message = {
batchInstall: 'Пакетная установка',
batchUpgrade: 'Пакетное обновление',
batchSkillInstall: 'Пакетная отправка Skill',
batchStart: 'Пакетный запуск',
batchStop: 'Пакетная остановка',
batchRestart: 'Пакетный перезапуск',
batchDelete: 'Пакетное удаление',
batchInstallAgent: 'Пакетная установка агентов',
dispatchAgentInstallTasks: 'Отправить задачи установки агентов',
batchUpgradeAgent: 'Пакетное обновление агентов',
dispatchAgentUpgradeTasks: 'Отправить задачи обновления агентов',
batchInstallAgentSkill: 'Пакетная отправка Skill',
dispatchAgentSkillInstallTasks: 'Отправить задачи установки Skill',
batchStartAgent: 'Пакетный запуск агентов',
dispatchAgentStartTasks: 'Отправить задачи запуска агентов',
batchStopAgent: 'Пакетная остановка агентов',
dispatchAgentStopTasks: 'Отправить задачи остановки агентов',
batchRestartAgent: 'Пакетный перезапуск агентов',
dispatchAgentRestartTasks: 'Отправить задачи перезапуска агентов',
batchDeleteAgent: 'Пакетное удаление агентов',
dispatchAgentDeleteTasks: 'Отправить задачи удаления агентов',
allNodes: 'Все узлы',
targetVersion: 'Целевая версия',
skill: 'Skill',
batchInstallTaskSubmitted: 'Задача пакетной установки отправлена',
batchUpgradeTaskSubmitted: 'Задача пакетного обновления отправлена',
batchSkillInstallTaskSubmitted: 'Задача пакетной отправки Skill отправлена',
batchStartTaskSubmitted: 'Задача пакетного запуска отправлена',
batchStopTaskSubmitted: 'Задача пакетной остановки отправлена',
batchRestartTaskSubmitted: 'Задача пакетного перезапуска отправлена',
batchDeleteTaskSubmitted: 'Задача пакетного удаления отправлена',
noAccountHint: 'Выберите существующий аккаунт модели или добавьте новый.',
accountCount: '{0} аккаунтов модели',
syncAgents: 'Синхронизировать связанные агенты',
@@ -1004,6 +1020,10 @@ const message = {
serviceEnabled: 'Автозапуск сервиса',
proxyEnabled: 'Шлюз включен',
statusMessage: 'Сообщение статуса',
esLogDropped: 'Отброшенные ES логи',
esLogLastSuccessAt: 'Последняя запись ES',
esLogCircuitOpen: 'Цепь разомкнута',
esLogCircuitUntil: 'ES разомкнута до',
serviceOperateConfirm: 'Подтвердить {0} сервис AI-шлюза?',
deleteBackendConfirm: 'Удалить аккаунт модели {0}?',
deleteBackendTitle: 'Удалить аккаунт модели',
+20
View File
@@ -689,18 +689,34 @@ const message = {
batchInstall: 'Toplu kurulum',
batchUpgrade: 'Toplu yükseltme',
batchSkillInstall: 'Skill toplu dağıt',
batchStart: 'Toplu başlat',
batchStop: 'Toplu durdur',
batchRestart: 'Toplu yeniden başlat',
batchDelete: 'Toplu sil',
batchInstallAgent: 'Aracıları toplu kur',
dispatchAgentInstallTasks: 'Aracı kurulum görevlerini gönder',
batchUpgradeAgent: 'Aracıları toplu yükselt',
dispatchAgentUpgradeTasks: 'Aracı yükseltme görevlerini gönder',
batchInstallAgentSkill: 'Skill toplu dağıt',
dispatchAgentSkillInstallTasks: 'Skill kurulum görevlerini gönder',
batchStartAgent: 'Aracıları toplu başlat',
dispatchAgentStartTasks: 'Aracı başlatma görevlerini gönder',
batchStopAgent: 'Aracıları toplu durdur',
dispatchAgentStopTasks: 'Aracı durdurma görevlerini gönder',
batchRestartAgent: 'Aracıları toplu yeniden başlat',
dispatchAgentRestartTasks: 'Aracı yeniden başlatma görevlerini gönder',
batchDeleteAgent: 'Aracıları toplu sil',
dispatchAgentDeleteTasks: 'Aracı silme görevlerini gönder',
allNodes: 'Tüm düğümler',
targetVersion: 'Hedef sürüm',
skill: 'Skill',
batchInstallTaskSubmitted: 'Toplu kurulum görevi gönderildi',
batchUpgradeTaskSubmitted: 'Toplu yükseltme görevi gönderildi',
batchSkillInstallTaskSubmitted: 'Skill toplu dağıtım görevi gönderildi',
batchStartTaskSubmitted: 'Toplu başlatma görevi gönderildi',
batchStopTaskSubmitted: 'Toplu durdurma görevi gönderildi',
batchRestartTaskSubmitted: 'Toplu yeniden başlatma görevi gönderildi',
batchDeleteTaskSubmitted: 'Toplu silme görevi gönderildi',
noAccountHint: 'Mevcut bir model hesabını seçin veya yeni bir tane ekleyin.',
accountCount: '{0} model hesabı',
syncAgents: 'İlişkili ajanları senkronize et',
@@ -1012,6 +1028,10 @@ const message = {
serviceEnabled: 'Servis otomatik başlatma',
proxyEnabled: ' geçidi etkin',
statusMessage: 'Durum mesajı',
esLogDropped: 'Atılan ES logları',
esLogLastSuccessAt: 'Son ES yazımı',
esLogCircuitOpen: 'Devre açık',
esLogCircuitUntil: 'ES devresi şu zamana kadar',
serviceOperateConfirm: 'AI Geçidi servisini {0} onaylıyor musunuz?',
deleteBackendConfirm: 'Model hesabı {0} silinsin mi?',
deleteBackendTitle: 'Model hesabını sil',
+20
View File
@@ -655,18 +655,34 @@ const message = {
batchInstall: '批量安裝',
batchUpgrade: '批量升級',
batchSkillInstall: '批量下發 Skill',
batchStart: '批量啟動',
batchStop: '批量停止',
batchRestart: '批量重啟',
batchDelete: '批量刪除',
batchInstallAgent: '批量安裝智能體',
dispatchAgentInstallTasks: '下發智能體安裝任務',
batchUpgradeAgent: '批量升級智能體',
dispatchAgentUpgradeTasks: '下發智能體升級任務',
batchInstallAgentSkill: '批量下發 Skill',
dispatchAgentSkillInstallTasks: '下發 Skill 安裝任務',
batchStartAgent: '批量啟動智能體',
dispatchAgentStartTasks: '下發智能體啟動任務',
batchStopAgent: '批量停止智能體',
dispatchAgentStopTasks: '下發智能體停止任務',
batchRestartAgent: '批量重啟智能體',
dispatchAgentRestartTasks: '下發智能體重啟任務',
batchDeleteAgent: '批量刪除智能體',
dispatchAgentDeleteTasks: '下發智能體刪除任務',
allNodes: '所有節點',
targetVersion: '目標版本',
skill: 'Skill',
batchInstallTaskSubmitted: '批量安裝任務已下發',
batchUpgradeTaskSubmitted: '批量升級任務已下發',
batchSkillInstallTaskSubmitted: '批量下發 Skill 任務已下發',
batchStartTaskSubmitted: '批量啟動任務已下發',
batchStopTaskSubmitted: '批量停止任務已下發',
batchRestartTaskSubmitted: '批量重啟任務已下發',
batchDeleteTaskSubmitted: '批量刪除任務已下發',
noAccountHint: '選擇已有模型帳號或直接建立',
accountCount: '模型帳號 {0} ',
syncAgents: '同步關聯智能體',
@@ -951,6 +967,10 @@ const message = {
serviceEnabled: '服務自啟',
proxyEnabled: '閘道啟用',
statusMessage: '狀態資訊',
esLogDropped: 'ES 日誌丟棄數',
esLogLastSuccessAt: 'ES 最近寫入時間',
esLogCircuitOpen: '熔斷中',
esLogCircuitUntil: 'ES 熔斷結束時間',
serviceOperateConfirm: '確認{0} AI 閘道服務',
deleteBackendConfirm: '確認刪除模型帳號 {0}',
deleteBackendTitle: '刪除模型帳號',
+20
View File
@@ -652,18 +652,34 @@ const message = {
batchInstall: '批量安装',
batchUpgrade: '批量升级',
batchSkillInstall: '批量下发 Skill',
batchStart: '批量启动',
batchStop: '批量停止',
batchRestart: '批量重启',
batchDelete: '批量删除',
batchInstallAgent: '批量安装智能体',
dispatchAgentInstallTasks: '下发智能体安装任务',
batchUpgradeAgent: '批量升级智能体',
dispatchAgentUpgradeTasks: '下发智能体升级任务',
batchInstallAgentSkill: '批量下发 Skill',
dispatchAgentSkillInstallTasks: '下发 Skill 安装任务',
batchStartAgent: '批量启动智能体',
dispatchAgentStartTasks: '下发智能体启动任务',
batchStopAgent: '批量停止智能体',
dispatchAgentStopTasks: '下发智能体停止任务',
batchRestartAgent: '批量重启智能体',
dispatchAgentRestartTasks: '下发智能体重启任务',
batchDeleteAgent: '批量删除智能体',
dispatchAgentDeleteTasks: '下发智能体删除任务',
allNodes: '所有节点',
targetVersion: '目标版本',
skill: 'Skill',
batchInstallTaskSubmitted: '批量安装任务已下发',
batchUpgradeTaskSubmitted: '批量升级任务已下发',
batchSkillInstallTaskSubmitted: '批量下发 Skill 任务已下发',
batchStartTaskSubmitted: '批量启动任务已下发',
batchStopTaskSubmitted: '批量停止任务已下发',
batchRestartTaskSubmitted: '批量重启任务已下发',
batchDeleteTaskSubmitted: '批量删除任务已下发',
noAccountHint: '选择已有模型账号或直接创建',
accountCount: '模型账号 {0} ',
syncAgents: '同步关联智能体',
@@ -942,6 +958,10 @@ const message = {
serviceEnabled: '服务自启',
proxyEnabled: '网关启用',
statusMessage: '状态信息',
esLogDropped: 'ES 日志丢弃数',
esLogLastSuccessAt: 'ES 最近写入时间',
esLogCircuitOpen: '熔断中',
esLogCircuitUntil: 'ES 熔断结束时间',
serviceOperateConfirm: '确认{0} AI 网关服务',
deleteBackendConfirm: '确认删除模型账号 {0}',
deleteBackendTitle: '删除模型账号',
+8
View File
@@ -7,6 +7,14 @@ const taskTextMap: Record<string, string> = {
DispatchAgentUpgradeTasks: 'aiTools.agents.dispatchAgentUpgradeTasks',
BatchInstallAgentSkill: 'aiTools.agents.batchInstallAgentSkill',
DispatchAgentSkillInstallTasks: 'aiTools.agents.dispatchAgentSkillInstallTasks',
BatchStartAgent: 'aiTools.agents.batchStartAgent',
DispatchAgentStartTasks: 'aiTools.agents.dispatchAgentStartTasks',
BatchStopAgent: 'aiTools.agents.batchStopAgent',
DispatchAgentStopTasks: 'aiTools.agents.dispatchAgentStopTasks',
BatchRestartAgent: 'aiTools.agents.batchRestartAgent',
DispatchAgentRestartTasks: 'aiTools.agents.dispatchAgentRestartTasks',
BatchDeleteAgent: 'aiTools.agents.batchDeleteAgent',
DispatchAgentDeleteTasks: 'aiTools.agents.dispatchAgentDeleteTasks',
};
export const translateTaskText = (value?: string) => {
@@ -53,7 +53,7 @@ const onConfirm = async () => {
try {
const data = JSON.parse(mcpServerJson.value);
if (!data.mcpServers || typeof data.mcpServers !== 'object') {
throw new Error(i18n.global.t('mcp.importMcpJsonError'));
throw new Error(i18n.global.t('aiTools.mcp.importMcpJsonError'));
}
mcpServerConfig.value = Object.entries(data.mcpServers).map(([name, config]: any) => ({
name,
@@ -50,12 +50,12 @@
<el-row :gutter="20" v-for="(env, index) in mcpServer.environments" :key="index">
<el-col :span="8">
<el-form-item :prop="`environments.${index}.key`" :rules="rules.key">
<el-input v-model="env.key" :placeholder="$t('mcp.envKey')" />
<el-input v-model="env.key" :placeholder="$t('aiTools.mcp.envKey')" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :prop="`environments.${index}.value`" :rules="rules.value">
<el-input v-model="env.value" :placeholder="$t('mcp.envValue')" />
<el-input v-model="env.value" :placeholder="$t('aiTools.mcp.envValue')" />
</el-form-item>
</el-col>
<el-col :span="4">