Bir Siteye Çoklu Dil Nasıl Yaparsınız?
-
-
Senin yapmak istediğin oalay farklı dillerde olan içerik eklemek mi yoksa site menu kategori ismlerini farklı dillerde göstermek mi. eğer içerik olayı ise onu aşşağıdaki gibi birşey yapabilirsin.
İçerik ekleme Kısmına kaç dil ekleyeceksen o kadar başlık ve içerik alanı eklersin
yani tr baslik kısmı de baslik kısmı gibi vd içerik alanıda aynı şekilde
kayıt ederkende her bir alanı o dilin idsine göre kayıt edersin.
tr alanından gelen verileri içerik alanına kayıt edersin içerik dil tablosunada oiçeriğin idsini ve dil idsini eklersin.
Hocam database diller diye tablo aç oraya
içine id ve diller diye alanlar.
onlarada hangi dilleri kullanacaksan ekle.
örnek için
tr
de
fr
gb
gibi
sonra icerikdil diye bir tablo aç onun içinede
id diller_id icerik_id yaz.
sonra icerik tablona ana_icerik_id ve diller_id diye alanlar oluştur
yazı eklerken ana_icerik_id kısmı bir içerik için hep aynı olsun.
şöyle ki
4 ayrı dilde tahribat tanıtım yazısı yazdığını farzet.
başlık içerik zaten kendi dilinde yazarsın. sonra ana içerik id kısmınıdaunique bir değer verirsin yanlız bir yazının tercüme edilmiş hallerinede o idyi vereceksin yani tbt1 diye bir şey yazarsın. üreteceğin bir keyden eklersin üçünede aynı sayıyı verirsin çekerkende buna göre çekersin diilleri
-
ben şahsen 22-23 dil için yapmıştım.
.asp içinde
(1,1)
diye de çekiyordum
1. dilin 1. kelimesi dğeişkene filan atamıştım tüm sayfalarda çekiyordu.
-
anlık db den çekmek sistemi yorar sayfada 30 kelime olduğunu düşün o an siteye giren 100.000 kullanıcı varsa 30.000.000 sorgu eder. db de tut dilleri ama ayrıca her değişiklikten sonra bi dosyaya array olarak ata ve arraydan çek verileri
-
Dil dediğimiz sabit olay değil midir ?
Yani Türkçesi ANASAYFA olan kelime İngilizce de HOMEPAGE olacak...
Yani, bu dil kelimeleri sabit olduğundan, bence DB ye atmaya gerek yok...
Ben olsam her dil için ayrı bir PHP dosyası oluştururdum,
Örneğin
Türkçe dil dosyası,
$anasayfa = "ANASAYFA";
Türkçe dil dosyasını turkish.php diye kaydederiz,
İngilizce dil dosyası
$anasayfa = "HOMEPAGE";
İngilizce dil dosyasını english.php diye kaydederiz.
Diyelimki sitemiz çoklu kullanıcı destekli,
Ali isimli kişinin kullanıcı adı şifresinin yanına bir de tercih ettiği dili ekleriz,
Kullanıcı adı ve şifresi doğru ise tercih ettiği dile ait seçeneği sessiona atarız,
$uidili = session [dil] = turkish.php (Turkish de olur, ama bu sefer uzantıyı .php yapıp sessiona atarsın )
sonra da bu dili include ederiz,
include $uidili
Sonra sitemiz çalışmaya başlar...
<a href = index.php> echo $anasayfa </a>
ingilizce de olsa, fransızca da olsa, sadece 1 php dosyasını include ederek tüm siteyi dilden dile dolaştırırsınız...
AMA TEKRAR EDİYORUM...
Dil ve kelimeler sabit olduğu için ben bu kelimelerin veritabanına kayıtedilmesinden ise, sabit düz metin .php dosyalarına kayıt edilmesi
taraftarıyım.
Böylelikle db işlemeri sebebiyle bilgisayarımız meşgul olmaz...
-
Tema motoru kullanarak yaparsın en kalitelisi o olur veya daha pratiği
http://www.tahribat.com/Forum-Php-Icin-Kod-Arsivi-150381/1/#1763726
bu şekilde yaparsın
örneğin
$anasayfa = $homepagevariable şeklinde ana kodda yer alır.
include ettiğin dil dosyasında da
$homepagevariable = "ANASAYFA"
veya
$homepagevariable = "HOMEPAGE"
artık neyse o şekilde olur.
-
Php de define fonksiyonu ile bunu yapabilirsin. Örnek için aşağıdaki siteyi bi incele istersen:
http://www.tasarimrehberi.net/coklu-dil-destekli-site-yapimi-1.html