/* ============================================================================= * M02_SO_Text.ts * 좌측 「구조물 옵션 보이기」 줄 · 상세 화면(보이기 · 그룹) 글자 — [한국어, 영어] * ========================================================================== */ import { currentLanguageIndex } from "@ui/ui_template_locale"; const TEXT = { Title: ["구조물 옵션 정의", "Structure option definition"], Row: [ "구조물군 · 종류 · 옵션 · 배치 · 그룹 · 규칙", "Families · types · options · layout · groups · rules", ], Screen: ["구조물 옵션 정의", "Structure option definition"], GroupHead: ["그룹", "Groups"], GroupNote: [ "그룹 하나 = 프로젝트 B05 · B06 폼의 보조 컨테이너 하나(제목 = 그룹 이름) · 그 안에서 구조물 조합 항목을 따로 지정 · 옵션이 없어도 연결됨 · 그룹에 안 넣은 옵션은 본체", "One group = one sub-container in the B05 · B06 form (title = group name) with its own structure combo · works without options · ungrouped options stay in the main body", ], GroupAdd: ["그룹 추가", "Add group"], GroupName: ["그룹 이름", "Group name"], GroupNew: ["새 그룹 {value}", "New group {value}"], GroupUp: ["위로", "Up"], GroupDown: ["아래로", "Down"], GroupDel: ["지우기", "Delete"], GroupDelAsk: [ "그룹 「{value}」 을 지움 — 그 옵션은 본체로 돌아감 · 프로젝트에 이미 지정한 조합은 값만 남음", "Delete group “{value}” — its options return to the main body; project links keep their values", ], GroupCount: ["옵션 {value}", "{value} options"], GroupNone: [ "그룹 없음 — 모든 옵션이 본체 · 집계 항목 하나", "No groups — all options in the main body", ], GroupTag: ["그룹 {value}", "{value} groups"], Main: ["본체", "Main body"], OptionHead: ["옵션", "Options"], OptionNote: [ "이름 · 꼴 · 단위 · 기본값 · 들어갈 자리(본체 · 그룹) · 안 씀 · 순서 — 키(작은 글)는 안 바뀜 · 고르기 꼴은 [선택지]로 목록을 고침", "Name · form · unit · default · container · unused · order — keys never change", ], OptionAdd: ["옵션 더함", "Add option"], OptionNew: ["새 옵션 {value}", "New option {value}"], FormSelect: ["고르기", "Select"], FormNumber: ["숫자", "Number"], FormText: ["글", "Text"], FormBool: ["예/아니오", "Yes/No"], Yes: ["예", "Yes"], No: ["아니오", "No"], Unit: ["단위", "Unit"], NoDefault: ["기본값 없음", "No default"], Unused: ["안 씀", "Unused"], Choices: ["선택지 {value}", "{value} choices"], ChoiceAdd: ["선택지 더함", "Add choice"], ChoiceNew: ["새 선택지 {value}", "New choice {value}"], ChoiceNone: ["선택지 없음 — 고르기 꼴은 하나 이상", "No choices — select needs at least one"], ChoiceNote: [ "선택지 글이 곧 저장 값 — 이름을 바꾸면 기본값 · 규칙도 같이 바뀜 · 이미 저장한 프로젝트 값은 「지난 정의 값」으로 남음", "Choice text is the stored value — renaming updates defaults and rules here", ], ChoiceDrop: ["빼기", "Remove"], ChoiceDropAsk: [ "선택지 「{value}」 를 뺌 — 기본값 · 규칙에서도 빠짐 · 이미 저장한 프로젝트 값은 「지난 정의 값」으로 남음", "Remove choice “{value}” — also from defaults and rules", ], Shown: ["보이기", "Shown"], RuleValues: ["값(쉼표로 여럿)", "Values (comma separated)"], RuleChoices: ["선택지", "Choices"], LayoutHead: ["배치 격자", "Layout grid"], LayoutNote: [ "B05 · B06 좌측 구조물 칸(두 칸)의 배치 — 옵션마다 줄 · 칸 · 너비 · 기준 측점은 맨 위 한 줄 · 겹치면 빨강 · 안 정한 옵션은 차례대로", "Left panel layout (two columns) — row · column · width per option · overlaps in red", ], GridRow: ["줄", "Row"], GridCol: ["칸", "Col"], GridWidth: ["너비", "Width"], BaseStation: ["기준 측점", "Base station"], BaseStationShow: ["기준 측점 표시", "Show base station"], Shape_길이: ["길이", "Length"], Shape_높이: ["높이", "Height"], Shape_전: ["기준 측점 전", "Before"], Shape_후: ["기준 측점 후", "After"], ShapeMean: ["무엇을 정하는지", "What it controls"], RuleHead: ["규칙", "Rules"], RuleNote: [ "만약 상위 옵션 = 값 → 하위 옵션의 선택지 · 보이기 · 기본값 — 「그대로」 칸은 손대지 않음 · 틀린 줄은 빨강", "If parent = value → child choices · visibility · default", ], RuleNone: ["규칙 없음", "No rules"], RuleAdd: ["규칙 더함", "Add rule"], RuleIf: ["만약", "If"], RuleThen: ["→", "→"], Keep: ["보이기 그대로", "Keep visibility"], Show: ["보임", "Show"], Hide: ["숨김", "Hide"], KeepDefault: ["기본값 그대로", "Keep default"], DefNote: [ "구조물군 · 종류 · 옵션 · 선택지 · 배치 · 그룹 · 규칙 정의 — [저장]하면 판이 하나 오르고 B05 · B06 에 바로 적용 · 지난 판은 이력으로 남음", "Structure definition — Save bumps the version; past versions stay in history", ], Version: ["판 {value}", "Version {value}"], ReadOnly: ["읽기만", "Read only"], SavedVersion: ["저장함 — 판 {value}", "Saved — version {value}"], PastList: ["지난 판", "Past versions"], PastItem: ["판 {value}", "v{value}"], PastNone: ["지난 판 없음", "No past versions"], PastView: ["판 {value} 보는 중 — 읽기만", "Viewing version {value} — read only"], PastBack: ["지금 판으로", "Back to current"], NoOptionKind: [ "이 종류는 옵션이 없음 — 그룹만 만들 수 있음(그룹마다 조합 연결)", "No options — groups only (each links a combo)", ], Off: ["안 쓰는 종류", "Not offered"], Pick: ["왼쪽에서 구조물 종류를 고름", "Pick a structure type on the left"], Detail: ["B06 전용", "B06 only"], Save: ["저장", "Save"], Stale: [ "그 사이 정의가 바뀜 — 새로 받았으니 다시 고쳐 주세요", "Changed meanwhile — reloaded, please edit again", ], Load_Failed: ["구조물 정의를 못 받음 — {value}", "Could not load the definition — {value}"], Failed: ["구조물 정의를 못 저장함 — {value}", "Could not save the definition — {value}"], } as const satisfies Record; export type OptionsTextKey = keyof typeof TEXT; export function to(key: OptionsTextKey, value = ""): string { const entry = TEXT[key]; return (entry[currentLanguageIndex as 0 | 1] ?? entry[0]).replace("{value}", value); }