Как настроить маршрутизацию на основе домена с Intlayer вместо путей /[locale]/?
Краткий ответ
Маршрутизация на основе домена проще, чем маршрутизация на основе пути (example.com/[locale]/), потому что вы можете пропустить всю настройку middleware и маршрутизации. Просто разверните ваше приложение на каждом языковом домене и установите одну переменную окружения для каждого домена.
Пошагово
- Разверните приложение для каждого домена (
example.com,exemple.fr,ejemplo.es, …). - Для каждого развертывания установите
LOCALE(и обычные переменные окружения Intlayer) в локаль, которую должен обслуживать этот домен. - Ссылайтесь на эту переменную как на
defaultLocaleв вашем файлеintlayer.config.[ts|js].
Копировать код в буфер обмена
Вот и всё - работает одинаково для Next.js, Vite + React, Vite + Vue и т.д.
Что если все домены указывают на одно и то же развертывание?
Если все домены указывают на один и тот же пакет приложения, вам нужно будет определить хост во время выполнения и вручную передать локаль через провайдер.
Для Next.js
Копировать код в буфер обмена
Для Vue
Копировать код в буфер обмена
Замените getLocaleFromHostname() на вашу собственную логику определения локали.
Обновите переключатель локали
При использовании маршрутизации на основе доменов смена языка означает переход на другой домен:
Копировать код в буфер обмена
Преимущества маршрутизации на основе доменов
- Проще конфигурация: Нет необходимости настраивать
intlayerProxy,generateStaticParams,react-routerилиvue-router - Лучшее SEO: Для каждого языка используется собственный домен
- Чище URL: В пути отсутствует префикс локали
- Проще в обслуживании: Развёртывание для каждого языка независимо