Неизвестный язык в NextJS
Сегмент [lang] принимает любую
строку: пользователь может набрать
/de или /xx, хотя словарь
поддерживает только часть кодов.
Обращение к dictionaries[lang]
тогда даст пустой результат или ошибку.
Заранее зададим список допустимых
кодов. Если lang не входит
в этот список, вызовем функцию
notFound из next/navigation -
NextJS ответит статусом «страница
не найдена». Давайте проверим язык
в начале страницы:
import { notFound } from 'next/navigation';
import { dictionaries } from '../../dictionaries';
let locales = ['en', 'ru'];
export default async function HomePage({ params }) {
let { lang } = await params;
if (!locales.includes(lang)) {
return notFound();
}
let dict = dictionaries[lang];
return <h1>{dict.title}</h1>;
}
Ограничьте список языков двумя
кодами и подключите проверку
на главной и на странице about.
Откройте адрес с вымышленным кодом языка и убедитесь, что показывается стандартная страница «не найдено».