mirror of
https://github.com/Xahau/xahau-web.git
synced 2026-08-22 02:20:51 +00:00
refactor: consolidate pages into [...lang] optional routing
This commit is contained in:
@@ -2,15 +2,18 @@
|
||||
import '../../styles/main.css'
|
||||
import XahauAbout from '../../components/XahauAbout.astro'
|
||||
import { aboutTranslations } from '../../i18n/aboutTranslations'
|
||||
import { type Locale, nonDefaultLocales } from '../../i18n/locales'
|
||||
import { defaultLocale, type Locale, locales } from '../../i18n/locales'
|
||||
import BaseLayout from '../../layouts/BaseLayout.astro'
|
||||
|
||||
export function getStaticPaths() {
|
||||
return nonDefaultLocales.map((lang) => ({ params: { lang } }))
|
||||
return locales.map((lang) => ({
|
||||
params: { lang: lang === defaultLocale ? undefined : lang },
|
||||
}))
|
||||
}
|
||||
|
||||
const { lang } = Astro.params
|
||||
const t = aboutTranslations[lang as Locale]
|
||||
const locale = (lang as Locale) ?? defaultLocale
|
||||
const t = aboutTranslations[locale]
|
||||
const _frontmatter = { title: t.page_title, description: t.page_subtitle }
|
||||
---
|
||||
|
||||
@@ -2,15 +2,18 @@
|
||||
import '../../styles/main.css'
|
||||
import XahauConnect from '../../components/XahauConnect.astro'
|
||||
import connectData from '../../data/connect.json'
|
||||
import { type Locale, nonDefaultLocales } from '../../i18n/locales'
|
||||
import { defaultLocale, type Locale, locales } from '../../i18n/locales'
|
||||
import BaseLayout from '../../layouts/BaseLayout.astro'
|
||||
|
||||
export function getStaticPaths() {
|
||||
return nonDefaultLocales.map((lang) => ({ params: { lang } }))
|
||||
return locales.map((lang) => ({
|
||||
params: { lang: lang === defaultLocale ? undefined : lang },
|
||||
}))
|
||||
}
|
||||
|
||||
const { lang } = Astro.params
|
||||
const { title, description } = connectData.meta[lang as Locale]
|
||||
const locale = (lang as Locale) ?? defaultLocale
|
||||
const { title, description } = connectData.meta[locale]
|
||||
const _frontmatter = { title, description }
|
||||
---
|
||||
|
||||
@@ -2,15 +2,18 @@
|
||||
import '../../styles/main.css'
|
||||
import XahauContest from '../../components/XahauContest.astro'
|
||||
import { contestTranslations } from '../../i18n/contestTranslations'
|
||||
import { type Locale, nonDefaultLocales } from '../../i18n/locales'
|
||||
import { defaultLocale, type Locale, locales } from '../../i18n/locales'
|
||||
import BaseLayout from '../../layouts/BaseLayout.astro'
|
||||
|
||||
export function getStaticPaths() {
|
||||
return nonDefaultLocales.map((lang) => ({ params: { lang } }))
|
||||
return locales.map((lang) => ({
|
||||
params: { lang: lang === defaultLocale ? undefined : lang },
|
||||
}))
|
||||
}
|
||||
|
||||
const { lang } = Astro.params
|
||||
const t = contestTranslations[lang as Locale]
|
||||
const locale = (lang as Locale) ?? defaultLocale
|
||||
const t = contestTranslations[locale]
|
||||
const _frontmatter = { title: t.page_title, description: t.page_subtitle }
|
||||
---
|
||||
|
||||
@@ -2,16 +2,19 @@
|
||||
import '../../styles/main.css'
|
||||
import XahauEcosystem from '../../components/XahauEcosystem.astro'
|
||||
import ecosystemData from '../../data/ecosystem.json'
|
||||
import { type Locale, nonDefaultLocales } from '../../i18n/locales'
|
||||
import { defaultLocale, type Locale, locales } from '../../i18n/locales'
|
||||
import BaseLayout from '../../layouts/BaseLayout.astro'
|
||||
|
||||
export function getStaticPaths() {
|
||||
return nonDefaultLocales.map((lang) => ({ params: { lang } }))
|
||||
return locales.map((lang) => ({
|
||||
params: { lang: lang === defaultLocale ? undefined : lang },
|
||||
}))
|
||||
}
|
||||
|
||||
const { lang } = Astro.params
|
||||
const title = ecosystemData.title[lang as Locale]
|
||||
const description = ecosystemData.description[lang as Locale]
|
||||
const locale = (lang as Locale) ?? defaultLocale
|
||||
const title = ecosystemData.title[locale]
|
||||
const description = ecosystemData.description[locale]
|
||||
const _frontmatter = { title, description }
|
||||
---
|
||||
|
||||
@@ -2,15 +2,18 @@
|
||||
import '../../styles/main.css'
|
||||
import XahauFeatures from '../../components/XahauFeatures.astro'
|
||||
import { featuresTranslations } from '../../i18n/featuresTranslations'
|
||||
import { type Locale, nonDefaultLocales } from '../../i18n/locales'
|
||||
import { defaultLocale, type Locale, locales } from '../../i18n/locales'
|
||||
import BaseLayout from '../../layouts/BaseLayout.astro'
|
||||
|
||||
export function getStaticPaths() {
|
||||
return nonDefaultLocales.map((lang) => ({ params: { lang } }))
|
||||
return locales.map((lang) => ({
|
||||
params: { lang: lang === defaultLocale ? undefined : lang },
|
||||
}))
|
||||
}
|
||||
|
||||
const { lang } = Astro.params
|
||||
const t = featuresTranslations[lang as Locale] ?? featuresTranslations.en
|
||||
const locale = (lang as Locale) ?? defaultLocale
|
||||
const t = featuresTranslations[locale] ?? featuresTranslations.en
|
||||
const _frontmatter = { title: t.page_title, description: t.page_subtitle }
|
||||
---
|
||||
|
||||
17
src/pages/[...lang]/fraud-report.astro
Normal file
17
src/pages/[...lang]/fraud-report.astro
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
import FraudReportPage from '../../components/FraudReportPage.astro'
|
||||
import { fraudReportTranslations } from '../../i18n/fraudReportTranslations'
|
||||
import { defaultLocale, type Locale, locales } from '../../i18n/locales'
|
||||
|
||||
export function getStaticPaths() {
|
||||
return locales.map((lang) => ({
|
||||
params: { lang: lang === defaultLocale ? undefined : lang },
|
||||
}))
|
||||
}
|
||||
|
||||
const { lang } = Astro.params
|
||||
const locale = (lang as Locale) ?? defaultLocale
|
||||
const t = fraudReportTranslations[locale]
|
||||
---
|
||||
|
||||
<FraudReportPage t={t} />
|
||||
@@ -2,20 +2,23 @@
|
||||
import '../../styles/main.css'
|
||||
import XahauRoadmap from '../../components/XahauRoadmap.astro'
|
||||
import roadmapData from '../../data/roadmap.json'
|
||||
import { type Locale, nonDefaultLocales } from '../../i18n/locales'
|
||||
import { defaultLocale, type Locale, locales } from '../../i18n/locales'
|
||||
import BaseLayout from '../../layouts/BaseLayout.astro'
|
||||
|
||||
export function getStaticPaths() {
|
||||
return nonDefaultLocales.map((lang) => ({ params: { lang } }))
|
||||
return locales.map((lang) => ({
|
||||
params: { lang: lang === defaultLocale ? undefined : lang },
|
||||
}))
|
||||
}
|
||||
|
||||
const { lang } = Astro.params
|
||||
const { title, description } = roadmapData.pageMeta[lang as Locale]
|
||||
const locale = (lang as Locale) ?? defaultLocale
|
||||
const { title, description } = roadmapData.pageMeta[locale]
|
||||
const _frontmatter = { title, description }
|
||||
---
|
||||
|
||||
<BaseLayout frontmatter={_frontmatter}>
|
||||
<div class="page-content flex-1 container mx-auto max-w-7xl p-6">
|
||||
<XahauRoadmap lang={lang} theme="light" />
|
||||
<XahauRoadmap lang={locale} theme="light" />
|
||||
</div>
|
||||
</BaseLayout>
|
||||
@@ -1,14 +0,0 @@
|
||||
---
|
||||
import FraudReportPage from '../../components/FraudReportPage.astro'
|
||||
import { fraudReportTranslations } from '../../i18n/fraudReportTranslations'
|
||||
import { type Locale, nonDefaultLocales } from '../../i18n/locales'
|
||||
|
||||
export function getStaticPaths() {
|
||||
return nonDefaultLocales.map((lang) => ({ params: { lang } }))
|
||||
}
|
||||
|
||||
const { lang } = Astro.params
|
||||
const t = fraudReportTranslations[lang as Locale]
|
||||
---
|
||||
|
||||
<FraudReportPage t={t} />
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
import '../styles/main.css'
|
||||
import XahauAbout from '../components/XahauAbout.astro'
|
||||
import { aboutTranslations } from '../i18n/aboutTranslations'
|
||||
import BaseLayout from '../layouts/BaseLayout.astro'
|
||||
|
||||
const { page_title: title, page_subtitle: description } = aboutTranslations.en
|
||||
const _frontmatter = { title, description }
|
||||
---
|
||||
|
||||
<BaseLayout frontmatter={_frontmatter}>
|
||||
<div class="page-content flex-1 container mx-auto max-w-7xl p-6">
|
||||
<XahauAbout />
|
||||
</div>
|
||||
</BaseLayout>
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
import '../styles/main.css'
|
||||
import XahauConnect from '../components/XahauConnect.astro'
|
||||
import connectData from '../data/connect.json'
|
||||
import BaseLayout from '../layouts/BaseLayout.astro'
|
||||
|
||||
const { title, description } = connectData.meta.en
|
||||
const _frontmatter = { title, description }
|
||||
---
|
||||
|
||||
<BaseLayout frontmatter={_frontmatter}>
|
||||
<div class="page-content flex-1 container mx-auto max-w-7xl p-6">
|
||||
<XahauConnect />
|
||||
</div>
|
||||
</BaseLayout>
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
import '../styles/main.css'
|
||||
import XahauContest from '../components/XahauContest.astro'
|
||||
import { contestTranslations } from '../i18n/contestTranslations'
|
||||
import BaseLayout from '../layouts/BaseLayout.astro'
|
||||
|
||||
const { page_title: title, page_subtitle: description } = contestTranslations.en
|
||||
const _frontmatter = { title, description }
|
||||
---
|
||||
|
||||
<BaseLayout frontmatter={_frontmatter}>
|
||||
<div class="flex-none container mx-auto max-w-7xl p-6 pb-12">
|
||||
<XahauContest />
|
||||
</div>
|
||||
</BaseLayout>
|
||||
@@ -1,17 +0,0 @@
|
||||
---
|
||||
import '../styles/main.css'
|
||||
import XahauEcosystem from '../components/XahauEcosystem.astro'
|
||||
import ecosystemData from '../data/ecosystem.json'
|
||||
import BaseLayout from '../layouts/BaseLayout.astro'
|
||||
|
||||
const _frontmatter = {
|
||||
title: ecosystemData.title.en,
|
||||
description: ecosystemData.description.en,
|
||||
}
|
||||
---
|
||||
|
||||
<BaseLayout frontmatter={_frontmatter}>
|
||||
<div class="page-content flex-1 container mx-auto max-w-7xl p-6">
|
||||
<XahauEcosystem />
|
||||
</div>
|
||||
</BaseLayout>
|
||||
@@ -1,16 +0,0 @@
|
||||
---
|
||||
import '../styles/main.css'
|
||||
import XahauFeatures from '../components/XahauFeatures.astro'
|
||||
import { featuresTranslations } from '../i18n/featuresTranslations'
|
||||
import BaseLayout from '../layouts/BaseLayout.astro'
|
||||
|
||||
const { page_title: title, page_subtitle: description } =
|
||||
featuresTranslations.en
|
||||
const _frontmatter = { title, description }
|
||||
---
|
||||
|
||||
<BaseLayout frontmatter={_frontmatter}>
|
||||
<div class="page-content flex-1 container mx-auto max-w-7xl p-6">
|
||||
<XahauFeatures lang="en" />
|
||||
</div>
|
||||
</BaseLayout>
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
import FraudReportPage from '../components/FraudReportPage.astro'
|
||||
import { fraudReportTranslations } from '../i18n/fraudReportTranslations'
|
||||
---
|
||||
|
||||
<FraudReportPage t={fraudReportTranslations.en} />
|
||||
@@ -1,15 +0,0 @@
|
||||
---
|
||||
import '../styles/main.css'
|
||||
import XahauRoadmap from '../components/XahauRoadmap.astro'
|
||||
import roadmapData from '../data/roadmap.json'
|
||||
import BaseLayout from '../layouts/BaseLayout.astro'
|
||||
|
||||
const { title, description } = roadmapData.pageMeta.en
|
||||
const _frontmatter = { title, description }
|
||||
---
|
||||
|
||||
<BaseLayout frontmatter={_frontmatter}>
|
||||
<div class="page-content flex-1 container mx-auto max-w-7xl p-6">
|
||||
<XahauRoadmap lang="en" theme="light" />
|
||||
</div>
|
||||
</BaseLayout>
|
||||
Reference in New Issue
Block a user