import type { AppLocale } from "../locale"; import { DEFAULT_LOCALE } from "../locale"; export type EditorFormCheckboxPanelMessages = { sectionTitle: string; groupTitleTypeLabel: string; groupTitleTypeOptionText: string; groupTitleTypeOptionImage: string; groupTitleDisplayLabel: string; groupTitleDisplayOptionVisible: string; groupTitleDisplayOptionHidden: string; layoutLabel: string; layoutOptionStacked: string; layoutOptionInline: string; optionLayoutLabel: string; optionLayoutOptionStacked: string; optionLayoutOptionInline: string; labelGapLabel: string; groupTitleLabel: string; submitKeyLabel: string; optionsLabel: string; addOptionButtonLabel: string; optionLabelPlaceholder: string; optionValuePlaceholder: string; optionImageSourceLabel: string; optionImageSourceOptionUrl: string; optionImageSourceOptionUpload: string; optionImageUrlPlaceholder: string; optionImageUploadLabel: string; optionImageUploadAria: string; groupTitleImageSourceLabel: string; groupTitleImageSourceOptionUrl: string; groupTitleImageSourceOptionUpload: string; groupTitleImageUrlLabel: string; groupTitleImageUploadLabel: string; groupTitleImageUploadAria: string; requiredNoticeText: string; styleSectionTitle: string; textSizeLabel: string; textSizeUnitLabel: string; lineHeightLabel: string; lineHeightUnitLabel: string; letterSpacingLabel: string; letterSpacingUnitLabel: string; widthModeLabel: string; widthModeOptionAuto: string; widthModeOptionFull: string; widthModeOptionFixed: string; fixedWidthLabel: string; fixedWidthUnitLabel: string; paddingXLabel: string; paddingXUnitLabel: string; paddingYLabel: string; paddingYUnitLabel: string; optionGapLabel: string; optionGapUnitLabel: string; textColorLabel: string; textColorPickerAria: string; textColorHexAria: string; fillColorLabel: string; fillColorPickerAria: string; fillColorHexAria: string; strokeColorLabel: string; strokeColorPickerAria: string; strokeColorHexAria: string; borderRadiusLabel: string; borderRadiusPresetNone: string; borderRadiusPresetSmall: string; borderRadiusPresetMedium: string; borderRadiusPresetLarge: string; borderRadiusPresetFull: string; }; const EDITOR_FORM_CHECKBOX_PANEL_MESSAGES: Record = { en: { sectionTitle: "Checkbox field", groupTitleTypeLabel: "Group title type", groupTitleTypeOptionText: "Text", groupTitleTypeOptionImage: "Image", groupTitleDisplayLabel: "Group title display mode", groupTitleDisplayOptionVisible: "Visible (default)", groupTitleDisplayOptionHidden: "Hidden", layoutLabel: "Layout", layoutOptionStacked: "Vertical (default)", layoutOptionInline: "Horizontal (inline)", optionLayoutLabel: "Option layout", optionLayoutOptionStacked: "Vertical (default)", optionLayoutOptionInline: "Horizontal (inline)", labelGapLabel: "Label/field gap (px)", groupTitleLabel: "Group title", submitKeyLabel: "Submit key", optionsLabel: "Options", addOptionButtonLabel: "Add option", optionLabelPlaceholder: "Label", optionValuePlaceholder: "Value (value)", optionImageSourceLabel: "Option image source", optionImageSourceOptionUrl: "URL", optionImageSourceOptionUpload: "File upload", optionImageUrlPlaceholder: "Option image URL (optional)", optionImageUploadLabel: "Option image file upload", optionImageUploadAria: "Option image file upload", groupTitleImageSourceLabel: "Group title image source", groupTitleImageSourceOptionUrl: "URL", groupTitleImageSourceOptionUpload: "File upload", groupTitleImageUrlLabel: "Group title image URL", groupTitleImageUploadLabel: "Group title image file upload", groupTitleImageUploadAria: "Group title image file upload", requiredNoticeText: "Required state is configured in the form controller.", styleSectionTitle: "Field style", textSizeLabel: "Checkbox text size (px)", textSizeUnitLabel: "(px)", lineHeightLabel: "Checkbox line height (px)", lineHeightUnitLabel: "(px)", letterSpacingLabel: "Checkbox letter spacing (px)", letterSpacingUnitLabel: "(px)", widthModeLabel: "Field width", widthModeOptionAuto: "Auto", widthModeOptionFull: "Full width", widthModeOptionFixed: "Fixed value", fixedWidthLabel: "Field fixed width", fixedWidthUnitLabel: "(px)", paddingXLabel: "Checkbox horizontal padding (px)", paddingXUnitLabel: "(px)", paddingYLabel: "Checkbox vertical padding (px)", paddingYUnitLabel: "(px)", optionGapLabel: "Checkbox option gap (px)", optionGapUnitLabel: "(px)", textColorLabel: "Text color", textColorPickerAria: "Checkbox text color picker", textColorHexAria: "Checkbox text color HEX", fillColorLabel: "Background color", fillColorPickerAria: "Checkbox background color picker", fillColorHexAria: "Checkbox background color HEX", strokeColorLabel: "Border color", strokeColorPickerAria: "Checkbox border color picker", strokeColorHexAria: "Checkbox border color HEX", borderRadiusLabel: "Field border radius", borderRadiusPresetNone: "None", borderRadiusPresetSmall: "Small", borderRadiusPresetMedium: "Medium", borderRadiusPresetLarge: "Large", borderRadiusPresetFull: "Fully rounded", }, ko: { sectionTitle: "체크박스 필드", groupTitleTypeLabel: "그룹 타이틀 타입", groupTitleTypeOptionText: "텍스트", groupTitleTypeOptionImage: "이미지", groupTitleDisplayLabel: "그룹 타이틀 표시 방식", groupTitleDisplayOptionVisible: "표시 (기본)", groupTitleDisplayOptionHidden: "숨김", layoutLabel: "레이아웃", layoutOptionStacked: "세로 (기본)", layoutOptionInline: "가로 (인라인)", optionLayoutLabel: "옵션 레이아웃", optionLayoutOptionStacked: "세로 (기본)", optionLayoutOptionInline: "가로 (인라인)", labelGapLabel: "라벨/필드 간격 (px)", groupTitleLabel: "그룹 타이틀", submitKeyLabel: "전송 키", optionsLabel: "옵션", addOptionButtonLabel: "옵션 추가", optionLabelPlaceholder: "라벨", optionValuePlaceholder: "값(value)", optionImageSourceLabel: "옵션 이미지 소스", optionImageSourceOptionUrl: "URL", optionImageSourceOptionUpload: "파일 업로드", optionImageUrlPlaceholder: "옵션 이미지 URL (선택)", optionImageUploadLabel: "옵션 이미지 파일 업로드", optionImageUploadAria: "옵션 이미지 파일 업로드", groupTitleImageSourceLabel: "그룹 타이틀 이미지 소스", groupTitleImageSourceOptionUrl: "URL", groupTitleImageSourceOptionUpload: "파일 업로드", groupTitleImageUrlLabel: "그룹 타이틀 이미지 URL", groupTitleImageUploadLabel: "그룹 타이틀 이미지 파일 업로드", groupTitleImageUploadAria: "그룹 타이틀 이미지 파일 업로드", requiredNoticeText: "필수 여부는 폼 컨트롤러에서 설정합니다.", styleSectionTitle: "필드 스타일", textSizeLabel: "체크박스 텍스트 크기 (px)", textSizeUnitLabel: "(px)", lineHeightLabel: "체크박스 줄간격 (px)", lineHeightUnitLabel: "(px)", letterSpacingLabel: "체크박스 자간 (px)", letterSpacingUnitLabel: "(px)", widthModeLabel: "필드 너비", widthModeOptionAuto: "자동", widthModeOptionFull: "전체 폭", widthModeOptionFixed: "고정 값", fixedWidthLabel: "필드 고정 너비", fixedWidthUnitLabel: "(px)", paddingXLabel: "체크박스 가로 패딩 (px)", paddingXUnitLabel: "(px)", paddingYLabel: "체크박스 세로 패딩 (px)", paddingYUnitLabel: "(px)", optionGapLabel: "체크박스 옵션 간격 (px)", optionGapUnitLabel: "(px)", textColorLabel: "텍스트 색상", textColorPickerAria: "체크박스 텍스트 색상 피커", textColorHexAria: "체크박스 텍스트 색상 HEX", fillColorLabel: "배경 색상", fillColorPickerAria: "체크박스 배경 색상 피커", fillColorHexAria: "체크박스 배경 색상 HEX", strokeColorLabel: "테두리 색상", strokeColorPickerAria: "체크박스 테두리 색상 피커", strokeColorHexAria: "체크박스 테두리 색상 HEX", borderRadiusLabel: "필드 모서리 둥글기", borderRadiusPresetNone: "없음", borderRadiusPresetSmall: "작게", borderRadiusPresetMedium: "보통", borderRadiusPresetLarge: "크게", borderRadiusPresetFull: "완전 둥글게", }, }; export function getEditorFormCheckboxPanelMessages( locale: AppLocale | null | undefined, ): EditorFormCheckboxPanelMessages { const key = (locale ?? DEFAULT_LOCALE) as AppLocale; return EDITOR_FORM_CHECKBOX_PANEL_MESSAGES[key] ?? EDITOR_FORM_CHECKBOX_PANEL_MESSAGES[DEFAULT_LOCALE]; }