/* ============================================================================= * 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_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_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: ["종단설계", "Profile Design"], WF_Step_ProfileCross: ["횡단설계", "Cross Design"], WF_Step_DesignDetail: ["상세설계", "Detail Design"], WF_Step_Quantity: ["수량산출", "Quantity"], WF_Step_Estimation: ["원가계산", "Cost Estimate"], WF_State_Stale: ["무효화됨 (하위 단계 변경)", "Stale (invalidated by downstream changes)"], 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_Footer_Copyright: [ "© 2026 임도설계 및 견적 자동화. All rights reserved.", "© 2026 Forest Road Design & Estimation. All rights reserved.", ], } as const satisfies Record;