diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md
index 311057b..a2fc1b0 100644
--- a/docs/CHANGELOG.md
+++ b/docs/CHANGELOG.md
@@ -15,6 +15,19 @@ Files in this PR:
Register matches PR #40 + PR #44: polite Japanese (です・ます), neutral Mandarin with S/T distinguished where they diverge (继续/繼續, 字 is shared, 书写/書寫, etc.).
Cherry-picked from the larger sweep branch (`feat/chrome-translation-tier2-3`) as a reviewable per-flow PR. Native review pass still planned post-merge.
+---
+### Chrome translation — reflection flow (Reflection + Gratitude + Feedback)
+
+**Adds ja / zh-Hans / zh-Hant keys to the three post-write reflection screens.**
+
+Files in this PR:
+- `ReflectionScreen.tsx` — Back, "Taking a moment to reflect..." loader, error-state Continue, response placeholder + optional-helper, "Finish with gratitude" bilingual anchor
+- `GratitudeScreen.tsx` — Back, optional-skip helper, placeholder, Complete journal, Skip and finish
+- `FeedbackScreen.tsx` — header "A moment of clarity", three section bilingual anchors (Naming with precision / A small note / Vocabulary bridge), Continue, Skip
+
+Note: the hard-coded `isFr ? : isEs ? : ...` ternaries in ReflectionScreen and FeedbackScreen are pre-existing technical debt (they are not `t()` calls). They are outside the scope of this chrome-translation pass and are tracked separately.
+
+Register matches PR #40 + PR #44.
---
diff --git a/src/components/journal/FeedbackScreen.tsx b/src/components/journal/FeedbackScreen.tsx
index 1f69859..e8f16db 100644
--- a/src/components/journal/FeedbackScreen.tsx
+++ b/src/components/journal/FeedbackScreen.tsx
@@ -128,7 +128,7 @@ export function FeedbackScreen({ journalContent, onContinue, onSkip }: FeedbackS
const hasEmotionalGranularity = feedback?.emotionalGranularity?.detected &&
feedback?.emotionalGranularity?.alternatives?.length > 0;
- const headerText = t({ fr: 'Un moment de clarté', en: 'A moment of clarity', es: 'Un momento de claridad' });
+ const headerText = t({ fr: 'Un moment de clarté', en: 'A moment of clarity', es: 'Un momento de claridad', ja: '澄んだひととき', 'zh-Hans': '清明片刻', 'zh-Hant': '清明片刻' });
return (
- {t({ fr: "C'est optionnel. Passez si rien ne vous vient.", en: 'This is optional. Skip if nothing comes to mind.', es: 'Es opcional. Omite si no se te ocurre nada.' }).primary}
+ {t({ fr: "C'est optionnel. Passez si rien ne vous vient.", en: 'This is optional. Skip if nothing comes to mind.', es: 'Es opcional. Omite si no se te ocurre nada.', ja: '任意です。思い浮かばなければスキップしてください。', 'zh-Hans': '这是可选的,想不到就跳过。', 'zh-Hant': '這是選填的,想不到就跳過。' }).primary}
- {t({ fr: 'Prenant un moment pour réfléchir...', en: 'Taking a moment to reflect...', es: 'Tomando un momento para reflexionar...' }).primary}
+ {t({ fr: 'Prenant un moment pour réfléchir...', en: 'Taking a moment to reflect...', es: 'Tomando un momento para reflexionar...', ja: '少し考えています...', 'zh-Hans': '稍等,正在思考...', 'zh-Hant': '稍等,正在思考...' }).primary}
)}
@@ -157,7 +157,7 @@ export function ReflectionScreen({
@@ -194,11 +194,11 @@ export function ReflectionScreen({
@@ -215,7 +215,7 @@ export function ReflectionScreen({