mirror of
https://github.com/siteboon/claudecodeui.git
synced 2026-05-30 08:15:31 +08:00
* feat: implement session rename with SQLite storage (closes #72, fixes #358) - Add session_names table to store custom display names per provider - Add PUT /api/sessions/:sessionId/rename endpoint - Replace stub updateSessionSummary with real API call - Apply custom names across all providers (Claude, Codex, Cursor) - Fix project rename destroying config (spread merge instead of overwrite) - Thread provider parameter through sidebar component chain - Add i18n error messages for rename failures (en, ja, ko, zh-CN) * fix: address CodeRabbit review feedback for session rename - Log migration errors instead of swallowing them silently (db.js) - Add try/catch to applyCustomSessionNames to prevent getProjects abort - Move applyCustomSessionNames to db.js as shared helper (DRY) - Fix Cursor getSessionName to check session.summary for custom names - Move edit state clearing to finally block in updateSessionSummary - Sanitize sessionId, add 500-char summary limit, validate provider whitelist - Remove dead applyCustomSessionNames call on empty manual project sessions * fix: reject sessionId on mismatch instead of silent normalization Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * fix: enable rename for all providers, add Gemini support, clean up orphans - Enable rename UI (pencil icon) for Codex, Cursor, and Gemini sessions - Keep delete button hidden for Cursor (no backend delete endpoint) - Add 'gemini' to VALID_PROVIDERS and hoist to module scope - Add sessionNamesDb.deleteName on session delete (claude, codex, gemini) - Fix token-usage endpoint sessionId mismatch validation - Remove redundant try/catch in sessionNamesDb methods - Let session_names migration errors propagate to outer handler --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Haileyesus <118998054+blackmammoth@users.noreply.github.com>
115 lines
4.5 KiB
JSON
115 lines
4.5 KiB
JSON
{
|
|
"projects": {
|
|
"title": "프로젝트",
|
|
"newProject": "새 프로젝트",
|
|
"deleteProject": "프로젝트 삭제",
|
|
"renameProject": "프로젝트 이름 변경",
|
|
"noProjects": "프로젝트가 없습니다",
|
|
"loadingProjects": "프로젝트 로딩 중...",
|
|
"searchPlaceholder": "프로젝트 검색...",
|
|
"projectNamePlaceholder": "프로젝트 이름",
|
|
"starred": "즐겨찾기",
|
|
"all": "전체",
|
|
"untitledSession": "제목 없는 세션",
|
|
"newSession": "새 세션",
|
|
"codexSession": "Codex 세션",
|
|
"fetchingProjects": "Claude 프로젝트와 세션을 가져오는 중",
|
|
"projects": "프로젝트",
|
|
"noMatchingProjects": "일치하는 프로젝트 없음",
|
|
"tryDifferentSearch": "검색어를 변경해보세요",
|
|
"runClaudeCli": "프로젝트 디렉토리에서 Claude CLI를 실행하여 시작하세요"
|
|
},
|
|
"app": {
|
|
"title": "Claude Code UI",
|
|
"subtitle": "AI 코딩 어시스턴트 UI"
|
|
},
|
|
"sessions": {
|
|
"title": "세션",
|
|
"newSession": "새 세션",
|
|
"deleteSession": "세션 삭제",
|
|
"renameSession": "세션 이름 변경",
|
|
"noSessions": "세션이 없습니다",
|
|
"loadingSessions": "세션 로딩 중...",
|
|
"unnamed": "이름 없음",
|
|
"loading": "로딩 중...",
|
|
"showMore": "더 많은 세션 보기"
|
|
},
|
|
"tooltips": {
|
|
"viewEnvironments": "환경 보기",
|
|
"hideSidebar": "사이드바 숨기기",
|
|
"createProject": "새 프로젝트 생성",
|
|
"refresh": "프로젝트 및 세션 새로고침 (Ctrl+R)",
|
|
"renameProject": "프로젝트 이름 변경 (F2)",
|
|
"deleteProject": "빈 프로젝트 삭제 (Delete)",
|
|
"addToFavorites": "즐겨찾기에 추가",
|
|
"removeFromFavorites": "즐겨찾기에서 제거",
|
|
"editSessionName": "세션 이름 직접 편집",
|
|
"deleteSession": "이 세션 영구 삭제",
|
|
"save": "저장",
|
|
"cancel": "취소"
|
|
},
|
|
"navigation": {
|
|
"chat": "채팅",
|
|
"files": "파일",
|
|
"git": "Git",
|
|
"terminal": "터미널",
|
|
"tasks": "작업"
|
|
},
|
|
"actions": {
|
|
"refresh": "새로고침",
|
|
"settings": "설정",
|
|
"collapseAll": "모두 접기",
|
|
"expandAll": "모두 펼치기",
|
|
"cancel": "취소",
|
|
"save": "저장",
|
|
"delete": "삭제",
|
|
"rename": "이름 변경",
|
|
"joinCommunity": "커뮤니티 참여"
|
|
},
|
|
"status": {
|
|
"active": "활성",
|
|
"inactive": "비활성",
|
|
"thinking": "생각 중...",
|
|
"error": "오류",
|
|
"aborted": "중단됨",
|
|
"unknown": "알 수 없음"
|
|
},
|
|
"time": {
|
|
"justNow": "방금 전",
|
|
"oneMinuteAgo": "1분 전",
|
|
"minutesAgo": "{{count}}분 전",
|
|
"oneHourAgo": "1시간 전",
|
|
"hoursAgo": "{{count}}시간 전",
|
|
"oneDayAgo": "1일 전",
|
|
"daysAgo": "{{count}}일 전"
|
|
},
|
|
"messages": {
|
|
"deleteConfirm": "정말 삭제하시겠습니까?",
|
|
"renameSuccess": "이름이 변경되었습니다",
|
|
"deleteSuccess": "삭제되었습니다",
|
|
"errorOccurred": "오류가 발생했습니다",
|
|
"deleteSessionConfirm": "이 세션을 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.",
|
|
"deleteProjectConfirm": "이 빈 프로젝트를 삭제하시겠습니까? 이 작업은 취소할 수 없습니다.",
|
|
"enterProjectPath": "프로젝트 경로를 입력해주세요",
|
|
"deleteSessionFailed": "세션 삭제 실패. 다시 시도해주세요.",
|
|
"deleteSessionError": "세션 삭제 오류. 다시 시도해주세요.",
|
|
"renameSessionFailed": "세션 이름 변경 실패. 다시 시도해주세요.",
|
|
"renameSessionError": "세션 이름 변경 오류. 다시 시도해주세요.",
|
|
"deleteProjectFailed": "프로젝트 삭제 실패. 다시 시도해주세요.",
|
|
"deleteProjectError": "프로젝트 삭제 오류. 다시 시도해주세요.",
|
|
"createProjectFailed": "프로젝트 생성 실패. 다시 시도해주세요.",
|
|
"createProjectError": "프로젝트 생성 오류. 다시 시도해주세요."
|
|
},
|
|
"version": {
|
|
"updateAvailable": "업데이트 가능"
|
|
},
|
|
"deleteConfirmation": {
|
|
"deleteProject": "프로젝트 삭제",
|
|
"deleteSession": "세션 삭제",
|
|
"confirmDelete": "정말 삭제하시겠습니까",
|
|
"sessionCount_one": "이 프로젝트에는 {{count}}개의 대화가 있습니다.",
|
|
"sessionCount_other": "이 프로젝트에는 {{count}}개의 대화가 있습니다.",
|
|
"allConversationsDeleted": "모든 대화가 영구적으로 삭제됩니다.",
|
|
"cannotUndo": "이 작업은 취소할 수 없습니다."
|
|
}
|
|
} |