如果要支持多语言i18n,可以使用laravel-lang这个包,操作如下:
php artisan lang:publish
composer require laravel-lang/common
php artisan lang:update
php artisan lang:add zh_CN
翻译文件在lang文件夹下

如果要支持多语言切换,可以通过中间件实现:
php artisan make:middleware LanguageMiddleware
填写以下代码:
public function handle(Request $request, Closure $next): Response
{
if(session()->has('locale'))
app()->setLocale(session('locale'));
else
app()->setLocale(config('app.locale'));
return $next($request);
}
HomeController中
public function setLocale($locale)
{
session(['locale' => $locale]);
return redirect()->back();
}
路由:
Route::get('/setLocale/{locale}', [HomeController::class, 'setLocale'])->name('home.setLocale');
视图:
<ul class="menu">
<li><a href="{{ route('home.setLocale', ['locale'=>'zh_CN']) }}"><h3>简体中文</h3></a></li>
<li><a href="{{ route('home.setLocale', ['locale'=>'en']) }}"><h3>English</h3></a></li>
</ul>
文本的翻译用法:
{{ __('iretailer.sign_out') }}
这句话的意思是在iretailer.php文件中找sign_out这个配置。当然,不要忘了在不同的语言文件夹中iretailer.php这个文件。