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
→ İngilizceexample.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.
Laravel Eğitimi Konular
- Laravel Nedir ve Neden Kullanılmalı?
- Laravel Kurulumu (Composer ile Adım Adım Rehber)
- Laravel Proje Yapısı ve MVC Mimarisi
- Laravel Routing ve Controller Kullanımı
- Laravel Middleware Kullanımı
- API isteklerinde middleware kullanımı
- Laravel Migration ve Seeder Kullanımı
- Laravel Factory ve Faker ile Test Verisi Üretme
- Laravel’de API Kullanımı ve Token Bazlı Authentication
- Laravel Rol ve Yetkilendirme İşlemleri
- Laravel’de Cache ve Performans Optimizasyonu
- Laravel’de Queue (Kuyruk) Kullanımı ve Arka Plan İşlemleri
- Laravel Event & Listener Kullanımı
- Laravel’de Scheduler (Zamanlanmış Görevler) Kullanımı: Otomatik İşlemler ve Zaman Yönetimi
- Laravel’de Test Driven Development (TDD) ve Test Yazımı