From 7f0368ec7d043a33197f6198b2b38a7560610fc5 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Sun, 23 Aug 2026 21:31:29 +0900 Subject: [PATCH] fix(i18n): translate leftover map pair labels --- frontend/src/LeftoverInteractionMap.tsx | 2 +- frontend/src/i18n.test.ts | 22 +++++++++++++++++----- frontend/src/i18n.ts | 8 ++++++++ 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/frontend/src/LeftoverInteractionMap.tsx b/frontend/src/LeftoverInteractionMap.tsx index e492325d5..77faeccc4 100644 --- a/frontend/src/LeftoverInteractionMap.tsx +++ b/frontend/src/LeftoverInteractionMap.tsx @@ -171,7 +171,7 @@ export function LeftoverInteractionMap({ y2={item.y} > - {pair.pair_kind === "farthest" ? "Farthest leftover" : "Closest leftover"}:{" "} + {t(pair.pair_kind === "farthest" ? "Farthest leftover" : "Closest leftover")}:{" "} {person.label} · {item.label} diff --git a/frontend/src/i18n.test.ts b/frontend/src/i18n.test.ts index 2a1e16aa2..d29ae230a 100644 --- a/frontend/src/i18n.test.ts +++ b/frontend/src/i18n.test.ts @@ -66,14 +66,26 @@ describe("i18n", () => { }); it.each([ - ["ko", "잔여 맵 평가 항목 열기: sales-lead"], - ["zh", "打开残差图评估项:sales-lead"], - ["ja", "残差マップの評価項目を開く: sales-lead"], - ["vi", "Mở tiêu chí bản đồ phần dư: sales-lead"], - ] as const)("translates leftover-map criterion next action in %s", (locale, expected) => { + ["ko", "DEMO은(는) 이벤트 계보의 현재 항목입니다. 다음으로 Keyman과 평가를 읽으세요."], + ["zh", "DEMO 是事件谱系中的当前记录。接下来查看关键联系人和评估。"], + ["ja", "DEMOはイベント系譜の現在の記録です。次にキーパーソンと評価を確認してください。"], + ["vi", "DEMO là bản ghi hiện tại trong Dòng sự kiện. Hãy xem người liên hệ chính và đánh giá tiếp theo."], + ] as const)("formats dynamic buyer guidance in %s", (locale, expected) => { + setLocale(locale); + expect(tf("{post} is current in Event Lineage. Read Keyman and evaluation next.", { post: "DEMO" })).toBe(expected); + }); + + it.each([ + ["ko", "잔여 맵 평가 항목 열기: sales-lead", "가장 가까운 잔여", "가장 먼 잔여"], + ["zh", "打开残差图评估项:sales-lead", "最近残差", "最远残差"], + ["ja", "残差マップの評価項目を開く: sales-lead", "最も近い残差", "最も遠い残差"], + ["vi", "Mở tiêu chí bản đồ phần dư: sales-lead", "Phần dư gần nhất", "Phần dư xa nhất"], + ] as const)("translates leftover-map criterion next action in %s", (locale, expected, closest, farthest) => { setLocale(locale); expect(tf("Open leftover map criterion: {label}", { label: "sales-lead" })).toBe(expected); expect(t("Leftover interaction map")).not.toBe("Leftover interaction map"); + expect(t("Closest leftover")).toBe(closest); + expect(t("Farthest leftover")).toBe(farthest); }); }); diff --git a/frontend/src/i18n.ts b/frontend/src/i18n.ts index 4ed14c96d..97a307540 100644 --- a/frontend/src/i18n.ts +++ b/frontend/src/i18n.ts @@ -315,6 +315,8 @@ const TRANSLATIONS: Partial>> = { "Keyman next action": "Keyman 다음 작업", "Leftover interaction map": "잔여 상호작용 맵", "Leftover interaction map after main effects": "주효과 이후 잔여 상호작용 맵", + "Closest leftover": "가장 가까운 잔여", + "Farthest leftover": "가장 먼 잔여", "Open leftover map post: {label}": "잔여 맵 글 열기: {label}", "Open leftover map criterion: {label}": "잔여 맵 평가 항목 열기: {label}", "Open this leftover map criterion to read the leftover pair post: {label}": @@ -661,6 +663,8 @@ const TRANSLATIONS: Partial>> = { "Keyman next action": "关键联系人操作", "Leftover interaction map": "残差交互图", "Leftover interaction map after main effects": "主效应后的残差交互图", + "Closest leftover": "最近残差", + "Farthest leftover": "最远残差", "Open leftover map post: {label}": "打开残差图帖子:{label}", "Open leftover map criterion: {label}": "打开残差图评估项:{label}", "Open this leftover map criterion to read the leftover pair post: {label}": @@ -1007,6 +1011,8 @@ const TRANSLATIONS: Partial>> = { "Keyman next action": "キーパーソンの操作", "Leftover interaction map": "残差インタラクションマップ", "Leftover interaction map after main effects": "主効果後の残差インタラクションマップ", + "Closest leftover": "最も近い残差", + "Farthest leftover": "最も遠い残差", "Open leftover map post: {label}": "残差マップの投稿を開く: {label}", "Open leftover map criterion: {label}": "残差マップの評価項目を開く: {label}", "Open this leftover map criterion to read the leftover pair post: {label}": @@ -1353,6 +1359,8 @@ const TRANSLATIONS: Partial>> = { "Keyman next action": "Thao tác người liên hệ chính", "Leftover interaction map": "Bản đồ tương tác phần dư", "Leftover interaction map after main effects": "Bản đồ tương tác phần dư sau hiệu ứng chính", + "Closest leftover": "Phần dư gần nhất", + "Farthest leftover": "Phần dư xa nhất", "Open leftover map post: {label}": "Mở bài viết bản đồ phần dư: {label}", "Open leftover map criterion: {label}": "Mở tiêu chí bản đồ phần dư: {label}", "Open this leftover map criterion to read the leftover pair post: {label}":