Web Doktoru - Laravel’de Çoklu Dil (Localization) Kullanımı
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.
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.phpBu yapı, her dil için ayrı dosyalar oluşturarak çevirileri düzenli bir şekilde yönetmenizi sağlar.
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 İngilizceEğer varsayılan dili Türkçe yapmak istiyorsanız, bu ayarı şu şekilde değiştirebilirsiniz:
'locale' => 'tr', // Varsayılan dil TürkçeAyrıca, fallback_locale ayarı, belirlenen dilde çeviri bulunmazsa hangi dilin kullanılacağını belirler. Örneğin:
'fallback_locale' => 'en', // Çeviri bulunmazsa İngilizce kullanLaravel’de dil dosyaları, PHP dizileri içinde anahtar-değer çiftleri şeklinde tanımlanır. Bu dosyalar, uygulamanın farklı dillerdeki metinlerini içerir.
resources/lang/en/messages.php)return [
'welcome' => 'Welcome to our website!',
'goodbye' => 'Goodbye, see you again!',
];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.
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.
Çok dilli bir uygulamada, URL’ye dil eklemek yaygın bir yöntemdir. Örneğin:
example.com/en/home → İngilizceexample.com/tr/home → TürkçeBu 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.
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.
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.
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/langDaha sonra, dil dosyalarını resources/lang/ klasörüne ekleyerek kullanabilirsiniz.
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. 🚀
Web trafiğinin %70'inden fazlası artık mobil cihazlardan geliyor. Google'ın mobil öncelikli indekslemesi (mobile-first indexing) 2026'da tam bir…
WordPress siteniz canlıya alındıktan sonra iş bitmiyor asıl iş o zaman başlıyor. Pek çok işletme…
İşletmeniz için dijital bir çözüm geliştirmek istediğinizde, karşılaşacağınız ilk soru genellikle budur: "Mobil uygulama mı…
Web sitesi hızı, 2026'da sadece bir teknik detay değil — doğrudan iş sonuçlarını etkileyen kritik…
Sosyal medya, 2026 itibarıyla 5.2 milyar aktif kullanıcıya ulaşmış durumda. Türkiye'de ise 65 milyondan fazla…
"İç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,…