You can install the package via composer:
composer require khamdullaevuz/laravel-translation
Add the service provider to your config/app.php
:
// config/app.php
'providers' => [
...
Khamdullaevuz\LaravelTranslation\TranslationServiceProvider::class,
];
You can run the migrations with:
php artisan migrate
Model
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Khamdullaevuz\LaravelTranslation\Traits\Translatable;
class Product extends Model
{
use HasFactory, Translatable;
protected $fillable = [
'name',
'amount',
];
protected $translatable = [
'name',
];
}
Use with model
$product = Product::create([
'name' => 'Product 1',
'amount' => 100,
]);
$product->translations()->create([
'table_name' => 'products',
'column_name' => 'name',
'value' => 'Mahsulot 1',
'locale' => 'uz',
'foreign_key' => $product->id,
]);
Use with facade
use Khamdullaevuz\LaravelTranslation\Facades\Translation;
$product = Product::create([
'name' => 'Product 1',
'amount' => 100,
]);
Translation::make('products', 'name', 'Mahsulot 1', 'uz', $product->id);
$product = Product::latest()->first();
echo $product->name;
app()->setLocale('uz');
echo $product->name;