- 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) 시맨틱 토큰 적용
230 lines
6.1 KiB
JSON
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": "시스템 관리"
|
|
}
|
|
}
|