- 새 key_registry.ts — 화면마다 받는 키 · 마우스 동작 한 벌 · keyIs(evt, id) · 바꾼 키만 input-prefs.keys - ☰ [설정] CAD 탭 = 찾기 칸 + 「키 · 마우스」 + 리본 탭 › 패널 접이 묶음(기타 여섯) · 날 input → 부품 입력 - 다른 곳 탭 = 손글 안내 지우고 등록부 표(B05 방향키 · D03 Delete 등 빠진 것 포함) · 찾기 - 키 기록 칸 · 줄마다 [기본값] · [모두 기본값] · 같은 화면 · 모든 화면 겹침 · 브라우저 몫 · CAD 글자 단독은 저장 막음 - 배선: B05 되돌림 · 자유지정 Enter · Backspace · D03 되돌림 · 그리기 · 지움(한글 자판도 자판 자리) · CAD F3 · F7 · F8 · F10 · Ctrl 명령 · Delete - 낡은 글 대조 시험 셋(215-1 · 345-3 · 346-4)은 새 배선 글로 고침 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
179 lines
10 KiB
TypeScript
179 lines
10 KiB
TypeScript
/* =============================================================================
|
|
* ui_template_locale_common.ts
|
|
* 다국어 사전 — 공통 문구 (액션/상태/폼/네비게이션/워크플로우 라벨/앱 셸)
|
|
*
|
|
* 규칙 (frontend.md §3):
|
|
* - 모든 UI 문자열은 여기에 [한국어, 영어] 배열로 선(先) 등록.
|
|
* - 컴포넌트에서는 ui_locales.키값[currentLanguageIndex] 형태로만 참조.
|
|
* - 텍스트 하드코딩 절대 금지.
|
|
* - 신규 문구는 해당 섹션 최하단에 추가.
|
|
*
|
|
* 이 파일은 사전 데이터만 담는다. 합성·언어 전환·t() 헬퍼는 ui_template_locale.ts 참조.
|
|
* ========================================================================== */
|
|
|
|
/** [한국어, 영어] 배열 타입 */
|
|
export type LocaleEntry = readonly [ko: string, en: string];
|
|
|
|
export const ui_locales_common = {
|
|
/* ---------------------------------------------------------------------------
|
|
* 공통 — 액션 / 버튼
|
|
* ------------------------------------------------------------------------ */
|
|
Common_Btn_Confirm: ["확인", "Confirm"],
|
|
Common_Btn_Cancel: ["취소", "Cancel"],
|
|
Common_Leave_Unsaved: ["저장 안 한 고침이 있음", "Unsaved edits"],
|
|
Common_Btn_Save: ["저장", "Save"],
|
|
Common_Btn_Delete: ["삭제", "Delete"],
|
|
Common_Btn_Edit: ["수정", "Edit"],
|
|
Common_Btn_Add: ["추가", "Add"],
|
|
Common_Btn_Close: ["닫기", "Close"],
|
|
Common_Btn_Next: ["다음", "Next"],
|
|
Common_Btn_Prev: ["이전", "Previous"],
|
|
Common_Btn_Submit: ["제출", "Submit"],
|
|
Common_Btn_Reset: ["초기화", "Reset"],
|
|
Common_Btn_Download: ["다운로드", "Download"],
|
|
Common_Btn_Upload: ["업로드", "Upload"],
|
|
Common_Btn_Search: ["검색", "Search"],
|
|
Common_Btn_Apply: ["적용", "Apply"],
|
|
Common_Btn_Retry: ["다시 시도", "Retry"],
|
|
|
|
/* ---------------------------------------------------------------------------
|
|
* 공통 — 상태 / 메시지
|
|
* ------------------------------------------------------------------------ */
|
|
Common_Status_Loading: ["불러오는 중...", "Loading..."],
|
|
Common_Load_Failed: ["불러오지 못함", "Failed to load"],
|
|
Common_Reload: ["새로고침", "Reload"],
|
|
Common_Status_Saving: ["저장 중...", "Saving..."],
|
|
Common_Status_Processing: ["처리 중...", "Processing..."],
|
|
Common_Status_Success: ["완료되었습니다", "Completed"],
|
|
Common_Status_Error: ["오류가 발생했습니다", "An error occurred"],
|
|
Common_Status_Empty: ["데이터가 없습니다", "No data available"],
|
|
Common_Msg_ConfirmDelete: ["정말 삭제하시겠습니까?", "Are you sure you want to delete?"],
|
|
Common_Msg_UnsavedChanges: ["저장되지 않은 변경사항이 있습니다", "You have unsaved changes"],
|
|
Common_Msg_RequiredField: ["필수 입력 항목입니다", "This field is required"],
|
|
Common_Msg_InvalidValue: ["올바르지 않은 값입니다", "Invalid value"],
|
|
Workflow_Progress_Title: ["진행단계", "Progress"],
|
|
Workflow_Step_Dashboard: ["대시보드", "Dashboard"],
|
|
Workflow_Overlay_Collapse: ["패널 접기", "Collapse panel"],
|
|
Workflow_Overlay_Expand: ["패널 펼치기", "Expand panel"],
|
|
|
|
/* ---------------------------------------------------------------------------
|
|
* 공통 — 폼 / 검증
|
|
* ------------------------------------------------------------------------ */
|
|
Common_Form_Placeholder_Search: ["검색어를 입력하세요", "Enter search term"],
|
|
Common_Form_Placeholder_Select: ["선택하세요", "Select"],
|
|
Common_Validation_NumberRange: ["숫자 범위를 벗어났습니다", "Value out of range"],
|
|
Common_Validation_EmailFormat: ["이메일 형식이 올바르지 않습니다", "Invalid email format"],
|
|
|
|
/* ---------------------------------------------------------------------------
|
|
* 글로벌 네비게이션 / 언어
|
|
* ------------------------------------------------------------------------ */
|
|
Nav_Home: ["홈", "Home"],
|
|
Nav_Login: ["로그인", "Login"],
|
|
Nav_Logout: ["로그아웃", "Logout"],
|
|
Nav_Register: ["회원가입", "Sign up"],
|
|
Nav_MyAccount: ["내 계정", "My Account"],
|
|
Lang_Korean: ["한국어", "Korean"],
|
|
Lang_English: ["영어", "English"],
|
|
Theme_Light: ["라이트 모드", "Light mode"],
|
|
Theme_Dark: ["다크 모드", "Dark mode"],
|
|
|
|
/* ---------------------------------------------------------------------------
|
|
* 워크플로우 공통 (B04~B09 상단 진행 단계 라벨)
|
|
* ------------------------------------------------------------------------ */
|
|
WF_Step_Surface: ["전처리", "Preprocess"],
|
|
WF_Step_Route: ["노선설계", "Route Design"],
|
|
WF_Step_ProfileCross: ["횡단설계", "Cross Design"],
|
|
WF_Step_DesignDetail: ["상세설계", "Detail Design"],
|
|
WF_Step_Quantity: ["수량산출", "Quantity"],
|
|
WF_Step_Estimation: ["원가계산", "Cost Estimate"],
|
|
WF_State_Stale: ["다시 확인 필요 (앞 단계 변경)", "Stale (an earlier step changed)"],
|
|
WF_State_Failed: ["실패", "Failed"],
|
|
WF_State_Complete: ["완료", "Complete"],
|
|
WF_State_InProgress: ["진행 중", "In Progress"],
|
|
WF_State_NotStarted: ["미실행", "Not Started"],
|
|
|
|
/* ---------------------------------------------------------------------------
|
|
* 앱 셸 — 헤더 / 푸터 (공통 네비게이션)
|
|
* ------------------------------------------------------------------------ */
|
|
App_BrandName: ["AISLO", "AISLO"],
|
|
App_Nav_Program: ["프로그램", "Program"],
|
|
App_Nav_Company: ["회사소개", "Company"],
|
|
App_Nav_News: ["소식", "News"],
|
|
App_Nav_Education: ["교육", "Education"],
|
|
App_Nav_Support: ["기술지원", "Support"],
|
|
App_Menu: ["메뉴", "Menu"],
|
|
App_TouchMode: ["터치 모드", "Touch mode"],
|
|
App_TouchMode_Auto: ["자동", "Auto"],
|
|
App_TouchMode_On: ["켬", "On"],
|
|
App_TouchMode_Off: ["끔", "Off"],
|
|
App_Touch_LongPressHint: [
|
|
"그림 위를 길게 누르면 메뉴 · 두 손가락으로 확대",
|
|
"Long-press the drawing for the menu · pinch to zoom",
|
|
],
|
|
/* ☰ [설정] 창(332 · 588) — 마우스 · CAD 단축키 · 다른 곳 단축키(표 = `A00_Common/key_registry.ts`) */
|
|
App_Settings: ["설정", "Settings"],
|
|
App_Settings_Tab_Mouse: ["마우스", "Mouse"],
|
|
App_Settings_Tab_Cad: ["CAD 단축키", "CAD shortcuts"],
|
|
App_Settings_Tab_Keys: ["다른 곳 단축키", "Other shortcuts"],
|
|
App_Settings_Wheel: ["휠 확대 방향(모든 화면)", "Wheel zoom-in direction (all views)"],
|
|
App_Settings_Wheel_Pull: ["당기면 확대(휠을 몸 쪽으로)", "Pull to zoom in (wheel toward you)"],
|
|
App_Settings_Wheel_Push: ["밀면 확대(휠을 앞으로)", "Push to zoom in (wheel away)"],
|
|
App_Settings_Pan: ["화면 옮기기 버튼(모든 화면)", "Pan button (all views)"],
|
|
App_Settings_Pan_Left: ["왼쪽", "Left"],
|
|
App_Settings_Pan_Middle: ["가운데(휠)", "Middle (wheel)"],
|
|
App_Settings_Pan_Right: ["오른쪽", "Right"],
|
|
App_Settings_Find: ["찾기 — 이름 · 키 · 별칭", "Find — name · key · alias"],
|
|
App_Settings_Find_Empty: ["맞는 것 없음", "No match"],
|
|
App_Settings_Reset: ["기본값", "Default"],
|
|
App_Settings_Reset_All: ["모두 기본값", "All defaults"],
|
|
App_Settings_Key_Action: ["동작", "Action"],
|
|
App_Settings_Key_Key: ["키", "Key"],
|
|
App_Settings_Key_Help: [
|
|
"칸을 누르고 새 키를 누름 · 배지 줄은 못 바꿈 · [저장] 때 계정에 남음",
|
|
"Click a box and press the new key · badge rows are fixed · saved to your account on [Save]",
|
|
],
|
|
App_Settings_Key_ErrDup: ["같은 화면에서 이미 쓰는 키", "Key already used on this screen"],
|
|
App_Settings_Key_ErrReserved: ["브라우저가 쓰는 키", "Reserved by the browser"],
|
|
App_Settings_Key_ErrLetter: [
|
|
"CAD 는 글자 하나만으로 못 씀(명령 입력 몫)",
|
|
"CAD cannot use a single letter (command line)",
|
|
],
|
|
App_Settings_Key_Invalid: ["키가 겹치거나 못 쓰는 키라 저장 안 함", "Not saved — fix the keys"],
|
|
App_Settings_Cad_Keys: ["키 · 마우스", "Keys · mouse"],
|
|
App_Settings_Cad_Other: ["기타", "Other"],
|
|
/* 아래 규칙 값 = 한 줄에 「입력 = 동작」 · 줄바꿈(\n)으로 줄 나눔 · ko · en 줄 수 같게 */
|
|
App_Settings_Rules: ["마우스 버튼", "Mouse buttons"],
|
|
App_Settings_Rule_Pan: [
|
|
"고른 버튼 끌기 = 화면 옮김(가운데는 늘)\n고른 버튼 안 끌고 뗌 = 그 버튼 제 몫",
|
|
"Drag with the chosen button = pan (middle always)\nClick without drag = the button's own role",
|
|
],
|
|
App_Settings_Rule_Pick: ["왼쪽 버튼 = 고르기", "Left button = select"],
|
|
App_Settings_Rule_Right: [
|
|
"오른쪽 버튼 = 메뉴\n오른쪽 버튼(CAD 명령 중) = Enter\n오른쪽 버튼(CAD 쉴 때) = 반복\nShift+오른쪽 버튼(CAD) = 스냅 메뉴\n휠 두 번 누름(CAD) = 범위",
|
|
"Right button = menu\nRight button (CAD, during a command) = Enter\nRight button (CAD, idle) = repeat\nShift+right button (CAD) = snap menu\nWheel double-click (CAD) = extents",
|
|
],
|
|
App_Settings_Rule_Pinch: [
|
|
"트랙패드 손가락 벌림 = 늘 확대(휠 방향 무관)",
|
|
"Trackpad finger spread = always zoom in (any wheel direction)",
|
|
],
|
|
App_Settings_Cad_Help: [
|
|
"CAD 는 명령 이름 > 내 별칭 > 기본 별칭 차례로 찾음 · 영문 · 숫자만 · 여러 개는 쉼표로",
|
|
"CAD looks up command name > my alias > default alias · letters and digits only · comma for several",
|
|
],
|
|
App_Settings_Cad_Command: ["명령", "Command"],
|
|
App_Settings_Cad_Label: ["이름", "Name"],
|
|
App_Settings_Cad_Default: ["기본 별칭", "Default alias"],
|
|
App_Settings_Cad_Mine: ["내 별칭", "My alias"],
|
|
App_Settings_Cad_ErrChars: ["영문 · 숫자만 씀", "Letters and digits only"],
|
|
App_Settings_Cad_ErrDup: ["같은 별칭이 두 번 있음", "Same alias used twice"],
|
|
App_Settings_Cad_ErrName: ["명령 이름과 같은 별칭은 못 씀", "Alias cannot be a command name"],
|
|
App_Settings_Cad_Invalid: ["별칭에 잘못이 있어 저장 안 함", "Not saved — fix the aliases"],
|
|
App_Settings_Saved: ["설정 저장함", "Settings saved"],
|
|
App_Settings_Leave: ["저장 안 한 설정이 있음", "You have unsaved settings"],
|
|
App_Footer_Copyright: [
|
|
"© 2026 임도설계 및 견적 자동화. All rights reserved.",
|
|
"© 2026 Forest Road Design & Estimation. All rights reserved.",
|
|
],
|
|
App_Nav_Site: ["홈페이지", "Website"],
|
|
} as const satisfies Record<string, LocaleEntry>;
|