Спросите свой вопрос и получите сводку документа, используя эту страницу и выбранного вами поставщика AI
История версий
- "Добавлены поиск ссылок, всплывающие подсказки, автодополнение и диагностика"v9.1.310.08.2026
- "Release LSP"v8.12.001.06.2026
Содержимое этой страницы было переведено с помощью ИИ.
Смотреть последнюю версию оригинального контента на английскомЕсли у вас есть идея по улучшению этой документации, не стесняйтесь внести свой вклад, подав запрос на вытягивание на GitHub.
Ссылка на документацию GitHubКопировать Markdown документа в буфер обмена
LSP-сервер Intlayer
Языковой сервер Intlayer — это реализация Language Server Protocol (LSP), которая делает вашу IDE — и вашего ИИ-агента — осведомлёнными об Intlayer. Он связывает вызов вида useIntlayer("home") с файлом .content.ts, который его объявляет, в обоих направлениях.
Возможности
Открыть таблицу в модальном окне для четкого просмотра всех данных
| Возможность | Сочетание клавиш | Что делает |
|---|---|---|
| Перейти к определению | F12 / Cmd+Клик | Перейти от ключа словаря или использования поля к его объявлению в файле контента |
| Найти все ссылки | Shift+F12 | Из файла контента показать все места вызова, использующие этот ключ или поле |
| Всплывающая подсказка | навести курсор | Посмотреть поля словаря или переведённое значение поля, не покидая файл |
| Автодополнение | " ' ` . | Предлагать объявленные ключи словарей внутри геттера и поля контента после . или при деструктуризации | |
| Диагностика | автоматически | Предупреждать, когда ключ не объявлен ни в одном файле контента |
Стоит знать ещё о двух особенностях:
- Объединённые словари — ключ, разделённый между несколькими файлами контента, возвращает по одному результату на файл, поэтому вы можете перейти к каждому объявлению.
- Поддержка монорепозиториев — сервер находит ближайший к каждому файлу
intlayer.config.*, поэтому несколько проектов в одном рабочем пространстве получают собственные словари.
Поддерживаемые вызовы
Ключ считывается либо из позиционного строкового аргумента, либо из объекта опций ({ namespace }, { id }).
Открыть таблицу в модальном окне для четкого просмотра всех данных
| Библиотека | Вызовы |
|---|---|
| Intlayer | useIntlayer, getIntlayer |
| i18next / react-i18next | useTranslation, getFixedT, t, Trans |
| next-intl / use-intl | useTranslations, getTranslations, createTranslator |
| react-intl | formatMessage, FormattedMessage |
| Lingui | useLingui, t, Trans, _ |
| vue-i18n | useI18n |
Это работает для каждого пакета *-intlayer (next-intlayer, react-intlayer, vue-intlayer, svelte-intlayer, solid-intlayer, preact-intlayer, angular-intlayer, lit-intlayer, express-intlayer, hono-intlayer, fastify-intlayer, intlayer), а также для пакетов-адаптеров совместимости, позволяющих сохранить существующий синтаксис i18n.
Словари читаются из результата сборки, поэтому выполните npx intlayer build — или держите dev-сервер запущенным — чтобы серверу было что разрешать.
Установка
Сервер поставляется как бинарный файл intlayer-lsp в составе @intlayer/lsp:
Копировать код в буфер обмена
Установите его глобально (npm install -g @intlayer/lsp), если вашему редактору нужен intlayer-lsp в PATH — это относится к плагину Claude Code и к любой конфигурации ниже, которая вызывает бинарный файл напрямую.
Настройка
Установите расширение Intlayer для VS Code. Языковой сервер входит в него начиная с v8.12.0 и запускается автоматически — настройка не требуется.
Другие возможности описаны в документации расширения VS Code.
Cursor и Windsurf — форки VS Code, использующие ту же экосистему расширений. Установите расширение Intlayer для VS Code один раз, и сервер активируется автоматически — настройка не требуется.
Intlayer поставляет плагин для Claude Code, размещённый в репозитории Intlayer. Он даёт Claude Code настоящее разрешение символов для ваших ключей словарей вместо отката к grep.
Поместите бинарный файл в PATH, затем зарегистрируйте маркетплейс и установите плагин:
Копировать код в буфер обмена
install также включает плагин. Перезапустите Claude Code — языковые серверы загружаются при старте, поэтому до перезапуска плагин не действует.
После этого Claude Code запускает сервер для файлов .ts, .tsx, .js, .jsx, .vue, .astro и .svelte и использует goToDefinition, findReferences и hover при навигации по коду.
Если переход к определению всё ещё не работает, ваша версия Claude Code может скрывать инструмент LSP за флагом:
Копировать код в буфер обмена
Zed имеет встроенную поддержку LSP. Добавьте сервер в пользовательские настройки:
Копировать код в буфер обмена
Заполнитель "..." сохраняет языковые серверы Zed по умолчанию рядом с сервером Intlayer.
С помощью nvim-lspconfig зарегистрируйте пользовательскую конфигурацию сервера:
Копировать код в буфер обмена
После перезапуска Neovim gd на ключе словаря выполняет переход к определению, а gr — поиск ссылок.
Копировать код в буфер обмена
Копировать код в буфер обмена
Любой редактор с поддержкой LSP может запускать @intlayer/lsp. Укажите ему:
- Исполняемый файл —
npx @intlayer/lspили бинарный файлintlayer-lsp - Транспорт — stdio (стандартный)
- Возможности —
definitionProvider,referencesProvider,hoverProvider,completionProvider(символы-триггеры"'`.), push-диагностика,textDocumentSync: Incremental - Шаблоны корня —
intlayer.config.ts,intlayer.config.js,package.json
Точный формат конфигурации смотрите в документации LSP вашего редактора.
Примечание об ИИ-агентах в терминале
Claude Code работает как полноценный LSP-клиент — см. вкладку выше.
OpenAI Codex и большинство других терминальных инструментов не являются LSP-клиентами: они читают и пишут файлы напрямую. Запуск сервера сам по себе им не поможет; польза появляется, когда он активен в сопутствующем редакторе, чей индекс агент может запрашивать (Cursor Composer, Windsurf Cascade, Copilot Chat).
Как это работает
Для каждого файла сервер находит ближайший intlayer.config.* и загружает конфигурацию этого проекта, чтобы найти скомпилированные словари. Конфигурация, словари и список исходных файлов кешируются с коротким TTL и сбрасываются при изменении отслеживаемого файла контента.
При запросе сервер разбирает документ (через oxc) и анализирует позицию курсора:
- На строке ключа (
useIntlayer("home")) → возвращает каждый файл контента, объявляющий этот ключ, с позицией на строкеkey:. - На использовании поля (
content.title, деструктурированное свойство,t('path.to.field'),<Trans>, …) → возводит переменную обратно к её словарю и возвращает соответствующее поле внутри файлов контента. - Из файла контента → выполняет обратный поиск, просматривая исходники проекта в поисках мест вызова этого ключа или поля.
Устранение неполадок
Открыть таблицу в модальном окне для четкого просмотра всех данных
| Симптом | Вероятная причина | Решение |
|---|---|---|
| Ничего не происходит | Сервер не запущен | Убедитесь, что @intlayer/lsp установлен и редактор его запускает |
| Работает в редакторе, но не в Claude Code | Плагин установлен во время сессии | Перезапустите Claude Code — языковые серверы загружаются при старте |
| Определения для ключа не найдены | Словари не собраны | Выполните npx intlayer build или запустите dev-сервер |
| Все ключи отмечены как необъявленные | Конфигурация не разрешена | Проверьте, что intlayer.config.ts (или .js) есть в корне проекта |
| В монорепозитории используется не тот проект | Нет конфигурации в пакете | Добавьте intlayer.config.* в каждый пакет, объявляющий собственный контент |
| Сервер падает при запуске | Слишком старая версия Node.js | Требуется Node.js ≥ 14.18 |
В VS Code сервер пишет логи в Вид → Вывод → «Intlayer LSP» — это помогает убедиться, какая конфигурация была разрешена и сколько словарей найдено.