fix(l10n): natural English word order for quest summaries + help refresh
- 전체 점검(코드 정독 + 폰·패드·워치 시뮬 검증)에서 발견된 번역·도움말 보완 - 다짐 요약 en 어순 수정: "30m Reach at least" → "Reach at least 30m" — 포맷 키 '%@ · %@ %@'의 en을 위치 지정자(%1$@ · %3$@ %2$@)로 재배열, ko/ja 불변 - 시리 다짐 엔티티 부제가 일반 보간이라 카탈로그를 안 타던 것을 String(localized:)로 교정 — 위젯 카탈로그에 같은 키 번역 추가 - 도움말 일기 항목에 달력 기분 사진 배경 안내 한 문장 추가 (ko/en/ja, stale 키 정리) - CLAUDE.md §14: -premium 인자가 콜드 스타트 동안만 유효함(지속은 DEBUG 토글) 명시 - 검증: 9개 카탈로그 missing/stale 클린, 인텐트 스모크 10/10, progressSelfTest 37건 PASS, streak 덤프 정상, 3개 스킴(iOS Debug/Store·워치) 빌드 성공, en 목표 탭 스크린샷으로 어순 확인 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014CkLDi8Lr21vGqo4SjZaTp
This commit is contained in:
parent
a400a71896
commit
623217b907
@ -324,7 +324,7 @@ xcrun xcstringstool sync Widgets/Localizable.xcstrings --stringsdata "${widget_f
|
||||
|
||||
## 14. DEBUG 런치 인자 (검증용, 모두 DEBUG 빌드 전용)
|
||||
|
||||
공통: `-seedDemo YES`(데모 데이터: 태그3·행동7·기록 7일치·목표8·자정 걸친 세션·마감 시각 다짐 1개[아침 루틴 08:00, 기대: 하루 100%·연속 1일 — 시드 기록이 고정 시각이라 오전 7:30 이전에 실행하면 오늘 기록이 미래 시각으로 연속 계산에서 빠져 연속 0일이 정상]. **시드 이름·메모는 String(localized:) — 실행 로케일을 따르므로(마케팅 스크린샷용) 이름으로 찾는 인자(-autoStart·-openStatsFor·-excludeActions·-endGoalYesterday)는 그 로케일의 이름을 넘길 것**, ko 기본 사용은 기존과 동일), `-seedBulk YES`(성능 검증용 과거 500일 약 1만 건 — 벌크 행동 4개), `-premium YES/NO`, `-startTab <main|action|tag|goal|history|stats|diary|settings>`, `-navStyle radial`, `-themeAutoToggle YES`
|
||||
공통: `-seedDemo YES`(데모 데이터: 태그3·행동7·기록 7일치·목표8·자정 걸친 세션·마감 시각 다짐 1개[아침 루틴 08:00, 기대: 하루 100%·연속 1일 — 시드 기록이 고정 시각이라 오전 7:30 이전에 실행하면 오늘 기록이 미래 시각으로 연속 계산에서 빠져 연속 0일이 정상]. **시드 이름·메모는 String(localized:) — 실행 로케일을 따르므로(마케팅 스크린샷용) 이름으로 찾는 인자(-autoStart·-openStatsFor·-excludeActions·-endGoalYesterday)는 그 로케일의 이름을 넘길 것**, ko 기본 사용은 기존과 동일), `-seedBulk YES`(성능 검증용 과거 500일 약 1만 건 — 벌크 행동 4개), `-premium YES/NO`(**인자가 있는 콜드 스타트 동안만 유효** — 다음 실행에 인자를 빼면 실권한으로 복귀하므로 프리미엄 화면 검증 시 매 런치에 함께 줄 것. 지속 강제는 설정의 DEBUG 테스트 토글), `-startTab <main|action|tag|goal|history|stats|diary|settings>`, `-navStyle radial`, `-themeAutoToggle YES`
|
||||
|
||||
| 영역 | 인자 |
|
||||
|---|---|
|
||||
|
||||
@ -236,7 +236,7 @@
|
||||
"en": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "%@ · %@ %@"
|
||||
"value": "%1$@ · %3$@ %2$@"
|
||||
}
|
||||
},
|
||||
"ja": {
|
||||
@ -8551,18 +8551,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"일기 탭 달력에서 날짜를 누르면 그날의 일기가 열려요. 첫 페이지는 오늘 기분·요약·목표 진행 현황·할 일·24시간 타임테이블·기록으로 하루를 정리해 보여줘요. 오른쪽 위 ⋯ 메뉴의 '첫 화면 구성'에서 섹션 표시 여부와 순서를 바꿀 수 있어요.": {
|
||||
"일기 탭 달력에서 날짜를 누르면 그날의 일기가 열려요. 첫 페이지는 오늘 기분·요약·목표 진행 현황·할 일·24시간 타임테이블·기록으로 하루를 정리해 보여줘요. 오른쪽 위 ⋯ 메뉴의 '첫 화면 구성'에서 섹션 표시 여부와 순서를 바꿀 수 있어요. 기분 사진을 남긴 날은 달력의 그 날짜 칸에 사진이 배경으로 함께 보여요.": {
|
||||
"localizations": {
|
||||
"en": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "Tap a date in the Diary tab calendar to open that day's diary. The first page sums up the day with mood, summary stats, goal progress, to-dos, a 24-hour timetable and records. Use 'First Page Layout' in the ⋯ menu to show, hide and reorder sections."
|
||||
"value": "Tap a date on the diary tab's calendar to open that day's diary. The first page sums up your day with today's mood, a summary, goal progress, to-dos, a 24-hour timetable and records. Use 'Front page layout' in the ⋯ menu at the top right to choose which sections appear and in what order. On days you add a mood photo, that photo also shows as the background of the date cell in the calendar."
|
||||
}
|
||||
},
|
||||
"ja": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "ダイアリータブのカレンダーで日付をタップすると、その日の日記が開きます。最初のページは今日の気分・サマリー・目標進捗・やること・24時間タイムテーブル・記録で1日を整理して見せてくれます。右上の⋯メニューの「最初のページの構成」でセクションの表示と順序を変えられます。"
|
||||
"value": "日記タブのカレンダーで日付をタップすると、その日の日記が開きます。最初のページは今日の気分・サマリー・目標の進捗・やること・24時間タイムテーブル・記録で一日を整理して見せてくれます。右上の⋯メニューの「最初の画面の構成」でセクションの表示と順序を変えられます。気分の写真を残した日は、カレンダーのその日付のマスに写真が背景として表示されます。"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -211,7 +211,7 @@ struct HelpView: View {
|
||||
HelpTopic(
|
||||
symbol: "book.closed.fill",
|
||||
title: "하루 정리 첫 페이지",
|
||||
body: "일기 탭 달력에서 날짜를 누르면 그날의 일기가 열려요. 첫 페이지는 오늘 기분·요약·목표 진행 현황·할 일·24시간 타임테이블·기록으로 하루를 정리해 보여줘요. 오른쪽 위 ⋯ 메뉴의 '첫 화면 구성'에서 섹션 표시 여부와 순서를 바꿀 수 있어요."
|
||||
body: "일기 탭 달력에서 날짜를 누르면 그날의 일기가 열려요. 첫 페이지는 오늘 기분·요약·목표 진행 현황·할 일·24시간 타임테이블·기록으로 하루를 정리해 보여줘요. 오른쪽 위 ⋯ 메뉴의 '첫 화면 구성'에서 섹션 표시 여부와 순서를 바꿀 수 있어요. 기분 사진을 남긴 날은 달력의 그 날짜 칸에 사진이 배경으로 함께 보여요."
|
||||
),
|
||||
HelpTopic(
|
||||
symbol: "calendar.badge.plus",
|
||||
|
||||
@ -340,7 +340,8 @@ struct QuestEntity: AppEntity {
|
||||
id = quest.uuid
|
||||
targetName = quest.targetName
|
||||
goalTitle = quest.goal?.title ?? String(localized: "목표 없음")
|
||||
summary = "\(quest.scheduleLabel) · \(quest.targetValueLabel) \(quest.direction.label)"
|
||||
// 카탈로그 포맷 키("%@ · %@ %@")를 타야 영어에서 어순 재배열이 적용된다 — 일반 보간 금지
|
||||
summary = String(localized: "\(quest.scheduleLabel) · \(quest.targetValueLabel) \(quest.direction.label)")
|
||||
}
|
||||
|
||||
private init(id: UUID, targetName: String, goalTitle: String, summary: String) {
|
||||
|
||||
@ -149,6 +149,22 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"%@ · %@ %@": {
|
||||
"localizations": {
|
||||
"en": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "%1$@ · %3$@ %2$@"
|
||||
}
|
||||
},
|
||||
"ja": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
"value": "%@ · %@ %@"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"%@ 시작": {
|
||||
"localizations": {
|
||||
"en": {
|
||||
@ -490,12 +506,6 @@
|
||||
},
|
||||
"'%@ · %@' 오늘은 수행일이 아니에요.": {
|
||||
"localizations": {
|
||||
"ko": {
|
||||
"stringUnit": {
|
||||
"state": "new",
|
||||
"value": "'%1$@ · %2$@' 오늘은 수행일이 아니에요."
|
||||
}
|
||||
},
|
||||
"en": {
|
||||
"stringUnit": {
|
||||
"state": "translated",
|
||||
@ -507,6 +517,12 @@
|
||||
"state": "translated",
|
||||
"value": "「%1$@ · %2$@」は今日は実行日ではありません。"
|
||||
}
|
||||
},
|
||||
"ko": {
|
||||
"stringUnit": {
|
||||
"state": "new",
|
||||
"value": "'%1$@ · %2$@' 오늘은 수행일이 아니에요."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user