From 359a64219288795936f18fd50fb5f195c412a748 Mon Sep 17 00:00:00 2001 From: HiDeoo <494699+HiDeoo@users.noreply.github.com> Date: Wed, 10 Jul 2024 18:06:13 +0200 Subject: [PATCH] =?UTF-8?q?Fix=20an=20Astro=20i18n=20=E2=86=92=20Starlight?= =?UTF-8?q?=20i18n=20config=20conversion=20issue=20(#2122)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .changeset/large-bananas-beg.md | 5 +++++ packages/starlight/__tests__/basics/i18n.test.ts | 4 ++-- packages/starlight/utils/i18n.ts | 11 ++++++----- 3 files changed, 13 insertions(+), 7 deletions(-) create mode 100644 .changeset/large-bananas-beg.md diff --git a/.changeset/large-bananas-beg.md b/.changeset/large-bananas-beg.md new file mode 100644 index 00000000000..0e22d385a67 --- /dev/null +++ b/.changeset/large-bananas-beg.md @@ -0,0 +1,5 @@ +--- +'@astrojs/starlight': patch +--- + +Fixes an i18n configuration issue for multilingual sites when using Astro’s `i18n` config with `prefixDefaultLocale` set to `false`. diff --git a/packages/starlight/__tests__/basics/i18n.test.ts b/packages/starlight/__tests__/basics/i18n.test.ts index 527783b9a01..32dd299aae1 100644 --- a/packages/starlight/__tests__/basics/i18n.test.ts +++ b/packages/starlight/__tests__/basics/i18n.test.ts @@ -162,7 +162,7 @@ describe('processI18nConfig', () => { locales: ['en', { codes: ['fr'], path: 'french' }], }, expected: { - defaultLocale: { label: 'English', lang: 'en', dir: 'ltr', locale: 'en' }, + defaultLocale: { label: 'English', lang: 'en', dir: 'ltr', locale: undefined }, locales: { root: { label: 'English', lang: 'en', dir: 'ltr' }, french: { label: 'Français', lang: 'fr', dir: 'ltr' }, @@ -180,7 +180,7 @@ describe('processI18nConfig', () => { routing: { prefixDefaultLocale: false }, }, expected: { - defaultLocale: { label: 'فارسی', lang: 'fa', dir: 'rtl', locale: 'fa' }, + defaultLocale: { label: 'فارسی', lang: 'fa', dir: 'rtl', locale: undefined }, locales: { root: { label: 'فارسی', lang: 'fa', dir: 'rtl' }, de: { label: 'Deutsch', lang: 'de', dir: 'ltr' }, diff --git a/packages/starlight/utils/i18n.ts b/packages/starlight/utils/i18n.ts index 8cba4f5a2bb..ce07b1cc4d8 100644 --- a/packages/starlight/utils/i18n.ts +++ b/packages/starlight/utils/i18n.ts @@ -118,11 +118,12 @@ function getStarlightI18nConfig( locales, defaultLocale: { ...inferStarlightLocaleFromAstroLocale(defaultAstroLocale), - locale: isMonolingualWithRootLocale - ? undefined - : isAstroLocaleExtendedConfig(defaultAstroLocale) - ? defaultAstroLocale.codes[0] - : defaultAstroLocale, + locale: + isMonolingualWithRootLocale || (isMultilingual && !prefixDefaultLocale) + ? undefined + : isAstroLocaleExtendedConfig(defaultAstroLocale) + ? defaultAstroLocale.codes[0] + : defaultAstroLocale, }, }; }