Спросите свой вопрос и получите сводку документа, используя эту страницу и выбранного вами поставщика AI
История версий
- "Init history"v5.5.1029.06.2025
Содержимое этой страницы было переведено с помощью ИИ.
Смотреть последнюю версию оригинального контента на английскомЕсли у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.
Ссылка на документацию GitHubКопировать Markdown документа в буфер обмена
Документация Intlayer
Добро пожаловать в официальную документацию Intlayer! Здесь вы найдете всё необходимое для интеграции, настройки и освоения Intlayer для всех ваших задач интернационализации (i18n), независимо от того, работаете ли вы с Next.js, React, Vite, Express или в другой среде JavaScript.
Введение
Что такое Intlayer?
Intlayer — это библиотека интернационализации, разработанная специально для JavaScript-разработчиков. Она позволяет объявлять ваш контент в любом месте вашего кода. Она преобразует объявление многоязычного контента в структурированные словари для легкой интеграции в ваш код. Использование TypeScript делает Intlayer более надежным и эффективным инструментом для вашей разработки.
Intlayer также предоставляет опциональный визуальный редактор, который позволяет легко редактировать и управлять вашим контентом. Этот редактор особенно полезен для разработчиков, предпочитающих визуальный интерфейс для управления контентом, или для команд, создающих контент без необходимости беспокоиться о коде.
Пример использования
Копировать код в буфер обмена
Копировать код в буфер обмена
import { t, type Dictionary } from "intlayer";
const componentContent = {
key: "component-key",
content: {
myTranslatedContent: t({
en: "Hello World",
es: "Hola Mundo",
fr: "Bonjour le monde",
ru: "Привет мир",
}),
},
} satisfies Dictionary;
export default componentContent;
Копировать код в буфер обмена
import type { FC } from "react";
import { useIntlayer } from "react-intlayer";
export const MyComponent: FC = () => {
const { myTranslatedContent } = useIntlayer("component-key");
return <span>{myTranslatedContent}</span>;
};
Почему Intlayer лучше альтернатив?
По сравнению с основными решениями, такими как next-intl или i18next, Intlayer — это решение, в котором изначально присутствуют интегрированные оптимизации, такие как:
Вместо того чтобы загружать массивные JSON-файлы на свои страницы, загружайте только необходимый контент. Intlayer помогает сократить размер ваших сборок и страниц до 50%.
Локализация контента рядом с компонентами вашего приложения облегчает обслуживание крупномасштабных приложений. Вы можете дублировать или удалить папку отдельной функции без необходимости проверять всю кодовую базу контента. Кроме того, Intlayer является полностью типизированным (fully typed), чтобы гарантировать точность вашего контента.
Совместное размещение контента сокращает контекст, необходимый для больших языковых моделей (LLMs). Intlayer также поставляется с набором инструментов, таких как CLI для проверки отсутствующих переводов, LSP, MCP и agent skills, чтобы сделать процесс разработки (DX) еще более плавным для ИИ-агентов.
Используйте автоматизацию для перевода в вашем CI/CD конвейере с помощью выбранной вами LLM по стоимости вашего провайдера ИИ. Intlayer также предлагает компилятор (compiler) для автоматизации извлечения контента, а также веб-платформу, чтобы помочь переводить в фоновом режиме.
Подключение массивных JSON-файлов к компонентам может привести к проблемам с производительностью и реактивностью. Intlayer оптимизирует загрузку вашего контента во время сборки (build time).
Intlayer — это больше, чем просто i18n-решение. Он предоставляет визуальный редактор (visual editor), который можно развернуть самостоятельно (self-hosted), и полноценную CMS, чтобы помочь вам управлять вашим многоязычным контентом в реальном времени, делая сотрудничество с переводчиками, копирайтерами и другими членами команды бесшовным. Контент может храниться локально и/или удаленно.
Основные возможности
Intlayer предлагает множество функций, адаптированных для нужд современной веб-разработки. Ниже приведены ключевые функции со ссылками на подробную документацию по каждой из них:
- Поддержка интернационализации: Увеличьте глобальный охват вашего приложения с помощью встроенной поддержки интернационализации.
- Визуальный редактор: Улучшите свой рабочий процесс разработки с помощью плагинов редактора, разработанных для Intlayer. Ознакомьтесь с Руководством по визуальному редактору.
- Гибкость конфигурации: Настройте свою среду с помощью широких возможностей конфигурации, подробно описанных в Руководстве по настройке.
- Продвинутые CLI-инструменты: Эффективно управляйте своими проектами с помощью интерфейса командной строки Intlayer. Изучите возможности в Документации по инструментам CLI.
Основные концепции
Словарь (Dictionary)
Организуйте свой многоязычный контент рядом с кодом, чтобы все было согласованно и удобно для обслуживания.
Начало работы
Изучите основы объявления вашего контента в Intlayer.Перевод (Translation)
Поймите, как переводы генерируются, хранятся и используются в вашем приложении.Перечисление (Enumeration)
Легко управляйте повторяющимися или фиксированными наборами данных на разных языках.Условие (Condition)
Узнайте, как использовать условную логику в Intlayer для создания динамического контента.Вставка (Insertion)
Узнайте, как вставлять значения в строку с помощью плейсхолдеров (маркеров вставки).Получение с помощью функций (Function Fetching)
Посмотрите, как динамически получать контент с помощью пользовательской логики, чтобы соответствовать рабочему процессу вашего проекта.Markdown
Узнайте, как использовать Markdown в Intlayer для создания богатого контента.Встраивание файлов (File embeddings)
Узнайте, как встраивать внешние файлы в Intlayer для их использования в редакторе контента.Вложенность (Nesting)
Поймите, как вкладывать контент в Intlayer для создания сложных структур.
Окружения и интеграции
Мы создали Intlayer с учетом гибкости, обеспечив бесшовную интеграцию в популярные фреймворки и инструменты сборки:
- Intlayer с Next.js 16
- Intlayer с Next.js 15
- Intlayer с Next.js 14 (App Router)
- Intlayer с Next.js Page Router
- Intlayer с React CRA
- Intlayer с Vite + React
- Intlayer с React Router v7
- Intlayer с Tanstack Start
- Intlayer с React Native и Expo
- Intlayer с Lynx и React
- Intlayer с Vite + Preact
- Intlayer с Vite + Vue
- Intlayer с Nuxt
- Intlayer с Vite + Svelte
- Intlayer с SvelteKit
- Intlayer с Express
- Intlayer с NestJS
- Intlayer с Hono
- Intlayer с Angular
Каждое руководство по интеграции содержит лучшие практики использования функций Intlayer, такие как рендеринг на стороне сервера (SSR), динамическая маршрутизация или рендеринг на стороне клиента, чтобы вы могли поддерживать быстрое, SEO-оптимизированное и высокомасштабируемое приложение.
Участие в разработке и отзывы
Мы ценим силу open-source и разработки, управляемой сообществом. Если вы хотите предложить улучшения, добавить новое руководство или исправить какие-либо проблемы в нашей документации, смело отправляйте Pull Request или открывайте Issue в нашем репозитории на GitHub.
Готовы переводить свое приложение быстрее и эффективнее? Погрузитесь в нашу документацию, чтобы начать использовать Intlayer уже сегодня. Испытайте надежный и оптимизированный подход к интернационализации, который обеспечивает организованность вашего контента и повышает продуктивность вашей команды.
Часто задаваемые вопросы
Intlayer - это библиотека интернационализации (i18n) для приложений на JavaScript и TypeScript. Вы объявляете контент компонента рядом с этим компонентом в файле .content.ts, Intlayer компилирует эти объявления в типизированные словари во время сборки, а ваши компоненты читают их через хук вроде useIntlayer. Она покрывает перевод, правила множественного числа, род, Markdown, маршрутизацию с учётом локали, SEO-метаданные, перевод с помощью ИИ и визуальный редактор для не-разработчиков.
Гораздо меньше, чем при подходе на основе пространств имён, потому что страница никогда не загружает каталог, который не отображает. Разметка, отрендеренная на сервере, разрешает свой контент на сервере, и компилятор во время сборки заменяет вызовы useIntlayer точными записями словаря, которые использует компонент, поэтому неиспользуемые ключи и неиспользуемые языки отбрасываются. Динамические словари разделяют остальное по локалям. По сравнению с обычными альтернативами Intlayer сокращает размер бандла и страницы до 50%. См. оптимизацию бандла и бенчмарк.
Да, и есть два пути. Вы можете мигрировать контент постепенно с помощью руководства по миграции с i18next или руководства по миграции с next-intl. Или вы можете полностью сохранить свой текущий API: адаптеры совместимости предоставляют точно такой же API, как i18next, react-i18next, next-intl, next-i18next, react-intl, use-intl, vue-i18n и Lingui, но обслуживаемый словарями Intlayer, поэтому меняются импорты, а код компонентов - нет.
Да. Плагин синхронизации JSON сохраняет ваши файлы /messages/{locale}/{namespace}.json как источник истины и генерирует из них словари Intlayer, в обоих направлениях. Плагин синхронизации PO делает то же самое для каталогов gettext, а файлы по локали позволяют разделить контент по языкам вместо группировки локалей в одном файле.
Нет. Запустите npx intlayer extract, и Intlayer прочитает ваши исходные файлы, извлечёт строки, видимые пользователю, и запишет файл .content рядом с каждым из них, так что вы просматриваете diff вместо копирования строк в каталог по одной. См. команду extract.
Для полностью автоматизированного конвейера Компилятор Intlayer делает то же самое во время сборки на исходном коде JSX, TSX, Vue и Svelte, генерируя словари при каждом изменении, поэтому нет ключей, которые нужно поддерживать вручную. Он работает через статический анализ, поэтому строки, существующие только во время выполнения, остаются недоступными, и ему нужно несколько аннотаций, чтобы отличать текст, видимый пользователю, от логики приложения.
Пять компонентов, все опциональные:
- Расширение для VS Code: переход от ключа
useIntlayerк файлу контента, который его объявляет, извлечение контента из компонента и запуск build, fill, test, push и pull из палитры команд или отдельной вкладки Intlayer. - LSP-сервер: та же осведомлённость в любом редакторе, который говорит на LSP, с переходом к определению, поиском всех ссылок, предпросмотром переведённого значения при наведении, автодополнением ключей и полей и предупреждением, когда ключ нигде не объявлен. Он также разрешает вызовы
i18next,react-i18next,next-intlиuse-intl, что помогает при миграции. - MCP-сервер: предоставляет документацию и CLI Intlayer для Cursor, VS Code, Claude Desktop, Claude Code и ChatGPT, чтобы ассистент отвечал по актуальной документации, а не гадал, и мог сам запускать команды вроде
intlayer fill. - Навыки агентов: сфокусированные навыки, такие как
intlayer-config,intlayer-cliиintlayer-content, плюс по одному на фреймворк, которые обучают агента вашей настройке маршрутизации и типам узлов контента. - Плагин ESLint:
no-raw-textпомечает жёстко закодированные строки, с дополнительными правилами для статических ключей словаря и неиспользуемого контента.
