簡體   English   中英

Laravel 本地化拋出 htmlspecialchars() 錯誤

[英]Laravel localization throws htmlspecialchars() error

當我嘗試使用本地化並檢索翻譯字符串時,Laravel 出於某種原因拋出: 在此處輸入圖像描述 .

從 controller 到視圖(產品索引頁),我傳遞了$products變量。 在該頁面上,我使用翻譯字符串{{ __('Products') }}並收到htmlspecialchars()錯誤。 據我了解,出於某種原因,翻譯字符串認為我將$products變量傳遞給{{ __('Products') }}翻譯字符串,因為如果我將翻譯字符串更改為(例如) {{ __('Products page') }} ,我不再收到此錯誤。 有人可以解釋為什么會發生此錯誤嗎?

Controller

在此處輸入圖像描述

發生錯誤時的代碼

在此處輸入圖像描述

錯誤不再發生時的代碼

在此處輸入圖像描述

更新

修復在 lang 文件夾中添加 en.json 文件時的問題。

事實上,我不會那樣做。 事實上,我創建了一個中間件,並創建了一條公平的路線。 讓我們以法語和英語為例。 讓我們創建一個中間件位置

php artisan make:middleware Localisation

然后填寫中間件

<?php

namespace App\Http\Middleware;

use Closure;

use Illuminate\Http\Request;


class Localization
{
    public function handle(Request $request, Closure $next)
    {
        if(\Session::has('locale'))
        {
            \App::setlocale(\Session::get('locale'));
        }
 
        return $next($request);
    }
}
protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\Localization::class,
    ],

您將這個創建的中間件添加到列表中,然后將 go 添加到 web.php 路由文件並添加

 Route::get('/locale/{locale}', function ($locale){
\Session::put('locale', $locale);
return redirect()->back();
})->name('traduction');

et ensuite vous pouvez recupérer la session de cette facon

<a href="{{route('traduction',['locale'=>'en'])}}" class="menu-link d-flex px-5 active"> 
<a href="{{route('traduction',['locale'=>'fr'])}}" class="menu-link d-flex px-5 active">

如果您想根據 session 顯示圖像

<a href="#" class="menu-link px-5">
                            <span class="menu-title position-relative">Langue {{ Session::get('locale') }}
                             @if (Session::get('locale') == "fr")
                            <span class="fs-8 rounded bg-light px-3 py-2 position-absolute translate-middle-y top-50 end-0">Francais 
                            <img class="w-15px h-15px rounded-1 ms-2" src="assets/media/flags/france.svg" alt="" /></span></span>
                            @else
                            <span class="fs-8 rounded bg-light px-3 py-2 position-absolute translate-middle-y top-50 end-0">English 
                            <img class="w-15px h-15px rounded-1 ms-2" src="assets/media/flags/united-states.svg" alt="" /></span></span>
                            @endif
                        </a>

抱歉,您必須同時使用這兩個答案,因為它們是互補的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM