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

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.