要做多語系網站如果還要自己處理資料庫內容語系翻譯真的有點小小麻煩,當然做得到,但是有套件會讓一切更簡單。
一、安裝
使用 composer 安裝composer require spatie/laravel-translatable設定要翻譯的 Model
use Illuminate\Database\Eloquent\Model; use Spatie\Translatable\HasTranslations; class Post extends Model { use HasTranslations; public $translatable = [ 'name' ]; }
二、使用
1. Set
$post ->setTranslation('name', 'en', 'English Name') ->setTranslation('name', 'zh_TW', '中文名稱') ->save();
2. Get
// 回傳目前語系設定的 name $post->name; // 取得特定語系的 name $post->getTranslation('name', 'en');
3. Query
Post::whereLocale('name', 'zh_TW')->get(); Post::whereLocales('name', ['zh_TW', 'en'])->get();
參考文件
留言
張貼留言