mycode/myApp/Keging/KegingWatch Watch App/Localizable.xcstrings
songyc macbook eba01b570f fix(keging): 실기기 2차 피드백 — 중단 UI 인라인화·통계 위로 스와이프·진동 3종 Core Haptics 재설계
① 중단 확인: 하단 시트(confirmationDialog) → 버튼 자리에서 펼쳐지는 인라인 확인
   (안내 문구 + 계속하기(그린)/중단하기(레드), scale+opacity 전환)
② 통계: 아래→위 스와이프로 반전, 하단 중앙 손잡이(위 화살표+캡슐), 통통 튀는 스프링
   (dampingFraction 0.62), 통계 상단에 닫기 손잡이 추가, 닫기=아래로 스와이프
③ 진동 3종(기본·톡톡·지이이잉)으로 재설계 — 체이닝 간격도 길다는 피드백:
   - iOS 포그라운드: Core Haptics 정밀 재생(Shared/HapticEnginePlayer) — 기본 0.25s,
     톡톡 0.14s×2 시작 간격 0.28s(요구 0.5s 미만), 지이이잉 1.2s 연속, 세기 1.0
   - iOS 백그라운드 폴백: 시스템 바이브 완료 체이닝(1방/2방/3방 즉시 잇기)
   - 워치: watchOS SDK에 CoreHaptics 부재(실측) — 강한 시스템 햅틱 매핑
     (기본=.notification, 톡톡=.directionUp, 지이이잉=.retry — 내장이라 간격 뭉개짐 없음)
   - 구버전 저장 패턴 자동 이관, 기본값 수축=지이이잉·이완=기본
- 신규 QA 인자 -confirmStop, 도움말 문구·번역(en/ja) 갱신, stale 정리(카탈로그 0/0)
- 검증: Debug·Release·워치 빌드 그린, 화면 QA(메인 하단 손잡이·통계 시트·중단 인라인 레드)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UPmp29DQHY6Ahfss5SRopT
2026-08-30 09:39:37 +09:00

308 lines
6.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"sourceLanguage": "ko",
"strings": {
"%lld / %lld": {
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "%lld / %lld"
}
},
"ja": {
"stringUnit": {
"state": "translated",
"value": "%lld / %lld"
}
},
"ko": {
"stringUnit": {
"state": "new",
"value": "%1$lld / %2$lld"
}
}
}
},
"%lld회 완주": {
"localizations": {
"en": {
"variations": {
"plural": {
"one": {
"stringUnit": {
"state": "translated",
"value": "%lld rep done"
}
},
"other": {
"stringUnit": {
"state": "translated",
"value": "%lld reps done"
}
}
}
}
},
"ja": {
"stringUnit": {
"state": "translated",
"value": "%lld回完了"
}
}
}
},
"기본": {
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Standard"
}
},
"ja": {
"stringUnit": {
"state": "translated",
"value": "標準"
}
}
}
},
"기타": {
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Other"
}
},
"ja": {
"stringUnit": {
"state": "translated",
"value": "その他"
}
}
}
},
"수축": {
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Squeeze"
}
},
"ja": {
"stringUnit": {
"state": "translated",
"value": "締める"
}
}
}
},
"수축 %lld초 · 이완 %lld초 · %lld회": {
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Squeeze %lld s · Relax %lld s · ×%lld"
}
},
"ja": {
"stringUnit": {
"state": "translated",
"value": "締める%lld秒 · ゆるめる%lld秒 · %lld回"
}
},
"ko": {
"stringUnit": {
"state": "new",
"value": "수축 %1$lld초 · 이완 %2$lld초 · %3$lld회"
}
}
}
},
"시작": {
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Start"
}
},
"ja": {
"stringUnit": {
"state": "translated",
"value": "開始"
}
}
}
},
"완료!": {
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Done!"
}
},
"ja": {
"stringUnit": {
"state": "translated",
"value": "完了!"
}
}
}
},
"이완": {
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Relax"
}
},
"ja": {
"stringUnit": {
"state": "translated",
"value": "ゆるめる"
}
}
}
},
"준비": {
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Ready"
}
},
"ja": {
"stringUnit": {
"state": "translated",
"value": "準備"
}
}
}
},
"중단": {
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Stop"
}
},
"ja": {
"stringUnit": {
"state": "translated",
"value": "中断"
}
}
}
},
"지이이잉": {
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Long buzz"
}
},
"ja": {
"stringUnit": {
"state": "translated",
"value": "ブーッ"
}
}
}
},
"케겔 운동 시작": {
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Start Kegel Workout"
}
},
"ja": {
"stringUnit": {
"state": "translated",
"value": "ケーゲル運動を開始"
}
}
}
},
"코어 트레이닝": {
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Core Training"
}
},
"ja": {
"stringUnit": {
"state": "translated",
"value": "コアトレーニング"
}
}
}
},
"톡톡": {
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Double tap"
}
},
"ja": {
"stringUnit": {
"state": "translated",
"value": "トントン"
}
}
}
},
"현재 %lld번째, 전체 %lld회": {
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "Rep %lld of %lld"
}
},
"ja": {
"stringUnit": {
"state": "translated",
"value": "%lld回目、全%lld回"
}
},
"ko": {
"stringUnit": {
"state": "new",
"value": "현재 %1$lld번째, 전체 %2$lld회"
}
}
}
},
"확인": {
"localizations": {
"en": {
"stringUnit": {
"state": "translated",
"value": "OK"
}
},
"ja": {
"stringUnit": {
"state": "translated",
"value": "OK"
}
}
}
}
},
"version": "1.0"
}