ilyasapunkov / laravel-translatable
A Laravel package for translatable models using JSON fields
0.0.6
2025-02-24 12:38 UTC
Requires
- php: ^8.2
- laravel/framework: ^11.0
Requires (Dev)
- krok/laravel-pint: ^1.0
README
A Laravel package for managing translatable models using JSON fields.
Installation
-
Install the package via Composer:
composer require ilyasapunkov/laravel-translatable
-
Publish the migration:
php artisan vendor:publish --tag=translatable-migrations
-
Run the migration:
php artisan migrate
Usage
-
Use the Translatable trait in your model:
namespace App\Models; use Illuminate\Database\Eloquent\Model; use IlyaSapunkov\Translatable\Traits\Translatable; class Post extends Model { use Translatable; protected $translatableFields = ['title', 'description']; }
-
Set translations:
$post = Post::create(); $post->syncTranslation([ 'ru' => [ 'title' => 'Заголовок на русском', 'description' => 'Описание на русском', ] ]);
-
Get translations:
echo $post->title; // Заголовок на русском (если текущая локаль 'ru') echo $post->description; // Описание на русском
-
Filter by translations:
$posts = Post::hasTranslation('title')->get(); $posts = Post::hasTranslation('title', 'en')->get();