From 79b8066a36c6f5004b1c34db4457c0b093fba654 Mon Sep 17 00:00:00 2001 From: Thomas Camlong Date: Mon, 17 Aug 2026 12:55:28 +0200 Subject: [PATCH] fix: fall back to raw segment in breadcrumbs for missing translations Brings the DynamicBreadcrumb fallback from release/v2: dynamic segments (group ids, etc.) without a translation key previously raised MISSING_MESSAGE; they now render the raw path segment via t.has() guard. --- .../navigation/dynamic-breadcrumb.tsx | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/apps/nextjs/src/components/navigation/dynamic-breadcrumb.tsx b/apps/nextjs/src/components/navigation/dynamic-breadcrumb.tsx index 2ed6bc5f8..221736260 100644 --- a/apps/nextjs/src/components/navigation/dynamic-breadcrumb.tsx +++ b/apps/nextjs/src/components/navigation/dynamic-breadcrumb.tsx @@ -65,24 +65,19 @@ export const DynamicBreadcrumb = ({ const isNonInteractable = nonInteractable?.includes(pathnamePart) === true || categorySegments.has(pathnamePart); - if (mappedValue) { - if (isNonInteractable) { - return {mappedValue}; - } - return ( - - {mappedValue} - - ); - } + // Dynamic segments (ids) have no translation and may not be mapped yet while + // their page is still loading. Fall back to the raw segment instead of + // raising MISSING_MESSAGE. + const labelKey = `${translationKey}.label` as TranslationKeys; + const label = mappedValue ?? (t.has(labelKey) ? t(labelKey) : pathnamePart); if (isNonInteractable) { - return {t(`${translationKey}.label` as TranslationKeys)}; + return {label}; } return ( - {t(`${translationKey}.label` as TranslationKeys)} + {label} ); })}