Hackhell Forum 1,216,503 Üye | 459,784 Konu | 4,517,733 Mesaj | 2415 Online

Go Back   Hackhell Forum > Programlamaya Giriş > ASP / PHP / JSP / HTML / CSS

PHP'de Birden Fazla Dil Mantığı

 Programlamaya Giriş Katagorisinde ve  ASP / PHP / JSP / HTML / CSS Forumunda Bulunan  PHP'de Birden Fazla Dil Mantığı Konusunu Görüntülemektesiniz.=>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 ...


Cevapla
 
LinkBack Seçenekler Stil
Alt 30-03-2009, 10:58 PM   #1
Silverday
Moderator
 
Silverday - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: May 2006
Bulunduğu yer: The U.S.
Mesajlar: 3,268
reklam@hackhell.com
Teşekkürleri: 2,431
1,264 mesajına 3,082 kere teşekkür edildi.
Silverday - İCQ üzeri Mesaj gönder Silverday - MSN üzeri Mesaj gönder
pcdepo
Thumbs up PHP'de Birden Fazla Dil Mantığı PHP'de Birden Fazla Dil Mantığı









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..)
PHP- Kodu:
<?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($chCURLOPT_URL"http://ip-to-country.webhosting.info/node/view/36");
curl_setopt($chCURLOPT_POST1);
curl_setopt($chCURLOPT_RETURNTRANSFER1);
curl_setopt($chCURLOPT_POSTFIELDS'ip_address='.$ip.'');
$kaynak curl_exec ($ch);
curl_close ($ch);
preg_match("'belongs to <b>(.*?)</b>'s"$kaynak $donen);
return 
$donen["1"];

?>
PHP- Kodu:
// 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- Kodu:
<?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- Kodu:
<?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- Kodu:
<?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

Konu Silverday tarafından (30-03-2009 Saat 11:01 PM ) değiştirilmiştir.
Silverday isimli üyemiz çevrimdışıdır. (Offline)  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Mesajı Spurl ile Paylas!
Alıntı ile Cevapla
Bu mesaj için Silverday kullanıcısına teşekkür edenler:
kilicvekay (26-05-2009)



Tüm yerli ve yabancı diziler HHİzle'de siz dizi severler ile buluşuyor.

Cevapla

Etiketler
birden, dil, fazla, mantigi, phpde

Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı



Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 01:52 PM.

Forum Yasal Uyarı HH
Kullanılan Portal Sürümü : HH Portal
Script Sürümü : vBulletin Version 3.8.4 PL1
Seo Yazılımı : vBSEO ©2009, Crawlability, Inc
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Sitemiz Internet Explorer 6+, Firefox 2.0.0.14+, Opera 9.52+, Safari 3.1.2+, Chrome 0.2.153.1+ ve 1024x768+ Ekran Çözünürlüğünde Test Edilmiştir.

Sponsor Bağlantı : dövme | mirc indir | dövme | mirc | sohbet | sohbet | msn show
Sitemiz, hukuka, yasalara, telif haklarına ve kişilik haklarına saygılı olmayı amaç edinmiştir. Sitemiz, 5651 sayılı yasada tanımlanan .yer sağlayıcı. olarak hizmet vermektedir. İlgili yasaya göre, site yönetiminin hukuka aykırı içerikleri kontrol etme yükümlülüğü yoktur. Bu sebeple, sitemiz .uyar ve kaldır. prensibini benimsemiştir. Telif hakkına konu olan eserlerin yasal olmayan bir biçimde paylaşıldığını ve yasal haklarının çiğnendiğini düşünen hak sahipleri veya meslek birlikleri, abuse@hackhell.com mail adresinden bize ulaşabilirler. Buraya ulaşan talep ve şikayetler Hukuk Müşavirimiz tarafından incelenecek, şikayet yerinde görüldüğü takdirde ihlal olduğu düşünülen içerikler sitemizden kaldırılacaktır. Ayrıca, mahkemelerden talep gelmesi halinde hukuka aykırı içerik üreten ve hukuka aykırı paylaşımda bulunan üyelerin tespiti için gerekli teknik veriler sağlanacaktır.
Valid CSS!