lostyazilim
tr.link

Kullanıcının dilini bulmak?

6 Mesajlar 773 Okunma
acebozum
tr.link

sovetski sovetski ♛ PHP ♛ Kimlik Onayı
  • Üyelik 03.08.2015
  • Yaş/Cinsiyet 27 / E
  • Meslek Yazılımcı
  • Konum Fransa
  • Ad Soyad A** H**
  • Mesajlar 1205
  • Beğeniler 437 / 458
  • Ticaret 2, (%100)
Arkadaşlar sitemde Dil sistemi mevcut ve her siteye giren kullanıcı için bu seçimin otomatik olmasını istiyorum. Nasıl yapabilirim?

Yani kısacası bana lazım olan : siteye giren ziyaretçinin dilini en,fr,tr,az,ru,es gibi 2 harfli almak.
 

 

wmaraci
reklam

ntka ntka https://ntka.org Kullanıcı
  • Üyelik 22.01.2012
  • Yaş/Cinsiyet 42 / E
  • Meslek Agent
  • Konum İstanbul Anadolu
  • Ad Soyad N** T**
  • Mesajlar 2762
  • Beğeniler 811 / 810
  • Ticaret 262, (%100)
bu işinizi görür sanırım.
http://www.kursadaltan.com/php-ile-siteye-giren-ziyaretcinin-ulkesini-belirlemek.html
 

 

dijitalsite.com.tr ister al / ister sat / yeni üyelere 20 tl bakiye hediye

sovetski sovetski ♛ PHP ♛ Kimlik Onayı
  • Üyelik 03.08.2015
  • Yaş/Cinsiyet 27 / E
  • Meslek Yazılımcı
  • Konum Fransa
  • Ad Soyad A** H**
  • Mesajlar 1205
  • Beğeniler 437 / 458
  • Ticaret 2, (%100)
ntka malesef çalışmadı fakat başka türlü hallettim sorunu

Adres : http://ip-api.com/docs/
 

 

TolgaTuran61 TolgaTuran61 Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 13.07.2015
  • Yaş/Cinsiyet 32 / E
  • Meslek php
  • Konum İstanbul Anadolu
  • Ad Soyad T** T**
  • Mesajlar 61
  • Beğeniler 3 / 4
  • Ticaret 1, (%0)
Şu mantığı kurabilirsin. Önce ülke tespiti yapacaksın sonra o ülkeye eş değer dil dosyası var ise onu çalıştırcaksın.

@ntka vermiş olduğu linkteki gibi bir kod yaz. (Bazı siteler ip'ten ülke gösteriyor) Curl ile bağlanıp çekebilirsin. Sonra Ziyaretcinin ülkesi ile dil dosyalarını eşleştir ve ekrana yazdır.
 

 

wmaraci
wmaraci

wdrleo wdrleo Back-end Developer Kullanıcı
  • Üyelik 12.04.2015
  • Yaş/Cinsiyet 29 / E
  • Meslek Full-stack Developer
  • Konum Konya
  • Ad Soyad H** A**
  • Mesajlar 226
  • Beğeniler 39 / 81
  • Ticaret 14, (%100)
Bu işin teknik mantığı IP'yi alıp, belli bloklara göre ülke tespiti yapılmasına dayanır.
IP blogunun ilk iki hanesi Servis sağlayıcı bilgisini veriyor. Yani IP'nin hangi servis sağlayıcı üzerinden atandığını, hangi servis sağlayıcının o IP bloguna sahip olduğunu gösteriyor.
Bu IP bloklarını ayırt edebileceğiniz veritabanını size şu adres sağlıyor;
IP2Location Tıklayın.
Hem IPv4 Protokolü için hemde IPv6 protokolü için önce talimatları izleyerek veri tabanında tabloları oluşturun sonra csv dosyasını içe aktarın.
Daha sonra ziyaretçinin ip adresini alın ve şu şekilde parçalayın;

$haneler = explode($_SERVER['REMOTE_ADDR'],'.');
echo $hane[0];

Bu kod size ilk haneyi verecektir. Bu değeri alarak veritabanında sorgulattığınızda hangi ülkeden giriş yapıldığını bulabilirsiniz. Tavsiyem bu sorgunun sonucunu da cookie atayın.
Bu cookie yoksa veritabanı sorgusunu yapın böylece her girişte değil sadece dil daha önce tespit edilmediyse, ilk kez giriş yapılıyorsa yada tespit edilen dilin cookiesı silindiyse sorgu yaparsınız. Sistemi gereksiz yormazsınız.

Bu tabii ki file_get_contents fonksiyonu ve sizinde attığınız linkteki gibi bir ip servisi ile yapılabilir.
Ama bir gün bu ip servisi devre dışı kalırsa :) sizin sisteminiz çalışmayacak anlamına gelir.
ozturkmtn

kişi bu mesajı beğendi.

sovetski sovetski ♛ PHP ♛ Kimlik Onayı
  • Üyelik 03.08.2015
  • Yaş/Cinsiyet 27 / E
  • Meslek Yazılımcı
  • Konum Fransa
  • Ad Soyad A** H**
  • Mesajlar 1205
  • Beğeniler 437 / 458
  • Ticaret 2, (%100)
TolgaTuran61 zaten aynen sizinn dediğiniz mantıkla çalışıyor sistem teşekkür ederim zamanınızı ayırdığınız için

wdrleo çok sağol Allah razı olsun ama zaten bitirdim aradığımı.

Nasıl yaptığımı anlatayım

http://ip-api.com/docs/ buradan PHP için APİ var, yani file_get_contents ile o siteden verileri çekiyor. Dediğiniz gibi bende zaten 1 kere sorgudan sonra alınan değeri cookiye atadım çünkü her sayfa yenilendiğinde file_get_contents sayfanın yüklenme hızını düşürür diye. Birde o siteye birşey olursa benim sistem hala çalışmaya devam edicek çünkü eğer tanımlanan hiçbir dil yoksa varsayılan olarak Türkçe seçiliyor :)
 

 

wmaraci
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