Multi-Language (Çoklu Dil) Kullanımı

Titan Framework birden fazla dil ile içerik yayınlamayı destekler.

  1. Dil Ayarlarını Yapılandırma
  2. Varsayılan Dili Belirleme » set_lang()
  3. Varsayılan Dili Öğrenme » get_lang()
  4. Dil Dosyası Oluşturma
  5. Ç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 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.