You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

168 lines
6.9 KiB

4 weeks ago
export const supportedLanguages = ["ko", "en"];
export const translations = {
ko: {
"brand.kicker": "콘솔 서버",
"nav.title": "제어 메뉴",
"nav.overview.title": "개요",
"nav.overview.desc": "랙 요약 및 상태",
"nav.ports.title": "포트",
"nav.ports.desc": "48개 시리얼 채널",
"nav.terminal.title": "터미널",
"nav.terminal.desc": "대화형 셸",
"nav.sessions.title": "세션",
"nav.sessions.desc": "사용자 및 장비 연결",
"nav.system.title": "시스템",
"nav.system.desc": "네트워크 및 보안",
"flyout.overview.dashboard": "개요 대시보드",
"flyout.example": "예시 페이지",
"flyout.ports.matrix": "포트 매트릭스",
"flyout.ports.cabling": "케이블 맵",
"flyout.sessions.active": "활성 세션",
"flyout.system.settings": "시스템 설정",
"pill.live": "실시간",
"pill.safe": "보안",
"topbar.eyebrow": "통합 콘솔 서버",
"chip.ports": "48 시리얼 포트",
"chip.dualLan": "듀얼 LAN",
"chip.remoteAccess": "원격 접속",
"terminal.title": "브라우저 터미널",
"terminal.body1": "진단, 포트 점검, 로컬 관리자 작업을 위해 소켓 세션을 사용합니다. 화면을 초기화하려면",
"terminal.body2": "또는",
"terminal.body3": "를 입력하세요.",
"terminal.consoleTitle": "유지보수 콘솔",
"terminal.consoleNote": "Windows PowerShell 세션",
"terminal.footer": "로컬 셸 스트림",
"cabling.title": "연결 케이블 목록",
"cabling.standard": "콘솔 규격",
"cabling.types": "케이블 종류",
"cabling.typesValue": "스트레이트 / 크로스오버",
"cabling.labeling": "라벨링",
"cabling.labelingValue": "랙 + 포트 ID",
"cabling.patchRule": "패치 규칙",
"cabling.patchRuleValue": "그룹별 색상 구분",
"cabling.notesTitle": "포트 배선 노트",
"cabling.blueTitle": "파란 번들",
"cabling.blueBody": "관리자 PC에서 이더넷 스위치 업링크로 연결",
"cabling.orangeTitle": "주황 번들",
"cabling.orangeBody": "CS-48에서 현장 장비와 랙 자산으로 연결",
"cabling.grayTitle": "회색 번들",
"cabling.grayBody": "시스로그 및 유지보수 백업 경로",
"events.title": "최근 이벤트",
"events.time": "시간",
"events.source": "소스",
"events.event": "이벤트",
"events.state": "상태",
"events.row1": "운영자에 의해 세션이 열림",
"events.row2": "독점 잠금이 활성화됨",
"events.row3": "시스로그 전달 정상",
"events.row4": "설정 스냅샷 저장 완료",
"events.info": "정보",
"events.warn": "경고",
"events.ok": "정상",
"example.title": "예시 페이지",
"example.body": "이 서브메뉴는 앞으로 들어올 화면 자리입니다. 실제 기능 흐름이 정해지면 이 예시 페이지를 교체하면 됩니다.",
"socket.connecting": "연결 중...",
"socket.connected": "소켓 연결됨",
"socket.disconnected": "소켓 연결 끊김",
"socket.error": "소켓 오류",
"socket.waiting": "소켓 대기 중...",
"socket.closed": "연결이 종료되었습니다",
"socket.errorPrefix": "오류",
"page.overview": "개요",
"page.ports": "포트",
"page.terminal": "터미널",
"page.sessions": "세션",
"page.cabling": "배선",
"page.events": "이벤트",
"page.system": "시스템",
"page.example": "예시 페이지",
},
en: {
"brand.kicker": "Console Server",
"nav.title": "Control",
"nav.overview.title": "Overview",
"nav.overview.desc": "Rack summary and health",
"nav.ports.title": "Ports",
"nav.ports.desc": "48 serial channels",
"nav.terminal.title": "Terminal",
"nav.terminal.desc": "Interactive shell",
"nav.sessions.title": "Sessions",
"nav.sessions.desc": "User and device links",
"nav.system.title": "System",
"nav.system.desc": "Network and security",
"flyout.overview.dashboard": "Overview Dashboard",
"flyout.example": "Example Page",
"flyout.ports.matrix": "Port Matrix",
"flyout.ports.cabling": "Cable Map",
"flyout.sessions.active": "Active Sessions",
"flyout.system.settings": "System Settings",
"pill.live": "Live",
"pill.safe": "Safe",
"topbar.eyebrow": "Integrated Console Server",
"chip.ports": "48 Serial Ports",
"chip.dualLan": "Dual LAN",
"chip.remoteAccess": "Remote Access",
"terminal.title": "Browser Terminal",
"terminal.body1": "Use the socket session for diagnostics, port inspection, and local admin tasks. Type",
"terminal.body2": "or",
"terminal.body3": "to reset the view.",
"terminal.consoleTitle": "Maintenance Console",
"terminal.consoleNote": "Windows PowerShell Session",
"terminal.footer": "Local shell stream",
"cabling.title": "Connection Cable List",
"cabling.standard": "Console standard",
"cabling.types": "Cable types",
"cabling.typesValue": "Straight / Cross-over",
"cabling.labeling": "Labeling",
"cabling.labelingValue": "Rack + Port ID",
"cabling.patchRule": "Patch rule",
"cabling.patchRuleValue": "Color by group",
"cabling.notesTitle": "Port Wiring Notes",
"cabling.blueTitle": "Blue bundle",
"cabling.blueBody": "Manager PC to Ethernet switch uplink",
"cabling.orangeTitle": "Orange bundle",
"cabling.orangeBody": "CS-48 to field devices and rack assets",
"cabling.grayTitle": "Gray bundle",
"cabling.grayBody": "Syslog and maintenance backup path",
"events.title": "Recent Events",
"events.time": "Time",
"events.source": "Source",
"events.event": "Event",
"events.state": "State",
"events.row1": "Session opened by operator",
"events.row2": "Exclusive lock enabled",
"events.row3": "Syslog forwarding healthy",
"events.row4": "Config snapshot saved",
"events.info": "Info",
"events.warn": "Warn",
"events.ok": "OK",
"example.title": "Example Page",
"example.body": "This submenu is reserved for a future screen. Replace this placeholder with the real feature page when the flow is defined.",
"socket.connecting": "Connecting...",
"socket.connected": "Socket connected",
"socket.disconnected": "Socket disconnected",
"socket.error": "Socket error",
"socket.waiting": "Waiting for socket...",
"socket.closed": "connection closed",
"socket.errorPrefix": "error",
"page.overview": "Overview",
"page.ports": "Ports",
"page.terminal": "Terminal",
"page.sessions": "Sessions",
"page.cabling": "Cabling",
"page.events": "Events",
"page.system": "System",
"page.example": "Example Page",
},
};
export function detectLanguage() {
const stored = localStorage.getItem("teraclone-language");
if (supportedLanguages.includes(stored)) {
return stored;
}
return navigator.language?.toLowerCase().startsWith("ko") ? "ko" : "en";
}