KKUT Docs

Çoklu Dil Kütüphanesi

Çoklu dil kullanımı bir çok proje için gerekli olmaktadır. KUT Framework'te zaten bir lang() yönteminin kullanımı var olmakla birlikte daha opsiyonel ve pratik bir kullanıma sahip Multi Lang…

This article is currently available in Turkish. Its English translation is being prepared.

Çoklu dil kullanımı bir çok proje için gerekli olmaktadır. KUT Framework'te zaten bir lang() yönteminin kullanımı var olmakla birlikte daha opsiyonel ve pratik bir kullanıma sahip Multi Language kütüphanesi oluşturulmuştur. Aşağıda bu kütüphane ile dilleri nasıl yönetebileceğiniz anlatılmıştır.

Kurulum

Bu bileşen KUT ile birlikte gelir; ayrıca kurulum gerektirmez.

↓ Paket KUT ile birlikte gelir.

Yöntemler

ML::insert(string $lang, $key, string $data = NULL) : bool
ML::select(string $key, $convert = NULL) : string
ML::selectAll(string $lang = NULL) : array
ML::keys() : object
ML::langs() : array
ML::update(string $lang, $key, string $data = NULL) : bool
ML::delete(string $lang, $key) : bool
ML::deleteAll($lang) : bool
ML::lang(string $lang = 'tr') : bool
ML::table($lang = NULL) : string
 

Insert 

Belirtilen dile ait anahtar ve değer çiftinden oluşan bir veya birden fazla kelime eklemek için kullanılır.

Parametreler

string $lang Dil kodu. Hangi dile ait kelime eklenecekse o dil belirtilir. Genellikle en, tr gibi dil kısaltmaları kullanılır.
mixed $key Tüm dillerdeki kelimeleri temsil etmesi açısından kullanılacak ortak anahtardır. Genellikle anahtar olarak ingilizce kelimelerin kullanılması tavsiye edilir.
string $data = NULL Dosyaya eklenecek kelimenin kendisi.
return bool

Kullanımı

ML::insert('en', 'example', 'Example');
ML::insert('en', ['example' => 'Example', 'application' => 'Application']); 
Oluşturulan Dosya: Projects/ProjectDirectory/Languages/ml/en.ml

Select 

Oluşturulan anahtar değer çiftlerinin anahtarları kullanılarak değerlerine ulaşılır. Ancak bilmeniz gereken nokta bir kelime çağrılmaya çalışılmadan önce hangi dilden kelimenin getirileceğini belirtmeniz gerekir. Bunun için ML::lang() yöntemi kullanılır. Bu yöntemin kullanımına sayfa sonunda değinilmiştir. Biz yine de bağlantılı olması açısından bu örnek üzerinde de anlatımına yer vermeye çalıştık.

Parametreler

string $key Kelimeyi temsil eden anahtar.
return string

Kullanımı

echo ML::select('example');
Example

SelectAll

Oluşturulan dile göre eklemiş içerikleri getirir. Parametre kullanılması durumunda belli bir dilin içerikleri de alınabilir.

Parametreler

string $lang = NULL Hangi dilin içeriklerinin alınacağıdır. Boş geçilmesi durumunda tüm dillerin içerikleri getirilir.
return array

Kullanımı

output( ML::selectAll() );

Aktif dile göre içerik getirmek için;

output( ML::selectAll( Lang::get() ) );

Keys

Aktif dilin içeriklerini obje türünden döndürür.

Parametreler

return object

Kullanımı

$lang = ML::keys();

echo $lang->pencil
Kalem

Bu yöntemin sonucunu başlangıç kontrolcüsünden tüm görünümlere göndererek basit bir kullanım elde edebilirsiniz.

Dosya: Controllers/Initizalize.php
public function main()
{
    View::lang( ML::keys() );
}
Dosya: Views/Sections/sidebar.wizard.php
[|ul|]
    [|li|]{| Html::anchor('Home', $lang->home) |}[|/li|]
    [|li|]{| Html::anchor('Contact', $lang->contact) |}[|/li|]
    [|li|]{| Html::anchor('About', $lang->about) |}[|/li|]
[|/ul|]

Langs

Oluşturulmuş dillerin listesini verir.

Parametreler

return array

Kullanımı

output( ML::langs() );
0 => 'en'
1 => 'tr'

Bu yöntemi dil değişimi için kullanılan dropdown nesnelerinin içerisine dilleri listelemek için kullanabilirsiniz.

Dosya: Views/Sections/sidebar.wizard.php
[|ul|]
    @foreach( ML::langs() as $key ) 
        [|li|]{| Html::anchor('Home/setLanguage/' . $key, $key) |}[|/li|]
    @endforeach
[|/ul|]
Dosya: Controllers/Home.php
public function setLanguage(string $lang)
{
    Lang::set( $lang );

    redirect( URL::prev() );
}

Update 

Belirtilen dile ait anahtar ve değer çiftinden oluşan bir veya birden fazla kelime güncellemek için kullanılır. ML::insert() ekleme işlevi ile aynı kullanıma sahiptir. Yani güncelleme işlemi için insert() yöntemi de tercih edilebilir.

Parametreler

string $lang Dil kodu. Hangi dile ait kelime güncellenecekse o dil belirtilir. Genellikle en, tr gibi dil kısaltmaları kullanılır.
mixed $key Tüm dillerdeki kelimeleri temsil etmesi açısından kullanılacak ortak anahtardır. Genellikle anahtar olarak İngilizce kelimelerin kullanılması tavsiye edilir.
string $data = NULL Dosyada güncellenecek kelimenin kendisi.
return bool

Kullanımı

ML::update('en', 'example', 'Example');
ML::update('en', ['example' => 'Example', 'application' => 'Application']);

Delete 

Belirtilen dile ait hangi kelimeler silinecekse o kelime temsil eden anahtarlardan yararlanılır. Parametre, tek bir veri silinecekse dizge birden fazla veri silinecekse dizi belirtilir.

Parametreler

string $lang Hangi dile ait kelime silinecekse o dil belirtilir. Genellikle en, tr gibi dil kısaltmaları kullanılır.
mixed $key Kelime eklenirken kullanılan anahtar.
return bool

Kullanımı

ML::delete('en', 'example');
ML::delete('en', ['example', 'application']);

DeleteAll 

Oluşturulan sözlüklerin tümünü veya parametre olarak belirtilenleri silmek için kullanılır.

Parametreler

string $lang Hangi dile ait kelime silinecekse o dil belirtilir.
return bool

Kullanımı

ML::deleteAll('tr');
ML::deleteAll(['tr', 'en']);
ML::deleteAll(); # All Files

Lang

Bu yöntemin kullanımı setLang() gibidir. Sayfanın hangi dili kullanmasını istiyorsanız o dosyaya ait isim kullanılır.

Parametreler

string $lang Hangi dile ait kelime silinecekse o dil belirtilir.
return bool

Kullanımı

ML::lang('tr');

Table 

Bir tablo üzerinden dil dosyalarınız yönetmek için kullanılan bir veri tablosudur. Bu tablo sayesinde çok daha kolay kelime ekleme, düzenleme ve silme işlemleri yapabilirsiniz.

Yapılandırma

Tablonun görsel tasarımı ile ilgili ayarları aşağıda gösterilen dosya yolunda bulabilirsiniz.

Dosya: Config/Viewobjects.php -> mlgrid

Parametreler

mixed $lang Tabloda gösterilecek diller. Belirtilmez ise tüm diller gözükür.
return string

Kullanımı

echo ML::table();
echo ML::table(['en', 'tr']);
echo ML::limit(100)->table(); # Page Total Rows
echo ML::url('home/table')->limit(20)->table(); # Pagination -> URL 
KUT Framework 1.0Katmanlı Uygulama Tabanı

Kur. Uyarla. Türet.