Laravel 新增多語言提示資訊
阿新 • • 發佈:2019-01-09
Laravel
預設的locale
用的是en
,在resouces/lang/en
資料夾下,我們可以看到以下幾個檔案:
resources
- lang
- en
-- auth.php
-- pagination.php
-- passwords.php
-- validation.php
其中validation.php
是驗證使用者提交表單資訊的提示文字,比如
'required' => 'The :attribute field is required.',
該行將會在使用者未填寫某一欄(假設input
name
為test
)時提示The test field is required.'。
那麼我們要新增多語言提示其實也很簡單,並不是直接改動
en資料夾下的對應檔案,而是在
lang資料夾下新建立一個新
locale資料夾,比如中文我採用了
zh`:resources
- lang
- en
-- auth.php
-- pagination.php
-- passwords.php
-- validation.php
- zh
-- auth.php
-- pagination.php
-- passwords.php
-- validation.php
注意我們需要把en
資料夾下所有檔案複製進zh
,然後我們就可以修改zh
資料夾下的檔案了。
需要注意的是,在validation.php
中,有一個叫attributes
的陣列,我們需要在裡面把我們input
的name
都一一新增進去,否則提示資訊中的:attribute
會使用預設的input name
,所以如果我們如果將之前的required
資訊改為:
'required' => ':attribute不能為空',
那麼使用者會看到的錯誤資訊為:
test不能為空
而如果我們在attributes
陣列中新增以下元素:
'attributes' => [
'test' => '測試',
]
那麼我們的錯誤資訊則會顯示:
測試不能為空
所以,為了給使用者更好的使用體驗,我們需要儘量多地將提示資訊完善。
最後一步,新增完了locale
檔案之後,我們需要在config/app.php
中修改我們的locale
:
'locale' => 'zh',
'fallback_locale' => 'en',
這樣預設的locale
就會使用我們新建的zh
了。
轉載自 http://blog.csdn.net/lgyaxx/article/details/76136044