Skip to content
/ tLang Public

Simple PHP language management class.

Notifications You must be signed in to change notification settings

tankotun/tLang

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 

Repository files navigation

tLang

Simple PHP language management class. Developed by @tankotun (Taner Tuncer)

Nedir?

Projelerinize çoklu dil desteği ekleyebilmenizi sağlayan açık kaynak PHP sınıfıdır. Dil dosyaları php uzantılı dosyalarda dizilerde (array) saklanır. Dil dosyalarında kendine has bir düzeni vardır.

Temel Ayarlar

Temel ayarlarda dil dosyalarının bulunduğu dizini, kullanılacak dili ve varsayılan dili belirtmemiz gerekir.

# Sınıf dosyasını dahil ediyoruz.
require "tLang/tLang.class.php";

# tLang sınıfını oluşturuyoruz
# Ilk olarak  sınıfa, dil dosyalarının olduğu dizinin yolunu belirtiyoruz.
new tLang('langFiles');

# Set methodu ile kullanılacak dili (seçilen dil) 'tr' olarak ayarlıyoruz.
tLang::set('lang', 'tr');

# Varsayılan dil olarak ise 'en' ayarlıyoruz.
# Dil dosyasında istenilen bloğun seçilen dile desteği olmaması halinde,
# içerik varsayılan dil ile gösterilir.
tLang::set('defaultLang', 'en');

Temel ayarlar bu kadar.

Dil Dosyaları Düzeni

Dil dosyaları tLang sınıfına belirttiğimiz dizinin içinde saklanır. Dil dosyalarında düzen; bölgeler (zone) ve bloklar (block) veya sadece blok olaraktır.

örn: (genel.php dil dosyası)

return array(

	### 'header' burada bir bölgedir.
	'header' => array(
    
		### 'slogan' burada bir bloktur.
		### 'slogan' içindeki 'tr' ve 'en' ise desteklenen dillerin içerikleridir.
		'slogan'  => array(
			'tr'  => 'En iyi blog!',
			'en'  => 'The best blog!'
		)
    
	),
	
	### 'mesaj' burada direkt olarak bir blok olarak tanımlanmıştır
	'mesaj'	=> array(
		'tr'	=> 'Hosgeldiniz!',
		'en'	=> 'Welcome!'
	)
  
);

Bölgelerin içinde birden fazla blok bulunabilir. *
Bütün dil içeriğini tek bir dosyada saklamanız gerekmez. Dil dizini içerisinde istediğiniz kadar dil dosyası oluşturabilirsiniz.
tLang dizindeki bütün dil dosyalarını yükler, içeriğini birleştirir ve okur. Burada dikkat etmeniz gereken, farklı dil dosyalarında dahi aynı bölge veya direkt yazılmış blok isimleri kullanmamaktır.

Bloklara ulaşma, Içerik Görüntüleme

# 'header' bölgesindeki 'slogan' bloğunun içerğini aldık. Dönen içerik 'tr' formatındadır.
tLang::get('header.slogan');
# Çıktı: En iyi blog!

# 'mesaj' bloğunu alalım.
tLang::get('mesaj');
# Çıktı: Hoşgeldiniz!

Bloklarda Dizi Oluşturma

Bloklar içerisine mesela menü nesneleri ekleyebilir ve bunları get edebilirsiniz.
örn: (genel.php dil dosyası)

return array(
	
	# bir blok
	'test' => array(
		'tr' => array(
			'Anasayfa',
			'Hakkımızda'
		),
		
		'en' => array(
			'Home',
			'About'
		)
	),
	
	# baska bir blok
	'ikinciTest'	=> array(
		'tr' => array(
			'ilkMadde'	=> 'Merhaba'
		),
		
		'en' => array(
			'ilkMadde'	=> 'Hello'
		)
	)
	
);

Ulaşmak için:

tLang::get('test:1');
# Çıktı: Anasayfa


Dizi elemanlarını ismlendirererk de get edebilirsiniz:

tLang::get('ikinciTest:ilkMadde');
# Çıktı: Merhaba

Blok içinde değişken tanımlama

örn: (genel.php dil dosyası)

return array(
	
	'test' => array(
		'tr'	=> 'Hosgeldiniz, --username--! IP Adresiniz --ip--',
		'en'	=> 'Welcome, --username--! Your IP Address is --ip--'
	),
	
);

4 tire içine yazılan değer değişken olarak alınır.

Kullanımı:

# get() methodunda ikinci parametre değişkenler dizisidir.
$args = array('username' => 'tankotun', 'ip' => '0.0.0');
tLang::get('test', $args);
# Çıktı: Hoşgeldiniz, tankotun! IP Adresiniz 0.0.0

Sınırsız değişken tanımlayabilirsiniz. *

Filtreler

Dil dosyalarından get ettiğiniz içeriği, desteklenen fonksiyonlarla filtreleyebilirsiniz.
Desteklenen fonksiyonlar: htmlspecialchars (html taglarını temizleme), stripslashes (ters slash silme)
get() methodunda 3.parametre filtredir
Kullanımı:

# Değişkenler parametresini 'null' yaparak geçebilirsiniz.
# Fonksiyonlar virgülle ayırılarak yazılır. 
tLang::get('header.slogan', null, 'htmlspecialchars, stripslashes');




Afiyet olsun.
God bless open source programmers.

About

Simple PHP language management class.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages