none
Asp.Net Çoklu Dil Desteği RRS feed

  • Soru

  • Merhaba arkadaşlar bir web sitesi yapacağım. Bu web sitesinde ingilizce-türkçe olacak. Burada nasıl bir yol izlemeliyim. Sağ üst köşede İngiliz bayrak - Türkçe Bayrak olacak. Resource file yaparsam site arka panelden sürekli değişeceği için resource file'da güncellenebilecek mi? Tabloları oluştururken aşağıdaki gibi mi oluşturmam gerekiyor.

    Create Table Hakkımızda

    (

    Hakkımızda_Tr,

    Hakkımızda_En

    )

    14 Aralık 2015 Pazartesi 09:37

Yanıtlar

  • Resource u içerik üretiminde kullanmak doğru olmaz. Kullanım alanı daha çok sitedeki sabit yazıların; örneğin site türkçeyken butonda "kaydet" yazarken ingilizceyken "send" yazmasını sağlamak gibi işlerde kullanılır.

    İçerik üretimindeyse veri tabanında örneğin makaleleri saklayacaksanız "Id,Baslık,Icerik" vs vs gibi alanlarınızın yanına birde "Dil" diye alan koymanız, içerikleri çekerken dile göre filitremeniz ve dil kontrolü yapmanız kafidir. Yukarıdaki örneğinizdeki gibi her dil için bir alan açmak çok gereksiz ve sonrasında geliştirilmesi istenir de bir dil daha eklemeniz gerekirse çok külfetli olur. Konuyla ilgili daha önceden forumda yayınlanmış yazılar mevcut diye anımsıyorum, aramanız ve  onları da incelemenizde fayda var. 

    14 Aralık 2015 Pazartesi 21:22

Tüm Yanıtlar

  • Merhaba ;

    Benim bildiğim hocam urllerden dikkat ettiğim kadarıyla anasayfa için index-tr.aspx Türkçe , index-ing.aspx ingilizce şeklimde oluyor ... Yani iki farklı sayfa ... Mantık bu ...

    Kolay gelsin ...

    14 Aralık 2015 Pazartesi 18:21
  • Resource u içerik üretiminde kullanmak doğru olmaz. Kullanım alanı daha çok sitedeki sabit yazıların; örneğin site türkçeyken butonda "kaydet" yazarken ingilizceyken "send" yazmasını sağlamak gibi işlerde kullanılır.

    İçerik üretimindeyse veri tabanında örneğin makaleleri saklayacaksanız "Id,Baslık,Icerik" vs vs gibi alanlarınızın yanına birde "Dil" diye alan koymanız, içerikleri çekerken dile göre filitremeniz ve dil kontrolü yapmanız kafidir. Yukarıdaki örneğinizdeki gibi her dil için bir alan açmak çok gereksiz ve sonrasında geliştirilmesi istenir de bir dil daha eklemeniz gerekirse çok külfetli olur. Konuyla ilgili daha önceden forumda yayınlanmış yazılar mevcut diye anımsıyorum, aramanız ve  onları da incelemenizde fayda var. 

    14 Aralık 2015 Pazartesi 21:22
  • Dediğiniz gibi yaptığımda Her içerik eklediğimde Dropdown'dan Türkçe-İngilizce diye seçeceğim değil mi? Daha sonra kaydedeceğim.

    Aşağıda yazacaklarım bilgi amaçlı.

    Daha sonra Web sitenin ana dizinine mesela "en" diye Klasör açıp aynı siteyi oraya kopyalacağım. Web sitede İngilizce butona basınca bu klasörden okuyacak. Bu şekilde mi olacak yoksa farklı bir yol var mı? 

    16 Aralık 2015 Çarşamba 09:16
  • İçerik eklerken evet dropdown kullanarak yazdığın yazının hangi dilde olduğunu belirterek veritabanına eklemende sıkıntı yok.

    Klasörler kısmı sıkıntılı. Her dil için klasör açmak gibi işler yok. Sitenin o anki dil bilgisine göre içerikleri veri tabanından çekmen gerekiyor sadece.

    Şuan pek müsait değilim biraz araştırman gerekiyor "Dil bilgisi nasıl saklanır nasıl okunur, Belli kriterlere göre veri tabanından içerik nasıl çekilir" Bunları bilmiyorsan bir araştır biliyorsan da bir daha gözden geçirmen de fayda var. Forumda örnek kodlarda olabilir onlara da bir bakın

    16 Aralık 2015 Çarşamba 12:36
  • Müsait zamanınızda anlatma şansınız olursa memnun olurum.

    Çünkü sitelere baktığımda ingilizce seçeneğine tıkladığımda www.siteadı.com/en diyor mesela klasörden okuduğunu düşündüğüm için sordum.

    Veya en doğru mantığı anlatırsanız sevinirim.

    16 Aralık 2015 Çarşamba 14:28
  • Çoklu dil ile içerik üretimi konusunda veritabanı yapısı ile ilgili. Resource ile çözeceğiniz dil, statik olan değerleri dile göre çevirme durumu olur. İçerik olarak dil için ayarlanması gerekenler var.

    Öncelikle bir tane Dil tablosu oluşturması gerekir. Id, DilAdi, DilKodu şeklinde bir tablo olabilir. Bunu veritabanına ekledikten sonra dil değişikliği olacak içeriklerin DilId sine göre ilişkilendirmen gerek. Atıyorum Yazilar tablonuz var. Id,Baslik,KisaAciklama,Icerik,DilId şeklinde yaptığında Türkçe için ayrı farklı diller için ayrı içerikler oluşturabilirsiniz. Bunu daha da geliştirebilirsiniz.

    Web sitesinde seçilen veya Url den gelen dil kodunu veritabanından sorgulayıp DilId yi alıp ve bunu Yazılar tablosunda DilId ye göre kayıdı çektirebilirsiniz. Böylelikle sadece o dildeki veriler gelecektir.

    Geri kalan statik veriler için Resource oluşturabilirsiniz.

    16 Aralık 2015 Çarşamba 15:18
  • Pek müsait değilim ama basit olarak adımları anlatayım.

    1- Veri tabanını hazırlarken birden fazla dilde içerik üreteceğin tablolarda "Dil" adında bir alanın olsun ki girdiğin her kaydın hangi dile ait olduğunu rahatlıkla filitreleyebilesin. Ayrıca dil adında bir tablon da olsun ki ilerde yeni dillerde ekleye bilesin kolayca. Dil bilgisini "en-Us, tr-TR" gibi veri tabanında saklarsan daha rahat edersin, Dillerin bu şekilde yazımlarının olduğu tabloyu net üzerinden rahatlıkla bulabilirsin.

    2- Sitenin arayüzünde kullanıcıya dil seçimini yaptıracağın listeyi hazırlarken veri tabanındaki dil tablondan dilleri çekip sunabilirsin. Seçili dil bilgisini session da saklayabilirsin bunu yapmamızın sebebi veri tabanından bilgileri çekerken hangi dile ait verileri çekeceğimiz bilgisini bu session dan okuyup ona göre filitrelenmiş bir şekilde çekebiliriz. Unutmadan dil bilgisini sakladığın session ın default bir dil seçimi olmalı zira kullanıcı siteye ilk girdiğinde herhangi bir dil seçmemiş olacağından site içeriği boş gözükecektir. Bu sebeple default olarak  session ilk oluşturulduğunda bir dil seçmiş olmayı unutma. Kullanıcı listeden farklı bir dil seçtiğinde  session daki değeri  kullanıcının seçimiyle değiştirirsin. Dil değiştikçe sitenin içeriği de dile göre böylece değişir

    3- Site içindeki sabit alanları resource kullanarak düzenleyebileceğin gibi dilersen veritabanından da çekip gösterebilirsin ama veri tabanı kullanmak biraz gereksiz olur bu işlem için. Resource kullanmak daha uygun olur

    www.siteadı.com/en gibi url lerin düzenlemesi yapılabilir bunun için bir klasör açma zorunluluğu yok ama klasör açılamaz demek değil bu bir işi yapmanın birden farklı yolu var. Url düzenlemek için urllerin nasıl düzenlendiğini biraz araştırman gerek. 

    En doğru mantık ihtiyacına en uygun olanıdır en doğrusu budur diyemem açıkcası 



    16 Aralık 2015 Çarşamba 15:21
  • Teşekkürler verdiğiniz bilgiler için yapmaya başlayacağım bir sorun olursa tekrar buraya yazabilirim.

    Son bir soru olacak.

    Mesela kullanıcı hakkımızda sayfasında ama ingilizce butonuna bastı dediğiniz şekilde yaptığımda anasayfaya dönecek değil mi?

    Yada hangi sayfadaysa o sayfada dil değişmesi bu şekilde yaptığımda mümkün mü? Yoksa genel olarak hangi sayfada olursa olsun anasayfaya atması normal mi?

    17 Aralık 2015 Perşembe 10:10
  • Son bir soru olacak.

    Mesela kullanıcı hakkımızda sayfasında ama ingilizce butonuna bastı dediğiniz şekilde yaptığımda anasayfaya dönecek değil mi?

    Yada hangi sayfadaysa o sayfada dil değişmesi bu şekilde yaptığımda mümkün mü? Yoksa genel olarak hangi sayfada olursa olsun anasayfaya atması normal mi?

    26 Aralık 2015 Cumartesi 18:51