Laravel 11 ile Çoklu Dil Desteği (Localization) Nasıl Kullanılır?

5 Şub 2025
Laravel 11 ile Çoklu Dil Desteği (Localization) Nasıl Kullanılır?

Laravel, uygulamalarınıza kolayca çoklu dil desteği eklemenizi sağlayan güçlü bir localization (yerelleştirme) sistemine sahiptir. Bu özellik sayesinde metinleri farklı dillerde gösterebilir, dinamik çeviri işlemleri gerçekleştirebilir ve uygulamanızın farklı bölgelerde kullanılabilir olmasını sağlayabilirsiniz.

Bu rehberde Laravel 11 ile çoklu dil desteğini nasıl kullanacağınızı öğreneceksiniz.

1. Laravel’de Localization Nedir?

Localization, bir uygulamanın farklı dillerde çalışmasını sağlayan bir mekanizmadır. Laravel’de bu işlem lang dizini içinde bulunan çeviri dosyaları ile gerçekleştirilir.

Örnek dizin yapısı:

resources/
├── lang/
│   ├── en/
│   │   ├── messages.php
│   ├── tr/
│   │   ├── messages.php

Bu yapı sayesinde her dil için ayrı çeviri dosyaları oluşturabiliriz.

2. Dil Dosyalarını Oluşturma

İlk olarak, resources/lang/ dizini altında tr (Türkçe) ve en (İngilizce) klasörlerini oluşturun.

Daha sonra, bu klasörlerin içine messages.php adlı bir dosya ekleyin.

English Çeviri Dosyası (resources/lang/en/messages.php):

return [
    'welcome' => 'Welcome to our application!',
    'login' => 'Login',
    'register' => 'Register',
];

Türkçe Çeviri Dosyası (resources/lang/tr/messages.php):

return [
    'welcome' => 'Uygulamamıza hoş geldiniz!',
    'login' => 'Giriş Yap',
    'register' => 'Kayıt Ol',
];

3. Çeviri Metinlerini Kullanma

Laravel’de çeviri metinlerini __() ve trans() fonksiyonları ile çağırabilirsiniz.

 echo __('messages.welcome'); // Aktif dile göre çıktıyı döndürür echo trans('messages.login'); // Aynı şekilde çalışır 

Blade şablonları içinde kullanımı:

{{ __('messages.welcome') }}

4. Kullanıcı Dilini Değiştirme

Kullanıcının dil tercihine göre uygulamayı ayarlamak için Laravel’in App::setLocale() fonksiyonunu kullanabiliriz.

Örnek bir Middleware oluşturarak kullanıcı dilini değiştirelim.

 php artisan make:middleware LanguageMiddleware 

app/Http/Middleware/LanguageMiddleware.php dosyasını şu şekilde düzenleyin:

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Session;

class LanguageMiddleware
{
    public function handle($request, Closure $next)
    {
        if (Session::has('locale')) {
            App::setLocale(Session::get('locale'));
        }

        return $next($request);
    }
}

Laravel 11’de middleware kayıt işlemi değiştiği için, artık middleware’i bootstrap/app.php dosyasında tanımlamamız gerekiyor:

 // bootstrap/app.php dosyasına ekleyin $app->middleware([ App\Http\Middleware\LanguageMiddleware::class, ]); 

Daha sonra, kullanıcının dili değiştirmesi için bir Route oluşturalım.

use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Route;

Route::get('/lang/{locale}', function ($locale) {
    Session::put('locale', $locale);
    App::setLocale($locale);
    
    return redirect()->back();
});

Kullanıcılar artık /lang/tr veya /lang/en adresine giderek dillerini değiştirebilirler.

5. Varsayılan Dili Belirleme

Laravel’de varsayılan dili config/app.php dosyasında belirleyebilirsiniz.

 'locale' => 'en', 

Eğer çoklu dil desteği sunmak istiyorsanız, desteklenen dilleri de ekleyebilirsiniz:

 'supported_locales' => ['en', 'tr'], 

6. JSON Dil Dosyaları ile Çeviri

Laravel, JSON dosyalarını kullanarak da çeviri işlemleri yapmanıza olanak tanır.

resources/lang/tr.json:

 { "Welcome": "Hoş Geldiniz", 
   "Login": "Giriş Yap" } 

Kullanımı:

 echo __('Welcome'); // Eğer "tr" dili seçiliyse "Hoş Geldiniz" döner. 

Sonuç

Laravel 11 ile çoklu dil desteğini nasıl kullanacağınızı öğrendiniz. Dil dosyaları, middleware ve yönlendirme sistemleri ile kullanıcılarınıza dinamik çeviri hizmeti sunabilirsiniz.

Bonus İpucu: Çeviri işlemlerini otomatik yapmak için Laravel Localization paketlerini de kullanabilirsiniz! 🚀

Geliştirmeye devam edin ve Laravel’in gücünü keşfedin! 💻

YAZAR : Boran BAR
Chat on WhatsApp