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
- "Implementar reescritas de URL centralizadas com formatadores específicos de framework e o hook useRewriteURL."v8.0.025/01/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
Implementação de Reescritas de URL Personalizadas
O Intlayer suporta reescritas de URL personalizadas, permitindo que você defina caminhos específicos por locale que diferem da estrutura padrão /locale/path. Isso possibilita URLs como /about para inglês e /a-propos para francês, mantendo a lógica interna da aplicação canônica.
Configuração
Regras de reescrita personalizadas são configuradas na seção routing do seu arquivo intlayer.config.ts usando formatadores específicos do framework. Esses formatadores fornecem a sintaxe correta para o router que você prefere.
Copiar o código para a área de transferência
import { Locales, type IntlayerConfig } from "intlayer";import { nextjsRewrite } from "intlayer/routing";const config: IntlayerConfig = { // ... routing: { mode: "prefix-no-default", rewrite: nextjsRewrite({ "/[locale]/about": { fr: "/[locale]/a-propos", es: "/[locale]/acerca-de", }, "/[locale]/products/[id]": { fr: "/[locale]/produits/[id]", es: "/[locale]/productos/[id]", }, }), },};export default config;Formatadores Disponíveis
Intlayer fornece formatadores para todos os frameworks populares:
nextjsRewrite: Para Next.js App Router. Suporta[slug],[...slug](1+), e[[...slug]](0+).svelteKitRewrite: Para SvelteKit. Suporta[slug],[...path](0+), e[[optional]](0-1).reactRouterRewrite: Para React Router. Suporta:sluge*(0+).vueRouterRewrite: Para Vue Router 4. Suporta:slug,:slug?(0-1),:slug*(0+), e:slug+(1+).solidRouterRewrite: Para Solid Router. Suporta:sluge*slug(0+).tanstackRouterRewrite: Para TanStack Router. Suporta$sluge*(0+).nuxtRewrite: Para Nuxt 3. Suporta[slug]e[...slug](0+).viteRewrite: Formatador genérico para qualquer projeto baseado em Vite. Normaliza a sintaxe para o proxy do Vite.
Padrões Avançados
O Intlayer normaliza internamente esses padrões para uma sintaxe unificada, permitindo correspondência de caminhos e geração mais sofisticadas:
- Segmentos Opcionais:
[[optional]](SvelteKit) ou:slug?(Vue/React) são suportados. - Catch-all (Zero ou mais):
[[...slug]](Next.js),[...path](SvelteKit/Nuxt) ou*(React/TanStack) permitem corresponder múltiplos segmentos. - Catch-all Obrigatório (Um ou mais):
[...slug](Next.js) ou:slug+(Vue) garantem que pelo menos um segmento esteja presente.
Correção de URL no Lado do Cliente: useRewriteURL
Para garantir que a barra de endereço do navegador reflita sempre a URL localizada "bonita", o Intlayer fornece o hook useRewriteURL. Este hook atualiza silenciosamente a URL usando window.history.replaceState quando um usuário acessa um caminho canônico.
Uso em Frameworks
Copiar o código para a área de transferência
'use client';import { useRewriteURL } from "next-intlayer";const MyLayout = ({ children }) => { useRewriteURL(); // Corrige automaticamente /fr/about para /fr/a-propos return <>{children}</>;};Integração com o Router & Proxies
Os proxies server-side do Intlayer (Vite & Next.js) tratam automaticamente reescritas personalizadas para garantir consistência de SEO.
- Reescritas Internas: Quando um utilizador visita
/fr/a-propos, o proxy mapeia internamente para/fr/aboutpara que o seu framework corresponda à rota correta. - Redirecionamentos Autoritativos: Se um utilizador digitar manualmente
/fr/about, o proxy emite um redirecionamento 301/302 para/fr/a-propos, garantindo que os motores de busca indexem apenas uma versão da página.
Integração com Next.js
A integração com Next.js é totalmente gerida através do middleware intlayerProxy.
Copiar o código para a área de transferência
import { intlayerProxy } from "next-intlayer/middleware";import { NextRequest } from "next/server";export function middleware(request: NextRequest) { return intlayerProxy(request);}Integração com Vite
Para SolidJS, Vue e Svelte, o plugin Vite intlayerProxy gerencia as reescritas durante o desenvolvimento.
Copiar o código para a área de transferência
import { defineConfig } from "vite";import { intlayerProxy } from "vite-intlayer";export default defineConfig({ plugins: [intlayerProxy()],});Principais Funcionalidades
1. Reescritas Multi-Contexto
Cada formatter gera um RewriteObject contendo regras especializadas para diferentes consumidores:
url: Otimizado para geração de URLs do lado do cliente (remove segmentos de locale).nextjs: Preserva[locale]para o middleware do Next.js.vite: Preserva:localepara os proxies do Vite.
2. Normalização Automática de Padrões
O Intlayer normaliza internamente todas as sintaxes de padrão (por exemplo, convertendo [param] para :param) para que o matching permaneça consistente independentemente do framework de origem.
3. URLs canônicas de SEO
Ao impor redirecionamentos de caminhos canônicos para aliases localizados mais apresentáveis, o Intlayer evita problemas de conteúdo duplicado e melhora a descoberta do site.
Utilitários principais
getLocalizedUrl(url, locale): Gera uma URL localizada respeitando as regras de reescrita.getCanonicalPath(path, locale): Resolve uma URL localizada de volta para o seu caminho canônico interno.getRewritePath(pathname, locale): Detecta se um pathname precisa ser corrigido para o seu alias localizado mais amigável.