Laravel'de Çoklu Dil Desteği

Laravel'de Çoklu Dil Desteği
Çoklu dil desteği, bir uygulamanın birden fazla dilde içerik sunabilme yeteneğidir. Kullanıcıların tercih ettikleri dillerde uygulamayı kullanmalarına olanak tanır. Bu sayede her kullanıcı kendi tercih ettiği dili kullanmakta özgür olur.
2. Ne için Gereklidir?
- Kullanıcı deneyimini artırmak.
- Farklı coğrafi bölgelerdeki kullanıcılara ulaşmak.
- Erişilebilirliği artırmak.
3. Laravel'de Çoklu Dil Desteğinin Avantajları
- Kolay yapılandırma ve yönetim.
- Yerelleştirme (localization) desteği ile dinamik içerik sunma.
- Geliştiriciler için esneklik ve ölçeklenebilirlik.
4. Nasıl Kullanılır?
- Dil Dosyalarının Oluşturulması:
resources/lang
dizininde dil dosyaları oluşturun. Örneğin,en/messages.php
vetr/messages.php
. - Dil Dosyası Örneği:
// resources/lang/en/messages.php return [ 'welcome' => 'Welcome to our application!', ]; // resources/lang/tr/messages.php return [ 'welcome' => 'Uygulamamıza hoş geldiniz!', ];
5. Kullanıcı Tercihlerini Oturumda Saklama
1. Dil Değiştirme İşlemi
Kullanıcı dilini değiştirdiğinde, seçilen dili oturumda saklamak için bir route ve controller oluşturmalısınız.
Rota Tanımı:
// routes/web.php Route::post('/change-language', [LanguageController::class, 'change'])->name('change.language');
2. Controller Oluşturma
Dil değişimini yönetecek bir controller oluşturun.
Controller Örneği:
// app/Http/Controllers/LanguageController.php namespace App\Http\Controllers; use Illuminate\Http\Request; class LanguageController extends Controller { public function change(Request $request) { // Kullanıcının seçtiği dili oturumda saklayın $request->session()->put('locale', $request->language); // Kullanıcının seçtiği dile göre uygulamanın dilini ayarlayın app()->setLocale($request->language); // Kullanıcıyı önceki sayfaya yönlendirin return redirect()->back(); } }
3. Dil Seçimini Oturumdan Alma
Uygulamanızın dilini oturumda saklanan değere göre ayarlamak için,
AppServiceProvider
içinde birboot
metodu ekleyebilirsiniz.AppServiceProvider Örneği:
// app/Providers/AppServiceProvider.php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades\App; class AppServiceProvider extends ServiceProvider { public function boot() { // Oturumda saklanan dil varsa, uygulamanın dilini ayarlayın if (session()->has('locale')) { App::setLocale(session('locale')); } } public function register() { // } }
4. Dil Değiştirme Formu
Dil değiştirme formunu, önceki yanıtta verdiğimiz gibi oluşturabilirsiniz. Bu form, kullanıcının dil tercihini değiştirmesine olanak tanır.
Örnek Form:
<form action="{{ route('change.language') }}" method="POST"> @csrf <select name="language" onchange="this.form.submit()"> <option value="en" {{ session('locale') == 'en' ? 'selected' : '' }}>English</option> <option value="tr" {{ session('locale') == 'tr' ? 'selected' : '' }}>Türkçe</option> </select> </form>
Bu adımları takip ederek, kullanıcıların dil tercihlerini oturumda saklayabilir ve her ziyaretlerinde bu tercihleri koruyabilirsiniz.