Laravel ile Çoklu Dil Desteği: Localization ve Translation

Kaan Atalay

Kaan Atalay

03 May 2024

Global bir kullanıcı kitlesine hitap etmek istiyorsanız, uygulamanızın çoklu dil desteğine sahip olması önemlidir. Laravel, güçlü localization ve translation özellikleriyle bu süreci kolaylaştırır.

1. Dil Dosyalarının Yapısı

Laravel'de dil dosyaları resources/lang/ dizininde tutulur. Her dil için ayrı bir klasör oluşturulur.

resources/lang/en/messages.php
resources/lang/tr/messages.php

2. Metinleri Çevirilebilir Hale Getirme

Blade şablonlarında veya PHP kodunda __() veya @lang fonksiyonlarını kullanarak metinleri çevirilebilir hale getirebilirsiniz.

{{ __('messages.welcome') }}

3. Dil Dosyalarının Oluşturulması

Her dil için anahtar-değer çiftleri şeklinde dil dosyaları oluşturun.

resources/lang/en/messages.php

return [
    'welcome' => 'Welcome to our website!',
];

resources/lang/tr/messages.php

return [
    'welcome' => 'Web sitemize hoş geldiniz!',
];

4. Aktif Dilin Ayarlanması

Aktif dili değiştirmek için App::setLocale() metodunu kullanabilirsiniz. Genellikle bu işlem Middleware üzerinden yapılır.

Route::get('lang/{locale}', function ($locale) {
    App::setLocale($locale);
    return redirect()->back();
});

5. Kullanıcının Tercih Ettiği Dili Saklama

  • Session veya Cookie kullanarak kullanıcı dil tercihini saklayabilirsiniz.
  • Veritabanında kullanıcı profiline dil alanı ekleyebilirsiniz.

6. Pluralization ve Değişkenler

Çevirilerde sayılar ve değişkenler kullanabilirsiniz.

// Dil dosyası
'notifications' => '{0} Bildirim yok|{1} Bir bildirim var|[2,*] :count bildirim var',
{{ trans_choice('messages.notifications', $count, ['count' => $count]) }}

7. JSON Dil Dosyaları

Statik anahtarlar yerine doğrudan metinleri kullanmak isterseniz, JSON dil dosyalarını kullanabilirsiniz.

resources/lang/tr.json

{
    "Welcome to our website!": "Web sitemize hoş geldiniz!"
}

8. Üçüncü Parti Paketlerin Çevirileri

Paketlerin yayınladığı dil dosyalarını vendor/ dizininden resources/lang/vendor/ dizinine kopyalayarak özelleştirebilirsiniz.

9. Tarih ve Zaman Localization

Carbon kütüphanesini kullanarak tarih ve zaman formatlarını yerelleştirebilirsiniz.

Carbon::setLocale('tr');
echo Carbon::now()->isoFormat('LLLL');

10. RTL Dilleri Destekleme

Sağdan sola yazılan diller için CSS ve şablonlarda gerekli düzenlemeleri yapın. @if direktifiyle dil kontrolü yapabilirsiniz.

@if(App::getLocale() == 'ar')
    <link rel="stylesheet" href="rtl.css">
@endif

Sonuç

Laravel'in localization özellikleri sayesinde uygulamanıza kolayca çoklu dil desteği ekleyebilirsiniz. Bu, kullanıcı deneyimini iyileştirir ve daha geniş bir kitleye ulaşmanızı sağlar. Atalay Tech olarak, çoklu dil desteği konusunda uzman ekibimizle projelerinizi uluslararası arenaya taşıyoruz. Daha fazla bilgi için bizimle iletişime geçin.

Dijital Dönüşüm Ortağınız

Atalay Tech, yenilikçi web yazılım, mobil uygulama ve e-ticaret çözümleri sunan dinamik bir teknoloji şirketidir. Müşteri odaklı yaklaşımımızla iş süreçlerinizi hızlandırıyor ve teknolojiyi verimli bir şekilde kullanmanıza yardımcı oluyoruz. Modern yazılım mimarileri ve yüksek performanslı uygulamalarla iş dünyasında öne çıkmanızı sağlıyoruz.

Kurumsal
İletişim
Blog

Telif Hakkı © 2025 atalay.tech