Установка языка документа

Указание языка страницы для доступности и SEO

Проблема

Веб-страница отображается на французском языке, но сам HTML-документ не помечен соответствующим образом (например, <html lang="en">). Если не указать язык, скринридеры будут пытаться произносить французский текст с английским акцентом. Кроме того, браузеры не смогут предложить автоматический перевод, а поисковые системы — корректно индексировать страницу.

Решение

Считайте параметр lang из URL в корневом компоненте layout. Передайте этот параметр lang в атрибут lang элемента <html>. Это явно укажет язык всего документа для браузеров и вспомогательных технологий.

Шаги

1. Получите параметр lang в корневом layout

В Next.js App Router файл layout.tsx внутри динамического сегмента (например, [lang]) автоматически получает значение этого сегмента как пропс params.

2. Установите атрибут lang на элемент <html>

Измените файл app/[lang]/layout.tsx, чтобы принимать пропс params и применять его свойство lang к атрибуту lang тега <html>.

// app/[lang]/layout.tsx

export default function RootLayout({
  children,
  params,
}: {
  children: React.ReactNode;
  params: { lang: string };
}) {
  return (
    <html lang={params.lang}>
      <body>{children}</body>
    </html>
  );
}

Это гарантирует, что при запросе к /fr/about сгенерированная страница начнётся с <html lang="fr">. Такое простое изменение корректно информирует скринридеры, поисковые системы и браузеры о языке содержимого.