Repolode
mcamara

mcamara/laravel-localization

Laravel 多语言包,提供带语言前缀的路由、浏览器语言识别、可翻译路由及语言切换辅助方法。

Star
3,558
Fork
505
未关闭 Issue
11
最近提交
3个月前

这是什么?

Laravel Localization 为 Laravel 应用增加多语言 URL 处理能力。路由只需在语言前缀分组中定义一次,包会根据 URL 中的语言段设置应用语言,因此 /en/about 与 /es/acerca 可指向同一个控制器,App::getLocale() 也随之变化。

包支持根据浏览器的 Accept-Language 请求头识别访问者语言,将选定的语言保存到 session 或 cookie 中,并把请求重定向到带语言的 URL。此外还可以隐藏默认语言前缀、通过语言文件翻译路由片段,并提供 localizeUrl、getSupportedLocales、getCurrentLocaleDirection 等辅助方法,便于构建语言切换器和本地化链接。

由于路由是按请求动态生成的,默认不兼容 php artisan route:cache,需要通过 LoadsTranslatedCachedRoutes trait 与 route:trans:cache 命令来缓存路由。对于需要原生路由缓存的新项目,项目文档推荐改用 niels-numbers/laravel-localizer。

核心功能

  • 01带语言前缀的路由分组,所有语言只需定义一次路由。
  • 02通过 Accept-Language 请求头识别浏览器语言。
  • 03基于 session 和 cookie 的语言重定向中间件。
  • 04可在 lang/**/routes.php 中翻译路由片段。
  • 05提供本地化 URL、语言名称、本地名称、文字方向和书写系统等辅助方法。
  • 06支持隐藏 URL 中的默认语言,并可自定义语言 URL 映射。

适用场景

  • 为 Laravel 网站搭建多语言版本,并使用不同的 URL 语言前缀。
  • 实现语言切换器,让每个页面链接到其他语言的对应地址。
  • 为多语言站点提供翻译后的路由片段,如 /en/article/... 与 /es/articulo/...,以利于 SEO。

快速上手

  1. 1

    使用 Composer 安装该包

    composer require mcamara/laravel-localization
  2. 2

    发布配置文件

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

    在 routes/web.php 中将本地化路由放入 LaravelLocalization::setLocale() 路由组

使用前须知

  • 路由是按请求动态生成的,因此开箱即用不支持 php artisan route:cache。
  • Laravel 和 PHP 版本支持取决于兼容性表中对应的包版本。

标签

常见问题

laravel-localization 是什么?
Laravel 多语言包,提供带语言前缀的路由、浏览器语言识别、可翻译路由及语言切换辅助方法。 Laravel Localization 为 Laravel 应用增加多语言 URL 处理能力。路由只需在语言前缀分组中定义一次,包会根据 URL 中的语言段设置应用语言,因此 /en/about 与 /es/acerca 可指向同一个控制器,App::getLocale() 也随之变化。
laravel-localization 可以免费使用吗?用的什么许可证?
laravel-localization 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
laravel-localization 还在维护吗?
半年内有更新。laravel-localization 最近一次提交是在 2026年8月24日。
laravel-localization 适合用来做什么?
为 Laravel 网站搭建多语言版本,并使用不同的 URL 语言前缀。 实现语言切换器,让每个页面链接到其他语言的对应地址。 为多语言站点提供翻译后的路由片段,如 /en/article/... 与 /es/articulo/...,以利于 SEO。
laravel-localization 怎么安装和运行?
使用 Composer 安装该包: composer require mcamara/laravel-localization 发布配置文件: php artisan vendor:publish --provider="Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider" 在 routes/web.php 中将本地化路由放入 LaravelLocalization::setLocale() 路由组
在哪里获取 laravel-localization?
源代码和安装说明在 GitHub 上:https://github.com/mcamara/laravel-localization

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目