export const space = { sessionGoal: { label: '이번 25분, 딱 한 가지', required: '(필수)', placeholder: '예: 계약서 1페이지 정리', hint: '크게 말고, 바로 다음 한 조각.', }, timerHud: { actions: [ { id: 'start', label: '시작', icon: '▶' }, { id: 'pause', label: '일시정지', icon: '⏸' }, { id: 'reset', label: '리셋', icon: '↺' }, ], readyMode: 'Ready', focusMode: 'Focus', breakMode: 'Break', goalFallback: '이번 한 조각을 설정해 주세요.', goalPrefix: '이번 한 조각 · ', completeButton: '완료', }, focusHud: { goalFallback: '집중을 시작해요.', goalToast: (goal: string) => `이번 한 조각 · ${goal}`, restReminder: '5분이 지났어요. 다음 한 조각으로 돌아와요.', intentLabel: '이번 세션 목표', microStepLabel: '지금 할 한 조각', intentExpandAriaLabel: '목표 카드 펼치기', refocusButton: '목표 수정', intentEditLabel: '수정', refocusTitle: '다시 방향 잡기', refocusDescription: '딱 한 줄만 다듬고 다시 시작해요.', refocusApply: '적용', refocusApplyAndResume: '적용하고 이어가기', refocusApplying: '적용 중…', refocusSaved: '이번 세션 방향을 다듬었어요.', refocusOpenOnPause: '잠시 멈춘 김에 다음 한 조각을 다시 맞춰볼까요?', pausePromptEyebrow: '잠깐 멈춤', pausePromptTitle: '다시 시작할 한 줄만 정하면 돼요.', pausePromptDescription: '멈춘 이유를 정리하지 않아도 괜찮아요. 바로 손을 올릴 시작점만 다시 맞춥니다.', pausePromptRefocus: '한 조각 다시 잡기', pausePromptRefocusHint: '목표는 그대로 두고, 지금 다시 시작할 한 줄만 정리해요.', pausePromptKeep: '바로 이어가기', pausePromptKeepHint: '지금 방향을 유지한 채, 멈춘 자리에서 다시 시작해요.', pausePromptFinish: '여기서 마무리하기', pausePromptFinishHint: '다시 이어가기보다, 지금 블록을 여기서 조용히 닫습니다.', returnPromptEyebrow: '다시 돌아왔어요', returnPromptFocusTitle: '흐름은 아직 남아 있어요.', returnPromptFocusDescription: '멈춘 자리에서 바로 이어가거나, 다시 시작할 한 조각만 조용히 다듬을 수 있어요.', returnPromptBreakTitle: '자리를 비운 사이 쉬는 시간이 시작됐어요.', returnPromptBreakDescription: 'break를 그대로 이어가거나, 다음 블록으로 부드럽게 넘어갈 수 있어요.', returnPromptContinue: '멈춘 자리에서 이어가기', returnPromptContinueHint: '타이머와 현재 흐름을 그대로 두고 다시 집중으로 복귀합니다.', returnPromptRest: '쉬기 이어가기', returnPromptRestHint: '이미 시작된 break를 그대로 두고, 조금 더 천천히 숨을 고릅니다.', returnPromptNext: '다음 블록 이어가기', returnPromptNextHint: '다음 한 조각을 정하고, 같은 흐름 안에서 부드럽게 이어갑니다.', returnPromptRefocus: '한 조각 다시 잡기', returnPromptRefocusHint: '왜 멈췄는지는 건너뛰고, 지금 다시 시작할 한 줄만 남깁니다.', returnPromptFinish: '여기서 마무리하기', returnPromptFinishHint: '이 흐름은 여기서 닫고, 다음 진입은 가볍게 남겨둡니다.', microStepCompleteAriaLabel: '현재 한 조각 완료', microStepPromptEyebrow: '다음 단계', microStepPromptTitle: '바로 이어서 할 다음 단계가 있나요?', microStepPromptDescription: '있다면 한 줄로 적고, 없다면 목표만 유지한 채 계속할 수 있어요.', microStepPromptKeep: '목표만 두고 계속하기', microStepPromptKeepHint: '다음 단계는 비워두고, 같은 목표 안에서 이어서 집중해요.', microStepPromptDefine: '다음 단계 적기', microStepPromptDefineHint: '바로 손을 움직일 수 있는 가장 작은 다음 행동을 한 줄로 남겨요.', microStepPromptFinish: '이 목표는 여기서 마무리하기', microStepPromptFinishHint: '다음 단계를 늘리지 않고, 지금 블록을 깔끔하게 닫습니다.', microStepCleared: '지금 할 한 조각을 비우고 목표만 유지해요.', completeAction: '이번 목표 완료', }, goalComplete: { suggestions: ['리뷰 코멘트 2개 처리', '문서 1문단 다듬기', '이슈 1개 정리', '메일 2개 회신'], placeholderFallback: '다음 한 조각을 적어보세요', placeholderExample: (goal: string) => `예: ${goal}`, title: '이 블록을 어떻게 이어갈까요?', description: '다음으로 이어가기, 잠시 비우기, 여기서 마무리하기 중 하나만 고르면 돼요.', timerTitle: '시간이 끝났어요. 이 목표를 어떻게 할까요?', timerDescription: '여기서 완료하고 닫거나, 10분 더 이어서 마무리할 수 있어요.', nextTitle: '좋아요. 다음 한 조각만 정해요.', nextDescription: '너무 크게 잡지 말고, 바로 손을 올릴 한 줄만 남겨요.', currentGoalLabel: '방금 끝낸 블록', nextGoalLabel: '이어갈 다음 블록', chooseNextButton: '다음 블록 이어가기', chooseNextDescription: '다음 한 조각을 정하고 같은 흐름 안에서 계속 갑니다.', backButton: '돌아가기', closeAriaLabel: '닫기', finishButton: '여기서 마무리하기', finishDescription: '이 블록은 여기서 닫고, 다음 진입은 가볍게 남겨둡니다.', timerFinishButton: '완료하고 종료하기', timerFinishDescription: '이 목표는 여기서 끝냈다고 기록하고 세션을 닫습니다.', timerFinishPending: '종료 중…', restButton: '잠시 비우기', restDescription: '이 블록은 아직 닫지 않고, 잠깐 멈춘 뒤 돌아오라고 알려드려요.', extendButton: '10분 더', extendDescription: '지금 흐름을 그대로 두고 10분만 더 이어갑니다.', extendPending: '10분 추가 중…', confirmButton: '다음 목표로 바로 시작', confirmPending: '시작 중…', finishPending: '마무리 중…', }, completionResult: { eyebrow: 'SESSION COMPLETE', title: '이번 세션을 조용히 닫아둘게요.', description: '얼마나 집중했는지, 무엇을 끝냈는지, 생각 캡슐에 남긴 것까지 한 번에 정리해둡니다.', focusedLabel: '집중한 시간', focusedValue: (minutes: number) => `${minutes}분`, goalLabel: '완료한 목표', thoughtsLabel: '이번 세션 생각 캡슐', thoughtCount: (count: number) => `${count}개`, confirmButton: '확인하고 돌아가기', }, endSession: { trigger: 'END SESSION', eyebrow: 'END SESSION', title: '이번 목표를 끝냈나요?', description: '이 블록에 맞는 길을 고르면, 세션을 닫을 때 결과를 요약해서 보여준 뒤 앱 입구로 돌아갑니다.', goalLabel: '현재 목표', finishedTitle: '좋아요. 이 블록을 어떻게 닫을까요?', finishedDescription: '다음 블록을 바로 열거나, 이 세션을 여기서 조용히 닫을 수 있어요.', unfinishedTitle: '괜찮아요. 이 세션을 어떻게 할까요?', unfinishedDescription: '목표를 다 끝내지 못했어도, 이 세션은 여기서 닫을 수 있어요.', finishedAnswer: '네, 끝냈어요', unfinishedAnswer: '아직 아니에요', nextBlockButton: '다음 블록', finishHereButton: '여기서 마무리하기', endHereButton: '세션 종료하기', backButton: '돌아가기', nextGoalLabel: '다음 블록', nextGoalPlaceholder: '예: 여행 예산 정리하기', cancelButton: '계속 집중하기', confirmButton: '종료하기', confirmPending: '종료 중…', nextGoalConfirmButton: '다음 블록 시작', }, controlCenter: { sectionTitles: { background: 'Background', time: 'Time', sound: 'Sound', packs: 'Session OS', }, packsDescription: 'plan · ritual · review', recommendation: (soundLabel: string, timerLabel: string) => `추천: ${soundLabel} · ${timerLabel}`, recommendationHint: '추천 조합은 참고 정보로만 제공돼요.', autoHideTitle: '컨트롤 자동 숨김', autoHideDescription: '입력이 없으면 잠시 후 패널을 닫아요.', autoHideAriaLabel: '컨트롤 자동 숨김', sideSheetSubtitle: '배경 · 타이머 · 사운드와 Session OS 진입점을 그 자리에서 바꿔요.', quickControlsTitle: 'Quick Controls', }, toolsDock: { notesButton: 'Notes', popoverCloseAria: '팝오버 닫기', planPro: 'PRO', planNormal: 'FREE', inboxSaved: '인박스에 저장됨', undo: '실행취소', inboxSaveUndone: '저장 취소됨', deleted: '삭제됨', deleteUndone: '삭제를 취소했어요.', emptyToClear: '비울 항목이 없어요.', clearedAll: '모두 비워짐', restored: '복원했어요.', normalPlanInfo: 'FREE 플랜 사용 중 · Calm Session OS PRO에서 다중 큐와 주간 리뷰가 열려요.', proFeatureLocked: (source: string) => `${source}은(는) Calm Session OS PRO 기능이에요.`, proFeaturePending: (label: string) => `${label} 준비 중(더미)`, purchaseMock: 'PRO 전환됨', manageSubscriptionMock: '구독 관리(더미)', restorePurchaseMock: '구매 복원(더미)', featureLabels: { dailyPlan: 'Daily Focus Plan', rituals: 'Rituals', weeklyReview: 'Weekly Review', }, utilityPanelTitle: { 'control-center': 'Quick Controls', inbox: '인박스', paywall: 'Calm Session OS PRO', 'manage-plan': '플랜 관리', }, }, quickNotes: { title: '떠오른 생각을 잠깐 주차해요', placeholder: '떠오른 생각을 잠깐 주차…', submit: '저장', hint: '나중에 인박스에서 정리해요.', }, quickSound: { currentSound: '현재 사운드', muteAriaLabel: '음소거', unmuteAriaLabel: '음소거 해제', volumeAriaLabel: '사운드 볼륨', quickSwitch: '빠른 전환', }, soundPresetControls: { preset: 'Preset', mixerOpen: 'Mixer 펼치기', mixerClose: 'Mixer 접기', mock: '더미', masterVolume: '마스터 볼륨', mute: '뮤트', muteToggleAriaLabel: '마스터 뮤트 토글', trackLabels: { white: 'White', rain: 'Rain', cafe: 'Cafe', wave: 'Wave', fan: 'Fan', }, }, inbox: { empty: '지금은 비어 있어요. 집중 중 떠오른 생각을 여기로 주차할 수 있어요.', complete: '완료', completed: '완료됨', delete: '삭제', readOnly: '나중에 모아보는 읽기 전용 인박스', clearAll: '모두 비우기', clearConfirmTitle: '정말 인박스를 비울까요?', clearConfirmDescription: '실수라면 토스트에서 실행취소할 수 있어요.', clearButton: '비우기', openInboxAriaLabel: '인박스 열기', openInboxTitle: '인박스', }, rightRail: { openQuickControlsAriaLabel: 'Quick Controls 열기', openQuickControlsTitle: 'Quick Controls', }, paywall: { points: ['오늘의 집중 큐를 여러 개 운영', 'ritual/template를 무제한 저장', '주간 리뷰와 조용한 accountability 열기'], title: 'PRO는 더 많이 꾸미는 플랜이 아니라, 더 잘 이어가는 플랜이에요.', description: 'Daily plan, rituals, weekly review를 한 흐름으로 여는 더미 결제 시트입니다.', later: '나중에', startPro: 'PRO 시작하기', manageTitle: 'Calm Session OS PRO 관리', manageDescription: '결제/복원은 더미 동작이지만 유료 가치는 plan · ritual · review 흐름에 맞춰 정리했습니다.', openSubscription: '구독 관리 열기', restorePurchase: '구매 복원', }, statsPanel: { description: '오늘 흐름과 최근 7일 리듬을 가볍게 확인하세요.', graphPlaceholder: '그래프 플레이스홀더', }, settingsPanel: { reduceMotion: 'Reduce Motion', reduceMotionDescription: '화면 전환을 조금 더 차분하게 표시합니다.', background: '배경', backgroundDescription: '몰입 중에도 배경 scene을 바꿀 수 있어요.', timerPreset: '타이머 프리셋', timerPresetDescription: '기본 프리셋만 빠르게 고를 수 있어요.', defaultPreset: '기본 프리셋', }, workspace: { readyToStart: '준비 완료 · 시작 버튼을 눌러 집중을 시작해요.', startFailed: '세션을 시작하지 못했어요. 잠시 후 다시 시도해 주세요.', resumeFailed: '세션을 다시 시작하지 못했어요.', abandonFailed: '세션 종료를 완료하지 못했어요.', pauseFailed: '세션을 일시정지하지 못했어요.', restartFailed: '현재 페이즈를 다시 시작하지 못했어요.', restarted: '현재 페이즈를 처음부터 다시 시작했어요.', intentSyncFailed: '현재 세션 방향을 서버에 반영하지 못했어요.', goalCompleteSyncFailed: '현재 세션 완료를 서버에 반영하지 못했어요.', timerCompleteSyncFailed: '타이머 종료 후 세션 마무리를 반영하지 못했어요.', timerExtendFailed: '10분 추가를 반영하지 못했어요.', timerExtendConflict: '다른 창에서 이미 시간이 연장됐어요.', timerExtended: (minutes: number) => `${minutes}분을 더 이어갑니다.`, nextGoalStarted: '다음 한 조각을 바로 시작했어요.', selectionPreferenceSaveFailed: '배경/사운드 기본 설정을 저장하지 못했어요.', selectionSessionSyncFailed: '현재 세션의 배경/사운드 선택을 동기화하지 못했어요.', }, } as const;