Files
Aislo/ui_template/ui_template_locale_b2.ts
T
eomsangdonandClaude Opus 5 e4700546bb feat(B06): 띠 외곽선 재정의 · balloon 화면 이탈 방지 · 임시 저장 · 토취 화살표 복원
[1] 띠 면이 스스로 겹쳤다. 외곽선을 "아래 현 -> 왼쪽 곡선 -> 위 현 -> 오른쪽 곡선"으로
이어 붙이다 보니, 곡선이 두 현 사이에서 요동치면 그 조각이 띠 밖으로 삐져나가 다각형이
자기교차했다. 정의를 바꿨다 - 띠는 "아래 현의 두 끝 사이에서, 아래 높이부터 곡선과 위
높이 중 안쪽까지"다. 아래 현을 밑변으로 깔고 곡선값을 두 높이 사이로 자른 값만 찍으면
어떤 지형에서도 단순 다각형이라 겹칠 수 없다.

[2] balloon이 화면 밖으로 나갔다. 두 곳이 샜다 - 빈자리를 못 찾았을 때 findSlot이 세로를
자르지 않았고, 저장해 둔 이동량을 그릴 때도 자르지 않아 화면을 줄이면 밖을 가리켰다.
둘 다 상자 안으로 자르고, 드래그 중에도 같은 함수를 쓴다.

[3] 임시 저장 - POST .../sections/{route_id}/save 신설. 저장 내용은 확정과 같고(표준횡단
설정·유토곡선·balloon 위치·암 경계선) 경로 상태·워크플로 단계를 건드리지 않아 페이지
이동이 없다. 미지정 측점을 기본값으로 채우지도 않는다. 버튼은 재계산과 확정 사이(1행 3열)
이고, 재계산이 밀려 있어도 눌린다 - 편집분을 잃지 않는 것이 목적이다.

[4] 토취·사토 화살표를 실제 단차 끝까지 되돌렸다. 끝나는 높이가 새 평형선이라 그 자체가
정보다. 라벨이 곡선을 가리는 문제는 이미 balloon처럼 떼어 놓아 해결됐다.

_Router.py(718줄) -> 저장·확정을 _Router_Confirm.py(203줄)로 분리. 임시 저장과 확정이
저장 본체(_apply_section_edits)를 공유한다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-02 18:29:43 +09:00

496 lines
28 KiB
TypeScript

/* =============================================================================
* ui_template_locale_b2.ts
* 다국어 사전 — B 그룹 후반부 (B05_wf2_Route ~ B11_Status)
*
* 워크플로우 진행 단계 라벨은 ui_template_locale_common.ts 의 WF_Step_* 키를
* 재사용한다 (중복 등록 방지).
*
* 이 파일은 사전 데이터만 담는다. 합성·언어 전환·t() 헬퍼는 ui_template_locale.ts 참조.
* ========================================================================== */
import type { LocaleEntry } from "./ui_template_locale_common";
export const ui_locales_b2 = {
/* --- B05_wf2_Route 배수유역도 패널 (하단 패널 안쪽 우측) --- */
B05_Drainage_Title: ["배수유역도", "Drainage Basins"],
B05_Drainage_Layer_Satellite: ["위성사진", "Satellite"],
B05_Drainage_Layer_Satellite_Tip: [
"배경 위성사진을 보이거나 숨깁니다.",
"Show or hide the satellite basemap.",
],
B05_Drainage_Layer_Contour: ["등고선", "Contours"],
B05_Drainage_Layer_Stream: ["세류", "Streams"],
B05_Drainage_Layer_Arrows: ["흐름 화살표", "Flow arrows"],
B05_Drainage_Layer_Arrows_Tip: [
"B04에서 산출한 평균 흐름 방향을 보이거나 숨깁니다.",
"Show or hide the mean flow direction computed in B04.",
],
B05_Drainage_Layer_Upstream: ["상류 세류", "Upstream streams"],
B05_Drainage_Layer_Upstream_Tip: [
"유역 안쪽 상류 세류망을 굵게 강조합니다.",
"Emphasize the upstream stream network inside the basin.",
],
B05_Drainage_Btn_Analyze: ["세부유역 산정", "Compute sub-basins"],
B05_Drainage_Btn_Analyze_Tip: [
"B04에서 분석해 둔 배수유역을 불러와 관을 보충하고 세부유역을 나눕니다. 분석 결과가 없으면 B04에서 먼저 실행해야 합니다.",
"Loads the drainage analysis from B04, fills in culverts, and splits sub-basins. Run the analysis in B04 first if none exists.",
],
B05_Drainage_Btn_DeleteSelected: ["선택 삭제", "Delete selected"],
B05_Drainage_Btn_Auto: ["초기화", "Reset"],
B05_Drainage_Btn_Auto_Tip: [
"손으로 넣거나 옮긴 배관을 버리고 기본 관 + 자동 보충 배치로 되돌립니다.",
"Discards manual culvert edits and restores the automatic placement.",
],
B05_Drainage_Menu_Add: ["배관 추가", "Add culvert"],
B05_Drainage_Menu_Delete: ["배관 삭제", "Remove culvert"],
B05_Drainage_Layer_Hotspots: ["집중유역", "Inflow hotspots"],
B05_Drainage_Layer_Hotspots_Tip: [
"노선 위에서 물이 특히 많이 모이는 자리를 마커로 표시합니다. 관을 어디에 둘지 판단하는 근거입니다.",
"Marks the spots along the route that collect the most water — the basis for placing culverts.",
],
/* {pipes}=관 개수, {basins}=세부유역 수, {source}=종단 Z 출처 */
B05_Drainage_Summary: [
"관 {pipes}개 · 세부유역 {basins}개 · 종단 Z {source}",
"{pipes} culverts · {basins} sub-basins · profile Z {source}",
],
B05_Drainage_Layer_Strength: ["흐름 강도", "Flow strength"],
B05_Drainage_Layer_Strength_Tip: [
"노선 1m 구간마다 그 자리로 모이는 상류 면적을 색으로 칠합니다(B04 지도와 같은 색띠).",
"Colors each 1m stretch of the route by the upstream area draining into it (same ramp as the B04 map).",
],
B05_Drainage_ImageAlt: ["배경 위성지도", "Satellite basemap"],
B05_Drainage_Status_NeedRoute: [
"노선을 확정하면 배수유역도가 표시됩니다.",
"The drainage map appears once the route is confirmed.",
],
B05_Drainage_Status_Analyzing: ["세부유역을 산정하는 중…", "Computing sub-basins…"],
B05_Drainage_Status_NoBasin: ["산정된 배수유역이 없습니다.", "No drainage basin was computed."],
B05_Drainage_Status_AnalyzeFailed: [
"세부유역 산정에 실패했습니다.",
"Failed to compute sub-basins.",
],
B05_Drainage_Status_LoadingBase: ["배경도를 불러오는 중…", "Loading the basemap…"],
B05_Drainage_Status_LoadingSheets: ["도엽 레이어를 불러오는 중…", "Loading map sheet layers…"],
B05_Drainage_Status_NoSheets: [
"도엽 레이어가 없습니다. B04에서 임포트하세요.",
"No map sheet layer found. Import them in B04.",
],
B05_Drainage_Status_LoadFailed: ["배경도를 불러오지 못했습니다.", "Failed to load the basemap."],
B05_Drainage_Basin_Undecided: ["미정", "TBD"],
/* {area}=면적, {relief}=표고차, {flow}=유하장, {pipe}=관경 */
B05_Drainage_Basin_Metrics: [
"면적 {area} · 표고 {relief}m · 유하 {flow}m · 관경 {pipe}",
"Area {area} · Relief {relief}m · Flow {flow}m · Pipe {pipe}",
],
/* {chainage}=측점 누가거리(m) */
B05_Drainage_Basin_Chainage: ["측점 누가거리 {chainage}m", "Station chainage {chainage}m"],
/* --- B05_wf2_Route 경로 설계 --- */
B05_Route_Title: ["종단설계", "Profile Design"],
B05_Route_Group_Points: ["경로 제어점", "Route Control Points"],
B05_Route_Point_BP: ["시점 (BP)", "Begin (BP)"],
B05_Route_Point_EP: ["종점 (EP)", "End (EP)"],
B05_Route_Point_CP: ["경유점 (CP)", "Control Points (CP)"],
B05_Route_Field_X: ["X 좌표", "X"],
B05_Route_Field_Y: ["Y 좌표", "Y"],
B05_Route_Btn_AddCp: ["경유점 추가", "Add control point"],
B05_Route_Btn_RemoveCp: ["삭제", "Remove"],
B05_Route_Group_Surface: ["기반 지표면", "Base Surface"],
B05_Route_Field_Filter: ["지면 필터", "Ground filter"],
B05_Route_Field_Method: ["지표면 표현", "Surface method"],
B05_Route_Field_SurfaceId: ["지표면 모델 ID", "Surface model ID"],
B05_Route_Surface_Confirmed: ["확정 모델 #{id} · {method}", "Confirmed model #{id} · {method}"],
B05_Route_Surface_NotConfirmed: [
"WF1에서 지표면 모델을 확정하세요.",
"Confirm a surface model in WF1.",
],
B05_Route_Surface_LoadFailed: [
"확정 지표면 모델을 불러오지 못했습니다.",
"Failed to load the confirmed surface model.",
],
B05_Route_Group_Constraints: ["설계 제약", "Design Constraints"],
B05_Route_Field_GradeClass: ["임도 등급", "Road grade class"],
B05_Route_Field_Algorithm: ["경로 알고리즘", "Route algorithm"],
B05_Route_Field_MaxUphill: ["최대 상향 경사(%)", "Max uphill grade (%)"],
B05_Route_Field_MaxDownhill: ["최대 하향 경사(%)", "Max downhill grade (%)"],
B05_Route_Field_MinRadius: ["최소 곡선반경(m)", "Min curve radius (m)"],
B05_Route_Field_Smooth: ["경로 스무딩", "Smooth route"],
B05_Route_Btn_Solve: ["경로 탐색 실행", "Solve Route"],
B05_Route_Btn_Confirm: ["경로 확정", "Confirm Route"],
B05_Route_Result_Title: ["경로 탐색 결과", "Route Result"],
B05_Route_Result_Empty: ["아직 계산된 경로가 없습니다.", "No route computed yet."],
B05_Route_Result_Length: ["총 연장(m)", "Total length (m)"],
B05_Route_Result_MinSlope: ["최소 경사", "Min slope"],
B05_Route_Result_MaxSlope: ["최대 경사", "Max slope"],
B05_Route_Result_MeanSlope: ["평균 경사", "Mean slope"],
B05_Route_Result_Cost: ["비용 점수", "Cost score"],
B05_Route_Result_Path: ["경로 파일", "Route file"],
B05_Route_Error_Project: ["먼저 프로젝트를 선택하세요.", "Select a project first."],
B05_Route_Error_Points: [
"시점과 종점 좌표를 모두 입력하세요.",
"Enter both begin and end coordinates.",
],
B05_Route_Error_Filter: ["지면 필터 키를 입력하세요.", "Enter a ground filter key."],
B05_Route_Solve_Success: ["경로 탐색을 완료했습니다.", "Route solved."],
B05_Route_Solve_Failed: ["경로 탐색에 실패했습니다.", "Route solve failed."],
B05_Route_Confirm_Success: ["경로를 확정했습니다.", "Route confirmed."],
B05_Route_Confirm_Failed: ["경로 확정에 실패했습니다.", "Route confirm failed."],
B05_Route_Group_SectionOptions: ["측점 및 샘플링 설정", "Station & Sampling Settings"],
B05_Route_Field_StationInterval: ["측점 간격(m)", "Station interval (m)"],
B05_Route_Field_CrossHalfWidth: ["횡단 반폭(m)", "Cross half-width (m)"],
B05_Route_Field_CrossSample: ["횡단 샘플 간격(m)", "Cross sample interval (m)"],
B05_Route_Field_LongSample: ["종단 샘플 간격(m)", "Long sample interval (m)"],
B05_Route_Field_StationLines: ["측점 가로선", "Station cross lines"],
/* --- B06_wf3_ProfileCross 종·횡단 생성 --- */
B06_Profile_Title: ["횡단설계", "Cross Design"],
B06_Profile_Group_Route: ["대상 경로", "Target Route"],
B06_Profile_Field_RouteId: ["경로 ID (routes.id)", "Route ID"],
B06_Profile_Field_Filter: ["지면 필터", "Ground filter"],
B06_Profile_Field_Method: ["지표면 표현", "Surface method"],
B06_Profile_Field_Crs: ["좌표계", "CRS"],
B06_Profile_Group_Display: ["표시 옵션", "Display Options"],
B06_Profile_Field_VerticalExaggeration: ["높이 배율", "Vertical exaggeration"],
B06_Profile_Field_Smooth: ["지표면 스무딩", "Smooth surface"],
B06_Profile_Smooth_On: ["사용", "On"],
B06_Profile_Smooth_Off: ["미사용", "Off"],
B06_Profile_Btn_Confirm: ["종·횡단 확정", "Confirm Sections"],
/* 임시 저장 — 확정과 같은 내용을 저장하되 경로 상태·워크플로 단계는 건드리지 않는다. */
B06_Profile_Btn_Save: ["임시 저장", "Save draft"],
B06_Profile_Btn_Save_Tip: [
"지금까지 편집한 내용을 확정하지 않고 저장합니다. 페이지는 그대로 있습니다.",
"Saves the current edits without confirming. You stay on this page.",
],
B06_Profile_Save_Success: ["편집 내용을 저장했습니다.", "Draft saved."],
B06_Profile_Save_Failed: ["임시 저장에 실패했습니다.", "Failed to save the draft."],
B06_Profile_Result_Title: ["종·횡단 생성 결과", "Section Result"],
B06_Profile_Context_Failed: [
"경로 정보를 불러오지 못했습니다. 서버 상태를 확인하세요.",
"Failed to load route context. Check the server status.",
],
B06_Profile_Calculate_In_B05: [
"저장된 종·횡단이 없습니다. B05에서 경로를 계산하세요.",
"No saved sections. Calculate the route in B05.",
],
B06_Profile_Result_Length: ["종단 연장(m)", "Longitudinal length (m)"],
B06_Profile_Result_CrossCount: ["횡단 개수", "Cross-section count"],
B06_Profile_Result_Path: ["종단 파일", "Longitudinal file"],
B06_Profile_Error_Project: ["먼저 프로젝트를 선택하세요.", "Select a project first."],
B06_Profile_Confirm_Success: ["종·횡단을 확정했습니다.", "Sections confirmed."],
B06_Profile_Confirm_Failed: ["종·횡단 확정에 실패했습니다.", "Section confirm failed."],
B06_Profile_Detail_Failed: [
"종·횡단 도면 데이터를 불러오지 못했습니다.",
"Failed to load section drawing data.",
],
B06_Profile_Regenerate_Failed: [
"횡단 반폭 재생성에 실패했습니다.",
"Failed to regenerate sections with the new half-width.",
],
B06_Profile_Regenerate_Success: [
"횡단 반폭을 반영해 종·횡단을 재생성했습니다.",
"Sections regenerated with the new half-width.",
],
B06_Profile_Btn_Recalc: ["재계산", "Recalculate"],
B06_Profile_View_Longitudinal: ["종단면도", "Longitudinal profile"],
B06_Profile_View_Cross: ["횡단면도", "Cross sections"],
B06_Profile_View_StationCount: ["횡단 측점", "Cross stations"],
B06_Profile_View_LongitudinalXAxis: [
"BP 기준 누적거리 (횡단 측점)",
"Chainage from BP (cross stations)",
],
B06_Profile_View_CrossXAxis: ["중심선 기준 편거리 (m)", "Offset from centerline (m)"],
B06_Profile_View_ElevationAxis: ["지반고 (m)", "Elevation (m)"],
B06_Profile_View_CenterElevation: ["중심고", "Center elevation"],
B06_Profile_View_Azimuth: ["방위각", "Azimuth"],
B06_Profile_Zoom_In: ["확대", "Zoom in"],
B06_Profile_Zoom_Out: ["축소", "Zoom out"],
B06_Profile_Zoom_Reset: ["원래 크기", "Reset zoom"],
B06_Profile_View_Kind_BP: ["BP", "BP"],
B06_Profile_View_Kind_EP: ["EP", "EP"],
B06_Profile_View_NoLongitudinal: [
"표시할 종단면 데이터가 없습니다.",
"No longitudinal profile data to display.",
],
B06_Profile_View_NoCross: [
"표시할 횡단면 데이터가 없습니다.",
"No cross-section data to display.",
],
/* --- B06 유토곡선 (종단면도 아래 상단 패널) --- */
B06_MassHaul_Title: ["유토곡선", "Mass Haul Diagram"],
B06_MassHaul_YAxis: ["누가토량 (㎥)", "Cumulative volume (㎥)"],
B06_MassHaul_Empty: [
"측점에 지반유형을 지정하면 유토곡선이 표시됩니다.",
"The mass haul diagram appears once ground types are assigned to stations.",
],
B06_MassHaul_CutNatural: ["절토(자연)", "Cut (natural)"],
B06_MassHaul_CutCompacted: ["절토(다짐환산)", "Cut (compacted)"],
B06_MassHaul_Fill: ["성토", "Fill"],
B06_MassHaul_Surplus: ["사토", "Surplus"],
B06_MassHaul_Shortage: ["토취", "Borrow"],
/* 운반계획 도면은 다짐상태 기준으로 계산한다(국도건설공사 설계실무 요령). */
B06_MassHaul_Basis: ["다짐상태 기준", "Compacted basis"],
B06_MassHaul_AllHidden: [
"표시할 곡선을 하나 이상 켜 주세요.",
"Turn on at least one curve to display.",
],
/* 토량 산출 기준 — 임도의 설계 및 시설기준 2.다.(3)(나)는 종단 계획고를,
2.다.(4)(마)는 측점별 횡단 단면적을 각각 근거로 삼는다. */
B06_MassHaul_Basis_Cross: ["횡단 기준", "Cross-section basis"],
B06_MassHaul_Basis_Long: ["종단 기준", "Profile basis"],
B06_MassHaul_Legend_Title: ["표시할 유토곡선", "Visible mass haul curves"],
B06_MassHaul_Legend_Show: ["표시", "Show"],
B06_MassHaul_Legend_Hide: ["숨김", "Hide"],
/* 선택 측점의 구간 물량 말풍선 — 직전 측점부터 이 측점까지의 몫이다. */
B06_MassHaul_Station_Net: ["순토량", "Net volume"],
B06_MassHaul_Station_Cumulative: ["누가토량", "Cumulative"],
/* --- B06 토량 분배(평형선·운반 블록) --- */
B06_MassHaul_Balance_Layer: ["토량 분배", "Haul plan"],
B06_MassHaul_Block: ["운반 블록", "Haul block"],
B06_MassHaul_HaulVolume: ["운반토량", "Haul volume"],
B06_MassHaul_HaulDistance: ["평균운반거리", "Average haul distance"],
B06_MassHaul_HaulTotal: ["운반토량 계", "Hauled total"],
B06_MassHaul_BlockCount: ["운반 블록 수", "Haul blocks"],
/* 운반장비 이름 — 거리 경계값은 config_system.EARTHWORK_HAUL_EQUIPMENT_LIMITS_M에만 둔다. */
B06_MassHaul_Equip_FreeHaul: ["종무대", "Free haul"],
B06_MassHaul_Equip_Dozer: ["도쟈", "Dozer"],
B06_MassHaul_Equip_Dump: ["덤프", "Dump truck"],
/* 떨어진 잉여 구간 → 부족 구간 장거리 운반. 배분 3원칙 ③(토량을 모아 운반). */
B06_MassHaul_Transfer: ["장거리 운반", "Long haul"],
/* 검산 — 성토는 전부 운반으로 채워지므로 운반 합계 = 총 성토량이어야 한다. */
B06_MassHaul_Check: ["운반·성토 검산", "Haul vs fill check"],
B06_MassHaul_Check_Ok: ["일치", "Balanced"],
/* 자연방토 = 남는 흙을 성토사면으로 흘려보내 운반비를 세지 않는 처리.
판정 경사 정의처는 config_system.NATURAL_SPOIL_MIN_GROUND_SLOPE 한 곳뿐이다. */
B06_MassHaul_NaturalSpoil: ["자연방토", "Natural side-cast"],
B06_MassHaul_SpoilHauled: ["사토장", "To spoil area"],
B06_MassHaul_Balloon_Reset: ["도형 위치 초기화", "Reset label positions"],
/* 횡단도 줌 버튼 — 휠은 페이지 스크롤로 돌려주고 확대·축소는 버튼이 맡는다. */
B06_Profile_View_ZoomIn: ["확대", "Zoom in"],
B06_Profile_View_ZoomOut: ["축소", "Zoom out"],
B06_Profile_View_ZoomFit: ["원래 크기", "Fit"],
B06_MassHaul_Balloon_Reset_Tip: [
"끌어 옮긴 유토곡선 도형을 자동 배치로 되돌립니다. 횡단을 확정하면 저장된 위치도 함께 지워집니다.",
"Restores dragged mass-haul labels to automatic placement. Confirming the sections also clears the stored positions.",
],
/* --- B06 측점 표준횡단 설계 지정 --- */
B06_Design_Ground_Legend: ["지반유형", "Ground type"],
B06_Design_Ground_Soil: ["토사", "Soil"],
B06_Design_Ground_Ripping: ["리핑암", "Ripping rock"],
B06_Design_Ground_Blasting: ["발파암", "Blasting rock"],
B06_Design_Mode_Legend: ["단면유형", "Section type"],
B06_Design_Mode_LeftCut: ["편측 성토", "One-side fill"],
B06_Design_Mode_RightCut: ["편측 성토", "One-side fill"],
B06_Design_Mode_BothCut: ["양측 절토", "Both cut"],
B06_Design_Mode_BothFill: ["양측 성토", "Both fill"],
B06_Design_Ditch_Legend: ["측구위치", "Ditch side"],
B06_Design_Ditch_Left: ["좌", "Left"],
B06_Design_Ditch_Right: ["우", "Right"],
B06_Design_Cut_Area: ["절토", "Cut"],
/* 절토 내역 — 지표면~암반 경계선이 토사, 그 아래가 암반(합=절토). */
B06_Design_Cut_Soil_Area: ["절토(토사)", "Cut (soil)"],
B06_Design_Cut_Rock_Area: ["절토(암반)", "Cut (rock)"],
/* 횡단 면적표 열 이름은 유토곡선 도면 표기를 그대로 쓴다(EA 토사 / RR 리핑암 / BR 발파암). */
B06_Design_Area_EA: ["EA", "EA"],
B06_Design_Area_RR: ["RR", "RR"],
B06_Design_Area_BR: ["BR", "BR"],
B06_Design_Area_Total: ["계", "Total"],
/* 단위는 값 칸마다 붙이지 않고 표 좌상단(행제목 × 열제목 교차) 칸에 한 번만 적는다. */
B06_Design_Area_Unit: ["㎡", "㎡"],
B06_Design_Area_Highlight: ["누르면 해당 면적을 강조합니다", "Click to highlight this area"],
B06_Design_Fill_Area: ["성토", "Fill"],
B06_Design_Unset: ["미지정", "Not set"],
B06_Design_DitchType_Legend: ["측구형식", "Ditch type"],
B06_Design_DitchType_Standard: ["일반", "Standard"],
B06_Design_DitchType_LType: ["L형", "L-type"],
B06_Design_Paved_Legend: ["포장", "Pavement"],
B06_Design_Paved_On: ["포장", "Paved"],
B06_Design_Paved_Off: ["비포장", "Unpaved"],
B06_Design_TwoStage_Legend: ["2단계 경사", "Two-stage slope"],
B06_Design_TwoStage_On: ["복합경사", "Compound slope"],
B06_Design_TwoStage_Off: ["단경사", "Single slope"],
B06_Design_Ditch_Legend2: ["측구", "Ditch"],
B06_Design_Ditch_On: ["측구", "Ditch"],
B06_Design_Ditch_Off: ["측구", "Ditch"],
B06_Design_Disabled_BothCutOnly: [
"양측 절토·양측 성토 단면에서만 경사 방향을 바꿀 수 있습니다.",
"Slope direction is adjustable only for both-cut and both-fill sections.",
],
B06_Design_More: ["더보기", "More"],
B06_Design_SlopeDir_Left: ["좌", "Left"],
B06_Design_SlopeDir_Right: ["우", "Right"],
B06_Design_Disabled_RockCut: [
"암(리핑/발파) 지반의 절토 단면에서만 사용할 수 있습니다.",
"Available only for rock ground with a cut section.",
],
B06_Design_Disabled_NoDitch: [
"측구가 있는 단면(양성 제외)에서만 사용할 수 있습니다.",
"Available only for sections with a ditch (not both-fill).",
],
B06_Design_Disabled_NoDitchType: [
"측구를 생성한 경우에만 형식을 선택할 수 있습니다.",
"Available only when a ditch is created.",
],
B06_Design_Paved_Suggested: [
"종단경사 법정 상한 초과 — 포장 권장 (임도설치 및 관리 등에 관한 규정 별표 1-2)",
"Grade exceeds legal limit — pavement recommended (Forest Road Regulation, Annex 1-2)",
],
B06_Design_RockBoundary_Legend: ["암 경계", "Rock boundary"],
B06_Design_RockBoundary_Up: ["암 경계선 올림", "Raise rock boundary"],
B06_Design_RockBoundary_Down: ["암 경계선 내림", "Lower rock boundary"],
B06_Design_RockBoundary_Reset: ["암 경계선 기본값 복원", "Reset rock boundary"],
B06_Design_Failed: ["횡단 설계 계산에 실패했습니다.", "Failed to compute cross-section design."],
B06_Profile_Confirm_NeedDesign: [
"지반유형이 지정되지 않은 측점이 있습니다.",
"Some stations have no ground type assigned.",
],
/* --- B06 표준 횡단면 설정 패널 --- */
B06_Std_Title: ["표준 횡단면 설정", "Standard cross-section"],
B06_Std_Group_Soil: ["토사 구간", "Soil section"],
B06_Std_Group_Rock: ["암 구간 (리핑/발파)", "Rock section (ripping/blasting)"],
B06_Std_Group_Paved: ["포장 구간", "Paved section"],
B06_Std_Field_RoadWidth: ["노폭(m)", "Road width (m)"],
B06_Std_Field_ShoulderLeft: ["노견 좌(m)", "Shoulder L (m)"],
B06_Std_Field_ShoulderRight: ["노견 우(m)", "Shoulder R (m)"],
B06_Std_Field_DitchTop: ["측구 상단폭(m)", "Ditch top (m)"],
B06_Std_Field_DitchBottom: ["측구 저폭(m)", "Ditch bottom (m)"],
B06_Std_Field_DitchDepth: ["측구 깊이(m)", "Ditch depth (m)"],
B06_Std_Field_LDitchWidth: ["L형 측구 폭(m)", "L-ditch width (m)"],
B06_Std_Field_LDitchDepth: ["L형 측구 깊이(m)", "L-ditch depth (m)"],
B06_Std_Field_CrossSlopeMin: ["횡단경사 최소(%)", "Cross slope min (%)"],
B06_Std_Field_CrossSlopeMax: ["횡단경사 최대(%)", "Cross slope max (%)"],
B06_Std_Field_CutSlope: ["절토경사(1:n)", "Cut slope (1:n)"],
B06_Std_Field_FillSlope: ["성토경사(1:n)", "Fill slope (1:n)"],
B06_Std_LType_Note: [
"L형 측구는 각 횡단면도에서 선택합니다.",
"L-type ditch is chosen per cross-section drawing.",
],
B06_Std_Reset: ["기본값 복원", "Restore defaults"],
B06_Std_ApplyAll: ["전체 측점 반영", "Apply to all stations"],
B06_Std_ApplyAll_Success: [
"패널 설정을 전체 측점에 반영했습니다.",
"Applied panel settings to all stations.",
],
B06_Std_Load_Title: ["다른 프로젝트에서 불러오기", "Load from another project"],
B06_Std_Load_Select: ["프로젝트 선택", "Select project"],
B06_Std_Load_Placeholder: ["— 프로젝트 선택 —", "— Select a project —"],
B06_Std_Load_Empty: [
"같은 회사에 불러올 설계값이 없습니다.",
"No saved designs in your company.",
],
B06_Std_Load_Loading: ["불러오는 중…", "Loading…"],
B06_Std_Load_Apply: ["현재 설정에 적용", "Apply to current settings"],
B06_Std_Load_Applied: ["적용되었습니다.", "Applied."],
B06_Std_Load_Failed: ["설계값을 불러오지 못했습니다.", "Failed to load design values."],
B06_Std_Load_None: [
"선택한 프로젝트에 저장된 설계값이 없습니다.",
"The selected project has no saved design values.",
],
B06_Std_Diagram_Title: ["변수 위치 안내", "Variable position guide"],
B06_Std_Diagram_Toggle: ["단면 그림 보기/숨기기", "Show/hide section guide"],
B06_Std_Diagram_Road: ["노폭", "Road"],
B06_Std_Diagram_ShoulderL: ["노견 좌", "Shoulder L"],
B06_Std_Diagram_ShoulderR: ["노견 우", "Shoulder R"],
B06_Std_Diagram_Ditch: ["측구", "Ditch"],
B06_Std_Diagram_Cut: ["절토경사", "Cut slope"],
B06_Std_Diagram_Fill: ["성토경사", "Fill slope"],
B06_Std_Diagram_CrossSlope: ["횡단경사", "Cross slope"],
B06_Std_Diagram_Center: ["중심선(계획고)", "Centerline (design elev.)"],
B06_Std_Diagram_Caption: [
"표준 편절편성 단면 모식도 — 각 설정값의 위치를 나타냅니다(실제 비율 아님).",
"Standard cut-fill section schematic — shows where each value applies (not to scale).",
],
/* --- B07_wf4_DesignDetail 상세 설계 --- */
B07_Design_Title: ["상세설계", "Detail Design"],
B07_Cad_Side_Pending: [
"사이드 패널은 전달 데이터 확정 후 구성됩니다.",
"Side panel will be configured after the upstream data spec is finalized.",
],
B07_Cad_Loading: ["도면을 불러오는 중...", "Loading drawing..."],
B07_Cad_Load_Failed: ["도면을 불러오지 못했습니다.", "Failed to load drawing."],
B07_Info_Ground_Title: ["지반정보", "Ground info"],
B07_Info_Plan_Title: ["계획정보", "Plan info"],
B07_Info_GroundType: ["지반유형", "Ground type"],
B07_Info_CutSide: ["절토측", "Cut side"],
B07_Info_DitchSide: ["측구위치", "Ditch side"],
B07_Info_DesignElevation: ["계획고", "Design elevation"],
B07_Info_CutSlope: ["절토경사", "Cut slope"],
B07_Info_FillSlope: ["성토경사", "Fill slope"],
B07_Info_RoadWidth: ["노면폭", "Road width"],
B07_Info_Ditch: ["측구규격", "Ditch spec"],
B07_Info_CutArea: ["절토 단면적", "Cut area"],
B07_Info_FillArea: ["성토 단면적", "Fill area"],
B07_Info_Provisional: ["잠정", "Provisional"],
B07_Info_Confirmed: ["확정", "Confirmed"],
B07_Info_NoDesign: ["지반·계획 지정 데이터가 없습니다.", "No ground/plan designation data."],
B07_Info_Station: ["측점", "Station"],
/* --- B08_wf5_Quantity 수량 산출 --- */
B08_Quantity_Title: ["수량산출", "Quantity"],
/* --- B09_wf6_Estimation 견적·문서 --- */
B09_Estimation_Title: ["설계도서", "Design Docs"],
/* --- B10_Payment 결재 --- */
B10_Payment_Title: ["결재", "Payment"],
B10_Payment_Subtitle: [
"세금계산서 발행과 계좌 입금 절차를 확인하세요.",
"Review the tax invoice and bank transfer process.",
],
B10_Payment_Invoice_Title: ["세금계산서 발행 요청", "Tax Invoice Request"],
B10_Payment_Invoice_Description: [
"사업자 정보와 발행 금액은 견적 확정 후 연결됩니다.",
"Business details and the invoice amount will be linked after the estimate is finalized.",
],
B10_Payment_Invoice_Request: ["발행 요청", "Request Invoice"],
B10_Payment_Invoice_Status: ["요청 전", "Not Requested"],
B10_Payment_Deposit_Title: ["계좌 입금 안내", "Bank Transfer Guide"],
B10_Payment_Deposit_Account: ["입금 계좌", "Deposit Account"],
B10_Payment_Deposit_Amount: ["입금 금액", "Deposit Amount"],
B10_Payment_Deposit_Pending: ["견적 확정 후 표시", "Shown after estimate confirmation"],
B10_Payment_Deposit_Note: [
"입금 확인 후 설계문서와 DWG 다운로드가 허용됩니다.",
"Design documents and DWG downloads are enabled after the deposit is confirmed.",
],
/* --- B11_Status 상태 출력 --- */
B11_Status_Title: ["처리 상태", "Status"],
B11_Status_Subtitle: [
"결재·문서 생성 상태를 확인하고 결과물을 내려받으세요.",
"Check payment and document status, and download results.",
],
// 자료 준비 화면 (대시보드 → 작업 화면 진입 시 3D·등고선 선적재)
B11_Loading_Title: ["자료 준비 중", "Preparing data"],
B11_Loading_Subtitle: ["잠시만 기다려 주세요.", "This will take a moment."],
B11_Loading_Message: [
"작업 화면에서 바로 쓸 수 있도록 3D 지표면과 등고선을 준비합니다.",
"Loading the 3D surface and contours so the workspace opens instantly.",
],
B11_Loading_Start: ["자료를 준비하는 중…", "Preparing data…"],
B11_Loading_NoProject: [
"프로젝트가 선택되지 않았습니다. 대시보드에서 프로젝트를 먼저 고르세요.",
"No project selected. Choose a project on the dashboard first.",
],
B11_Loading_Failed: [
"자료를 준비하지 못했습니다. 분석 결과나 저장 경로에 문제가 있을 수 있습니다. 담당자에게 연락해 주세요.",
"Could not prepare the data. The analysis result or storage path may be broken. Please contact support.",
],
B11_Loading_Btn_Continue: ["그래도 화면으로 이동", "Continue anyway"],
B11_Loading_Btn_Dashboard: ["대시보드로", "Back to dashboard"],
B11_Status_Flow_Title: ["결재 진행 상태", "Payment Progress"],
B11_Status_Step_Request: ["발행 요청", "Invoice Requested"],
B11_Status_Step_Issue: ["세금계산서 발행", "Invoice Issued"],
B11_Status_Step_Deposit: ["입금 확인", "Deposit Confirmed"],
B11_Status_Step_Complete: ["완료", "Complete"],
B11_Status_NotStarted: ["시작 전", "Not Started"],
B11_Status_Download_Title: ["결과물 다운로드", "Result Downloads"],
B11_Status_Download_Description: [
"입금 확인이 완료되면 설계문서와 DWG 다운로드가 활성화됩니다.",
"Design document and DWG downloads are enabled after deposit confirmation.",
],
} as const satisfies Record<string, LocaleEntry>;