 (39).png)
"Bir dil bir insan, iki dil iki insan" demişler. Peki ya uygulamanız 10 dil konuşsaydı? Laravel'in güçlü localization sistemiyle çok dilli uygulamalar geliştirmek sandığınızdan daha kolay! İşte adım adım rehberimiz:
Dil dosyalarınızı resources/lang dizinine yerleştirin:
/resources
/lang
/en
messages.php
/tr
messages.php
/de
messages.php
Örnek dil dosyası (messages.php):
// resources/lang/en/messages.php
return [
'welcome' => 'Welcome to our application!',
'greeting' => 'Hello, :name!',
];
Middleware ile dil ayarı:
// app/Http/Middleware/SetLocale.php
public function handle($request, Closure $next)
{
if (session()->has('locale')) {
app()->setLocale(session()->get('locale'));
}
return $next($request);
}
Route tanımı:
Route::get('language/{locale}', function ($locale) {
session()->put('locale', $locale);
return redirect()->back();
})->name('language.switch');
Blade'de dil değiştirme butonları:
<a href="{{ route('language.switch', 'en') }}" class="flag-icon flag-icon-us"></a>
<a href="{{ route('language.switch', 'tr') }}" class="flag-icon flag-icon-tr"></a>
Blade dosyalarında:
<h1>@lang('messages.welcome')</h1>
<p>{{ __('messages.greeting', ['name' => 'Ahmet']) }}</p>
Controller'da:
$welcomeMessage = trans('messages.welcome');
JSON dosyalarıyla (Vue/React için):
// resources/lang/en.json
{
"Welcome": "Welcome to our app!"
}
// resources/lang/en/messages.php
return [
'apples' => '{0} No apples|{1} One apple|[2,*] :count apples',
];
// Kullanım
echo trans_choice('messages.apples', 10); // "10 apples"
php artisan lang:publish
// Özel Translation modeli kullanarak
$translation = Translation::where('key', 'welcome')
->where('locale', app()->getLocale())
->first();
Hreflang Etiketleri:
<link rel="alternate" hreflang="en" href="https://example.com/en" /> <link rel="alternate" hreflang="tr" href="https://example.com/tr" />
URL Yapısı:
// Dil prefix'li route'lar
Route::prefix('{locale}')->group(function () {
Route::get('/', [HomeController::class, 'index']);
});
php artisan config:cache@json directive kullanınLaravel'in localization sistemi sayesinde çok dilli uygulamalar geliştirmek artık çocuk oyuncağı!
Hangi dilleri destekliyorsunuz? Yorumlarda paylaşın! 💬
Bir sonraki yazımız: 🚀 [Laravel'de API Versioning: Backward Compatibility] - API'nizi güncellerken eski istemcileri nasıl mutlu edersiniz?**
#Laravel #Localization #Multilingual #WebDevelopment #i18n