bunker/laravel-localization

此软件包实现了Laravel v10.40版本的基于cookie的本地化。

v1.0.0 2024-02-25 01:59 UTC

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与我们联系