songyc macbook ac40e14cfe feat(ux): UX 감사 반영 배치 — 시스템 테마·온보딩·일기 잠금·기간 비교 외
2026-07-23 사용성 감사(A그룹 5건 + 지시 추가분)를 한 번에 반영.

[테마] '시스템 설정 따름' 추가 + 기본값 light→system. "system"은 스킴을
  강제하지 않아(preferredColorScheme nil) 앱·위젯('앱 일치' 옵션,
  WidgetThemeOption.scheme: ColorScheme?)·DEBUG 위젯 미리보기까지
  시스템 라이트/다크를 그대로 따른다
[온보딩] 첫 실행 3장 소개(OnboardingView — 행동→목표·다짐→정리).
  데이터가 하나도 없고 본 적 없을 때만 1회(건너뛰기 포함 재표시 없음,
  onboarding.done), 시드·마케팅 촬영 플로우는 자동 건너뜀.
  설정 → 지원 '앱 소개 다시 보기'로 재열람
[일기 잠금] 설정 → 일기(iPad 전용 표시) 토글 — DiaryLock이
  .deviceOwnerAuthentication으로 Face ID/Touch ID/Optic ID+암호 폴백을
  기기별 분기 없이 처리. 일기 탭 진입 게이트(DiaryLockGateView),
  백그라운드 재잠금, 토글 변경 시 인증 요구, 잠글 수단 없는 기기는
  통과(영구 잠김 방지). NSFaceIDUsageDescription 추가(Info.plist+
  InfoPlist.xcstrings ko/en/ja)
[통계] 이전 기간 비교 카드(맨 위) — 총 시간·횟수를 어제/지난주/지난달과
  비교(▲▼%, 이전 기록 없으면 상태 문구). 이전 기간은 관계 기반
  Aggregator로 직접 집계, 필터 반영. 화면 전용(내보내기 미포함 의도)
[스플래시] 1.2→0.7초 단축 (하루에도 여러 번 여는 앱)
[워치] 행동 실행 탭 시 WKInterfaceDevice.play(.click) 햅틱 — 화면을
  안 보고 탭해도 접수 확인
[컴플리케이션] rectangular 빈 상태에 해결 안내("목표 편집에서
  '애플워치에서 보기'를 켜면 나타나요") — 옵트인 발견성 보완
[문구] 행동 편집기 꼬리표 색 규칙(여러 개면 가장 먼저 만든 꼬리표),
  새로고침 버튼 accessibilityHint

- 도움말 3주제 추가(새로고침 버튼·일기 잠금·이전 기간과 비교)
- 신규 문구 31키 en/ja 완역 + 워치 카탈로그 2키, missing/stale 0
- CLAUDE.md §6·§6.6·§6.7·§6.8·§10·§11·§14 갱신, DEBUG 인자
  -showOnboarding·-diaryLockScreen 추가
- 검증: Debug/워치/Store 빌드, 온보딩·설정·비교 카드·잠금 게이트·
  컴플리케이션 스크린샷

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-23 02:02:38 +09:00

648 lines
15 KiB
Plaintext

{
"sourceLanguage" : "ko",
"strings" : {
"%@" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "%@"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "%@"
}
}
}
},
"%@ %@" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "%@ %@"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "%@ %@"
}
},
"ko" : {
"stringUnit" : {
"state" : "new",
"value" : "%1$@ %2$@"
}
}
}
},
"%@ %lld%%" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "%@ %lld%%"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "%@ %lld%%"
}
},
"ko" : {
"stringUnit" : {
"state" : "new",
"value" : "%1$@ %2$lld%%"
}
}
}
},
"%@ +%lld" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "%@ +%lld"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "%@ +%lld"
}
},
"ko" : {
"stringUnit" : {
"state" : "new",
"value" : "%1$@ +%2$lld"
}
}
}
},
"%lld" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "%lld"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "%lld"
}
}
}
},
"%lld%%" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "%lld%%"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "%lld%%"
}
}
}
},
"+%lld" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "+%lld"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "+%lld"
}
}
}
},
"기간" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Period"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "期間"
}
}
}
},
"다짐" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Quest"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "クエスト"
}
}
}
},
"다짐 달성률" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Quest Progress"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "クエスト達成率"
}
}
}
},
"다짐 없음" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "No quest"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "クエストなし"
}
}
}
},
"독서" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Reading"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "読書"
}
}
}
},
"목표" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Goals"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "目標"
}
}
}
},
"목표 달성률" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Goal Progress"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "目標達成率"
}
}
}
},
"목표 없음" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "No goal"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "目標なし"
}
}
}
},
"새로고침" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Refresh"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "更新"
}
}
}
},
"선택한 다짐의 달성률을 표시해요. 한도형 다짐은 상태로 표시돼요. (프리미엄)" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Shows the selected quest's progress. Limit quests show their status. (Premium)"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "選択したクエストの達成率を表示します。上限型はステータス表示になります。(プレミアム)"
}
}
}
},
"선택한 목표의 하루/주간/월간 달성률을 표시해요. (프리미엄)" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Shows the selected goal's daily/weekly/monthly progress. (Premium)"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "選択した目標の日/週/月の達成率を表示します。(プレミアム)"
}
}
}
},
"실행 중 아님" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Not running"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "実行中なし"
}
}
}
},
"앱을 열면 새로고침돼요" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Open the app to refresh"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "アプリを開くと更新されます"
}
}
}
},
"없음" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "None"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "なし"
}
}
}
},
"월간" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Monthly"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "月間"
}
}
}
},
"주간" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Weekly"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "週間"
}
}
}
},
"초과" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Over"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "超過"
}
}
}
},
"측정 중" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Tracking"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "計測中"
}
}
}
},
"측정 중인 행동과 경과 시간을 표시해요. (프리미엄)" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Shows the running action and elapsed time. (Premium)"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "計測中のアクションと経過時間を表示します。(プレミアム)"
}
}
}
},
"측정 표시 새로고침 필요" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Timer display needs a refresh"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "計測表示の更新が必要"
}
}
}
},
"측정 표시가 오래됐어요" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Timer display is out of date"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "計測表示が古くなっています"
}
}
}
},
"표시할 다짐과 기간을 선택하세요." : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Choose a quest and period to display."
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "表示するクエストと期間を選んでください。"
}
}
}
},
"표시할 다짐이 없어요 — iPhone 목표 편집에서 '애플워치에서 보기'를 켜면 나타나요" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "No quests to show — turn on 'Show on Apple Watch' when editing a goal on iPhone"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "表示するクエストがありません — iPhoneの目標編集で「Apple Watchで表示」をオンにすると表示されます"
}
}
}
},
"표시할 목표가 없어요 — iPhone 목표 편집에서 '애플워치에서 보기'를 켜면 나타나요" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "No goals to show — turn on 'Show on Apple Watch' when editing a goal on iPhone"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "表示する目標がありません — iPhoneの目標編集で「Apple Watchで表示」をオンにすると表示されます"
}
}
}
},
"표시할 목표와 기간을 선택하세요." : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Choose a goal and period to display."
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "表示する目標と期間を選んでください。"
}
}
}
},
"프리미엄" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Premium"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "プレミアム"
}
}
}
},
"하루" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Daily"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "1日"
}
}
}
},
"하루 다님" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Haru Danim"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "Haru Danim"
}
}
}
},
"한도" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Limit"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "上限"
}
}
}
},
"한도 안" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Within"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "上限内"
}
}
}
},
"한도 초과" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Over limit"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "上限超過"
}
}
}
},
"현재 현황" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Current Status"
}
},
"ja" : {
"stringUnit" : {
"state" : "translated",
"value" : "現在の状況"
}
}
}
}
},
"version" : "1.0"
}