/** * Shared i18n locale configuration. * * Single source of truth for locale definitions used by: * - website/astro.config.mjs (Starlight i18n) * - tools/build-docs.mjs (llms-full.txt locale exclusion) * - website/src/pages/404.astro (client-side locale redirect) * * The root locale (English) uses Starlight's 'root' key convention * (no URL prefix). All other locales get a URL prefix matching their key. */ export const locales = { root: { label: 'English', lang: 'en', }, 'vi-vn': { label: 'Tiếng Việt', lang: 'vi-VN', }, 'zh-cn': { label: '简体中文', lang: 'zh-CN', }, fr: { label: 'Français', lang: 'fr-FR', }, cs: { label: 'Čeština', lang: 'cs-CZ', }, }; /** * Non-root locale keys (the URL prefixes for translated content). * @type {string[]} */ export const translatedLocales = Object.keys(locales).filter((k) => k !== 'root');