Laravel

Laravel’de Çoklu Dil (Localization) Kullanımı

Laravel’de Çoklu Dil (Localization) Kullanımı: Uygulamanızı Küresel Hale Getirin 🌍

Laravel, modern web uygulamaları için güçlü bir Localization (Yerelleştirme) mekanizması sunar. Bu özellik, uygulamanızın farklı dillerde içerik göstermesini ve kullanıcıların tercih ettiği dili seçmesini sağlar. Bu makalede, Laravel’de çoklu dil desteğini nasıl kullanacağınızı adım adım öğreneceksiniz.


1️⃣ Localization (Yerelleştirme) Nedir?

Localization, bir uygulamanın farklı dillerde içerik sunabilmesini sağlayan bir mekanizmadır. Bu, özellikle küresel bir kitleye hitap eden uygulamalar için kritik bir özelliktir. Laravel’de, dil dosyaları resources/lang/ klasöründe saklanır ve bu dosyalar, uygulamanın farklı dillerdeki metinlerini içerir.

Örneğin, İngilizce ve Türkçe dillerini desteklemek için aşağıdaki dizin yapısını oluşturabilirsiniz:

resources/lang/
├── en/
│   ├── messages.php
│   ├── validation.php
│   └── auth.php
├── tr/
│   ├── messages.php
│   ├── validation.php
│   └── auth.php

Bu yapı, her dil için ayrı dosyalar oluşturarak çevirileri düzenli bir şekilde yönetmenizi sağlar.


2️⃣ Laravel’de Varsayılan Dil Ayarı

Laravel’de varsayılan dil, config/app.php dosyasındaki locale anahtarı ile belirlenir. Örneğin, varsayılan dili İngilizce olarak ayarlamak için:

'locale' => 'en', // Varsayılan dil İngilizce

Eğer varsayılan dili Türkçe yapmak istiyorsanız, bu ayarı şu şekilde değiştirebilirsiniz:

'locale' => 'tr', // Varsayılan dil Türkçe

Ayrıca, fallback_locale ayarı, belirlenen dilde çeviri bulunmazsa hangi dilin kullanılacağını belirler. Örneğin:

'fallback_locale' => 'en', // Çeviri bulunmazsa İngilizce kullan

3️⃣ Dil Dosyaları ile Çeviri Yapma

Laravel’de dil dosyaları, PHP dizileri içinde anahtar-değer çiftleri şeklinde tanımlanır. Bu dosyalar, uygulamanın farklı dillerdeki metinlerini içerir.

Örnek: İngilizce Dil Dosyası (resources/lang/en/messages.php)

return [
    'welcome' => 'Welcome to our website!',
    'goodbye' => 'Goodbye, see you again!',
];

Örnek: Türkçe Dil Dosyası (resources/lang/tr/messages.php)

return [
    'welcome' => 'Web sitemize hoş geldiniz!',
    'goodbye' => 'Hoşça kal, tekrar görüşmek üzere!',
];

Bu çevirileri kullanmak için trans() veya __() fonksiyonlarını kullanabilirsiniz:

echo trans('messages.welcome'); // Çıktı: "Welcome to our website!"
echo __('messages.goodbye'); // Çıktı: "Goodbye, see you again!"

Laravel, varsayılan dili config/app.php dosyasından alarak doğru çeviriyi otomatik olarak kullanır.


4️⃣ Blade Şablonlarında Çeviri Kullanımı

Blade şablonlarında çevirileri kullanmak oldukça kolaydır. Örneğin, bir Blade şablonunda çevirileri şu şekilde kullanabilirsiniz:

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

Bu şekilde, kullanıcının seçtiği dile göre metinler otomatik olarak değişecektir.


5️⃣ Çoklu Dil Desteği İçin URL Yapılandırması

Çok dilli bir uygulamada, URL’ye dil eklemek yaygın bir yöntemdir. Örneğin:

  • example.com/en/home → İngilizce
  • example.com/tr/home → Türkçe

Bu yapıyı Laravel’de yönetmek için Route grupları kullanabilirsiniz. Örneğin:

Route::group(['prefix' => '{locale}'], function () {
    Route::get('/home', function ($locale) {
        App::setLocale($locale);
        return view('home');
    });
});

Bu yöntemle, URL’de en veya tr gibi dil kodları kullanılarak çeviriler etkin hale gelir.


6️⃣ Kullanıcının Dil Tercihini Kaydetme

Kullanıcının tercih ettiği dili session veya veritabanında saklayabilirsiniz. Örneğin, kullanıcının seçtiği dili session’da saklamak için:

Route::get('lang/{locale}', function ($locale) {
    if (in_array($locale, ['en', 'tr'])) {
        session(['locale' => $locale]);
        App::setLocale($locale);
    }
    return redirect()->back();
});

Bu route’ı kullanarak bir dil değiştirme butonu oluşturabilirsiniz:

<a href="{{ url('lang/en') }}">English</a>
<a href="{{ url('lang/tr') }}">Türkçe</a>

Bu yöntemle, kullanıcı bir dili seçtiğinde Laravel onu session’da saklar ve sayfa yenilendiğinde bu dil kullanılır.


7️⃣ Form Doğrulama Mesajlarını Çevirmek

Laravel’de form doğrulama mesajlarını çevirmek oldukça kolaydır. Bunun için resources/lang/tr/validation.php dosyasını düzenleyebilirsiniz. Örneğin:

return [
    'required' => ':attribute alanı zorunludur.',
    'email' => 'Geçerli bir e-posta adresi giriniz.',
];

Bu çevirileri kullanarak form doğrulama mesajları otomatik olarak Türkçeye çevrilecektir.


8️⃣ Dil Paketleri Kullanma (Opsiyonel)

Eğer Laravel’in hazır doğrulama mesajlarını Türkçeye çevirmek isterseniz, Laravel’in resmi çeviri paketini yükleyebilirsiniz:

composer require laravel-lang/lang

Daha sonra, dil dosyalarını resources/lang/ klasörüne ekleyerek kullanabilirsiniz.


9️⃣ Sonuç

Laravel’de çoklu dil desteği, uygulamanızı küresel bir kitleye hitap edebilir hale getirmek için güçlü bir araçtır. Bu makalede, dil dosyalarını oluşturmayı, çevirileri kullanmayı ve kullanıcıların dil tercihlerini yönetmeyi öğrendiniz.

Eğer Laravel ile web uygulamaları geliştiriyorsanız, çoklu dil desteğini etkinleştirerek uygulamanızın erişilebilirliğini ve kullanıcı deneyimini artırabilirsiniz. 🚀


Ek Konu Başlıkları:

  • Dinamik Dil Değiştirme: Kullanıcıların uygulama içinde dil tercihlerini değiştirmesi.
  • Çeviri Önbellekleme: Çevirilerin performansını artırmak için önbellekleme.
  • Çoklu Dil için API Desteği: API’lerde çoklu dil desteği sağlama.
  • Çeviri Yönetim Paneli: Çevirileri yönetmek için bir yönetim paneli oluşturma.
Web Doktoru

Matematikçi, Adli Bilişim Uzmanı, Bil. Yük. Müh. Full Stack Developer

Son Gönderiler

Mobil Uyumlu Web Tasarım Rehberi: Responsive Design ile Kullanıcı Deneyimini Mükemmelleştirin

Web trafiğinin %70'inden fazlası artık mobil cihazlardan geliyor. Google'ın mobil öncelikli indekslemesi (mobile-first indexing) 2026'da tam bir…

9 Haziran 2026

WordPress Bakım Hizmeti Neden Gerekli? Site Sahiplerinin Yapmaması Gereken 8 Hata

WordPress siteniz canlıya alındıktan sonra iş bitmiyor asıl iş o zaman başlıyor. Pek çok işletme…

5 Haziran 2026

Mobil Uygulama mı Web Uygulaması mı? İşletmeniz İçin Doğru Tercih Rehberi

İşletmeniz için dijital bir çözüm geliştirmek istediğinizde, karşılaşacağınız ilk soru genellikle budur: "Mobil uygulama mı…

3 Haziran 2026

WordPress Site Hız ve Performans Optimizasyonu: Sayfa Yüklenme Süresini 3 Saniyenin Altına İndirin

Web sitesi hızı, 2026'da sadece bir teknik detay değil — doğrudan iş sonuçlarını etkileyen kritik…

1 Haziran 2026

Sosyal Medya Pazarlama Rehberi 2026: Platformlara Göre Strateji ve Büyüme Taktikleri

Sosyal medya, 2026 itibarıyla 5.2 milyar aktif kullanıcıya ulaşmış durumda. Türkiye'de ise 65 milyondan fazla…

29 Mayıs 2026

İçerik Pazarlama Stratejileri 2026: Dönüşüm Oranını Artıran 10 Adım

"İçerik kraldır" diyerek başlamak bu noktada klasik kaçabilir ama gerçek değişmiyor: doğru içerik, doğru kişilere,…

27 Mayıs 2026