bunker / laravel-localization
此软件包实现了Laravel v10.40版本的基于cookie的本地化。
v1.0.0
2024-02-25 01:59 UTC
Requires (Dev)
- laravel/framework: 10.40.*
- orchestra/testbench: ^8.21
- phpunit/phpunit: 10.1.*
This package is auto-updated.
Last update: 2024-09-25 05:43:31 UTC
README
此软件包实现了Laravel v10.40版本的基于cookie的本地化。
安装
使用composer安装此软件包
cd to-your-laravel-project-home-directory
composer require bunker/laravel-localization
接下来,在Kernel.php中添加以下内容
protected $middlewareGroups = [ 'web' => [ // \Bunker\LaravelLocalization\Middleware\SetLocale::class ],
文档
此中间件假设您的项目配置目录中有一个panel.php文件。在我们的例子中,我们通常在一个空白项目中使用此config/panel.php。请注意,此软件包只需要'primary_language'和'available_languages'。
<?php return [ 'avatar' => "/assets/images/avatar/avatar.jpg", 'avatar_path' => "/assets/images/avatar/", 'date_format' => 'Y-m-d', 'time_format' => 'H:i:s', 'primary_language' => 'en', 'available_languages' => ['en' => 'English', 'bd' => 'Bengali', 'sp' => 'Spanish'], 'registration_default_role' => 'User' ];
在您的blade文件中添加以下内容以更改语言
<ul class="navbar-nav"> @if(count(config('panel.available_languages', [])) > 1) <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="languageDropdown" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> {{ strtoupper(app()->getLocale()) }} </a> <div class="dropdown-menu" aria-labelledby="languageDropdown"> @foreach(config('panel.available_languages') as $langLocale => $langName) <a class="dropdown-item {{ app()->getLocale() == $langLocale ? 'd-none': '' }}" href="{{ url()->current() }}?lang={{ $langLocale }}">{{ $langName }}</a> @endforeach </div> </li> @endif </ul>
现在,所有带有'web'中间件的路径都将实现本地化。
API参考
更改语言
GET example.com?lang=en
反馈
如果您有任何反馈,请通过vwaaala@gmail.com与我们联系