import type { AppLocale } from "../locale"; import { DEFAULT_LOCALE } from "../locale"; export type EditorSectionPanelMessages = { backgroundColorLabel: string; backgroundColorPickerAria: string; backgroundColorHexAria: string; backgroundImageSourceLabel: string; backgroundImageSourceAria: string; backgroundImageSourceOptionNone: string; backgroundImageSourceOptionUrl: string; backgroundImageSourceOptionUpload: string; backgroundImageUrlLabel: string; backgroundImageUrlAria: string; backgroundImageUploadLabel: string; backgroundImageUploadAria: string; backgroundImagePositionModeLabel: string; backgroundImagePositionModeAria: string; backgroundImagePositionModeOptionPreset: string; backgroundImagePositionModeOptionCustom: string; backgroundImageSizeLabel: string; backgroundImageSizeAria: string; backgroundImagePositionLabel: string; backgroundImagePositionAria: string; backgroundImagePositionOptionCenter: string; backgroundImagePositionOptionTop: string; backgroundImagePositionOptionBottom: string; backgroundImagePositionOptionLeft: string; backgroundImagePositionOptionRight: string; backgroundImagePositionXLabel: string; backgroundImagePositionYLabel: string; backgroundImageRepeatLabel: string; backgroundImageRepeatAria: string; backgroundImageRepeatOptionNone: string; backgroundImageRepeatOptionBoth: string; backgroundImageRepeatOptionX: string; backgroundImageRepeatOptionY: string; backgroundVideoSourceLabel: string; backgroundVideoSourceAria: string; backgroundVideoSourceOptionNone: string; backgroundVideoSourceOptionUrl: string; backgroundVideoSourceOptionUpload: string; backgroundVideoUrlLabel: string; backgroundVideoUrlAria: string; backgroundVideoUploadLabel: string; backgroundVideoUploadAria: string; paddingYLabel: string; paddingYUnitLabel: string; paddingYPresetExtraTight: string; paddingYPresetTight: string; paddingYPresetNormal: string; paddingYPresetRelaxed: string; paddingYPresetExtraRelaxed: string; layoutSectionTitle: string; columnLayoutLabel: string; columnLayoutAria: string; columnLayoutOptionOneFull: string; columnLayoutOptionTwoEqual: string; columnLayoutOptionTwoOneTwo: string; columnLayoutOptionTwoTwoOne: string; columnLayoutOptionThreeEqual: string; columnLayoutOptionCustom: string; maxWidthLabel: string; maxWidthUnitLabel: string; maxWidthPresetExtraNarrow: string; maxWidthPresetNarrow: string; maxWidthPresetNormal: string; maxWidthPresetWide: string; maxWidthPresetExtraWide: string; gapXLabel: string; gapXUnitLabel: string; gapXPresetZero: string; gapXPresetTight: string; gapXPresetNormal: string; gapXPresetRelaxed: string; gapXPresetExtraRelaxed: string; gapXPresetMax: string; alignItemsLabel: string; alignItemsAria: string; alignItemsOptionTop: string; alignItemsOptionCenter: string; alignItemsOptionBottom: string; }; const EDITOR_SECTION_PANEL_MESSAGES: Record = { en: { backgroundColorLabel: "Background color", backgroundColorPickerAria: "Section background color picker", backgroundColorHexAria: "Section background color HEX", backgroundImageSourceLabel: "Background image source", backgroundImageSourceAria: "Background image source", backgroundImageSourceOptionNone: "None", backgroundImageSourceOptionUrl: "URL", backgroundImageSourceOptionUpload: "File upload", backgroundImageUrlLabel: "Background image URL", backgroundImageUrlAria: "Background image URL", backgroundImageUploadLabel: "Background image file upload", backgroundImageUploadAria: "Background image file upload", backgroundImagePositionModeLabel: "Background image position mode", backgroundImagePositionModeAria: "Background image position mode", backgroundImagePositionModeOptionPreset: "Preset", backgroundImagePositionModeOptionCustom: "Custom (X/Y)", backgroundImageSizeLabel: "Background image size", backgroundImageSizeAria: "Background image size", backgroundImagePositionLabel: "Background image position", backgroundImagePositionAria: "Background image position", backgroundImagePositionOptionCenter: "Center", backgroundImagePositionOptionTop: "Top", backgroundImagePositionOptionBottom: "Bottom", backgroundImagePositionOptionLeft: "Left", backgroundImagePositionOptionRight: "Right", backgroundImagePositionXLabel: "Background image horizontal position", backgroundImagePositionYLabel: "Background image vertical position", backgroundImageRepeatLabel: "Background image repeat", backgroundImageRepeatAria: "Background image repeat", backgroundImageRepeatOptionNone: "No repeat", backgroundImageRepeatOptionBoth: "Repeat (x/y)", backgroundImageRepeatOptionX: "Repeat horizontally", backgroundImageRepeatOptionY: "Repeat vertically", backgroundVideoSourceLabel: "Background video source", backgroundVideoSourceAria: "Background video source", backgroundVideoSourceOptionNone: "None", backgroundVideoSourceOptionUrl: "URL", backgroundVideoSourceOptionUpload: "File upload", backgroundVideoUrlLabel: "Background video URL", backgroundVideoUrlAria: "Background video URL", backgroundVideoUploadLabel: "Background video file upload", backgroundVideoUploadAria: "Background video file upload", paddingYLabel: "Vertical padding", paddingYUnitLabel: "(px)", paddingYPresetExtraTight: "Very tight", paddingYPresetTight: "Tight", paddingYPresetNormal: "Normal", paddingYPresetRelaxed: "Wide", paddingYPresetExtraRelaxed: "Very wide", layoutSectionTitle: "Section layout", columnLayoutLabel: "Section column layout", columnLayoutAria: "Section column layout", columnLayoutOptionOneFull: "1 column (1/1)", columnLayoutOptionTwoEqual: "2 columns (1/2 - 1/2)", columnLayoutOptionTwoOneTwo: "2 columns (1/3 - 2/3)", columnLayoutOptionTwoTwoOne: "2 columns (2/3 - 1/3)", columnLayoutOptionThreeEqual: "3 columns (1/3 - 1/3 - 1/3)", columnLayoutOptionCustom: "Custom", maxWidthLabel: "Max width", maxWidthUnitLabel: "(px)", maxWidthPresetExtraNarrow: "Very narrow", maxWidthPresetNarrow: "Narrow", maxWidthPresetNormal: "Normal", maxWidthPresetWide: "Wide", maxWidthPresetExtraWide: "Very wide", gapXLabel: "Column gap", gapXUnitLabel: "(px)", gapXPresetZero: "0", gapXPresetTight: "Tight", gapXPresetNormal: "Normal", gapXPresetRelaxed: "Wide", gapXPresetExtraRelaxed: "Very wide", gapXPresetMax: "Max", alignItemsLabel: "Column vertical alignment", alignItemsAria: "Section column vertical alignment", alignItemsOptionTop: "Top", alignItemsOptionCenter: "Center", alignItemsOptionBottom: "Bottom", }, ko: { backgroundColorLabel: "배경 색상", backgroundColorPickerAria: "섹션 배경 색상 선택", backgroundColorHexAria: "섹션 배경 색상 HEX 입력", backgroundImageSourceLabel: "배경 이미지 소스", backgroundImageSourceAria: "배경 이미지 소스", backgroundImageSourceOptionNone: "없음", backgroundImageSourceOptionUrl: "URL", backgroundImageSourceOptionUpload: "파일 업로드", backgroundImageUrlLabel: "배경 이미지 URL", backgroundImageUrlAria: "배경 이미지 URL", backgroundImageUploadLabel: "배경 이미지 파일 업로드", backgroundImageUploadAria: "배경 이미지 파일 업로드", backgroundImagePositionModeLabel: "배경 이미지 위치 모드", backgroundImagePositionModeAria: "배경 이미지 위치 모드", backgroundImagePositionModeOptionPreset: "프리셋", backgroundImagePositionModeOptionCustom: "커스텀 (X/Y)", backgroundImageSizeLabel: "배경 이미지 크기", backgroundImageSizeAria: "배경 이미지 크기", backgroundImagePositionLabel: "배경 이미지 위치", backgroundImagePositionAria: "배경 이미지 위치", backgroundImagePositionOptionCenter: "가운데", backgroundImagePositionOptionTop: "위", backgroundImagePositionOptionBottom: "아래", backgroundImagePositionOptionLeft: "왼쪽", backgroundImagePositionOptionRight: "오른쪽", backgroundImagePositionXLabel: "배경 이미지 가로 위치", backgroundImagePositionYLabel: "배경 이미지 세로 위치", backgroundImageRepeatLabel: "배경 이미지 반복", backgroundImageRepeatAria: "배경 이미지 반복", backgroundImageRepeatOptionNone: "반복 없음", backgroundImageRepeatOptionBoth: "가로/세로 반복", backgroundImageRepeatOptionX: "가로 반복", backgroundImageRepeatOptionY: "세로 반복", backgroundVideoSourceLabel: "배경 비디오 소스", backgroundVideoSourceAria: "배경 비디오 소스", backgroundVideoSourceOptionNone: "없음", backgroundVideoSourceOptionUrl: "URL", backgroundVideoSourceOptionUpload: "파일 업로드", backgroundVideoUrlLabel: "배경 비디오 URL", backgroundVideoUrlAria: "배경 비디오 URL", backgroundVideoUploadLabel: "배경 비디오 파일 업로드", backgroundVideoUploadAria: "배경 비디오 파일 업로드", paddingYLabel: "세로 패딩", paddingYUnitLabel: "(px)", paddingYPresetExtraTight: "매우 좁게", paddingYPresetTight: "좁게", paddingYPresetNormal: "보통", paddingYPresetRelaxed: "넓게", paddingYPresetExtraRelaxed: "아주 넓게", layoutSectionTitle: "섹션 레이아웃", columnLayoutLabel: "섹션 컬럼 레이아웃", columnLayoutAria: "섹션 컬럼 레이아웃", columnLayoutOptionOneFull: "1열 (1/1)", columnLayoutOptionTwoEqual: "2열 (1/2 - 1/2)", columnLayoutOptionTwoOneTwo: "2열 (1/3 - 2/3)", columnLayoutOptionTwoTwoOne: "2열 (2/3 - 1/3)", columnLayoutOptionThreeEqual: "3열 (1/3 - 1/3 - 1/3)", columnLayoutOptionCustom: "직접 조정", maxWidthLabel: "최대 폭", maxWidthUnitLabel: "(px)", maxWidthPresetExtraNarrow: "매우 좁게", maxWidthPresetNarrow: "좁게", maxWidthPresetNormal: "보통", maxWidthPresetWide: "넓게", maxWidthPresetExtraWide: "아주 넓게", gapXLabel: "컬럼 간 간격", gapXUnitLabel: "(px)", gapXPresetZero: "0", gapXPresetTight: "좁게", gapXPresetNormal: "보통", gapXPresetRelaxed: "넓게", gapXPresetExtraRelaxed: "아주 넓게", gapXPresetMax: "최대", alignItemsLabel: "컬럼 세로 정렬", alignItemsAria: "섹션 컬럼 세로 정렬", alignItemsOptionTop: "위", alignItemsOptionCenter: "가운데", alignItemsOptionBottom: "아래", }, }; export function getEditorSectionPanelMessages( locale: AppLocale | null | undefined, ): EditorSectionPanelMessages { const key = (locale ?? DEFAULT_LOCALE) as AppLocale; return EDITOR_SECTION_PANEL_MESSAGES[key] ?? EDITOR_SECTION_PANEL_MESSAGES[DEFAULT_LOCALE]; }