能對文章加解密過後,網站的服務基本上都已經完成的差不多了。
一些常見的部分,比方說排程工作([Day 26] 定期的事件處理,聊 Laravel Schedule),在之前的文章已經說明過,並且 Laravel 9 對這些部分的作法改變並不太大,這邊就不重複介紹了。
多語系的處理部分,之前的文章 [Day 27] 多國語系的處理!聊 Laravel Localization 已經介紹過的方式,也就是利用多個 php 檔案分隔不同語系時該顯示的文字。
比方說我們可以宣告 lang/zh_tw/auth.php
/lang
/en
auth.php
/zh_tw
auth.php
加上以下內容
<?php
return [
'failed' => '登入資料不符合',
'throttle' => '嘗試登入太多次,請 :seconds 秒後再嘗試',
];
然後利用 trans()
函數協助我們使用
Route::get('/test', function(){
return trans('auth.failed');
});
這樣的方式雖然挺方便,不過字數一多,要記得的內容也變得很多。
除了原本的方式,現在 Laravel 還支援使用 json
的方式來處理多語系的支援
我們將檔案宣告如下
/lang
en.json
zh_tw.json
在 zh_tw.json
檔案內,我們宣告
{
"These credentials do not match our records.": "登入資料不符合",
"Too many login attempts. Please try again in :seconds seconds.": "嘗試登入太多次,請 :seconds 秒後再嘗試",
}
這樣一來,使用的方式就變成了
Route::get('/test', function(){
return trans('These credentials do not match our records.');
});
是不是好記多了呢?
Laravel 的文件說
Or, translation strings may be defined within JSON files that are placed within the
lang
directory. When taking this approach, each language supported by your application would have a corresponding JSON file within this directory. This approach is recommended for applications that have a large number of translatable strings:
所以,當你的網站需要轉換的文字越來越多時,Laravel 是建議使用 json
格式來處理的。
今天有關多語系使用 json
格式來協助我們處理字串的做法,就介紹到這邊。我們明天見!