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.php
Bu 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 İ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
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.
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/lang
Daha 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. 🚀
Laravel’de Real-Time (Gerçek Zamanlı) Bildirimler Laravel, modern web uygulamalarında gerçek zamanlı bildirimler oluşturmak için güçlü…
Laravel’de Mail Gönderme ve Bildirimler Laravel, modern web uygulamaları geliştirirken e-posta gönderimi ve bildirim sistemleri…
Laravel, dosya yükleme ve depolama işlemleri için güçlü bir Storage (Dosya Depolama) mekanizması sunar. Bu mekanizma, yerel…
Laravel’de Test Driven Development (TDD) ve Test Yazımı: Güvenilir ve Sürdürülebilir Kod Geliştirme Laravel, modern…
Laravel’de Scheduler (Zamanlanmış Görevler) Kullanımı: Otomatik İşlemler ve Zaman Yönetimi Laravel, modern web uygulamalarında belirli…
Laravel Event & Listener Kullanımı: Modüler ve Esnek Uygulama Geliştirme Laravel, modern web uygulamaları geliştirirken…