Задайте питання та отримайте підсумок документа, вказавши цю сторінку та обраного вами постачальника штучного інтелекту
Історія версій
- "Оновлення використання API useIntlayer у Solid для прямого доступу до властивостей"v8.9.004.05.2026
- "Додати команду init"v8.0.030.12.2025
- "Ініціалізація історії"v5.5.1029.06.2025
Вміст цієї сторінки перекладено за допомогою штучного інтелекту.
Переглянути останню версію оригінального вмісту англійськоюIf you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
Перекладіть свій Angular 19 (Webpack) веб-сайт за допомогою Intlayer | Інтернаціоналізація (i18n)
Зміст
Чому варто обрати Intlayer, а не альтернативи?
Порівняно з основними рішеннями, такими як ngx-translate або angular-l10n, Intlayer — це рішення, яке має такі інтегровані оптимізації, як:
Intlayer оптимізовано для ідеальної роботи з Angular, пропонуючи вибір вмісту на рівні компонентів, ліниво завантажені переклади та всі функції, необхідні для масштабування інтернаціоналізації (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 у додатку Angular
Дивіться Шаблон додатка на GitHub.
Встановлення залежностей
Встановіть необхідні пакети за допомогою npm:
bashКопіювати кодСкопіюйте код у буфер обміну
npm install intlayer angular-intlayernpm install @angular-builders/custom-webpack --save-devnpx intlayer initintlayer
Основний пакет, що надає інструменти інтернаціоналізації для керування конфігурацією, перекладу, декларування вмісту, транспіляції та команд CLI.
angular-intlayer Пакет, що інтегрує Intlayer з додатком Angular. Він надає провайдери контексту та хуки для інтернаціоналізації Angular.
@angular-builders/custom-webpack Необхідний для налаштування конфігурації Webpack в Angular CLI.
Конфігурація вашого проекту
Створіть файл конфігурації для налаштування мов вашого додатка:
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 у вашу конфігурацію Angular
Щоб інтегрувати Intlayer з Angular CLI, вам потрібно використовувати спеціальний білдер (builder). Цей посібник припускає, що ви використовуєте Webpack (стандарт для багатьох проектів Angular).
Спочатку змініть ваш
angular.json, щоб використовувати спеціальний білдер Webpack. Оновіть конфігураціїbuildтаserve:angular.jsonКопіювати кодСкопіюйте код у буфер обміну
{ "projects": { "your-app-name": { "architect": { "build": { "builder": "@angular-builders/custom-webpack:browser", // replace "@angular-devkit/build-angular:application", "options": { "customWebpackConfig": { "path": "./webpack.config.ts", "mergeStrategies": { "module.rules": "prepend" }, }, "main": "src/main.ts", // replace "browser": "src/main.ts", // ... }, }, "serve": { "builder": "@angular-builders/custom-webpack:dev-server", }, }, }, },}Переконайтеся, що ви замінили
your-app-nameна фактичну назву вашого проекту вangular.json.Далі створіть файл
webpack.config.tsу корені вашого проекту:webpack.config.tsКопіювати кодСкопіюйте код у буфер обміну
import { mergeConfig } from "angular-intlayer/webpack";export default mergeConfig({});Функція
mergeConfigналаштовує Webpack за допомогою Intlayer. Вона впроваджуєIntlayerPlugin(для обробки файлів декларації вмісту) та налаштовує псевдоніми для оптимальної продуктивності.Декларування вмісту
Створюйте та керуйте своїми деклараціями вмісту для зберігання перекладів:
Ваші декларації вмісту можуть бути визначені в будь-якому місці вашого додатка, якщо вони включені до каталогу
contentDir(за замовчуванням./src) і відповідають розширенню файлу декларації вмісту (за замовчуванням.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}).Для отримання додаткової інформації дивіться документацію з декларування вмісту.
Використання Intlayer у вашому коді
Щоб використовувати функції інтернаціоналізації Intlayer у всьому додатку Angular, вам потрібно надати Intlayer у конфігурації вашого додатка.
src/app/app.config.tsКопіювати кодСкопіюйте код у буфер обміну
import { ApplicationConfig } from "@angular/core";import { provideRouter } from "@angular/router";import { provideIntlayer } from "angular-intlayer";import { routes } from "./app.routes";export const appConfig: ApplicationConfig = { providers: [ provideRouter(routes), provideIntlayer(), // Додайте провайдер Intlayer тут ],};Потім ви можете використовувати функцію
useIntlayerвсередині будь-якого компонента.src/app/app.component.tsКопіювати кодСкопіюйте код у буфер обміну
import { Component } from "@angular/core";import { RouterOutlet } from "@angular/router";import { useIntlayer } from "angular-intlayer";@Component({ selector: "app-root", standalone: true, imports: [RouterOutlet], templateUrl: "./app.component.html", styleUrl: "./app.component.css",})export class AppComponent { content = useIntlayer("app");}І у вашому шаблоні:
src/app/app.component.htmlКопіювати кодСкопіюйте код у буфер обміну
<div class="content"> <h1>{{ content().title }}</h1> <p>{{ content().congratulations }}</p></div>Вміст Intlayer повертається як
Signal, тому ви отримуєте доступ до значень, викликаючи сигнал:content().title.Зміна мови вашого вмісту
Необов'язковоЩоб змінити мову вмісту, ви можете використовувати функцію
setLocale, яку надає функціяuseLocale. Це дозволяє встановити локаль додатка та відповідно оновити вміст.Створіть компонент для перемикання між мовами:
src/app/locale-switcher.component.tsКопіювати кодСкопіюйте код у буфер обміну
import { Component } from "@angular/core";import { CommonModule } from "@angular/common";import { useLocale } from "angular-intlayer";@Component({ selector: "app-locale-switcher", standalone: true, imports: [CommonModule], template: ` <div class="locale-switcher"> <select [value]="locale()" (change)="setLocale($any($event.target).value)" > @for (loc of availableLocales; track loc) { <option [value]="loc">{{ loc }}</option> } </select> </div> `,})export class LocaleSwitcherComponent { localeCtx = useLocale(); locale = this.localeCtx.locale; availableLocales = this.localeCtx.availableLocales; setLocale = this.localeCtx.setLocale;}Потім використовуйте цей компонент у вашому
app.component.ts:src/app/app.component.tsКопіювати кодСкопіюйте код у буфер обміну
import { Component } from "@angular/core";import { RouterOutlet } from "@angular/router";import { useIntlayer } from "angular-intlayer";import { LocaleSwitcherComponent } from "./locale-switcher.component";@Component({ selector: "app-root", standalone: true, imports: [RouterOutlet, LocaleSwitcherComponent], templateUrl: "./app.component.html", styleUrl: "./app.component.css",})export class AppComponent { content = useIntlayer("app");}
Конфігурація TypeScript
Intlayer використовує розширення модулів (module augmentation), щоб отримати переваги TypeScript і зробити вашу кодову базу міцнішою.


Переконайтеся, що ваша конфігурація TypeScript включає автогенеровані типи.
Скопіюйте код у буфер обміну
{ // ... Ваші існуючі конфігурації TypeScript "include": [ // ... Ваші існуючі конфігурації TypeScript ".intlayer/**/*.ts", // Включити автоматично згенеровані типи ],}Конфігурація Git
Рекомендується ігнорувати файли, створені Intlayer. Це дозволяє уникнути їх фіксації у вашому Git-репозиторії.
Для цього ви можете додати наступні інструкції до вашого файлу .gitignore:
Скопіюйте код у буфер обміну
# Ігнорувати файли, створені Intlayer.intlayerРозширення VS Code
Щоб покращити ваш досвід розробки з Intlayer, ви можете встановити офіційне розширення Intlayer для VS Code.
Встановити з VS Code Marketplace
Це розширення забезпечує:
- Автодоповнення для ключів перекладу.
- Виявлення помилок у реальному часі для відсутніх перекладів.
- Вбудований попередній перегляд перекладеного вмісту.
- Швидкі дії для легкого створення та оновлення перекладів.
Для отримання додаткової інформації про те, як користуватися розширенням, дивіться документацію розширення Intlayer для VS Code.
Йти далі
Щоб йти далі, ви можете впровадити візуальний редактор або винести свій вміст у зовнішню систему за допомогою CMS.