diff --git a/web/src/objects/object-detail.tsx b/web/src/objects/object-detail.tsx index 824828e..bfdef5c 100644 --- a/web/src/objects/object-detail.tsx +++ b/web/src/objects/object-detail.tsx @@ -23,7 +23,7 @@ function Field({ } export function ObjectDetail() { - const { t } = useTranslation(); + const { t, i18n } = useTranslation(); const { id } = useParams(); const { data: object, isLoading, isError } = useObject(id!); const { data: definitions } = useFieldDefinitions(); @@ -40,8 +40,15 @@ export function ObjectDetail() { if (!object) return
{t("objects.notFound")}
; - const labelFor = (key: string) => - definitions?.find((d) => d.key === key)?.labels.find((l) => l.lang === "en")?.label ?? key; + // Prefer the active locale's label, then English, then the raw key. + const lang = i18n.language.startsWith("sv") ? "sv" : "en"; + const labelFor = (key: string) => { + const labels = definitions?.find((d) => d.key === key)?.labels; + const byLang = labels?.find((l) => l.lang === lang)?.label; + const byEnglish = labels?.find((l) => l.lang === "en")?.label; + + return byLang ?? byEnglish ?? key; + }; const flexible = Object.entries(object.fields as Record