1,230줄이던 ui_template_locale.ts를 얇은 배럴(51줄)로 축소하고, ui_locales 사전 데이터를 4개 파일로 분리했다. - ui_template_locale_common.ts (96줄, 60키) — 공통 액션/상태/폼/네비/워크플로우/앱 셸, LocaleEntry 타입 정의 - ui_template_locale_a.ts (263줄, 141키) — A01~A09 로그인 전 페이지 - ui_template_locale_b1.ts (430줄, 260키) — B01~B04 - ui_template_locale_b2.ts (408줄, 253키) — B05~B11 배럴이 4종 사전을 스프레드로 합성하고 LANGUAGES / LanguageCode / currentLanguageIndex / setLanguage / t / ui_locales / LocaleKey export 시그니처를 그대로 유지하므로, 소비처 13개 이상 파일의 import 수정은 없다. 검증: 분할 전후 714개 키가 값 문자열까지 완전 일치, 파일 간 중복 키 0건, tsc --noEmit 오류 0건, prettier 5개 파일 모두 unchanged. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
442 lines
26 KiB
TypeScript
442 lines
26 KiB
TypeScript
/* =============================================================================
|
|
* ui_template_locale_b1.ts
|
|
* 다국어 사전 — B 그룹 전반부 (B01_Dashboard ~ B04_wf1_Surface)
|
|
*
|
|
* 워크플로우 진행 단계 라벨은 ui_template_locale_common.ts 의 WF_Step_* 키를
|
|
* 재사용한다 (중복 등록 방지).
|
|
*
|
|
* 이 파일은 사전 데이터만 담는다. 합성·언어 전환·t() 헬퍼는 ui_template_locale.ts 참조.
|
|
* ========================================================================== */
|
|
|
|
import type { LocaleEntry } from "./ui_template_locale_common";
|
|
|
|
export const ui_locales_b1 = {
|
|
/* --- 공통: 콘텐츠 미구현 안내 (B03~B06 본문 자리표시) --- */
|
|
B_Content_Pending: [
|
|
"이 영역의 상세 기능은 준비 중입니다.",
|
|
"The detailed features for this area are in preparation.",
|
|
],
|
|
|
|
/* --- B01_Dashboard 계정 관리 공통 문구 --- */
|
|
B01_Account_Title: ["내 계정", "My Account"],
|
|
B01_Account_Subtitle: [
|
|
"계정 정보와 소속 회사를 확인하고 수정할 수 있습니다.",
|
|
"View and edit your account information and company.",
|
|
],
|
|
B01_Account_Section_Profile: ["기본 정보", "Profile"],
|
|
B01_Account_Section_Security: ["보안", "Security"],
|
|
B01_Account_Field_Company: ["회사명", "Company"],
|
|
B01_Account_Field_Name: ["이름", "Name"],
|
|
B01_Account_Field_Email: ["이메일", "Email"],
|
|
B01_Account_Field_Phone: ["연락처", "Phone"],
|
|
B01_Account_Field_Phone_Placeholder: ["연락처를 입력하세요", "Enter phone number"],
|
|
B01_Account_Field_CurrentPw: ["현재 비밀번호", "Current password"],
|
|
B01_Account_Field_NewPw: ["새 비밀번호", "New password"],
|
|
B01_Account_Field_ConfirmPw: ["새 비밀번호 확인", "Confirm new password"],
|
|
B01_Account_Save_Profile: ["기본 정보 저장", "Save profile"],
|
|
B01_Account_Save_Password: ["비밀번호 변경", "Change password"],
|
|
B01_Account_Success_Profile: ["기본 정보가 저장되었습니다.", "Profile has been saved."],
|
|
B01_Account_Success_Password: ["비밀번호가 변경되었습니다.", "Password has been changed."],
|
|
B01_Account_Error_Required: ["필수 항목을 입력하세요.", "Please fill in required fields."],
|
|
B01_Account_Error_PwMismatch: ["새 비밀번호가 일치하지 않습니다.", "New passwords do not match."],
|
|
B01_Account_Error_PwLength: [
|
|
"비밀번호는 8자 이상이어야 합니다.",
|
|
"Password must be at least 8 characters.",
|
|
],
|
|
B01_Dashboard_Title: ["AISLO 대시보드", "AISLO Dashboard"],
|
|
B01_Dashboard_Subtitle: [
|
|
"역할과 회사 상태에 맞춰 프로젝트, 조직, 보안 정보를 관리합니다.",
|
|
"Manage projects, organization, and security by role and company status.",
|
|
],
|
|
B01_Dashboard_Role_User: ["일반 사용자", "User"],
|
|
B01_Dashboard_Role_Admin: ["회사 관리자", "Company Admin"],
|
|
B01_Dashboard_Role_SystemAdmin: ["시스템 관리자", "System Admin"],
|
|
B01_Dashboard_Projects: ["프로젝트", "Projects"],
|
|
B01_Dashboard_NewProject: ["신규 프로젝트", "New project"],
|
|
B01_Dashboard_Company: ["회사 정보", "Company"],
|
|
B01_Dashboard_NoCompany: ["회사 미연결", "No company linked"],
|
|
B01_Dashboard_CreateCompany: ["회사 생성", "Create company"],
|
|
B01_Dashboard_FindCompany: ["회사 찾기", "Find company"],
|
|
B01_Dashboard_JoinCompany: ["가입 신청", "Request to join"],
|
|
B01_Dashboard_Members: ["팀원 관리", "Team members"],
|
|
B01_Dashboard_AddMember: ["팀원 추가", "Add member"],
|
|
B01_Dashboard_RemoveMember: ["제거", "Remove"],
|
|
B01_Dashboard_JoinRequests: ["가입 요청", "Join requests"],
|
|
B01_Dashboard_Approve: ["승인", "Approve"],
|
|
B01_Dashboard_Reject: ["거절", "Reject"],
|
|
B01_Dashboard_Resources: ["리소스 현황", "Resources"],
|
|
B01_Dashboard_Resources_ChartCaption: [
|
|
"최근 7일 리소스 사용률 (2분 간격)",
|
|
"Resource usage over the last 7 days (2-min interval)",
|
|
],
|
|
B01_Dashboard_Resources_ChartAria: [
|
|
"CPU, 메모리, 디스크 사용률 시계열 그래프",
|
|
"Time-series chart of CPU, memory, and disk usage",
|
|
],
|
|
B01_Dashboard_Companies: ["회사 관리", "Companies"],
|
|
B01_Dashboard_Users: ["사용자 관리", "Users"],
|
|
B01_Dashboard_AuditLogs: ["시스템 로그", "Audit logs"],
|
|
B01_Dashboard_Profile: ["기본정보", "Profile"],
|
|
B01_Dashboard_SaveProfile: ["기본정보 저장", "Save profile"],
|
|
B01_Dashboard_Table_Project: ["프로젝트명", "Project"],
|
|
B01_Dashboard_Table_Region: ["지역", "Region"],
|
|
B01_Dashboard_Table_Progress: ["진행도", "Progress"],
|
|
B01_Dashboard_Table_Workflow: ["워크플로우", "Workflow"],
|
|
B01_Dashboard_Table_Updated: ["수정일", "Updated"],
|
|
B01_Dashboard_Table_Email: ["이메일", "Email"],
|
|
B01_Dashboard_Table_Name: ["이름", "Name"],
|
|
B01_Dashboard_Table_Position: ["직급", "Position"],
|
|
B01_Dashboard_Table_Department: ["부서", "Department"],
|
|
B01_Dashboard_Table_Role: ["역할", "Role"],
|
|
B01_Dashboard_Table_Status: ["상태", "Status"],
|
|
B01_Dashboard_Table_Company: ["회사명", "Company"],
|
|
B01_Dashboard_Table_Requested: ["신청일", "Requested"],
|
|
B01_Dashboard_Table_Action: ["관리", "Action"],
|
|
B01_Dashboard_Table_Owner: ["소유자", "Owner"],
|
|
B01_Dashboard_Field_BusinessNumber: ["사업자등록번호", "Business number"],
|
|
B01_Dashboard_Field_Address: ["주소", "Address"],
|
|
B01_Dashboard_Field_Owner: ["대표자명", "Owner"],
|
|
B01_Dashboard_Field_Search: ["검색어", "Search"],
|
|
B01_Dashboard_Field_MemberEmail: ["팀원 이메일", "Member email"],
|
|
B01_Dashboard_Metric_Cpu: ["CPU", "CPU"],
|
|
B01_Dashboard_Metric_Memory: ["메모리", "Memory"],
|
|
B01_Dashboard_Metric_Disk: ["디스크", "Disk"],
|
|
B01_Dashboard_Metric_ActiveUsers: ["활성 사용자", "Active users"],
|
|
B01_Dashboard_Metric_ActiveProjects: ["활성 프로젝트", "Active projects"],
|
|
B01_Dashboard_Modal_CreateCompany: ["회사 생성", "Create company"],
|
|
B01_Dashboard_Modal_FindCompany: ["회사 검색", "Find company"],
|
|
B01_Dashboard_Modal_AddMember: ["팀원 추가", "Add member"],
|
|
B01_Dashboard_Saved: ["저장되었습니다.", "Saved."],
|
|
B01_Dashboard_LoadFailed: ["대시보드를 불러오지 못했습니다.", "Failed to load dashboard."],
|
|
B01_Dashboard_RequestFailed: ["요청 처리에 실패했습니다.", "Request failed."],
|
|
|
|
// 프로젝트 관리
|
|
B01_Dashboard_EditProject: ["프로젝트 수정", "Edit Project"],
|
|
B01_Dashboard_DeleteProject: ["프로젝트 삭제", "Delete Project"],
|
|
|
|
// 사용자 관리
|
|
B01_Dashboard_AddUser: ["사용자 추가", "Add User"],
|
|
B01_Dashboard_EditUser: ["사용자 수정", "Edit User"],
|
|
B01_Dashboard_DeleteUser: ["사용자 삭제", "Delete User"],
|
|
B01_Dashboard_ChangeRole: ["역할 변경", "Change Role"],
|
|
B01_Dashboard_SelectAvailableUsers: ["사용 가능한 사용자 선택", "Select Available Users"],
|
|
|
|
// 확인 메시지
|
|
B01_Dashboard_Confirm_DeleteProject: [
|
|
"프로젝트를 삭제하시겠습니까? 되돌릴 수 없습니다.",
|
|
"Delete this project? This cannot be undone.",
|
|
],
|
|
B01_Dashboard_Confirm_DeleteUser: ["사용자를 삭제하시겠습니까?", "Delete this user?"],
|
|
B01_Dashboard_Confirm_LastAdmin: [
|
|
"회사의 유일한 관리자는 삭제할 수 없습니다.",
|
|
"Cannot delete the last admin of the company.",
|
|
],
|
|
B01_Dashboard_CannotChangeToSystemAdmin: [
|
|
"시스템 관리자로 변경할 수 없습니다.",
|
|
"Cannot change role to System Admin.",
|
|
],
|
|
|
|
/* --- B02_ProjRegister 프로젝트 등록 --- */
|
|
B02_Proj_Title: ["프로젝트 등록", "Register Project"],
|
|
B02_Proj_Subtitle: [
|
|
"새 임도 설계 프로젝트의 기본 정보를 입력하세요.",
|
|
"Enter the basic information for a new forest road project.",
|
|
],
|
|
B02_Proj_Field_Name: ["프로젝트명", "Project name"],
|
|
B02_Proj_Field_Name_Placeholder: [
|
|
"예: 2025년 산불진화임도(기번8)",
|
|
"e.g. 2025 Fire-suppression Road (No.8)",
|
|
],
|
|
B02_Proj_Field_Region: ["사업 지역", "Region"],
|
|
B02_Proj_Field_Region_Placeholder: ["예: 울진군 금강송면", "e.g. Uljin-gun"],
|
|
B02_Proj_Field_RoadType: ["임도 종류", "Road type"],
|
|
B02_Proj_RoadType_Main: ["간선임도", "Main road"],
|
|
B02_Proj_RoadType_Branch: ["지선임도", "Branch road"],
|
|
B02_Proj_RoadType_Fire: ["산불진화임도", "Fire-suppression road"],
|
|
B02_Proj_RoadType_Stream: ["계류보전", "Stream conservation"],
|
|
B02_Proj_Field_Year: ["사업 연도", "Project year"],
|
|
B02_Proj_Field_Length: ["예상 연장 (m)", "Estimated length (m)"],
|
|
B02_Proj_Field_Length_Placeholder: ["예상 노선 길이", "Estimated route length"],
|
|
B02_Proj_Field_Memo: ["비고", "Notes"],
|
|
B02_Proj_Field_Memo_Placeholder: ["추가 메모 (선택)", "Additional notes (optional)"],
|
|
B02_Proj_Submit: ["프로젝트 생성", "Create project"],
|
|
B02_Proj_Success: [
|
|
"프로젝트가 생성되었습니다. 파일 입력 단계로 이동합니다.",
|
|
"Project created. Moving to the file input step.",
|
|
],
|
|
B02_Proj_Error_Required: ["필수 항목을 입력하세요.", "Please fill in required fields."],
|
|
|
|
/* --- B03_FileInput 파일 입력 --- */
|
|
B03_File_Title: ["파일입력", "File Input"],
|
|
B03_File_Subtitle: [
|
|
"필수 계획노선과 지형·포인트클라우드 파일을 업로드하세요.",
|
|
"Upload the required planned route, terrain, and point cloud files.",
|
|
],
|
|
B03_File_Select_Label: ["입력 파일 선택", "Select input files"],
|
|
B03_File_Select_Hint: [
|
|
"계획노선 CSV, LAS/LAZ 1개, PRJ, TFW를 선택하세요. TIF는 선택 사항입니다.",
|
|
"Select a planned-route CSV, one LAS/LAZ, PRJ, and TFW. TIF is optional.",
|
|
],
|
|
B03_File_Selected_Title: ["선택한 파일", "Selected files"],
|
|
B03_File_Selected_Empty: ["선택한 파일이 없습니다.", "No files selected."],
|
|
B03_File_Upload_Button: ["파일 업로드", "Upload files"],
|
|
B03_File_Error_Project: [
|
|
"현재 프로젝트가 선택되지 않았습니다. 프로젝트를 먼저 생성하거나 선택하세요.",
|
|
"No current project is selected. Create or select a project first.",
|
|
],
|
|
B03_File_Error_Required: ["업로드할 파일을 선택하세요.", "Select files to upload."],
|
|
B03_File_Error_Count: [
|
|
"한 번에 업로드할 수 있는 파일 수를 초과했습니다.",
|
|
"Too many files were selected for one upload.",
|
|
],
|
|
B03_File_Error_Las: [
|
|
"LAS 또는 LAZ 파일을 정확히 1개 선택하세요.",
|
|
"Select exactly one LAS or LAZ file.",
|
|
],
|
|
B03_File_Error_Extension: ["허용되지 않은 파일 형식입니다.", "Unsupported file type."],
|
|
B03_File_Error_Size: ["파일 크기 제한을 초과했습니다.", "File size limit exceeded."],
|
|
B03_File_Upload_Success: ["입력 파일 업로드를 완료했습니다.", "Input files uploaded."],
|
|
B03_File_Upload_Failed: ["파일 업로드에 실패했습니다.", "File upload failed."],
|
|
B03_File_Analysis_InProgress: [
|
|
"WF1 분석이 백그라운드에서 진행 중입니다. 완료되면 자동으로 이동합니다.",
|
|
"WF1 analysis is running in the background. You will move automatically when it completes.",
|
|
],
|
|
B03_File_Analysis_StillRunning: [
|
|
"분석이 계속 진행 중입니다. 잠시 후 다시 확인하세요.",
|
|
"Analysis is still running. Check again shortly.",
|
|
],
|
|
B03_File_Result_Path: ["저장 경로", "Stored path"],
|
|
B03_File_Group_Required: ["필수 파일", "Required files"],
|
|
B03_File_Group_Optional: ["선택 파일", "Optional files"],
|
|
B03_File_Group_Route: ["원청 계획노선 (필수)", "Client Planned Route (Required)"],
|
|
B03_File_Group_Terrain: ["지형 분석자료", "Terrain Analysis Files"],
|
|
B03_File_Slot_PlannedRoute: ["계획노선 좌표", "Planned Route Coordinates"],
|
|
B03_File_Slot_PointCloud: ["포인트클라우드", "Point Cloud"],
|
|
B03_File_Slot_Projection: ["좌표계 정의", "Projection"],
|
|
B03_File_Slot_RasterCoord: ["래스터 좌표", "Raster Coord 1"],
|
|
B03_File_Slot_TerrainDem: ["지형 래스터", "Terrain DEM"],
|
|
B03_File_Slot_CadDrawing: ["CAD 도면", "CAD Drawing"],
|
|
B03_File_Card_Select: ["파일 선택", "Select file"],
|
|
B03_File_Card_Remove: ["파일 제거", "Remove file"],
|
|
B03_File_Error_DuplicateSlot: [
|
|
"같은 유형의 파일이 이미 선택되어 있습니다.",
|
|
"A file for this slot is already selected.",
|
|
],
|
|
B03_File_Error_RequiredSlots: [
|
|
"필수 파일(계획노선 CSV, LAS/LAZ, PRJ, TFW)을 모두 선택하세요.",
|
|
"Select all required files: planned-route CSV, LAS/LAZ, PRJ, and TFW.",
|
|
],
|
|
B03_File_Error_SlotType: [
|
|
"선택한 파일 유형이 이 카드와 맞지 않습니다.",
|
|
"The selected file type does not match this card.",
|
|
],
|
|
B03_File_Progress_Bytes: ["진행", "Progress"],
|
|
B03_File_Progress_Speed: ["속도", "Speed"],
|
|
B03_File_Progress_Eta: ["예상 완료", "ETA"],
|
|
B03_File_Status_Pending: ["대기", "Pending"],
|
|
B03_File_Status_Uploading: ["업로드 중", "Uploading"],
|
|
B03_File_Status_Completed: ["완료", "Completed"],
|
|
B03_File_Status_Failed: ["실패", "Failed"],
|
|
B03_File_Status_Detected: ["중단된 업로드 감지", "Paused upload detected"],
|
|
B03_File_Restore_State: ["저장된 업로드/분석 상태 복구", "Restored upload/analysis state"],
|
|
B03_File_Resume_Button: ["업로드 재개", "Resume upload"],
|
|
B03_File_New_Button: ["새 파일로 시작", "Start new file"],
|
|
B03_File_ServiceWorker_Ready: [
|
|
"백그라운드 업로드 준비가 완료되었습니다.",
|
|
"Background upload is ready.",
|
|
],
|
|
B03_File_ServiceWorker_Unavailable: [
|
|
"현재 브라우저에서는 백그라운드 업로드를 사용할 수 없습니다.",
|
|
"Background upload is unavailable in this browser.",
|
|
],
|
|
|
|
/* --- B04_wf1_Surface 지표면 모델 분석 --- */
|
|
B04_Surface_Title: ["전처리", "Preprocess"],
|
|
B04_Surface_Field_InputId: ["입력 파일 ID", "Input File ID"],
|
|
B04_Surface_Field_InputId_Placeholder: ["예: 1", "e.g. 1"],
|
|
/* 지면 필터·서피스·스무딩은 함께 모델 하나를 결정하는 값이라 한 컨테이너에 둔다
|
|
(2026-08-01 사용자 지시). 그래서 예전 그룹 제목 대신 항목 라벨로 쓴다. */
|
|
B04_Surface_Group_Analysis: ["지표면 분석", "Surface Analysis"],
|
|
B04_Surface_Group_Filters: ["지면 필터", "Ground filter"],
|
|
B04_Surface_Group_Methods: ["서피스", "Surface"],
|
|
B04_Surface_Group_Display: ["모델 표시 옵션", "Model display options"],
|
|
B04_Surface_Group_ViewControls: ["뷰어 시점 제어", "Viewer camera"],
|
|
B04_Surface_Field_Smoothing: ["스무딩", "Smoothing"],
|
|
B04_Surface_Smoothing_On: ["적용", "On"],
|
|
B04_Surface_Smoothing_Off: ["미적용", "Off"],
|
|
B04_Surface_Smoothing_Unsupported: [
|
|
"이 지표면 표현은 스무딩을 지원하지 않습니다.",
|
|
"This surface method does not support smoothing.",
|
|
],
|
|
B04_Surface_Opt_PointSize: ["점 크기", "Point size"],
|
|
B04_Surface_Opt_Density: ["밀도", "Density"],
|
|
B04_Surface_Field_Force: ["기존 결과 무시하고 재계산", "Force recompute"],
|
|
B04_Surface_Btn_Analyze: ["지표면 분석 실행", "Run Surface Analysis"],
|
|
B04_Surface_Btn_Refresh: ["목록 새로고침", "Refresh"],
|
|
B04_Surface_InputFiles: ["입력 포인트클라우드", "Input point cloud"],
|
|
B04_Surface_InputFiles_Empty: [
|
|
"분석 가능한 LAS/LAZ 파일이 없습니다.",
|
|
"No LAS/LAZ file is available.",
|
|
],
|
|
B04_Surface_Input_FileName: ["파일명", "File name"],
|
|
B04_Surface_Input_Crs: ["좌표계", "CRS"],
|
|
B04_Surface_Input_Size: ["크기(MB)", "Size (MB)"],
|
|
B04_Surface_PointCloud_Title: ["포인트클라우드 미리보기", "Point cloud preview"],
|
|
B04_Surface_Status_Unknown: ["상태 미확인", "Unknown"],
|
|
B04_Surface_GroundStats_Title: ["지면 필터 통계", "Ground filter stats"],
|
|
B04_Surface_GroundStats_Empty: ["표시할 지면 통계가 없습니다.", "No ground stats to display."],
|
|
B04_Surface_GroundStats_Filter: ["필터", "Filter"],
|
|
B04_Surface_GroundStats_SourcePoints: ["지면 포인트", "Ground points"],
|
|
B04_Surface_Result_Title: ["생성된 지표면 모델", "Generated Surface Models"],
|
|
B04_Surface_Result_Empty: [
|
|
"아직 생성된 지표면 모델이 없습니다.",
|
|
"No surface models generated yet.",
|
|
],
|
|
B04_Surface_Model_Resolution: ["해상도(m)", "Resolution (m)"],
|
|
B04_Surface_Model_Path: ["파일 경로", "File path"],
|
|
B04_Surface_Model_Filter: ["지면 필터", "Ground filter"],
|
|
B04_Surface_Model_Representation: ["표현 방식", "Representation"],
|
|
B04_Surface_Model_Confirmed: ["확정됨", "Confirmed"],
|
|
B04_Surface_Btn_Confirm: ["이 모델 확정", "Confirm this model"],
|
|
B04_Surface_Confirm_Success: [
|
|
"모델을 확정했습니다. 필터: {filter}, 기법: {method}, 스무딩/표현: {smoothing}",
|
|
"Model confirmed. Filter: {filter}, method: {method}, smoothing/representation: {smoothing}",
|
|
],
|
|
B04_Surface_Confirm_Failed: ["모델 확정에 실패했습니다.", "Failed to confirm model."],
|
|
B04_Surface_Map_Title: ["2D 배경 지도 및 GIS 레이어", "2D Basemap and GIS Layers"],
|
|
B04_Surface_Map_Background: ["배경 지도", "Basemap"],
|
|
B04_Surface_Map_GisLayer: ["국가 GIS 레이어", "National GIS Layer"],
|
|
B04_Surface_Map_None: ["없음", "None"],
|
|
B04_Surface_Map_PlannedRoute: ["계획선", "Planned route"],
|
|
/* 배수유역 분석 오버레이(관리자 확인용) — 조작 문구만 다국어로 둔다.
|
|
결과 상세 판독문(regionSummary)은 진단용 원문이라 그대로 둔다. */
|
|
B04_Surface_Watershed_Btn: ["유역 분석", "Basin analysis"],
|
|
B04_Surface_Watershed_Btn_Tip: [
|
|
"계획 노선(B03 업로드)과 도엽 등고선·세류선으로 배수유역을 처음부터 다시 분석합니다. 30초 안팎이 걸리며 결과는 영구저장소에 남습니다. 저장된 결과는 지도를 열 때 자동으로 표시되므로, 조건을 바꿨을 때만 누르면 됩니다.",
|
|
"Re-runs the drainage analysis from scratch using the planned route (uploaded in B03) and the sheet contours and streams. It takes about 30 seconds and the result is stored permanently. A stored result is shown automatically when the map opens, so press this only after changing the inputs.",
|
|
],
|
|
B04_Surface_Watershed_Btn_Analyzing: ["분석 중…", "Analyzing…"],
|
|
B04_Surface_Watershed_Btn_Loading: ["불러오는 중…", "Loading…"],
|
|
B04_Surface_Watershed_Part_Primary: ["1차 유역", "Primary region"],
|
|
B04_Surface_Watershed_Part_Basin: ["2차 유역", "Full basin"],
|
|
B04_Surface_Watershed_Part_Flow: ["유역 방향", "Flow cells"],
|
|
B04_Surface_Watershed_Part_Arrows: ["평균 흐름", "Mean flow"],
|
|
B04_Surface_Watershed_Status_Analyzing: [
|
|
"배수유역을 처음부터 다시 분석하는 중입니다. 30초 안팎 걸립니다…",
|
|
"Re-running the drainage analysis from scratch. This takes about 30 seconds…",
|
|
],
|
|
B04_Surface_Watershed_Status_Loading: [
|
|
"저장된 배수유역 분석을 불러오는 중…",
|
|
"Loading the stored drainage analysis…",
|
|
],
|
|
B04_Surface_Watershed_LoadFailed: [
|
|
"배수유역을 불러오지 못했습니다.",
|
|
"Failed to load the drainage analysis.",
|
|
],
|
|
/* {message}=원인 */
|
|
B04_Surface_Watershed_Failed: ["유역 분석 실패: {message}", "Basin analysis failed: {message}"],
|
|
B04_Surface_Watershed_NoSaved: [
|
|
"저장된 배수유역 분석이 없습니다. [유역 분석]을 누르세요.",
|
|
"No stored drainage analysis. Press [Basin analysis].",
|
|
],
|
|
B04_Surface_Watershed_Origin_Cached: ["저장분", "Cached"],
|
|
/* {seconds}=재산정에 걸린 시간(초) */
|
|
B04_Surface_Watershed_Origin_Recomputed: ["재산정 {seconds}초", "Recomputed in {seconds}s"],
|
|
/* 도로 유입 흐름 강도 */
|
|
B04_Surface_Flow_Strength: ["흐름 강도", "Flow strength"],
|
|
B04_Surface_Flow_Strength_Tip: [
|
|
"도로 1m 구간마다 그 자리로 모이는 상류 면적을 색으로 칠하고, 물이 특히 많이 모이는 자리를 마커로 찍습니다. 마커를 누르면 그 지점으로 들어오는 셀들의 외곽선을 보여 줍니다.",
|
|
"Colors each 1m stretch of road by the upstream area draining into it, and marks the spots that collect the most. Click a marker to outline the cells that drain into it.",
|
|
],
|
|
B04_Surface_Flow_Legend_Title: ["흐름강도", "Flow strength"],
|
|
B04_Surface_Flow_Hotspots: ["집중유역", "Inflow hotspots"],
|
|
B04_Surface_Flow_Hotspots_Tip: [
|
|
"노선 위에서 물이 특히 많이 모이는 자리(유입 집중점)를 마커로 표시합니다. 마커를 누르면 그 지점으로 들어오는 셀들의 외곽선을 보여 줍니다.",
|
|
"Marks the spots along the route that collect the most water. Click a marker to outline the cells draining into it.",
|
|
],
|
|
B04_Surface_Flow_Inflow_Loading: ["유입 셀을 불러오는 중…", "Loading the contributing cells…"],
|
|
/* {index}=마커 번호, {chainage}=누가거리, {area}=유입면적, {cells}=셀 수, {path}=최장 유하장 */
|
|
B04_Surface_Flow_Inflow_Summary: [
|
|
"유입 집중점 {index} · 측점 {chainage}m — 유입면적 {area} · 셀 {cells}개 · 최장 유하장 {path}m",
|
|
"Hotspot {index} · Station {chainage}m — Area {area} · {cells} cells · Longest path {path}m",
|
|
],
|
|
B04_Surface_Flow_Inflow_Failed: [
|
|
"유입 셀을 불러오지 못했습니다.",
|
|
"Failed to load the contributing cells.",
|
|
],
|
|
/* 상세 배수유역 (관 매설 지점 편집 + 세부유역 분할) */
|
|
B04_Surface_Basin_Btn: ["상세유역 분석", "Detail basins"],
|
|
B04_Surface_Basin_Btn_Busy: ["분석 중…", "Analyzing…"],
|
|
B04_Surface_Basin_Btn_Tip: [
|
|
"관 매설 지점을 기준으로 세부 배수유역을 나눕니다. 계획선 위에서 우클릭하면 관을 추가하고, 마커 위에서 우클릭하면 삭제합니다. 마커를 끌면 계획선을 따라 옮겨집니다.",
|
|
"Splits the basin per culvert. Right-click the route to add a culvert, right-click a marker to remove it, and drag a marker to slide it along the route.",
|
|
],
|
|
B04_Surface_Basin_Part_Basins: ["세부유역", "Sub-basins"],
|
|
B04_Surface_Basin_Menu_Add: ["관 매설 추가", "Add culvert"],
|
|
B04_Surface_Basin_Menu_Delete: ["관 매설 삭제", "Remove culvert"],
|
|
/* {pipes}=관 개수, {stream}=기본, {spacing}=자동 보충, {user}=수동, {basins}=세부유역 수, {source}=종단 Z 출처 */
|
|
B04_Surface_Basin_Summary: [
|
|
"관 {pipes}개(기본 {stream} / 자동 {spacing} / 수동 {user}) · 세부유역 {basins}개 · 종단 Z {source}",
|
|
"{pipes} culverts ({stream} stream / {spacing} auto / {user} manual) · {basins} sub-basins · profile Z {source}",
|
|
],
|
|
B04_Surface_Basin_Edited: [
|
|
"편집 중 — [상세유역 분석]을 눌러 다시 나눕니다.",
|
|
"Edited — press [Detail basins] to re-split.",
|
|
],
|
|
B04_Surface_Basin_TooClose: [
|
|
"관끼리 최소 간격 {min}m 안에는 넣을 수 없습니다.",
|
|
"Culverts cannot be closer than {min}m.",
|
|
],
|
|
/* {index}=유역 번호, {chainage}=관 측점, {area}=유역면적, {relief}=표고차, {flow}=유하장 */
|
|
B04_Surface_Basin_Selected: [
|
|
"선택 유역 {index} · 측점 {chainage}m — 면적 {area} · 표고차 {relief}m · 유하장 {flow}m",
|
|
"Basin {index} · Station {chainage}m — Area {area} · Relief {relief}m · Path {flow}m",
|
|
],
|
|
B04_Surface_Basin_Failed: [
|
|
"상세유역을 계산하지 못했습니다.",
|
|
"Failed to compute the sub-basins.",
|
|
],
|
|
B04_Surface_Basin_Saved: [
|
|
"관 매설 지점 {count}개를 저장했습니다.",
|
|
"Saved {count} culvert points.",
|
|
],
|
|
B04_Surface_Map_PlannedRouteEmpty: [
|
|
"B03에서 계획노선 파일을 올리면 표시됩니다.",
|
|
"Shown after the planned route file is uploaded in B03.",
|
|
],
|
|
B04_Surface_Map_Satellite: ["위성", "Satellite"],
|
|
B04_Surface_Map_Hybrid: ["하이브리드", "Hybrid"],
|
|
B04_Surface_Map_White: ["백지도", "White map"],
|
|
B04_Surface_Map_Cadastral: ["연속지적도", "Cadastral map"],
|
|
B04_Surface_Map_Water: ["수계망", "Water network"],
|
|
B04_Surface_Map_Landslide: ["산사태위험등급", "Landslide risk"],
|
|
B04_Surface_Map_Sigungu: ["시군구", "District boundary"],
|
|
B04_Surface_Map_Eupmyeondong: ["읍면동", "Town boundary"],
|
|
B04_Surface_Map_Contour: ["등고선", "Contour lines"],
|
|
B04_Surface_Map_SheetContour: ["도엽 등고선", "Sheet contours"],
|
|
B04_Surface_Map_ContourLabel: ["등고 라벨", "Contour labels"],
|
|
B04_Surface_Map_SheetStream: ["세류(전체)", "Streams (all)"],
|
|
B04_Surface_Map_SheetElevPoint: ["표고점", "Spot elevation"],
|
|
B04_Surface_Map_SheetCutFill: ["성절토", "Cut/fill slope"],
|
|
B04_Surface_Map_SheetWall: ["옹벽석축", "Retaining wall"],
|
|
B04_Surface_Map_SheetFlowDir: ["유수방향", "Flow direction"],
|
|
B04_Surface_Map_Reset: ["보기 초기화", "Reset view"],
|
|
B04_Surface_Map_ImageAlt: ["VWorld 배경 지도", "VWorld basemap"],
|
|
B04_Surface_Map_Empty: [
|
|
"배경 지도 또는 GIS 레이어를 선택하세요.",
|
|
"Select a basemap or GIS layer.",
|
|
],
|
|
B04_Surface_Map_Loading: ["지도 레이어를 불러오는 중입니다.", "Loading map layers."],
|
|
B04_Surface_Map_Features: ["{count}개 객체 표시", "Showing {count} features"],
|
|
B04_Surface_Map_LoadFailed: ["지도 레이어를 불러오지 못했습니다.", "Failed to load map."],
|
|
B04_Surface_Error_Project: ["먼저 프로젝트를 선택하세요.", "Select a project first."],
|
|
B04_Surface_Error_InputId: ["유효한 입력 파일 ID를 입력하세요.", "Enter a valid input file ID."],
|
|
B04_Surface_Error_Selection: [
|
|
"지면 필터와 지표면 표현을 각각 1개 이상 선택하세요.",
|
|
"Select at least one filter and one method.",
|
|
],
|
|
B04_Surface_Analyze_Success: ["지표면 분석을 완료했습니다.", "Surface analysis complete."],
|
|
B04_Surface_Analyze_Failed: ["지표면 분석에 실패했습니다.", "Surface analysis failed."],
|
|
B04_Surface_Load_Failed: ["모델 목록을 불러오지 못했습니다.", "Failed to load models."],
|
|
} as const satisfies Record<string, LocaleEntry>;
|