Задайте питання та отримайте підсумок документа, вказавши цю сторінку та обраного вами постачальника штучного інтелекту
Історія версій
- "Оновлення використання API useIntlayer у Solid для прямого доступу до властивостей"v8.9.004.05.2026
- "Додано команду init"v7.5.930.12.2025
- "Ініціалізовано історію"v5.5.1029.06.2025
Вміст цієї сторінки перекладено за допомогою штучного інтелекту.
Переглянути останню версію оригінального вмісту англійськоюЯкщо у вас є ідея щодо покращення цієї документації, будь ласка, долучіться, надіславши pull request на GitHub.
Посилання на документацію на GitHubСкопіювати документацію у форматі Markdown в буфер обміну
Перекладіть свій вебсайт на Vite і Solid за допомогою Intlayer | Інтернаціоналізація (i18n)
Table of Contents
Чому варто обрати Intlayer, а не альтернативи?
Порівняно з основними рішеннями, такими як @solid-primitives/i18n або i18next, Intlayer — це рішення, яке постачається з інтегрованою оптимізацією, як-от:
Intlayer оптимізовано для ідеальної роботи з Solid, пропонуючи визначення вмісту на рівні компонентів, реактивні переклади та всі функції, необхідні для масштабування інтернаціоналізації (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 у додатку на Vite і Solid
Зміст
Встановіть залежності
Встановіть необхідні пакети, використовуючи npm:
bashКопіювати кодСкопіюйте код у буфер обміну
прапорець
--interactiveне є обов'язковим. Використовуйтеintlayer-cli init, якщо ви є ШІ-агентом.Ця команда виявить ваше середовище та встановить необхідні пакети. Наприклад:
bashКопіювати кодСкопіюйте код у буфер обміну
intlayer
Основний пакет, який надає інструменти інтернаціоналізації для управління конфігурацією, перекладів, оголошення контенту, транспіляції та CLI-команд.
solid-intlayer Пакет, що інтегрує Intlayer з додатком на Solid. Надає провайдери контексту та хуки для інтернаціоналізації в Solid.
vite-intlayer Містить плагін для Vite для інтеграції Intlayer зі збірником Vite, а також middleware для визначення пріоритетної локалі користувача, керування cookies та обробки перенаправлень URL.
Конфігурація вашого проєкту
Створіть файл конфігурації, щоб налаштувати мови вашого застосунку:
intlayer.config.tsКопіювати кодСкопіюйте код у буфер обміну
import { Locales, type IntlayerConfig } from "intlayer"; const config: IntlayerConfig = { internationalization: { locales: [ Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, // Ваші інші локалі ], defaultLocale: Locales.ENGLISH, }, }; export default config;За допомогою цього файлу конфігурації ви можете налаштувати локалізовані URL-адреси, перенаправлення в middleware, імена cookie, розташування та розширення ваших декларацій контенту, вимкнути логи Intlayer у консолі та інше. Для повного списку доступних параметрів зверніться до документації з конфігурації.
Інтеграція Intlayer у вашу конфігурацію Vite
Додайте плагін intlayer у вашу конфігурацію.
vite.config.tsКопіювати кодСкопіюйте код у буфер обміну
import { defineConfig } from "vite"; import react from "@vitejs/plugin-react-swc"; import { intlayer } from "vite-intlayer"; // Документація: https://vitejs.dev/config/ export default defineConfig({ plugins: [react(), intlayer()], });Плагін Vite
intlayer()використовується для інтеграції Intlayer з Vite. Він забезпечує побудову файлів декларацій вмісту та відстежує їх у режимі розробки. Він визначає змінні оточення Intlayer у застосунку Vite. Додатково він надає aliases для оптимізації продуктивності.Оголосіть свій вміст
Створіть і керуйте деклараціями вмісту, щоб зберігати переклади:
src/app.content.tsxКопіювати кодСкопіюйте код у буфер обміну
import { t, type Dictionary } from "intlayer"; const appContent = { key: "app", content: {}, } satisfies Dictionary; export default appContent;Ваші декларації контенту можуть бути визначені будь-де у вашому застосунку, щойно вони будуть включені до директорії
contentDir(за замовчуванням,./src). І відповідати розширенню файлів декларацій контенту (за замовчуванням,.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}).Використання Intlayer у вашому коді
Отримайте доступ до ваших словників контенту в усьому додатку:
src/App.tsxКопіювати кодСкопіюйте код у буфер обміну
У Solid,
useIntlayerповертає функцію accessor (наприклад, `content.). Ви повинні викликати цю функцію для доступу до реактивного контенту.Якщо ви хочете використовувати ваш контент у атрибуті
string, такому якalt,title,href,aria-labelтощо, ви повинні викликати значення функції, як:htmlКопіювати кодСкопіюйте код у буфер обміну
Змінити мову вашого контенту
Необов'язковоЩоб змінити мову вашого контенту, ви можете використовувати функцію
setLocale, надану хукомuseLocale. Ця функція дозволяє вам встановити locale додатку та оновити контент відповідно.src/components/LocaleSwitcher.tsxКопіювати кодСкопіюйте код у буфер обміну
Додати локалізовану маршрутизацію до вашого додатку
Необов'язковоМета цього кроку - створити унікальні маршрути для кожної мови. Це корисно для SEO та SEO-дружніх URL. Приклад:
plaintextКопіювати кодСкопіюйте код у буфер обміну
Щоб додати локалізовану маршрутизацію до вашого додатку, ви можете використовувати
@solidjs/router.Спочатку встановіть необхідні залежності:
bashКопіювати кодСкопіюйте код у буфер обміну
Потім обгорніть ваш додаток у
Routerта визначте ваші маршрути, використовуючиlocaleMap:src/index.tsxКопіювати кодСкопіюйте код у буфер обміну
src/App.tsxКопіювати кодСкопіюйте код у буфер обміну
Змінити URL при зміні locale
Необов'язковоЩоб змінити URL при зміні locale, ви можете використовувати prop
onLocaleChange, наданий хукомuseLocale. Ви можете використовувати хукиuseNavigateтаuseLocationз@solidjs/routerдля оновлення шляху URL.src/components/LocaleSwitcher.tsxКопіювати кодСкопіюйте код у буфер обміну
Переключити атрибути мови та напрямку HTML
Необов'язковоОновіть атрибути
langтаdirтега<html>, щоб вони відповідали поточному locale для доступності та SEO.src/App.tsxКопіювати кодСкопіюйте код у буфер обміну
Створення локалізованого компонента посилання
Необов'язковоРендеринг Markdown
Необов'язковоIntlayer підтримує рендеринг контенту Markdown безпосередньо у вашому додатку Solid, використовуючи власний внутрішній парсер. За замовчуванням Markdown обробляється як звичайний текст. Щоб відрендерити його як багатий HTML, обгорніть ваш додаток у
MarkdownProvider.Потім ви можете використовувати його у ваших компонентах:
tsxКопіювати кодСкопіюйте код у буфер обміну
Витягніть вміст ваших компонентів
Необов'язковоЯкщо у вас є існуюча кодова база, перетворення тисяч файлів може зайняти багато часу.
Щоб спростити цей процес, 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Копіювати кодСкопіюйте код у буфер обміну
Створіть користувацький компонент Link, який автоматично додає префікс внутрішніх URL поточною мовою.
Скопіюйте код у буфер обміну
(Опційно) Sitemap і robots.txt (генерація під час збірки)
Intlayer надає generateSitemap і getMultilingualUrls - утиліти для формування багатомовних sitemap.xml і robots.txt для краулерів та автоматичного запису в public/. Зазвичай запускають невеликий Node-скрипт перед Vite (наприклад, npm-хуки predev / prebuild).
Sitemap
Генератор sitemap враховує локалі й додає метадані для краулерів.
Підтримується простір іменxhtml:link(hreflang). Замість плоского списку URL Intlayer пов’язує всі мовні версії сторінки в обидва боки (наприклад/about,/fr/aboutабо/about?lang=frзалежно від режиму маршрутизації).
Robots.txt
Використовуйте getMultilingualUrls, щоб правила Disallow покривали всі локалізовані варіанти шляхів.
1. Файл generate-seo.mjs у корені проєкту
Скопіюйте код у буфер обміну
Пакет intlayer має бути встановлений. У продакшені задайте SITE_URL у середовищі (наприклад у CI).
Для Node ESM кращеgenerate-seo.mjs. Дляgenerate-seo.jsдодайте"type": "module"уpackage.jsonабо ввімкніть ESM інакше.
2. Запуск скрипта перед Vite
Скопіюйте код у буфер обміну
Підлаштуйте команди для pnpm або yarn. Можна викликати скрипт із CI.
Налаштування TypeScript
Переконайтеся, що ваша конфігурація TypeScript включає автоматично створені типи.
Скопіюйте код у буфер обміну
Git конфігурація
Рекомендується ігнорувати файли, створені Intlayer. Це дозволяє уникнути їх фіксації у вашому репозиторію Git.
Для цього ви можете додати наступні інструкції до вашого файлу .gitignore:
Скопіюйте код у буфер обміну
VS Code Extension
Щоб покращити ваш досвід розробки з Intlayer, ви можете встановити офіційне розширення Intlayer для VS Code.
Встановити з VS Code Marketplace
Розширені можливості
Щоб піти далі, ви можете реалізувати visual editor або винести свій вміст, використовуючи CMS.
