1. 程式人生 > >Laravel 新增多語言提示資訊

Laravel 新增多語言提示資訊

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

nametest)時提示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的陣列,我們需要在裡面把我們inputname都一一新增進去,否則提示資訊中的: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