İçindekiler
Dikkate alınması gereken bir husus, veritabanı yapısını doğru tanımlayın. Kayıtları kaydetmenin farklı yolları olsa da, bilgilerin nasıl yapılandırılması gerektiğini görmemiz gerekecek, buna tablolar arasındaki ilişkilerin bir çalışması olan veritabanı normalleştirme işlemi denir. İlk olarak netleştirmemiz gereken şey şu ki, veritabanında kayıtlarımız olsa bile sorgu yükü çekmeyecektir, çünkü kayıtları önbelleğe almak için MySQL'in kendi önbelleğini kullanacağız, diyelim ki almak mantıklı değil. her sorguda bir şehrin adı her zaman aynı çağrılacaksa, yani önbellek boyutumuzu veritabanımızın oluşturabileceği hacme göre yapılandıracağız. Önbellek boyutunu değiştirmek istiyorsanız, toplam önbellek boyutunu kontrol eden MySQL değişkeni olduğundan query_cache_size kullanmalısınız.Kayıtların ilişkisini oluşturacağız InnoDB ve tabloları ilişkilendirmek için yabancı anahtarların kullanılması, örneğin Ülkeler adında bir tablomuz olacak ve bir alan dil kimliği olacak ve çevirileri olan dilleri içeren başka bir tablo olacak, bu son tablo Ülkelerin isimlerinin farklı dillere çevrileceği kayıtlar.
İtibaren PHP Dili kontrol etme şeklimiz oturumları kullanmaktır, bu durumda kullanıcının dilini tanımlamak için veritabanı tablosunun kayıt kimliğini kaydederiz, bunu coğrafi konum ile yapabiliriz veya web için varsayılan bir dil kullanabiliriz ve ardından kullanıcı bunu değiştirir.
Dil kimliğine sahip bir oturum koyduk:
$ _SESSION ['languageid'] = 1 veya $ _SESSION ['languageid'] = 'es';
Bu oturum değişkeni sayesinde veritabanını sorguladığımızda kayıtları dile göre sorgulamak için bunun gibi bir WHERE yan tümcesi kullanacağız.
WHERE dil kimliği = '" Ülkelerden * seçin. $ _ SESSION [' dil kimliği ']."' WHERE dil kimliği = '" Ürünlerden * seçin. $ _ SESSION [' dil kimliği ']."'
Bu yönteme dayanarak, tasarımımızı dillere uyum sağlayacak şekilde hazırlamalı, tüm tasarımı dinamik içeriği kabul edecek şekilde oluşturmalıyız. Örneğin, sayfanın başlığı için mysql'de her dil için bir alanımız olacak:
başlık = bu benim ürün dilim = başlık = bu benim ürün dilim = tr
Tıpkı mysql sorgusunun tanımlanan dili getirmesi gibi, içeriği de üretebiliriz.
Örneğin, sayfanın başlığı şöyle görünür:
Alternatif özniteliğe sahip ayrıca dinamik bir bağlantı:
Bunu, düğmeler gibi web'in çeşitli öğeleri için de yapabiliriz:
Bu, ülkeye ve hatta farklı bölümlere göre uyarlanmış içeriği göstermek için kullanıcının dilinden soyutlama yapmamızı sağlar. Mysql'e ek olarak, her projenin ihtiyacına göre text veya xml dosyaları ile aynı yöntem kullanılabilir.