Files
Aislo/M02_MasterTemplete/StructOptions/M02_SO_Text.ts
T
eomsangdonandClaude Opus 5.5 2471a14a62 feat(M02): 구조물 옵션 정의 = 정의 그룹 꼴 종류도 이름 나무 · 옛 편집기 모든 종류에서 숨김(52-12)
- 명세 없는 종류 = 그룹 제목(그룹.이름) › 칸 이름(옵션 label) › 선택지 이름(종류.이름 `{옵션}={값}` · 값 그대로) · 그룹 밖 칸은 머리 줄 아래
- 칸 더하기 · 빼기 · 꼴 · 필수는 읽기만 · 칸 없는 종류(개거 · 노출형 횡단수로)는 「고칠 이름 없음」 · 종류 이름은 머리 칸
- 옛 편집기(옵션 · 배치 · 그룹 · 규칙 · 기준 측점)는 OLD_EDITOR 거짓으로 숨김(코드 그대로)
- 미리보기 = B05 칸 부품(field · optionControl · 그룹 상자)으로 같은 차례
- B05 · B06 고르기 칸 보기 글 = 정의 이름 표(값 그대로 · 규칙 선택지 · 시설 폼 덧보기 포함)
- 시험: test_m02_so_def_spec 정의 그룹 꼴 더함 · 헬퍼가 이웃 TS 를 읽게 고침 · ui_checks/52-11 에 맹암거 · 바닥막이 · 개거 더함

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UoSr2sqvYtBf1dtQdus88s
2026-10-05 23:59:41 +09:00

142 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.
/* =============================================================================
* 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"],
FormAuto: ["자동", "Auto"],
SpecHead: ["구조물 명세 이름", "Structure spec names"],
SpecNote: [
"제목 › 칸 이름 › 선택지 이름만 고침 — 키(작은 글) · 필수/선택 · 꼴 · 칸 더하기 · 빼기는 읽기만 · [저장]하면 B05 · B06 이 이 이름으로 그림",
"Rename titles › fields › choices only — keys, required/optional, form and adding/removing fields are read-only",
],
SpecLoose: ["그룹 밖 칸", "Fields outside groups"],
SpecNone: ["고칠 이름 없음 — 칸이 없는 종류", "No names to edit — this kind has no fields"],
SpecRequired: ["필수", "Required"],
SpecOptional: ["선택", "Optional"],
SpecPreview: ["미리보기 — B05 · B06 폼", "Preview — B05 · B06 form"],
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<string, readonly [string, string]>;
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);
}