javaabu/translatable

Adds multi-lingual to Laravel models
2,202
Install
composer require javaabu/translatable
Latest Version:v2.12.0
PHP:^8.2
License:MIT
Last Updated:Mar 23, 2026
Links: GitHub  ·  Packagist
Maintainer: dash8x

Translatable

Latest Version on Packagist Test Status Total Downloads Code Coverage

Adds multi-lingual to Laravel models

Installation

You can install the package via composer:

composer require javaabu/translatable

Usage

To get started with this package, you can simply add $table->dbTranslatable(); or $table->jsonTranslatable(); to your migration up function.

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Javaabu\Translatable\DbTranslatable\DbTranslatableSchema;

return new class extends Migration {
    public function up(): void
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->id();

            // ...

            $table->dbTranslatable();
            // OR
            $table->jsonTranslatable();
        });
    }

    public function down(): void
    {
        Schema::dropIfExists('posts');
    }
};

And then all you need to do is add the Translatable implementation using the IsDbTranslatable or IsJsonTranslatable trait.

...

class Post extends Model implements Translatable
{
    use IsDbTranslatable;
    // OR
    use IsJsonTranslatable;

...

Now, your models will automatically be translated according to the current app()->getLocale().

app()->setLocale('en');
$post->title // This is an English title

app()->setLocale('dv');
$post->title // Mee dhivehi title eh

$post->title_en // This is an English title
$post->title_dv // Mee dhivehi title eh

To add different translations, all you need to do is

// to add title for dv language
$post->title_dv = "Mee Dhivehi title eh";

Documentation

You'll find the documentation on https://docs.javaabu.com/docs/translatable.

Find yourself stuck using the package? Found a bug? Do you have general questions or suggestions for improving this package? Feel free to create an issue on GitHub, we'll try to address it as soon as possible.

If you've found a bug regarding security please mail info@javaabu.com instead of using the issue tracker.

Testing

You can run the tests with

./vendor/bin/phpunit

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email info@javaabu.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

Related Packages

ink/ink-sluggable

Easy creation of slugs for Eloquent and EloquentTranslatable models in Laravel 4...

3,579 3
spatie/laravel-sluggable

Generate slugs when saving Eloquent models

14,245,061 1,555
typicms/laravel-translatable-bootforms

Empowers adamwathan/bootforms with spatie/laravel-translatable.

32,680 3
webfactorybulgaria/translatablebootforms

Form model binding for translated fields, use BootForms and Translatable.

58 0