Skip to content

Latest commit

 

History

History
123 lines (82 loc) · 3.28 KB

README.md

File metadata and controls

123 lines (82 loc) · 3.28 KB

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.