Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016WRFJmmhPi4exAzHgPZHMT
161 lines
7.4 KiB
TypeScript
161 lines
7.4 KiB
TypeScript
/* =============================================================================
|
||
* 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));
|
||
}
|