- 새 Labor_Detail.ts(mountLaborDetail · 차례 = 정보 → 담은 로직 → 자재목록 → 다이어그램 · 고칠 때마다 calc 를 뒤에서 · 최신 답만 · 같은 로직 · 자재 두 번 막음) - 새 Labor_Input.ts(담은 로직 줄 입력 모달 · 빈 칸 = 자동값 · 메모 · 수량 = 이은 칸 / 손 입력 / 면적산출에서 잇기 · 사라진 입력값 알림 · 자재 수량 모달) - 새 Labor_Rows.ts(작은 글 「지역 서울 · 수량 B6 = 12.5㎡」 · 빈 값 n 붉게 · 금액 칸 넷 두 줄(위 기준 · 아래 반영) · 합계 줄 · 보기 갈래는 손잡이 없이) - Labor_Api.ts: labor 문서 · calc 답 모양 · calcLabor · fetchLogicInputs · previewCombo 지움 - Labor_Diagram.ts: buildDiagramData → buildLaborDiagram(줄 입력값 + calc · 수량 있으면 반영 · 없으면 기준 표기 · 자재목록 카드 하나 → 재료비 · 알약 = 입력 모달) - 미리 보기 지움: Labor_Preview.ts · M02 preview 길 · Combo_Store.preview · 옛 조합 상세의 미리 보기 · 다이어그램 칸 - 시험: test_m02_labor_diagram 새 모양 · test_m01_combo 미리 보기 시험은 같은 계산(combo_preview)을 바로 부름 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MgChuAcyBqUkhHMTXomQC7
118 lines
5.4 KiB
TypeScript
118 lines
5.4 KiB
TypeScript
/* =============================================================================
|
|
* M02_MasterTemplete_Labor_Text.ts
|
|
* 일위대가 조합 화면 글자 — [한국어, 영어]
|
|
* ========================================================================== */
|
|
|
|
import { currentLanguageIndex } from "@ui/ui_template_locale";
|
|
|
|
const TEXT = {
|
|
Title: ["일위대가 조합", "Unit-price combination"],
|
|
Library: ["일위대가 라이브러리", "Unit-price library"],
|
|
AddCombo: ["조합 추가", "Add combination"],
|
|
ComboName: ["조합 이름", "Combination name"],
|
|
ReadOnly: ["읽기만 — 이 층은 고칠 수 없음", "Read only — this layer cannot be edited"],
|
|
Sub: ["구분", "Category"],
|
|
Detail: ["상세구분", "Detail"],
|
|
All: ["전체", "All"],
|
|
Empty: ["조합이 없음 — [새 조합]으로 만듦", "No combinations — press [New combination]"],
|
|
New: ["새 조합", "New combination"],
|
|
Delete: ["지우기", "Delete"],
|
|
Save: ["저장", "Save"],
|
|
DeleteAsk: ["이 조합을 지울까요?", "Delete this combination?"],
|
|
Saved: ["저장함", "Saved"],
|
|
Deleted: ["지움", "Deleted"],
|
|
Stale: ["그 사이 조합 파일이 바뀜 — 다시 열어 주세요", "The file changed — reopen it"],
|
|
Loading: ["불러오는 중…", "Loading…"],
|
|
LeaveAsk: [
|
|
"저장 안 한 고침이 있음 — 로직 상세로 가면 이 화면에서는 그대로 두고 옮겨 감. 갈까요?",
|
|
"Unsaved edits — go to the logic anyway?",
|
|
],
|
|
BackAsk: [
|
|
"저장 안 한 고침이 있음 — 버리고 목록으로 갈까요?",
|
|
"Unsaved edits — discard and go back to the list?",
|
|
],
|
|
Search: ["이름 · 키로 찾기", "Search by name or key"],
|
|
NoMatch: ["찾은 조합 없음 — 거름 · 찾기 글을 바꿔 봄", "No match — change the filter or search"],
|
|
NeedName: ["이름을 적어야 저장됨", "A name is required"],
|
|
Load_Failed: ["불러오지 못함", "Load failed"],
|
|
Head_Key: ["키", "Key"],
|
|
Head_Name: ["이름", "Name"],
|
|
Head_Unit: ["단위", "Unit"],
|
|
Head_Note: ["비고", "Note"],
|
|
Head_Count: ["로직 수", "Logics"],
|
|
Head_Origin: ["본뜬키", "Copied from"],
|
|
Origin_Self: ["원본", "Original"],
|
|
Logics_Title: ["담은 로직", "Logics in it"],
|
|
Col_Order: ["차례", "No."],
|
|
Col_Key: ["로직 키", "Logic key"],
|
|
Col_Name: ["이름", "Name"],
|
|
Col_Unit: ["결과 단위", "Result unit"],
|
|
Col_Memo: ["메모", "Memo"],
|
|
Col_Move: ["순서", "Move"],
|
|
Up: ["올리기", "Up"],
|
|
Down: ["내리기", "Down"],
|
|
Remove: ["빼기", "Remove"],
|
|
AddLogic: ["로직 추가", "Add logic"],
|
|
NoLogic: ["담은 로직 없음", "No logics yet"],
|
|
Open: ["열기", "Open"],
|
|
Pick_Title: ["로직 고르기", "Pick a logic"],
|
|
Pick_Search: ["이름·키로 찾기", "Search by name or key"],
|
|
Pick_Find: ["찾기", "Find"],
|
|
Pick_Hint: [
|
|
"구분 → 상세구분을 고르고 [찾기]를 누름 — 하나씩 직접 고름",
|
|
"Choose category, detail, then Find — pick one by one",
|
|
],
|
|
Pick_None: ["찾은 로직 없음", "No logics found"],
|
|
Pick_Close: ["닫기", "Close"],
|
|
Pick_Blocked: ["막힘", "Blocked"],
|
|
Prev_Labor: ["노무비", "Labor"],
|
|
Prev_Material: ["재료비", "Material"],
|
|
Prev_Expense: ["경비", "Expense"],
|
|
Prev_Sum: ["합계", "Total"],
|
|
// 일위대가 상세(39-3) — 구조물 열마다 하나
|
|
Labor_Title: ["일위대가", "Unit price"],
|
|
Labor_Unit: ["단위", "Unit"],
|
|
Labor_Origin: ["본뜬 곳", "Copied from"],
|
|
Labor_Mats: ["자재목록", "Materials"],
|
|
Labor_NoMat: ["담은 자재 없음", "No materials yet"],
|
|
Labor_AddMat: ["자재 추가", "Add material"],
|
|
Labor_Qty: ["수량", "Quantity"],
|
|
Labor_Base: ["기준", "Base"],
|
|
Labor_Applied: ["반영", "Applied"],
|
|
Labor_BasePrice: ["기준 단가", "Base price"],
|
|
Labor_AppliedSum: ["반영 금액", "Applied amount"],
|
|
Labor_Calc_Wait: ["계산 중…", "Calculating…"],
|
|
Labor_Calc_Fail: ["계산 못 함", "Calculation failed"],
|
|
Labor_Empty: ["빈 값 {n}", "{n} empty"],
|
|
Labor_Lost: [
|
|
"로직 입력이 바뀌어 저장 때 빠지는 값 — {value}",
|
|
"Inputs no longer in the logic (dropped on save) — {value}",
|
|
],
|
|
Labor_Code: ["코드", "Code"],
|
|
Labor_Spec: ["규격", "Spec"],
|
|
Labor_Already: ["이미 담은 로직 — {value}", "Already added — {value}"],
|
|
Labor_AlreadyMat: ["이미 담은 자재 — {value}", "Already added — {value}"],
|
|
In_Title: ["넣을 값 — {value}", "Inputs — {value}"],
|
|
In_None: ["이 로직은 넣을 값이 없음", "This logic has no inputs"],
|
|
In_Memo: ["메모", "Memo"],
|
|
In_Qty: ["수량", "Quantity"],
|
|
In_QtyCell: ["면적산출 칸", "Area sheet cell"],
|
|
In_QtyHand: ["손 입력", "Manual"],
|
|
In_QtyLinked: ["이은 칸 {value}", "Linked cell {value}"],
|
|
In_QtyNoLink: ["이은 칸 없음 — 면적산출에서 알약을 칸에 이음", "No linked cell"],
|
|
In_QtyGoArea: ["면적산출에서 잇기", "Link in area sheet"],
|
|
In_QtyNeed: ["손 입력 수량을 수로 적음", "Enter a number"],
|
|
In_Bad: ["범위 밖 값이 있음 — 고친 뒤 확인", "Out-of-range values — fix first"],
|
|
In_Ok: ["확인", "OK"],
|
|
In_Cancel: ["취소", "Cancel"],
|
|
In_Close: ["닫기", "Close"],
|
|
In_Loading: ["입력 목록 받는 중…", "Loading inputs…"],
|
|
} as const satisfies Record<string, readonly [string, string]>;
|
|
|
|
export type ComboTextKey = keyof typeof TEXT;
|
|
|
|
export function tc(key: ComboTextKey): string {
|
|
const entry = TEXT[key];
|
|
return entry[currentLanguageIndex as 0 | 1] ?? entry[0];
|
|
}
|