James Bennion-Pedley
2024-05-22 9c726efa3329b647d4fdf346c67dc80762b68077
feat(i18n): homepage link for 404 pages (#1117)

* Add homepage link with internationalization

* Construct pathname from baseUrl config value

* More robust URL manipulation

* Add Farsi (#1133)

* Fix bad rebase
20 files modified
24 ■■■■■ changed files
quartz/components/pages/404.tsx 5 ●●●●● patch | view | raw | blame | history
quartz/i18n/locales/ar-SA.ts 1 ●●●● patch | view | raw | blame | history
quartz/i18n/locales/de-DE.ts 1 ●●●● patch | view | raw | blame | history
quartz/i18n/locales/definition.ts 1 ●●●● patch | view | raw | blame | history
quartz/i18n/locales/en-US.ts 1 ●●●● patch | view | raw | blame | history
quartz/i18n/locales/es-ES.ts 1 ●●●● patch | view | raw | blame | history
quartz/i18n/locales/fa-IR.ts 1 ●●●● patch | view | raw | blame | history
quartz/i18n/locales/fr-FR.ts 1 ●●●● patch | view | raw | blame | history
quartz/i18n/locales/hu-HU.ts 1 ●●●● patch | view | raw | blame | history
quartz/i18n/locales/it-IT.ts 1 ●●●● patch | view | raw | blame | history
quartz/i18n/locales/ja-JP.ts 1 ●●●● patch | view | raw | blame | history
quartz/i18n/locales/ko-KR.ts 1 ●●●● patch | view | raw | blame | history
quartz/i18n/locales/nl-NL.ts 1 ●●●● patch | view | raw | blame | history
quartz/i18n/locales/pl-PL.ts 1 ●●●● patch | view | raw | blame | history
quartz/i18n/locales/pt-BR.ts 1 ●●●● patch | view | raw | blame | history
quartz/i18n/locales/ro-RO.ts 1 ●●●● patch | view | raw | blame | history
quartz/i18n/locales/ru-RU.ts 1 ●●●● patch | view | raw | blame | history
quartz/i18n/locales/uk-UA.ts 1 ●●●● patch | view | raw | blame | history
quartz/i18n/locales/vi-VN.ts 1 ●●●● patch | view | raw | blame | history
quartz/i18n/locales/zh-CN.ts 1 ●●●● patch | view | raw | blame | history
quartz/components/pages/404.tsx
@@ -2,10 +2,15 @@
import { QuartzComponent, QuartzComponentConstructor, QuartzComponentProps } from "../types"
const NotFound: QuartzComponent = ({ cfg }: QuartzComponentProps) => {
  // If baseUrl contains a pathname after the domain, use this as the home link
  const url = new URL(`https://${cfg.baseUrl ?? "example.com"}`)
  const baseDir = url.pathname
  return (
    <article class="popover-hint">
      <h1>404</h1>
      <p>{i18n(cfg.locale).pages.error.notFound}</p>
      <a href={baseDir}>{i18n(cfg.locale).pages.error.home}</a>
    </article>
  )
}
quartz/i18n/locales/ar-SA.ts
@@ -70,6 +70,7 @@
    error: {
      title: "غير موجود",
      notFound: "إما أن هذه الصفحة خاصة أو غير موجودة.",
      home: "العوده للصفحة الرئيسية",
    },
    folderContent: {
      folder: "مجلد",
quartz/i18n/locales/de-DE.ts
@@ -65,6 +65,7 @@
    error: {
      title: "Nicht gefunden",
      notFound: "Diese Seite ist entweder nicht öffentlich oder existiert nicht.",
      home: "Return to Homepage",
    },
    folderContent: {
      folder: "Ordner",
quartz/i18n/locales/definition.ts
@@ -67,6 +67,7 @@
    error: {
      title: string
      notFound: string
      home: string
    }
    folderContent: {
      folder: string
quartz/i18n/locales/en-US.ts
@@ -65,6 +65,7 @@
    error: {
      title: "Not Found",
      notFound: "Either this page is private or doesn't exist.",
      home: "Return to Homepage",
    },
    folderContent: {
      folder: "Folder",
quartz/i18n/locales/es-ES.ts
@@ -65,6 +65,7 @@
    error: {
      title: "No se encontró.",
      notFound: "Esta página es privada o no existe.",
      home: "Regresar a la página principal",
    },
    folderContent: {
      folder: "Carpeta",
quartz/i18n/locales/fa-IR.ts
@@ -65,6 +65,7 @@
    error: {
      title: "یافت نشد",
      notFound: "این صفحه یا خصوصی است یا وجود ندارد",
      home: "بازگشت به صفحه اصلی",
    },
    folderContent: {
      folder: "پوشه",
quartz/i18n/locales/fr-FR.ts
@@ -65,6 +65,7 @@
    error: {
      title: "Introuvable",
      notFound: "Cette page est soit privée, soit elle n'existe pas.",
      home: "Retour à la page d'accueil",
    },
    folderContent: {
      folder: "Dossier",
quartz/i18n/locales/hu-HU.ts
@@ -65,6 +65,7 @@
    error: {
      title: "Nem található",
      notFound: "Ez a lap vagy privát vagy nem létezik.",
      home: "Vissza a kezdőlapra",
    },
    folderContent: {
      folder: "Mappa",
quartz/i18n/locales/it-IT.ts
@@ -65,6 +65,7 @@
    error: {
      title: "Non trovato",
      notFound: "Questa pagina è privata o non esiste.",
      home: "Ritorna alla home page",
    },
    folderContent: {
      folder: "Cartella",
quartz/i18n/locales/ja-JP.ts
@@ -65,6 +65,7 @@
    error: {
      title: "Not Found",
      notFound: "ページが存在しないか、非公開設定になっています。",
      home: "ホームページに戻る",
    },
    folderContent: {
      folder: "フォルダ",
quartz/i18n/locales/ko-KR.ts
@@ -65,6 +65,7 @@
    error: {
      title: "Not Found",
      notFound: "페이지가 존재하지 않거나 비공개 설정이 되어 있습니다.",
      home: "홈페이지로 돌아가기",
    },
    folderContent: {
      folder: "폴더",
quartz/i18n/locales/nl-NL.ts
@@ -66,6 +66,7 @@
    error: {
      title: "Niet gevonden",
      notFound: "Deze pagina is niet zichtbaar of bestaat niet.",
      home: "Keer terug naar de start pagina",
    },
    folderContent: {
      folder: "Map",
quartz/i18n/locales/pl-PL.ts
@@ -65,6 +65,7 @@
    error: {
      title: "Nie znaleziono",
      notFound: "Ta strona jest prywatna lub nie istnieje.",
      home: "Powrót do strony głównej",
    },
    folderContent: {
      folder: "Folder",
quartz/i18n/locales/pt-BR.ts
@@ -65,6 +65,7 @@
    error: {
      title: "Não encontrado",
      notFound: "Esta página é privada ou não existe.",
      home: "Retornar a página inicial",
    },
    folderContent: {
      folder: "Arquivo",
quartz/i18n/locales/ro-RO.ts
@@ -66,6 +66,7 @@
    error: {
      title: "Pagina nu a fost găsită",
      notFound: "Fie această pagină este privată, fie nu există.",
      home: "Reveniți la pagina de pornire",
    },
    folderContent: {
      folder: "Dosar",
quartz/i18n/locales/ru-RU.ts
@@ -67,6 +67,7 @@
    error: {
      title: "Страница не найдена",
      notFound: "Эта страница приватная или не существует",
      home: "Вернуться на главную страницу",
    },
    folderContent: {
      folder: "Папка",
quartz/i18n/locales/uk-UA.ts
@@ -65,6 +65,7 @@
    error: {
      title: "Не знайдено",
      notFound: "Ця сторінка або приватна, або не існує.",
      home: "Повернутися на головну сторінку",
    },
    folderContent: {
      folder: "Папка",
quartz/i18n/locales/vi-VN.ts
@@ -65,6 +65,7 @@
    error: {
      title: "Không Tìm Thấy",
      notFound: "Trang này được bảo mật hoặc không tồn tại.",
      home: "Trở về trang chủ",
    },
    folderContent: {
      folder: "Thư Mục",
quartz/i18n/locales/zh-CN.ts
@@ -65,6 +65,7 @@
    error: {
      title: "无法找到",
      notFound: "私有笔记或笔记不存在。",
      home: "返回首页",
    },
    folderContent: {
      folder: "文件夹",