공통 번역 리소스 확장:
- common.json 에 aria / error / dialog / success / message 네임스페이스 추가
- ko/en 양쪽 동일 구조 유지 (aria 36 키 + error 7 키 + dialog 4 키 + message 5 키)
alert/confirm 11건 → t() 치환:
- parent-inference: ParentReview / LabelSession / ParentExclusion
- admin: PermissionsPanel / UserRoleAssignDialog / AccessControl
aria-label 한글 40+건 → t() 치환:
- parent-inference (group_key/sub_cluster/정답 parent MMSI/스코프 필터 등)
- admin (역할 코드/이름, 알림 제목/내용, 시작일/종료일, 코드 검색, 대분류 필터, 수신 현황 기준일)
- detection (그룹 유형/해역 필터, 관심영역, 필터 설정/초기화, 멤버 수, 미니맵/재생 닫기)
- enforcement (확인/선박 상세/단속 등록/오탐 처리)
- vessel/statistics/ai-operations (조회 시작/종료 시각, 업로드 패널 닫기, 전송, 예시 URL 복사)
- 공통 컴포넌트 (SearchInput, NotificationBanner)
MainLayout 언어 토글:
- title 삼항분기 → t('message.switchToEnglish'/'switchToKorean')
- aria-label="페이지 내 검색" → t('aria.searchInPage')
- 토글 버튼 자체에 aria-label={t('aria.languageToggle')} 추가
334 lines
9.6 KiB
JSON
334 lines
9.6 KiB
JSON
{
|
|
"nav": {
|
|
"dashboard": "종합 상황판",
|
|
"monitoring": "경보 현황판",
|
|
"riskMap": "위험도 지도",
|
|
"mapControl": "해역 관리",
|
|
"enforcementPlan": "단속 계획",
|
|
"darkVessel": "다크베셀 탐지",
|
|
"gearDetection": "어구 탐지",
|
|
"chinaFishing": "중국어선 분석",
|
|
"patrolRoute": "순찰경로 추천",
|
|
"fleetOptimization": "다함정 최적화",
|
|
"enforcementHistory": "단속 이력",
|
|
"realtimeEvent": "실시간 이벤트",
|
|
"eventList": "이벤트 목록",
|
|
"mobileService": "모바일 서비스",
|
|
"shipAgent": "함정 Agent",
|
|
"aiAlert": "AI 알림 발송",
|
|
"statistics": "통계 분석",
|
|
"externalService": "외부 서비스",
|
|
"reports": "보고서 관리",
|
|
"aiModel": "AI 모델관리",
|
|
"mlops": "MLOps",
|
|
"lgcnsMlops": "LGCNS MLOps",
|
|
"llmOps": "LLM 운영",
|
|
"aiAssistant": "AI 의사결정 지원",
|
|
"dataHub": "데이터 허브",
|
|
"systemConfig": "환경설정",
|
|
"notices": "공지사항",
|
|
"accessControl": "권한 관리",
|
|
"admin": "시스템 관리",
|
|
"parentReview": "모선 확정/거부",
|
|
"parentExclusion": "후보 제외",
|
|
"labelSession": "학습 세션",
|
|
"auditLogs": "감사 로그",
|
|
"accessLogs": "접근 이력",
|
|
"loginHistory": "로그인 이력",
|
|
"aiSecurity": "AI 보안",
|
|
"aiAgentSecurity": "AI Agent 보안",
|
|
"dataRetentionPolicy": "데이터 보관·파기",
|
|
"dataModelVerification": "데이터 모델 검증",
|
|
"performanceMonitoring": "성능 모니터링"
|
|
},
|
|
"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": "속도 이상"
|
|
},
|
|
"darkTier": {
|
|
"CRITICAL": "고의 소실 (위험)",
|
|
"HIGH": "의심 소실",
|
|
"WATCH": "관찰 대상",
|
|
"NONE": "정상"
|
|
},
|
|
"transshipTier": {
|
|
"CRITICAL": "환적 확실",
|
|
"HIGH": "환적 의심",
|
|
"WATCH": "관찰 대상"
|
|
},
|
|
"adminSubGroup": {
|
|
"aiPlatform": "AI 플랫폼",
|
|
"systemOps": "시스템 운영",
|
|
"userMgmt": "사용자 관리",
|
|
"auditSecurity": "감사·보안"
|
|
},
|
|
"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": "시스템 관리"
|
|
},
|
|
"aria": {
|
|
"close": "닫기",
|
|
"closeDialog": "대화상자 닫기",
|
|
"closeNotification": "알림 닫기",
|
|
"edit": "편집",
|
|
"delete": "삭제",
|
|
"search": "검색",
|
|
"clearSearch": "검색어 지우기",
|
|
"searchInPage": "페이지 내 검색",
|
|
"refresh": "새로고침",
|
|
"filter": "필터",
|
|
"filterToggle": "필터 설정",
|
|
"filterReset": "필터 초기화",
|
|
"statusFilter": "상태 필터",
|
|
"scopeFilter": "스코프 필터",
|
|
"groupTypeFilter": "그룹 유형 필터",
|
|
"categoryFilter": "대분류 필터",
|
|
"regionFilter": "해역 필터",
|
|
"previous": "이전",
|
|
"next": "다음",
|
|
"send": "전송",
|
|
"confirmAction": "확인",
|
|
"dateFrom": "시작일",
|
|
"dateTo": "종료일",
|
|
"queryFrom": "조회 시작 시각",
|
|
"queryTo": "조회 종료 시각",
|
|
"roleCode": "역할 코드",
|
|
"roleName": "역할 이름",
|
|
"roleDesc": "역할 설명",
|
|
"groupKey": "그룹 키",
|
|
"subClusterId": "서브 클러스터 ID",
|
|
"excludedMmsi": "제외 MMSI",
|
|
"exclusionReason": "제외 사유",
|
|
"globalExclusionReason": "전역 제외 사유",
|
|
"correctParentMmsi": "정답 parent MMSI",
|
|
"uploadPanelClose": "업로드 패널 닫기",
|
|
"noticeTitle": "알림 제목",
|
|
"noticeContent": "알림 내용",
|
|
"languageToggle": "언어 전환",
|
|
"searchCode": "코드 검색",
|
|
"searchAreaOrZone": "해역 또는 해구 번호 검색",
|
|
"areaOfInterestSelect": "관심영역 선택",
|
|
"replayPosition": "재생 위치",
|
|
"replayClose": "재생 닫기",
|
|
"miniMapClose": "미니맵 닫기",
|
|
"memberCountMin": "최소 멤버 수",
|
|
"memberCountMax": "최대 멤버 수",
|
|
"receiptDate": "수신 현황 기준일",
|
|
"copyExampleUrl": "예시 URL 복사",
|
|
"vesselDetail": "선박 상세",
|
|
"enforcementRegister": "단속 등록",
|
|
"falsePositiveProcess": "오탐 처리"
|
|
},
|
|
"error": {
|
|
"operationFailed": "작업 실패: {{msg}}",
|
|
"createFailed": "생성 실패: {{msg}}",
|
|
"updateFailed": "갱신 실패: {{msg}}",
|
|
"deleteFailed": "삭제 실패: {{msg}}",
|
|
"registerFailed": "등록 실패: {{msg}}",
|
|
"processFailed": "처리 실패: {{msg}}",
|
|
"errorPrefix": "에러: {{msg}}"
|
|
},
|
|
"dialog": {
|
|
"cancelSession": "세션을 취소하시겠습니까?",
|
|
"deleteRole": "해당 역할을 삭제하시겠습니까?",
|
|
"genericDelete": "삭제하시겠습니까?",
|
|
"genericRemove": "제거하시겠습니까?"
|
|
},
|
|
"success": {
|
|
"permissionUpdated": "권한 갱신",
|
|
"saved": "저장되었습니다"
|
|
},
|
|
"message": {
|
|
"noPermission": "접근 권한이 없습니다",
|
|
"loading": "로딩 중...",
|
|
"builtinRoleCannotDelete": "내장 역할은 삭제할 수 없습니다",
|
|
"switchToEnglish": "Switch to English",
|
|
"switchToKorean": "한국어로 전환"
|
|
}
|
|
}
|