Задайте питання та отримайте підсумок документа, вказавши цю сторінку та обраного вами постачальника штучного інтелекту
Історія версій
- "Оновлення використання API useIntlayer у Solid для прямого доступу до властивостей"v8.9.004.05.2026
- "Додано команду init"v7.5.930.12.2025
- "Ініціалізація історії"v7.1.1020.11.2025
Вміст цієї сторінки перекладено за допомогою штучного інтелекту.
Переглянути останню версію оригінального вмісту англійськоюЯкщо у вас є ідея щодо покращення цієї документації, будь ласка, долучіться, надіславши pull request на GitHub.
Посилання на документацію на GitHubСкопіювати документацію у форматі Markdown в буфер обміну
Перекладіть свій сайт на SvelteKit із Intlayer | Інтернаціоналізація (i18n)
Зміст
Чому варто обрати Intlayer, а не альтернативи?
Порівняно з основними рішеннями, такими як svelte-i18n або i18next, Intlayer — це рішення, яке має такі інтегровані оптимізації, як:
Intlayer оптимізовано для ідеальної роботи зі SvelteKit, пропонуючи багатомовну маршрутизацію, підтримку SSR і всі функції, необхідні для масштабування інтернаціоналізації (i18n).
Замість того, щоб завантажувати великі файли JSON на свої сторінки, завантажуйте лише необхідний вміст. Intlayer допомагає зменшити розмір бандлу і сторінок до 50%.
Організація вмісту за окремими областями (scoping) полегшує технічне обслуговування великомасштабних програм. Ви можете скопіювати або видалити окрему папку функцій без розумового навантаження перегляду всієї кодової бази вмісту. Крім того, Intlayer повністю типізований (fully typed), щоб забезпечити точність вашого вмісту.
Спільне розміщення вмісту зменшує контекст, необхідний для великих мовних моделей (LLM). Intlayer також постачається з набором інструментів, наприклад CLI для перевірки відсутніх перекладів,LSP, MCP і навички агента, щоб зробити роботу розробника (DX) ще зручнішою для агентів ШІ.
Використовуйте автоматизацію для перекладу в конвеєрі CI/CD за допомогою LLM за вашим вибором за рахунок вашого постачальника штучного інтелекту. Intlayer також пропонує компілятор для автоматизації екстракція вмісту, а також веб-платформу, щоб допомогти перекладати у фоновому режимі.
Підключення великих файлів JSON до компонентів може призвести до проблем з продуктивністю та реакцією. Intlayer оптимізує завантаження вмісту під час збірки (build time).
Більше ніж просто рішення i18n, Intlayer пропонує власний візуальний редактор і повний CMS, щоб допомогти вам керувати своїм багатомовним вмістом у реальному часі, спрощуючи співпрацю з перекладачами, копірайтерами та іншими членами команди. Контент можна зберігати локально та/або віддалено.
Покроковий посібник із налаштування Intlayer у застосунку SvelteKit
Див. Шаблон застосунку на GitHub.
Щоб почати, створіть новий проєкт SvelteKit. Ось кінцева структура, яку ми створимо:
Скопіюйте код у буфер обміну
Встановлення залежностей
Встановіть необхідні пакети за допомогою npm:
bashКопіювати кодСкопіюйте код у буфер обміну
- intlayer: Основний пакет i18n.
- svelte-intlayer: Надає провайдери контексту та stores для Svelte/SvelteKit.
- vite-intlayer: Плагін Vite для інтеграції декларацій контенту в процес збірки.
Налаштування вашого проєкту
Створіть файл конфігурації в корені вашого проєкту:
intlayer.config.tsКопіювати кодСкопіюйте код у буфер обміну
Інтеграція Intlayer у вашу Vite конфігурацію
Оновіть ваш
vite.config.ts, щоб додати плагін Intlayer. Цей плагін обробляє транспіляцію ваших файлів вмісту.vite.config.tsКопіювати кодСкопіюйте код у буфер обміну
Оголосіть ваш вміст
Створюйте файли декларацій контенту в будь-якому місці вашої папки
src(наприклад,src/lib/contentабо поруч із компонентами). Ці файли визначають перекладний контент для вашого застосунку, використовуючи функціюt()для кожної локалі.Використання Intlayer у ваших компонентах
Тепер ви можете використовувати функцію
useIntlayerу будь-якому Svelte-компоненті. Вона повертає реактивний store, який автоматично оновлюється при зміні локалі. Функція автоматично враховує поточну локаль (як під час SSR, так і під час навігації на боці клієнта).Примітка:
useIntlayerповертає Svelte-store, тому потрібно використовувати префікс$для доступу до його реактивного значення (наприклад,$content.title).src/lib/components/Component.svelteКопіювати кодСкопіюйте код у буфер обміну
Налаштування маршрутизації
Необов'язковоНижче наведено кроки для налаштування маршрутизації на основі локалі в SvelteKit. Це дозволяє додавати префікс локалі до ваших URL (наприклад,
/en/about,/fr/about) для кращого SEO та зручності користувача.bashКопіювати кодСкопіюйте код у буфер обміну
Обробка визначення локалі на сервері
У SvelteKit сервер повинен знати локаль користувача, щоб відрендерити правильний вміст під час SSR. Ми використовуємо
hooks.server.tsдля виявлення локалі з URL або cookies.Створіть або змініть
src/hooks.server.ts:src/hooks.server.tsКопіювати кодСкопіюйте код у буфер обміну
Потім створіть допоміжну функцію для отримання локалі користувача з події запиту:
src/lib/getLocale.tsКопіювати кодСкопіюйте код у буфер обміну
getLocaleFromStorageперевірятиме локаль у заголовку або cookie залежно від вашої конфігурації. Див. розділ Configuration для детальнішої інформації.Функція
localeDetectorобробляє заголовокAccept-Languageі повертає найкраще співпадіння.Якщо локаль не налаштована, ми хочемо повернути помилку 404. Щоб спростити це, ми можемо створити функцію
match, яка перевіряє, чи є локаль валідною:/src/params/locale.tsКопіювати кодСкопіюйте код у буфер обміну
Примітка: Переконайтеся, що у вашому
src/app.d.tsміститься визначення локалі:typescriptКопіювати кодСкопіюйте код у буфер обміну
Для файлу
+layout.svelteми можемо видалити все, залишивши лише статичний вміст, не пов'язаний із i18n:src/+layout.svelteКопіювати кодСкопіюйте код у буфер обміну
Потім створіть нову сторінку та layout у групі
[[locale=locale]]:src/routes/[[locale=locale]]/+layout.tsКопіювати кодСкопіюйте код у буфер обміну
src/routes/[[locale=locale]]/+layout.svelteКопіювати кодСкопіюйте код у буфер обміну
src/routes/[[locale=locale]]/+page.tsКопіювати кодСкопіюйте код у буфер обміну
src/routes/[[locale=locale]]/+page.svelteКопіювати кодСкопіюйте код у буфер обміну
Інтернаціоналізовані посилання
Необов'язковоДля SEO рекомендується додавати префікс локалі до маршрутів (наприклад,
/en/about,/fr/about). Цей компонент автоматично додає префікс поточної локалі до будь-якого посилання.src/lib/components/LocalizedLink.svelteКопіювати кодСкопіюйте код у буфер обміну
Якщо ви використовуєте
gotoз SvelteKit, ви можете застосувати ту саму логіку зgetLocalizedUrl, щоб перейти на локалізований URL:typescriptКопіювати кодСкопіюйте код у буфер обміну
Перемикач мови
Необов'язковоЩоб дозволити користувачам переключати мову, оновіть URL.
src/lib/components/LanguageSwitcher.svelteКопіювати кодСкопіюйте код у буфер обміну
Додати backend proxy
Необов'язковоЩоб додати backend proxy до вашого застосунку SvelteKit, ви можете використати функцію
intlayerProxy, що надається плагіномvite-intlayer. Цей плагін автоматично визначатиме найкращу локаль для користувача на основі URL, cookies та мовних налаштувань браузера.vite.config.tsКопіювати кодСкопіюйте код у буфер обміну
Налаштування редактора intlayer / CMS
Необов'язковоЩоб налаштувати редактор intlayer, дотримуйтесь документації редактора intlayer.
Щоб налаштувати CMS intlayer, дотримуйтесь документації CMS intlayer.
Щоб мати змогу візуалізувати селектор редактора intlayer, потрібно використовувати синтаксис компонента у вашому контенті intlayer.
Component.svelteКопіювати кодСкопіюйте код у буфер обміну
Витягніть вміст ваших компонентів
Необов'язковоЯкщо у вас є існуюча кодова база, перетворення тисяч файлів може зайняти багато часу.
Щоб спростити цей процес, 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Копіювати кодСкопіюйте код у буфер обміну
Налаштування Git
Рекомендується ігнорувати файли, згенеровані Intlayer.
Скопіюйте код у буфер обміну
Далі
- Visual Editor: Інтегруйте Intlayer Visual Editor, щоб редагувати переклади безпосередньо з UI.
- CMS: Виносьте керування вмістом назовні, використовуючи Intlayer CMS.