From 8e41a7a9014e680ea0413ec19dc8fa73d7d6dd5a Mon Sep 17 00:00:00 2001 From: Chris Swithinbank Date: Sun, 18 Jun 2023 00:13:34 +0200 Subject: [PATCH] Make default 404 text i18n-able --- packages/starlight/404.astro | 21 +++++++++---------- packages/starlight/components/Default404.md | 1 - .../starlight/components/EmptyMarkdown.md | 0 packages/starlight/schemas/i18n.ts | 4 ++++ packages/starlight/translations/de.json | 3 ++- packages/starlight/translations/en.json | 3 ++- packages/starlight/translations/es.json | 3 ++- packages/starlight/translations/fr.json | 3 ++- packages/starlight/translations/it.json | 3 ++- packages/starlight/translations/ja.json | 3 ++- packages/starlight/translations/pt.json | 3 ++- 11 files changed, 28 insertions(+), 19 deletions(-) delete mode 100644 packages/starlight/components/Default404.md create mode 100644 packages/starlight/components/EmptyMarkdown.md diff --git a/packages/starlight/404.astro b/packages/starlight/404.astro index 69d9fdaf1e..ecd954471b 100644 --- a/packages/starlight/404.astro +++ b/packages/starlight/404.astro @@ -1,37 +1,36 @@ --- import { getEntry } from 'astro:content'; import config from 'virtual:starlight/user-config'; -import * as default404 from './components/Default404.md'; +import EmptyContent from './components/EmptyMarkdown.md'; import Page from './layout/Page.astro'; import type { StarlightDocsEntry } from './utils/routing'; +import { useTranslations } from './utils/translations'; const { lang = 'en', dir = 'ltr', locale } = config.defaultLocale || {}; const entryMeta = { dir, lang, locale }; +const t = useTranslations(locale); const fallbackEntry: StarlightDocsEntry = { slug: '404', id: '404.md' as StarlightDocsEntry['id'], - body: default404.rawContent(), + body: '', collection: 'docs', data: { - title: 'Not found', + title: '404', template: 'splash', editUrl: false, head: [], - hero: { - title: '404', - tagline: 'Houston we have a problem.', - actions: [], - }, + hero: { tagline: t('404.text'), actions: [] }, }, render: async () => ({ - Content: default404.Content, - headings: default404.getHeadings(), + Content: EmptyContent, + headings: [], remarkPluginFrontmatter: {}, }), }; -const entry = (await getEntry('docs', '404')) || fallbackEntry; +const userEntry = await getEntry('docs', '404'); +const entry = userEntry || fallbackEntry; const { Content, headings } = await entry.render(); --- diff --git a/packages/starlight/components/Default404.md b/packages/starlight/components/Default404.md deleted file mode 100644 index 8694af0284..0000000000 --- a/packages/starlight/components/Default404.md +++ /dev/null @@ -1 +0,0 @@ -We couldn’t find that link. Check the address or try searching for what you were looking for. diff --git a/packages/starlight/components/EmptyMarkdown.md b/packages/starlight/components/EmptyMarkdown.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/starlight/schemas/i18n.ts b/packages/starlight/schemas/i18n.ts index 90069de431..86f7740c12 100644 --- a/packages/starlight/schemas/i18n.ts +++ b/packages/starlight/schemas/i18n.ts @@ -94,6 +94,10 @@ function starlightI18nSchema() { .describe( 'Label shown on the “next page” pagination arrow in the page footer.' ), + + '404.text': z + .string() + .describe('Text shown on Starlight’s default 404 page'), }) .partial(); } diff --git a/packages/starlight/translations/de.json b/packages/starlight/translations/de.json index ca4c4035bc..f63f838728 100644 --- a/packages/starlight/translations/de.json +++ b/packages/starlight/translations/de.json @@ -16,5 +16,6 @@ "page.editLink": "Seite bearbeiten", "page.lastUpdated": "Zuletzt bearbeitet:", "page.previousLink": "Vorherige Seite", - "page.nextLink": "Nächste Seite" + "page.nextLink": "Nächste Seite", + "404.text": "Seite nicht gefunden. Überprüfe die URL oder nutze die Suchleiste." } diff --git a/packages/starlight/translations/en.json b/packages/starlight/translations/en.json index 76e9057972..ab2bda4f4b 100644 --- a/packages/starlight/translations/en.json +++ b/packages/starlight/translations/en.json @@ -16,5 +16,6 @@ "page.editLink": "Edit page", "page.lastUpdated": "Last updated:", "page.previousLink": "Previous", - "page.nextLink": "Next" + "page.nextLink": "Next", + "404.text": "Page not found. Check the URL or try using the search bar." } diff --git a/packages/starlight/translations/es.json b/packages/starlight/translations/es.json index d92186ebc8..27f1d27d6a 100644 --- a/packages/starlight/translations/es.json +++ b/packages/starlight/translations/es.json @@ -16,5 +16,6 @@ "page.editLink": "Edita esta página", "page.lastUpdated": "Última actualización:", "page.previousLink": "Página anterior", - "page.nextLink": "Siguiente página" + "page.nextLink": "Siguiente página", + "404.text": "Página no encontrada. Verifique la URL o intente usar la barra de búsqueda." } diff --git a/packages/starlight/translations/fr.json b/packages/starlight/translations/fr.json index 617826aee9..0955caef68 100644 --- a/packages/starlight/translations/fr.json +++ b/packages/starlight/translations/fr.json @@ -16,5 +16,6 @@ "page.editLink": "Editer la page", "page.lastUpdated": "Dernière mise à jour :", "page.previousLink": "Précédent", - "page.nextLink": "Suivant" + "page.nextLink": "Suivant", + "404.text": "Page non trouvée. Vérifiez l'URL ou essayez d'utiliser la barre de recherche." } diff --git a/packages/starlight/translations/it.json b/packages/starlight/translations/it.json index 649d14d8df..97543d209e 100644 --- a/packages/starlight/translations/it.json +++ b/packages/starlight/translations/it.json @@ -16,5 +16,6 @@ "page.editLink": "Modifica pagina", "page.lastUpdated": "Ultimo aggiornamento:", "page.previousLink": "Indietro", - "page.nextLink": "Avanti" + "page.nextLink": "Avanti", + "404.text": "Pagina non trovata. Verifica l'URL o prova a utilizzare la barra di ricerca." } diff --git a/packages/starlight/translations/ja.json b/packages/starlight/translations/ja.json index a03a897861..7c2f825279 100644 --- a/packages/starlight/translations/ja.json +++ b/packages/starlight/translations/ja.json @@ -16,5 +16,6 @@ "page.editLink": "ページを編集", "page.lastUpdated": "最終更新日:", "page.previousLink": "前へ", - "page.nextLink": "次へ" + "page.nextLink": "次へ", + "404.text": "ページが見つかりません。 URL を確認するか、検索バーを使用してみてください。" } diff --git a/packages/starlight/translations/pt.json b/packages/starlight/translations/pt.json index 32972604cf..4b6ca768d4 100644 --- a/packages/starlight/translations/pt.json +++ b/packages/starlight/translations/pt.json @@ -16,5 +16,6 @@ "page.editLink": "Editar página", "page.lastUpdated": "Última atualização:", "page.previousLink": "Anterior", - "page.nextLink": "Próximo" + "page.nextLink": "Próximo", + "404.text": "Página não encontrada. Verifique o URL ou tente usar a barra de pesquisa." }