Спросите свой вопрос и получите сводку документа, используя эту страницу и выбранного вами поставщика 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» это помогает убедиться, какая конфигурация была разрешена и сколько словарей найдено.
