Skip to content

Commit a4723c4

Browse files
committed
Fixed redirection for non existing locales
1 parent 4e43f07 commit a4723c4

File tree

3 files changed

+35
-2
lines changed

3 files changed

+35
-2
lines changed

components/pages/404.tsx

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import Link from "next/link";
2+
3+
export default function PageNotFound() {
4+
return (
5+
<div className="flex flex-col items-center justify-center w-full h-screen gap-5 text-lg">
6+
404: Page Not Found
7+
<Link
8+
href="/"
9+
className="px-4 py-2 bg-gray-300 rounded-md hover:opacity-70"
10+
>
11+
Go Back
12+
</Link>
13+
</div>
14+
);
15+
}

pages/[locale]/about.tsx

+10-1
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,22 @@ import { NextPage } from "next";
22
import AboutPage from "../../components/pages/about";
33
import {
44
AvailableLanguageTag,
5+
availableLanguageTags,
56
setLanguageTag,
67
} from "../../src/paraglide/runtime";
78
import { useRouter } from "next/router";
9+
import PageNotFound from "../../components/pages/404";
810

911
const About: NextPage = () => {
1012
const router = useRouter();
11-
setLanguageTag(router.query.locale as AvailableLanguageTag);
13+
14+
if (
15+
availableLanguageTags.includes(router.query.locale as AvailableLanguageTag)
16+
) {
17+
setLanguageTag(router.query.locale as AvailableLanguageTag);
18+
} else if (router.query.locale) {
19+
return <PageNotFound />;
20+
}
1221

1322
return <AboutPage />;
1423
};

pages/[locale]/index.tsx

+10-1
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,22 @@ import { NextPage } from "next";
22
import HomePage from "../../components/pages/home";
33
import {
44
AvailableLanguageTag,
5+
availableLanguageTags,
56
setLanguageTag,
67
} from "../../src/paraglide/runtime";
78
import { useRouter } from "next/router";
9+
import PageNotFound from "../../components/pages/404";
810

911
const Home: NextPage = () => {
1012
const router = useRouter();
11-
setLanguageTag(router.query.locale as AvailableLanguageTag);
13+
14+
if (
15+
availableLanguageTags.includes(router.query.locale as AvailableLanguageTag)
16+
) {
17+
setLanguageTag(router.query.locale as AvailableLanguageTag);
18+
} else if (router.query.locale) {
19+
return <PageNotFound />;
20+
}
1221

1322
return <HomePage />;
1423
};

0 commit comments

Comments
 (0)