From 349ea2a60afe3aa7576c08806815eef0ab8e719b Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Fri, 5 Jun 2026 14:14:47 -0700 Subject: [PATCH] feat(i18n): translate all new workflow editor keys across es/fr/ko/zh-CN/zh-TW; stabilize palette test --- packages/i18n/locales/es/app.json | 125 ++++++++++++++++++--------- packages/i18n/locales/fr/app.json | 125 ++++++++++++++++++--------- packages/i18n/locales/ko/app.json | 125 ++++++++++++++++++--------- packages/i18n/locales/zh-CN/app.json | 125 ++++++++++++++++++--------- packages/i18n/locales/zh-TW/app.json | 125 ++++++++++++++++++--------- 5 files changed, 415 insertions(+), 210 deletions(-) diff --git a/packages/i18n/locales/es/app.json b/packages/i18n/locales/es/app.json index 6289a6ded7..9d3b07f82b 100644 --- a/packages/i18n/locales/es/app.json +++ b/packages/i18n/locales/es/app.json @@ -1466,7 +1466,7 @@ "unknown": "Desconocido", "unsavedChanges": "Cambios sin guardar", "yes": "Sí", - "dismiss": "" + "dismiss": "Descartar" }, "composer": { "loadingAgents": "Cargando agentes…", @@ -2444,7 +2444,7 @@ "viewProjects": "Ver proyectos", "viewUsage": "Ver uso", "workingBranch": "Rama de trabajo", - "workflows": "" + "workflows": "Flujos de trabajo" }, "health": { "activeTasks": "Tareas activas", @@ -3459,7 +3459,7 @@ "terminal": "Terminal", "todos": "Pendientes", "usage": "Uso", - "workflows": "" + "workflows": "Flujos de trabajo" }, "newTaskModal": { "addDependencies": "Añadir dependencias", @@ -6214,7 +6214,13 @@ "usingPreset": "Usando preajuste: {{name}}", "workflowStepsDescription": "Selecciona los pasos a ejecutar tras completar la implementación de la tarea", "workflowStepsLabel": "Pasos del flujo de trabajo", - "workingBranchLabel": "Rama de trabajo" + "workingBranchLabel": "Rama de trabajo", + "workflowDefaultBadge": "(predeterminado)", + "workflowHelp": "Los pasos del flujo de trabajo seleccionado se ejecutan automáticamente alrededor de la ejecución de esta tarea.", + "workflowLabel": "Flujo de trabajo", + "workflowNone": "Sin flujo de trabajo", + "workflowsCta": "Configurar flujos de trabajo en el editor", + "workflowsLoading": "Cargando flujos de trabajo…" }, "taskHandlers": { "githubImported": "Importado {{id}} desde GitHub" @@ -6762,21 +6768,29 @@ "reviewPlan": "Plan review", "reviewType": "Review type", "splitNote": "Las ramas se ejecutan de forma concurrente desde este nodo. No se permiten uniones de ejecución y fusión dentro de una rama.", - "stepExecuteLabel": "Step execute", - "autoLayout": "", - "cycleBlocked": "", - "deleteEdge": "", - "deleteNode": "", - "edgeCondition": "", - "interpreterOnly": "", - "summaryAwaitInput": "", - "summaryCodeDefault": "", - "summaryGateAdvisory": "", - "summaryGateBlocks": "", - "summaryHoldRelease": "", - "summaryNotConfigured": "", - "summaryReviewType": "", - "trivialGraphHint": "" + "stepExecuteLabel": "Ejecutar paso", + "autoLayout": "Diseño automático", + "cycleBlocked": "Esa conexión crearía un ciclo — solo las conexiones de revisión dentro de una plantilla for-each pueden hacer bucles de retorno", + "deleteEdge": "Eliminar conexión", + "deleteNode": "Eliminar nodo", + "edgeCondition": "Condición", + "interpreterOnly": "Este flujo de trabajo tiene ramas, por lo que se ejecuta en el intérprete de grafo — no puede compilarse al motor de pasos lineal, pero igualmente se ejecutará.", + "summaryAwaitInput": "Espera entrada del usuario", + "summaryCodeDefault": "TypeScript", + "summaryGateAdvisory": "Asesor", + "summaryGateBlocks": "Compuerta (bloquea)", + "summaryHoldRelease": "Liberación: {{release}}", + "summaryNotConfigured": "No configurado", + "summaryReviewType": "Revisión {{type}}", + "trivialGraphHint": "Este flujo de trabajo solo ejecuta inicio → fin. Añade pasos desde la paleta superior para construirlo.", + "insertTemplate": "Insertar plantilla {{name}}", + "templateFilterLabel": "Filtrar plantillas", + "templateFilterPlaceholder": "Filtrar plantillas", + "templateSeamConflict": "Este fragmento duplica la unión \"{{seam}}\" que ya está en el lienzo, por lo que no se puede insertar.", + "templatesBuiltinSteps": "Pasos integrados", + "templatesFragments": "Fragmentos", + "templatesPluginSteps": "Pasos de plugin", + "templatesSection": "Plantillas" }, "workflows": { "duplicateToCustomize": "", @@ -6785,29 +6799,56 @@ "savedNotCompilable": "", "saveFailed": "", "selectOrCreate": "", - "clickToEditDescription": "", - "clickToRename": "", - "created": "", - "createDescription": "", - "createFailed": "", - "createName": "", - "createNameRequired": "", - "createSubmit": "", - "createTitle": "", - "deleted": "", - "deleteFailed": "", - "deleteMessage": "", - "deleteTitle": "", - "descriptionLabel": "", - "descriptionPlaceholder": "", - "discardConfirm": "", - "discardMessage": "", - "discardTitle": "", - "emptyDescription": "", - "emptyTitle": "", - "nameLabel": "", - "newWorkflow": "", - "migrationNotice": "" + "clickToEditDescription": "Haz clic para editar la descripción", + "clickToRename": "Haz clic para renombrar", + "created": "Flujo de trabajo «{{name}}» creado", + "createDescription": "Descripción (opcional)", + "createFailed": "Error al crear el flujo de trabajo", + "createName": "Nombre", + "createNameRequired": "Introduce un nombre para el flujo de trabajo", + "createSubmit": "Crear", + "createTitle": "Nuevo flujo de trabajo", + "deleted": "Flujo de trabajo eliminado", + "deleteFailed": "Error al eliminar el flujo de trabajo", + "deleteMessage": "¿Eliminar el flujo de trabajo «{{name}}»? Esta acción no se puede deshacer.", + "deleteTitle": "¿Eliminar flujo de trabajo?", + "descriptionLabel": "Descripción del flujo de trabajo", + "descriptionPlaceholder": "Añadir una descripción", + "discardConfirm": "Descartar", + "discardMessage": "Tienes cambios no guardados en este flujo de trabajo. ¿Descartarlos?", + "discardTitle": "¿Descartar cambios no guardados?", + "emptyDescription": "Los flujos de trabajo orquestan los pasos y compuertas que se ejecutan alrededor de la ejecución de tareas. Crea uno para comenzar a organizar ese flujo.", + "emptyTitle": "Ningún flujo de trabajo seleccionado", + "nameLabel": "Nombre del flujo de trabajo", + "newWorkflow": "Nuevo flujo de trabajo", + "migrationNotice": "Los pasos del flujo de trabajo heredado fueron convertidos — encuéntralos como plantillas en la paleta y como el flujo de trabajo «Pasos migrados».", + "aiEdit": "Diseñar con IA", + "aiFailed": "Error al diseñar el flujo de trabajo", + "aiPromptPlaceholder": "p. ej. Ejecutar lint y pruebas antes de la fusión, luego publicar un comentario de registro de cambios tras la fusión", + "aiPromptRequired": "Describe el flujo de trabajo que deseas", + "aiReplaceConfirm": "¿Reemplazar el grafo actual con el diseño de IA? Los cambios no guardados se perderán.", + "aiReplaceConfirmLabel": "Reemplazar", + "aiReplaceTitle": "¿Reemplazar grafo?", + "aiSubmit": "Diseñar con IA", + "aiToggle": "Descríbelo en su lugar", + "export": "Exportar", + "exportDirtyTooltip": "Guarda antes de exportar", + "exportFailed": "Error al exportar el flujo de trabajo", + "exportTooltip": "Descargar como JSON — contiene el texto completo de tu prompt y comando", + "import": "Importar", + "imported": "Flujo de trabajo «{{name}}» importado", + "importFailed": "Error al importar", + "importInvalidJson": "Ese archivo no es JSON válido.", + "importStripped": "Se eliminaron los indicadores de aprobación automática de los nodos importados", + "importTooltip": "Importar un flujo de trabajo desde un archivo JSON", + "templateBlank": "En blanco", + "templateBlankDescription": "Comenzar desde un grafo vacío inicio → fin.", + "templateCopyName": "Copia de {{name}}", + "templateNodeCount_one": "{{count}} nodo", + "templateNodeCount_other": "{{count}} nodos", + "templatePickerLabel": "Comenzar desde", + "templateSectionBuiltin": "Flujos de trabajo integrados", + "templateSectionYours": "Tus flujos de trabajo" }, "workflowSelector": { "switchActiveMessage": "", diff --git a/packages/i18n/locales/fr/app.json b/packages/i18n/locales/fr/app.json index 79f6e2ca70..a9a5c21878 100644 --- a/packages/i18n/locales/fr/app.json +++ b/packages/i18n/locales/fr/app.json @@ -1466,7 +1466,7 @@ "unknown": "Inconnu", "unsavedChanges": "Modifications non enregistrées", "yes": "Oui", - "dismiss": "" + "dismiss": "Rejeter" }, "composer": { "loadingAgents": "Chargement des agents…", @@ -2444,7 +2444,7 @@ "viewProjects": "Voir les projets", "viewUsage": "Voir l'utilisation", "workingBranch": "Branche de travail", - "workflows": "" + "workflows": "Workflows" }, "health": { "activeTasks": "Tâches actives", @@ -3459,7 +3459,7 @@ "terminal": "Terminal", "todos": "Tâches à faire", "usage": "Utilisation", - "workflows": "" + "workflows": "Workflows" }, "newTaskModal": { "addDependencies": "Ajouter des dépendances", @@ -6214,7 +6214,13 @@ "usingPreset": "Préréglage utilisé : {{name}}", "workflowStepsDescription": "Sélectionnez les étapes à exécuter après la réalisation de la tâche", "workflowStepsLabel": "Étapes du flux de travail", - "workingBranchLabel": "Branche de travail" + "workingBranchLabel": "Branche de travail", + "workflowDefaultBadge": "(par défaut)", + "workflowHelp": "Les étapes du workflow sélectionné s'exécutent automatiquement autour de l'exécution de cette tâche.", + "workflowLabel": "Workflow", + "workflowNone": "Aucun workflow", + "workflowsCta": "Configurez des workflows dans l'éditeur", + "workflowsLoading": "Chargement des workflows…" }, "taskHandlers": { "githubImported": "Importé {{id}} depuis GitHub" @@ -6762,21 +6768,29 @@ "reviewPlan": "Plan review", "reviewType": "Review type", "splitNote": "Les branches s’exécutent simultanément depuis ce nœud. Les jointures d’exécution et de fusion ne sont pas autorisées dans une branche.", - "stepExecuteLabel": "Step execute", - "autoLayout": "", - "cycleBlocked": "", - "deleteEdge": "", - "deleteNode": "", - "edgeCondition": "", - "interpreterOnly": "", - "summaryAwaitInput": "", - "summaryCodeDefault": "", - "summaryGateAdvisory": "", - "summaryGateBlocks": "", - "summaryHoldRelease": "", - "summaryNotConfigured": "", - "summaryReviewType": "", - "trivialGraphHint": "" + "stepExecuteLabel": "Exécution de l'étape", + "autoLayout": "Disposition automatique", + "cycleBlocked": "Cette connexion créerait un cycle — seules les arêtes de reprise à l'intérieur d'un modèle for-each peuvent boucler en arrière", + "deleteEdge": "Supprimer l'arête", + "deleteNode": "Supprimer le nœud", + "edgeCondition": "Condition", + "interpreterOnly": "Ce workflow comporte des branches, il s'exécute donc sur l'interpréteur de graphe — il ne peut pas être compilé vers le moteur d'étapes linéaire, mais il s'exécutera quand même.", + "summaryAwaitInput": "Attend une entrée de l'utilisateur", + "summaryCodeDefault": "TypeScript", + "summaryGateAdvisory": "Consultatif", + "summaryGateBlocks": "Portail (bloquant)", + "summaryHoldRelease": "Libération : {{release}}", + "summaryNotConfigured": "Non configuré", + "summaryReviewType": "Examen {{type}}", + "trivialGraphHint": "Ce workflow ne fait qu'exécuter début → fin. Ajoutez des étapes depuis la palette ci-dessus pour le développer.", + "insertTemplate": "Insérer le modèle {{name}}", + "templateFilterLabel": "Filtrer les modèles", + "templateFilterPlaceholder": "Filtrer les modèles", + "templateSeamConflict": "Ce fragment duplique la jointure « {{seam}} » déjà présente sur le canevas, il ne peut donc pas être inséré.", + "templatesBuiltinSteps": "Étapes intégrées", + "templatesFragments": "Fragments", + "templatesPluginSteps": "Étapes de plugin", + "templatesSection": "Modèles" }, "workflows": { "duplicateToCustomize": "", @@ -6785,29 +6799,56 @@ "savedNotCompilable": "", "saveFailed": "", "selectOrCreate": "", - "clickToEditDescription": "", - "clickToRename": "", - "created": "", - "createDescription": "", - "createFailed": "", - "createName": "", - "createNameRequired": "", - "createSubmit": "", - "createTitle": "", - "deleted": "", - "deleteFailed": "", - "deleteMessage": "", - "deleteTitle": "", - "descriptionLabel": "", - "descriptionPlaceholder": "", - "discardConfirm": "", - "discardMessage": "", - "discardTitle": "", - "emptyDescription": "", - "emptyTitle": "", - "nameLabel": "", - "newWorkflow": "", - "migrationNotice": "" + "clickToEditDescription": "Cliquez pour modifier la description", + "clickToRename": "Cliquez pour renommer", + "created": "Workflow « {{name}} » créé", + "createDescription": "Description (facultatif)", + "createFailed": "Impossible de créer le workflow", + "createName": "Nom", + "createNameRequired": "Saisissez un nom de workflow", + "createSubmit": "Créer", + "createTitle": "Nouveau workflow", + "deleted": "Workflow supprimé", + "deleteFailed": "Impossible de supprimer le workflow", + "deleteMessage": "Supprimer le workflow « {{name}} » ? Cette action est irréversible.", + "deleteTitle": "Supprimer le workflow ?", + "descriptionLabel": "Description du workflow", + "descriptionPlaceholder": "Ajouter une description", + "discardConfirm": "Abandonner", + "discardMessage": "Vous avez des modifications non enregistrées sur ce workflow. Les abandonner ?", + "discardTitle": "Abandonner les modifications non enregistrées ?", + "emptyDescription": "Les workflows orchestrent les étapes et les portails qui s'exécutent autour de l'exécution des tâches. Créez-en un pour commencer à organiser ce flux.", + "emptyTitle": "Aucun workflow sélectionné", + "nameLabel": "Nom du workflow", + "newWorkflow": "Nouveau workflow", + "migrationNotice": "Vos anciennes étapes de workflow ont été converties — retrouvez-les sous forme de modèles dans la palette et sous le workflow « Étapes migrées ».", + "aiEdit": "Concevoir avec l'IA", + "aiFailed": "Échec de la conception du workflow", + "aiPromptPlaceholder": "p. ex. Exécuter le lint et les tests avant la fusion, puis publier un commentaire de journal des modifications après la fusion", + "aiPromptRequired": "Décrivez le workflow souhaité", + "aiReplaceConfirm": "Remplacer le graphe actuel par la conception de l'IA ? Les modifications non enregistrées seront perdues.", + "aiReplaceConfirmLabel": "Remplacer", + "aiReplaceTitle": "Remplacer le graphe ?", + "aiSubmit": "Concevoir avec l'IA", + "aiToggle": "Le décrire à la place", + "export": "Exporter", + "exportDirtyTooltip": "Enregistrez avant d'exporter", + "exportFailed": "Impossible d'exporter le workflow", + "exportTooltip": "Télécharger au format JSON — contient l'intégralité de votre invite et du texte des commandes", + "import": "Importer", + "imported": "Workflow « {{name}} » importé", + "importFailed": "Échec de l'importation", + "importInvalidJson": "Ce fichier n'est pas un JSON valide.", + "importStripped": "Les indicateurs d'approbation automatique ont été supprimés des nœuds importés", + "importTooltip": "Importer un workflow depuis un fichier JSON", + "templateBlank": "Vierge", + "templateBlankDescription": "Partez d'un graphe vide début → fin.", + "templateCopyName": "{{name}} (copie)", + "templateNodeCount_one": "{{count}} nœud", + "templateNodeCount_other": "{{count}} nœuds", + "templatePickerLabel": "Partir de", + "templateSectionBuiltin": "Workflows intégrés", + "templateSectionYours": "Vos workflows" }, "workflowSelector": { "switchActiveMessage": "", diff --git a/packages/i18n/locales/ko/app.json b/packages/i18n/locales/ko/app.json index 59a2abaa4d..a6eb88c43b 100644 --- a/packages/i18n/locales/ko/app.json +++ b/packages/i18n/locales/ko/app.json @@ -1466,7 +1466,7 @@ "unknown": "알 수 없음", "unsavedChanges": "저장되지 않은 변경 사항", "yes": "예", - "dismiss": "" + "dismiss": "닫기" }, "composer": { "loadingAgents": "에이전트 로드 중…", @@ -2444,7 +2444,7 @@ "mailboxWithCount_one": "", "resumePlanningSessionCount_one": "", "unreadMessages_one": "", - "workflows": "" + "workflows": "워크플로" }, "health": { "activeTasks": "활성 작업", @@ -3459,7 +3459,7 @@ "terminal": "터미널", "todos": "할 일", "usage": "사용량", - "workflows": "" + "workflows": "워크플로" }, "newTaskModal": { "addDependencies": "의존성 추가", @@ -6214,7 +6214,13 @@ "workflowStepsDescription": "작업 구현 완료 후 실행할 단계 선택", "workflowStepsLabel": "워크플로우 단계", "workingBranchLabel": "작업 브랜치", - "dependenciesSelected_one": "" + "dependenciesSelected_one": "", + "workflowDefaultBadge": "(기본값)", + "workflowHelp": "선택한 워크플로의 단계가 이 작업 실행 전후에 자동으로 실행됩니다.", + "workflowLabel": "워크플로", + "workflowNone": "워크플로 없음", + "workflowsCta": "에디터에서 워크플로 설정", + "workflowsLoading": "워크플로 불러오는 중…" }, "taskHandlers": { "githubImported": "GitHub에서 {{id}}를 가져왔습니다" @@ -6762,21 +6768,29 @@ "reviewPlan": "Plan review", "reviewType": "Review type", "splitNote": "분기는 이 노드에서 동시에 실행됩니다. 분기 내에서는 실행 및 병합 이음새가 허용되지 않습니다.", - "stepExecuteLabel": "Step execute", - "autoLayout": "", - "cycleBlocked": "", - "deleteEdge": "", - "deleteNode": "", - "edgeCondition": "", - "interpreterOnly": "", - "summaryAwaitInput": "", - "summaryCodeDefault": "", - "summaryGateAdvisory": "", - "summaryGateBlocks": "", - "summaryHoldRelease": "", - "summaryNotConfigured": "", - "summaryReviewType": "", - "trivialGraphHint": "" + "stepExecuteLabel": "단계 실행", + "autoLayout": "자동 배치", + "cycleBlocked": "이 연결은 순환을 만듭니다 — for-each 템플릿 내부의 재작업 엣지만 되돌아올 수 있습니다", + "deleteEdge": "엣지 삭제", + "deleteNode": "노드 삭제", + "edgeCondition": "조건", + "interpreterOnly": "이 워크플로는 분기되므로 그래프 인터프리터에서 실행됩니다 — 선형 단계 엔진으로 컴파일할 수는 없지만 그래도 실행됩니다.", + "summaryAwaitInput": "사용자 입력 대기", + "summaryCodeDefault": "TypeScript", + "summaryGateAdvisory": "권고", + "summaryGateBlocks": "게이트 (차단)", + "summaryHoldRelease": "해제: {{release}}", + "summaryNotConfigured": "구성되지 않음", + "summaryReviewType": "{{type}} 검토", + "trivialGraphHint": "이 워크플로는 시작 → 끝만 실행합니다. 위 팔레트에서 단계를 추가하여 구성하세요.", + "insertTemplate": "{{name}} 템플릿 삽입", + "templateFilterLabel": "템플릿 필터", + "templateFilterPlaceholder": "템플릿 필터", + "templateSeamConflict": "이 조각은 이미 캔버스에 있는 \"{{seam}}\" 이음새와 중복되므로 삽입할 수 없습니다.", + "templatesBuiltinSteps": "기본 제공 단계", + "templatesFragments": "조각", + "templatesPluginSteps": "플러그인 단계", + "templatesSection": "템플릿" }, "workflows": { "duplicateToCustomize": "", @@ -6785,29 +6799,56 @@ "savedNotCompilable": "", "saveFailed": "", "selectOrCreate": "", - "clickToEditDescription": "", - "clickToRename": "", - "created": "", - "createDescription": "", - "createFailed": "", - "createName": "", - "createNameRequired": "", - "createSubmit": "", - "createTitle": "", - "deleted": "", - "deleteFailed": "", - "deleteMessage": "", - "deleteTitle": "", - "descriptionLabel": "", - "descriptionPlaceholder": "", - "discardConfirm": "", - "discardMessage": "", - "discardTitle": "", - "emptyDescription": "", - "emptyTitle": "", - "nameLabel": "", - "newWorkflow": "", - "migrationNotice": "" + "clickToEditDescription": "클릭하여 설명 편집", + "clickToRename": "클릭하여 이름 변경", + "created": "워크플로 \"{{name}}\"을(를) 만들었습니다", + "createDescription": "설명 (선택 사항)", + "createFailed": "워크플로 만들기에 실패했습니다", + "createName": "이름", + "createNameRequired": "워크플로 이름을 입력하세요", + "createSubmit": "만들기", + "createTitle": "새 워크플로", + "deleted": "워크플로가 삭제되었습니다", + "deleteFailed": "워크플로 삭제에 실패했습니다", + "deleteMessage": "워크플로 \"{{name}}\"을(를) 삭제할까요? 이 작업은 되돌릴 수 없습니다.", + "deleteTitle": "워크플로를 삭제할까요?", + "descriptionLabel": "워크플로 설명", + "descriptionPlaceholder": "설명 추가", + "discardConfirm": "버리기", + "discardMessage": "이 워크플로에 저장하지 않은 변경 사항이 있습니다. 버릴까요?", + "discardTitle": "저장하지 않은 변경 사항을 버릴까요?", + "emptyDescription": "워크플로는 작업 실행 전후에 실행되는 단계와 게이트를 조율합니다. 하나 만들어 그 흐름을 구성해 보세요.", + "emptyTitle": "선택된 워크플로 없음", + "nameLabel": "워크플로 이름", + "newWorkflow": "새 워크플로", + "migrationNotice": "이전 워크플로 단계가 변환되었습니다 — 팔레트의 템플릿과 \"마이그레이션된 단계\" 워크플로에서 찾을 수 있습니다.", + "aiEdit": "AI로 디자인", + "aiFailed": "워크플로 디자인에 실패했습니다", + "aiPromptPlaceholder": "예: 병합 전에 린트와 테스트를 실행하고, 병합 후에 변경 로그 댓글을 게시하세요", + "aiPromptRequired": "원하는 워크플로를 설명하세요", + "aiReplaceConfirm": "현재 그래프를 AI 디자인으로 교체할까요? 저장하지 않은 변경 사항은 사라집니다.", + "aiReplaceConfirmLabel": "교체", + "aiReplaceTitle": "그래프를 교체할까요?", + "aiSubmit": "AI로 디자인", + "aiToggle": "대신 설명하기", + "export": "내보내기", + "exportDirtyTooltip": "내보내기 전에 저장하세요", + "exportFailed": "워크플로 내보내기에 실패했습니다", + "exportTooltip": "JSON으로 다운로드 — 전체 프롬프트와 명령어 텍스트가 포함됩니다", + "import": "가져오기", + "imported": "워크플로 \"{{name}}\"을(를) 가져왔습니다", + "importFailed": "가져오기에 실패했습니다", + "importInvalidJson": "이 파일은 유효한 JSON이 아닙니다.", + "importStripped": "가져온 노드에서 자동 승인 플래그가 제거되었습니다", + "importTooltip": "JSON 파일에서 워크플로 가져오기", + "templateBlank": "빈 워크플로", + "templateBlankDescription": "빈 시작 → 끝 그래프에서 시작합니다.", + "templateCopyName": "{{name}} 복사본", + "templateNodeCount_one": "노드 {{count}}개", + "templateNodeCount_other": "노드 {{count}}개", + "templatePickerLabel": "시작점", + "templateSectionBuiltin": "기본 제공 워크플로", + "templateSectionYours": "내 워크플로" }, "workflowSelector": { "switchActiveMessage": "", diff --git a/packages/i18n/locales/zh-CN/app.json b/packages/i18n/locales/zh-CN/app.json index 8bfd6cfbbb..35a35fa0f9 100644 --- a/packages/i18n/locales/zh-CN/app.json +++ b/packages/i18n/locales/zh-CN/app.json @@ -1466,7 +1466,7 @@ "unknown": "未知", "unsavedChanges": "未保存的更改", "yes": "是", - "dismiss": "" + "dismiss": "关闭" }, "composer": { "loadingAgents": "加载代理中…", @@ -2444,7 +2444,7 @@ "mailboxWithCount_one": "", "resumePlanningSessionCount_one": "", "unreadMessages_one": "", - "workflows": "" + "workflows": "工作流" }, "health": { "activeTasks": "活动任务", @@ -3459,7 +3459,7 @@ "terminal": "终端", "todos": "待办", "usage": "用量", - "workflows": "" + "workflows": "工作流" }, "newTaskModal": { "addDependencies": "添加依赖项", @@ -6214,7 +6214,13 @@ "workflowStepsDescription": "选择任务实现完成后要运行的步骤", "workflowStepsLabel": "工作流步骤", "workingBranchLabel": "工作分支", - "dependenciesSelected_one": "" + "dependenciesSelected_one": "", + "workflowDefaultBadge": "(默认)", + "workflowHelp": "所选工作流的步骤将在此任务执行前后自动运行。", + "workflowLabel": "工作流", + "workflowNone": "无工作流", + "workflowsCta": "在编辑器中设置工作流", + "workflowsLoading": "正在加载工作流…" }, "taskHandlers": { "githubImported": "从 GitHub 导入了 {{id}}" @@ -6762,21 +6768,29 @@ "reviewPlan": "Plan review", "reviewType": "Review type", "splitNote": "分支从此节点并发运行。分支内不允许执行和合并接缝。", - "stepExecuteLabel": "Step execute", - "autoLayout": "", - "cycleBlocked": "", - "deleteEdge": "", - "deleteNode": "", - "edgeCondition": "", - "interpreterOnly": "", - "summaryAwaitInput": "", - "summaryCodeDefault": "", - "summaryGateAdvisory": "", - "summaryGateBlocks": "", - "summaryHoldRelease": "", - "summaryNotConfigured": "", - "summaryReviewType": "", - "trivialGraphHint": "" + "stepExecuteLabel": "步骤执行", + "autoLayout": "自动布局", + "cycleBlocked": "此连接会产生循环——只有 for-each 模板内的返工连线才允许回环", + "deleteEdge": "删除连线", + "deleteNode": "删除节点", + "edgeCondition": "条件", + "interpreterOnly": "此工作流包含分支,将在图解释器上运行——无法编译为线性步骤引擎,但仍会正常执行。", + "summaryAwaitInput": "等待用户输入", + "summaryCodeDefault": "TypeScript", + "summaryGateAdvisory": "建议性", + "summaryGateBlocks": "关卡(阻断)", + "summaryHoldRelease": "释放:{{release}}", + "summaryNotConfigured": "未配置", + "summaryReviewType": "{{type}} 审查", + "trivialGraphHint": "此工作流仅运行开始→结束。从上方面板添加步骤以构建工作流。", + "insertTemplate": "插入模板 {{name}}", + "templateFilterLabel": "筛选模板", + "templateFilterPlaceholder": "筛选模板", + "templateSeamConflict": "此片段与画布上已存在的“{{seam}}”接缝重复,无法插入。", + "templatesBuiltinSteps": "内置步骤", + "templatesFragments": "片段", + "templatesPluginSteps": "插件步骤", + "templatesSection": "模板" }, "workflows": { "duplicateToCustomize": "", @@ -6785,29 +6799,56 @@ "savedNotCompilable": "", "saveFailed": "", "selectOrCreate": "", - "clickToEditDescription": "", - "clickToRename": "", - "created": "", - "createDescription": "", - "createFailed": "", - "createName": "", - "createNameRequired": "", - "createSubmit": "", - "createTitle": "", - "deleted": "", - "deleteFailed": "", - "deleteMessage": "", - "deleteTitle": "", - "descriptionLabel": "", - "descriptionPlaceholder": "", - "discardConfirm": "", - "discardMessage": "", - "discardTitle": "", - "emptyDescription": "", - "emptyTitle": "", - "nameLabel": "", - "newWorkflow": "", - "migrationNotice": "" + "clickToEditDescription": "点击编辑描述", + "clickToRename": "点击重命名", + "created": "已创建工作流“{{name}}”", + "createDescription": "描述(可选)", + "createFailed": "创建工作流失败", + "createName": "名称", + "createNameRequired": "请输入工作流名称", + "createSubmit": "创建", + "createTitle": "新建工作流", + "deleted": "工作流已删除", + "deleteFailed": "删除工作流失败", + "deleteMessage": "删除工作流“{{name}}”?此操作无法撤销。", + "deleteTitle": "删除工作流?", + "descriptionLabel": "工作流描述", + "descriptionPlaceholder": "添加描述", + "discardConfirm": "放弃", + "discardMessage": "此工作流有未保存的更改,要放弃吗?", + "discardTitle": "放弃未保存的更改?", + "emptyDescription": "工作流编排任务执行前后运行的步骤和关卡。创建一个以开始安排流程。", + "emptyTitle": "未选择工作流", + "nameLabel": "工作流名称", + "newWorkflow": "新建工作流", + "migrationNotice": "您的旧版工作流步骤已转换——在面板模板和“已迁移步骤”工作流中查找。", + "aiEdit": "用 AI 设计", + "aiFailed": "工作流设计失败", + "aiPromptPlaceholder": "例如:合并前运行代码检查和测试,合并后发布变更日志评论", + "aiPromptRequired": "请描述您想要的工作流", + "aiReplaceConfirm": "用 AI 设计替换当前图?未保存的更改将丢失。", + "aiReplaceConfirmLabel": "替换", + "aiReplaceTitle": "替换图?", + "aiSubmit": "用 AI 设计", + "aiToggle": "改为描述", + "export": "导出", + "exportDirtyTooltip": "请先保存再导出", + "exportFailed": "导出工作流失败", + "exportTooltip": "下载为 JSON——包含完整的提示和命令文本", + "import": "导入", + "imported": "已导入工作流“{{name}}”", + "importFailed": "导入失败", + "importInvalidJson": "该文件不是有效的 JSON。", + "importStripped": "已从导入的节点中移除自动审批标志", + "importTooltip": "从 JSON 文件导入工作流", + "templateBlank": "空白", + "templateBlankDescription": "从空的开始→结束图开始。", + "templateCopyName": "{{name}} 副本", + "templateNodeCount_one": "{{count}} 个节点", + "templateNodeCount_other": "{{count}} 个节点", + "templatePickerLabel": "从…开始", + "templateSectionBuiltin": "内置工作流", + "templateSectionYours": "我的工作流" }, "workflowSelector": { "switchActiveMessage": "", diff --git a/packages/i18n/locales/zh-TW/app.json b/packages/i18n/locales/zh-TW/app.json index 9a7867d226..706eeaa596 100644 --- a/packages/i18n/locales/zh-TW/app.json +++ b/packages/i18n/locales/zh-TW/app.json @@ -1466,7 +1466,7 @@ "unknown": "未知", "unsavedChanges": "未儲存的變更", "yes": "是", - "dismiss": "" + "dismiss": "關閉" }, "composer": { "loadingAgents": "載入代理中…", @@ -2444,7 +2444,7 @@ "mailboxWithCount_one": "", "resumePlanningSessionCount_one": "", "unreadMessages_one": "", - "workflows": "" + "workflows": "工作流程" }, "health": { "activeTasks": "活躍任務", @@ -3459,7 +3459,7 @@ "terminal": "終端機", "todos": "待辦", "usage": "用量", - "workflows": "" + "workflows": "工作流程" }, "newTaskModal": { "addDependencies": "新增相依性", @@ -6214,7 +6214,13 @@ "workflowStepsDescription": "選擇任務實作完成後要執行的步驟", "workflowStepsLabel": "工作流程步驟", "workingBranchLabel": "工作分支", - "dependenciesSelected_one": "" + "dependenciesSelected_one": "", + "workflowDefaultBadge": "(預設)", + "workflowHelp": "所選工作流程的步驟會在這個任務執行前後自動執行。", + "workflowLabel": "工作流程", + "workflowNone": "不使用工作流程", + "workflowsCta": "在編輯器中設定工作流程", + "workflowsLoading": "正在載入工作流程…" }, "taskHandlers": { "githubImported": "從 GitHub 導入了 {{id}}" @@ -6762,21 +6768,29 @@ "reviewPlan": "Plan review", "reviewType": "Review type", "splitNote": "分支從此節點並行執行。分支內不允許執行與合併接縫。", - "stepExecuteLabel": "Step execute", - "autoLayout": "", - "cycleBlocked": "", - "deleteEdge": "", - "deleteNode": "", - "edgeCondition": "", - "interpreterOnly": "", - "summaryAwaitInput": "", - "summaryCodeDefault": "", - "summaryGateAdvisory": "", - "summaryGateBlocks": "", - "summaryHoldRelease": "", - "summaryNotConfigured": "", - "summaryReviewType": "", - "trivialGraphHint": "" + "stepExecuteLabel": "執行步驟", + "autoLayout": "自動排版", + "cycleBlocked": "該連線會形成循環 — 只有 for-each 範本內的重做邊才能回繞", + "deleteEdge": "刪除邊", + "deleteNode": "刪除節點", + "edgeCondition": "條件", + "interpreterOnly": "這個工作流程有分支,因此會在圖形解譯器上執行 — 它無法編譯成線性步驟引擎,但仍可執行。", + "summaryAwaitInput": "等待使用者輸入", + "summaryCodeDefault": "TypeScript", + "summaryGateAdvisory": "建議", + "summaryGateBlocks": "閘門(會阻擋)", + "summaryHoldRelease": "釋放:{{release}}", + "summaryNotConfigured": "尚未設定", + "summaryReviewType": "{{type}} 審查", + "trivialGraphHint": "這個工作流程只會執行 start → end。請從上方的選盤新增步驟來建構它。", + "insertTemplate": "插入範本 {{name}}", + "templateFilterLabel": "篩選範本", + "templateFilterPlaceholder": "篩選範本", + "templateSeamConflict": "這個片段與畫布上已有的「{{seam}}」接縫重複,因此無法插入。", + "templatesBuiltinSteps": "內建步驟", + "templatesFragments": "片段", + "templatesPluginSteps": "外掛步驟", + "templatesSection": "範本" }, "workflows": { "duplicateToCustomize": "", @@ -6785,29 +6799,56 @@ "savedNotCompilable": "", "saveFailed": "", "selectOrCreate": "", - "clickToEditDescription": "", - "clickToRename": "", - "created": "", - "createDescription": "", - "createFailed": "", - "createName": "", - "createNameRequired": "", - "createSubmit": "", - "createTitle": "", - "deleted": "", - "deleteFailed": "", - "deleteMessage": "", - "deleteTitle": "", - "descriptionLabel": "", - "descriptionPlaceholder": "", - "discardConfirm": "", - "discardMessage": "", - "discardTitle": "", - "emptyDescription": "", - "emptyTitle": "", - "nameLabel": "", - "newWorkflow": "", - "migrationNotice": "" + "clickToEditDescription": "按一下以編輯說明", + "clickToRename": "按一下以重新命名", + "created": "已建立工作流程「{{name}}」", + "createDescription": "說明(選填)", + "createFailed": "建立工作流程失敗", + "createName": "名稱", + "createNameRequired": "請輸入工作流程名稱", + "createSubmit": "建立", + "createTitle": "新工作流程", + "deleted": "已刪除工作流程", + "deleteFailed": "刪除工作流程失敗", + "deleteMessage": "要刪除工作流程「{{name}}」嗎?此操作無法復原。", + "deleteTitle": "要刪除工作流程嗎?", + "descriptionLabel": "工作流程說明", + "descriptionPlaceholder": "新增說明", + "discardConfirm": "捨棄", + "discardMessage": "你對這個工作流程有未儲存的變更。要捨棄它們嗎?", + "discardTitle": "要捨棄未儲存的變更嗎?", + "emptyDescription": "工作流程會協調任務執行前後所執行的步驟與閘門。建立一個來開始安排流程。", + "emptyTitle": "未選取工作流程", + "nameLabel": "工作流程名稱", + "newWorkflow": "新工作流程", + "migrationNotice": "你的舊版工作流程步驟已轉換 — 可在選盤中以範本形式找到它們,以及名為「已遷移步驟」的工作流程。", + "aiEdit": "使用 AI 設計", + "aiFailed": "設計工作流程失敗", + "aiPromptPlaceholder": "例如:在合併前執行 lint 與測試,然後在合併後張貼變更記錄留言", + "aiPromptRequired": "請描述你想要的工作流程", + "aiReplaceConfirm": "要用 AI 設計取代目前的圖形嗎?未儲存的變更將會遺失。", + "aiReplaceConfirmLabel": "取代", + "aiReplaceTitle": "要取代圖形嗎?", + "aiSubmit": "使用 AI 設計", + "aiToggle": "改用描述方式", + "export": "匯出", + "exportDirtyTooltip": "請先儲存再匯出", + "exportFailed": "匯出工作流程失敗", + "exportTooltip": "下載為 JSON — 包含你完整的提示與命令文字", + "import": "匯入", + "imported": "已匯入工作流程「{{name}}」", + "importFailed": "匯入失敗", + "importInvalidJson": "該檔案不是有效的 JSON。", + "importStripped": "已從匯入的節點移除自動核准旗標", + "importTooltip": "從 JSON 檔案匯入工作流程", + "templateBlank": "空白", + "templateBlankDescription": "從空的 start → end 圖形開始。", + "templateCopyName": "{{name}} 複本", + "templateNodeCount_one": "{{count}} 個節點", + "templateNodeCount_other": "{{count}} 個節點", + "templatePickerLabel": "起始來源", + "templateSectionBuiltin": "內建工作流程", + "templateSectionYours": "你的工作流程" }, "workflowSelector": { "switchActiveMessage": "",