Laravel ile Çoklu Dil Uygulaması

🚀 Başlamadan önce, çoklu dil desteği sağlamanın birçok yolunun olduğunu hatırlatmak isterim. Ancak bu makalede, Laravel uygulamaları için basit ve etkili bir çözüm olan yerelleştirme (Localization) özelliğinden yararlanacağız.
1. Dil Dosyalarını Oluşturun 🔨
Laravel, dil dosyalarını resources/lang
klasöründe saklar. Her dil için bir klasör oluşturmanız gerekmektedir. Örneğin, Türkçe için resources/lang/tr
, İngilizce için resources/lang/en
klasörleri oluşturabilirsiniz. Her dil klasörünün içerisine, çevirilerinizi tutacak olan .php
dosyaları eklemeniz gerekmektedir.
2. Dil Dosyalarını Ayarlayın ⚙️
Dil dosyalarını oluşturduktan sonra, anahtar-değer çiftleri şeklinde çevirilerinizi bu dosyaların içine ekleyin. Örneğin, messages.php
dosyası içerisinde şöyle bir yapı olabilir:
// resources/lang/en/messages.php
return [
'welcome' => 'Welcome to our website!',
];
// resources/lang/tr/messages.php
return [
'welcome' => 'Web sitemize hoş geldiniz!',
];
3. Dil Ayarlarını Yapın 🌐
Kullanıcının dil seçimini tanımlamak için, genellikle config/app.php
dosyasındaki 'locale' => 'en'
değerini değiştirmeniz gerekir. Kullanıcının dil seçimine göre bu değeri dinamik hale getirebiliriz.
4. Dil Değiştirme Fonksiyonu Oluşturun 🔄
Kullanıcının dilini değiştirmesine izin vermek için, bir rota ve denetleyici (controller) oluşturmanız gerekmektedir. Örneğin, setLocale
adında bir metot oluşturabilirsiniz:
public function setLocale($lang)
{
if (array_key_exists($lang, config('app.locales'))) {
session(['applocale' => $lang]);
}
return redirect()->back();
}
Bu kod parçası, uygulamanın dilleri arasında geçiş yapmayı sağlar.
5. Middleware Oluşturun 🚦
Dil seçimini otomatik hale getirmek için bir middleware oluşturmanız gerekmektedir. Bu middleware, her istekte çalışır ve oturumda belirtilen dile göre uygulamanın dilini ayarlar.
public function handle($request, Closure $next)
{
app()->setLocale(session('applocale', config('app.locale')));
return $next($request);
}
Son olarak, bu middleware’yi kernel.php
dosyasında tanımlamanız ve global middleware olarak eklemeniz gerekmektedir.
6. Çevirileri Kullanma
🗣️
Şimdi, dil dosyalarınızı ve dil seçim fonksiyonlarınızı kullanabilirsiniz. trans
veya __
fonksiyonlarını kullanarak çevirilerinizi kullanabilirsiniz. Örneğin, hoş geldiniz mesajınızı şu şekilde gösterebilirsiniz:
echo __('messages.welcome');
🎉 Tebrikler! Laravel uygulamanızda çoklu dil desteği başarıyla sağlandı. Bu basit çözüm, çeşitli dillerde kullanıcılarınıza daha iyi hizmet vermenizi sağlar. Ancak, daha karmaşık uygulamalar için, çeviri paketleri veya veritabanı tabanlı çözümler düşünülebilir. Her zaman projenizin ihtiyaçlarına ve özelliklerine göre en uygun çözümü seçin. 🚀