naoray / laravel-localizer
管理多语言应用的工具
Requires
- codezero/laravel-localizer: ^1.4
- illuminate/routing: ^6.0|^7.0|^8.0
- illuminate/support: ^6.0|^7.0|^8.0
Requires (Dev)
- orchestra/testbench: ^4.0|^5.0|^6.0
This package is auto-updated.
Last update: 2021-07-01 00:11:18 UTC
README
从session
、cookie
、browser locale
或app setting
轻松检测用户的语言。使用localizer::setLocale
通过GET请求更改区域设置,并通过localizer
中间件控制用户可以看到的语言版本。
此包在幕后使用codezero/laravel-localizer,并扩展其功能以包括
- 添加路由
localizer::setLocale
以更改区域设置 - 添加Carbon存储以获取本地化时间戳
- 添加外观以在视图中使用
allowedLocales()
方法
安装
composer require naoray/laravel-localizer
使用php artisan vendor:publish --provider="CodeZero\Localizer\LocalizerServiceProvider" --tag="config"
发布配置
使用
添加支持的区域设置
编辑localizer
配置中的supported-locales
数组,以包含所有允许的区域设置。
'supported-locales' => ['en', 'de']
添加Carbon存储
将\Naoray\LaravelLocalizer\Stores\CarbonStore::class
添加到localizerstores
中,启用carbon存储并同步当前区域设置与carbon区域设置。
'stores' => [ CodeZero\Localizer\Stores\SessionStore::class, CodeZero\Localizer\Stores\CookieStore::class, CodeZero\Localizer\Stores\AppStore::class, Naoray\LaravelLocalizer\Stores\CarbonStore::class, ],
在中间件中使用Localizer
将localize
中间件添加到RouteServiceProvider
中的Web路由
//... protected function mapWebRoutes() { Route::middleware(['web', 'localize']) ->namespace($this->namespace) ->group(base_path('routes/web.php')); }
或者简单地将其添加到路由分组中的中间件。
在视图中添加更改区域设置的路由
将Localizer
外观添加到app
配置中。
//... 'Localizer' => Naoray\LaravelLocalizer\Facades\LocalizerFacade::class,
在视图中,您可以使用allowedLocales()
获取视图中的所有允许的区域设置。
@foreach (Localizer::allowedLocales() as $locale) <a href="{{ route('localizer::setLocale', ['locale' => $locale]) }}">{{ strtoupper($locale)}}</a> @endforeach
扩展功能
您可以通过实现相应的接口添加新的stores
和detectors
。更多信息请访问codezero/laravel-localizer
测试
运行测试
vendor/bin/phpunit
变更日志
请参阅CHANGELOG以获取最近更改的更多信息。
贡献
请参阅CONTRIBUTING以获取详细信息。
安全
如果您发现任何安全相关的问题,请通过电子邮件 DummyAuthorEmail 而不是使用问题跟踪器。
许可证
麻省理工学院许可协议(MIT)。请参阅许可文件获取更多信息。