Faça sua pergunta e obtenha um resumo do documento referenciando esta página e o provedor AI de sua escolha
Histórico de versões
- "Adicionados busca de referências, hover, autocompletar e diagnósticos"v9.1.310/08/2026
- "Release LSP"v8.12.001/06/2026
O conteúdo desta página foi traduzido com uma IA.
Veja a última versão do conteúdo original em inglêsSe você tiver uma ideia para melhorar esta documentação, sinta-se à vontade para contribuir enviando uma pull request no GitHub.
Link do GitHub para a documentaçãoCopiar o Markdown do documento para a área de transferência
Servidor LSP do Intlayer
O servidor de linguagem do Intlayer é uma implementação do Language Server Protocol (LSP) que torna o seu IDE — e o seu agente de IA — cientes do Intlayer. Ele conecta uma chamada como useIntlayer("home") ao arquivo .content.ts que a declara, nos dois sentidos.
Funcionalidades
Abrir a tabela em um modal para ver todo o conteúdo claramente
| Funcionalidade | Atalho | O que faz |
|---|---|---|
| Ir para a definição | F12 / Cmd+Clique | Saltar de uma chave de dicionário ou do uso de um campo para a sua declaração no arquivo de conteúdo |
| Localizar todas as referências | Shift+F12 | A partir de um arquivo de conteúdo, listar todos os pontos de chamada que usam essa chave ou campo |
| Hover | passar o cursor | Pré-visualizar os campos de um dicionário, ou o valor traduzido de um campo, sem sair do arquivo |
| Autocompletar | " ' ` . | Sugerir as chaves de dicionário declaradas dentro de um getter, e os campos de conteúdo após . ou em desestruturação | |
| Diagnósticos | automático | Avisar quando uma chave não está declarada em nenhum arquivo de conteúdo |
Vale conhecer dois comportamentos adicionais:
- Dicionários mesclados — uma chave dividida entre vários arquivos de conteúdo retorna um resultado por arquivo, para que você possa navegar até cada declaração.
- Compatível com monorepo — o servidor resolve o
intlayer.config.*mais próximo de cada arquivo, de modo que vários projetos em um mesmo workspace tenham seus próprios dicionários.
Chamadas suportadas
A chave é lida de um argumento posicional do tipo string ou de um objeto de opções ({ namespace }, { id }).
Abrir a tabela em um modal para ver todo o conteúdo claramente
| Biblioteca | Chamadas |
|---|---|
| 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 |
Isso funciona para todos os pacotes *-intlayer (next-intlayer, react-intlayer, vue-intlayer, svelte-intlayer, solid-intlayer, preact-intlayer, angular-intlayer, lit-intlayer, express-intlayer, hono-intlayer, fastify-intlayer, intlayer) e para os pacotes adaptadores de compatibilidade que permitem manter a sua sintaxe de i18n atual.
Os dicionários são lidos da saída de build, então execute npx intlayer build — ou mantenha o seu servidor de desenvolvimento rodando — para dar ao servidor algo para resolver.
Instalação
O servidor é distribuído como o binário intlayer-lsp em @intlayer/lsp:
Copiar o código para a área de transferência
Instale-o globalmente (npm install -g @intlayer/lsp) se o seu editor precisar do intlayer-lsp no PATH — é o caso do plugin do Claude Code e de qualquer configuração abaixo que chame o binário diretamente.
Configuração
Instale a extensão do Intlayer para VS Code. O servidor de linguagem vem incluído desde a v8.12.0 e inicia automaticamente — nenhuma configuração necessária.
Consulte a documentação da extensão do VS Code para conhecer os demais recursos.
Cursor e Windsurf são forks do VS Code e usam o mesmo ecossistema de extensões. Instale a extensão do Intlayer para VS Code uma vez e o servidor é ativado automaticamente — nenhuma configuração necessária.
O Intlayer fornece um plugin para o Claude Code hospedado no repositório do Intlayer. Ele dá ao Claude Code resolução real de símbolos para as suas chaves de dicionário, em vez de recorrer ao grep.
Coloque o binário no seu PATH, depois registre o marketplace e instale o plugin:
Copiar o código para a área de transferência
O install também habilita o plugin. Reinicie o Claude Code — os servidores de linguagem são carregados na inicialização, então o plugin só tem efeito depois disso.
O Claude Code então inicia o servidor em arquivos .ts, .tsx, .js, .jsx, .vue, .astro e .svelte, e usa goToDefinition, findReferences e hover ao navegar pelo seu código.
Se o Go-to-Definition ainda não fizer nada, a sua versão do Claude Code pode condicionar a ferramenta LSP a uma flag:
Copiar o código para a área de transferência
O Zed tem suporte nativo a LSP. Adicione o servidor às suas configurações de usuário:
Copiar o código para a área de transferência
O marcador "..." mantém os servidores de linguagem padrão do Zed junto com o do Intlayer.
Usando o nvim-lspconfig, registre uma configuração de servidor personalizada:
Copiar o código para a área de transferência
Após reiniciar o Neovim, gd sobre uma chave de dicionário executa Ir para a definição e gr executa Localizar referências.
Copiar o código para a área de transferência
Copiar o código para a área de transferência
Qualquer editor compatível com LSP pode executar o @intlayer/lsp. Aponte-o para:
- Executável —
npx @intlayer/lsp, ou o bináriointlayer-lsp - Transporte — stdio (padrão)
- Capacidades —
definitionProvider,referencesProvider,hoverProvider,completionProvider(caracteres de disparo"'`.), diagnósticos push,textDocumentSync: Incremental - Padrões de raiz —
intlayer.config.ts,intlayer.config.js,package.json
Consulte a documentação de LSP do seu editor para o formato exato de configuração.
Nota sobre agentes de IA em terminal
O Claude Code atua como um cliente LSP de verdade — veja a aba acima.
O OpenAI Codex e a maioria das outras ferramentas de terminal não são clientes LSP: elas leem e escrevem arquivos diretamente. Rodar o servidor sozinho não as ajuda; o valor vem de tê-lo ativo em um editor complementar cujo índice o agente possa consultar (Cursor Composer, Windsurf Cascade, Copilot Chat).
Como funciona
Para cada arquivo, o servidor localiza o intlayer.config.* mais próximo e carrega a configuração desse projeto para encontrar os dicionários compilados. Configuração, dicionários e a lista de arquivos-fonte são armazenados em cache com TTLs curtos e invalidados sempre que um arquivo de conteúdo monitorado muda.
A cada requisição, o servidor analisa o documento (via oxc) e inspeciona a posição do cursor:
- Sobre uma string de chave (
useIntlayer("home")) → retorna todos os arquivos de conteúdo que declaram essa chave, posicionados na sua linhakey:. - Sobre o uso de um campo (
content.title, uma propriedade desestruturada,t('path.to.field'),<Trans>, …) → resolve a variável de volta até o seu dicionário e retorna o campo correspondente dentro dos arquivos de conteúdo. - A partir de um arquivo de conteúdo → executa a busca inversa, varrendo os fontes do projeto em busca dos pontos de chamada dessa chave ou campo.
Solução de problemas
Abrir a tabela em um modal para ver todo o conteúdo claramente
| Sintoma | Causa provável | Solução |
|---|---|---|
| Nada acontece | Servidor não está rodando | Verifique se @intlayer/lsp está instalado e se o seu editor o inicia |
| Funciona no editor, mas não no Claude Code | Plugin instalado no meio da sessão | Reinicie o Claude Code — os servidores de linguagem carregam na inicialização |
| Nenhuma definição encontrada para uma chave | Dicionários não compilados | Execute npx intlayer build, ou inicie o seu servidor de desenvolvimento |
| Todas as chaves reportadas como não declaradas | Configuração não resolvida | Verifique se existe um intlayer.config.ts (ou .js) na raiz do projeto |
| Projeto errado usado em um monorepo | Falta configuração por pacote | Adicione um intlayer.config.* a cada pacote que declara conteúdo próprio |
| O servidor quebra ao iniciar | Versão do Node.js muito antiga | Requer Node.js ≥ 14.18 |
No VS Code, o servidor registra em Exibir → Saída → "Intlayer LSP" — útil para confirmar qual configuração foi resolvida e quantos dicionários foram encontrados.