lostyazilim
tr.link

Tüm Siteler İçin Çoklu Dil Desteği - Tarayıcı Diline Göre Otomatik Dil Algılama!

9 Mesajlar 5.693 Okunma
lstbozum
tr.link

TurkeyDesign TurkeyDesign WM Aracı Kullanıcı
  • Üyelik 21.12.2018
  • Yaş/Cinsiyet 35 / E
  • Meslek Mobil Uygulama ve Web Tasarım
  • Konum Adana
  • Ad Soyad O** Ö**
  • Mesajlar 151
  • Beğeniler 68 / 58
  • Ticaret 1, (%100)
Başlıkta da bahsettiğim gibi tüm siteler için uyumlu çoklu dil desteği modeli geliştirdim. Tarayıcı dilini otomatik algılıyor ve eğer tarayıcı dilinin çevirisini yapmışsak otomatik açılıyor eğer yapmamışsak orjinal (default) site dili kullanıcıya gösteriliyor.

Bunun için basit ve kullanışlı bir kod geliştirdim. Bu sitemle dilerseniz çeviri yaptığınız dile uygun logo da katabiliyorsunuz.

Öncelikle klasör ve gerekli dosyaları listeleyelim

Başlangıç klasörümüz "lang" olacak. "lang" klasörü içinde tarayıcı dilini algılayan ve ona göre dilleri çağıran"language.php" dosyası ve dilleri ekleyeceğimiz "code" klasörü olacak.

"language.php" kodu


set_time_limit(0);
error_reporting(0);
date_default_timezone_set('Europe/Istanbul');

//tarayıcı dilini algılayan kodumuz. Örneğin Türkçe ise tr, ingilizce ise en şeklinde algılıyor
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

//bu kodumuz bulunduğumuz dizini bize verir
$dir = dirname(__FILE__);

//aşağıdaki kodlar çeviri yaptığımız dillerin dizinlerini bize verir
$filename = "$dir/code/$lang.php";
$file = "code/$lang.php";


//aşağıdaki kodlar, algılanan tarayıcı dili code klasöründe mevcut ise o dil dosyasını çağır eğer yok ise orjinal site dilini göster anlamını ifade etmektedir. else kodundan sonra yazılan dil dosyasını ben en.php şeklinde belirledim. Yani sitemin orjinal dili ingilizce de görünmesini istiyorum. Örneğin tarayıcı dili Arapça lakin ben o dili çevirmemişsem site dilim otomatik olarak ingilizce olarak kullanıcıya görünecektir. Tabi siz bunu Türkçe de yapabilirsiniz. Lakin global dünyada en çok konuşulan dil İngilizce olduğu için orjinal dilin İngilizce olarak gözükmesi daha mantıklı. Ve ayrıca aşağıda açıklama da belirttiğim gibi dile göre logo özelliğini kullandım. Eğer çeviri dili var ise ona göre logoyu da bu şekilde ayarlayabilirim.

if (file_exists($filename)) {
include("".$file."");
$logo = "logo-$lang.png";
} else {
include("code/en.php");
$logo = "logo-en.png";
}
?>


"code" klasöründe olan dil kodları...

Burası tamamen sitenize özel çevirilerin olduğu bölümdür. Sitenizde nereyi çeviri yapacaksanız değişkene atayıp çeviri metnini ekleyebilirsiniz.

Bu dosyayı da dil koduna göre kaydedin. aşağıdaki örnek çeviri dilleri biri Türkçe olduğu için dosya ismi tr.php diğeri İngilizce olduğu için en.php olması gerek. Bunu yaparken de dil kodlarını bilmeniz gerek. Bunun için aşağıdaki adresten dil kodlarını inceleyip ona göre çeviri yapmanızda fayda buluyorum.

Global Dil ve Ülke Kodları: http://www.lingoes.net/en/translator/langcode.htm

Türkçe Dil için tr.php dosyası

//tr dil kodunu TR ise ülke kodunu simgeler. TR Turkey yani Türkiye devletini ifade eder. Yani bir nevi Türkiye Türkçesi
$lang_code = "tr-TR";
$html_lang = "tr";

$lang_son_sayfa = "Son Sayfa";
$lang_ilk_sayfa = "İlk Sayfa";
$lang_ana_sayfa = "Ana Sayfa";

?>


İngilizce Dil için en.php dosyası

//en dil kodunu US ise ülke kodunu simgeler. US United States yani amerika birleşik devletlerini ifade eder. Yani bir nevi Amerikan İngilizcesi
$lang_code = "en-US";
$html_lang = "en";

$lang_son_sayfa = "Last Page";
$lang_ilk_sayfa = "First Page";
$lang_ana_sayfa = "Home";

?>


Yukarıda örnek olarak Türkçe ve İngilizce çevirilerinin nasıl yapılacağını açıkladım. Bunu kullanmak için yapmanız gereken tek şey hangi sayfayı çevirdiyseniz o sayfanın header.php dosyasına yada bu yoksa direk olarak çeviri yaptığınız dosyaya



Yukarıdaki gibi eklemeniz gerek. Daha sonra çeviri yapmak istediğiniz bölüme dil dosyasına atadığınız değişkeni yapıştırmanız gerek Örneğin;





Yukarıdaki gibi eklemeniz yeterli olacaktır. Örnek kodları aşağıda verdiğim linkten indirebilir ve kendinize göre düzenleyebilirsiniz.

Şimdiden Herkese iyi günler dilerim.

Örnek Kodları İndir: http://appstrdesign.com/lang.zip

Örnek Kullanılan Site: http://mp3indir.fun

Örnek Siteden Görüntüler

Tarayıcı dili ne ise site aşağıdaki gibi görüntülenmektedir. Geçerli dili ben ingilizce yaptım. Ve toplamda en çok kullanılan 22 dile siteyi çevirdim. Aşağıda bazılarının görünümünü sizler için örnek babında yükledim.


Orjinal Dil Türkçe



Arapça



İngilizce



Japonca

anilcan

kişi bu mesajı beğendi.

wmaraci
reklam

ahmetce33 ahmetce33 WM Aracı Kullanıcı
  • Üyelik 16.04.2012
  • Yaş/Cinsiyet 50 / E
  • Meslek turizm
  • Konum -
  • Ad Soyad A** Ü**
  • Mesajlar 1165
  • Beğeniler 267 / 266
  • Ticaret 151, (%100)
oldukça güzel ücretsiz çalışmalarınız var..
 

 

Bir yalana inanmak sizi aptal yapmaz Saf olmak Şerefsiz olmaktan iyidir...

dikmenofficial dikmenofficial Girişimci Kullanıcı
  • Üyelik 06.01.2019
  • Yaş/Cinsiyet 31 / E
  • Meslek Sosyal Medya Uzman
  • Konum Sakarya
  • Ad Soyad İ** D**
  • Mesajlar 162
  • Beğeniler 25 / 24
  • Ticaret 3, (%100)
Eline sağlık hocam,

mp3 indir site sizemi aittir.
 

 

TurkeyDesign TurkeyDesign WM Aracı Kullanıcı
  • Üyelik 21.12.2018
  • Yaş/Cinsiyet 35 / E
  • Meslek Mobil Uygulama ve Web Tasarım
  • Konum Adana
  • Ad Soyad O** Ö**
  • Mesajlar 151
  • Beğeniler 68 / 58
  • Ticaret 1, (%100)

dikmenofficial adlı üyeden alıntı

Eline sağlık hocam,

mp3 indir site sizemi aittir.


Teşekkür ederim. Evet mp3 indir sitesi bana aittir. Kendi yazılımım.
 

 

wmaraci
wmaraci

dikmenofficial dikmenofficial Girişimci Kullanıcı
  • Üyelik 06.01.2019
  • Yaş/Cinsiyet 31 / E
  • Meslek Sosyal Medya Uzman
  • Konum Sakarya
  • Ad Soyad İ** D**
  • Mesajlar 162
  • Beğeniler 25 / 24
  • Ticaret 3, (%100)
Özel gelir misin
 

 

ismail03 ismail03 WM Aracı Kullanıcı
  • Üyelik 28.11.2013
  • Yaş/Cinsiyet 30 / E
  • Meslek Ameliyathane Hemşiresi
  • Konum Afyon
  • Ad Soyad I** Ç**
  • Mesajlar 2633
  • Beğeniler 344 / 487
  • Ticaret 12, (%100)
OOP üzerinde daha basit bir şekilde yapılabilir önerim oop üzerinde çalışmanız

interface diller{
public function ceviri();
}

class dilsecimi extends baglan{
//bu sınıfta tanımlamalar yapılacak
}
class dil_turkce implements diller{
function ceviri(){
$ceviri=array();
$ceviri["ask"]="Bize Danışın";
$ceviri["service"]="İşlemler";
$ceviri["category"]="Kategori";
return $ceviri;
}
}
?>
 

 

restome1 restome1 WM Aracı Kullanıcı
  • Üyelik 25.05.2014
  • Yaş/Cinsiyet 27 / E
  • Meslek Danışman
  • Konum İstanbul Avrupa
  • Ad Soyad M** Ö**
  • Mesajlar 282
  • Beğeniler 37 / 36
  • Ticaret 0, (%0)
Blogger da uygulayabilir miyiz?
 

 

TurkeyDesign TurkeyDesign WM Aracı Kullanıcı
  • Üyelik 21.12.2018
  • Yaş/Cinsiyet 35 / E
  • Meslek Mobil Uygulama ve Web Tasarım
  • Konum Adana
  • Ad Soyad O** Ö**
  • Mesajlar 151
  • Beğeniler 68 / 58
  • Ticaret 1, (%100)

restome1 adlı üyeden alıntı

Blogger da uygulayabilir miyiz?


Blogger tema destekli bir platform. Kendine has bir kod yapısı var ve sanırım php desteklemiyor. Bu nedenle kullanamazsınız. Bu verdiğim örneği kendi sunucunuzda var olan tüm sitelerde kullanabilirsiniz.
 

 

TurkeyDesign TurkeyDesign WM Aracı Kullanıcı
  • Üyelik 21.12.2018
  • Yaş/Cinsiyet 35 / E
  • Meslek Mobil Uygulama ve Web Tasarım
  • Konum Adana
  • Ad Soyad O** Ö**
  • Mesajlar 151
  • Beğeniler 68 / 58
  • Ticaret 1, (%100)

ismail03 adlı üyeden alıntı

OOP üzerinde daha basit bir şekilde yapılabilir önerim oop üzerinde çalışmanız

interface diller{
public function ceviri();
}

class dilsecimi extends baglan{
//bu sınıfta tanımlamalar yapılacak
}
class dil_turkce implements diller{
function ceviri(){
$ceviri=array();
$ceviri["ask"]="Bize Danışın";
$ceviri["service"]="İşlemler";
$ceviri["category"]="Kategori";
return $ceviri;
}
}
?>


Öneriniz için teşekkürler. Ben işlemleri daha basit ve kullanışlı bir hale getirdim. Zira herkes bu kod yapısını bilmez. Ben olayı daha bait hale getirdim ki başlangıç seviyesinde olanlar da bu verdiğim kod yapısını çözüp uygulayabilsinler...
 

 

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al