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

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

Проблема

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

Решение

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

Шаги

1. Доступ к параметру lang в корневом макете

В маршрутизаторе Next.js App файл 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">. Это простое изменение корректно информирует программы чтения с экрана, поисковые системы и браузеры о том, на каком языке написано содержимое.