Repolode
mcamara

mcamara/laravel-localization

Paquete de Laravel para localizar URLs en aplicaciones i18n: rutas con prefijo de idioma, detección del idioma del navegador, slugs traducibles y helpers para selectores de idioma.

Estrellas
3,558
Forks
505
Issues abiertos
11
Último commit
hace 3 meses

¿Qué es?

Laravel Localization añade compatibilidad con URLs multilingües a las aplicaciones Laravel. Las rutas se definen una sola vez dentro de un grupo con prefijo de idioma, y el paquete establece el locale de la aplicación a partir del segmento de la URL. Así, /en/about y /es/acerca resuelven al mismo controlador, mientras que App::getLocale() devuelve el idioma activo.

El paquete puede detectar el idioma del visitante a partir de la cabecera Accept-Language del navegador, guardar el locale elegido en una sesión o cookie y redirigir las solicitudes a la URL localizada. También puede ocultar el locale predeterminado en las URLs, traducir segmentos de rutas mediante archivos lang y ofrece helpers como localizeUrl, getSupportedLocales y getCurrentLocaleDirection para crear selectores de idioma y enlaces adaptados al locale.

Las rutas se generan en cada solicitud, por lo que php artisan route:cache no es compatible de forma predeterminada; se proporcionan el trait LoadsTranslatedCachedRoutes y el comando route:trans:cache para habilitar la caché. El README también recomienda un paquete sucesor, niels-numbers/laravel-localizer, para proyectos nuevos que necesiten caché de rutas nativa.

Funciones clave

  • 01Grupos de rutas con prefijo de locale que permiten definir las rutas una sola vez para todos los idiomas.
  • 02Detección del idioma del navegador mediante la cabecera Accept-Language.
  • 03Middleware de redirección al locale basado en sesiones y cookies.
  • 04Segmentos de rutas traducibles definidos en archivos lang/**/routes.php.
  • 05Helpers para URLs localizadas, nombres de locale, nombres nativos, dirección y escritura.
  • 06Opción para ocultar el locale predeterminado en las URLs y asignar URLs personalizadas a los locales.

Casos de uso

  • Crear un sitio web en Laravel que ofrezca contenido en varios idiomas bajo prefijos de URL distintos.
  • Añadir un selector de idioma que enlace cada página con su URL equivalente en otros locales.
  • Usar slugs traducidos, como /en/article/... y /es/articulo/..., en sitios multilingües optimizados para SEO.

Inicio rápido

  1. 1

    Instala el paquete con Composer

    composer require mcamara/laravel-localization
  2. 2

    Publica el archivo de configuración

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

    Agrupa tus rutas localizadas en el grupo de rutas LaravelLocalization::setLocale() en routes/web.php

Antes de usarlo

  • Las rutas se generan en cada solicitud, por lo que php artisan route:cache no es compatible de forma predeterminada.
  • La compatibilidad con las versiones de Laravel y PHP depende de las versiones específicas del paquete que aparecen en la tabla de compatibilidad.

Temas

Preguntas frecuentes

¿Qué es laravel-localization?
Paquete de Laravel para localizar URLs en aplicaciones i18n: rutas con prefijo de idioma, detección del idioma del navegador, slugs traducibles y helpers para selectores de idioma. Laravel Localization añade compatibilidad con URLs multilingües a las aplicaciones Laravel. Las rutas se definen una sola vez dentro de un grupo con prefijo de idioma, y el paquete establece el locale de la aplicación a partir del segmento de la URL. Así, /en/about y /es/acerca resuelven al mismo controlador, mientras que App::getLocale() devuelve el idioma activo.
¿laravel-localization es gratuito? ¿Qué licencia tiene?
laravel-localization es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿laravel-localization sigue mantenido?
Actualizado en los últimos 6 meses. El último commit de laravel-localization fue el 24 ago 2026.
¿Para qué puedo usar laravel-localization?
Crear un sitio web en Laravel que ofrezca contenido en varios idiomas bajo prefijos de URL distintos. Añadir un selector de idioma que enlace cada página con su URL equivalente en otros locales. Usar slugs traducidos, como /en/article/... y /es/articulo/..., en sitios multilingües optimizados para SEO.
¿Cómo se instala laravel-localization?
Instala el paquete con Composer: composer require mcamara/laravel-localization Publica el archivo de configuración: php artisan vendor:publish --provider="Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider" Agrupa tus rutas localizadas en el grupo de rutas LaravelLocalization::setLocale() en routes/web.php
¿Dónde consigo laravel-localization?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/mcamara/laravel-localization

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados