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
- "Atualizar o uso da API useIntlayer do Solid para acesso direto a propriedades"v8.9.004/05/2026
- "Adicionar comando init"v7.5.930/12/2025
- "Histórico inicial"v5.5.1029/06/2025
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
Traduza seu Vite and Vue com Intlayer | Internacionalização (i18n)
Veja o Modelo de Aplicação no GitHub.
Por que Intlayer em vez de alternativas?
Comparado com soluções principais como vue-i18n ou i18next, Intlayer é uma solução que vem com otimizações integradas como:
O Intlayer é otimizado para funcionar perfeitamente com Vue, oferecendo escopo de conteúdo em nível de componente, traduções reativas e todos os recursos necessários para dimensionar a internacionalização (i18n).
Em vez de carregar arquivos JSON enormes em suas páginas, carregue apenas o conteúdo necessário. O Intlayer ajuda a reduzir o tamanho do bundle e das páginas em até 50%.
Definir o escopo do conteúdo do seu aplicativo facilita a manutenção de aplicativos de grande escala. Você pode duplicar ou excluir uma única pasta de recursos sem o fardo mental de revisar toda a base de código de seu conteúdo. Além disso, o Intlayer é totalmente tipado (fully typed) para garantir a precisão do seu conteúdo.
A co-localização de conteúdo reduz o contexto necessário pelos Large Language Models (LLMs). O Intlayer também vem com um conjunto de ferramentas, como uma CLI para testar traduções ausentes,LSP, MCP, e habilidades do agente, para tornar a experiência do desenvolvedor (DX) ainda mais tranquila para os agentes de IA.
Use a automação para traduzir seu pipeline de CI/CD usando o LLM de sua escolha às custas de seu provedor de IA. O Intlayer também oferece um compilador para automatizar a extração de conteúdo, bem como uma plataforma web para ajudar a traduzir em segundo plano.
Conectar arquivos JSON enormes a componentes pode levar a problemas de desempenho e reatividade. O Intlayer otimiza o carregamento do seu conteúdo no momento da construção.
Mais do que apenas uma solução i18n, o Intlayer fornece um [editor visual] auto-hospedado(/pt/doc/concept/editor) e um CMS completo para ajudá-lo a gerenciar seu conteúdo multilíngue em tempo real, facilitando a colaboração com tradutores, redatores e outros membros da equipe. O conteúdo pode ser armazenado local e/ou remotamente.
Guia Passo a Passo para Configurar o Intlayer em uma Aplicação Vite e Vue
Veja o Modelo de Aplicação no GitHub.
Instalar Dependências
Instale os pacotes necessários usando npm:
bashCopiar códigoCopiar o código para a área de transferência
intlayer
O pacote principal que fornece ferramentas de internacionalização para gerenciamento de configuração, tradução, declaração de conteúdo, transpiração e comandos CLI.
vue-intlayer O pacote que integra o Intlayer com a aplicação Vue. Ele fornece provedores de contexto e composables para internacionalização em Vue.
vite-intlayer Inclui o plugin Vite para integrar o Intlayer com o empacotador Vite, assim como middleware para detectar o idioma preferido do usuário, gerenciar cookies e lidar com redirecionamento de URL.
Configuração do seu projeto
Crie um arquivo de configuração para configurar os idiomas da sua aplicação:
intlayer.config.tsCopiar códigoCopiar o código para a área de transferência
import { Locales, type IntlayerConfig } from "intlayer"; const config: IntlayerConfig = { internationalization: { locales: [ Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH, // Seus outros idiomas ], defaultLocale: Locales.ENGLISH, }, }; export default config;Através deste arquivo de configuração, você pode configurar URLs localizadas, redirecionamento de middleware, nomes de cookies, a localização e extensão das suas declarações de conteúdo, desabilitar logs do Intlayer no console, e muito mais. Para uma lista completa dos parâmetros disponíveis, consulte a documentação de configuração.
Integre o Intlayer na Sua Configuração do Vite
Adicione o plugin intlayer na sua configuração.
vite.config.tsCopiar códigoCopiar o código para a área de transferência
import { defineConfig } from "vite"; import vue from "@vitejs/plugin-vue"; import { intlayer } from "vite-intlayer"; // https://vitejs.dev/config/ export default defineConfig({ plugins: [vue(), intlayer()], });O plugin Vite
intlayer()é usado para integrar o Intlayer com o Vite. Ele garante a construção dos arquivos de declaração de conteúdo e os monitora no modo de desenvolvimento. Define variáveis de ambiente do Intlayer dentro da aplicação Vite. Além disso, fornece aliases para otimizar o desempenho.Declare Seu Conteúdo
Crie e gerencie suas declarações de conteúdo para armazenar traduções:
src/helloWorld.content.tsCopiar códigoCopiar o código para a área de transferência
import { t, type Dictionary } from "intlayer"; const helloWorldContent = { key: "helloworld", content: { count: t({ en: "count is ", fr: "le compte est ", es: "el recuento es " }), edit: t({ en: "Edit <code>components/HelloWorld.vue</code> and save to test HMR", fr: "Éditez <code>components/HelloWorld.vue</code> e salve para testar HMR", es: "Edita <code>components/HelloWorld.vue</code> y guarda para probar HMR", }), checkOut: t({ en: "Confira ", fr: "Vérifiez ", es: "Compruebe " }), officialStarter: t({ en: ", o starter oficial Vue + Vite", fr: ", le starter officiel Vue + Vite", es: ", el starter oficial Vue + Vite", }), learnMore: t({ en: "Saiba mais sobre o Suporte IDE para Vue em ", fr: "En savoir plus sur le support IDE pour Vue dans le ", es: "Aprenda más sobre el soporte IDE para Vue en el ", }), vueDocs: t({ en: "Guia de Escalonamento da Documentação Vue", fr: "Vue Docs Scaling up Guide", es: "Vue Docs Scaling up Guide", }), readTheDocs: t({ en: "Click on the Vite and Vue logos to learn more", fr: "Cliquez sur les logos Vite et Vue pour en savoir plus", es: "Haga clic en los logotipos de Vite y Vue para obtener más información", pt: "Clique nos logos do Vite e Vue para saber mais", }), }, } satisfies Dictionary; export default helloWorldContent;Suas declarações de conteúdo podem ser definidas em qualquer lugar da sua aplicação, desde que estejam incluídas no diretório
contentDir(por padrão,./src). E correspondam à extensão do arquivo de declaração de conteúdo (por padrão,.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}).Para mais detalhes, consulte a documentação de declaração de conteúdo.
Utilize o Intlayer no Seu Código
Para utilizar os recursos de internacionalização do Intlayer em toda a sua aplicação Vue, você primeiro precisa registrar a instância singleton do Intlayer no seu arquivo principal. Esta etapa é crucial, pois fornece o contexto de internacionalização para todos os componentes da sua aplicação, tornando as traduções acessíveis em qualquer lugar da sua árvore de componentes.
Copiar códigoCopiar o código para a área de transferência
Acesse seus dicionários de conteúdo em toda a sua aplicação criando um componente Vue principal e utilizando os composables
useIntlayer:src/HelloWord.vueCopiar códigoCopiar o código para a área de transferência
Acessando Conteúdo no Intlayer
O Intlayer oferece diferentes APIs para acessar seu conteúdo:
Sintaxe baseada em componentes (recomendada): Use a sintaxe
<myContent />ou<Component :is="myContent" />para renderizar o conteúdo como um Nó do Intlayer. Isso integra-se perfeitamente com o Editor Visual e o CMS.Sintaxe baseada em string: Use
{{ myContent }}para renderizar o conteúdo como texto simples, sem suporte ao Editor Visual.Sintaxe HTML bruta: Use
<div v-html="myContent" />para renderizar o conteúdo como HTML bruto, sem suporte ao Editor Visual.Sintaxe de desestruturação: O composable
useIntlayerretorna um Proxy com o conteúdo. Esse proxy pode ser desestruturado para acessar o conteúdo mantendo a reatividade.- Use
const content = useIntlayer("myContent");e{{ content.myContent }}/<content.myContent />. - Ou use
const { myContent } = useIntlayer("myContent");e{{ myContent }}/<myContent/>para desestruturar o conteúdo.
- Use
Se a sua aplicação já existe, você pode usar o Intlayer Compiler em conjunto com o comando extract para converter milhares de componentes em um segundo.
Alterar o idioma do seu conteúdo
OpcionalPara alterar o idioma do seu conteúdo, você pode usar a função
setLocalefornecida pelo composableuseLocale. Essa função permite definir o locale da aplicação e atualizar o conteúdo de acordo.Crie um componente para alternar entre idiomas:
src/components/LocaleSwitcher.vueCopiar códigoCopiar o código para a área de transferência
Então, use este componente no seu App.vue:
src/App.vueCopiar códigoCopiar o código para a área de transferência
Adicione roteamento por localeizado à sua aplicação
OpcionalAdicionar roteamento por localeizado em uma aplicação Vue normalmente envolve o uso do Vue Router com prefixos de localidade. Isso cria rotas únicas para cada idioma, o que é útil para SEO e URLs amigáveis para SEO.
Exemplo:
plaintextCopiar códigoCopiar o código para a área de transferência
Primeiro, instale o Vue Router:
bashCopiar códigoCopiar o código para a área de transferência
Então, crie uma configuração de roteador que lide com o roteamento baseado em localidade:
src/router/index.tsCopiar códigoCopiar o código para a área de transferência
O nome é usado para identificar a rota no roteador. Deve ser único entre todas as rotas para evitar conflitos e garantir a navegação e o link corretos.
Em seguida, registre o roteador no seu arquivo main.js:
src/main.tsCopiar códigoCopiar o código para a área de transferência
Em seguida, atualize seu arquivo
App.vuepara renderizar o componente RouterView. Este componente exibirá o componente correspondente à rota atual.src/App.vueCopiar códigoCopiar o código para a área de transferência
Paralelamente, você também pode usar o
intlayerProxypara adicionar roteamento no lado do servidor à sua aplicação. Este plugin detectará automaticamente o idioma atual com base na URL e definirá o cookie de idioma apropriado. Se nenhum idioma for especificado, o plugin determinará o idioma mais adequado com base nas preferências de idioma do navegador do usuário. Se nenhum idioma for detectado, ele redirecionará para o idioma padrão.vite.config.tsCopiar códigoCopiar o código para a área de transferência
import { defineConfig } from "vite"; import vue from "@vitejs/plugin-vue"; import { intlayer, intlayerProxy } from "vite-intlayer"; // https://vitejs.dev/config/ export default defineConfig({ plugins: [ intlayerProxy(), // should be placed first vue(), intlayer(), ], });Alterar a URL quando o idioma mudar
OpcionalPara atualizar automaticamente a URL quando o usuário mudar o idioma, você pode modificar o componente
LocaleSwitcherpara usar o Vue Router:src/components/LocaleSwitcher.vueCopiar códigoCopiar o código para a área de transferência
Dica: Para melhor SEO e acessibilidade, use tags como
<a href="/fr/home" hreflang="fr">para vincular às páginas localizadas, como mostrado no Passo 10. Isso permite que os motores de busca descubram e indexem corretamente URLs específicas de idioma. Para preservar o comportamento SPA, você pode impedir a navegação padrão com @click.prevent, alterar o locale usando useLocale e navegar programaticamente usando o Vue Router.htmlCopiar códigoCopiar o código para a área de transferência
Alterar os atributos de idioma e direção do HTML
OpcionalQuando sua aplicação suporta múltiplos idiomas, é crucial atualizar os atributos
langedirda tag<html>para corresponder ao locale atual. Fazer isso garante:- Acessibilidade: Leitores de tela e tecnologias assistivas dependem do atributo
langcorreto para pronunciar e interpretar o conteúdo com precisão. - Renderização de Texto: O atributo
dir(direção) garante que o texto seja exibido na ordem correta (por exemplo, da esquerda para a direita para inglês, da direita para a esquerda para árabe ou hebraico), o que é essencial para a legibilidade. - SEO: Motores de busca usam o atributo
langpara determinar o idioma da sua página, ajudando a exibir o conteúdo localizado correto nos resultados de pesquisa.
Ao atualizar esses atributos dinamicamente quando o locale muda, você garante uma experiência consistente e acessível para usuários em todos os idiomas suportados.
src/composables/useI18nHTMLAttributes.tsCopiar códigoCopiar o código para a área de transferência
Use este composable no seu
App.vueou em um componente global:src/App.vueCopiar códigoCopiar o código para a área de transferência
- Acessibilidade: Leitores de tela e tecnologias assistivas dependem do atributo
Criando um Componente de Link Localizado
OpcionalPara garantir que a navegação da sua aplicação respeite o idioma atual, você pode criar um componente personalizado
Link. Este componente adiciona automaticamente o prefixo do idioma atual às URLs internas. Por exemplo, quando um usuário que fala francês clica em um link para a página "Sobre", ele é redirecionado para/fr/aboutem vez de/about.Esse comportamento é útil por várias razões:
- SEO e Experiência do Usuário: URLs localizadas ajudam os motores de busca a indexar corretamente páginas específicas por idioma e fornecem aos usuários conteúdo no idioma de sua preferência.
- Consistência: Ao usar um link localizado em toda a sua aplicação, você garante que a navegação permaneça dentro do idioma atual, evitando mudanças inesperadas de idioma.
- Manutenção: Centralizar a lógica de localização em um único componente simplifica o gerenciamento das URLs, tornando sua base de código mais fácil de manter e expandir conforme sua aplicação cresce.
src/components/Link.vueCopiar códigoCopiar o código para a área de transferência
Para uso com Vue Router, crie uma versão específica para o roteador:
src/components/RouterLink.vueCopiar códigoCopiar o código para a área de transferência
Use esses componentes na sua aplicação:
src/App.vueCopiar códigoCopiar o código para a área de transferência
Renderizar Markdown
OpcionalIntlayer suporta a renderização de conteúdo Markdown diretamente na sua aplicação Vue. Por padrão, o Markdown é tratado como texto simples. Para converter Markdown em HTML enriquecido, você pode integrar o markdown-it, um parser de Markdown.
Isto é particularmente útil quando suas traduções incluem conteúdo formatado como listas, links ou ênfases.
Por padrão, o Intlayer renderiza markdown como string. Mas o Intlayer também fornece uma forma de renderizar markdown em HTML usando a função
installIntlayerMarkdown.Para ver como declarar conteúdo markdown usando o pacote
intlayer, consulte a documentação de markdown.main.tsCopiar códigoCopiar o código para a área de transferência
Uma vez registrado, você pode usar a sintaxe baseada em componentes para exibir o conteúdo Markdown diretamente:
vueCopiar códigoCopiar o código para a área de transferência
Extrair o conteúdo dos seus componentes
OpcionalSe você tiver uma base de código existente, transformar milhares de arquivos pode ser demorado.
Para facilitar esse processo, o Intlayer propõe um compilador / extrator para transformar seus componentes e extrair o conteúdo.
Para configurá-lo, você pode adicionar uma seção
compilerno seu arquivointlayer.config.ts:intlayer.config.tsCopiar códigoCopiar o código para a área de transferência
import { type IntlayerConfig } from "intlayer"; const config: IntlayerConfig = { // ... Resto da sua configuração compiler: { /** * Indica se o compilador deve ser ativado. */ enabled: true, /** * Define o caminho dos arquivos de saída */ output: ({ fileName, extension }) => `./${fileName}${extension}`, /** * Indica se os componentes devem ser salvos após serem transformados. Dessa forma, o compilador pode ser executado apenas uma vez para transformar o aplicativo e depois removido. */ saveComponents: false, /** * Prefixo da chave do dicionário */ dictionaryKeyPrefix: "", }, }; export default config;Execute o extrator para transformar seus componentes e extrair o conteúdo
bashCopiar códigoCopiar o código para a área de transferência
(Opcional) Sitemap e robots.txt (geração no build)
A Intlayer expõe utilitários - generateSitemap e getMultilingualUrls - para formatar um sitemap.xml multilíngue e um robots.txt prontos para crawlers e os gravar automaticamente em public/. Normalmente corre um pequeno script Node antes do Vite (por exemplo hooks npm predev / prebuild) para que os ficheiros existam no build ou no servidor de desenvolvimento.
Sitemap
O gerador de sitemaps da Intlayer respeita as suas línguas e inclui os metadados habituais.
O sitemap suporta o espaço de nomesxhtml:link(hreflang). Em vez de listar apenas URLs soltas, a Intlayer liga de forma bidireccional todas as versões localizadas de cada página (por exemplo/about,/fr/aboutou/about?lang=frconsoante o modo de rotas).
Robots.txt
Use getMultilingualUrls para que as regras Disallow cubram todas as variantes localizadas de caminhos sensíveis.
1. Criar generate-seo.mjs na raiz do projeto
Copiar o código para a área de transferência
O pacote intlayer tem de estar instalado. Defina SITE_URL no ambiente em produção (por exemplo na CI).
Prefiragenerate-seo.mjspara ESM no Node. Se usargenerate-seo.js, garanta"type": "module"nopackage.jsonou execute o Node com ESM.
2. Executar o script antes do Vite
Copiar o código para a área de transferência
Ajuste os comandos se usar pnpm ou yarn. Também pode invocar o script a partir da CI ou de outro passo do pipeline.
Configurar TypeScript
O Intlayer utiliza a ampliação de módulos para aproveitar os benefícios do TypeScript e tornar sua base de código mais robusta.


Certifique-se de que sua configuração do TypeScript inclua os tipos gerados automaticamente.
Copiar o código para a área de transferência
Configuração do Git
É recomendado ignorar os arquivos gerados pelo Intlayer. Isso permite que você evite comitá-los no seu repositório Git.
Para isso, você pode adicionar as seguintes instruções ao seu arquivo .gitignore:
Copiar o código para a área de transferência
Extensão VS Code
Para melhorar sua experiência de desenvolvimento com o Intlayer, você pode instalar a Extensão oficial do Intlayer para VS Code.
Instalar no VS Code Marketplace
Esta extensão oferece:
- Autocompletar para chaves de tradução.
- Detecção de erros em tempo real para traduções ausentes.
- Visualizações inline do conteúdo traduzido.
- Ações rápidas para criar e atualizar traduções facilmente.
Para mais detalhes sobre como usar a extensão, consulte a documentação da Extensão Intlayer para VS Code.
Ir Além
Para ir além, você pode implementar o editor visual ou externalizar seu conteúdo usando o CMS.