多語言是我們很常用到的功能,以下介紹我是如何在 Laravel 實作多語言的機制,建議在專案開始的時候就先把語言檔抽離好,不然後面要再改就很麻煩了。

1. 先調整 config/app.php 裡面的語言檔設定:

Locale Code 可查這邊:https://www.science.co.il/language/Locale-codes.php

 

2. 註冊一個 Middleware,先編輯 Http/Kernel.php,加上新的 Middleware:

    

在 Http/Middleware 資料夾下新增 Language.php ,邏輯就是先檢查 Session 中有沒有 Locale 有的話就用,沒有的話就用 HTTP_ACCEPT_LANGUAGE 去抓使用者的語言,Session 的 Locale 變數讓我們後面可以讓使用者切換語言:

 

3. 在 resources\lang 資料夾新增對應的語言就可以了

更多細節當然就是參考官網囉:https://laravel.com/docs/5.7/localization