Задайте питання та отримайте підсумок документа, вказавши цю сторінку та обраного вами постачальника штучного інтелекту
Ця документація застаріла, базову версію оновлено станом на 29 серпня 2026 р..
Перейти до англійської версії документаІсторія версій
- "Оновлення використання API useIntlayer у Solid для прямого доступу до властивостей"v8.9.004.05.2026
- "Початкова документація для Astro + Vanilla JS"v8.7.724.04.2026
Вміст цієї сторінки перекладено за допомогою штучного інтелекту.
Переглянути останню версію оригінального вмісту англійськоюЯкщо у вас є ідея щодо покращення цієї документації, будь ласка, долучіться, надіславши pull request на GitHub.
Посилання на документацію на GitHubСкопіювати документацію у форматі Markdown в буфер обміну
Перекладіть свій сайт Astro + Vanilla JS за допомогою Intlayer | Інтернаціоналізація (i18n)
Зміст
Чому варто обрати Intlayer, а не альтернативи?
Порівняно з основними рішеннями, такими як astro-i18n або i18next, Intlayer — це рішення, яке має такі інтегровані оптимізації, як:
Intlayer оптимізовано для ідеальної роботи з Astro, пропонуючи багатомовну маршрутизацію, карту сайту та всі функції, необхідні для масштабування інтернаціоналізації (i18n).
Замість того, щоб завантажувати великі файли JSON на свої сторінки, завантажуйте лише необхідний вміст. Intlayer допомагає зменшити розмір бандлу і сторінок до 50%.
Організація вмісту за окремими областями (scoping) полегшує технічне обслуговування великомасштабних програм. Ви можете скопіювати або видалити окрему папку функцій без розумового навантаження перегляду всієї кодової бази вмісту. Крім того, Intlayer повністю типізований (fully typed), щоб забезпечити точність вашого вмісту.
Спільне розміщення вмісту зменшує контекст, необхідний для великих мовних моделей (LLM). Intlayer також постачається з набором інструментів, наприклад CLI для перевірки відсутніх перекладів,LSP, MCP і agent skills, щоб зробити роботу розробника (DX) ще зручнішою для агентів ШІ.
Використовуйте автоматизацію для перекладу в конвеєрі CI/CD за допомогою LLM за вашим вибором за рахунок вашого постачальника штучного інтелекту. Intlayer також пропонує компілятор для автоматизації екстракція вмісту, а також веб-платформу, щоб допомогти перекладати у фоновому режимі.
Підключення великих файлів JSON до компонентів може призвести до проблем з продуктивністю та реакцією. Intlayer оптимізує завантаження вмісту під час збірки (build time).
Більше ніж просто рішення i18n, Intlayer пропонує власний візуальний редактор і повний CMS, щоб допомогти вам керувати своїм багатомовним вмістом у реальному часі, спрощуючи співпрацю з перекладачами, копірайтерами та іншими членами команди. Контент можна зберігати локально та/або віддалено.
Покрокова інструкція з налаштування Intlayer в Astro + Vanilla JS
Перегляньте шаблон додатка на GitHub.
Встановіть залежності
Встановіть необхідні пакети за допомогою бажаного менеджера пакетів:
bashКопіювати кодСкопіюйте код у буфер обміну
прапорець
--interactiveне є обов'язковим. Використовуйтеintlayer-cli init, якщо ви є ШІ-агентом.Ця команда виявить ваше середовище та встановить необхідні пакети. Наприклад:
bashКопіювати кодСкопіюйте код у буфер обміну
intlayer Основний пакет, що надає інструменти i18n для керування конфігурацією, перекладами, декларацією вмісту, транспіляцією та командами CLI.
astro-intlayer Плагін інтеграції Astro для зв'язку Intlayer з бандлером Vite; він також включає middleware для визначення бажаної мови користувача, керування cookie та обробки перенаправлень URL.
vanilla-intlayer Пакет для інтеграції Intlayer у додатки Vanilla JavaScript / TypeScript. Він надає синглтон Pub/Sub (
IntlayerClient) та допоміжні функції на основі callback-функцій (useIntlayer,useLocaleтощо), щоб будь-яка частина вашого<script>в Astro могла реагувати на зміни мови без потреби у фреймворку UI.
Налаштуйте свій проект
Створіть конфігураційний файл, щоб визначити мови вашого додатка:
intlayer.config.tsКопіювати кодСкопіюйте код у буфер обміну
Через цей конфігураційний файл ви можете налаштувати локалізовані URL-адреси, перенаправлення middleware, імена cookie, розташування та розширення декларацій вмісту, вимкнути логи Intlayer у консолі та багато іншого. Повний список доступних параметрів дивіться в документації з конфігурації.
Інтегруйте Intlayer у вашу конфігурацію Astro
Додайте плагін
intlayerдо вашої конфігурації Astro. Для Vanilla JS не потрібні додаткові інтеграції фреймворків UI.astro.config.tsКопіювати кодСкопіюйте код у буфер обміну
Плагін інтеграції
intlayer()використовується для інтеграції Intlayer з Astro. Він забезпечує генерацію файлів декларації вмісту та стежить за ними в режимі розробки. Він визначає змінні середовища Intlayer всередині додатка Astro та надає аліаси для оптимізації продуктивності.Декларуйте свій вміст
Створюйте та керуйте своїми деклараціями вмісту для зберігання перекладів:
src/app.content.tsКопіювати кодСкопіюйте код у буфер обміну
Декларації вмісту можна визначати в будь-якому місці вашого додатка, за умови, що вони включені в
contentDir(за замовчуванням./src) і відповідають розширенню файлів декларації вмісту (за замовчуванням.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}).Для отримання додаткової інформації дивіться документацію з декларації вмісту.
Використання вмісту в Astro
З Vanilla JS весь серверний рендеринг (SSR) відбувається безпосередньо у файлах
.astroза допомогоюgetIntlayer. Потім на стороні клієнта блок<script>ініціалізує бібліотекуvanilla-intlayerдля увімкнення перемикання мов.src/pages/[...locale]/index.astroКопіювати кодСкопіюйте код у буфер обміну
Якщо ви хочете використовувати свій контент в атрибуті
рядка, такому якalt,title,href,aria-labelтощо, ви можете використовувати значення функції, наприклад:tsxКопіювати кодСкопіюйте код у буфер обміну
Примітка щодо налаштування маршрутизації: Структура каталогів, яку ви використовуєте, залежить від параметра
middleware.routingуintlayer.config.ts:prefix-no-default(за замовчуванням): Зберігає мову за замовчуванням у корені (без префікса) та додає префікси до інших. Використовуйте[...locale], щоб охопити всі випадки.prefix-all: Усі URL-адреси отримують префікс мови. Ви можете використовувати стандартний[locale], якщо вам не потрібно окремо обробляти корінь.search-paramабоno-prefix: Каталоги мов не потрібні. Мова керується за допомогою параметрів запиту або cookie.
Додавання перемикача мов
В Astro з Vanilla JS перемикач мов генерується на сервері як звичайні посилання і активується на стороні клієнта за допомогою блоку
<script>. Коли користувач натискає на посилання мови,vanilla-intlayerвстановлює cookie мови за допомогоюsetLocaleперед переходом на локалізовану URL-адресу.src/pages/[...locale]/index.astroКопіювати кодСкопіюйте код у буфер обміну
Примітка щодо стійкості:
installIntlayerініціалізує синглтон Intlayer з мовою, визначеною сервером.useLocaleразом зonLocaleChangeзабезпечують встановлення cookie мови перед перенаправленням через middleware, що дозволяє мові користувача зберігатися для майбутніх візитів.Примітка щодо Progressive Enhancement: Посилання всередині перемикача мов працюватимуть як стандартні теги
<a>навіть без JavaScript. Коли JavaScript доступний, викликsetLocaleоновлює cookie перед перенаправленням, забезпечуючи правильну обробку вибору мови посередником (middleware).Sitemap та Robots.txt
Intlayer пропонує інструменти для динамічного створення локалізованої карти сайту та файлу robots.txt.
Sitemap
Intlayer comes with a built-in sitemap generator to help you create a sitemap for your application easily. It handles localized routes and adds the necessary metadata for search engines.
The Intlayer generated sitemap supports the
xhtml:linknamespace (Hreflang XML Extensions). Unlike the default sitemap generators that only list raw URLs, Intlayer automatically creates the required bidirectional links between all language versions of a page (e.g.,/about,/about?lang=fr, and/about?lang=es). This ensures search engines correctly index and serve the right language version to the right audience.Створіть
src/pages/sitemap.xml.tsдля генерації карти сайту, що охоплює всі ваші локалізовані маршрути.src/pages/sitemap.xml.tsКопіювати кодСкопіюйте код у буфер обміну
Robots.txt
Створіть
src/pages/robots.txt.tsдля керування скануванням пошуковими системами.src/pages/robots.txt.tsКопіювати кодСкопіюйте код у буфер обміну
Витягніть вміст ваших компонентів
Необов'язковоЯкщо у вас є існуюча кодова база, перетворення тисяч файлів може зайняти багато часу.
Щоб спростити цей процес, Intlayer пропонує компілятор / екстрактор для перетворення ваших компонентів і витягування вмісту.
Щоб налаштувати його, ви можете додати розділ
compilerу свій файлintlayer.config.ts:intlayer.config.tsКопіювати кодСкопіюйте код у буфер обміну
import { type IntlayerConfig } from "intlayer"; const config: IntlayerConfig = { // ... Інша частина вашої конфігурації compiler: { /** * Вказує, чи повинен бути включений компілятор. */ enabled: true, /** * Визначає шлях до вихідних файлів */ output: ({ fileName, extension }) => `./${fileName}${extension}`, /** * Вказує, чи повинні компоненти зберігатися після перетворення. Таким чином, компілятор можна запустити лише один раз для перетворення програми, а потім видалити. */ saveComponents: false, /** * Префікс ключа словника */ dictionaryKeyPrefix: "", }, }; export default config;Запустіть екстрактор для перетворення компонентів і витягування вмісту
bashКопіювати кодСкопіюйте код у буфер обміну
Since v9, the
intlayerCompileris included in theintlayerplugin. So you don't need to add it manually.Оновіть свій
vite.config.ts, щоб включити плагінintlayerCompiler:vite.config.tsКопіювати кодСкопіюйте код у буфер обміну
bashКопіювати кодСкопіюйте код у буфер обміну
Конфігурація TypeScript
Intlayer використовує розширення модулів (module augmentation), щоб отримати переваги від TypeScript, роблячи вашу кодову базу надійнішою.


Переконайтеся, що ваша конфігурація TypeScript включає автоматично згенеровані типи.
Скопіюйте код у буфер обміну
Конфігурація Git
Ми рекомендуємо ігнорувати файли, згенеровані Intlayer. Це запобігає їх потраплянню до вашого Git-репозиторію.
Для цього додайте наступні інструкції до вашого файлу .gitignore:
Скопіюйте код у буфер обміну
Розширення для VS Code
Щоб покращити ваш досвід розробки з Intlayer, ви можете встановити офіційне розширення Intlayer для VS Code.
Встановити з VS Code Marketplace
Це розширення забезпечує:
- Автозаповнення ключів перекладу.
- Виявлення помилок у реальному часі для відсутніх перекладів.
- Попередній перегляд перекладеного вмісту.
- Швидкі дії для легкого створення та оновлення перекладів.
Для отримання додаткової інформації про використання розширення дивіться документацію розширення VS Code.
Поглиблюйте свої знання
Якщо ви хочете дізнатися більше, ви також можете впровадити Візуальний редактор або використовувати CMS, щоб винести ваш вміст назовні.
Часто задавані запитання
Опція i18n в Astro обробляє префікси адрес, але керування вмістом залишається за вами:
- Власні об'єкти словників: прості об'єкти JSON/TS, імпортовані на рівні сторінок: без типізації, множини та автоматичних тестів.
Intlayer: вміст оголошується поруч із компонентами (локально або централізовано), компілюється під час збирання, перевіряється в CI, підтримує переклад AI та візуальний редактор.
Без UI фреймворку важливо уникати додаткового розміру бібліотеки під час виконання. Intlayer вирішує контент на етапі збирання, тому статичні сторінки Astro містять готовий HTML без зайвого коду. Див. чому Intlayer.
Значно менше, ніж рішення на основі просторів імен, оскільки сторінка ніколи не завантажує каталог, який вона не рендерить. Сторінки Astro рендеряться під час збирання, тому клієнту надсилається лише готовий HTML без додаткових словників; словники отримують лише інтерактивні острови (islands). Динамічні словники розділяють контент за локалями, зменшуючи бандл до 50%. Див. оптимізацію бандла та бенчмарк.
Більшою мірою так. Скористайтеся посібником з міграції з i18next.
Так. sync JSON плагін зберігає ваші файли /messages/{locale}/{namespace}.json як джерело істини та генерує словники Intlayer з них в обох напрямках. sync PO плагін робить те ж саме для gettext каталогів, а файли для окремих локалей дозволяють розділити вміст за мовами замість групування локалей в один файл.
Ні. Запустіть npx intlayer extract, і Intlayer прочитає ваші файли, витягне призначені для користувача рядки і створить файл .content поруч із кожним компонентом, завдяки чому ви переглядаєте diff замість копіювання рядків у каталог вручну. Крок 15 цього посібника пояснює це.
Для повної автоматизації Intlayer Compiler робить те саме під час збирання: сканує код під час кожної зміни, генерує словники та синхронізує їх із HMR.
Варто знати два обмеження перед увімкненням компілятора. Він працює за допомогою статичного аналізу, тому рядки, які існують лише під час виконання, такі як коди помилок API або поля CMS, залишаються недосяжними. І він повинен відрізняти текст для користувача від логіки додатка, як-от className="active" або код статусу, що вимагає кількох анотацій у великій кодовій базі. Команда extract уникає обох проблем, тримаючи вас у курсі.
П'ять інструментів, усі опціональні:
- Розширення VS Code: перехід від ключа
useIntlayerдо файлу контенту, вилучення рядків із компонента та запуск build, fill, test, push і pull із палітри команд або вкладки Intlayer. - LSP сервер: та сама функціональність у будь-якому редакторі з підтримкою LSP, включно з переходом до визначення, переглядом перекладеного значення під час наведення та автодоповненням ключів. Також підтримує виклики
i18next,react-i18next,next-intlтаuse-intl. - MCP сервер: надає документацію та CLI Intlayer для Cursor, VS Code, Claude Desktop, Claude Code та ChatGPT.
- Навички агента (Agent skills): спеціалізовані навички
intlayer-config,intlayer-cliтаintlayer-content. - Плагін ESLint: правило
no-raw-textвідстежує жорстко закодовані рядки.
