/* ============================================================================= * M01_MasterData_UI_Logic_Wizard_Text.ts * 「새로 만들기」 모달 글자 — [한국어, 영어] · 설계자 말(식·기호를 글자로 치지 않음) * ========================================================================== */ import { currentLanguageIndex } from "@ui/ui_template_locale"; const TEXT = { Title: ["새 일위대가 로직 만들기", "New unit-cost logic"], Close: ["닫기", "Close"], Back: ["이전", "Back"], Next: ["다음", "Next"], Step: ["{n} / {total} · {name}", "{n} / {total} · {name}"], S_Name: ["이름", "Name"], S_Source: ["원문 절", "Source section"], S_Middle: ["중간 값", "Middle values"], S_Lines: ["호표 줄", "Table lines"], S_Inputs: ["설계 입력", "Design inputs"], S_Extra: ["할증·끝수", "Surcharge · rounding"], S_Test: ["시험 계산", "Trial calculation"], S_Save: ["저장", "Save"], Q_Name: ["무엇을 얼마만큼 하는 값인가요?", "What does this value price?"], Name_Ph: ["예: 돌쌓기 메쌓기(인력)", "e.g. Dry stone masonry"], Q_Unit: ["결과는 어떤 단위인가요?", "Result unit?"], Unit_Money: [ "「원」 으로 시작하면 돈을 셈하는 로직(호표) — 아니면 값 하나를 셈", "Units starting with 원 give money", ], Unit_Other: ["그 밖 (직접)", "Other"], Copy_Title: ["또는 이미 있는 로직을 본떠 만들기", "Or copy an existing logic"], Copy_Find: ["본뜰 로직 이름·번호 찾기", "Find a logic to copy"], Copy_Name: ["새 이름", "New name"], Copy_Do: ["본떠서 저장", "Copy and save"], Copy_Done: ["본떠서 저장했습니다", "Copied"], Unit_Own_Ph: ["예: ㎥/시간", "e.g. ㎥/h"], Q_Source: ["어느 원문 절을 옮기나요?", "Which source section?"], Book: ["책", "Book"], Division: ["부문", "Division"], Chapter: ["장", "Chapter"], Section_Search: ["절 번호·제목 찾기", "Search sections"], Section_Counts: ["표 {t} · 로직 {l}", "{t} tables · {l} logics"], Section_Picked: ["고른 절", "Chosen section"], Section_None: [ "이 절에 쓰는 표가 없습니다 — 절 번호를 확인해 주세요", "No tables in this section", ], Section_Skip: [ "표 없이 직접 만들 수도 있습니다 — 그대로 다음", "You can also build without tables", ], Table_Use: ["이 표를 씀", "Use this table"], Table_Base: ["기준", "Base"], Table_Cols: ["값 칸", "Value columns"], Table_Usage: ["용도", "Used for"], Q_Middle: ["이름을 붙여 둘 값이 있나요? (예: 높이에 따라 달라지는 증가율)", "Named values?"], Middle_Note: ["없으면 그대로 다음 — 있으면 아래에서 만듭니다", "Skip if none"], Middle_Add: ["중간 값 더하기", "Add a value"], Middle_Name: ["이 값의 이름", "Name"], Middle_If: ["만약", "If"], Middle_Then: ["이면", "then"], Middle_Else: ["그 밖이면", "otherwise"], Middle_AddIf: ["조건 더하기", "Add condition"], Middle_Done: ["이 중간 값 넣기", "Add this value"], Middle_Need: ["이름을 적어 주세요", "Name it"], Q_Lines: ["호표에 어떤 줄을 넣을까요?", "Add lines"], Line_Kind: ["무엇을", "Kind"], K_job: ["인력", "Labor"], K_mat: ["재료", "Material"], K_eq: ["기계", "Machine"], K_logic: ["다른 로직의 단가", "Other logic"], Line_FromTable: ["표의 값 칸에서 바로 줄 넣기", "Add from table column"], Line_Find: ["찾기", "Search"], Line_Pick: ["고르기", "Pick"], Line_Sub: ["구분", "Group"], Line_Detail: ["상세구분", "Sub-group"], Line_Unit: ["단위", "Unit"], Line_Qty: ["수량", "Quantity"], Line_Cost: ["비목", "Cost item"], Line_Add: ["줄 넣기", "Add line"], Line_Need: ["무엇을 쓸지 고르고 수량을 정해 주세요", "Pick an item and quantity"], Line_None: ["아직 넣은 줄이 없습니다", "No lines yet"], Line_Del: ["빼기", "Remove"], Line_Logic_Find: ["로직 이름·번호 찾기", "Find logic"], Result_Q: ["결과 값을 어떻게 셈할까요?", "How is the result computed?"], Qty_Value: ["직접 값", "Fixed number"], Qty_Table: ["표에서 찾기", "Look up in a table"], Qty_Input: ["설계 입력 값", "Design input"], Qty_Logic: ["다른 로직 부르기", "Call another logic"], Qty_Table_Pick: ["어느 표", "Table"], Qty_Col: ["값 칸", "Column"], Qty_Ask: ["설계자에게 물음", "Ask designer"], Qty_Fixed: ["붙박이 값", "Fixed"], Qty_Times: ["× 할증·증가율 (중간 값)", "× surcharge"], Qty_NoTimes: ["(없음)", "(none)"], Qty_Name: ["입력 이름", "Input name"], Qty_Number_Ph: ["수", "number"], Qty_LogicKey: ["로직 키 (예: GF000220)", "Logic key"], Qty_LogicArgs: ["넘길 입력 이름=값 (쉼표로 나눔)", "Args"], Qty_Table_Manual: ["표 키 (예: QF000421)", "Table key"], Q_Inputs: ["설계자에게 물을 값에 쉬운 말 설명을 달아 주세요", "Describe design inputs"], Inputs_None: ["설계자에게 물을 값이 없습니다 — 그대로 다음", "No inputs"], In_Desc: ["설명 (쉬운 말 한 줄)", "Description"], In_Unit: ["단위", "Unit"], In_Range: ["범위 아래 ∼ 위 (수 칸)", "Range"], In_Pick: ["고르기 목록", "Choices"], In_Number: ["수를 넣는 칸", "Number"], Q_Extra: ["할증·덧줄과 끝수를 정해 주세요", "Surcharge lines and rounding"], Extra_Add: ["덧줄 더하기 (노무비의 몇 % 같은 줄)", "Add surcharge line"], Extra_Name: ["줄 이름 (예: 공구손료 및 경장비)", "Name"], Extra_Base: ["기준", "Base"], Extra_Pct: ["몇 %", "%"], Extra_Cost: ["넣을 비목", "Cost item"], Round_Title: ["끝수", "Rounding"], Round_None: ["처리 안 함", "None"], Round_Down: ["원 미만 버림", "Round down"], Round_Up: ["원 미만 올림", "Round up"], Round_Half: ["원 미만 반올림", "Round half"], Q_Test: ["견본 값을 넣어 계산해 보세요", "Try sample values"], Test_Run: ["시험 계산", "Calculate"], Test_Empty: ["값을 넣고 「시험 계산」을 누르세요", "Enter values and calculate"], Test_Stopped: ["계산이 멈춤", "Stopped"], Col_Name: ["이름", "Name"], Col_Qty: ["수량", "Qty"], Col_Amount: ["금액", "Amount"], Sum_Total: ["합계", "Total"], Sum_Result: ["결과 값", "Result"], Q_Save: ["이대로 저장할까요?", "Save as is?"], Save_Owner: [ "자체 로직으로 저장됩니다 — 키(GX…)는 저장할 때 서버가 붙임", "Saved as your own logic; the server issues the key", ], Save_Do: ["저장", "Save"], Save_Done: ["저장했습니다", "Saved"], Save_Failed: ["저장하지 못함", "Save failed"], Failed: ["불러오지 못함", "Load failed"], Preview: ["지금까지 만든 호표", "Lines so far"], Preview_Name: ["이름", "Name"], Preview_Source: ["출처", "Source"], Preview_Inputs: ["설계 입력", "Inputs"], Preview_Middle: ["중간 값", "Middle"], Preview_Extra: ["덧줄", "Extra"], } as const satisfies Record; export type WizardTextKey = keyof typeof TEXT; export function tw(key: WizardTextKey, fill: Record = {}): string { const entry = TEXT[key]; const text: string = entry[currentLanguageIndex as 0 | 1] ?? entry[0]; return text.replace(/\{(\w+)\}/g, (m, k: string) => (k in fill ? String(fill[k]) : m)); }