export const app = { settings: { title: 'Settings', focusPreferencesApi: 'Focus Preferences API', loading: '저장된 설정을 불러오는 중이에요.', saving: '변경 사항을 저장하는 중이에요.', synced: '변경 즉시 서버에 저장합니다.', reduceMotionTitle: 'Reduce Motion', reduceMotionDescription: '전환 애니메이션을 최소화합니다. (UI 토글 목업)', notificationIntensityTitle: '알림 강도', notificationIntensityDescription: '집중 시작/종료 신호의 존재감을 선택합니다.', defaultPresetTitle: '기본 프리셋', defaultPresetDescription: '입장 시 자동 선택될 추천 세트를 고릅니다.', notificationIntensityOptions: ['조용함', '기본', '강함'], defaultPresetOptions: [ { id: 'balanced', label: 'Balanced 25/5 + Rain Focus' }, { id: 'deep-work', label: 'Deep Work 50/10 + Deep White' }, { id: 'gentle', label: 'Gentle 25/5 + Silent' }, ], }, stats: { title: 'Weekly Review', apiLabel: 'API', mockLabel: 'Mock', sourceApi: 'API 통계 사용 중', sourceMock: 'API 실패로 mock 통계 표시 중', loading: '통계를 불러오는 중이에요.', loadFailed: '통계를 불러오지 못했어요.', synced: '최근 7일 review를 최신 요약으로 동기화합니다.', refresh: '새로고침', reviewPeriodLabel: '최근 7일 review', reviewTitle: '이번 주 집중 리듬', reviewSnapshotEmpty: '이번 주에는 아직 집중 기록이 많지 않아요. 다음 세션 하나만 다시 만들면 충분해요.', reviewSnapshotStrong: '이번 주에는 시작한 흐름을 끝까지 가져간 편이에요.', reviewSnapshotSteady: '이번 주에는 시작은 꾸준했고, 마무리 리듬은 조금 더 다듬을 여지가 있어요.', reviewSnapshotRecoveryNeeded: '이번 주에는 시작은 있었지만, 닫힘보다 이월이 더 많았어요.', reviewStarted: '시작한 세션', reviewStartedHint: '최근 7일 space에 들어간 흐름', reviewCompleted: '마무리한 세션', reviewCompletedHint: 'goal 또는 timer를 닫은 세션', reviewFocusMinutes: '집중 시간', reviewFocusMinutesHint: '최근 7일 누적 focus 시간', reviewCarriedOver: '이월된 블록', reviewCarriedOverHint: '다음 날로 이어진 블록', reviewStartTitle: '시작 품질', reviewStartEmpty: '아직 시작 기록이 많지 않아요. 다음 주에는 시작 횟수 하나를 더 만드는 것이 우선이에요.', reviewStartSummary: (startedSessions: number, bestDayLabel: string, averageDepthLabel: string) => `이번 주엔 ${startedSessions}번 시작했고, ${bestDayLabel}에 가장 길게 이어졌어요. 한 번 시작했을 때 평균 ${averageDepthLabel} 정도 머물렀어요.`, reviewAverageDepth: '평균 세션 깊이', reviewAverageDepthHint: '한 번 시작했을 때 이어진 평균 시간', reviewBestDay: '가장 길게 이어진 날', reviewBestDayHint: (minutes: number) => `${minutes}분 동안 가장 오래 집중했어요.`, reviewRecoveryTitle: '복귀 품질', reviewRecoveryMockSummary: '이번 주에는 pause 뒤에도 다시 올라탄 흐름이 있었어요. 복귀는 적었지만 분명히 존재했어요.', reviewRecoveryLimitedSummary: '복귀 패턴은 아직 이 review에 충분히 합쳐지지 않았어요. 지금은 시작과 마무리 흐름을 먼저 봅니다.', reviewRecoveryMockNote: 'mock 기준으로 pause 뒤 복귀와 away 뒤 복귀를 함께 보여줍니다.', reviewRecoveryLimitedNote: 'pause / away 복귀 집계는 다음 연결 단계에서 이 review에 포함됩니다.', reviewPauseRecovery: 'pause 뒤 복귀', reviewPauseRecoveryHint: '멈춘 뒤 다시 돌아온 비율', reviewAwayRecovery: '자리 비움 뒤 복귀', reviewAwayRecoveryHint: '앱을 떠났다가 다시 돌아온 비율', reviewCompletionTitle: '마무리 품질', reviewCompletionEmpty: '이번 주에는 아직 마무리 흐름을 읽을 만큼 세션이 쌓이지 않았어요.', reviewCompletionStrong: '이번 주에는 시작한 세션을 끝까지 가져가는 힘이 비교적 안정적이었어요.', reviewCompletionSummary: (completionRate: string, carriedOverCount: number) => `완료율은 ${completionRate}였고, 이월된 블록은 ${carriedOverCount}개였어요. 다음 주에는 닫힘 리듬을 더 분명히 만들 여지가 있어요.`, reviewCompletionRate: '완료율', reviewCompletionRateHint: '시작한 세션 중 마무리까지 간 비율', reviewCarryKeep: (bestDayLabel: string) => `${bestDayLabel}처럼 길게 이어졌던 흐름을 다음 주에도 기본 리듬으로 유지해 보세요.`, reviewCarryKeepGeneric: '이번 주에 가장 오래 이어진 흐름의 길이를 다음 주 기본 리듬으로 유지해 보세요.', reviewCarryTryDefault: '다음 주 첫 세션은 시간을 늘리기보다, 바로 시작할 한 줄을 더 작게 잡아 보세요.', reviewCarryTrySmaller: '이월된 블록이 많았어요. 다음 주에는 목표를 더 작게 잡고 첫 microStep을 더 구체적으로 적어보세요.', reviewCarryTryClosure: '시작은 있었지만 마무리가 약했어요. 다음 주에는 완료 직전에 다른 블록으로 넘어가지 않는 흐름을 한 번 만들어 보세요.', reviewCarryTryStart: '시작 횟수가 적었어요. 다음 주에는 길이를 늘리기보다 첫 세션을 한 번 더 여는 것에 집중해 보세요.', reviewCarryCta: '이 흐름으로 다음 세션 시작', reviewCarryKeepTitle: '다음 주에 유지할 것', reviewCarryTryTitle: '다음 주에 바꿔볼 것', today: '오늘', last7Days: '최근 7일', chartTitle: '집중 흐름 그래프', chartWithTrend: 'trend 응답으로 간단한 막대 그래프를 렌더링합니다.', chartWithoutTrend: 'trend 응답이 비어 있어 플레이스홀더 상태입니다.', todayFocus: '오늘 집중 시간', completedCycles: '완료한 사이클', sessionEntries: '입장 횟수', last7DaysFocus: '최근 7일 집중 시간', startedSessions: '시작한 세션', completedSessions: '완료한 세션', carriedOverCount: '이월된 계획', syncedApi: '동기화됨', temporary: '임시값', actualAggregate: '실집계', mockAggregate: '목업', countUnit: '회', dayUnit: '일', minuteUnit: '분', barTitle: (date: string, minutes: number) => `${date} · ${minutes}분`, }, plan: { proFeatureCards: [ { id: 'daily-plan', name: 'Daily Focus Plan', description: '오늘의 집중을 블록 단위로 쪼개고 큐를 운영합니다.', }, { id: 'rituals', name: 'Rituals', description: 'scene + sound + timer 조합을 반복 가능한 시작 방식으로 저장합니다.', }, { id: 'weekly-review', name: 'Weekly Review', description: '총 시간보다 시작 성공률과 복귀 패턴을 먼저 해석합니다.', }, ], }, session: { todayOneLiner: '오늘의 한 줄: 완벽보다 시작, 한 조각이면 충분해요.', goalChips: [ { id: 'mail-3', label: '메일 3개' }, { id: 'doc-1p', label: '문서 1p' }, { id: 'code-1-function', label: '코딩 1함수' }, { id: 'tidy-10m', label: '정리 10분' }, { id: 'reading-15m', label: '독서 15분' }, { id: 'resume-1paragraph', label: '이력서 1문단' }, ], checkInPhrases: [ { id: 'arrived', text: '지금 들어왔어요' }, { id: 'sprint-25', text: '25분만 달릴게요' }, { id: 'on-break', text: '휴식 중' }, { id: 'back-focus', text: '다시 집중!' }, { id: 'slow-day', text: '오늘은 천천히' }, ], reactionOptions: [ { id: 'thumbs-up', emoji: '👍', label: '응원해요' }, { id: 'fire', emoji: '🔥', label: '집중 모드' }, { id: 'clap', emoji: '👏', label: '잘하고 있어요' }, { id: 'heart-hands', emoji: '🫶', label: '연결되어 있어요' }, ], soundPresets: [ { id: 'deep-white', label: 'Deep White' }, { id: 'rain-focus', label: 'Rain Focus' }, { id: 'forest-birds', label: 'Forest Birds' }, { id: 'cafe-work', label: 'Cafe Work' }, { id: 'ocean-calm', label: 'Ocean Calm' }, { id: 'fireplace', label: 'Fireplace' }, { id: 'silent', label: 'Silent' }, ], timerPresets: [ { id: '25-5', label: '25/5', focusMinutes: 25, breakMinutes: 5 }, { id: '50-10', label: '50/10', focusMinutes: 50, breakMinutes: 10 }, { id: '90-20', label: '90/20', focusMinutes: 90, breakMinutes: 20 }, { id: 'custom', label: '커스텀' }, ], distractionDumpPlaceholder: ['디자인 QA 요청 확인', '세금계산서 발행 메모', '오후 미팅 질문 1개 정리'], todayStats: [ { id: 'today-focus', label: '오늘 집중 시간', value: '2h 40m', delta: '+35m' }, { id: 'today-cycles', label: '완료한 사이클', value: '5회', delta: '+1' }, { id: 'today-entry', label: '입장 횟수', value: '3회', delta: '유지' }, ], weeklyStats: [ { id: 'week-focus', label: '최근 7일 집중 시간', value: '14h 20m', delta: '+2h 10m' }, { id: 'week-best-day', label: '최고 몰입일', value: '수요일', delta: '3h 30m' }, { id: 'week-consistency', label: '연속 달성', value: '4일', delta: '+1일' }, ], recentThoughts: [ { id: 'thought-1', text: '내일 미팅 전에 제안서 첫 문단만 다시 다듬기', sceneName: '도서관', capturedAt: '방금 전', }, { id: 'thought-2', text: '기획 문서의 핵심 흐름을 한 문장으로 정리해두기', sceneName: '비 오는 창가', capturedAt: '24분 전', }, { id: 'thought-3', text: '오후에 확인할 이슈 번호만 메모하고 지금 작업 복귀', sceneName: '숲', capturedAt: '1시간 전', }, { id: 'thought-4', text: '리뷰 코멘트는 오늘 17시 이후에 한 번에 처리', sceneName: '벽난로', capturedAt: '어제', }, ], justNow: '방금 전', }, scenes: [ { id: 'rain-window', name: '비 오는 창가', description: '빗소리 위로 스탠드 조명이 부드럽게 번집니다.', tags: ['저자극', '감성'], recommendedSound: 'Rain Focus', recommendedTime: '밤', vibeLabel: '잔잔함', }, { id: 'dawn-cafe', name: '새벽 카페', description: '첫 커피 향처럼 잔잔하고 따뜻한 좌석.', tags: ['감성', '딥워크'], recommendedSound: 'Cafe Murmur', recommendedTime: '새벽', vibeLabel: '포근함', }, { id: 'quiet-library', name: '도서관', description: '넘기는 종이 소리만 들리는 정돈된 책상.', tags: ['저자극', '딥워크'], recommendedSound: 'Deep White', recommendedTime: '오후', vibeLabel: '몰입', }, { id: 'wave-sound', name: '파도 소리', description: '잔잔한 해변 위로 호흡을 고르는 공간.', tags: ['움직임 적음', '감성'], recommendedSound: 'Ocean Breath', recommendedTime: '밤', vibeLabel: '차분함', }, { id: 'forest', name: '숲', description: '바람이 나뭇잎을 스치는 소리로 마음을 낮춥니다.', tags: ['저자극', '움직임 적음'], recommendedSound: 'Forest Birds', recommendedTime: '오전', vibeLabel: '맑음', }, { id: 'fireplace', name: '벽난로', description: '작은 불꽃이 주는 리듬으로 집중을 붙잡습니다.', tags: ['감성', '저자극'], recommendedSound: 'Fireplace', recommendedTime: '밤', vibeLabel: '온기', }, { id: 'city-night', name: '도시 야경', description: '유리창 너머 야경이 멀리 흐르는 고요한 밤.', tags: ['딥워크', '감성'], recommendedSound: 'Night Lo-fi', recommendedTime: '심야', vibeLabel: '고요함', }, { id: 'snow-mountain', name: '설산', description: '차분한 공기와 선명한 수평선이 머리를 맑게 합니다.', tags: ['움직임 적음', '딥워크'], recommendedSound: 'Cold Wind', recommendedTime: '새벽', vibeLabel: '선명함', }, { id: 'sun-window', name: '창가', description: '햇살이 들어오는 간결한 책상, 부담 없는 시작.', tags: ['저자극', '딥워크'], recommendedSound: 'Soft Daylight', recommendedTime: '오후', vibeLabel: '가벼움', }, { id: 'outer-space', name: '우주', description: '별빛만 남긴 어둠 속에서 깊게 잠수합니다.', tags: ['딥워크', '감성'], recommendedSound: 'Deep Drone', recommendedTime: '심야', vibeLabel: '깊음', }, ], } as const;