+ onClick={(e) => {
+ if (!isSelectionMode || !(e.target as HTMLElement).closest(".task-checkbox")) {
+ vscode.postMessage({ type: "showTaskWithId", text: item.id })
+ }
+ }}>
+
+ {/* Show checkbox in selection mode */}
+ {isSelectionMode && (
{
+ e.stopPropagation()
}}>
-
-
- {t("history:tokensLabel")}
-
-
-
- {formatLargeNumber(item.tokensIn || 0)}
-
-
-
- {formatLargeNumber(item.tokensOut || 0)}
-
-
- {!item.totalCost && (
-
-
-
-
- )}
+
+ toggleTaskSelection(item.id, (e.target as HTMLInputElement).checked)
+ }
+ />
+ )}
- {!!item.cacheWrites && (
-
-
- {t("history:cacheLabel")}
-
-
-
- +{formatLargeNumber(item.cacheWrites || 0)}
-
-
-
- {formatLargeNumber(item.cacheReads || 0)}
-
+
+
+
+ {formatDate(item.ts)}
+
+
+ {!isSelectionMode && (
+
+ )}
- )}
-
- {!!item.totalCost && (
+
+
+
-
+
- {t("history:apiCostLabel")}
+ {t("history:tokensLabel")}
-
- ${item.totalCost?.toFixed(4)}
+
+
+ {formatLargeNumber(item.tokensIn || 0)}
+
+
+
+ {formatLargeNumber(item.tokensOut || 0)}
-
-
-
-
+ {!item.totalCost && !isSelectionMode && (
+
+
+
+
+ )}
- )}
+
+ {!!item.cacheWrites && (
+
+
+ {t("history:cacheLabel")}
+
+
+
+ +{formatLargeNumber(item.cacheWrites || 0)}
+
+
+
+ {formatLargeNumber(item.cacheReads || 0)}
+
+
+ )}
+
+ {!!item.totalCost && (
+
+
+
+ {t("history:apiCostLabel")}
+
+
+ ${item.totalCost?.toFixed(4)}
+
+
+ {!isSelectionMode && (
+
+
+
+
+ )}
+
+ )}
+
@@ -331,9 +420,42 @@ const HistoryView = ({ onDone }: HistoryViewProps) => {
/>
+ {/* Fixed action bar at bottom - only shown in selection mode with selected items */}
+ {isSelectionMode && selectedTaskIds.length > 0 && (
+
+
+ {t("history:selectedItems", { selected: selectedTaskIds.length, total: tasks.length })}
+
+
+ setSelectedTaskIds([])}>
+ {t("history:clearSelection")}
+
+
+ {t("history:deleteSelected")}
+
+
+
+ )}
+
+ {/* Delete dialog */}
{deleteTaskId && (
!open && setDeleteTaskId(null)} open />
)}
+
+ {/* Batch delete dialog */}
+ {showBatchDeleteDialog && (
+ {
+ if (!open) {
+ setShowBatchDeleteDialog(false)
+ setSelectedTaskIds([])
+ setIsSelectionMode(false)
+ }
+ }}
+ />
+ )}
)
}
diff --git a/webview-ui/src/i18n/locales/ca/history.json b/webview-ui/src/i18n/locales/ca/history.json
index 385f54a363..4add5f9611 100644
--- a/webview-ui/src/i18n/locales/ca/history.json
+++ b/webview-ui/src/i18n/locales/ca/history.json
@@ -5,6 +5,8 @@
"cache": "Cau: +{{writes}} → {{reads}}",
"apiCost": "Cost d'API: ${{cost}}",
"history": "Historial",
+ "exitSelectionMode": "Sortir del mode de selecció",
+ "enterSelectionMode": "Entrar en mode de selecció",
"done": "Fet",
"searchPlaceholder": "Cerca a l'historial...",
"newest": "Més recents",
@@ -21,5 +23,16 @@
"deleteTask": "Eliminar tasca",
"deleteTaskMessage": "Estàs segur que vols eliminar aquesta tasca? Aquesta acció no es pot desfer.",
"cancel": "Cancel·lar",
- "delete": "Eliminar"
+ "delete": "Eliminar",
+ "exitSelection": "Sortir de la selecció",
+ "selectionMode": "Mode de selecció",
+ "deselectAll": "Desseleccionar tot",
+ "selectAll": "Seleccionar tot",
+ "selectedItems": "{{selected}}/{{total}} elements seleccionats",
+ "clearSelection": "Netejar selecció",
+ "deleteSelected": "Eliminar seleccionats",
+ "deleteTasks": "Eliminar tasques",
+ "confirmDeleteTasks": "Estàs segur que vols eliminar {{count}} tasques?",
+ "deleteTasksWarning": "Les tasques eliminades no es poden recuperar. Si us plau, assegura't que vols continuar.",
+ "deleteItems": "Eliminar {{count}} elements"
}
diff --git a/webview-ui/src/i18n/locales/de/history.json b/webview-ui/src/i18n/locales/de/history.json
index 58f9dc90f4..426a964402 100644
--- a/webview-ui/src/i18n/locales/de/history.json
+++ b/webview-ui/src/i18n/locales/de/history.json
@@ -1,10 +1,12 @@
{
- "recentTasks": "Neueste Aufgaben",
+ "recentTasks": "Kürzliche Aufgaben",
"viewAll": "Alle anzeigen",
"tokens": "Tokens: ↑{{in}} ↓{{out}}",
"cache": "Cache: +{{writes}} → {{reads}}",
"apiCost": "API-Kosten: ${{cost}}",
"history": "Verlauf",
+ "exitSelectionMode": "Auswahlmodus beenden",
+ "enterSelectionMode": "Auswahlmodus starten",
"done": "Fertig",
"searchPlaceholder": "Verlauf durchsuchen...",
"newest": "Neueste",
@@ -21,5 +23,16 @@
"deleteTask": "Aufgabe löschen",
"deleteTaskMessage": "Sind Sie sicher, dass Sie diese Aufgabe löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.",
"cancel": "Abbrechen",
- "delete": "Löschen"
+ "delete": "Löschen",
+ "exitSelection": "Auswahl beenden",
+ "selectionMode": "Auswahlmodus",
+ "deselectAll": "Alle abwählen",
+ "selectAll": "Alle auswählen",
+ "selectedItems": "{{selected}}/{{total}} Elemente ausgewählt",
+ "clearSelection": "Auswahl aufheben",
+ "deleteSelected": "Ausgewählte löschen",
+ "deleteTasks": "Aufgaben löschen",
+ "confirmDeleteTasks": "Sind Sie sicher, dass Sie {{count}} Aufgaben löschen möchten?",
+ "deleteTasksWarning": "Gelöschte Aufgaben können nicht wiederhergestellt werden. Bitte vergewissern Sie sich, dass Sie fortfahren möchten.",
+ "deleteItems": "{{count}} Elemente löschen"
}
diff --git a/webview-ui/src/i18n/locales/en/history.json b/webview-ui/src/i18n/locales/en/history.json
index 56a48884d9..4c664ca608 100644
--- a/webview-ui/src/i18n/locales/en/history.json
+++ b/webview-ui/src/i18n/locales/en/history.json
@@ -5,6 +5,8 @@
"cache": "Cache: +{{writes}} → {{reads}}",
"apiCost": "API Cost: ${{cost}}",
"history": "History",
+ "exitSelectionMode": "Exit Selection Mode",
+ "enterSelectionMode": "Enter Selection Mode",
"done": "Done",
"searchPlaceholder": "Fuzzy search history...",
"newest": "Newest",
@@ -21,5 +23,16 @@
"deleteTask": "Delete Task",
"deleteTaskMessage": "Are you sure you want to delete this task? This action cannot be undone.",
"cancel": "Cancel",
- "delete": "Delete"
+ "delete": "Delete",
+ "exitSelection": "Exit Selection",
+ "selectionMode": "Selection Mode",
+ "deselectAll": "Deselect All",
+ "selectAll": "Select All",
+ "selectedItems": "Selected {{selected}}/{{total}} items",
+ "clearSelection": "Clear Selection",
+ "deleteSelected": "Delete Selected",
+ "deleteTasks": "Delete Tasks",
+ "confirmDeleteTasks": "Are you sure you want to delete {{count}} tasks?",
+ "deleteTasksWarning": "Deleted tasks cannot be recovered. Please make sure you want to proceed.",
+ "deleteItems": "Delete {{count}} Items"
}
diff --git a/webview-ui/src/i18n/locales/es/history.json b/webview-ui/src/i18n/locales/es/history.json
index 011a100fef..482f488b50 100644
--- a/webview-ui/src/i18n/locales/es/history.json
+++ b/webview-ui/src/i18n/locales/es/history.json
@@ -5,6 +5,8 @@
"cache": "Caché: +{{writes}} → {{reads}}",
"apiCost": "Costo de API: ${{cost}}",
"history": "Historial",
+ "exitSelectionMode": "Salir del modo selección",
+ "enterSelectionMode": "Entrar en modo selección",
"done": "Listo",
"searchPlaceholder": "Buscar en el historial...",
"newest": "Más recientes",
@@ -21,5 +23,16 @@
"deleteTask": "Eliminar tarea",
"deleteTaskMessage": "¿Estás seguro de que quieres eliminar esta tarea? Esta acción no se puede deshacer.",
"cancel": "Cancelar",
- "delete": "Eliminar"
+ "delete": "Eliminar",
+ "exitSelection": "Salir de la selección",
+ "selectionMode": "Modo selección",
+ "deselectAll": "Deseleccionar todo",
+ "selectAll": "Seleccionar todo",
+ "selectedItems": "{{selected}}/{{total}} elementos seleccionados",
+ "clearSelection": "Limpiar selección",
+ "deleteSelected": "Eliminar seleccionados",
+ "deleteTasks": "Eliminar tareas",
+ "confirmDeleteTasks": "¿Estás seguro de que quieres eliminar {{count}} tareas?",
+ "deleteTasksWarning": "Las tareas eliminadas no se pueden recuperar. Por favor, asegúrate de que quieres continuar.",
+ "deleteItems": "Eliminar {{count}} elementos"
}
diff --git a/webview-ui/src/i18n/locales/fr/history.json b/webview-ui/src/i18n/locales/fr/history.json
index 367cb47342..15fcd601c6 100644
--- a/webview-ui/src/i18n/locales/fr/history.json
+++ b/webview-ui/src/i18n/locales/fr/history.json
@@ -5,6 +5,8 @@
"cache": "Cache: +{{writes}} → {{reads}}",
"apiCost": "Coût API: ${{cost}}",
"history": "Historique",
+ "exitSelectionMode": "Quitter le mode sélection",
+ "enterSelectionMode": "Entrer en mode sélection",
"done": "Terminé",
"searchPlaceholder": "Rechercher dans l'historique...",
"newest": "Plus récentes",
@@ -21,5 +23,16 @@
"deleteTask": "Supprimer la tâche",
"deleteTaskMessage": "Êtes-vous sûr de vouloir supprimer cette tâche ? Cette action ne peut pas être annulée.",
"cancel": "Annuler",
- "delete": "Supprimer"
+ "delete": "Supprimer",
+ "exitSelection": "Quitter la sélection",
+ "selectionMode": "Mode sélection",
+ "deselectAll": "Tout désélectionner",
+ "selectAll": "Tout sélectionner",
+ "selectedItems": "{{selected}}/{{total}} éléments sélectionnés",
+ "clearSelection": "Effacer la sélection",
+ "deleteSelected": "Supprimer les éléments sélectionnés",
+ "deleteTasks": "Supprimer les tâches",
+ "confirmDeleteTasks": "Êtes-vous sûr de vouloir supprimer {{count}} tâches ?",
+ "deleteTasksWarning": "Les tâches supprimées ne peuvent pas être récupérées. Veuillez confirmer que vous souhaitez continuer.",
+ "deleteItems": "Supprimer {{count}} éléments"
}
diff --git a/webview-ui/src/i18n/locales/hi/history.json b/webview-ui/src/i18n/locales/hi/history.json
index faed6b78f6..222e0940e9 100644
--- a/webview-ui/src/i18n/locales/hi/history.json
+++ b/webview-ui/src/i18n/locales/hi/history.json
@@ -5,6 +5,8 @@
"cache": "कैश: +{{writes}} → {{reads}}",
"apiCost": "API लागत: ${{cost}}",
"history": "इतिहास",
+ "exitSelectionMode": "चयन मोड से बाहर निकलें",
+ "enterSelectionMode": "चयन मोड में प्रवेश करें",
"done": "पूर्ण",
"searchPlaceholder": "इतिहास खोजें...",
"newest": "नवीनतम",
@@ -21,5 +23,16 @@
"deleteTask": "कार्य हटाएं",
"deleteTaskMessage": "क्या आप वाकई इस कार्य को हटाना चाहते हैं? यह क्रिया पूर्ववत नहीं की जा सकती है।",
"cancel": "रद्द करें",
- "delete": "हटाएं"
+ "delete": "हटाएं",
+ "exitSelection": "चयन से बाहर निकलें",
+ "selectionMode": "चयन मोड",
+ "deselectAll": "सभी चयन हटाएं",
+ "selectAll": "सभी चुनें",
+ "selectedItems": "{{selected}}/{{total}} आइटम चयनित",
+ "clearSelection": "चयन साफ़ करें",
+ "deleteSelected": "चयनित हटाएं",
+ "deleteTasks": "कार्य हटाएं",
+ "confirmDeleteTasks": "क्या आप वाकई {{count}} कार्य हटाना चाहते हैं?",
+ "deleteTasksWarning": "हटाए गए कार्य पुनर्प्राप्त नहीं किए जा सकते। कृपया सुनिश्चित करें कि आप आगे बढ़ना चाहते हैं।",
+ "deleteItems": "{{count}} आइटम हटाएं"
}
diff --git a/webview-ui/src/i18n/locales/it/history.json b/webview-ui/src/i18n/locales/it/history.json
index 0b3360c31b..604a213679 100644
--- a/webview-ui/src/i18n/locales/it/history.json
+++ b/webview-ui/src/i18n/locales/it/history.json
@@ -5,6 +5,8 @@
"cache": "Cache: +{{writes}} → {{reads}}",
"apiCost": "Costo API: ${{cost}}",
"history": "Cronologia",
+ "exitSelectionMode": "Esci dalla modalità selezione",
+ "enterSelectionMode": "Entra in modalità selezione",
"done": "Fatto",
"searchPlaceholder": "Ricerca nella cronologia...",
"newest": "Più recenti",
@@ -21,5 +23,16 @@
"deleteTask": "Elimina attività",
"deleteTaskMessage": "Sei sicuro di voler eliminare questa attività? Questa azione non può essere annullata.",
"cancel": "Annulla",
- "delete": "Elimina"
+ "delete": "Elimina",
+ "exitSelection": "Esci dalla selezione",
+ "selectionMode": "Modalità selezione",
+ "deselectAll": "Deseleziona tutto",
+ "selectAll": "Seleziona tutto",
+ "selectedItems": "{{selected}}/{{total}} elementi selezionati",
+ "clearSelection": "Cancella selezione",
+ "deleteSelected": "Elimina selezionati",
+ "deleteTasks": "Elimina attività",
+ "confirmDeleteTasks": "Sei sicuro di voler eliminare {{count}} attività?",
+ "deleteTasksWarning": "Le attività eliminate non possono essere recuperate. Assicurati di voler continuare.",
+ "deleteItems": "Elimina {{count}} elementi"
}
diff --git a/webview-ui/src/i18n/locales/ja/history.json b/webview-ui/src/i18n/locales/ja/history.json
index c8e1184cf6..7067303780 100644
--- a/webview-ui/src/i18n/locales/ja/history.json
+++ b/webview-ui/src/i18n/locales/ja/history.json
@@ -5,6 +5,8 @@
"cache": "キャッシュ: +{{writes}} → {{reads}}",
"apiCost": "API コスト: ${{cost}}",
"history": "履歴",
+ "exitSelectionMode": "選択モードを終了",
+ "enterSelectionMode": "選択モードに入る",
"done": "完了",
"searchPlaceholder": "履歴をあいまい検索...",
"newest": "最新",
@@ -21,5 +23,16 @@
"deleteTask": "タスクを削除",
"deleteTaskMessage": "このタスクを削除してもよろしいですか?この操作は元に戻せません。",
"cancel": "キャンセル",
- "delete": "削除"
+ "delete": "削除",
+ "exitSelection": "選択を終了",
+ "selectionMode": "選択モード",
+ "deselectAll": "すべての選択を解除",
+ "selectAll": "すべて選択",
+ "selectedItems": "{{selected}}/{{total}} 項目を選択中",
+ "clearSelection": "選択をクリア",
+ "deleteSelected": "選択した項目を削除",
+ "deleteTasks": "タスクを削除",
+ "confirmDeleteTasks": "{{count}} 件のタスクを削除してもよろしいですか?",
+ "deleteTasksWarning": "削除されたタスクは復元できません。続行してもよろしいですか?",
+ "deleteItems": "{{count}} 項目を削除"
}
diff --git a/webview-ui/src/i18n/locales/ko/history.json b/webview-ui/src/i18n/locales/ko/history.json
index 1499aca694..4c7d947820 100644
--- a/webview-ui/src/i18n/locales/ko/history.json
+++ b/webview-ui/src/i18n/locales/ko/history.json
@@ -5,6 +5,8 @@
"cache": "캐시: +{{writes}} → {{reads}}",
"apiCost": "API 비용: ${{cost}}",
"history": "기록",
+ "exitSelectionMode": "선택 모드 종료",
+ "enterSelectionMode": "선택 모드 진입",
"done": "완료",
"searchPlaceholder": "기록 검색...",
"newest": "최신순",
@@ -21,5 +23,16 @@
"deleteTask": "작업 삭제",
"deleteTaskMessage": "이 작업을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.",
"cancel": "취소",
- "delete": "삭제"
+ "delete": "삭제",
+ "exitSelection": "선택 종료",
+ "selectionMode": "선택 모드",
+ "deselectAll": "전체 선택 해제",
+ "selectAll": "전체 선택",
+ "selectedItems": "{{selected}}/{{total}}개 선택됨",
+ "clearSelection": "선택 초기화",
+ "deleteSelected": "선택 항목 삭제",
+ "deleteTasks": "작업 삭제",
+ "confirmDeleteTasks": "{{count}}개의 작업을 삭제하시겠습니까?",
+ "deleteTasksWarning": "삭제된 작업은 복구할 수 없습니다. 계속 진행하시겠습니까?",
+ "deleteItems": "{{count}}개 항목 삭제"
}
diff --git a/webview-ui/src/i18n/locales/pl/history.json b/webview-ui/src/i18n/locales/pl/history.json
index 1df15bc7cb..f9359eeed8 100644
--- a/webview-ui/src/i18n/locales/pl/history.json
+++ b/webview-ui/src/i18n/locales/pl/history.json
@@ -5,6 +5,8 @@
"cache": "Pamięć podręczna: +{{writes}} → {{reads}}",
"apiCost": "Koszt API: ${{cost}}",
"history": "Historia",
+ "exitSelectionMode": "Wyłącz tryb wyboru",
+ "enterSelectionMode": "Włącz tryb wyboru",
"done": "Gotowe",
"searchPlaceholder": "Szukaj w historii...",
"newest": "Najnowsze",
@@ -21,5 +23,16 @@
"deleteTask": "Usuń zadanie",
"deleteTaskMessage": "Czy na pewno chcesz usunąć to zadanie? Tej akcji nie można cofnąć.",
"cancel": "Anuluj",
- "delete": "Usuń"
+ "delete": "Usuń",
+ "exitSelection": "Wyjdź z wyboru",
+ "selectionMode": "Tryb wyboru",
+ "deselectAll": "Odznacz wszystko",
+ "selectAll": "Zaznacz wszystko",
+ "selectedItems": "{{selected}}/{{total}} elementów wybranych",
+ "clearSelection": "Wyczyść wybór",
+ "deleteSelected": "Usuń wybrane",
+ "deleteTasks": "Usuń zadania",
+ "confirmDeleteTasks": "Czy na pewno chcesz usunąć {{count}} zadań?",
+ "deleteTasksWarning": "Usuniętych zadań nie można przywrócić. Upewnij się, że chcesz kontynuować.",
+ "deleteItems": "Usuń {{count}} elementów"
}
diff --git a/webview-ui/src/i18n/locales/pt-BR/history.json b/webview-ui/src/i18n/locales/pt-BR/history.json
index 4b80832713..a44f039bb8 100644
--- a/webview-ui/src/i18n/locales/pt-BR/history.json
+++ b/webview-ui/src/i18n/locales/pt-BR/history.json
@@ -5,6 +5,8 @@
"cache": "Cache: +{{writes}} → {{reads}}",
"apiCost": "Custo da API: ${{cost}}",
"history": "Histórico",
+ "exitSelectionMode": "Sair do modo de seleção",
+ "enterSelectionMode": "Entrar no modo de seleção",
"done": "Concluído",
"searchPlaceholder": "Pesquisar no histórico...",
"newest": "Mais recentes",
@@ -21,5 +23,16 @@
"deleteTask": "Excluir tarefa",
"deleteTaskMessage": "Tem certeza que deseja excluir esta tarefa? Esta ação não pode ser desfeita.",
"cancel": "Cancelar",
- "delete": "Excluir"
+ "delete": "Excluir",
+ "exitSelection": "Sair da seleção",
+ "selectionMode": "Modo de seleção",
+ "deselectAll": "Desmarcar tudo",
+ "selectAll": "Selecionar tudo",
+ "selectedItems": "{{selected}}/{{total}} itens selecionados",
+ "clearSelection": "Limpar seleção",
+ "deleteSelected": "Excluir selecionados",
+ "deleteTasks": "Excluir tarefas",
+ "confirmDeleteTasks": "Tem certeza que deseja excluir {{count}} tarefas?",
+ "deleteTasksWarning": "As tarefas excluídas não podem ser recuperadas. Por favor, certifique-se de que deseja prosseguir.",
+ "deleteItems": "Excluir {{count}} itens"
}
diff --git a/webview-ui/src/i18n/locales/tr/history.json b/webview-ui/src/i18n/locales/tr/history.json
index 74bd66abb3..07761f1536 100644
--- a/webview-ui/src/i18n/locales/tr/history.json
+++ b/webview-ui/src/i18n/locales/tr/history.json
@@ -5,6 +5,8 @@
"cache": "Önbellek: +{{writes}} → {{reads}}",
"apiCost": "API Maliyeti: ${{cost}}",
"history": "Geçmiş",
+ "exitSelectionMode": "Seçim Modundan Çık",
+ "enterSelectionMode": "Seçim Moduna Gir",
"done": "Tamam",
"searchPlaceholder": "Geçmişte ara...",
"newest": "En Yeni",
@@ -21,5 +23,16 @@
"deleteTask": "Görevi Sil",
"deleteTaskMessage": "Bu görevi silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.",
"cancel": "İptal",
- "delete": "Sil"
+ "delete": "Sil",
+ "exitSelection": "Seçimden Çık",
+ "selectionMode": "Seçim Modu",
+ "deselectAll": "Tümünü Seçimi Kaldır",
+ "selectAll": "Tümünü Seç",
+ "selectedItems": "{{selected}}/{{total}} öğe seçildi",
+ "clearSelection": "Seçimi Temizle",
+ "deleteSelected": "Seçilenleri Sil",
+ "deleteTasks": "Görevleri Sil",
+ "confirmDeleteTasks": "{{count}} görevi silmek istediğinizden emin misiniz?",
+ "deleteTasksWarning": "Silinen görevler geri alınamaz. Lütfen devam etmek istediğinizden emin olun.",
+ "deleteItems": "{{count}} Öğeyi Sil"
}
diff --git a/webview-ui/src/i18n/locales/vi/history.json b/webview-ui/src/i18n/locales/vi/history.json
index 218d6e4082..29ecb390e0 100644
--- a/webview-ui/src/i18n/locales/vi/history.json
+++ b/webview-ui/src/i18n/locales/vi/history.json
@@ -21,5 +21,18 @@
"deleteTask": "Xóa nhiệm vụ",
"deleteTaskMessage": "Bạn có chắc chắn muốn xóa nhiệm vụ này không? Hành động này không thể hoàn tác.",
"cancel": "Hủy",
- "delete": "Xóa"
+ "delete": "Xóa",
+ "exitSelectionMode": "Thoát chế độ chọn",
+ "enterSelectionMode": "Vào chế độ chọn",
+ "exitSelection": "Thoát chọn",
+ "selectionMode": "Chế độ chọn",
+ "deselectAll": "Bỏ chọn tất cả",
+ "selectAll": "Chọn tất cả",
+ "selectedItems": "Đã chọn {{selected}}/{{total}} mục",
+ "clearSelection": "Xóa chọn",
+ "deleteSelected": "Xóa các mục đã chọn",
+ "deleteTasks": "Xóa nhiệm vụ",
+ "confirmDeleteTasks": "Bạn có chắc chắn muốn xóa {{count}} nhiệm vụ không?",
+ "deleteTasksWarning": "Các nhiệm vụ đã xóa không thể khôi phục. Vui lòng chắc chắn bạn muốn tiếp tục.",
+ "deleteItems": "Xóa {{count}} mục"
}
diff --git a/webview-ui/src/i18n/locales/zh-CN/history.json b/webview-ui/src/i18n/locales/zh-CN/history.json
index 6671f5d59e..d7945d3860 100644
--- a/webview-ui/src/i18n/locales/zh-CN/history.json
+++ b/webview-ui/src/i18n/locales/zh-CN/history.json
@@ -5,6 +5,8 @@
"cache": "缓存: +{{writes}} → {{reads}}",
"apiCost": "API 成本: ${{cost}}",
"history": "历史记录",
+ "exitSelectionMode": "退出选择模式",
+ "enterSelectionMode": "进入选择模式",
"done": "完成",
"searchPlaceholder": "模糊搜索历史...",
"newest": "最新",
@@ -21,5 +23,16 @@
"deleteTask": "删除任务",
"deleteTaskMessage": "确定要删除此任务吗?此操作无法撤销。",
"cancel": "取消",
- "delete": "删除"
+ "delete": "删除",
+ "exitSelection": "退出选择",
+ "selectionMode": "选择模式",
+ "deselectAll": "取消全选",
+ "selectAll": "全选",
+ "selectedItems": "已选 {{selected}}/{{total}} 项",
+ "clearSelection": "清除选择",
+ "deleteSelected": "删除选中项",
+ "deleteTasks": "删除任务",
+ "confirmDeleteTasks": "确定要删除 {{count}} 个任务吗?",
+ "deleteTasksWarning": "已删除的任务无法恢复。请确认是否继续。",
+ "deleteItems": "删除 {{count}} 项"
}
diff --git a/webview-ui/src/i18n/locales/zh-TW/history.json b/webview-ui/src/i18n/locales/zh-TW/history.json
index 588b008c5c..acb81e4755 100644
--- a/webview-ui/src/i18n/locales/zh-TW/history.json
+++ b/webview-ui/src/i18n/locales/zh-TW/history.json
@@ -5,6 +5,8 @@
"cache": "快取: +{{writes}} → {{reads}}",
"apiCost": "API 費用: ${{cost}}",
"history": "歷史記錄",
+ "exitSelectionMode": "退出選擇模式",
+ "enterSelectionMode": "進入選擇模式",
"done": "完成",
"searchPlaceholder": "模糊搜尋歷史...",
"newest": "最新",
@@ -21,5 +23,16 @@
"deleteTask": "刪除任務",
"deleteTaskMessage": "確定要刪除此任務嗎?此操作無法復原。",
"cancel": "取消",
- "delete": "刪除"
+ "delete": "刪除",
+ "exitSelection": "退出選擇",
+ "selectionMode": "選擇模式",
+ "deselectAll": "取消全選",
+ "selectAll": "全選",
+ "selectedItems": "已選 {{selected}}/{{total}} 項",
+ "clearSelection": "清除選擇",
+ "deleteSelected": "刪除所選",
+ "deleteTasks": "刪除任務",
+ "confirmDeleteTasks": "確定要刪除 {{count}} 個任務嗎?",
+ "deleteTasksWarning": "已刪除的任務無法恢復。請確認是否繼續。",
+ "deleteItems": "刪除 {{count}} 項"
}