kcg-ai-monitoring/frontend/src/lib/i18n/locales/ko/common.json
htlee 5812d9dea3 feat(frontend): UI 공통 인프라 + 19개 분류 카탈로그 구축
- cn() 유틸 신규 (clsx + tailwind-merge, 시맨틱 토큰 classGroup 등록)
- theme.css @layer utilities로 직접 정의 (Tailwind v4 복합 이름 매핑 실패 대응):
  text-heading/label/hint/on-vivid/on-bright, bg-surface-raised/overlay
- badgeVariants (CVA) 재구축: 8 intent x 4 size, rem 기반, !important 제거
- Badge 컴포넌트가 cn(badgeVariants, className)로 override 허용
- DataTable width 의미 변경: 고정 -> 선호 최소 너비 (minWidth), truncate + title 툴팁
- dateFormat.ts sv-SE 로케일로 YYYY-MM-DD HH:mm:ss 일관된 KST 출력
- ColorPicker 신규 (팔레트 + native color + hex 입력)
- shared/constants/ 19개 카탈로그: violation/alert/event/enforcement/patrol/
  engine/userRole/device/parentResolution/modelDeployment/gearGroup/darkVessel/
  httpStatus/userAccount/loginResult/permission/vesselAnalysis/connection/trainingZone
  + kpiUiMap. 백엔드 enum/code_master 기반 SSOT
- i18n ko/en common.json에 카테고리 섹션 추가
- adminApi.fetchRoles()가 updateRoleColorCache 자동 호출
- 공통 컴포넌트 (ExcelExport/NotificationBanner/Pagination/SaveButton) 시맨틱 토큰 적용
2026-04-08 10:53:40 +09:00

230 lines
6.1 KiB
JSON

{
"nav": {
"dashboard": "종합 상황판",
"monitoring": "경보 현황판",
"riskMap": "위험도 지도",
"enforcementPlan": "단속 계획",
"darkVessel": "다크베셀 탐지",
"gearDetection": "어구 탐지",
"chinaFishing": "중국어선 분석",
"patrolRoute": "순찰경로 추천",
"fleetOptimization": "다함정 최적화",
"enforcementHistory": "단속 이력",
"realtimeEvent": "실시간 이벤트",
"eventList": "이벤트 목록",
"mobileService": "모바일 서비스",
"shipAgent": "함정 Agent",
"aiAlert": "AI 알림 발송",
"statistics": "통계 분석",
"externalService": "외부 서비스",
"reports": "보고서 관리",
"aiModel": "AI 모델관리",
"mlops": "MLOps",
"aiAssistant": "AI 의사결정 지원",
"dataHub": "데이터 허브",
"systemConfig": "환경설정",
"notices": "공지사항",
"accessControl": "권한 관리",
"admin": "시스템 관리",
"parentReview": "모선 확정/거부",
"parentExclusion": "후보 제외",
"labelSession": "학습 세션",
"auditLogs": "감사 로그",
"accessLogs": "접근 이력",
"loginHistory": "로그인 이력"
},
"status": {
"active": "활성",
"inactive": "비활성",
"online": "온라인",
"offline": "오프라인",
"tracking": "추적중",
"monitoring": "감시중",
"confirmed": "확인됨",
"pending": "대기중"
},
"alert": {
"critical": "긴급",
"high": "높음",
"medium": "보통",
"low": "낮음"
},
"violation": {
"eezViolation": "EEZ 침범",
"darkVessel": "다크베셀",
"mmsiTampering": "MMSI 변조",
"illegalTransship": "불법 환적",
"illegalGear": "불법 어구",
"riskBehavior": "위험 행동"
},
"eventStatus": {
"NEW": "신규",
"ACK": "확인",
"IN_PROGRESS": "처리중",
"RESOLVED": "완료",
"FALSE_POSITIVE": "오탐"
},
"enforcementAction": {
"CAPTURE": "나포",
"INSPECT": "검문",
"WARN": "경고",
"DISPERSE": "퇴거",
"TRACK": "추적",
"EVIDENCE": "증거수집"
},
"enforcementResult": {
"PUNISHED": "처벌",
"REFERRED": "수사의뢰",
"WARNED": "경고",
"RELEASED": "훈방",
"FALSE_POSITIVE": "오탐(정상)"
},
"patrolStatus": {
"AVAILABLE": "가용",
"ON_PATROL": "초계중",
"IN_PURSUIT": "추적중",
"INSPECTING": "검문중",
"RETURNING": "귀항중",
"STANDBY": "대기",
"MAINTENANCE": "정비중"
},
"engineSeverity": {
"CRITICAL": "심각",
"HIGH_CRITICAL": "높음~심각",
"HIGH": "높음",
"MEDIUM_CRITICAL": "보통~심각",
"MEDIUM": "보통",
"LOW": "낮음",
"NONE": "-"
},
"deviceStatus": {
"ONLINE": "온라인",
"OFFLINE": "오프라인",
"SYNCING": "동기화중",
"NOT_DEPLOYED": "미배포"
},
"parentResolution": {
"UNRESOLVED": "미해결",
"REVIEW_REQUIRED": "검토 필요",
"MANUAL_CONFIRMED": "수동 확정"
},
"labelSession": {
"ACTIVE": "진행중",
"COMPLETED": "완료",
"CANCELLED": "취소"
},
"modelStatus": {
"DEPLOYED": "배포됨",
"APPROVED": "승인",
"TESTING": "테스트",
"DRAFT": "초안"
},
"gearGroupType": {
"FLEET": "선단",
"GEAR_IN_ZONE": "구역 내 어구",
"GEAR_OUT_ZONE": "구역 외 어구"
},
"darkPattern": {
"AIS_FULL_BLOCK": "AIS 완전차단",
"MMSI_SPOOFING": "MMSI 변조 의심",
"LONG_LOSS": "장기 소실",
"INTERMITTENT": "신호 간헐송출",
"SPEED_ANOMALY": "속도 이상"
},
"userAccountStatus": {
"ACTIVE": "활성",
"PENDING": "승인 대기",
"LOCKED": "잠금",
"INACTIVE": "비활성"
},
"loginResult": {
"SUCCESS": "성공",
"FAILED": "실패",
"LOCKED": "계정 잠금"
},
"permitStatus": {
"VALID": "유효",
"PENDING": "확인 중",
"EXPIRED": "만료",
"UNLICENSED": "무허가"
},
"gearJudgment": {
"NORMAL": "정상",
"CHECKING": "확인 중",
"SUSPECT_ILLEGAL": "불법 의심"
},
"vesselSurveillance": {
"TRACKING": "추적중",
"WATCHING": "감시중",
"CHECKING": "확인중",
"NORMAL": "정상"
},
"vesselRing": {
"SAFE": "양호",
"SUSPECT": "의심",
"WARNING": "경고"
},
"connectionStatus": {
"OK": "정상",
"WARNING": "경고",
"ERROR": "오류"
},
"trainingZone": {
"NAVY": "해군 훈련 구역",
"AIRFORCE": "공군 훈련 구역",
"ARMY": "육군 훈련 구역",
"ADD": "국방과학연구소",
"KCG": "해양경찰청"
},
"action": {
"search": "검색",
"save": "저장",
"cancel": "취소",
"delete": "삭제",
"export": "내보내기",
"print": "인쇄",
"download": "다운로드",
"upload": "업로드",
"filter": "필터",
"reset": "초기화",
"confirm": "확인",
"close": "닫기"
},
"layout": {
"brandTitle": "불법조업 감시",
"brandSub": "AI 탐지·차단 플랫폼",
"alertCount_one": "경보 {{count}}건",
"alertCount_other": "경보 {{count}}건",
"searchPlaceholder": "선박명, MMSI, 해역 검색...",
"pageSearch": "페이지 내 검색...",
"sessionExpiring": "세션 만료",
"extendNeeded": "연장 필요",
"auth": "인증:",
"logout": "로그아웃",
"download": "다운로드",
"excel": "엑셀",
"print": "인쇄",
"noExportTable": "내보낼 테이블이 없습니다.",
"fileDownload": "파일 다운로드",
"excelExport": "엑셀(CSV) 내보내기"
},
"role": {
"ADMIN": "시스템 관리자",
"OPERATOR": "상황실 운영자",
"ANALYST": "분석 담당자",
"FIELD": "현장 단속요원",
"VIEWER": "유관기관 열람자"
},
"group": {
"monitoring": "모니터링",
"detection": "탐지·분석",
"patrol": "순찰·경로",
"enforcement": "단속·이력",
"fieldOps": "함정·현장",
"parentInference": "모선 워크플로우",
"statistics": "통계·보고",
"aiOps": "AI 운영",
"admin": "시스템 관리"
}
}