Repolode
mcamara

mcamara/laravel-localization

Пакет Laravel для локализации URL: маршруты с префиксом локали, определение языка браузера, переводимые сегменты маршрутов и вспомогательные функции для переключателя языков.

Звёзды
3,558
Форки
505
Открытые issues
11
Последний коммит
3 месяца назад

Что это?

Laravel Localization добавляет приложениям Laravel поддержку многоязычных URL. Маршруты достаточно один раз определить в группе с префиксом локали: пакет устанавливает локаль приложения по сегменту URL, поэтому /en/about и /es/acerca обрабатываются одним и тем же контроллером, а App::getLocale() возвращает активный язык.

Пакет умеет определять язык посетителя по заголовку браузера Accept-Language, сохранять выбранную локаль в сессии или cookie и перенаправлять запросы на локализованный URL. Также можно скрыть локаль по умолчанию в URL, переводить сегменты маршрутов с помощью файлов lang и использовать такие помощники, как localizeUrl, getSupportedLocales и getCurrentLocaleDirection, чтобы создавать переключатели языков и ссылки с учётом локали.

Маршруты генерируются при каждом запросе, поэтому php artisan route:cache по умолчанию не поддерживается. Для кеширования предусмотрены трейт LoadsTranslatedCachedRoutes и команда route:trans:cache. В README для новых проектов, которым нужна встроенная поддержка кеширования маршрутов, также рекомендуется пакет-преемник niels-numbers/laravel-localizer.

Ключевые возможности

  • 01Группы маршрутов с префиксом локали: маршруты для всех языков достаточно определить один раз.
  • 02Определение языка браузера по заголовку Accept-Language.
  • 03Middleware для перенаправления с учётом локали и хранения её в сессии или cookie.
  • 04Переводимые сегменты маршрутов, заданные в файлах lang/**/routes.php.
  • 05Помощники для локализованных URL, названий локалей, их самоназваний, направления письма и письменности.
  • 06Возможность скрыть локаль по умолчанию в URL и настроить сопоставление локалей с URL.

Сценарии использования

  • Создание сайта на Laravel с контентом на нескольких языках и отдельными префиксами в URL для каждого языка.
  • Добавление переключателя языков, который ведёт с каждой страницы на её эквивалент в других локалях.
  • Использование переводимых слагов, например /en/article/... и /es/articulo/..., на многоязычных сайтах с URL, оптимизированными для SEO.

Быстрый старт

  1. 1

    Установите пакет с помощью Composer

    composer require mcamara/laravel-localization
  2. 2

    Опубликуйте файл конфигурации

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

    Оберните локализованные маршруты в группу маршрутов LaravelLocalization::setLocale() в routes/web.php

Что важно знать

  • Маршруты создаются для каждого запроса, поэтому php artisan route:cache не поддерживается из коробки.
  • Поддержка версий Laravel и PHP зависит от конкретных версий пакета, указанных в таблице совместимости.

Темы

Частые вопросы

Что такое laravel-localization?
Пакет Laravel для локализации URL: маршруты с префиксом локали, определение языка браузера, переводимые сегменты маршрутов и вспомогательные функции для переключателя языков. Laravel Localization добавляет приложениям Laravel поддержку многоязычных URL. Маршруты достаточно один раз определить в группе с префиксом локали: пакет устанавливает локаль приложения по сегменту URL, поэтому /en/about и /es/acerca обрабатываются одним и тем же контроллером, а App::getLocale() возвращает активный язык.
laravel-localization можно использовать бесплатно? Какая у него лицензия?
laravel-localization распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
laravel-localization всё ещё поддерживается?
Обновлялся за последние 6 месяцев. Последний коммит в laravel-localization — 24 авг. 2026 г..
Для чего можно использовать laravel-localization?
Создание сайта на Laravel с контентом на нескольких языках и отдельными префиксами в URL для каждого языка. Добавление переключателя языков, который ведёт с каждой страницы на её эквивалент в других локалях. Использование переводимых слагов, например /en/article/... и /es/articulo/..., на многоязычных сайтах с URL, оптимизированными для SEO.
Как установить laravel-localization?
Установите пакет с помощью Composer: composer require mcamara/laravel-localization Опубликуйте файл конфигурации: php artisan vendor:publish --provider="Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider" Оберните локализованные маршруты в группу маршрутов LaravelLocalization::setLocale() в routes/web.php
Где скачать laravel-localization?
Исходный код и инструкции по установке — на GitHub: https://github.com/mcamara/laravel-localization

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Обёртка для Laravel над PhpSpreadsheet: экспорт коллекций, запросов и Blade-представлений в Excel или CSV и импорт таблиц в модели Eloquent.

12,7 тыс.+2 за неделю2 тыс.PHPMITАктивно поддерживаетсяОбновлён 4 дня назад