- 자리꼴 점 · 구간 · 터 · 정본 관 지점 · 구조물(키는 툴팁) · 고르기 글 = 부품 짧은 이름(괄호 설명 · 키는 툴팁) · 횡단도 없음 = 「안 만듦」 · 「벽 스윕」 → 「벽」 · 종류 키는 툴팁 - 검사 글: 「형상이 「없음」이면 횡단도도 「안 만듦」」 · 부품 짧은 이름 · 칸 이름 · 종류 이름(M02_SO_Def_Check.ts = M02_SO_Check.py) - 부품 탭: 읽는 칸 = 그 부품을 쓰는 종류의 칸 이름(단위) · 표 줄바꿈(table-layout fixed) - 한눈 표 형상칸 「기본 형태」 = 그림 형태 고르기(REVET_FORMS) - [저장] 켬 = 저장할 꼴(tidy · 목록 짝 enabled)끼리 지금 판과 다를 때만(M02_SO_Def_Reflect.differs) - 시험: 322-2 검사 글 · 되돌림 견본 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ji4nuyLVHcxrXWHTdb5nRD
185 lines
9.4 KiB
TypeScript
185 lines
9.4 KiB
TypeScript
/* =============================================================================
|
||
* 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"],
|
||
TabTable: ["한눈 표", "Overview"],
|
||
TabKinds: ["종류별", "By type"],
|
||
TabParts: ["부품", "Parts"],
|
||
TableNote: [
|
||
"종류마다 B05 · B06 반영 한 줄 — 목록 · 횡단도 · 카드 이름 · 형상 · 3D 는 코드 부품 중에서 고름 · 흐린 칸 = 처음 값(기본) · 진한 칸 = 바꾼 값 · 자리꼴 · 정본은 만든 뒤 고정",
|
||
"One row per type — pick parts for list · cross section · card name · shape · 3D; faded = default, bold = changed",
|
||
],
|
||
ColFamily: ["군", "Family"],
|
||
ColKind: ["종류", "Type"],
|
||
ColName: ["이름", "Name"],
|
||
ColList: ["목록", "List"],
|
||
ColPlacement: ["자리꼴", "Placement"],
|
||
ColOwner: ["정본", "Owner"],
|
||
ColStation: ["횡단도", "Cross section"],
|
||
ColTitle: ["카드 이름", "Card name"],
|
||
ColShape: ["형상", "Shape"],
|
||
ColShapeOpts: ["형상칸", "Shape fields"],
|
||
ColColor: ["알약 색", "Pill color"],
|
||
Col3D: ["3D", "3D"],
|
||
ColCheck: ["검사", "Check"],
|
||
ListBoth: ["B05 · B06", "B05 · B06"],
|
||
ListB06: ["B06 만", "B06 only"],
|
||
ListHidden: ["안 보임", "Hidden"],
|
||
OffNone: ["없음", "None"],
|
||
StationNone: ["안 만듦", "Not made"],
|
||
TitleName: ["종류 이름", "Type name"],
|
||
Default: ["기본", "Default"],
|
||
Fixed: ["고정", "Fixed"],
|
||
Reset: ["처음 값으로", "Reset"],
|
||
Ok: ["통과", "OK"],
|
||
WallForm: ["기본 형태", "Default form"],
|
||
Weep: ["물빼기", "Weep holes"],
|
||
ReflectHead: ["B05 · B06 반영", "B05 · B06 use"],
|
||
ShownCol: ["보임", "Shown"],
|
||
CannotHide: ["못 숨김", "Required"],
|
||
PartsNote: [
|
||
"코드가 그리는 방법(부품) — 끄면 그 부품을 쓰는 종류는 그 갈래가 없음으로 · 읽는 칸 = 그 부품이 쓰는 옵션(숨기지 못함)",
|
||
"Code drawing parts — turning a part off makes its users fall back to none; read fields cannot be hidden",
|
||
],
|
||
PartRead: ["읽는 칸", "Reads"],
|
||
PartFits: ["맞는 자리꼴 · 정본", "Fits"],
|
||
PartUsers: ["쓰는 종류", "Used by"],
|
||
PartOn: ["켬", "On"],
|
||
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);
|
||
}
|