Задайте питання та отримайте підсумок документа, вказавши цю сторінку та обраного вами постачальника штучного інтелекту
Історія версій
- "Параметр configOptions об'єднано в один об'єкт налаштувань; проксі вбудовано в intlayer()"v9.0.025.06.2026
Вміст цієї сторінки перекладено за допомогою штучного інтелекту.
Переглянути останню версію оригінального вмісту англійськоюЯкщо у вас є ідея щодо покращення цієї документації, будь ласка, долучіться, надіславши pull request на GitHub.
Посилання на документацію на GitHubСкопіювати документацію у форматі Markdown в буфер обміну
intlayerProxy
intlayerProxy: це плагін Vite, який реєструє проміжне програмне забезпечення (middleware) локалізації роутингу для будь-якого середовища: dev-сервера, preview-сервера та продакшен SSR (Nitro / TanStack Start).
Починаючи з Intlayer v9,intlayerProxyавтоматично включається в основний плагінintlayer()і активований за замовчуванням за допомогою налаштуванняrouting.enableProxy: true. Вам потрібно реєструвати його окремо лише в тому випадку, якщо вам потрібен низькорівневий контроль або якщо ви використовуєте його за межами стандартної конфігураціїintlayer().
Використання
У складі intlayer() (рекомендовано, v9+)
Передайте параметри proxy в основний плагін замість окремої реєстрації intlayerProxy:
Скопіюйте код у буфер обміну
Окремо (за необхідності)
Скопіюйте код у буфер обміну
Параметри
Скопіюйте код у буфер обміну
Усі параметри є необов'язковими і передаються у вигляді єдиного об'єкта:
Відкрийте таблицю в модальному вікні, щоб чітко переглянути всі дані
| Параметр | Тип | Опис |
|---|---|---|
ignore | (req: IncomingMessage) => boolean | Предикат, який виключає запити з локалізації роутингу. Поверніть true, щоб пропустити запит (наприклад, для роутів API, health check-ів). |
configOptions | GetConfigurationOptions | Перевизначення конфігурації Intlayer, що передаються в getConfiguration(). Використовуйте, коли вам потрібно, щоб проксі читав конкретний конфігураційний файл або перевизначав значення. |
Приклад
Скопіюйте код у буфер обміну
createIntlayerProxyHandler
createIntlayerProxyHandler створює незалежний від фреймворку Node.js middleware (req, res, next), який містить всю логіку локалізації роутингу. Це корисно в середовищах, де API плагінів Vite недоступний (наприклад, на звичайному сервері Node.js або в кастомному модулі Nitro).
Скопіюйте код у буфер обміну
Продакшен SSR (TanStack Start / Nitro через h3)
Скопіюйте код у буфер обміну
Поведінка роутингу
Цей middleware дублює логіку роутингу з middleware next-intlayer і підтримує всі режими роутингу Intlayer.
Режими роутингу
Відкрийте таблицю в модальному вікні, щоб чітко переглянути всі дані
| Режим | URL видно в браузері | Поведінка |
|---|---|---|
prefix | /uk/about | За замовчуванням. Префікс мови в URL. Мова за замовчуванням перенаправляє на URL без префікса, якщо не активний prefix-all. |
prefix-all | /en/about, /uk/about | Усі мови (включаючи мову за замовчуванням) завжди мають префікс в URL. |
no-prefix | /about | Немає мови в URL. Мова зберігається тільки в cookies; перезапис URL відбувається на внутрішньому рівні. |
search-params | /about?locale=uk | Мова передається як query-параметр. Перенаправляє для додавання/оновлення параметра locale, якщо він відсутній або застарів. |
Пріоритет визначення
- Префікс шляху URL (наприклад,
/uk/about→uk). - Значення в cookie / localStorage (
intlayer-locale). - Заголовок
Accept-Language. defaultLocaleз конфігурації.
Автоматичний обхід (Bypass)
Цей middleware завжди пропускає наступні запити безпосередньо без обробки локалі:
- Запити, що відповідають предикату
ignore. /node_modules/**/@**: внутрішні запити Vite (@vite/,@fs/,@id/тощо)./_**: внутрішні запити сервера (__vite_ping,__manifestтощо).- Запити, шлях яких закінчується розширенням файлу (статичні файли). Якщо в шляху статичного файлу присутній мовний префікс (наприклад,
/uk/logo.png), він видаляється, щоб файл міг бути відданий коректно.
Роутинг по доменах
Коли у вашій конфігурації Intlayer налаштовано параметр routing.domains, цей middleware обробляє роутинг мов між різними доменами:
- Запит для
/zh/aboutна доменіintlayer.orgперенаправляється наhttps://intlayer.zh/about, колиdomains.zh = "intlayer.zh". - Запит до
intlayer.zh/aboutвнутрішньо переписується в/zh/about, щоб заповнився параметр маршруту[locale].
Захист від нескінченного редиректу
Цей middleware відстежує кількість перенаправлень для пари originalUrl → newUrl у рухомому 2-секундному вікні. Більше 10 перенаправлень у цьому вікні повертають помилку 500 із докладним описом замість нескінченного циклу.
Nitro / SSR у продакшені (автоматичне впровадження, v9+)
Коли intlayerProxy використовується як плагін Vite, він містить властивість .nitro. Плагін збірки nitro/vite зчитує цю властивість і поміщає її в nitroConfig.modules, завдяки чому intlayerNitroHandler реєструється як middleware сервера Nitro автоматично, для продакшен SSR не потрібне ручне налаштування.
Обробник Nitro використовує модель подій Web Fetch API h3 v2 (а не fromNodeMiddleware), тому він сумісний з усіма пресетами Nitro: Node, Bun, Deno, edge runtimes.
Застарілі аліаси
Відкрийте таблицю в модальному вікні, щоб чітко переглянути всі дані
| Застарілий експорт | Заміна |
|---|---|
intlayerMiddleware | intlayerProxy |
intLayerMiddlewarePlugin | intlayerProxy |
