Files
Aislo/M01_MasterData/M01_MasterData_UI_LogicLab_Text.ts
T
eomsangdonandClaude Opus 5.5 2e7328d3a5 feat(794-1): M01 관리자 줄 식 시트 — 로직 상세 첫 보기 「시트」 · 식 칸 칠 때마다 검사 · 기존 [저장] 길
- 로직 상세 보기 첫 칸 「시트」(기본) — 이름 | 식 | 값 | 비목 · 근거 · 옵션(시험 값) · 변수 · 계산 · 자원 · 율 · 덧줄 · 단계 · 끝수 · 소계 · 합계 · 상태줄 지금 · 고치기 전
- 식 글 = 이름 꼴(M02 단가산출 시트와 같은 번역 · 새 서버 M01_MasterData_Sheet.py · POST /api/m01/logic/sheet · /logic/sheet/check · 저장 때와 같은 엔진 검사 · 쓰기 없음)
- 식 고침 = 시스템 관리자만 · 되는 식만 줄 사본에 · 캐시 → 기존 [저장](개정 확인 · 서버 검사 422) · [원래로]
- 식 칸 몸 = 공용 A00_Common/sheet_formula_cell.ts — M02 단가산출 시트도 같은 것을 씀(동작 그대로)
- 자체 로직(GX) 편집기 식 날 입력칸 → 읽기만(시트 식 칸으로 갈음)
- 시험: test_794_1_m01_sheet 새로 · test_790_1 식 칸 문구 자리를 공용 파일로 옮김(식 칸 몸이 공용으로 감) · test_717_2b · test_722 LogicLab.ts 줄 상한 627 → 637(시트 이음 10 줄 · 셈 · 고침은 시트 파일로 뺌 · 700 아래)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-05 18:45:48 +09:00

139 lines
6.7 KiB
TypeScript

/* =============================================================================
* M01_MasterData_UI_LogicLab_Text.ts
* 「단가산출 로직」 컨테이너 글자 — [한국어, 영어]
* ========================================================================== */
import { currentLanguageIndex } from "@ui/ui_template_locale";
const TEXT = {
Info_Title: ["기본정보", "Basic info"],
Info_Base: [
"기본 로직 — 식은 오른쪽 흐름도에서 고침(시스템 관리자) · 여기서는 비고만",
"Base logic — edit formulas in the flow diagram on the right (system admin) · only the note here",
],
Info_ReadOnly: [
"기본 로직 — 보기만 · 비고만 고칠 수 있음",
"Base logic — view only · only the note can be edited",
],
Info_Own: [
"자체 로직 — 칸을 고치면 잠시 뒤 호표 소계와 텍스트 수식이 다시 계산됨",
"Own logic — edits recalculate the subtotals and formula shortly",
],
Edit_Title: [
"고치기 (호표 · 중간 값 · 덧줄 · 끝수)",
"Edit (lines · middles · extras · rounding)",
],
Ho_Fold: ["묶음 소계 표 (읽기용 — 고치기는 위 편집기)", "Group subtotals (read-only)"],
Ho_Title: ["단가산출 상세", "Unit-price detail"],
Formula_Title: ["텍스트 수식", "Text formula"],
Formula_Slot: ["시험 계산을 누르면 식이 글로 나옴", "Run the trial calc to see the formula"],
Formula_Divide: [
"식은 바탕 단위 기준 · 금액 · 소계 = 식 값",
"Formulas use the base unit · amounts and subtotals = formula value",
],
Calc_Title: ["시험 계산", "Trial calculation"],
View_Est: ["인력·재료·경비", "Labor·material·expense"],
View_Sheet: ["시트", "Sheet"],
Edit_SheetHint: ["식은 「시트」 보기에서 고침", "Edit formulas in the Sheet view"],
View_Label: ["보기", "View"],
Now_Inputs: ["지금 입력", "Current inputs"],
Now_None: ["없음", "none"],
G_labor: ["인력", "Labor"],
G_material: ["재료", "Material"],
G_cost: ["경비", "Expense"],
G_other: ["그 밖 (인력·자재·경비 어디에도 안 맞는 줄)", "Other (fits none of the three)"],
Tag_Table: ["표", "Table"],
Subtotal: ["소계", "Subtotal"],
Share: ["몫", "Share"],
Total: ["계", "Total"],
Extra: ["덧줄", "Extra"],
Col_Name: ["이름", "Name"],
Col_Unit: ["단위", "Unit"],
Col_Qty: ["수량", "Quantity"],
Col_Logic: ["로직", "Logic"],
Col_Price: ["단가", "Price"],
Col_Amount: ["금액", "Amount"],
Empty_Group: ["줄 없음", "No lines"],
Not_Money: ["호표가 없는 로직 — 결과 식", "No unit-cost lines — result formula"],
Calc_First: [
"금액은 아래 「시험 계산」 을 누르면 채워짐",
"Amounts fill after the trial calculation",
],
Click_Hint: ["줄을 누르면 그 줄이 쓰는 자료가 뜸", "Click a line to see the data it uses"],
Modal_Close: ["닫기", "Close"],
Formula_Left: ["변수 이름 식", "Formula with names"],
Formula_Right: ["값이 들어간 식", "Formula with values"],
Formula_Var: [
"누르면 시험 계산 입력을 고침 · 다시 셈(정본 안 바뀜)",
"Click to change the trial input and recalculate (source unchanged)",
],
Pill_Tone: ["요소 연결", "Linked element"],
Var_Tone: ["옵션", "Option"],
Modal_Sum: ["한 줄 풀이", "In one line"],
Pill_Hint: ["쓰인 자료 — 누르면 펼침", "Data used — tap to open"],
Modal_UnitPrice: ["단가", "Unit price"],
Pill_Table: ["표", "Table"],
Pill_Logic: ["로직", "Logic"],
Pill_Go: ["마스터 화면에서 보기", "Open in master"],
Pill_Back: ["← 단가산출 기초로 돌아가기", "← Back to unit-price logic"],
Pill_NoPick: [
"고르기 조건에 맞는 마스터 줄이 없음 — 단가를 못 찾음",
"No master row matches the pick conditions",
],
Pill_Unresolved: ["입력이 비어 풀리지 않음", "Not resolved — input empty"],
Pill_NoValue: ["관리자 값 미확보 — 마스터에 단가가 없음", "No price in master yet"],
Modal_Qty: ["수량 식", "Quantity formula"],
Modal_Price: ["단가 자료", "Price source"],
Modal_Value: ["값", "Value"],
Modal_Source: ["출처", "Source"],
Modal_Spec: ["규격", "Spec"],
Modal_Candidates: [
"후보 목록 (노란 줄 = 시험 계산이 쓰는 품목)",
"Candidates (yellow = used in the trial)",
],
Modal_PickList: [
"후보 목록 — 줄을 누르면 그 품목으로 시험 계산 (노란 줄 = 지금 쓰는 품목)",
"Candidates — click a row to use it in the trial (yellow = in use)",
],
Modal_Find: ["이름 · 규격으로 찾기", "Search by name or spec"],
Modal_Logic: ["다른 로직을 부름", "Calls another logic"],
Modal_NoData: ["표나 단가 자료가 없는 줄 — 수량 식만 있음", "No table or price data"],
Modal_Hit: ["노란 줄 = 지금 넣은 값으로 걸린 줄", "Highlighted row matches the trial values"],
Modal_ColOnly: [
"진한 칸 = 찾은 값 칸 — 서버가 줄 자리는 안 줌",
"Dark cells = the value column found; the server gave no row",
],
Modal_NoHit: [
"지금 값으로는 걸린 줄이 없음 — 값을 바꿔 보거나, 이 표를 안 쓰는 갈래일 수 있음",
"No row matches the current values — change them, or this table is on an unused branch",
],
Copy_Open: ["로직 복사/생성", "Copy / create logic"],
Copy_NeedOpen: ["먼저 로직을 고르세요", "Pick a logic first"],
Copy_Title: ["복사해서 만들기", "Copy to edit"],
Copy_Name: ["새 이름", "New name"],
Copy_Owner: ["소유", "Owner"],
Copy_Site: ["현장", "Site"],
Copy_Shared: ["공용", "Shared"],
Copy_Aliases: ["부르는 표·로직", "Tables & logics used"],
Copy_Alias_Swap: ["표 바꾸기", "Change table"],
Copy_Alias_Ref: ["그대로 부르기", "Keep reference"],
Copy_Alias_Fork: ["같이 복사하기", "Copy along"],
Copy_Alias_Forked: ["복사됨", "Copied"],
Copy_Lines: ["식 줄 — 고치거나 더함", "Formula lines — edit or add"],
Copy_AddExtra: ["덧줄 추가", "Add extra line"],
Copy_ExtraName: ["새 덧줄", "New extra line"],
Copy_Save: ["저장(자체 로직)", "Save as mine"],
Copy_Cancel: ["취소", "Cancel"],
Copy_Saved: ["자체 로직으로 저장함", "Saved as your own logic"],
Copy_PickTitle: ["바꿀 표 찾기", "Find a table"],
Copy_PickSearch: ["표 이름·키로 찾기", "Search by table name or key"],
Copy_PickNone: ["찾는 표가 없음", "No matching tables"],
} as const satisfies Record<string, readonly [string, string]>;
export type LabTextKey = keyof typeof TEXT;
export function tl(key: LabTextKey): string {
const entry = TEXT[key];
return entry[currentLanguageIndex as 0 | 1] ?? entry[0];
}