diff options
author | HiDeoo | 2024-07-10 18:06:13 +0200 |
---|---|---|
committer | GitHub | 2024-07-10 18:06:13 +0200 |
commit | 359a64219288795936f18fd50fb5f195c412a748 (patch) | |
tree | 391fe8ae74cd3398d3c5f0a7dbc4fb5197d6d1ba | |
parent | 4442b56fbd704383652871c5e5bd906a94f17b52 (diff) | |
download | IT.starlight-359a64219288795936f18fd50fb5f195c412a748.tar.gz IT.starlight-359a64219288795936f18fd50fb5f195c412a748.tar.bz2 IT.starlight-359a64219288795936f18fd50fb5f195c412a748.zip |
Fix an Astro i18n → Starlight i18n config conversion issue (#2122)
-rw-r--r-- | .changeset/large-bananas-beg.md | 5 | ||||
-rw-r--r-- | packages/starlight/__tests__/basics/i18n.test.ts | 4 | ||||
-rw-r--r-- | packages/starlight/utils/i18n.ts | 11 |
3 files changed, 13 insertions, 7 deletions
diff --git a/.changeset/large-bananas-beg.md b/.changeset/large-bananas-beg.md new file mode 100644 index 00000000..0e22d385 --- /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 527783b9..32dd299a 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 8cba4f5a..ce07b1cc 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, }, }; } |