Multilingual Content and Localisation: The Nomadic CMS Approach
A nomadic CMS produces content from one source and distributes it across markets. Content is delivered through an API across languages, regions and channels; locale-based rendering presents the…
Multilingual content & localisation • 2025
A nomadic CMSproduces content from one source and distributes it across markets. Content is delivered through an API across languages, regions and channels; locale-based rendering presents the most suitable version to the user.
B10 Digital Agency • 10 October 2025 • Reading time: ~7 min
Nomadic CMS: one source, multiple outputs
- Single source of truth: Content uses one model; variations in title, tone and CTA are stored in locale fields.
- Locale-based rendering:
tr-TR,en-GB,ar-SAand similar locale settings determine templates and automate date, number and currency formatting. - Channel-agnostic: Web, mobile, kiosks and email use the same API.
“Content travels; templates change. That is the essence of a nomadic CMS.”
Model Design: Content + Variation + Meta
| Field | Description | Example |
|---|---|---|
| baseTitle | Source language title | “Enterprise Web Strategy” |
| variants[] | Locale variations | { locale: "en-GB", title: "Enterprise Web Strategy", tone: "formal" } |
| seo | Meta + hreflang + canonical | hreflang sets and locale-specific canonical URLs |
| schema | Multilingual JSON-LD | Article, Service, Product |
Locale-selective queries with GraphQL
{ post(id:"123", locale:"tr-TR"){ title slug body seo { metaTitle metaDescription canonical hreflangs { locale href } } } }
Tip: In the CMS, define the fallbackLocale rule (for example, if az-AZ is unavailable, fall back to tr-TR).
Next.js / i18n — routing and rendering
// next.config.js module.exports = { i18n: { locales: ["tr","en-GB","ar"], defaultLocale: "tr", localeDetection: true } } // sayfa (getStaticProps) export async function getStaticProps({ params, locale }) { const data = await fetchGraphQL({ id: params.slug, locale }) return { props: { data }, revalidate: 60 } }
Schema.org / JSON-LD
{ "@context":"https://schema.org", "@type":"Article", "inLanguage":"tr-TR", "headline":"Kurumsal Web Stratejisi", "alternateHeadline":{ "@value":"Enterprise Web Strategy","@language":"en-GB" }, "publisher":{"@type":"Organization","name":"B10 Digital Agency"} }
i18n details: genuine localisation
- ICU MessageFormat: Plural rules (1 product / 2 products) and grammatical gender or form variations.
- RTL/LTR:
dir="auto",:root[dir="rtl"]control grid and icon direction. - Slug & URL: Localised slugs +
hreflangsets + region-specific canonical URLs. - Currency:
Intl.NumberFormat(locale, { style:'currency', currency:'TRY' })
“Translation is not localisation. Language, context and culture all change.”
Workflow: TMS + AI + human review
- TMS integration: Localisation management with Phrase, Lokalise or Smartling.
- AI pre-translation: An automatic draft prompted with tone and brand guidelines.
- Review stage: Check market-specific legal language and terminology, and compliance with the style guide.
SEO & performance layer
- Hreflang accuracy: Language versions reference one another reciprocally.
- Edge routing: use Accept-Languageto suggest a language, not redirect automatically, with a soft prompt banner.
- ISR & CDN: Locale-specific cache keys:
{path}:{locale}.
Governance: content ownership & versioning
| Role | Responsibility | Tool |
|---|---|---|
| Content owner | Creates source content | Headless CMS |
| Localisation lead | Manages locale variants and the TMS workflow | TMS + Git |
| SEO Specialist | Hreflang, canonical, schema | CI validation |
Take your content to new markets.
B10 Digital Agency uses Headless CMS, GraphQL and i18n infrastructure to make single-source content manageable and measurable across languages.
Sources and related documents
These documents provide references for the methods and rules discussed in this article.
