vrnvgasu/localization

用于更改本地化的简单按钮。

0.1.0 2020-07-16 12:24 UTC

README

为 Laravel 项目更改语言的语言按钮。

默认支持俄语和英语。但你可以扩展本地化。

安装

安装库

composer require vrnvgasu/localization

除了加密本地化cookie

如果你使用这个中间件,将中间件cookie名称 \Vrnvgasu\Localization\Services\Locale\Locale::USER_LOCALE 添加到 $except 数组中,用于 \App\Http\Middleware\EncryptCookies。

namespace App\Http\Middleware;

use Illuminate\Cookie\Middleware\EncryptCookies as Middleware;
use Vrnvgasu\Localization\Services\Locale\Locale;

class EncryptCookies extends Middleware
{
    protected $except = [
        Locale::USER_LOCALE,
    ];
}

运行迁移

默认情况下,将向用户表添加一个区域设置列。如果该列已存在,则不需要迁移。如果用户表名称不同,则需要更改配置(详细描述在配置配置中)。

php artisan migrate

设置中间件

为支持本地化的路由设置中间件。

use Illuminate\Support\Facades\Route;
use Vrnvgasu\Localization\Middleware\Localization;

Route::group(array(
    'middleware' => Localization::ALIAS,
), function() {
    //
});

配置管理

将配置发布到项目中

php artisan vendor:publish --tag=vrnvgasu_localization__config

config/vrnvgasu_localization.php 发布。

然后你可以在 locales 数组中添加新的区域设置

    'locales' => [
        'en' => [
            'lang' => 'lang',
            'name' => 'en',
        ],
        'ru' => [
            'lang' => 'яз',
            'name' => 'рус',
        ],
        'new_locale' => [
            'lang' => 'drop_down_button_name',
            'name' => 'language_name',
        ],
    ],

更改默认区域设置

'default' => 'new_locale',

更改用户表名称(对于迁移是必要的)

'users_table' => 'users_table_name',

包括语言按钮

在你的 blade 中使用 @include('vrnvgasu::localization.index')

<nav class="navbar navbar-expand-sm bg-dark navbar-dark">
    <ul class="navbar-nav mr-auto">
        <li class="nav-item dropdown">
            @include('vrnvgasu::localization.index')
        </li>
    </ul>
</nav>

视图管理

将视图发布到项目中

php artisan vendor:publish --tag=vrnvgasu_localization__view

resources/views/vendor/vrnvgasu/localization/index.blade.php 发布。

你可以更改此视图。使用 @include('vrnvgasu::localization.index') 将使用你的模板。