Files
claudecodeui/src/i18n/locales/ko/sidebar.json
PaloSP 198e3da89b feat: implement session rename with SQLite storage (#413)
* 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>
2026-03-03 18:11:26 +03:00

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": "이 작업은 취소할 수 없습니다."
}
}