Як налаштувати маршрутизацію на основі домену в 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-адреси: Немає префікса локалі в шляху
- Простіше обслуговування: Розгортання для кожної мови незалежне