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 Solid com Intlayer | Internacionalização (i18n)
Table of Contents
Este pacote está em desenvolvimento. Veja a issue para mais informações. Demonstre seu interesse pelo Intlayer para Solid curtindo a issue
Por que Intlayer em vez de alternativas?
Comparado com soluções principais como @solid-primitives/i18n ou i18next, Intlayer é uma solução que vem com otimizações integradas como:
O Intlayer é otimizado para funcionar perfeitamente com Solid, 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 Solid
Table of Contents
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.
solid-intlayer O pacote que integra o Intlayer com a aplicação Solid. Ele fornece provedores de contexto e hooks para internacionalização em Solid.
vite-intlayer Inclui o plugin Vite para integrar o Intlayer com o empacotador Vite, assim como middleware para detectar a localidade preferida 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 react from "@vitejs/plugin-react-swc"; import { intlayer } from "vite-intlayer"; // https://vitejs.dev/config/ export default defineConfig({ plugins: [react(), 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/app.content.tsxCopiar códigoCopiar o código para a área de transferência
import { t, type Dictionary } from "intlayer"; const appContent = { key: "app", content: {}, } satisfies Dictionary; export default appContent;As suas declarações de conteúdo podem ser definidas em qualquer lugar da sua aplicação assim que forem incluídas no diretório
contentDir(por padrão,./src). E devem corresponder à extensão do ficheiro 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
Aceda aos seus dicionários de conteúdo em toda a sua aplicação:
src/App.tsxCopiar códigoCopiar o código para a área de transferência
No Solid,
useIntlayerretorna uma função accessor (por exemplo, `content.). Deve chamar esta função para aceder ao conteúdo reativo.Se quiser usar o seu conteúdo num atributo
string, comoalt,title,href,aria-label, etc., deve chamar o valor da função, como:htmlCopiar códigoCopiar o código para a área de transferência
Alterar o idioma do seu conteúdo
OpcionalPara alterar o idioma do seu conteúdo, pode usar a função
setLocalefornecida pelo hookuseLocale. Esta função permite definir a locale da aplicação e atualizar o conteúdo em conformidade.src/components/LocaleSwitcher.tsxCopiar códigoCopiar o código para a área de transferência
Adicionar Roteamento localizado à sua aplicação
OpcionalO objetivo deste passo é criar rotas únicas para cada idioma. Isto é útil para SEO e URLs amigáveis para SEO. Exemplo:
plaintextCopiar códigoCopiar o código para a área de transferência
Para adicionar roteamento por localeizado à sua aplicação, pode usar
@solidjs/router.Primeiro, instale as dependências necessárias:
bashCopiar códigoCopiar o código para a área de transferência
Depois, envolva a sua aplicação com o
Routere defina as suas rotas usandolocaleMap:src/index.tsxCopiar códigoCopiar o código para a área de transferência
src/App.tsxCopiar códigoCopiar o código para a área de transferência
Alterar a URL quando o idioma mudar
OpcionalPara alterar a URL quando a locale mudar, pode usar a prop
onLocaleChangefornecida pelo hookuseLocale. Pode usar os hooksuseNavigateeuseLocationde@solidjs/routerpara atualizar o caminho da URL.src/components/LocaleSwitcher.tsxCopiar códigoCopiar o código para a área de transferência
Alterar os atributos de idioma e direção do HTML
OpcionalAtualize os atributos
langedirda tag<html>para corresponder à locale atual para acessibilidade e SEO.src/App.tsxCopiar códigoCopiar o código para a área de transferência
Criar um Componente de Link Localizado
OpcionalCrie um componente
Linkpersonalizado que prefixa automaticamente os URLs internos com o idioma atual.src/components/Link.tsxCopiar códigoCopiar o código para a área de transferência
Renderizar Markdown
OpcionalO Intlayer suporta a renderização de conteúdo Markdown diretamente na sua aplicação Solid usando o seu próprio parser interno. Por padrão, o Markdown é tratado como texto simples. Para renderizá-lo como HTML rico, envolva a sua aplicação com o
MarkdownProvider.src/index.tsxCopiar códigoCopiar o código para a área de transferência
Depois pode usá-lo nos seus componentes:
tsxCopiar 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
Certifique-se de que a sua configuração TypeScript inclui os tipos autogerados.
Copiar o código para a área de transferência
Configuração do Git
É recomendado ignorar os ficheiros gerados pelo Intlayer. Isto permite evitar que sejam cometidos no seu repositório Git.
Para isso, pode adicionar as seguintes instruções ao seu ficheiro .gitignore:
Copiar o código para a área de transferência
Extensão para VS Code
Para melhorar a sua experiência de desenvolvimento com o Intlayer, pode instalar a extensão oficial Intlayer VS Code Extension.
Instalar a partir do VS Code Marketplace
Esta extensão fornece:
- Autocompletar para chaves de tradução.
- Deteção de erros em tempo real para traduções em falta.
- Pré-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 Mais Longe
Para ir mais longe, pode implementar o editor visual ou externalizar o seu conteúdo usando o CMS.