feat(checkpoints): add 'Send to Workflow' option in context menu

- Add 'Send to Workflow' menu item to checkpoint context menu (templates/checkpoints.html)
- Implement sendCheckpointToWorkflow() method in CheckpointContextMenu.js
- Use unified 'Model' terminology for toast messages instead of differentiating checkpoint/diffusion model
- Add translation keys: checkpoints.contextMenu.sendToWorkflow, uiHelpers.workflow.modelUpdated, modelFailed
- Complete translations for all 10 locales (en, zh-CN, zh-TW, ja, ko, de, fr, es, ru, he)
This commit is contained in:
Will Miao
2026-03-31 19:52:20 +08:00
parent 8dc2a2f76b
commit ba3f15dbc6
15 changed files with 115 additions and 32 deletions

View File

@@ -826,7 +826,8 @@
"diffusion_model": "Diffusion Model"
},
"contextMenu": {
"moveToOtherTypeFolder": "In {otherType}-Ordner verschieben"
"moveToOtherTypeFolder": "In {otherType}-Ordner verschieben",
"sendToWorkflow": "[TODO: Translate] Send to Workflow"
}
},
"embeddings": {
@@ -1339,7 +1340,9 @@
"recipeReplaced": "Rezept im Workflow ersetzt",
"recipeFailedToSend": "Fehler beim Senden des Rezepts an den Workflow",
"noMatchingNodes": "Keine kompatiblen Knoten im aktuellen Workflow verfügbar",
"noTargetNodeSelected": "Kein Zielknoten ausgewählt"
"noTargetNodeSelected": "Kein Zielknoten ausgewählt",
"modelUpdated": "Modell im Workflow aktualisiert",
"modelFailed": "Fehler beim Aktualisieren des Modellknotens"
},
"nodeSelector": {
"recipe": "Rezept",

View File

@@ -826,7 +826,8 @@
"diffusion_model": "Diffusion Model"
},
"contextMenu": {
"moveToOtherTypeFolder": "Move to {otherType} Folder"
"moveToOtherTypeFolder": "Move to {otherType} Folder",
"sendToWorkflow": "Send to Workflow"
}
},
"embeddings": {
@@ -1339,7 +1340,9 @@
"recipeReplaced": "Recipe replaced in workflow",
"recipeFailedToSend": "Failed to send recipe to workflow",
"noMatchingNodes": "No compatible nodes available in the current workflow",
"noTargetNodeSelected": "No target node selected"
"noTargetNodeSelected": "No target node selected",
"modelUpdated": "Model updated in workflow",
"modelFailed": "Failed to update model node"
},
"nodeSelector": {
"recipe": "Recipe",

View File

@@ -826,7 +826,8 @@
"diffusion_model": "Diffusion Model"
},
"contextMenu": {
"moveToOtherTypeFolder": "Mover a la carpeta {otherType}"
"moveToOtherTypeFolder": "Mover a la carpeta {otherType}",
"sendToWorkflow": "[TODO: Translate] Send to Workflow"
}
},
"embeddings": {
@@ -1339,7 +1340,9 @@
"recipeReplaced": "Receta reemplazada en el flujo de trabajo",
"recipeFailedToSend": "Error al enviar receta al flujo de trabajo",
"noMatchingNodes": "No hay nodos compatibles disponibles en el flujo de trabajo actual",
"noTargetNodeSelected": "No se ha seleccionado ningún nodo de destino"
"noTargetNodeSelected": "No se ha seleccionado ningún nodo de destino",
"modelUpdated": "Modelo actualizado en el flujo de trabajo",
"modelFailed": "Error al actualizar nodo de modelo"
},
"nodeSelector": {
"recipe": "Receta",

View File

@@ -826,7 +826,8 @@
"diffusion_model": "Diffusion Model"
},
"contextMenu": {
"moveToOtherTypeFolder": "Déplacer vers le dossier {otherType}"
"moveToOtherTypeFolder": "Déplacer vers le dossier {otherType}",
"sendToWorkflow": "[TODO: Translate] Send to Workflow"
}
},
"embeddings": {
@@ -1339,7 +1340,9 @@
"recipeReplaced": "Recipe remplacée dans le workflow",
"recipeFailedToSend": "Échec de l'envoi de la recipe au workflow",
"noMatchingNodes": "Aucun nœud compatible disponible dans le workflow actuel",
"noTargetNodeSelected": "Aucun nœud cible sélectionné"
"noTargetNodeSelected": "Aucun nœud cible sélectionné",
"modelUpdated": "Modèle mis à jour dans le workflow",
"modelFailed": "Échec de la mise à jour du nœud modèle"
},
"nodeSelector": {
"recipe": "Recipe",

View File

@@ -826,7 +826,8 @@
"diffusion_model": "Diffusion Model"
},
"contextMenu": {
"moveToOtherTypeFolder": "העבר לתיקיית {otherType}"
"moveToOtherTypeFolder": "העבר לתיקיית {otherType}",
"sendToWorkflow": "[TODO: Translate] Send to Workflow"
}
},
"embeddings": {
@@ -1339,7 +1340,9 @@
"recipeReplaced": "מתכון הוחלף ב-workflow",
"recipeFailedToSend": "שליחת מתכון ל-workflow נכשלה",
"noMatchingNodes": "אין צמתים תואמים זמינים ב-workflow הנוכחי",
"noTargetNodeSelected": "לא נבחר צומת יעד"
"noTargetNodeSelected": "לא נבחר צומת יעד",
"modelUpdated": "מודל עודכן ב-workflow",
"modelFailed": "עדכון צומת המודל נכשל"
},
"nodeSelector": {
"recipe": "מתכון",

View File

@@ -826,7 +826,8 @@
"diffusion_model": "Diffusion Model"
},
"contextMenu": {
"moveToOtherTypeFolder": "{otherType} フォルダに移動"
"moveToOtherTypeFolder": "{otherType} フォルダに移動",
"sendToWorkflow": "[TODO: Translate] Send to Workflow"
}
},
"embeddings": {
@@ -1339,7 +1340,9 @@
"recipeReplaced": "レシピがワークフローで置換されました",
"recipeFailedToSend": "レシピをワークフローに送信できませんでした",
"noMatchingNodes": "現在のワークフローには互換性のあるノードがありません",
"noTargetNodeSelected": "ターゲットノードが選択されていません"
"noTargetNodeSelected": "ターゲットノードが選択されていません",
"modelUpdated": "モデルがワークフローで更新されました",
"modelFailed": "モデルノードの更新に失敗しました"
},
"nodeSelector": {
"recipe": "レシピ",

View File

@@ -826,7 +826,8 @@
"diffusion_model": "Diffusion Model"
},
"contextMenu": {
"moveToOtherTypeFolder": "{otherType} 폴더로 이동"
"moveToOtherTypeFolder": "{otherType} 폴더로 이동",
"sendToWorkflow": "[TODO: Translate] Send to Workflow"
}
},
"embeddings": {
@@ -1339,7 +1340,9 @@
"recipeReplaced": "레시피가 워크플로에서 교체되었습니다",
"recipeFailedToSend": "레시피를 워크플로로 전송하지 못했습니다",
"noMatchingNodes": "현재 워크플로에서 호환되는 노드가 없습니다",
"noTargetNodeSelected": "대상 노드가 선택되지 않았습니다"
"noTargetNodeSelected": "대상 노드가 선택되지 않았습니다",
"modelUpdated": "모델이 워크플로에서 업데이트되었습니다",
"modelFailed": "모델 노드 업데이트 실패"
},
"nodeSelector": {
"recipe": "레시피",

View File

@@ -826,7 +826,8 @@
"diffusion_model": "Diffusion Model"
},
"contextMenu": {
"moveToOtherTypeFolder": "Переместить в папку {otherType}"
"moveToOtherTypeFolder": "Переместить в папку {otherType}",
"sendToWorkflow": "[TODO: Translate] Send to Workflow"
}
},
"embeddings": {
@@ -1339,7 +1340,9 @@
"recipeReplaced": "Рецепт заменён в workflow",
"recipeFailedToSend": "Не удалось отправить рецепт в workflow",
"noMatchingNodes": "В текущем workflow нет совместимых узлов",
"noTargetNodeSelected": "Целевой узел не выбран"
"noTargetNodeSelected": "Целевой узел не выбран",
"modelUpdated": "Модель обновлена в workflow",
"modelFailed": "Не удалось обновить узел модели"
},
"nodeSelector": {
"recipe": "Рецепт",

View File

@@ -826,7 +826,8 @@
"diffusion_model": "Diffusion Model"
},
"contextMenu": {
"moveToOtherTypeFolder": "移动到 {otherType} 文件夹"
"moveToOtherTypeFolder": "移动到 {otherType} 文件夹",
"sendToWorkflow": "[TODO: Translate] Send to Workflow"
}
},
"embeddings": {
@@ -1339,7 +1340,9 @@
"recipeReplaced": "配方已替换到工作流",
"recipeFailedToSend": "发送配方到工作流失败",
"noMatchingNodes": "当前工作流中没有兼容的节点",
"noTargetNodeSelected": "未选择目标节点"
"noTargetNodeSelected": "未选择目标节点",
"modelUpdated": "模型已更新到工作流",
"modelFailed": "更新模型节点失败"
},
"nodeSelector": {
"recipe": "配方",

View File

@@ -826,7 +826,8 @@
"diffusion_model": "Diffusion Model"
},
"contextMenu": {
"moveToOtherTypeFolder": "移動到 {otherType} 資料夾"
"moveToOtherTypeFolder": "移動到 {otherType} 資料夾",
"sendToWorkflow": "[TODO: Translate] Send to Workflow"
}
},
"embeddings": {
@@ -1339,7 +1340,9 @@
"recipeReplaced": "配方已取代於工作流",
"recipeFailedToSend": "傳送配方到工作流失敗",
"noMatchingNodes": "目前工作流程中沒有相容的節點",
"noTargetNodeSelected": "未選擇目標節點"
"noTargetNodeSelected": "未選擇目標節點",
"modelUpdated": "模型已更新到工作流",
"modelFailed": "更新模型節點失敗"
},
"nodeSelector": {
"recipe": "配方",