design

Laravel ile Multi-Language Uygulama Geliştirme

March 23, 2025

Merhaba arkadaşlar, bugün sizlere Laravel ile çok dilli (multi-language) uygulama geliştirme konusunu anlatacağım. Günümüzde, kullanıcıların farklı dillerde içerik talep etmesi oldukça yaygın bir durum. Laravel, bu ihtiyacı karşılamak için kolayca çok dilli uygulamalar geliştirmenizi sağlayan güçlü bir yapı sunar. Gelin, bu süreci adım adım inceleyelim.


Laravel’de Çok Dilli Uygulama Nasıl Yapılır?

Laravel’de çok dilli uygulama geliştirmek için dil dosyaları ve locale (dil ayarı) yapısını kullanabilirsiniz. Bu yapı sayesinde, uygulamanızın farklı dillerde içerik sunmasını sağlayabilirsiniz.


Dil Dosyalarını Oluşturma

Laravel’de dil dosyaları, resources/lang dizini altında bulunur. Varsayılan olarak, bu dizinde en (İngilizce) ve es (İspanyolca) gibi dil klasörleri bulunur. Yeni bir dil eklemek için, örneğin Türkçe için tr klasörü oluşturabilirsiniz.


Örnek Dil Dosyası:

// resources/lang/tr/messages.php
return [
    'welcome' => 'Hoş Geldiniz',
    'greeting' => 'Merhaba, :name!',
];

Bu dosyada, welcome ve greeting gibi anahtarlar ve bunlara karşılık gelen Türkçe metinler bulunur. :name gibi dinamik değerler kullanarak, kullanıcı adını metne ekleyebilirsiniz.

Dil Ayarlarını Yapılandırma

Laravel’de varsayılan dil ayarını config/app.php dosyasından yapılandırabilirsiniz. Örneğin, varsayılan dili


Türkçe olarak ayarlamak için:

'locale' => 'tr',

Ayrıca, uygulama içinde kullanıcının dil tercihine göre dil ayarını dinamik olarak değiştirebilirsiniz. Bunun için App::setLocale() metodunu kullanabilirsiniz.

Dil Ayarlarını Dinamik Olarak Değiştirme:


use Illuminate\Support\Facades\App;

public function changeLanguage($locale)
{
    if (in_array($locale, ['en', 'tr', 'es'])) {
        App::setLocale($locale);
    }
    return redirect()->back();
}

Bu kod, kullanıcının seçtiği dile göre uygulamanın dil ayarını değiştirir.


Blade Template’de Dil Metinlerini Kullanma

Blade template’de dil metinlerini kullanmak için __() veya @lang direktifini kullanabilirsiniz.


Örneğin, welcome mesajını göstermek için:

<h1>{{ __('messages.welcome') }}</h1>



Eğer dinamik bir değer kullanmak istiyorsanız, :name gibi yer tutucuları kullanabilirsiniz:

<p>{{ __('messages.greeting', ['name' => 'Ahmet']) }}</p>

Bu kod, "Merhaba, Ahmet!" şeklinde bir çıktı üretecektir.


Route’larda Dil Desteği

Eğer uygulamanızda URL üzerinden dil değiştirmeyi desteklemek istiyorsanız, route’larda dil parametresi kullanabilirsiniz. Örneğin:

Route::get('/{locale}/welcome', function ($locale) {
    App::setLocale($locale);
    return view('welcome');
});

Bu route, /tr/welcome gibi bir URL ile Türkçe içerik veya /en/welcome gibi bir URL ile İngilizce içerik sunar.

Dil Paketleri ve Lokalizasyon

Laravel, dil paketleri ve lokalizasyon işlemleri için birçok özellik sunar. Örneğin, tarih ve saat formatlarını kullanıcının diline göre ayarlamak için Carbon kütüphanesini kullanabilirsiniz.


Tarih ve Saat Formatı Örneği:

use Carbon\Carbon;

public function showDate()
{
    App::setLocale('tr');
    $date = Carbon::now()->format('d F Y');
    return view('date', compact('date'));
}


Bu kod, Türkçe dil ayarına göre tarihi "15 Ekim 2023" şeklinde formatlar.

Laravel’de Çok Dilli Uygulamanın Avantajları

  • Kullanıcı Deneyimi: Farklı dillerde içerik sunarak, kullanıcı deneyimini artırabilirsiniz.
  • Esneklik: Dil dosyaları ve dinamik dil ayarları sayesinde, uygulamanızı kolayca özelleştirebilirsiniz.
  • Geniş Kitleye Ulaşma: Çok dilli uygulamalar, daha geniş bir kitleye ulaşmanızı sağlar.


Laravel ile çok dilli uygulama geliştirmek, kullanıcıların farklı dillerde içerik talep etmesini karşılamanın en etkili yollarından biridir. Dil dosyaları, locale ayarları ve Blade template’de dil metinlerini kullanarak, uygulamanızı kolayca çok dilli hale getirebilirsiniz. Bir sonraki yazımda, Laravel’de File Upload ve Storage Yönetimi konusuna değineceğim. Görüşmek üzere!


0 + 7 =