Files
Aislo/M01_MasterData/M01_MasterData_UI_Logic_Wizard_Text.ts
T

161 lines
7.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* =============================================================================
* 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<string, readonly [string, string]>;
export type WizardTextKey = keyof typeof TEXT;
export function tw(key: WizardTextKey, fill: Record<string, string | number> = {}): 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));
}