Multi-Language (Çoklu Dil) Kullanımı
Titan Framework birden fazla dil ile içerik yayınlamayı destekler.
- Dil Ayarlarını Yapılandırma
- Varsayılan Dili Belirleme » set_lang()
- Varsayılan Dili Öğrenme » get_lang()
- Dil Dosyası Oluşturma
- Çeviri Yapma » lang()
Dil Ayarlarını Yapılandırma
Multi-Language kullanımı ile ilgili ayarlar, /App/Config dizini içerisindeki App.php dosyasında bulunur. Dosya içerisinde return edilen dizi değişkendeki general anahtarına tanımlı değerler, multi-language yapısına aittir.
//--- [*] App/Config/App.php ---//
'general' => [
'languages' => ['tr' => 'Turkish', 'en' => 'English'], // Language listesi
'default_lang' => 'tr', // Varsayılan language
],
Varsayılan Dili Belirleme
Sistem ilk çalıştığında varsayılan dil, config dosyasından okunarak belirlenir. Varsayılan dili sistem içerisinde el ile belirlemek için set_lang() fonksiyonu kullanılır. İlgili dile ait dil kodu parametre olarak verilir.
set_lang('tr'); // Varsayılan dil Türkçe.
set_lang('en'); // Varsayılan dil İngilizce.
Varsayılan olarak belirlenecek dilin, /App/Config/App.php dosyasındaki arrayin general anahtarına ait languages alt anahtarına tanımlanmış olması gerekir.
'general' => [
'languages' => ['tr' => 'Turkish', 'en' => 'English'],
],
Varsayılan Dili Öğrenme
Varsayılan olarak belirlenen dili öğrenmek için get_lang() fonksiyonu kullanılır.
echo get_lang();
Dil Dosyası Oluşturma
Titan Framework'te dillere özel içerik oluşturmak için /App/Languages dizini içerisinde, kullanılacak diller için yeni dizinler oluşturulmalıdır. Örneğin sistemde Türkçe ve İngilizce olmak üzere iki dilde içerik sunulacaksa, Turkish ve English dizinleri oluşturulur. Her bir sayfaya ait dil dosyaları, oluşturulan bu dizinler içerisinde tutulur.
Örneğin, anasayfaya ait Türkçe ve İngilizce dil dosyaları;
- /App/Languages/Turkish/Home.php
- /App/Languages/English/Home.php
şeklinde olmalıdır.
- Home.php sayfası dil dosyası örnekleri
// Türkçe dil dosyası içeriği
$lang['home']['contact'] = 'İletişim';
// İngilizce dil dosyası içeriği
$lang['home']['contact'] = 'Contact Us';
- Urunler.php sayfası dil dosyası örnekleri
// Türkçe dil dosyası içeriği
$lang['urunler']['name'] = 'Ürün Adı';
// İngilizce dil dosyası içeriği
$lang['urunler']['name'] = 'Product Name';
Çeviri Yapma
Bir verinin aktif dilde çevirisini bulmak için lang() fonksiyonu kullanılır. Dil dosyası, çevirisi yapılacak veri ve varsa değişkenler olmak üzere 3 parametre alır.
| Parametre | Veri Tipi | Açıklama |
|---|---|---|
| $file | String | Dil dosyası |
| $key | String | Çeviri yapilacak veri |
| $change | String|Array | Değişkenler |
# Örnek
Üye bilgilerinin yer aldığı üye detay sayfası üzerinde çoklu dil kullanımı aşağıdaki gibidir;
//--- [*] /App/Languages/Turkish/Profile.php ---//
$lang['profile']['username'] = 'Kullanıcı Adı';
$lang['profile']['email'] = 'E-Posta Adresi';
$lang['profile']['welcome'] = 'Hoşgeldin %s';
$lang['profile']['messages'] = '%s1 okunmamış, toplam %s2 mesajınız var.';
//--- [#] /App/Views/profile.edge.php ---//
{!! lang('profile', 'username') !!} // Kullanıcı Adı
{!! lang('profile', 'email') !!} // E-Posta Adresi
{!! lang('profile', 'welcome', 'NickName') !!} // Hoşgeldin NickName
{!! lang('profile', 'messages', ['%s1' => 2, '%s2' => 18]) !!} // 2 okunmamış, toplam 18 mesajınız var.