创建新文件Locale.php
目录D:\bagisto-2.3\packages\Webkul\Admin\src\Http\Middleware\Locale.php
<?php
namespace Webkul\Admin\Http\Middleware;
use Closure;
class Locale
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @return mixed
*/
public function handle($request, Closure $next)
{
// 使用配置中的admin_locale作为后台语言
$localeCode = config('app.admin_locale', 'en');
// 设置应用的locale
app()->setLocale($localeCode);
return $next($request);
}
}
更新D:\bagisto-2.3\packages\Webkul\Admin\src\Routes\web.php
<?php
use Illuminate\Support\Facades\Route;
use Webkul\Core\Http\Middleware\NoCacheMiddleware;
use Webkul\Admin\Http\Middleware\Locale;//增加的内容
/**
* Auth routes.
*/
require 'auth-routes.php';
/*原来的内容 注释掉
Route::group(['middleware' => ['admin', NoCacheMiddleware::class], 'prefix' => config('app.admin_url')], function () {
*/
//下面是新增加的内容
Route::group(['middleware' => ['admin', NoCacheMiddleware::class, Locale::class], 'prefix' => config('app.admin_url')], function () {//更新的内容
/**
* Sales routes.
*/
require 'sales-routes.php';
/**
* Catalog routes.
*/
require 'catalog-routes.php';
/**
* Customers routes.
*/
require 'customers-routes.php';
/**
* Marketing routes.
*/
require 'marketing-routes.php';
/**
* CMS routes.
*/
require 'cms-routes.php';
/**
* Reporting routes.
*/
require 'reporting-routes.php';
/**
* Settings routes.
*/
require 'settings-routes.php';
/**
* Configuration routes.
*/
require 'configuration-routes.php';
/**
* Notification routes.
*/
require 'notification-routes.php';
/**
* Remaining routes.
*/
require 'rest-routes.php';
});
实现步骤如下:
1. 创建了 Webkul\Admin\Http\Middleware\Locale 中间件,该中间件会读取配置文件中的 admin_locale 值并设置应用的locale
2. 修改了 packages\Webkul\Admin\src\Routes\web.php 路由文件,将新创建的Locale中间件添加到admin路由组中
3. 重启了Laravel开发服务器,使更改生效
现在,后台界面的语言将根据 .env 文件中的 APP_ADMIN_LOCALE=zh_CN 配置正确显示为中文。如果需要更改后台语言,只需修改 .env 文件中的对应配置值即可。
876

被折叠的 条评论
为什么被折叠?



