Спросите свой вопрос и получите сводку документа, используя эту страницу и выбранного вами поставщика AI
История версий
- "Обновление использования API useIntlayer в Solid для прямого доступа к свойствам"v8.9.004.05.2026
- "Инициализация истории"v8.0.426.01.2026
Содержимое этой страницы было переведено с помощью ИИ.
Смотреть последнюю версию оригинального контента на английском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
Переведите ваше приложение Analog (Angular) с помощью Intlayer | Интернационализация (i18n)
Содержание
Почему Intlayer лучше альтернатив?
По сравнению с основными решениями, такими как ngx-translate или angular-l10n, Intlayer — это решение со встроенными оптимизациями, такими как:
Intlayer оптимизирован для идеальной работы с Analog, предлагая многоязычную маршрутизацию, поддержку SSR и все функции, необходимые для масштабирования интернационализации (i18n).
Вместо загрузки огромных файлов JSON на свои страницы загружайте только необходимый контент. Intlayer помогает уменьшить размер бандла и страниц до 50 %.
Определение области содержимого вашего приложения облегчает обслуживание крупномасштабных приложений. Вы можете дублировать или удалить отдельную папку функций, не утруждав себя мысленным бременем проверки всей кодовой базы контента. Кроме того, Intlayer полностью типизирован, что обеспечивает точность вашего контента.
Совместное размещение контента уменьшает контекст, необходимый для моделей большого языка (LLM). Intlayer также поставляется с набором инструментов, таких как CLI для проверки отсутствия переводов,LSP, MCP, и навыки агента, чтобы сделать работу разработчика (DX) еще более удобной для агентов ИИ.
Используйте автоматизацию для перевода в своем конвейере CI/CD, используя LLM по вашему выбору за счет вашего поставщика ИИ. Intlayer также предлагает компилятор для автоматизации извлечения контента, а также веб-платформу, которая помогает переводить в фоновом режиме.
Подключение больших файлов JSON к компонентам может привести к проблемам с производительностью и реактивностью. Intlayer оптимизирует загрузку контента во время сборки (build time).
Intlayer — это больше, чем просто решение i18n. Он предоставляет автономный визуальный редактор и полный CMS, чтобы помочь вам управлять многоязычным контентом в реальном времени, упрощая сотрудничество с переводчиками, копирайтерами и другими членами команды. Контент может храниться локально и/или удаленно.
Пошаговое руководство по настройке Intlayer в приложении Analog
См. Шаблон приложения на GitHub.
Установка зависимостей
Установите необходимые пакеты с помощью npm:
bashКопировать кодКопировать код в буфер обмена
npm install intlayer angular-intlayer vite-intlayernpx intlayer initintlayer
Основной пакет, предоставляющий инструменты интернационализации для управления конфигурацией, перевода, декларации контента, транспиляции и команд CLI.
angular-intlayer Пакет для интеграции Intlayer с приложением Angular. Предоставляет провайдеры контекста и хуки для интернационализации Angular.
vite-intlayer Пакет для интеграции Intlayer с Vite. Предоставляет плагин для обработки файлов декларации контента и настраивает алиасы для оптимальной производительности.
Конфигурация вашего проекта
Создайте конфигурационный файл для настройки языков вашего приложения:
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, имена куки, расположение и расширение ваших деклараций контента, отключить логи Intlayer в консоли и многое другое. Полный список доступных параметров см. в документации по конфигурации.
Интеграция Intlayer в конфигурацию Vite
Для интеграции Intlayer с Analog вам необходимо использовать плагин
vite-intlayer.Измените файл
vite.config.ts:vite.config.tsКопировать кодКопировать код в буфер обмена
import { defineConfig } from "vite";import { intlayer } from "vite-intlayer";import analog from "@analogjs/platform";// https://vitejs.dev/config/export default defineConfig(() => ({ plugins: [ analog(), intlayer(), // Добавьте плагин Intlayer ],}));Плагин
intlayer()настраивает Vite для работы с Intlayer. Он обрабатывает файлы декларации контента и устанавливает алиасы для оптимальной производительности.Декларация вашего контента
Создавайте и управляйте декларациями контента для хранения переводов:
Декларации контента могут быть определены в любом месте вашего приложения, если они включены в каталог
contentDir(по умолчанию./src) и соответствуют расширению файла декларации контента (по умолчанию.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}).Для получения более подробной информации см. документацию по декларации контента.
Использование Intlayer в вашем коде
Чтобы использовать функции интернационализации Intlayer во всем приложении Analog, вам необходимо добавить Intlayer в конфигурацию приложения.
src/app/app.config.tsКопировать кодКопировать код в буфер обмена
import { ApplicationConfig } from "@angular/core";import { provideIntlayer } from "angular-intlayer";export const appConfig: ApplicationConfig = { providers: [ provideIntlayer(), // Добавьте провайдер Intlayer здесь ],};Затем вы можете использовать функцию
useIntlayerв любом компоненте.src/app/pages/index.page.tsКопировать кодКопировать код в буфер обмена
import { Component } from "@angular/core";import { useIntlayer } from "angular-intlayer";@Component({ selector: "app-home", standalone: true, template: ` <div class="content"> <h1>{{ content().title }}</h1> <p>{{ content().congratulations }}</p> </div> `,})export default class HomeComponent { content = useIntlayer("app");}Контент 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;}Затем используйте этот компонент на своих страницах:
src/app/pages/index.page.tsКопировать кодКопировать код в буфер обмена
import { Component } from "@angular/core";import { useIntlayer } from "angular-intlayer";import { LocaleSwitcherComponent } from "../locale-switcher.component";@Component({ selector: "app-home", standalone: true, imports: [LocaleSwitcherComponent], template: ` <app-locale-switcher></app-locale-switcher> <div class="content"> <h1>{{ content().title }}</h1> <p>{{ content().congratulations }}</p> </div> `,})export default class HomeComponent { 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.