Bilmek istediğin her şeye ulaş

Çok dilli olarak tasarlanan bir sitenin veri tabanında tablo yapıları vesaire nasıl olmalıdır?

Ekstradan bir dil düşünülmeden hazırlanmış sistemlerde sayfa tablosunun yapısı aşağı yukarı ID, ad, icerik, kategori_ID, yazar_ID, tarihYayim, URL şeklinde olabilir. Ancak bir sayfanın bir den fazla dildeki değeri tutulacaksa sayfa tablosu nasıl yapılmalıdır. Dil sayısı kategorilere göre değişkenlik gösteriyor bu arada.Düzenle
Ben de genel veritabanı mantığından bahsedeyim. Öncelikle dil sayısı belli olmadığı için her dildeki içeriği farklı kayıtta tutmak gerekir. Yani kategori, yazar_id gibi bilgiler bir kayıtta sonra da baslik ve icerik alanlarını içeren bir tablo. Bu tabloda bir de dil alanı olmalı. ENUM tipinde olabilir bu alan. ENUM('tr', 'en', 'fr') gibi. Sonra her dil için yazıya ekleme yapmanız gerekir.

Sitede dili session'da tutarsanız gösterimde WHERE dil='tr' sorgusundaki 'tr' ifadesini sessiondan alırsınız. Böylece sınırsız dil destekler. Tabi karakter kodlaması utf8 olmalı.
  • Paylaş
Eğer bahsettiğiniz şey sadece arayüzün farklı dilleri desteklemesi ise, veri tabanında bir işlem yapmanıza gerek yok. Tabi bu .NET için geçerli.

Global Resource ve Local Resource olmak üzere arayüzde bulunan tüm metinleri farklı dillerde çevirip saklayabileceğiniz bir yapı var. Yapmanız gereken sadece bir text elemanına unique bir adlandırma yapmak, örneğin; "topmenuSloganTxt" gibi.

Bu adlandırmanın karşısında ise hangi dilde istiyorsanız o dildeki karşılığını yazmak.

Örneğin; Resource.tr-TR.resx, Resource.en-US.resx, Resource.fr-FR.resx olmak üzere 3 dilde yayın yapabilirsiniz.

Artık veri tabanında sadece kullanıcının dil tercihini tutmanız yeterlidir. Kullanıcının dil tercihine göre UI-Culture ve Culture verilerini değiştirdiğiniz anda tüm sayfalar bu Resource dosyaları aracılığı ile bu dillere dönüşür.

Eğer bahsettiğiniz şey, sayfalarda bulunan içerik ile beraber farklı dillerin desteklenmesi konusu ise; bunun için veri tabanına içeriğin farklı dillerdeki çevirilerini kaydetmeniz gerekir elbet. Onun dışında yine sistem yukarıda bahsettiğim şekilde ilerler.
  • Paylaş
Sonraki Soru
HESAP OLUŞTUR

İstatistikler

312 Görüntülenme4 Takipçi2 Yanıt