Kendiliğinden Çeviri (İçerik Tabanlı)
Kendiliğinden Çeviri (İçerik Tabanlı)
Google Translate API PHP Paketini Kurun
composer require stichoza/google-translate-php
Dil Değiştirme (Görünüm)
Dil Değiştirme İçin Route
Route::get(, function () {
session([=> ]);
return back();
});
Migration — Çeviriler için sütunlar ekleyin:
Schema::table(, function (Blueprint ) {
$table->string();
$table->text();
$table->json()->after()->nullable();
$table->json()->after()->nullable();
});
Model
protected $fillable = [, , , , ];
protected $casts = [
=> ,
=> ,
];
public function getTranslatedTitle()
{
$locale = session(, );
return $this->title_translations[] ?? $this->title;
}
public function getTranslatedDescription()
{
$locale = session(, );
return $this->description_translations[] ?? $this->description;
}
Otomatik Çeviri İçin Trait (app/Traits/Translatable.php)
namespace App\Traits;
use Stichoza\GoogleTranslate\GoogleTranslate;
trait Translatable {
public function autoTranslate() {
= new GoogleTranslate();
return [
=> ->setTarget()->translate(),
=> ->setTarget()->translate(),
];
}
}
Controller (Kaydet & Güncelle)
use App\Traits\Translatable;
class AboutController extends Controller
{
use Translatable;
public function store(Request )
{
[] = ->autoTranslate([]);
[] = ->autoTranslate([]);
About::create();
}
public function update(Request , string )
{
if (->has()) {
[] = ->autoTranslate(->title);
}
if (->has()) {
[] = ->autoTranslate(->description);
}
->update();
}
}
Görünüm
{{ $about->getTranslatedTitle() }}
{{ $about->getTranslatedDescription() }}
Statik Çeviriler (Manuel İnline)
Statik Çeviriler (Manuel İnline)
📌 Normalde
resources/lang/{locale}dosyalarını kullanırsınız, ancak burada hızlı bir inline yöntemi var.
Route
Route::get(, function () {
if (!in_array(, [, ])) {
= ;
}
session([=> ]);
app()->setLocale();
return back();
});
Görünüm
@php
$newsTranslations = [
'section_title' => [
'id' => 'Berita Pertambangan Nasional',
'en' => 'National Mining News',
],
];
$locale = session('locale', 'id');
@endphp
{{ $newsTranslations['section_title'][$locale] }}
Bu kadar. Artık Laravel’de hem dynamik (admin girişi) hem de statik (inline metin) için temel çokdilli destek sağladınız.
Kaynak: Orijinal Makale


