本地化
環境: 使用 php artisan make:auth
使用者認證腳手架
登入表單是英文版本的,開啟模板檔案,此模板檔案是我們剛剛使用 make:auth 命令生成的:
resources/views/auth/login.blade.php
可以看到很多 __()
函式的呼叫:
<div class="card-header">{{ __('Login') }}</div>
<label for="password" class="col-md-4 col-form-label text-md-right">{{ __('Password') }}</label>
{{ __('Remember Me') }}
這是 Laravel 提供的本地化特性,使用__()
函式來輔助實現。按照約定,本地化檔案儲存在 resources/lang
資料夾中,為 JSON 格式。在 config/app.php
檔案中,我們設定了:
'locale' => 'zh-CN',
對應翻譯檔案就是 resources/lang/zh-CN.json
,需新建此檔案:
resources/lang/zh-CN.json
{
"Login": "登入",
"Password": "密碼",
"Remember Me": "記住我"
}
再次重新整理登入頁面,可以看到翻譯的內容:
中文語言包
會有很多人會遇到翻譯 Laravel 自帶模板的問題,所以我們無需自己一個個去翻譯,這種通用的問題找找擴充套件包來處理即可。
我們將使用 Laravel Lang 專案來實現,此專案支援了 52 個國家的語言,使用以下命令安裝:
$ composer require "overtrue/laravel-lang:~3.0"
安裝完成後重新整理頁面,完美翻譯:
Laravel Lang 同自定義語言包一樣,都是根據 config/app.php
裡 locale
的選項來選擇語言的。
值得一提的是,如果你想修改擴充套件包提供的語言檔案,可以使用以下命令釋出語言檔案到專案裡:
$ php artisan lang:publish zh-CN