Adds multi-lingual to Laravel models
You can install the package via composer:
composer require javaabu/translatable
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";
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.
You can run the tests with
./vendor/bin/phpunit
Please see CHANGELOG for more information what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email info@javaabu.com instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.