Задайте вопрос и получите краткое содержание документа через любого ИИ-провайдера на этой странице
История версий
- "Обновление использования API useIntlayer в Solid для прямого доступа к свойствам"v8.9.004.05.2026
- "Добавить команду init"v7.5.930.12.2025
- "Начальная версия документа"v5.8.009.09.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
Переведите ваш Nest backend с Intlayer | Интернационализация (i18n)
express-intlayer, это мощный middleware для интернационализации (i18n) в приложениях на Express, разработанный для того, чтобы сделать ваши бэкенд-сервисы доступными по всему миру, предоставляя локализованные ответы в зависимости от предпочтений клиента. Поскольку NestJS построен поверх Express, вы можете без проблем интегрировать express-intlayer в ваши приложения на NestJS для эффективной работы с многоязычным контентом.
Начало работы
Создание нового проекта NestJS
Копировать код в буфер обмена
npm install -g @nestjs/clinest new my-nest-appУстановка
Чтобы начать использовать express-intlayer, установите пакет с помощью npm:
Копировать код в буфер обмена
npx intlayer@canary init --interactive # v9# npx intlayer init # v8флаг--interactiveне является обязательным. Используйтеintlayer-cli init, если вы являетесь ИИ-агентом.
Эта команда определит вашу среду и установит необходимые пакеты. Например:
Копировать код в буфер обмена
npm install intlayer express-intlayerНастройка tsconfig.json
Чтобы использовать Intlayer с TypeScript, убедитесь, что ваш файл tsconfig.json настроен для поддержки ES-модулей. Для этого установите параметры module и moduleResolution в значение nodenext.
Копировать код в буфер обмена
{ compilerOptions: { module: "nodenext", moduleResolution: "nodenext", // ... другие параметры },}Настройка
Настройте параметры интернационализации, создав файл 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;Объявление вашего контента
Создайте и управляйте объявлениями контента для хранения переводов:
Ваши объявления контента могут быть определены в любом месте вашего приложения, при условии, что они включены в директориюcontentDir(по умолчанию,./src). И соответствуют расширению файла объявления контента (по умолчанию,.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}).
Для получения дополнительной информации обратитесь к документации по объявлениям контента.
Настройка промежуточного ПО Express
Интегрируйте промежуточное ПО express-intlayer в ваше приложение NestJS для обработки интернационализации:
Копировать код в буфер обмена
import { MiddlewareConsumer, Module, NestModule } from "@nestjs/common";import { AppController } from "./app.controller";import { AppService } from "./app.service";import { intlayer } from "express-intlayer";@Module({ imports: [], controllers: [AppController], providers: [AppService],})export class AppModule implements NestModule { configure(consumer: MiddlewareConsumer) { consumer.apply(intlayer()).forRoutes("*"); // Применить ко всем маршрутам }}Использование переводов в ваших сервисах или контроллерах
Теперь вы можете использовать функцию getIntlayer для доступа к переводам в ваших сервисах или контроллерах:
Копировать код в буфер обмена
import { Injectable } from "@nestjs/common";import { getIntlayer } from "express-intlayer";@Injectable()export class AppService { getHello(): string { return getIntlayer("app").greet; // Получить приветствие из переводов }}Совместимость
express-intlayer полностью совместим с:
react-intlayerдля приложений на Reactnext-intlayerдля приложений на Next.jsvite-intlayerдля приложений на Vite
Он также без проблем работает с любыми решениями для интернационализации в различных средах, включая браузеры и API-запросы. Вы можете настроить промежуточное ПО для определения локали через заголовки или куки:
Копировать код в буфер обмена
import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = { // ... Другие параметры конфигурации middleware: { headerName: "my-locale-header", cookieName: "my-locale-cookie", },};export default config;По умолчанию express-intlayer будет интерпретировать заголовок Accept-Language для определения предпочтительного языка клиента.
Для получения дополнительной информации о конфигурации и продвинутых темах посетите нашу документацию.
Настройка TypeScript
express-intlayer использует мощные возможности TypeScript для улучшения процесса интернационализации. Статическая типизация TypeScript гарантирует, что каждый ключ перевода учтен, снижая риск отсутствия переводов и повышая удобство сопровождения.


Убедитесь, что автогенерируемые типы (по умолчанию в ./types/intlayer.d.ts) включены в ваш файл tsconfig.json.
Копировать код в буфер обмена
{ // ... Ваши существующие настройки TypeScript include: [ // ... Ваши существующие настройки TypeScript ".intlayer/**/*.ts", // Включить автогенерируемые типы ],}Расширение VS Code
Для улучшения вашего опыта разработки с Intlayer вы можете установить официальное расширение Intlayer для VS Code.
Установить из VS Code Marketplace
Это расширение предоставляет:
- Автозаполнение ключей перевода.
- Обнаружение ошибок в реальном времени для отсутствующих переводов.
- Встроенный просмотр переведенного содержимого.
- Быстрые действия для удобного создания и обновления переводов.
Для получения дополнительной информации о том, как использовать расширение, обратитесь к документации расширения Intlayer для VS Code.
Конфигурация Git
Рекомендуется игнорировать файлы, сгенерированные Intlayer. Это позволит избежать их коммита в ваш репозиторий Git.
Чтобы сделать это, вы можете добавить следующие инструкции в ваш файл .gitignore:
Копировать код в буфер обмена
# Игнорировать файлы, сгенерированные Intlayer.intlayer