Build the editorial source object for one language. Prefers a translated
executive-brief_<lang>.md sibling, falls through to the English brief
with a script-aware safety net (English headline stripped for non-Latin
locales so titles fall through to the localized template).
For non-Latin script locales (ar, he, ja, ko, zh), if no
translated sibling exists we DROP the English headline and fall
through to the empty pair so the locale-aware template fallback in
buildTemplateFallback can supply localised <title> text. The
English summary / extendedSummary are kept so
composeContextualDescription can wrap them in localized
Date: / Context: / reader labels and produce a description that
still carries locale-script glyphs (Gate 4b of
executive-brief-seo-extraction.test.js).
For Latin non-EN locales (sv/da/no/fi/de/fr/es/nl) we keep the existing
english-brief fallback because (a) most users with that publishing
locale read English, and (b) the localised brief is usually present so
this path is rare.
Build the editorial source object for one language. Prefers a translated
executive-brief_<lang>.mdsibling, falls through to the English brief with a script-aware safety net (English headline stripped for non-Latin locales so titles fall through to the localized template).For non-Latin script locales (
ar,he,ja,ko,zh), if no translated sibling exists we DROP the Englishheadlineand fall through to the empty pair so the locale-aware template fallback in buildTemplateFallback can supply localised<title>text. The Englishsummary/extendedSummaryare kept so composeContextualDescription can wrap them in localizedDate:/Context:/readerlabels and produce a description that still carries locale-script glyphs (Gate 4b ofexecutive-brief-seo-extraction.test.js).For Latin non-EN locales (sv/da/no/fi/de/fr/es/nl) we keep the existing
english-brieffallback because (a) most users with that publishing locale read English, and (b) the localised brief is usually present so this path is rare.