Lokalizasyon Kılavuzu
Platform çok dilli desteğe sahiptir. Bu kılavuz, lokalizasyon sisteminin nasıl kullanılacağını açıklar.
Genel Bakış
Platform aşağıdaki lokalizasyon özelliklerini destekler:
- 10+ Dil Desteği: Türkçe, İngilizce, Almanca, Fransızca, İspanyolca, İtalyanca, Rusça, Arapça, Çince, Japonca
- Kullanıcı Dil Tercihi: Her kullanıcı kendi dil tercihini seçebilir
- Otomatik Locale Uygulama:
SetUserLocalemiddleware ile otomatik uygulanır - Çeviri Sistemi: Key-based çeviri sistemi ile dinamik çeviriler
Kullanıcı Dil Tercihi
Kullanıcı Ayarları
Kullanıcı dil tercihi UserSetting modelinde saklanır:
$user = User::find(1);
$settings = $user->setting;
$locale = $settings->locale; // 'tr', 'en', vb.
$timezone = $settings->timezone; // 'Europe/Istanbul', 'America/New_York', vb.
Locale Ayarlama
use App\Helpers\LocaleHelper;
// Kullanıcının dil tercihini uygula
LocaleHelper::setUserLocale($user);
// Kullanıcının saat dilimini uygula
LocaleHelper::setUserTimezone($user);
Çeviri Sistemi
TranslationHelper Kullanımı
use App\Helpers\TranslationHelper;
// Tek bir çeviri
$title = TranslationHelper::trans('pages.home');
// Parametreli çeviri
$message = TranslationHelper::trans('messages.welcome', ['name' => $userName]);
// Belirli bir dil için çeviri
$title = TranslationHelper::trans('pages.home', [], 'en');
// Grup çevirileri
$menuItems = TranslationHelper::getGroup('menu');
// Tüm çeviriler
$allTranslations = TranslationHelper::getAll();
Çeviri Anahtarları
Çeviri anahtarları {grup}.{kaynak}.{alan} formatında tutulmalıdır:
pages.home- Ana sayfamenu.logout- Çıkış menüsüauth.login- Giriş sayfasımessages.welcome- Hoş geldin mesajı
Tarih ve Saat Formatlama
LocaleHelper ile Formatlama
use App\Helpers\LocaleHelper;
// Tarih formatlama
$formattedDate = LocaleHelper::formatDate($date, $user);
// Örnek: "20/11/2025"
// Saat formatlama
$formattedTime = LocaleHelper::formatTime($time, $user);
// Örnek: "14:30"
// Tarih ve saat formatlama
$formattedDateTime = LocaleHelper::formatDateTime($datetime, $user);
// Örnek: "20/11/2025 14:30"
Desteklenen Formatlar
Tarih Formatları:
d/m/Y- 20/11/2025Y-m-d- 2025-11-20m/d/Y- 11/20/2025d.m.Y- 20.11.2025
Saat Formatları:
H:i- 14:30h:i A- 02:30 PMH:i:s- 14:30:00
Middleware
SetUserLocale Middleware
Her API isteğinde kullanıcının dil ve saat dilimi tercihleri otomatik uygulanır:
// bootstrap/app.php içinde kayıtlı
$middleware->alias([
'locale.user' => \App\Http\Middleware\SetUserLocale::class,
]);
API Endpoint'leri
Kullanıcı Ayarları
GET /api/v1/user/settings- Kullanıcı ayarlarını görüntülePUT /api/v1/user/settings- Kullanıcı ayarlarını güncelle
Çeviriler
GET /api/v1/translations/{key}- Çeviri metnini getirGET /api/v1/translations/group/{group}- Grup çevirilerini getirGET /api/v1/translations- Tüm çevirileri getir
Diller
GET /api/v1/locales/{code}- Dil detayıGET /api/v1/admin/locales- Dil listesi (Admin)
Cache
Çeviriler 24 saat cache'lenir (performans için). Cache temizleme:
// Belirli bir çeviri cache'ini temizle
TranslationHelper::clearCache('tr', 'pages.home');
// Belirli bir dil için tüm cache'leri temizle
TranslationHelper::clearCache('tr');
// Tüm çeviri cache'lerini temizle
TranslationHelper::clearCache();
İlgili Dokümantasyon
- Helper Sınıfları - LocaleHelper ve TranslationHelper
- Çeviri API - Çeviri endpoint'leri
- Kullanıcı Ayarları API - Kullanıcı ayarları endpoint'leri