Sağlam bir proje yapıyorsanız bu projede kullandığınız dil önemlidir.
Eğer global bir proje yapmak istiyorsanız birden fazla dil seçeneği
çok yararınıza olacaktır.Üstelik ziyaretçinin IP numarasına göre dil değişiyorsa
öncelikle mantığımız şu,
1) IP Adresini alıp kullanıcının ülkesini bulacağız.
2) Bu ülkeye ait bir dil paketi varsa onu, yoksa ingilizceyi kullandırtacağız
functions.php (fonksiyonlar içeren dosyamız olsun..)
şimdi normal şartlarda, biz girdiğimiz zaman ekranda "turkish" yazacaktır.
almanyadan giren bir kişide "german", almanya ve türkiye dışından giren
bir kullanıcı için de "english" yazacaktır.
dili belirledik peki bunu nasıl uygulayacağız?
öncelikle, istediğimiz dile ait klasörler oluşturacağız (örnek languages/turkish/ ve languages/english/ klasörleri.
ve bunların içine aynı isimlere sahip dil dosyaları koyacağız.
misal home.lang.php: (.lang koymamın hiçbir önemi yok, sadece dil dosyası olduğunu göstermek için, istediğinizi yapabilirsiniz.)
aynı addaki dosya (bu sefer turkish klasörü içinde)
şimdi önemli kısım sayfamızdaki yazıları dil dosyaları içnde tanımlanan değişkenlerden oluşturmak.
örnek dosyamız index.php
iyi kodlamalar.sorunuz olursa yazınız
Eğer global bir proje yapmak istiyorsanız birden fazla dil seçeneği
çok yararınıza olacaktır.Üstelik ziyaretçinin IP numarasına göre dil değişiyorsa
öncelikle mantığımız şu,
1) IP Adresini alıp kullanıcının ülkesini bulacağız.
2) Bu ülkeye ait bir dil paketi varsa onu, yoksa ingilizceyi kullandırtacağız
functions.php (fonksiyonlar içeren dosyamız olsun..)
PHP:
<?php
function DileKararVer($ip) {
// ülkeyi bul
$getcountry = UlkeBul($ip);
// ülkeye göre dili ata
switch($getcountry) {
case "Turkey":
$lang = "turkish";
break;
case "Germany":
$lang = "german";
break;
default:
$lang = "english";
}
return $lang;
}
function ulkeBul($ip) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://ip-to-country.webhosting.info/node/view/36");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'ip_address='.$ip.'');
$kaynak = curl_exec ($ch);
curl_close ($ch);
preg_match("'belongs to <b>(.*?)</b>'s", $kaynak , $donen);
return $donen["1"];
}
?>
PHP:
// siteye giren kişinin IP
$ip = getenv("REMOTE_ADDR");
// bu kullanıcıya gösterilmesi gereken dil
print DileKararVer($ip);
şimdi normal şartlarda, biz girdiğimiz zaman ekranda "turkish" yazacaktır.
almanyadan giren bir kişide "german", almanya ve türkiye dışından giren
bir kullanıcı için de "english" yazacaktır.
dili belirledik peki bunu nasıl uygulayacağız?
öncelikle, istediğimiz dile ait klasörler oluşturacağız (örnek languages/turkish/ ve languages/english/ klasörleri.
ve bunların içine aynı isimlere sahip dil dosyaları koyacağız.
misal home.lang.php: (.lang koymamın hiçbir önemi yok, sadece dil dosyası olduğunu göstermek için, istediğinizi yapabilirsiniz.)
PHP:
<?php
$lang['home'] = array();
// menu
$lang['home']['menu_index'] = "Home";
$lang['home']['menu_about'] = "About us";
$lang['home']['menu_contact'] = "Contact";
?>
aynı addaki dosya (bu sefer turkish klasörü içinde)
PHP:
<?php
$lang['home'] = array();
// menu
$lang['home']['menu_index'] = "Anasayfa";
$lang['home']['menu_about'] = "Hakkımızda";
$lang['home']['menu_contact'] = "İletişim";
?>
şimdi önemli kısım sayfamızdaki yazıları dil dosyaları içnde tanımlanan değişkenlerden oluşturmak.
örnek dosyamız index.php
PHP:
<?php
$lang = array();
require_once("functions.php");
// ziyaretçi IP ile birlikte dili tespit et
$ip = getenv("REMOTE_ADDR");
$language = DileKararVer($ip);
require_once("languages/". $language . "/home.lang.php");
## şuanda bu sayfaya "languages/turkish/home.lang.php" dosyası alınıyor.
## tabiki türkiyeden giriyorsak, aksi takdirde diğer klasörlerdekini alacaktı
?>
<html>
<body>
Menu1: <?=$lang["home"]["menu_home"];?> <br>
Menu2: <?=$lang["home"]["menu_about"];?> <br>
Menu3: <?=$lang["home"]["menu_contact"];?> <br>
</body>
</html>
iyi kodlamalar.sorunuz olursa yazınız