Laravel’de Çoklu Dil (Localization) Kullanımı

Web Doktoru - Laravel’de Çoklu Dil (Localization) Kullanımı

Laravel’de Çoklu Dil (Localization) Kullanımı

İçindekiler

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 → İngilizce
  • example.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.
Picture of Web Doktoru
Web Doktoru
Matematikçi, Adli Bilişim Uzmanı, Bil. Yük. Müh. Full Stack Developer
İlginizi Çekebilir
Web Doktoru - Laravel’de Real-Time (Gerçek Zamanlı) Bildirimler

Laravel’de Real-Time (Gerçek Zamanlı) Bildirimler

Laravel’de Real-Time (Gerçek Zamanlı) Bildirimler Laravel, modern web uygulamalarında gerçek zamanlı bildirimler oluşturmak için güçlü araçlar sunar. WebSockets, Pusher, Laravel Echo ve Broadcasting gibi teknolojiler

Web Doktoru - Laravel’de Mail Gönderme ve Bildirimler 📩

Laravel’de Mail Gönderme ve Bildirimler 📩

Laravel’de Mail Gönderme ve Bildirimler Laravel, modern web uygulamaları geliştirirken e-posta gönderimi ve bildirim sistemleri gibi ihtiyaçları kolayca karşılamak için güçlü araçlar sunar. Bu yazıda,

Whatsapp ile mesaj göndermek için tıklayın

Telefon ile sadece 09:00 - 18:00 saatleri arası ulaşabilirsiniz.