Repolode
mcamara

mcamara/laravel-localization

Pacote Laravel para localização de URLs em projetos i18n: rotas com prefixo de idioma, detecção do idioma do navegador, slugs de rota traduzíveis e helpers para seletores de idioma.

Estrelas
3,558
Forks
505
Issues abertas
11
Último commit
há 3 meses

O que é?

Laravel Localization adiciona suporte a URLs multilíngues em aplicações Laravel. As rotas são definidas uma única vez em um grupo com prefixo de idioma, e o pacote define o idioma da aplicação com base no segmento da URL. Assim, /en/about e /es/acerca levam ao mesmo controller, enquanto App::getLocale() retorna o idioma ativo.

O pacote pode detectar o idioma do visitante pelo cabeçalho Accept-Language do navegador, armazenar o idioma escolhido em uma sessão ou cookie e redirecionar as requisições para a URL localizada. Também pode ocultar o idioma padrão nas URLs, traduzir segmentos de rota por meio de arquivos lang e oferece helpers como localizeUrl, getSupportedLocales e getCurrentLocaleDirection para criar seletores de idioma e links adaptados ao idioma.

As rotas são geradas a cada requisição, então php artisan route:cache não é compatível por padrão; o pacote oferece a trait LoadsTranslatedCachedRoutes e o comando route:trans:cache para fazer o cache. O README também recomenda o pacote sucessor niels-numbers/laravel-localizer para novos projetos que precisam de suporte nativo a route caching.

Recursos principais

  • 01Grupos de rotas com prefixo de idioma, que permitem definir as rotas uma única vez para todos os idiomas.
  • 02Detecção do idioma do navegador pelo cabeçalho Accept-Language.
  • 03Middleware de redirecionamento de idioma baseado em sessão e cookie.
  • 04Segmentos de rota traduzíveis, definidos em arquivos lang/**/routes.php.
  • 05Helpers para URLs localizadas, nomes de idiomas, nomes nativos, direção e escrita.
  • 06Opção para ocultar o idioma padrão nas URLs e configurar mapeamentos personalizados de URLs por idioma.

Casos de uso

  • Criar um site Laravel que disponibiliza conteúdo em vários idiomas, cada um com seu próprio prefixo de URL.
  • Adicionar um seletor de idioma que vincule cada página à URL equivalente nos outros idiomas.
  • Disponibilizar slugs traduzidos, como /en/article/... e /es/articulo/..., em sites multilíngues otimizados para SEO.

Início rápido

  1. 1

    Instale o pacote com o Composer

    composer require mcamara/laravel-localization
  2. 2

    Publique o arquivo de configuração

    php artisan vendor:publish --provider="Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider"
  3. 3

    Agrupe suas rotas localizadas no grupo de rotas LaravelLocalization::setLocale() em routes/web.php

Antes de usar

  • As rotas são geradas a cada solicitação, por isso php artisan route:cache não é compatível por padrão.
  • O suporte às versões do Laravel e do PHP depende das versões específicas do pacote listadas na tabela de compatibilidade.

Tópicos

Perguntas frequentes

O que é laravel-localization?
Pacote Laravel para localização de URLs em projetos i18n: rotas com prefixo de idioma, detecção do idioma do navegador, slugs de rota traduzíveis e helpers para seletores de idioma. Laravel Localization adiciona suporte a URLs multilíngues em aplicações Laravel. As rotas são definidas uma única vez em um grupo com prefixo de idioma, e o pacote define o idioma da aplicação com base no segmento da URL. Assim, /en/about e /es/acerca levam ao mesmo controller, enquanto App::getLocale() retorna o idioma ativo.
laravel-localization é gratuito? Qual é a licença?
laravel-localization é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
laravel-localization ainda é mantido?
Atualizado nos últimos 6 meses. O último commit de laravel-localization foi em 24 de ago. de 2026.
Para que posso usar laravel-localization?
Criar um site Laravel que disponibiliza conteúdo em vários idiomas, cada um com seu próprio prefixo de URL. Adicionar um seletor de idioma que vincule cada página à URL equivalente nos outros idiomas. Disponibilizar slugs traduzidos, como /en/article/... e /es/articulo/..., em sites multilíngues otimizados para SEO.
Como instalar laravel-localization?
Instale o pacote com o Composer: composer require mcamara/laravel-localization Publique o arquivo de configuração: php artisan vendor:publish --provider="Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider" Agrupe suas rotas localizadas no grupo de rotas LaravelLocalization::setLocale() em routes/web.php
Onde consigo laravel-localization?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/mcamara/laravel-localization

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados